dockview-core 1.9.2 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/component.api.d.ts +25 -6
- package/dist/cjs/api/component.api.js +27 -5
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
- package/dist/cjs/api/dockviewPanelApi.d.ts +23 -7
- package/dist/cjs/api/dockviewPanelApi.js +49 -12
- package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -4
- package/dist/cjs/api/panelApi.d.ts +20 -9
- package/dist/cjs/api/panelApi.js +30 -30
- package/dist/cjs/api/paneviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/paneviewPanelApi.js +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/splitviewPanelApi.js +0 -1
- package/dist/cjs/array.d.ts +0 -1
- package/dist/cjs/array.js +0 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +0 -1
- package/dist/cjs/dnd/dataTransfer.js +0 -1
- package/dist/cjs/dnd/dnd.d.ts +0 -1
- package/dist/cjs/dnd/dnd.js +0 -1
- package/dist/cjs/dnd/droptarget.d.ts +20 -9
- package/dist/cjs/dnd/droptarget.js +71 -14
- package/dist/cjs/dnd/ghost.d.ts +0 -1
- package/dist/cjs/dnd/ghost.js +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts +0 -1
- package/dist/cjs/dnd/groupDragHandler.js +1 -2
- package/dist/cjs/dnd/overlay.d.ts +0 -1
- package/dist/cjs/dnd/overlay.js +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts +0 -1
- package/dist/cjs/dockview/components/panel/content.js +6 -7
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts +5 -13
- package/dist/cjs/dockview/components/tab/tab.js +5 -6
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +26 -22
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +5 -6
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js +0 -1
- package/dist/cjs/dockview/deserializer.d.ts +0 -1
- package/dist/cjs/dockview/deserializer.js +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +86 -25
- package/dist/cjs/dockview/dockviewComponent.js +577 -197
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +6 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +79 -34
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +226 -57
- package/dist/cjs/dockview/dockviewPanel.d.ts +8 -3
- package/dist/cjs/dockview/dockviewPanel.js +39 -12
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/cjs/dockview/dockviewPanelModel.js +2 -22
- package/dist/cjs/dockview/options.d.ts +7 -3
- package/dist/cjs/dockview/options.js +0 -1
- package/dist/cjs/dockview/types.d.ts +1 -11
- package/dist/cjs/dockview/types.js +0 -9
- package/dist/cjs/dom.d.ts +0 -1
- package/dist/cjs/dom.js +0 -1
- package/dist/cjs/events.d.ts +10 -1
- package/dist/cjs/events.js +25 -2
- package/dist/cjs/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/cjs/gridview/baseComponentGridview.js +37 -27
- package/dist/cjs/gridview/basePanelView.d.ts +0 -1
- package/dist/cjs/gridview/basePanelView.js +7 -2
- package/dist/cjs/gridview/branchNode.d.ts +3 -2
- package/dist/cjs/gridview/branchNode.js +12 -2
- package/dist/cjs/gridview/gridview.d.ts +5 -3
- package/dist/cjs/gridview/gridview.js +54 -21
- package/dist/cjs/gridview/gridviewComponent.d.ts +10 -2
- package/dist/cjs/gridview/gridviewComponent.js +14 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
- package/dist/cjs/gridview/gridviewPanel.js +4 -5
- package/dist/cjs/gridview/leafNode.d.ts +0 -1
- package/dist/cjs/gridview/leafNode.js +0 -1
- package/dist/cjs/gridview/options.d.ts +1 -2
- package/dist/cjs/gridview/options.js +0 -1
- package/dist/cjs/gridview/types.d.ts +0 -1
- package/dist/cjs/gridview/types.js +0 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/lifecycle.d.ts +2 -3
- package/dist/cjs/lifecycle.js +5 -2
- package/dist/cjs/math.d.ts +0 -1
- package/dist/cjs/math.js +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts +1 -1
- package/dist/cjs/overlayRenderContainer.js +8 -4
- package/dist/cjs/panel/componentFactory.d.ts +0 -1
- package/dist/cjs/panel/componentFactory.js +0 -1
- package/dist/cjs/panel/types.d.ts +1 -2
- package/dist/cjs/panel/types.js +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/cjs/paneview/options.d.ts +1 -2
- package/dist/cjs/paneview/options.js +0 -1
- package/dist/cjs/paneview/paneview.d.ts +0 -1
- package/dist/cjs/paneview/paneview.js +0 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +0 -1
- package/dist/cjs/paneview/paneviewComponent.js +0 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +0 -1
- package/dist/cjs/paneview/paneviewPanel.js +0 -1
- package/dist/cjs/popoutWindow.d.ts +15 -4
- package/dist/cjs/popoutWindow.js +140 -56
- package/dist/cjs/resizable.d.ts +1 -2
- package/dist/cjs/resizable.js +1 -10
- package/dist/cjs/splitview/options.d.ts +3 -7
- package/dist/cjs/splitview/options.js +0 -1
- package/dist/cjs/splitview/splitview.d.ts +3 -1
- package/dist/cjs/splitview/splitview.js +12 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +0 -1
- package/dist/cjs/splitview/splitviewComponent.js +0 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
- package/dist/cjs/splitview/splitviewPanel.js +3 -4
- package/dist/cjs/splitview/viewItem.d.ts +0 -1
- package/dist/cjs/splitview/viewItem.js +0 -1
- package/dist/cjs/svg.d.ts +0 -1
- package/dist/cjs/svg.js +0 -1
- package/dist/cjs/types.d.ts +0 -1
- package/dist/cjs/types.js +0 -1
- package/dist/dockview-core.amd.js +1261 -526
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +1260 -525
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +1261 -526
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +1259 -527
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +1261 -526
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +1260 -525
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +25 -6
- package/dist/esm/api/component.api.js +19 -5
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
- package/dist/esm/api/dockviewPanelApi.d.ts +23 -7
- package/dist/esm/api/dockviewPanelApi.js +46 -13
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
- package/dist/esm/api/gridviewPanelApi.js +1 -4
- package/dist/esm/api/panelApi.d.ts +20 -9
- package/dist/esm/api/panelApi.js +23 -30
- package/dist/esm/api/paneviewPanelApi.d.ts +0 -1
- package/dist/esm/api/paneviewPanelApi.js +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
- package/dist/esm/api/splitviewPanelApi.js +0 -1
- package/dist/esm/array.d.ts +0 -1
- package/dist/esm/array.js +0 -1
- package/dist/esm/constants.d.ts +0 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +0 -1
- package/dist/esm/dnd/abstractDragHandler.js +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts +0 -1
- package/dist/esm/dnd/dataTransfer.js +0 -1
- package/dist/esm/dnd/dnd.d.ts +0 -1
- package/dist/esm/dnd/dnd.js +0 -1
- package/dist/esm/dnd/droptarget.d.ts +20 -9
- package/dist/esm/dnd/droptarget.js +59 -14
- package/dist/esm/dnd/ghost.d.ts +0 -1
- package/dist/esm/dnd/ghost.js +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts +0 -1
- package/dist/esm/dnd/groupDragHandler.js +1 -2
- package/dist/esm/dnd/overlay.d.ts +0 -1
- package/dist/esm/dnd/overlay.js +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts +0 -1
- package/dist/esm/dockview/components/panel/content.js +6 -7
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts +5 -13
- package/dist/esm/dockview/components/tab/tab.js +6 -7
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +17 -14
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +24 -20
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +3 -3
- package/dist/esm/dockview/components/titlebar/voidContainer.js +6 -7
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js +0 -1
- package/dist/esm/dockview/deserializer.d.ts +0 -1
- package/dist/esm/dockview/deserializer.js +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +86 -25
- package/dist/esm/dockview/dockviewComponent.js +520 -162
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js +6 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +79 -34
- package/dist/esm/dockview/dockviewGroupPanelModel.js +169 -53
- package/dist/esm/dockview/dockviewPanel.d.ts +8 -3
- package/dist/esm/dockview/dockviewPanel.js +39 -12
- package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -4
- package/dist/esm/dockview/dockviewPanelModel.js +2 -22
- package/dist/esm/dockview/options.d.ts +7 -3
- package/dist/esm/dockview/options.js +0 -1
- package/dist/esm/dockview/types.d.ts +1 -11
- package/dist/esm/dockview/types.js +1 -8
- package/dist/esm/dom.d.ts +0 -1
- package/dist/esm/dom.js +0 -1
- package/dist/esm/events.d.ts +10 -1
- package/dist/esm/events.js +14 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +15 -16
- package/dist/esm/gridview/baseComponentGridview.js +33 -27
- package/dist/esm/gridview/basePanelView.d.ts +0 -1
- package/dist/esm/gridview/basePanelView.js +7 -2
- package/dist/esm/gridview/branchNode.d.ts +3 -2
- package/dist/esm/gridview/branchNode.js +8 -2
- package/dist/esm/gridview/gridview.d.ts +5 -3
- package/dist/esm/gridview/gridview.js +49 -20
- package/dist/esm/gridview/gridviewComponent.d.ts +10 -2
- package/dist/esm/gridview/gridviewComponent.js +14 -1
- package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
- package/dist/esm/gridview/gridviewPanel.js +4 -5
- package/dist/esm/gridview/leafNode.d.ts +0 -1
- package/dist/esm/gridview/leafNode.js +0 -1
- package/dist/esm/gridview/options.d.ts +1 -2
- package/dist/esm/gridview/options.js +0 -1
- package/dist/esm/gridview/types.d.ts +0 -1
- package/dist/esm/gridview/types.js +0 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +0 -2
- package/dist/esm/lifecycle.d.ts +2 -3
- package/dist/esm/lifecycle.js +5 -2
- package/dist/esm/math.d.ts +0 -1
- package/dist/esm/math.js +0 -1
- package/dist/esm/overlayRenderContainer.d.ts +1 -1
- package/dist/esm/overlayRenderContainer.js +8 -4
- package/dist/esm/panel/componentFactory.d.ts +0 -1
- package/dist/esm/panel/componentFactory.js +0 -1
- package/dist/esm/panel/types.d.ts +1 -2
- package/dist/esm/panel/types.js +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js +0 -1
- package/dist/esm/paneview/options.d.ts +1 -2
- package/dist/esm/paneview/options.js +0 -1
- package/dist/esm/paneview/paneview.d.ts +0 -1
- package/dist/esm/paneview/paneview.js +0 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +0 -1
- package/dist/esm/paneview/paneviewComponent.js +0 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +0 -1
- package/dist/esm/paneview/paneviewPanel.js +0 -1
- package/dist/esm/popoutWindow.d.ts +15 -4
- package/dist/esm/popoutWindow.js +105 -52
- package/dist/esm/resizable.d.ts +1 -2
- package/dist/esm/resizable.js +1 -10
- package/dist/esm/splitview/options.d.ts +3 -7
- package/dist/esm/splitview/options.js +0 -1
- package/dist/esm/splitview/splitview.d.ts +3 -1
- package/dist/esm/splitview/splitview.js +8 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +0 -1
- package/dist/esm/splitview/splitviewComponent.js +0 -1
- package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
- package/dist/esm/splitview/splitviewPanel.js +3 -4
- package/dist/esm/splitview/viewItem.d.ts +0 -1
- package/dist/esm/splitview/viewItem.js +0 -1
- package/dist/esm/svg.d.ts +0 -1
- package/dist/esm/svg.js +0 -1
- package/dist/esm/types.d.ts +0 -1
- package/dist/esm/types.js +0 -1
- package/dist/styles/dockview.css +20 -6
- package/package.json +3 -3
- package/dist/cjs/api/component.api.d.ts.map +0 -1
- package/dist/cjs/api/component.api.js.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/dockviewPanelApi.js.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/gridviewPanelApi.js.map +0 -1
- package/dist/cjs/api/panelApi.d.ts.map +0 -1
- package/dist/cjs/api/panelApi.js.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/paneviewPanelApi.js.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/cjs/api/splitviewPanelApi.js.map +0 -1
- package/dist/cjs/array.d.ts.map +0 -1
- package/dist/cjs/array.js.map +0 -1
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/abstractDragHandler.js.map +0 -1
- package/dist/cjs/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/cjs/dnd/dataTransfer.js.map +0 -1
- package/dist/cjs/dnd/dnd.d.ts.map +0 -1
- package/dist/cjs/dnd/dnd.js.map +0 -1
- package/dist/cjs/dnd/droptarget.d.ts.map +0 -1
- package/dist/cjs/dnd/droptarget.js.map +0 -1
- package/dist/cjs/dnd/ghost.d.ts.map +0 -1
- package/dist/cjs/dnd/ghost.js.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/cjs/dnd/groupDragHandler.js.map +0 -1
- package/dist/cjs/dnd/overlay.d.ts.map +0 -1
- package/dist/cjs/dnd/overlay.js.map +0 -1
- package/dist/cjs/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/cjs/dockview/components/panel/content.js.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/cjs/dockview/components/tab/tab.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/cjs/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/cjs/dockview/deserializer.d.ts.map +0 -1
- package/dist/cjs/dockview/deserializer.js.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewComponent.js.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +0 -50
- package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/cjs/dockview/options.d.ts.map +0 -1
- package/dist/cjs/dockview/options.js.map +0 -1
- package/dist/cjs/dockview/types.d.ts.map +0 -1
- package/dist/cjs/dockview/types.js.map +0 -1
- package/dist/cjs/dom.d.ts.map +0 -1
- package/dist/cjs/dom.js.map +0 -1
- package/dist/cjs/events.d.ts.map +0 -1
- package/dist/cjs/events.js.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +0 -1
- package/dist/cjs/gridview/basePanelView.d.ts.map +0 -1
- package/dist/cjs/gridview/basePanelView.js.map +0 -1
- package/dist/cjs/gridview/branchNode.d.ts.map +0 -1
- package/dist/cjs/gridview/branchNode.js.map +0 -1
- package/dist/cjs/gridview/gridview.d.ts.map +0 -1
- package/dist/cjs/gridview/gridview.js.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewComponent.js.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/cjs/gridview/gridviewPanel.js.map +0 -1
- package/dist/cjs/gridview/leafNode.d.ts.map +0 -1
- package/dist/cjs/gridview/leafNode.js.map +0 -1
- package/dist/cjs/gridview/options.d.ts.map +0 -1
- package/dist/cjs/gridview/options.js.map +0 -1
- package/dist/cjs/gridview/types.d.ts.map +0 -1
- package/dist/cjs/gridview/types.js.map +0 -1
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/lifecycle.d.ts.map +0 -1
- package/dist/cjs/lifecycle.js.map +0 -1
- package/dist/cjs/math.d.ts.map +0 -1
- package/dist/cjs/math.js.map +0 -1
- package/dist/cjs/overlayRenderContainer.d.ts.map +0 -1
- package/dist/cjs/overlayRenderContainer.js.map +0 -1
- package/dist/cjs/panel/componentFactory.d.ts.map +0 -1
- package/dist/cjs/panel/componentFactory.js.map +0 -1
- package/dist/cjs/panel/types.d.ts.map +0 -1
- package/dist/cjs/panel/types.js.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/cjs/paneview/options.d.ts.map +0 -1
- package/dist/cjs/paneview/options.js.map +0 -1
- package/dist/cjs/paneview/paneview.d.ts.map +0 -1
- package/dist/cjs/paneview/paneview.js.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewComponent.js.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/cjs/paneview/paneviewPanel.js.map +0 -1
- package/dist/cjs/popoutWindow.d.ts.map +0 -1
- package/dist/cjs/popoutWindow.js.map +0 -1
- package/dist/cjs/resizable.d.ts.map +0 -1
- package/dist/cjs/resizable.js.map +0 -1
- package/dist/cjs/splitview/options.d.ts.map +0 -1
- package/dist/cjs/splitview/options.js.map +0 -1
- package/dist/cjs/splitview/splitview.d.ts.map +0 -1
- package/dist/cjs/splitview/splitview.js.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/cjs/splitview/splitviewPanel.js.map +0 -1
- package/dist/cjs/splitview/viewItem.d.ts.map +0 -1
- package/dist/cjs/splitview/viewItem.js.map +0 -1
- package/dist/cjs/svg.d.ts.map +0 -1
- package/dist/cjs/svg.js.map +0 -1
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js.map +0 -1
- package/dist/esm/api/component.api.d.ts.map +0 -1
- package/dist/esm/api/component.api.js.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewGroupPanelApi.js.map +0 -1
- package/dist/esm/api/dockviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/dockviewPanelApi.js.map +0 -1
- package/dist/esm/api/gridviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/gridviewPanelApi.js.map +0 -1
- package/dist/esm/api/panelApi.d.ts.map +0 -1
- package/dist/esm/api/panelApi.js.map +0 -1
- package/dist/esm/api/paneviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/paneviewPanelApi.js.map +0 -1
- package/dist/esm/api/splitviewPanelApi.d.ts.map +0 -1
- package/dist/esm/api/splitviewPanelApi.js.map +0 -1
- package/dist/esm/array.d.ts.map +0 -1
- package/dist/esm/array.js.map +0 -1
- package/dist/esm/constants.d.ts.map +0 -1
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/abstractDragHandler.js.map +0 -1
- package/dist/esm/dnd/dataTransfer.d.ts.map +0 -1
- package/dist/esm/dnd/dataTransfer.js.map +0 -1
- package/dist/esm/dnd/dnd.d.ts.map +0 -1
- package/dist/esm/dnd/dnd.js.map +0 -1
- package/dist/esm/dnd/droptarget.d.ts.map +0 -1
- package/dist/esm/dnd/droptarget.js.map +0 -1
- package/dist/esm/dnd/ghost.d.ts.map +0 -1
- package/dist/esm/dnd/ghost.js.map +0 -1
- package/dist/esm/dnd/groupDragHandler.d.ts.map +0 -1
- package/dist/esm/dnd/groupDragHandler.js.map +0 -1
- package/dist/esm/dnd/overlay.d.ts.map +0 -1
- package/dist/esm/dnd/overlay.js.map +0 -1
- package/dist/esm/dockview/components/panel/content.d.ts.map +0 -1
- package/dist/esm/dockview/components/panel/content.js.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js.map +0 -1
- package/dist/esm/dockview/components/tab/tab.d.ts.map +0 -1
- package/dist/esm/dockview/components/tab/tab.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.d.ts.map +0 -1
- package/dist/esm/dockview/components/watermark/watermark.js.map +0 -1
- package/dist/esm/dockview/deserializer.d.ts.map +0 -1
- package/dist/esm/dockview/deserializer.js.map +0 -1
- package/dist/esm/dockview/dockviewComponent.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewComponent.js.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanel.js.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPanelModel.js.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
- package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js +0 -28
- package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +0 -1
- package/dist/esm/dockview/options.d.ts.map +0 -1
- package/dist/esm/dockview/options.js.map +0 -1
- package/dist/esm/dockview/types.d.ts.map +0 -1
- package/dist/esm/dockview/types.js.map +0 -1
- package/dist/esm/dom.d.ts.map +0 -1
- package/dist/esm/dom.js.map +0 -1
- package/dist/esm/events.d.ts.map +0 -1
- package/dist/esm/events.js.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +0 -1
- package/dist/esm/gridview/baseComponentGridview.js.map +0 -1
- package/dist/esm/gridview/basePanelView.d.ts.map +0 -1
- package/dist/esm/gridview/basePanelView.js.map +0 -1
- package/dist/esm/gridview/branchNode.d.ts.map +0 -1
- package/dist/esm/gridview/branchNode.js.map +0 -1
- package/dist/esm/gridview/gridview.d.ts.map +0 -1
- package/dist/esm/gridview/gridview.js.map +0 -1
- package/dist/esm/gridview/gridviewComponent.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewComponent.js.map +0 -1
- package/dist/esm/gridview/gridviewPanel.d.ts.map +0 -1
- package/dist/esm/gridview/gridviewPanel.js.map +0 -1
- package/dist/esm/gridview/leafNode.d.ts.map +0 -1
- package/dist/esm/gridview/leafNode.js.map +0 -1
- package/dist/esm/gridview/options.d.ts.map +0 -1
- package/dist/esm/gridview/options.js.map +0 -1
- package/dist/esm/gridview/types.d.ts.map +0 -1
- package/dist/esm/gridview/types.js.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lifecycle.d.ts.map +0 -1
- package/dist/esm/lifecycle.js.map +0 -1
- package/dist/esm/math.d.ts.map +0 -1
- package/dist/esm/math.js.map +0 -1
- package/dist/esm/overlayRenderContainer.d.ts.map +0 -1
- package/dist/esm/overlayRenderContainer.js.map +0 -1
- package/dist/esm/panel/componentFactory.d.ts.map +0 -1
- package/dist/esm/panel/componentFactory.js.map +0 -1
- package/dist/esm/panel/types.d.ts.map +0 -1
- package/dist/esm/panel/types.js.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/draggablePaneviewPanel.js.map +0 -1
- package/dist/esm/paneview/options.d.ts.map +0 -1
- package/dist/esm/paneview/options.js.map +0 -1
- package/dist/esm/paneview/paneview.d.ts.map +0 -1
- package/dist/esm/paneview/paneview.js.map +0 -1
- package/dist/esm/paneview/paneviewComponent.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewComponent.js.map +0 -1
- package/dist/esm/paneview/paneviewPanel.d.ts.map +0 -1
- package/dist/esm/paneview/paneviewPanel.js.map +0 -1
- package/dist/esm/popoutWindow.d.ts.map +0 -1
- package/dist/esm/popoutWindow.js.map +0 -1
- package/dist/esm/resizable.d.ts.map +0 -1
- package/dist/esm/resizable.js.map +0 -1
- package/dist/esm/splitview/options.d.ts.map +0 -1
- package/dist/esm/splitview/options.js.map +0 -1
- package/dist/esm/splitview/splitview.d.ts.map +0 -1
- package/dist/esm/splitview/splitview.js.map +0 -1
- package/dist/esm/splitview/splitviewComponent.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewComponent.js.map +0 -1
- package/dist/esm/splitview/splitviewPanel.d.ts.map +0 -1
- package/dist/esm/splitview/splitviewPanel.js.map +0 -1
- package/dist/esm/splitview/viewItem.d.ts.map +0 -1
- package/dist/esm/splitview/viewItem.js.map +0 -1
- package/dist/esm/svg.d.ts.map +0 -1
- package/dist/esm/svg.js.map +0 -1
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockview-core.min.js","sources":["../../src/lifecycle.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../../src/dnd/dataTransfer.ts","../../src/events.ts","../../src/panel/componentFactory.ts","../../src/dom.ts","../../src/array.ts","../../src/math.ts","../../src/splitview/viewItem.ts","../../src/splitview/splitview.ts","../../src/paneview/paneview.ts","../../src/gridview/leafNode.ts","../../src/gridview/branchNode.ts","../../src/gridview/gridview.ts","../../src/api/component.api.ts","../../src/dnd/dnd.ts","../../src/dnd/droptarget.ts","../../src/dockview/types.ts","../../src/dockview/components/panel/content.ts","../../src/dnd/abstractDragHandler.ts","../../src/dockview/components/tab/tab.ts","../../src/dnd/groupDragHandler.ts","../../src/dnd/ghost.ts","../../src/dockview/components/titlebar/voidContainer.ts","../../src/dockview/components/titlebar/tabsContainer.ts","../../src/dockview/dockviewGroupPanelModel.ts","../../src/resizable.ts","../../src/gridview/baseComponentGridview.ts","../../src/api/panelApi.ts","../../src/api/splitviewPanelApi.ts","../../src/api/paneviewPanelApi.ts","../../src/gridview/basePanelView.ts","../../src/paneview/paneviewPanel.ts","../../src/paneview/draggablePaneviewPanel.ts","../../src/api/gridviewPanelApi.ts","../../src/gridview/gridviewPanel.ts","../../src/api/dockviewGroupPanelApi.ts","../../src/dockview/dockviewGroupPanel.ts","../../src/dockview/options.ts","../../src/api/dockviewPanelApi.ts","../../src/dockview/dockviewPanel.ts","../../src/svg.ts","../../src/dockview/components/tab/defaultTab.ts","../../src/dockview/dockviewPanelModel.ts","../../src/dockview/deserializer.ts","../../src/dockview/components/watermark/watermark.ts","../../src/dnd/overlay.ts","../../src/dockview/dockviewFloatingGroupPanel.ts","../../src/popoutWindow.ts","../../src/dockview/dockviewPopoutGroupPanel.ts","../../src/constants.ts","../../src/overlayRenderContainer.ts","../../src/dockview/dockviewComponent.ts","../../src/paneview/defaultPaneviewHeader.ts","../../src/paneview/paneviewComponent.ts","../../src/gridview/gridviewComponent.ts","../../src/splitview/splitviewComponent.ts","../../src/splitview/splitviewPanel.ts"],"sourcesContent":[null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Disposable","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","TransferObject","PanelTransfer","constructor","viewId","groupId","panelId","super","this","PaneTransfer","paneId","LocalSelectionTransfer","getInstance","INSTANCE","hasData","proto","clearData","undefined","data","getData","setData","getPanelData","panelTransfer","prototype","getPaneData","paneTransfer","exports","DockviewEvent","Event","any","children","listener","disposables","map","child","dispose","forEach","d","Stacktrace","create","_a","Error","stack","value","print","console","warn","Listener","callback","stacktrace","Emitter","setLeakageMonitorEnabled","isEnabled","ENABLE_TRACKING","MEMORY_LEAK_WATCHER","clear","options","_listeners","_disposed","event","_event","replay","_last","push","index","indexOf","splice","add","fire","e","length","queueMicrotask","delete","addDisposableWindowListener","element","addEventListener","removeEventListener","addDisposableListener","events","Map","size","set","TickDelayedEvent","_onFired","onEvent","timer","clearTimeout","setTimeout","NONE","from","func","CompositeDisposable","isDisposed","_isDisposed","args","_disposables","addDisposables","arg","MutableDisposable","_disposable","disposable","createComponent","id","componentName","components","frameworkComponents","createFrameworkComponent","fallback","Component","FrameworkComponent","watchElementResize","cb","observer","ResizeObserver","entires","requestAnimationFrame","firstEntry","observe","unobserve","disconnect","removeClasses","classes","classname","classList","contains","remove","addClasses","toggleClass","className","isToggled","hasClass","isAncestor","testChild","testAncestor","parentNode","tag","Array","slice","call","trackFocus","FocusTracker","_onDidFocus","onDidFocus","_onDidBlur","onDidBlur","hasFocus","activeElement","loosingFocus","onFocus","onBlur","window","_refreshStateHandler","HTMLElement","refreshState","QUASI_PREVENT_DEFAULT_KEY","quasiDefaultPrevented","getDomNodePagePosition","domNode","left","top","width","height","getBoundingClientRect","scrollX","scrollY","tail","arr","sequenceEquals","arr1","arr2","i","pushToStart","unshift","pushToEnd","array","findIndex","t","clamp","min","max","Math","sequentialNumberGenerator","next","toString","range","to","result","ViewItem","_size","cachedVisibleSize","_cachedVisibleSize","visible","minimumSize","view","viewMinimumSize","maximumSize","viewMaximumSize","priority","snap","enabled","container","pointerEvents","setVisible","toggle","Orientation","SashState","LayoutPriority","Sizing","Distribute","Split","Invisible","Splitview","contentSize","_contentSize","orthogonalSize","_orthogonalSize","viewItems","proportions","_proportions","orientation","_orientation","tmp","HORIZONTAL","reduce","r","item","Number","POSITIVE_INFINITY","startSnappingEnabled","_startSnappingEnabled","updateSashEnablement","endSnappingEnabled","_endSnappingEnabled","sashes","_onDidSashEnd","onDidSashEnd","_onDidAddView","onDidAddView","_onDidRemoveView","onDidRemoveView","resize","delta","sizes","x","lowPriorityIndexes","highPriorityIndexes","overloadMinDelta","NEGATIVE_INFINITY","overloadMaxDelta","snapBefore","snapAfter","upIndexes","downIndexes","upItems","upSizes","downItems","downSizes","minDeltaUp","_","maxDeltaUp","maxDeltaDown","minDeltaDown","minDelta","maxDelta","snapped","snapView","limitDelta","actualDelta","deltaUp","viewDelta","deltaDown","createContainer","proportionalLayout","viewContainer","createViewContainer","sashContainer","createSashContainer","styles","descriptor","views","viewDescriptor","sizing","addView","saveProportions","separatorBorder","removeProperty","setProperty","isViewVisible","setViewVisible","viewItem","distributeEmptySpace","layoutViews","getViewSize","resizeView","indexes","filter","Low","High","round","relayout","getViews","onDidChange","skipLayout","viewSize","newSize","removeChild","sash","onPointerStart","iframes","iframe","start","clientX","clientY","sashIndex","fn","firstIndex","s","snapBeforeIndex","findFirstSnapIndex","snapAfterIndex","snappedViewItem","halfSize","floor","onPointerMove","end","sashItem","distributeViewSizes","flexibleViewItems","flexibleSize","removeView","getViewCachedVisibleSize","moveView","layout","previousSize","total","proportion","lowPriorityIndex","emptyDelta","sum","offset","VERTICAL","previous","collapsesDown","expandsDown","reverseViews","reverse","collapsesUp","expandsUp","position","snappedBefore","snappedAfter","updateSash","MINIMUM","MAXIMUM","DISABLED","ENABLED","state","orientationClassname","Paneview","splitview","paneItems","skipAnimation","_onDidChange","getPanes","pane","onDidChangeExpansionState","setupAnimation","paneItem","addPane","removePane","skipDispose","animationTimer","LeafNode","minimumWidth","maximumWidth","minimumHeight","maximumHeight","minimumOrthogonalSize","maximumOrthogonalSize","BranchNode","c","Normal","priorities","some","p","childDescriptors","_childrenDisposable","_onDidVisibilityChange","onDidVisibilityChange","childDescriptor","node","setupChildrenEvents","isChildVisible","setChildVisible","wereAllChildrenHidden","areAllChildrenHidden","moveChild","_removeChild","_addChild","getChildSize","resizeChild","addChild","getChildCachedVisibleSize","findLeaf","candiateNode","last","flipNode","orthogonal","totalSize","childSize","indexInParent","parentElement","el","firstElementChild","lastElementChild","nextElementSibling","getGridLocation","test","getRelativeLocation","rootOrientation","location","direction","getLocationOrientation","getDirectionOrientation","rest","_index","isGridBranchNode","serializeBranchNode","box","toJSON","Gridview","_root","root","maximizedView","_maximizedNode","hasMaximizedView","maximizeView","getNode","exitMaximizedView","hideAllViewsBut","parent","exclude","_onDidMaxmizedNodeChange","showViewsInReverseOrder","serialize","getView","deserialize","json","deserializer","_deserialize","_deserializeNode","serializedChild","fromJSON","oldRoot","insertOrthogonalSplitviewAtRoot","childReference","progmaticSelect","_getViews","nodeCachedVisibleSize","path","n","l","onDidMaxmizedNodeChange","parentLocation","pathToParent","grandParent","parentIndex","__","newSiblingSize","newSiblingCachedVisibleSize","newParent","newSibling","nodeToRemove","sibling","isSiblingVisible","siblingSizing","PaneviewApi","component","panels","onDidLayoutChange","onDidLayoutFromJSON","onDidDrop","emitter","Object","assign","api","removePanel","panel","getPanel","movePanel","focus","addPanel","DockviewApi","totalPanels","onDidActiveGroupChange","onDidAddGroup","onDidRemoveGroup","onDidActivePanelChange","onDidAddPanel","onDidRemovePanel","onWillDragGroup","onWillDragPanel","groups","activePanel","activeGroup","getGroupPanel","force","addGroup","closeAllGroups","removeGroup","group","getGroup","addFloatingGroup","coord","moveToNext","moveToPrevious","maximizeGroup","hasMaximizedGroup","exitMaxmizedGroup","exitMaximizedGroup","onDidMaxmizedGroupChange","addPopoutGroup","DragAndDropObserver","callbacks","target","registerListeners","onDragEnter","onDragOver","preventDefault","onDragLeave","onDragEnd","onDrop","directionToPosition","positionToDirection","DEFAULT_ACTIVATION_SIZE","DEFAULT_SIZE","Droptarget","_state","_onDrop","_acceptedTargetZonesSet","Set","acceptedTargetZones","dnd","removeDropTarget","clientWidth","clientHeight","rect","currentTarget","y","quadrant","calculateQuadrant","isAlreadyUsed","canDisplayOverlay","markAsUsed","targetElement","overlayElement","append","toggleClasses","stopPropagation","nativeEvent","setTargetZones","setOverlayModel","model","overlayModel","USED_EVENT_ID","isSmallX","isSmallY","isLeft","isRight","isTop","isBottom","rightClass","leftClass","topClass","bottomClass","sizeOptions","_b","translate","transform","overlayType","activationSizeOptions","activationSize","threshold","xp","yp","has","calculateQuadrantAsPercentage","calculateQuadrantAsPixels","DockviewDropTargets","ContentContainer","_element","accessor","tabIndex","dropTarget","locked","shiftKey","Panel","show","display","hide","renderPanel","asActive","doRender","isPanelActive","content","renderer","overlayRenderContainer","detatch","attach","referenceContainer","focusTracker","openPanel","_width","_height","closePanel","DragHandler","dataDisposable","pointerEventsDisposable","_onDragStart","onDragStart","configure","isCancelled","defaultPrevented","dataTransfer","effectAllowed","items","TabDragHandler","Tab","_onChanged","onChanged","_onDropped","draggable","dragHandler","droptarget","setActive","isActive","setContent","part","GroupDragHandler","dragEvent","getComputedStyle","bgColor","getPropertyValue","color","ghostElement","backgroundColor","padding","fontSize","lineHeight","borderRadius","textContent","body","setDragImage","addGhostImage","VoidContainer","doSetGroupActive","handler","voidDropTarget","TabsContainer","tabs","hidden","_hidden","setRightActionsElement","rightActions","rightActionsContainer","setLeftActionsElement","leftActions","leftActionsContainer","setPrefixActionsElement","preActions","preActionsContainer","tab","selectedIndex","_onTabDragStart","onTabDragStart","_onGroupDragStart","onGroupDragStart","singleTabMode","tabContainer","voidContainer","disableFloatingGroups","rootTop","rootLeft","inDragMode","button","_isGroupActive","addTab","tabToRemove","setActivePanel","isActivePanel","find","isFloatingGroupsEnabled","isFloatingWithOnePanel","alreadyFocused","isContentFocused","skipFocus","DockviewGroupPanelModel","_activePanel","_locked","_panels","isEmpty","hasWatermark","watermark","header","tabsContainer","contentContainer","_location","groupPanel","_onDidLocationChange","mostRecentlyUsed","_onMove","onMove","_onDidDrop","_onDidAddPanel","_onDidRemovePanel","_onDidActivePanelChange","hideHeader","handleDropEvent","initialize","doAddPanel","updateContainer","createRightHeaderActionsElement","_rightHeaderActions","init","containerApi","createLeftHeaderActionsElement","_leftHeaderActions","createPrefixHeaderActionsElement","_prefixHeaderActions","rerender","activeView","normalizedIndex","suppressRoll","containsPanel","includes","_params","update","skipSetPanelActive","skipSetGroupActive","updateParentGroup","doSetActivePanel","groupItemOrId","panelToRemove","_removePanel","closeAllPanels","arrPanelCpy","doClose","updateActions","isGroupActive","_d","_c","doRemovePanel","nextPanel","skipSetActive","hasExistingPanel","updateMru","createWatermarkComponent","showDndOverlay","itemId","Resizable","disableResizing","_disableResizing","entry","offsetParent","currentElement","DocumentFragment","host","isInDocument","contentRect","nextLayoutId","toTarget","BaseGrid","_id","_groups","values","gridview","_activeGroup","disableAutoResizing","_onDidLayoutChange","_onDidRemoveGroup","_onDidAddGroup","_onDidActiveGroupChange","_bufferOnDidLayoutChange","isVisible","isMaximizedGroup","doAddGroup","doRemoveGroup","get","skipActive","forceResize","PanelApiImpl","isFocused","_isFocused","_isActive","_isVisible","panelUpdatesDisposable","_onDidDimensionChange","onDidDimensionsChange","_onDidChangeFocus","onDidFocusChange","_onFocusEvent","onFocusEvent","_onVisibilityChange","onVisibilityChange","_onDidActiveChange","onDidActiveChange","_onActiveChange","onActiveChange","_onUpdateParameters","onUpdateParameters","parameters","params","updateParameters","SplitviewPanelApiImpl","_onDidConstraintsChangeInternal","onDidConstraintsChangeInternal","_onDidConstraintsChange","onDidConstraintsChange","_onDidSizeChange","onDidSizeChange","setConstraints","setSize","PaneviewPanelApiImpl","_pane","_onDidExpansionChange","onDidExpansionChange","_onMouseEnter","onMouseEnter","_onMouseLeave","onMouseLeave","setExpanded","isExpanded","BasePanelView","outline","overflow","getComponent","key","keys","PaneviewPanel","headerSize","_minimumBodySize","_maximumBodySize","minimumBodySize","maximumBodySize","headerVisible","_headerVisible","headerComponent","isHeaderVisible","_onDidChangeExpansionState","_isExpanded","expandedSize","ev","isPanelExpanded","renderOnce","expanded","bodyPart","getBodyComponent","headerPart","getHeaderComponent","title","minHeight","maxHeight","DraggablePaneviewPanel","disableDnd","initDragFeatures","accessorId","existingPanel","allPanels","fromIndex","toIndex","GridviewPanelApiImpl","GridviewPanel","_priority","_snap","_minimumWidth","_evaluatedMinimumWidth","updateConstraints","_minimumHeight","_evaluatedMinimumHeight","_maximumHeight","_evaluatedMaximumHeight","_maximumWidth","_evaluatedMaximumWidth","MAX_SAFE_INTEGER","maximum","minimum","NOT_INITIALIZED_MESSAGE","DockviewGroupPanelApiImpl","_group","onDidLocationChange","moveTo","moveGroupOrPanel","maximize","isMaximized","exitMaximized","DockviewGroupPanel","_model","isPanelOptionsWithPanel","referencePanel","isPanelOptionsWithGroup","referenceGroup","isGroupOptionsWithPanel","isGroupOptionsWithGroup","DockviewPanelApiImpl","isOldGroupActive","_onDidGroupChange","_onDidTitleChange","onDidTitleChange","onDidGroupChange","_onDidRendererChange","onDidRendererChange","setTitle","setRenderer","close","DockviewPanel","_title","_renderer","contentComponent","tabComponent","isPanelVisible","createSvgElementFromPath","svg","createElementNS","setAttributeNS","viewbox","createCloseButton","DefaultTab","_content","_actionContainer","_list","action","render","onGroupChange","onPanelVisibleChange","_isPanelVisible","DockviewPanelModel","_tab","createContentComponent","createTabComponent","frameworkComponentFactory","tabComponents","frameworkTabComponents","defaultTabComponent","DefaultDockviewDeserialzier","panelData","viewData","Watermark","emptySpace","flexGrow","actionsContainer","closeAnchor","_api","_visible","isOneGroup","bringElementToFront","Overlay","minimumInViewportWidth","minimumInViewportHeight","_onDidChangeEnd","onDidChangeEnd","setupResize","setBounds","bounds","containerRect","overlayRect","xOffset","getMinimumWidth","yOffset","getMinimumHeight","setupDrag","dragTarget","move","track","resizeHandleElement","startPosition","originalY","originalHeight","originalX","originalWidth","moveTop","MAX_VALUE","MINIMUM_HEIGHT","moveBottom","moveLeft","MINIMUM_WIDTH","moveRight","DockviewFloatingGroupPanel","overlay","PopoutWindow","_onDidClose","onDidClose","_window","dimensions","screenX","screenY","innerWidth","innerHeight","open","url","features","entries","join","externalWindow","cleanUp","externalDocument","div","replaceChildren","styleSheetList","styleSheets","href","link","rel","cssTexts","cssRules","rule","err","addStyles","DockviewPopoutGroupPanel","popoutUrl","DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE","DEFAULT_FLOATING_GROUP_POSITION","OverlayRenderContainer","destroy","createFocusableElement","focusContainer","box2","visibilityChanged","DEFAULT_ROOT_OVERLAY_MODEL","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","flatMap","_options","defaultRenderer","nextGroupId","_deserializer","_onWillDragPanel","_onWillDragGroup","_onDidLayoutFromJSON","_floatingGroups","_popoutGroups","gready","debug","updateWatermark","watermarkComponent","watermarkFrameworkComponent","_rootDropTarget","Edge","rootOverlayModel","orthogonalize","createGroup","removeEmptyGroup","skipRemoveGroup","theme","toClassList","list","cls","startsWith","getTheme","popoutWindow","overlayLeft","overlayTop","floatingGroupBounds","minimumWidthWithinViewport","_f","_e","minimumHeightWithinViewport","querySelector","floatingGroupPanel","createGroupAtLocation","updateOptions","changed_orientation","changed_floatingGroupBounds","changed_rootOverlayOptions","floating","includePanel","doSetGroupAndPanelActive","collection","floats","popoutGroups","grid","floatingGroups","isArray","createGroupFromSerializedState","createdPanels","serializedFloatingGroups","serializedFloatingGroup","serializedPopoutGroups","serializedPopoutGroup","floatingGroup","hasActiveGroup","hasActivePanel","findGroup","createPanel","o","relativeLocation","watermarkContainer","selectedGroup","destinationGroup","sourceGroupId","sourceItemId","destinationTarget","destinationIndex","sourceGroup","referenceLocation","targetLocation","targetParentLocation","sourceLocation","sourceParentLocation","targetGroup","updatedReferenceLocation","groupItem","dropLocation","moveGroup","selectedFloatingGroup","selectedPopoutGroup","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","removedPanel","reference","paneview","_paneview","_viewDisposables","frameworkWrapper","headerComponents","headerframeworkComponents","serializedPaneview","_splitview","_splitviewChangeDisposable","v","doAddView","serializedSplitview","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"dockview-core.min.js","sources":["../src/lifecycle.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/dnd/dataTransfer.ts","../src/events.ts","../src/panel/componentFactory.ts","../src/dom.ts","../src/array.ts","../src/math.ts","../src/splitview/viewItem.ts","../src/splitview/splitview.ts","../src/paneview/paneview.ts","../src/gridview/leafNode.ts","../src/gridview/branchNode.ts","../src/gridview/gridview.ts","../src/api/component.api.ts","../src/dnd/dnd.ts","../src/dnd/droptarget.ts","../src/dockview/components/panel/content.ts","../src/dnd/abstractDragHandler.ts","../src/dockview/components/tab/tab.ts","../src/dnd/groupDragHandler.ts","../src/dnd/ghost.ts","../src/dockview/components/titlebar/voidContainer.ts","../src/dockview/components/titlebar/tabsContainer.ts","../src/dockview/dockviewGroupPanelModel.ts","../src/resizable.ts","../src/gridview/baseComponentGridview.ts","../src/api/panelApi.ts","../src/api/splitviewPanelApi.ts","../src/api/paneviewPanelApi.ts","../src/gridview/basePanelView.ts","../src/paneview/paneviewPanel.ts","../src/paneview/draggablePaneviewPanel.ts","../src/api/gridviewPanelApi.ts","../src/gridview/gridviewPanel.ts","../src/api/dockviewGroupPanelApi.ts","../src/dockview/dockviewGroupPanel.ts","../src/dockview/options.ts","../src/api/dockviewPanelApi.ts","../src/dockview/dockviewPanel.ts","../src/svg.ts","../src/dockview/components/tab/defaultTab.ts","../src/dockview/dockviewPanelModel.ts","../src/dockview/deserializer.ts","../src/dockview/components/watermark/watermark.ts","../src/dnd/overlay.ts","../src/dockview/dockviewFloatingGroupPanel.ts","../src/constants.ts","../src/overlayRenderContainer.ts","../../../node_modules/tslib/tslib.es6.js","../src/popoutWindow.ts","../src/dockview/dockviewComponent.ts","../src/paneview/defaultPaneviewHeader.ts","../src/paneview/paneviewComponent.ts","../src/gridview/gridviewComponent.ts","../src/splitview/splitviewComponent.ts","../src/splitview/splitviewPanel.ts"],"sourcesContent":["export var Disposable;\n(function (Disposable) {\n Disposable.NONE = {\n dispose: () => {\n // noop\n },\n };\n function from(func) {\n return {\n dispose: () => {\n func();\n },\n };\n }\n Disposable.from = from;\n})(Disposable || (Disposable = {}));\nexport class CompositeDisposable {\n get isDisposed() {\n return this._isDisposed;\n }\n constructor(...args) {\n this._isDisposed = false;\n this._disposables = args;\n }\n addDisposables(...args) {\n args.forEach((arg) => this._disposables.push(arg));\n }\n dispose() {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._disposables.forEach((arg) => arg.dispose());\n this._disposables = [];\n }\n}\nexport class MutableDisposable {\n constructor() {\n this._disposable = Disposable.NONE;\n }\n set value(disposable) {\n if (this._disposable) {\n this._disposable.dispose();\n }\n this._disposable = disposable;\n }\n dispose() {\n if (this._disposable) {\n this._disposable.dispose();\n this._disposable = Disposable.NONE;\n }\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","class TransferObject {\n}\nexport class PanelTransfer extends TransferObject {\n constructor(viewId, groupId, panelId) {\n super();\n this.viewId = viewId;\n this.groupId = groupId;\n this.panelId = panelId;\n }\n}\nexport class PaneTransfer extends TransferObject {\n constructor(viewId, paneId) {\n super();\n this.viewId = viewId;\n this.paneId = paneId;\n }\n}\n/**\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\n */\nexport class LocalSelectionTransfer {\n constructor() {\n // protect against external instantiation\n }\n static getInstance() {\n return LocalSelectionTransfer.INSTANCE;\n }\n hasData(proto) {\n return proto && proto === this.proto;\n }\n clearData(proto) {\n if (this.hasData(proto)) {\n this.proto = undefined;\n this.data = undefined;\n }\n }\n getData(proto) {\n if (this.hasData(proto)) {\n return this.data;\n }\n return undefined;\n }\n setData(data, proto) {\n if (proto) {\n this.data = data;\n this.proto = proto;\n }\n }\n}\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\nexport function getPanelData() {\n const panelTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return panelTransfer.getData(PanelTransfer.prototype)[0];\n}\nexport function getPaneData() {\n const paneTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return paneTransfer.getData(PaneTransfer.prototype)[0];\n}\n","export var Event;\n(function (Event) {\n Event.any = (...children) => {\n return (listener) => {\n const disposables = children.map((child) => child(listener));\n return {\n dispose: () => {\n disposables.forEach((d) => {\n d.dispose();\n });\n },\n };\n };\n };\n})(Event || (Event = {}));\nexport class DockviewEvent {\n constructor() {\n this._defaultPrevented = false;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n preventDefault() {\n this._defaultPrevented = true;\n }\n}\nclass LeakageMonitor {\n constructor() {\n this.events = new Map();\n }\n get size() {\n return this.events.size;\n }\n add(event, stacktrace) {\n this.events.set(event, stacktrace);\n }\n delete(event) {\n this.events.delete(event);\n }\n clear() {\n this.events.clear();\n }\n}\nclass Stacktrace {\n static create() {\n var _a;\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\n }\n constructor(value) {\n this.value = value;\n }\n print() {\n console.warn(this.value);\n }\n}\nclass Listener {\n constructor(callback, stacktrace) {\n this.callback = callback;\n this.stacktrace = stacktrace;\n }\n}\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\nexport class Emitter {\n static setLeakageMonitorEnabled(isEnabled) {\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.clear();\n }\n Emitter.ENABLE_TRACKING = isEnabled;\n }\n get value() {\n return this._last;\n }\n constructor(options) {\n this.options = options;\n this._listeners = [];\n this._disposed = false;\n }\n get event() {\n if (!this._event) {\n this._event = (callback) => {\n var _a;\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\n callback(this._last);\n }\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\n this._listeners.push(listener);\n return {\n dispose: () => {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n else if (Emitter.ENABLE_TRACKING) {\n // console.warn(\n // `Listener already disposed`,\n // Stacktrace.create().print()\n // );\n }\n },\n };\n };\n if (Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\n }\n }\n return this._event;\n }\n fire(e) {\n this._last = e;\n for (const listener of this._listeners) {\n listener.callback(e);\n }\n }\n dispose() {\n if (!this._disposed) {\n this._disposed = true;\n if (this._listeners.length > 0) {\n if (Emitter.ENABLE_TRACKING) {\n queueMicrotask(() => {\n var _a;\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\n for (const listener of this._listeners) {\n console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\n }\n });\n }\n this._listeners = [];\n }\n if (Emitter.ENABLE_TRACKING && this._event) {\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\n }\n }\n }\n}\nEmitter.ENABLE_TRACKING = false;\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\nexport function addDisposableWindowListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport function addDisposableListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport class TickDelayedEvent {\n constructor() {\n this._onFired = new Emitter();\n this.onEvent = this._onFired.event;\n }\n fire() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this._onFired.fire();\n clearTimeout(this.timer);\n });\n }\n dispose() {\n this._onFired.dispose();\n }\n}\n","export function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {\n const Component = typeof componentName === 'string'\n ? components[componentName]\n : undefined;\n const FrameworkComponent = typeof componentName === 'string'\n ? frameworkComponents[componentName]\n : undefined;\n if (Component && FrameworkComponent) {\n throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);\n }\n if (FrameworkComponent) {\n if (!createFrameworkComponent) {\n throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);\n }\n return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);\n }\n if (!Component) {\n if (fallback) {\n return fallback();\n }\n throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);\n }\n return new Component(id, componentName);\n}\n","import { Emitter, addDisposableListener, addDisposableWindowListener, } from './events';\nimport { CompositeDisposable } from './lifecycle';\nexport function watchElementResize(element, cb) {\n const observer = new ResizeObserver((entires) => {\n /**\n * Fast browser window resize produces Error: ResizeObserver loop limit exceeded.\n * The error isn't visible in browser console, doesn't affect functionality, but degrades performance.\n * See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523\n */\n requestAnimationFrame(() => {\n const firstEntry = entires[0];\n cb(firstEntry);\n });\n });\n observer.observe(element);\n return {\n dispose: () => {\n observer.unobserve(element);\n observer.disconnect();\n },\n };\n}\nexport const removeClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (element.classList.contains(classname)) {\n element.classList.remove(classname);\n }\n }\n};\nexport const addClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (!element.classList.contains(classname)) {\n element.classList.add(classname);\n }\n }\n};\nexport const toggleClass = (element, className, isToggled) => {\n const hasClass = element.classList.contains(className);\n if (isToggled && !hasClass) {\n element.classList.add(className);\n }\n if (!isToggled && hasClass) {\n element.classList.remove(className);\n }\n};\nexport function isAncestor(testChild, testAncestor) {\n while (testChild) {\n if (testChild === testAncestor) {\n return true;\n }\n testChild = testChild.parentNode;\n }\n return false;\n}\nexport function getElementsByTagName(tag) {\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\n}\nexport function trackFocus(element) {\n return new FocusTracker(element);\n}\n/**\n * Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default\n */\nclass FocusTracker extends CompositeDisposable {\n constructor(element) {\n super();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n let hasFocus = isAncestor(document.activeElement, element);\n let loosingFocus = false;\n const onFocus = () => {\n loosingFocus = false;\n if (!hasFocus) {\n hasFocus = true;\n this._onDidFocus.fire();\n }\n };\n const onBlur = () => {\n if (hasFocus) {\n loosingFocus = true;\n window.setTimeout(() => {\n if (loosingFocus) {\n loosingFocus = false;\n hasFocus = false;\n this._onDidBlur.fire();\n }\n }, 0);\n }\n };\n this._refreshStateHandler = () => {\n const currentNodeHasFocus = isAncestor(document.activeElement, element);\n if (currentNodeHasFocus !== hasFocus) {\n if (hasFocus) {\n onBlur();\n }\n else {\n onFocus();\n }\n }\n };\n if (element instanceof HTMLElement) {\n this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));\n this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));\n }\n else {\n this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));\n this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));\n }\n }\n refreshState() {\n this._refreshStateHandler();\n }\n}\n// quasi: apparently, but not really; seemingly\nconst QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';\n// mark an event directly for other listeners to check\nexport function quasiPreventDefault(event) {\n event[QUASI_PREVENT_DEFAULT_KEY] = true;\n}\n// check if this event has been marked\nexport function quasiDefaultPrevented(event) {\n return event[QUASI_PREVENT_DEFAULT_KEY];\n}\nexport function addStyles(document, styleSheetList) {\n const styleSheets = Array.from(styleSheetList);\n for (const styleSheet of styleSheets) {\n if (styleSheet.href) {\n const link = document.createElement('link');\n link.href = styleSheet.href;\n link.type = styleSheet.type;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n }\n let cssTexts = [];\n try {\n if (styleSheet.cssRules) {\n cssTexts = Array.from(styleSheet.cssRules).map((rule) => rule.cssText);\n }\n }\n catch (err) {\n // security errors (lack of permissions), ignore\n }\n for (const rule of cssTexts) {\n const style = document.createElement('style');\n style.appendChild(document.createTextNode(rule));\n document.head.appendChild(style);\n }\n }\n}\nexport function getDomNodePagePosition(domNode) {\n const { left, top, width, height } = domNode.getBoundingClientRect();\n return {\n left: left + window.scrollX,\n top: top + window.scrollY,\n width: width,\n height: height,\n };\n}\n/**\n * Check whether an element is in the DOM (including the Shadow DOM)\n * @see https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\n */\nexport function isInDocument(element) {\n let currentElement = element;\n while (currentElement === null || currentElement === void 0 ? void 0 : currentElement.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n }\n else if (currentElement.parentNode instanceof DocumentFragment) {\n // handle shadow DOMs\n currentElement = currentElement.parentNode.host;\n }\n else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n","export function tail(arr) {\n if (arr.length === 0) {\n throw new Error('Invalid tail call');\n }\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function last(arr) {\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\n}\nexport function sequenceEquals(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.unshift(value);\n }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.push(value);\n }\n}\nexport function firstIndex(array, fn) {\n for (let i = 0; i < array.length; i++) {\n const element = array[i];\n if (fn(element)) {\n return i;\n }\n }\n return -1;\n}\nexport function remove(array, value) {\n const index = array.findIndex((t) => t === value);\n if (index > -1) {\n array.splice(index, 1);\n return true;\n }\n return false;\n}\n","export const clamp = (value, min, max) => {\n if (min > max) {\n throw new Error(`${min} > ${max} is an invalid condition`);\n }\n return Math.min(max, Math.max(value, min));\n};\nexport const sequentialNumberGenerator = () => {\n let value = 1;\n return { next: () => (value++).toString() };\n};\nexport const range = (from, to) => {\n const result = [];\n if (typeof to !== 'number') {\n to = from;\n from = 0;\n }\n if (from <= to) {\n for (let i = from; i < to; i++) {\n result.push(i);\n }\n }\n else {\n for (let i = from; i > to; i--) {\n result.push(i);\n }\n }\n return result;\n};\n","import { clamp } from '../math';\nexport class ViewItem {\n set size(size) {\n this._size = size;\n }\n get size() {\n return this._size;\n }\n get cachedVisibleSize() {\n return this._cachedVisibleSize;\n }\n get visible() {\n return typeof this._cachedVisibleSize === 'undefined';\n }\n get minimumSize() {\n return this.visible ? this.view.minimumSize : 0;\n }\n get viewMinimumSize() {\n return this.view.minimumSize;\n }\n get maximumSize() {\n return this.visible ? this.view.maximumSize : 0;\n }\n get viewMaximumSize() {\n return this.view.maximumSize;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return !!this.view.snap;\n }\n set enabled(enabled) {\n this.container.style.pointerEvents = enabled ? '' : 'none';\n }\n constructor(container, view, size, disposable) {\n this.container = container;\n this.view = view;\n this.disposable = disposable;\n this._cachedVisibleSize = undefined;\n if (typeof size === 'number') {\n this._size = size;\n this._cachedVisibleSize = undefined;\n container.classList.add('visible');\n }\n else {\n this._size = 0;\n this._cachedVisibleSize = size.cachedVisibleSize;\n }\n }\n setVisible(visible, size) {\n var _a;\n if (visible === this.visible) {\n return;\n }\n if (visible) {\n this.size = clamp((_a = this._cachedVisibleSize) !== null && _a !== void 0 ? _a : 0, this.viewMinimumSize, this.viewMaximumSize);\n this._cachedVisibleSize = undefined;\n }\n else {\n this._cachedVisibleSize =\n typeof size === 'number' ? size : this.size;\n this.size = 0;\n }\n this.container.classList.toggle('visible', visible);\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n dispose() {\n this.disposable.dispose();\n return this.view;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview\n *--------------------------------------------------------------------------------------------*/\nimport { removeClasses, addClasses, toggleClass, getElementsByTagName, } from '../dom';\nimport { Emitter } from '../events';\nimport { pushToStart, pushToEnd, firstIndex } from '../array';\nimport { range, clamp } from '../math';\nimport { ViewItem } from './viewItem';\nexport var Orientation;\n(function (Orientation) {\n Orientation[\"HORIZONTAL\"] = \"HORIZONTAL\";\n Orientation[\"VERTICAL\"] = \"VERTICAL\";\n})(Orientation || (Orientation = {}));\nexport var SashState;\n(function (SashState) {\n SashState[SashState[\"MAXIMUM\"] = 0] = \"MAXIMUM\";\n SashState[SashState[\"MINIMUM\"] = 1] = \"MINIMUM\";\n SashState[SashState[\"DISABLED\"] = 2] = \"DISABLED\";\n SashState[SashState[\"ENABLED\"] = 3] = \"ENABLED\";\n})(SashState || (SashState = {}));\nexport var LayoutPriority;\n(function (LayoutPriority) {\n LayoutPriority[\"Low\"] = \"low\";\n LayoutPriority[\"High\"] = \"high\";\n LayoutPriority[\"Normal\"] = \"normal\";\n})(LayoutPriority || (LayoutPriority = {}));\nexport var Sizing;\n(function (Sizing) {\n Sizing.Distribute = { type: 'distribute' };\n function Split(index) {\n return { type: 'split', index };\n }\n Sizing.Split = Split;\n function Invisible(cachedVisibleSize) {\n return { type: 'invisible', cachedVisibleSize };\n }\n Sizing.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\nexport class Splitview {\n get contentSize() {\n return this._contentSize;\n }\n get size() {\n return this._size;\n }\n set size(value) {\n this._size = value;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(value) {\n this._orthogonalSize = value;\n }\n get length() {\n return this.viewItems.length;\n }\n get proportions() {\n return this._proportions ? [...this._proportions] : undefined;\n }\n get orientation() {\n return this._orientation;\n }\n set orientation(value) {\n this._orientation = value;\n const tmp = this.size;\n this.size = this.orthogonalSize;\n this.orthogonalSize = tmp;\n removeClasses(this.element, 'horizontal', 'vertical');\n this.element.classList.add(this.orientation == Orientation.HORIZONTAL\n ? 'horizontal'\n : 'vertical');\n }\n get minimumSize() {\n return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);\n }\n get maximumSize() {\n return this.length === 0\n ? Number.POSITIVE_INFINITY\n : this.viewItems.reduce((r, item) => r + item.maximumSize, 0);\n }\n get startSnappingEnabled() {\n return this._startSnappingEnabled;\n }\n set startSnappingEnabled(startSnappingEnabled) {\n if (this._startSnappingEnabled === startSnappingEnabled) {\n return;\n }\n this._startSnappingEnabled = startSnappingEnabled;\n this.updateSashEnablement();\n }\n get endSnappingEnabled() {\n return this._endSnappingEnabled;\n }\n set endSnappingEnabled(endSnappingEnabled) {\n if (this._endSnappingEnabled === endSnappingEnabled) {\n return;\n }\n this._endSnappingEnabled = endSnappingEnabled;\n this.updateSashEnablement();\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n toggleClass(this.element, 'dv-splitview-disabled', value);\n }\n constructor(container, options) {\n this.container = container;\n this.viewItems = [];\n this.sashes = [];\n this._size = 0;\n this._orthogonalSize = 0;\n this._contentSize = 0;\n this._proportions = undefined;\n this._startSnappingEnabled = true;\n this._endSnappingEnabled = true;\n this._disabled = false;\n this._onDidSashEnd = new Emitter();\n this.onDidSashEnd = this._onDidSashEnd.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {\n if (index < 0 || index > this.viewItems.length) {\n return 0;\n }\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n //\n if (highPriorityIndexes) {\n for (const i of highPriorityIndexes) {\n pushToStart(upIndexes, i);\n pushToStart(downIndexes, i);\n }\n }\n if (lowPriorityIndexes) {\n for (const i of lowPriorityIndexes) {\n pushToEnd(upIndexes, i);\n pushToEnd(downIndexes, i);\n }\n }\n //\n const upItems = upIndexes.map((i) => this.viewItems[i]);\n const upSizes = upIndexes.map((i) => sizes[i]);\n //\n const downItems = downIndexes.map((i) => this.viewItems[i]);\n const downSizes = downIndexes.map((i) => sizes[i]);\n //\n const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);\n const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);\n //\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);\n //\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n //\n let snapped = false;\n if (snapBefore) {\n const snapView = this.viewItems[snapBefore.index];\n const visible = delta >= snapBefore.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapBefore.size);\n }\n if (!snapped && snapAfter) {\n const snapView = this.viewItems[snapAfter.index];\n const visible = delta < snapAfter.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapAfter.size);\n }\n if (snapped) {\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n }\n //\n const tentativeDelta = clamp(delta, minDelta, maxDelta);\n let actualDelta = 0;\n //\n let deltaUp = tentativeDelta;\n for (let i = 0; i < upItems.length; i++) {\n const item = upItems[i];\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\n const viewDelta = size - upSizes[i];\n actualDelta += viewDelta;\n deltaUp -= viewDelta;\n item.size = size;\n }\n //\n let deltaDown = actualDelta;\n for (let i = 0; i < downItems.length; i++) {\n const item = downItems[i];\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\n const viewDelta = size - downSizes[i];\n deltaDown += viewDelta;\n item.size = size;\n }\n //\n return delta;\n };\n this._orientation = options.orientation;\n this.element = this.createContainer();\n this.proportionalLayout =\n options.proportionalLayout === undefined\n ? true\n : !!options.proportionalLayout;\n this.viewContainer = this.createViewContainer();\n this.sashContainer = this.createSashContainer();\n this.element.appendChild(this.sashContainer);\n this.element.appendChild(this.viewContainer);\n this.container.appendChild(this.element);\n this.style(options.styles);\n // We have an existing set of view, add them now\n if (options.descriptor) {\n this._size = options.descriptor.size;\n options.descriptor.views.forEach((viewDescriptor, index) => {\n const sizing = viewDescriptor.visible === undefined ||\n viewDescriptor.visible\n ? viewDescriptor.size\n : {\n type: 'invisible',\n cachedVisibleSize: viewDescriptor.size,\n };\n const view = viewDescriptor.view;\n this.addView(view, sizing, index, true\n // true skip layout\n );\n });\n // Initialize content size and proportions for first layout\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.saveProportions();\n }\n }\n style(styles) {\n if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {\n removeClasses(this.element, 'separator-border');\n this.element.style.removeProperty('--dv-separator-border');\n }\n else {\n addClasses(this.element, 'separator-border');\n if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {\n this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);\n }\n }\n }\n isViewVisible(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.visible;\n }\n setViewVisible(index, visible) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n toggleClass(this.container, 'visible', visible);\n const viewItem = this.viewItems[index];\n toggleClass(this.container, 'visible', visible);\n viewItem.setVisible(visible, viewItem.size);\n this.distributeEmptySpace(index);\n this.layoutViews();\n this.saveProportions();\n }\n getViewSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n return -1;\n }\n return this.viewItems[index].size;\n }\n resizeView(index, size) {\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n const item = this.viewItems[index];\n size = Math.round(size);\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));\n item.size = size;\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n getViews() {\n return this.viewItems.map((x) => x.view);\n }\n onDidChange(item, size) {\n const index = this.viewItems.indexOf(item);\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n size = typeof size === 'number' ? size : item.size;\n size = clamp(size, item.minimumSize, item.maximumSize);\n item.size = size;\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n /**\n * add this view we are changing to the low-index list since we have determined the size\n * here and don't want it changed\n */\n this.relayout([...lowPriorityIndexes, index], highPriorityIndexes);\n }\n addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {\n const container = document.createElement('div');\n container.className = 'view';\n container.appendChild(view.element);\n let viewSize;\n if (typeof size === 'number') {\n viewSize = size;\n }\n else if (size.type === 'split') {\n viewSize = this.getViewSize(size.index) / 2;\n }\n else if (size.type === 'invisible') {\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\n }\n else {\n viewSize = view.minimumSize;\n }\n const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));\n const viewItem = new ViewItem(container, view, viewSize, {\n dispose: () => {\n disposable.dispose();\n this.viewContainer.removeChild(container);\n },\n });\n if (index === this.viewItems.length) {\n this.viewContainer.appendChild(container);\n }\n else {\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n }\n this.viewItems.splice(index, 0, viewItem);\n if (this.viewItems.length > 1) {\n //add sash\n const sash = document.createElement('div');\n sash.className = 'sash';\n const onPointerStart = (event) => {\n for (const item of this.viewItems) {\n item.enabled = false;\n }\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n const start = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);\n //\n const sizes = this.viewItems.map((x) => x.size);\n //\n let snapBefore;\n let snapAfter;\n const upIndexes = range(sashIndex, -1);\n const downIndexes = range(sashIndex + 1, this.viewItems.length);\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] - this.viewItems[i].minimumSize), 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] -\n this.viewItems[i].viewMaximumSize), 0);\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n if (typeof snapBeforeIndex === 'number') {\n const snappedViewItem = this.viewItems[snapBeforeIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapBefore = {\n index: snapBeforeIndex,\n limitDelta: snappedViewItem.visible\n ? minDelta - halfSize\n : minDelta + halfSize,\n size: snappedViewItem.size,\n };\n }\n if (typeof snapAfterIndex === 'number') {\n const snappedViewItem = this.viewItems[snapAfterIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapAfter = {\n index: snapAfterIndex,\n limitDelta: snappedViewItem.visible\n ? maxDelta + halfSize\n : maxDelta - halfSize,\n size: snappedViewItem.size,\n };\n }\n const onPointerMove = (event) => {\n const current = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const delta = current - start;\n this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\n this.distributeEmptySpace();\n this.layoutViews();\n };\n const end = () => {\n for (const item of this.viewItems) {\n item.enabled = true;\n }\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n this.saveProportions();\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', end);\n document.removeEventListener('pointercancel', end);\n this._onDidSashEnd.fire(undefined);\n };\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', end);\n document.addEventListener('pointercancel', end);\n };\n sash.addEventListener('pointerdown', onPointerStart);\n const sashItem = {\n container: sash,\n disposable: () => {\n sash.removeEventListener('pointerdown', onPointerStart);\n this.sashContainer.removeChild(sash);\n },\n };\n this.sashContainer.appendChild(sash);\n this.sashes.push(sashItem);\n }\n if (!skipLayout) {\n this.relayout([index]);\n }\n if (!skipLayout &&\n typeof size !== 'number' &&\n size.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidAddView.fire(view);\n }\n distributeViewSizes() {\n const flexibleViewItems = [];\n let flexibleSize = 0;\n for (const item of this.viewItems) {\n if (item.maximumSize - item.minimumSize > 0) {\n flexibleViewItems.push(item);\n flexibleSize += item.size;\n }\n }\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\n for (const item of flexibleViewItems) {\n item.size = clamp(size, item.minimumSize, item.maximumSize);\n }\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n removeView(index, sizing, skipLayout = false) {\n // Remove view\n const viewItem = this.viewItems.splice(index, 1)[0];\n viewItem.dispose();\n // Remove sash\n if (this.viewItems.length >= 1) {\n const sashIndex = Math.max(index - 1, 0);\n const sashItem = this.sashes.splice(sashIndex, 1)[0];\n sashItem.disposable();\n }\n if (!skipLayout) {\n this.relayout();\n }\n if (sizing && sizing.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidRemoveView.fire(viewItem.view);\n return viewItem.view;\n }\n getViewCachedVisibleSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.cachedVisibleSize;\n }\n moveView(from, to) {\n const cachedVisibleSize = this.getViewCachedVisibleSize(from);\n const sizing = typeof cachedVisibleSize === 'undefined'\n ? this.getViewSize(from)\n : Sizing.Invisible(cachedVisibleSize);\n const view = this.removeView(from, undefined, true);\n this.addView(view, sizing, to);\n }\n layout(size, orthogonalSize) {\n const previousSize = Math.max(this.size, this._contentSize);\n this.size = size;\n this.orthogonalSize = orthogonalSize;\n if (!this.proportions) {\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n }\n else {\n let total = 0;\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number') {\n total += proportion;\n }\n else {\n size -= item.size;\n }\n }\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number' && total > 0) {\n item.size = clamp(Math.round((proportion * size) / total), item.minimumSize, item.maximumSize);\n }\n }\n }\n this.distributeEmptySpace();\n this.layoutViews();\n }\n relayout(lowPriorityIndexes, highPriorityIndexes) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n this.distributeEmptySpace();\n this.layoutViews();\n this.saveProportions();\n }\n distributeEmptySpace(lowPriorityIndex) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let emptyDelta = this.size - contentSize;\n const indexes = range(this.viewItems.length - 1, -1);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n for (const index of highPriorityIndexes) {\n pushToStart(indexes, index);\n }\n for (const index of lowPriorityIndexes) {\n pushToEnd(indexes, index);\n }\n if (typeof lowPriorityIndex === 'number') {\n pushToEnd(indexes, lowPriorityIndex);\n }\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\n const item = this.viewItems[indexes[i]];\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n const viewDelta = size - item.size;\n emptyDelta -= viewDelta;\n item.size = size;\n }\n }\n saveProportions() {\n if (this.proportionalLayout && this._contentSize > 0) {\n this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);\n }\n }\n layoutViews() {\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let sum = 0;\n const x = [];\n this.updateSashEnablement();\n for (let i = 0; i < this.viewItems.length - 1; i++) {\n sum += this.viewItems[i].size;\n x.push(sum);\n const offset = Math.min(Math.max(0, sum - 2), this.size - 4);\n if (this._orientation === Orientation.HORIZONTAL) {\n this.sashes[i].container.style.left = `${offset}px`;\n this.sashes[i].container.style.top = `0px`;\n }\n if (this._orientation === Orientation.VERTICAL) {\n this.sashes[i].container.style.left = `0px`;\n this.sashes[i].container.style.top = `${offset}px`;\n }\n }\n this.viewItems.forEach((view, i) => {\n if (this._orientation === Orientation.HORIZONTAL) {\n view.container.style.width = `${view.size}px`;\n view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;\n view.container.style.top = '';\n view.container.style.height = '';\n }\n if (this._orientation === Orientation.VERTICAL) {\n view.container.style.height = `${view.size}px`;\n view.container.style.top = i == 0 ? '0px' : `${x[i - 1]}px`;\n view.container.style.width = '';\n view.container.style.left = '';\n }\n view.view.layout(view.size, this._orthogonalSize);\n });\n }\n findFirstSnapIndex(indexes) {\n // visible views first\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (!viewItem.visible) {\n continue;\n }\n if (viewItem.snap) {\n return index;\n }\n }\n // then, hidden views\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (viewItem.visible &&\n viewItem.maximumSize - viewItem.minimumSize > 0) {\n return undefined;\n }\n if (!viewItem.visible && viewItem.snap) {\n return index;\n }\n }\n return undefined;\n }\n updateSashEnablement() {\n let previous = false;\n const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));\n previous = false;\n const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));\n const reverseViews = [...this.viewItems].reverse();\n previous = false;\n const collapsesUp = reverseViews\n .map((i) => (previous = i.size - i.minimumSize > 0 || previous))\n .reverse();\n previous = false;\n const expandsUp = reverseViews\n .map((i) => (previous = i.maximumSize - i.size > 0 || previous))\n .reverse();\n let position = 0;\n for (let index = 0; index < this.sashes.length; index++) {\n const sash = this.sashes[index];\n const viewItem = this.viewItems[index];\n position += viewItem.size;\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\n if (min && max) {\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n const snappedBefore = typeof snapBeforeIndex === 'number' &&\n !this.viewItems[snapBeforeIndex].visible;\n const snappedAfter = typeof snapAfterIndex === 'number' &&\n !this.viewItems[snapAfterIndex].visible;\n if (snappedBefore &&\n collapsesUp[index] &&\n (position > 0 || this.startSnappingEnabled)) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (snappedAfter &&\n collapsesDown[index] &&\n (position < this._contentSize || this.endSnappingEnabled)) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.DISABLED);\n }\n }\n else if (min && !max) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (!min && max) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.ENABLED);\n }\n }\n }\n updateSash(sash, state) {\n toggleClass(sash.container, 'disabled', state === SashState.DISABLED);\n toggleClass(sash.container, 'enabled', state === SashState.ENABLED);\n toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);\n toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);\n }\n createViewContainer() {\n const element = document.createElement('div');\n element.className = 'view-container';\n return element;\n }\n createSashContainer() {\n const element = document.createElement('div');\n element.className = 'sash-container';\n return element;\n }\n createContainer() {\n const element = document.createElement('div');\n const orientationClassname = this._orientation === Orientation.HORIZONTAL\n ? 'horizontal'\n : 'vertical';\n element.className = `split-view-container ${orientationClassname}`;\n return element;\n }\n dispose() {\n this._onDidSashEnd.dispose();\n this._onDidAddView.dispose();\n this._onDidRemoveView.dispose();\n for (let i = 0; i < this.element.children.length; i++) {\n if (this.element.children.item(i) === this.element) {\n this.element.removeChild(this.element);\n break;\n }\n }\n for (const viewItem of this.viewItems) {\n viewItem.dispose();\n }\n this.element.remove();\n }\n}\n","import { Splitview, Orientation, } from '../splitview/splitview';\nimport { CompositeDisposable } from '../lifecycle';\nimport { Emitter } from '../events';\nimport { addClasses, removeClasses } from '../dom';\nexport class Paneview extends CompositeDisposable {\n get onDidAddView() {\n return this.splitview.onDidAddView;\n }\n get onDidRemoveView() {\n return this.splitview.onDidRemoveView;\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get size() {\n return this.splitview.size;\n }\n get orthogonalSize() {\n return this.splitview.orthogonalSize;\n }\n constructor(container, options) {\n var _a;\n super();\n this.paneItems = [];\n this.skipAnimation = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\n this.element = document.createElement('div');\n this.element.className = 'pane-container';\n container.appendChild(this.element);\n this.splitview = new Splitview(this.element, {\n orientation: this._orientation,\n proportionalLayout: false,\n descriptor: options.descriptor,\n });\n // if we've added views from the descriptor we need to\n // add the panes to our Pane array and setup animation\n this.getPanes().forEach((pane) => {\n const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n }));\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.push(paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n });\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire(undefined);\n }), this.splitview.onDidAddView(() => {\n this._onDidChange.fire();\n }), this.splitview.onDidRemoveView(() => {\n this._onDidChange.fire();\n }));\n }\n addPane(pane, size, index = this.splitview.length, skipLayout = false) {\n const disposable = pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n });\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.splice(index, 0, paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n this.splitview.addView(pane, size, index, skipLayout);\n }\n getViewSize(index) {\n return this.splitview.getViewSize(index);\n }\n getPanes() {\n return this.splitview.getViews();\n }\n removePane(index, options = { skipDispose: false }) {\n const paneItem = this.paneItems.splice(index, 1)[0];\n this.splitview.removeView(index);\n if (!options.skipDispose) {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n }\n return paneItem;\n }\n moveView(from, to) {\n if (from === to) {\n return;\n }\n const view = this.removePane(from, { skipDispose: true });\n this.skipAnimation = true;\n try {\n this.addPane(view.pane, view.pane.size, to, false);\n }\n finally {\n this.skipAnimation = false;\n }\n }\n layout(size, orthogonalSize) {\n this.splitview.layout(size, orthogonalSize);\n }\n setupAnimation() {\n if (this.skipAnimation) {\n return;\n }\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n addClasses(this.element, 'animated');\n this.animationTimer = setTimeout(() => {\n this.animationTimer = undefined;\n removeClasses(this.element, 'animated');\n }, 200);\n }\n dispose() {\n super.dispose();\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n this.paneItems.forEach((paneItem) => {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n });\n this.paneItems = [];\n this.splitview.dispose();\n this.element.remove();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation } from '../splitview/splitview';\nimport { Emitter } from '../events';\nexport class LeafNode {\n get minimumWidth() {\n return this.view.minimumWidth;\n }\n get maximumWidth() {\n return this.view.maximumWidth;\n }\n get minimumHeight() {\n return this.view.minimumHeight;\n }\n get maximumHeight() {\n return this.view.maximumHeight;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return this.view.snap;\n }\n get minimumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumHeight\n : this.minimumWidth;\n }\n get maximumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumHeight\n : this.maximumWidth;\n }\n get minimumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumWidth\n : this.minimumHeight;\n }\n get maximumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumWidth\n : this.maximumHeight;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get element() {\n return this.view.element;\n }\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n constructor(view, orientation, orthogonalSize, size = 0) {\n this.view = view;\n this.orientation = orientation;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this._disposable = this.view.onDidChange((event) => {\n if (event) {\n this._onDidChange.fire({\n size: this.orientation === Orientation.VERTICAL\n ? event.width\n : event.height,\n orthogonalSize: this.orientation === Orientation.VERTICAL\n ? event.height\n : event.width,\n });\n }\n else {\n this._onDidChange.fire({});\n }\n });\n }\n setVisible(visible) {\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n this.view.layout(this.width, this.height);\n }\n dispose() {\n this._onDidChange.dispose();\n this._disposable.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Splitview, Orientation, LayoutPriority, } from '../splitview/splitview';\nimport { Emitter, Event } from '../events';\nimport { LeafNode } from './leafNode';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nexport class BranchNode extends CompositeDisposable {\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get minimumSize() {\n return this.children.length === 0\n ? 0\n : Math.max(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.minimumOrthogonalSize\n : 0));\n }\n get maximumSize() {\n return Math.min(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.maximumOrthogonalSize\n : Number.POSITIVE_INFINITY));\n }\n get minimumOrthogonalSize() {\n return this.splitview.minimumSize;\n }\n get maximumOrthogonalSize() {\n return this.splitview.maximumSize;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get minimumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumOrthogonalSize\n : this.minimumSize;\n }\n get minimumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumSize\n : this.minimumOrthogonalSize;\n }\n get maximumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumOrthogonalSize\n : this.maximumSize;\n }\n get maximumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumSize\n : this.maximumOrthogonalSize;\n }\n get priority() {\n if (this.children.length === 0) {\n return LayoutPriority.Normal;\n }\n const priorities = this.children.map((c) => typeof c.priority === 'undefined'\n ? LayoutPriority.Normal\n : c.priority);\n if (priorities.some((p) => p === LayoutPriority.High)) {\n return LayoutPriority.High;\n }\n else if (priorities.some((p) => p === LayoutPriority.Low)) {\n return LayoutPriority.Low;\n }\n return LayoutPriority.Normal;\n }\n get disabled() {\n return this.splitview.disabled;\n }\n set disabled(value) {\n this.splitview.disabled = value;\n }\n constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {\n super();\n this.orientation = orientation;\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._childrenDisposable = Disposable.NONE;\n this.children = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this.element = document.createElement('div');\n this.element.className = 'branch-node';\n if (!childDescriptors) {\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n proportionalLayout,\n styles,\n });\n this.splitview.layout(this.size, this.orthogonalSize);\n }\n else {\n const descriptor = {\n views: childDescriptors.map((childDescriptor) => {\n return {\n view: childDescriptor.node,\n size: childDescriptor.node.size,\n visible: childDescriptor.node instanceof LeafNode &&\n childDescriptor.visible !== undefined\n ? childDescriptor.visible\n : true,\n };\n }),\n size: this.orthogonalSize,\n };\n this.children = childDescriptors.map((c) => c.node);\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n descriptor,\n proportionalLayout,\n styles,\n });\n }\n this.disabled = disabled;\n this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire({});\n }));\n this.setupChildrenEvents();\n }\n setVisible(visible) {\n for (const child of this.children) {\n child.setVisible(visible);\n }\n }\n isChildVisible(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.isViewVisible(index);\n }\n setChildVisible(index, visible) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n if (this.splitview.isViewVisible(index) === visible) {\n return;\n }\n const wereAllChildrenHidden = this.splitview.contentSize === 0;\n this.splitview.setViewVisible(index, visible);\n const areAllChildrenHidden = this.splitview.contentSize === 0;\n // If all children are hidden then the parent should hide the entire splitview\n // If the entire splitview is hidden then the parent should show the splitview when a child is shown\n if ((visible && wereAllChildrenHidden) ||\n (!visible && areAllChildrenHidden)) {\n this._onDidVisibilityChange.fire(visible);\n }\n }\n moveChild(from, to) {\n if (from === to) {\n return;\n }\n if (from < 0 || from >= this.children.length) {\n throw new Error('Invalid from index');\n }\n if (from < to) {\n to--;\n }\n this.splitview.moveView(from, to);\n const child = this._removeChild(from);\n this._addChild(child, to);\n }\n getChildSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewSize(index);\n }\n resizeChild(index, size) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.resizeView(index, size);\n }\n layout(size, orthogonalSize) {\n this._size = orthogonalSize;\n this._orthogonalSize = size;\n this.splitview.layout(orthogonalSize, size);\n }\n addChild(node, size, index, skipLayout) {\n if (index < 0 || index > this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.addView(node, size, index, skipLayout);\n this._addChild(node, index);\n }\n getChildCachedVisibleSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewCachedVisibleSize(index);\n }\n removeChild(index, sizing) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.removeView(index, sizing);\n return this._removeChild(index);\n }\n _addChild(node, index) {\n this.children.splice(index, 0, node);\n this.setupChildrenEvents();\n }\n _removeChild(index) {\n const [child] = this.children.splice(index, 1);\n this.setupChildrenEvents();\n return child;\n }\n setupChildrenEvents() {\n this._childrenDisposable.dispose();\n this._childrenDisposable = new CompositeDisposable(Event.any(...this.children.map((c) => c.onDidChange))((e) => {\n /**\n * indicate a change has occured to allows any re-rendering but don't bubble\n * event because that was specific to this branch\n */\n this._onDidChange.fire({ size: e.orthogonalSize });\n }), ...this.children.map((c, i) => {\n if (c instanceof BranchNode) {\n return c.onDidVisibilityChange((visible) => {\n this.setChildVisible(i, visible);\n });\n }\n return Disposable.NONE;\n }));\n }\n dispose() {\n this._childrenDisposable.dispose();\n this.splitview.dispose();\n this.children.forEach((child) => child.dispose());\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation, Sizing, } from '../splitview/splitview';\nimport { tail } from '../array';\nimport { LeafNode } from './leafNode';\nimport { BranchNode } from './branchNode';\nimport { Emitter } from '../events';\nimport { MutableDisposable } from '../lifecycle';\nfunction findLeaf(candiateNode, last) {\n if (candiateNode instanceof LeafNode) {\n return candiateNode;\n }\n if (candiateNode instanceof BranchNode) {\n return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);\n }\n throw new Error('invalid node');\n}\nfunction flipNode(node, size, orthogonalSize) {\n if (node instanceof BranchNode) {\n const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);\n let totalSize = 0;\n for (let i = node.children.length - 1; i >= 0; i--) {\n const child = node.children[i];\n const childSize = child instanceof BranchNode ? child.orthogonalSize : child.size;\n let newSize = node.size === 0\n ? 0\n : Math.round((size * childSize) / node.size);\n totalSize += newSize;\n // The last view to add should adjust to rounding errors\n if (i === 0) {\n newSize += size - totalSize;\n }\n result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);\n }\n return result;\n }\n else {\n return new LeafNode(node.view, orthogonal(node.orientation), orthogonalSize);\n }\n}\nexport function indexInParent(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n let el = parentElement.firstElementChild;\n let index = 0;\n while (el !== element && el !== parentElement.lastElementChild && el) {\n el = el.nextElementSibling;\n index++;\n }\n return index;\n}\n/**\n * Find the grid location of a specific DOM element by traversing the parent\n * chain and finding each child index on the way.\n *\n * This will break as soon as DOM structures of the Splitview or Gridview change.\n */\nexport function getGridLocation(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n if (/\\bgrid-view\\b/.test(parentElement.className)) {\n return [];\n }\n const index = indexInParent(parentElement);\n const ancestor = parentElement.parentElement.parentElement.parentElement;\n return [...getGridLocation(ancestor), index];\n}\nexport function getRelativeLocation(rootOrientation, location, direction) {\n const orientation = getLocationOrientation(rootOrientation, location);\n const directionOrientation = getDirectionOrientation(direction);\n if (orientation === directionOrientation) {\n const [rest, _index] = tail(location);\n let index = _index;\n if (direction === 'right' || direction === 'bottom') {\n index += 1;\n }\n return [...rest, index];\n }\n else {\n const index = direction === 'right' || direction === 'bottom' ? 1 : 0;\n return [...location, index];\n }\n}\nexport function getDirectionOrientation(direction) {\n return direction === 'top' || direction === 'bottom'\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\n}\nexport function getLocationOrientation(rootOrientation, location) {\n return location.length % 2 === 0\n ? orthogonal(rootOrientation)\n : rootOrientation;\n}\nexport const orthogonal = (orientation) => orientation === Orientation.HORIZONTAL\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\nexport function isGridBranchNode(node) {\n return !!node.children;\n}\nconst serializeBranchNode = (node, orientation) => {\n const size = orientation === Orientation.VERTICAL ? node.box.width : node.box.height;\n if (!isGridBranchNode(node)) {\n if (typeof node.cachedVisibleSize === 'number') {\n return {\n type: 'leaf',\n data: node.view.toJSON(),\n size: node.cachedVisibleSize,\n visible: false,\n };\n }\n return { type: 'leaf', data: node.view.toJSON(), size };\n }\n return {\n type: 'branch',\n data: node.children.map((c) => serializeBranchNode(c, orthogonal(orientation))),\n size,\n };\n};\nexport class Gridview {\n get length() {\n return this._root ? this._root.children.length : 0;\n }\n get orientation() {\n return this.root.orientation;\n }\n set orientation(orientation) {\n if (this.root.orientation === orientation) {\n return;\n }\n const { size, orthogonalSize } = this.root;\n this.root = flipNode(this.root, orthogonalSize, size);\n this.root.layout(size, orthogonalSize);\n }\n get width() {\n return this.root.width;\n }\n get height() {\n return this.root.height;\n }\n get minimumWidth() {\n return this.root.minimumWidth;\n }\n get minimumHeight() {\n return this.root.minimumHeight;\n }\n get maximumWidth() {\n return this.root.maximumHeight;\n }\n get maximumHeight() {\n return this.root.maximumHeight;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n const branch = [this.root];\n /**\n * simple depth-first-search to cover all nodes\n *\n * @see https://en.wikipedia.org/wiki/Depth-first_search\n */\n while (branch.length > 0) {\n const node = branch.pop();\n if (node instanceof BranchNode) {\n node.disabled = value;\n branch.push(...node.children);\n }\n }\n }\n maximizedView() {\n var _a;\n return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;\n }\n hasMaximizedView() {\n return this._maximizedNode !== undefined;\n }\n maximizeView(view) {\n var _a;\n const location = getGridLocation(view.element);\n const [_, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n return;\n }\n if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {\n return;\n }\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const hiddenOnMaximize = [];\n function hideAllViewsBut(parent, exclude) {\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (child instanceof LeafNode) {\n if (child !== exclude) {\n if (parent.isChildVisible(i)) {\n parent.setChildVisible(i, false);\n }\n else {\n hiddenOnMaximize.push(child);\n }\n }\n }\n else {\n hideAllViewsBut(child, exclude);\n }\n }\n }\n hideAllViewsBut(this.root, node);\n this._maximizedNode = { leaf: node, hiddenOnMaximize };\n this._onDidMaximizedNodeChange.fire();\n }\n exitMaximizedView() {\n if (!this._maximizedNode) {\n return;\n }\n const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;\n function showViewsInReverseOrder(parent) {\n for (let index = parent.children.length - 1; index >= 0; index--) {\n const child = parent.children[index];\n if (child instanceof LeafNode) {\n if (!hiddenOnMaximize.includes(child)) {\n parent.setChildVisible(index, true);\n }\n }\n else {\n showViewsInReverseOrder(child);\n }\n }\n }\n showViewsInReverseOrder(this.root);\n this._maximizedNode = undefined;\n this._onDidMaximizedNodeChange.fire();\n }\n serialize() {\n if (this.hasMaximizedView()) {\n /**\n * do not persist maximized view state\n * firstly exit any maximized views to ensure the correct dimensions are persisted\n */\n this.exitMaximizedView();\n }\n const root = serializeBranchNode(this.getView(), this.orientation);\n return {\n root,\n width: this.width,\n height: this.height,\n orientation: this.orientation,\n };\n }\n dispose() {\n this.disposable.dispose();\n this._onDidChange.dispose();\n this._onDidMaximizedNodeChange.dispose();\n this.root.dispose();\n this._maximizedNode = undefined;\n this.element.remove();\n }\n clear() {\n const orientation = this.root.orientation;\n this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);\n }\n deserialize(json, deserializer) {\n const orientation = json.orientation;\n const height = orientation === Orientation.VERTICAL ? json.height : json.width;\n this._deserialize(json.root, orientation, deserializer, height);\n }\n _deserialize(root, orientation, deserializer, orthogonalSize) {\n this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);\n }\n _deserializeNode(node, orientation, deserializer, orthogonalSize) {\n let result;\n if (node.type === 'branch') {\n const serializedChildren = node.data;\n const children = serializedChildren.map((serializedChild) => {\n return {\n node: this._deserializeNode(serializedChild, orthogonal(orientation), deserializer, node.size),\n visible: serializedChild.visible,\n };\n });\n result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth\n orthogonalSize, // <- size - flips at each depth,\n this._locked, children);\n }\n else {\n result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);\n }\n return result;\n }\n get root() {\n return this._root;\n }\n set root(root) {\n const oldRoot = this._root;\n if (oldRoot) {\n oldRoot.dispose();\n this._maximizedNode = undefined;\n this.element.removeChild(oldRoot.element);\n }\n this._root = root;\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n /**\n * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node\n * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node\n */\n insertOrthogonalSplitviewAtRoot() {\n if (!this._root) {\n return;\n }\n const oldRoot = this.root;\n oldRoot.element.remove();\n this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);\n if (oldRoot.children.length === 0) {\n // no data so no need to add anything back in\n }\n else if (oldRoot.children.length === 1) {\n // can remove one level of redundant branching if there is only a single child\n const childReference = oldRoot.children[0];\n const child = oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root\n child.dispose();\n oldRoot.dispose();\n this._root.addChild(\n /**\n * the child node will have the same orientation as the new root since\n * we are removing the inbetween node.\n * the entire 'tree' must be flipped recursively to ensure that the orientation\n * flips at each level\n */\n flipNode(childReference, childReference.orthogonalSize, childReference.size), Sizing.Distribute, 0);\n }\n else {\n this._root.addChild(oldRoot, Sizing.Distribute, 0);\n }\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n next(location) {\n return this.progmaticSelect(location);\n }\n previous(location) {\n return this.progmaticSelect(location, true);\n }\n getView(location) {\n const node = location ? this.getNode(location)[1] : this.root;\n return this._getViews(node, this.orientation);\n }\n _getViews(node, orientation, cachedVisibleSize) {\n const box = { height: node.height, width: node.width };\n if (node instanceof LeafNode) {\n return { box, view: node.view, cachedVisibleSize };\n }\n const children = [];\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);\n children.push(this._getViews(child, orthogonal(orientation), nodeCachedVisibleSize));\n }\n return { box, children };\n }\n progmaticSelect(location, reverse = false) {\n const [path, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n throw new Error('invalid location');\n }\n for (let i = path.length - 1; i > -1; i--) {\n const n = path[i];\n const l = location[i] || 0;\n const canProgressInCurrentLevel = reverse\n ? l - 1 > -1\n : l + 1 < n.children.length;\n if (canProgressInCurrentLevel) {\n return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);\n }\n }\n return findLeaf(this.root, reverse);\n }\n constructor(proportionalLayout, styles, orientation) {\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._locked = false;\n this._maximizedNode = undefined;\n this.disposable = new MutableDisposable();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidMaximizedNodeChange = new Emitter();\n this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;\n this.element = document.createElement('div');\n this.element.className = 'grid-view';\n this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);\n }\n isViewVisible(location) {\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n return parent.isChildVisible(index);\n }\n setViewVisible(location, visible) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n parent.setChildVisible(index, visible);\n }\n moveView(parentLocation, from, to) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [, parent] = this.getNode(parentLocation);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n parent.moveChild(from, to);\n }\n addView(view, size, location) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (parent instanceof BranchNode) {\n const node = new LeafNode(view, orthogonal(parent.orientation), parent.orthogonalSize);\n parent.addChild(node, size, index);\n }\n else {\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n let newSiblingSize = 0;\n const newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);\n if (typeof newSiblingCachedVisibleSize === 'number') {\n newSiblingSize = Sizing.Invisible(newSiblingCachedVisibleSize);\n }\n const child = grandParent.removeChild(parentIndex);\n child.dispose();\n const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);\n grandParent.addChild(newParent, parent.size, parentIndex);\n const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);\n newParent.addChild(newSibling, newSiblingSize, 0);\n if (typeof size !== 'number' && size.type === 'split') {\n size = { type: 'split', index: 0 };\n }\n const node = new LeafNode(view, grandParent.orientation, parent.size);\n newParent.addChild(node, size, index);\n }\n }\n remove(view, sizing) {\n const location = getGridLocation(view.element);\n return this.removeView(location, sizing);\n }\n removeView(location, sizing) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const nodeToRemove = parent.children[index];\n if (!(nodeToRemove instanceof LeafNode)) {\n throw new Error('Invalid location');\n }\n parent.removeChild(index, sizing);\n nodeToRemove.dispose();\n if (parent.children.length !== 1) {\n return nodeToRemove.view;\n }\n // if the parent has only one child and we know the parent is a BranchNode we can make the tree\n // more efficiently spaced by replacing the parent BranchNode with the child.\n // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child\n // is a BranchNode too we should spread it's children into the grandparent.\n // refer to the remaining child as the sibling\n const sibling = parent.children[0];\n if (pathToParent.length === 0) {\n // if the parent is root\n if (sibling instanceof LeafNode) {\n // if the sibling is a leaf node no action is required\n return nodeToRemove.view;\n }\n // otherwise the sibling is a branch node. since the parent is the root and the root has only one child\n // which is a branch node we can just set this branch node to be the new root node\n // for good housekeeping we'll removing the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // and set that sibling node to be root\n this.root = sibling;\n return nodeToRemove.view;\n }\n // otherwise the parent is apart of a large sub-tree\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n const isSiblingVisible = parent.isChildVisible(0);\n // either way we need to remove the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // note the sizes of all of the grandparents children\n const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));\n // remove the parent from the grandparent since we are moving the sibling to take the parents place\n // this parent is no longer used and can be disposed of\n grandParent.removeChild(parentIndex, sizing).dispose();\n if (sibling instanceof BranchNode) {\n // replace the parent with the siblings children\n sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));\n // and add those siblings to the grandparent\n for (let i = 0; i < sibling.children.length; i++) {\n const child = sibling.children[i];\n grandParent.addChild(child, child.size, parentIndex + i);\n }\n /**\n * clean down the branch node since we need to dipose of it and\n * when .dispose() it called on a branch it will dispose of any\n * views it is holding onto.\n */\n while (sibling.children.length > 0) {\n sibling.removeChild(0);\n }\n }\n else {\n // otherwise create a new leaf node and add that to the grandparent\n const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);\n const siblingSizing = isSiblingVisible\n ? sibling.orthogonalSize\n : Sizing.Invisible(sibling.orthogonalSize);\n grandParent.addChild(newSibling, siblingSizing, parentIndex);\n }\n // the containing node of the sibling is no longer required and can be disposed of\n sibling.dispose();\n // resize everything\n for (let i = 0; i < sizes.length; i++) {\n grandParent.resizeChild(i, sizes[i]);\n }\n return nodeToRemove.view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL\n ? [height, width]\n : [width, height];\n this.root.layout(size, orthogonalSize);\n }\n getNode(location, node = this.root, path = []) {\n if (location.length === 0) {\n return [path, node];\n }\n if (!(node instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const [index, ...rest] = location;\n if (index < 0 || index >= node.children.length) {\n throw new Error('Invalid location');\n }\n const child = node.children[index];\n path.push(node);\n return this.getNode(rest, child, path);\n }\n}\n","import { Emitter } from '../events';\nexport class SplitviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * The current number of panels.\n */\n get length() {\n return this.component.length;\n }\n /**\n * The current orientation of the component.\n */\n get orientation() {\n return this.component.orientation;\n }\n /**\n * The list of current panels.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked after a layout is loaded through the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked whenever any aspect of the layout changes.\n * If listening to this event it may be worth debouncing ouputs.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a view is added.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a view is removed.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Update configuratable options.\n */\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Removes an existing panel and optionally provide a `Sizing` method\n * for the subsequent resize.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Focus the component.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get the reference to a panel given it's `string` id.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Layout the panel with a width and height.\n */\n layout(width, height) {\n return this.component.layout(width, height);\n }\n /**\n * Add a new panel and return the created instance.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Deserialize a layout to built a splitivew.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /** Serialize a layout */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Remove all panels and clear the component.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class PaneviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n const emitter = new Emitter();\n const disposable = this.component.onDidDrop((e) => {\n emitter.fire(Object.assign(Object.assign({}, e), { api: this }));\n });\n emitter.dispose = () => {\n disposable.dispose();\n emitter.dispose();\n };\n return emitter.event;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height) {\n this.component.layout(width, height);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class GridviewApi {\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.groups;\n }\n /**\n * Current orientation. Can be changed after initialization.\n */\n get orientation() {\n return this.component.orientation;\n }\n set orientation(value) {\n this.component.updateOptions({ orientation: value });\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Move a panel in a particular direction relative to another panel.\n */\n movePanel(panel, options) {\n this.component.movePanel(panel, options);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n return this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class DockviewApi {\n /**\n * The unique identifier for this instance. Used to manage scope of Drag'n'Drop events.\n */\n get id() {\n return this.component.id;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Total number of groups.\n */\n get size() {\n return this.component.size;\n }\n /**\n * Total number of panels.\n */\n get totalPanels() {\n return this.component.totalPanels;\n }\n /**\n * Invoked when the active group changes. May be undefined if no group is active.\n */\n get onDidActiveGroupChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked when a group is added. May be called multiple times when moving groups.\n */\n get onDidAddGroup() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a group is removed. May be called multiple times when moving groups.\n */\n get onDidRemoveGroup() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActivePanelChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddPanel;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemovePanel;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n return this.component.onDidDrop;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and\n * prevent the event from occuring using the standard `preventDefault()` syntax.\n *\n * Preventing certain events may causes unexpected behaviours, use carefully.\n */\n get onWillDrop() {\n return this.component.onWillDrop;\n }\n /**\n *\n */\n get onWillShowOverlay() {\n return this.component.onWillShowOverlay;\n }\n /**\n * Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.\n */\n get onWillDragGroup() {\n return this.component.onWillDragGroup;\n }\n /**\n * Invoked before a panel is dragged. Exposed for custom Drag'n'Drop functionality.\n */\n get onWillDragPanel() {\n return this.component.onWillDragPanel;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * All group objects.\n */\n get groups() {\n return this.component.groups;\n }\n /**\n * Active panel object.\n */\n get activePanel() {\n return this.component.activePanel;\n }\n /**\n * Active group object.\n */\n get activeGroup() {\n return this.component.activeGroup;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getGroupPanel(id);\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Add a group and return the created object.\n */\n addGroup(options) {\n return this.component.addGroup(options);\n }\n /**\n * Close all groups and panels.\n */\n closeAllGroups() {\n return this.component.closeAllGroups();\n }\n /**\n * Remove a group and any panels within the group.\n */\n removeGroup(group) {\n this.component.removeGroup(group);\n }\n /**\n * Get a group object given a `string` id. May return undefined.\n */\n getGroup(id) {\n return this.component.getPanel(id);\n }\n /**\n * Add a floating group\n */\n addFloatingGroup(item, coord) {\n return this.component.addFloatingGroup(item, coord);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n /**\n * Move the focus progmatically to the next panel or group.\n */\n moveToNext(options) {\n this.component.moveToNext(options);\n }\n /**\n * Move the focus progmatically to the previous panel or group.\n */\n moveToPrevious(options) {\n this.component.moveToPrevious(options);\n }\n maximizeGroup(panel) {\n this.component.maximizeGroup(panel.group);\n }\n hasMaximizedGroup() {\n return this.component.hasMaximizedGroup();\n }\n exitMaximizedGroup() {\n this.component.exitMaximizedGroup();\n }\n get onDidMaximizedGroupChange() {\n return this.component.onDidMaximizedGroupChange;\n }\n /**\n * Add a popout group in a new Window\n */\n addPopoutGroup(item, options) {\n return this.component.addPopoutGroup(item, options);\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nexport class DragAndDropObserver extends CompositeDisposable {\n constructor(element, callbacks) {\n super();\n this.element = element;\n this.callbacks = callbacks;\n this.target = null;\n this.registerListeners();\n }\n onDragEnter(e) {\n this.target = e.target;\n this.callbacks.onDragEnter(e);\n }\n onDragOver(e) {\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n if (this.callbacks.onDragOver) {\n this.callbacks.onDragOver(e);\n }\n }\n onDragLeave(e) {\n if (this.target === e.target) {\n this.target = null;\n this.callbacks.onDragLeave(e);\n }\n }\n onDragEnd(e) {\n this.target = null;\n this.callbacks.onDragEnd(e);\n }\n onDrop(e) {\n this.callbacks.onDrop(e);\n }\n registerListeners() {\n this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {\n this.onDragEnter(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {\n this.onDragOver(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {\n this.onDragLeave(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {\n this.onDragEnd(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {\n this.onDrop(e);\n }));\n }\n}\n","import { toggleClass } from '../dom';\nimport { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { DragAndDropObserver } from './dnd';\nimport { clamp } from '../math';\nexport class WillShowOverlayEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n}\nexport function directionToPosition(direction) {\n switch (direction) {\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'within':\n return 'center';\n default:\n throw new Error(`invalid direction '${direction}'`);\n }\n}\nexport function positionToDirection(position) {\n switch (position) {\n case 'top':\n return 'above';\n case 'bottom':\n return 'below';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'center':\n return 'within';\n default:\n throw new Error(`invalid position '${position}'`);\n }\n}\nconst DEFAULT_ACTIVATION_SIZE = {\n value: 20,\n type: 'percentage',\n};\nconst DEFAULT_SIZE = {\n value: 50,\n type: 'percentage',\n};\nconst SMALL_WIDTH_BOUNDARY = 100;\nconst SMALL_HEIGHT_BOUNDARY = 100;\nexport class Droptarget extends CompositeDisposable {\n get state() {\n return this._state;\n }\n constructor(element, options) {\n super();\n this.element = element;\n this.options = options;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n // use a set to take advantage of #<set>.has\n this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);\n this.dnd = new DragAndDropObserver(this.element, {\n onDragEnter: () => undefined,\n onDragOver: (e) => {\n if (this._acceptedTargetZonesSet.size === 0) {\n this.removeDropTarget();\n return;\n }\n const width = this.element.clientWidth;\n const height = this.element.clientHeight;\n if (width === 0 || height === 0) {\n return; // avoid div!0\n }\n const rect = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);\n /**\n * If the event has already been used by another DropTarget instance\n * then don't show a second drop target, only one target should be\n * active at any one time\n */\n if (this.isAlreadyUsed(e) || quadrant === null) {\n // no drop target should be displayed\n this.removeDropTarget();\n return;\n }\n const willShowOverlayEvent = new WillShowOverlayEvent({\n nativeEvent: e,\n position: quadrant,\n });\n /**\n * Provide an opportunity to prevent the overlay appearing and in turn\n * any dnd behaviours\n */\n this._onWillShowOverlay.fire(willShowOverlayEvent);\n if (willShowOverlayEvent.defaultPrevented) {\n this.removeDropTarget();\n return;\n }\n if (typeof this.options.canDisplayOverlay === 'boolean') {\n if (!this.options.canDisplayOverlay) {\n this.removeDropTarget();\n return;\n }\n }\n else if (!this.options.canDisplayOverlay(e, quadrant)) {\n this.removeDropTarget();\n return;\n }\n this.markAsUsed(e);\n if (!this.targetElement) {\n this.targetElement = document.createElement('div');\n this.targetElement.className = 'drop-target-dropzone';\n this.overlayElement = document.createElement('div');\n this.overlayElement.className = 'drop-target-selection';\n this._state = 'center';\n this.targetElement.appendChild(this.overlayElement);\n this.element.classList.add('drop-target');\n this.element.append(this.targetElement);\n }\n this.toggleClasses(quadrant, width, height);\n this._state = quadrant;\n },\n onDragLeave: () => {\n this.removeDropTarget();\n },\n onDragEnd: () => {\n this.removeDropTarget();\n },\n onDrop: (e) => {\n e.preventDefault();\n const state = this._state;\n this.removeDropTarget();\n if (state) {\n // only stop the propagation of the event if we are dealing with it\n // which is only when the target has state\n e.stopPropagation();\n this._onDrop.fire({ position: state, nativeEvent: e });\n }\n },\n });\n this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);\n }\n setTargetZones(acceptedTargetZones) {\n this._acceptedTargetZonesSet = new Set(acceptedTargetZones);\n }\n setOverlayModel(model) {\n this.options.overlayModel = model;\n }\n dispose() {\n this.removeDropTarget();\n super.dispose();\n }\n /**\n * Add a property to the event object for other potential listeners to check\n */\n markAsUsed(event) {\n event[Droptarget.USED_EVENT_ID] = true;\n }\n /**\n * Check is the event has already been used by another instance of DropTarget\n */\n isAlreadyUsed(event) {\n const value = event[Droptarget.USED_EVENT_ID];\n return typeof value === 'boolean' && value;\n }\n toggleClasses(quadrant, width, height) {\n var _a, _b;\n if (!this.overlayElement) {\n return;\n }\n const isSmallX = width < SMALL_WIDTH_BOUNDARY;\n const isSmallY = height < SMALL_HEIGHT_BOUNDARY;\n const isLeft = quadrant === 'left';\n const isRight = quadrant === 'right';\n const isTop = quadrant === 'top';\n const isBottom = quadrant === 'bottom';\n const rightClass = !isSmallX && isRight;\n const leftClass = !isSmallX && isLeft;\n const topClass = !isSmallY && isTop;\n const bottomClass = !isSmallY && isBottom;\n let size = 1;\n const sizeOptions = (_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : DEFAULT_SIZE;\n if (sizeOptions.type === 'percentage') {\n size = clamp(sizeOptions.value, 0, 100) / 100;\n }\n else {\n if (rightClass || leftClass) {\n size = clamp(0, sizeOptions.value, width) / width;\n }\n if (topClass || bottomClass) {\n size = clamp(0, sizeOptions.value, height) / height;\n }\n }\n const box = { top: '0px', left: '0px', width: '100%', height: '100%' };\n /**\n * You can also achieve the overlay placement using the transform CSS property\n * to translate and scale the element however this has the undesired effect of\n * 'skewing' the element. Comment left here for anybody that ever revisits this.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform\n *\n * right\n * translateX(${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * left\n * translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * top\n * translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})\n *\n * bottom\n * translateY(${100 * (1 - size) / 2}%) scaleY(${scale})\n */\n if (rightClass) {\n box.left = `${100 * (1 - size)}%`;\n box.width = `${100 * size}%`;\n }\n else if (leftClass) {\n box.width = `${100 * size}%`;\n }\n else if (topClass) {\n box.height = `${100 * size}%`;\n }\n else if (bottomClass) {\n box.top = `${100 * (1 - size)}%`;\n box.height = `${100 * size}%`;\n }\n this.overlayElement.style.top = box.top;\n this.overlayElement.style.left = box.left;\n this.overlayElement.style.width = box.width;\n this.overlayElement.style.height = box.height;\n toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);\n toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);\n toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);\n toggleClass(this.overlayElement, 'dv-drop-target-right', isRight);\n toggleClass(this.overlayElement, 'dv-drop-target-top', isTop);\n toggleClass(this.overlayElement, 'dv-drop-target-bottom', isBottom);\n toggleClass(this.overlayElement, 'dv-drop-target-center', quadrant === 'center');\n }\n calculateQuadrant(overlayType, x, y, width, height) {\n var _a, _b;\n const activationSizeOptions = (_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) !== null && _b !== void 0 ? _b : DEFAULT_ACTIVATION_SIZE;\n const isPercentage = activationSizeOptions.type === 'percentage';\n if (isPercentage) {\n return calculateQuadrantAsPercentage(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n return calculateQuadrantAsPixels(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n removeDropTarget() {\n if (this.targetElement) {\n this._state = undefined;\n this.element.removeChild(this.targetElement);\n this.targetElement = undefined;\n this.overlayElement = undefined;\n this.element.classList.remove('drop-target');\n }\n }\n}\nDroptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';\nexport function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {\n const xp = (100 * x) / width;\n const yp = (100 * y) / height;\n if (overlayType.has('left') && xp < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && xp > 100 - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && yp < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && yp > 100 - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\nexport function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {\n if (overlayType.has('left') && x < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && x > width - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && y < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && y > height - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\n","import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';\nimport { Emitter } from '../../../events';\nimport { trackFocus } from '../../../dom';\nimport { Droptarget } from '../../../dnd/droptarget';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nexport class ContentContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this.disposable = new MutableDisposable();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this._element = document.createElement('div');\n this._element.className = 'content-container';\n this._element.tabIndex = -1;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n this.dropTarget = new Droptarget(this.element, {\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n canDisplayOverlay: (event, position) => {\n if (this.group.locked === 'no-drop-target' ||\n (this.group.locked && position === 'center')) {\n return false;\n }\n const data = getPanelData();\n if (!data &&\n event.shiftKey &&\n this.group.location.type !== 'floating') {\n return false;\n }\n if (data && data.viewId === this.accessor.id) {\n if (data.groupId === this.group.id) {\n if (position === 'center') {\n // don't allow to drop on self for center position\n return false;\n }\n if (data.panelId === null) {\n // don't allow group move to drop anywhere on self\n return false;\n }\n }\n const groupHasOnePanelAndIsActiveDragElement = this.group.panels.length === 1 &&\n data.groupId === this.group.id;\n return !groupHasOnePanelAndIsActiveDragElement;\n }\n return this.group.canDisplayOverlay(event, position, 'panel');\n },\n });\n this.addDisposables(this.dropTarget);\n }\n show() {\n this.element.style.display = '';\n }\n hide() {\n this.element.style.display = 'none';\n }\n renderPanel(panel, options = { asActive: true }) {\n const doRender = options.asActive ||\n (this.panel && this.group.isPanelActive(this.panel));\n if (this.panel &&\n this.panel.view.content.element.parentElement === this._element) {\n /**\n * If the currently attached panel is mounted directly to the content then remove it\n */\n this._element.removeChild(this.panel.view.content.element);\n }\n this.panel = panel;\n let container;\n switch (panel.api.renderer) {\n case 'onlyWhenVisibile':\n this.group.renderContainer.detatch(panel);\n if (this.panel) {\n if (doRender) {\n this._element.appendChild(this.panel.view.content.element);\n }\n }\n container = this._element;\n break;\n case 'always':\n if (panel.view.content.element.parentElement === this._element) {\n this._element.removeChild(panel.view.content.element);\n }\n container = this.group.renderContainer.attach({\n panel,\n referenceContainer: this,\n });\n break;\n }\n if (doRender) {\n const _onDidFocus = panel.view.content.onDidFocus;\n const _onDidBlur = panel.view.content.onDidBlur;\n const focusTracker = trackFocus(container);\n const disposable = new CompositeDisposable();\n disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));\n if (_onDidFocus) {\n disposable.addDisposables(_onDidFocus(() => this._onDidFocus.fire()));\n }\n if (_onDidBlur) {\n disposable.addDisposables(_onDidBlur(() => this._onDidBlur.fire()));\n }\n this.disposable.value = disposable;\n }\n }\n openPanel(panel) {\n if (this.panel === panel) {\n return;\n }\n this.renderPanel(panel);\n }\n layout(_width, _height) {\n // noop\n }\n closePanel() {\n var _a;\n if (this.panel) {\n if (this.panel.api.renderer === 'onlyWhenVisibile') {\n (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);\n }\n }\n this.panel = undefined;\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { getElementsByTagName } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nexport class DragHandler extends CompositeDisposable {\n constructor(el) {\n super();\n this.el = el;\n this.dataDisposable = new MutableDisposable();\n this.pointerEventsDisposable = new MutableDisposable();\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);\n this.configure();\n }\n isCancelled(_event) {\n return false;\n }\n configure() {\n this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {\n if (event.defaultPrevented || this.isCancelled(event)) {\n event.preventDefault();\n return;\n }\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n this.pointerEventsDisposable.value = {\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n };\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n this.el.classList.add('dv-dragged');\n setTimeout(() => this.el.classList.remove('dv-dragged'), 0);\n this.dataDisposable.value = this.getData(event);\n this._onDragStart.fire(event);\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n const hasData = event.dataTransfer.items.length > 0;\n if (!hasData) {\n /**\n * Although this is not used by dockview many third party dnd libraries will check\n * dataTransfer.types to determine valid drag events.\n *\n * For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled\n * through .preventDefault(). Since this is applied globally to all drag events this would break dockviews\n * dnd logic. You can see the code at\n * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542\n */\n event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');\n }\n }\n }), addDisposableListener(this.el, 'dragend', () => {\n this.pointerEventsDisposable.dispose();\n this.dataDisposable.dispose();\n }));\n }\n}\n","import { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer';\nimport { toggleClass } from '../../../dom';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { DragHandler } from '../../../dnd/abstractDragHandler';\nclass TabDragHandler extends DragHandler {\n constructor(element, accessor, group, panel) {\n super(element);\n this.accessor = accessor;\n this.group = group;\n this.panel = panel;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n }\n getData(event) {\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, this.panel.id)], PanelTransfer.prototype);\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\nexport class Tab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(panel, accessor, group) {\n super();\n this.panel = panel;\n this.accessor = accessor;\n this.group = group;\n this.content = undefined;\n this._onChanged = new Emitter();\n this.onChanged = this._onChanged.event;\n this._onDropped = new Emitter();\n this.onDrop = this._onDropped.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'tab';\n this._element.tabIndex = 0;\n this._element.draggable = true;\n toggleClass(this.element, 'inactive-tab', true);\n const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);\n this.dropTarget = new Droptarget(this._element, {\n acceptedTargetZones: ['center'],\n canDisplayOverlay: (event, position) => {\n if (this.group.locked) {\n return false;\n }\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n if (data.panelId === null &&\n data.groupId === this.group.id) {\n // don't allow group move to drop on self\n return false;\n }\n return this.panel.id !== data.panelId;\n }\n return this.group.model.canDisplayOverlay(event, position, 'tab');\n },\n });\n this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;\n this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {\n this._onDragStart.fire(event);\n }), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n this._onChanged.fire(event);\n }), this.dropTarget.onDrop((event) => {\n this._onDropped.fire(event);\n }), this.dropTarget);\n }\n setActive(isActive) {\n toggleClass(this.element, 'active-tab', isActive);\n toggleClass(this.element, 'inactive-tab', !isActive);\n }\n setContent(part) {\n if (this.content) {\n this._element.removeChild(this.content.element);\n }\n this.content = part;\n this._element.appendChild(this.content.element);\n }\n dispose() {\n super.dispose();\n }\n}\n","import { quasiPreventDefault } from '../dom';\nimport { addDisposableListener } from '../events';\nimport { DragHandler } from './abstractDragHandler';\nimport { LocalSelectionTransfer, PanelTransfer } from './dataTransfer';\nimport { addGhostImage } from './ghost';\nexport class GroupDragHandler extends DragHandler {\n constructor(element, accessor, group) {\n super(element);\n this.accessor = accessor;\n this.group = group;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n this.addDisposables(addDisposableListener(element, 'mousedown', (e) => {\n if (e.shiftKey) {\n /**\n * You cannot call e.preventDefault() because that will prevent drag events from firing\n * but we also need to stop any group overlay drag events from occuring\n * Use a custom event marker that can be checked by the overlay drag events\n */\n quasiPreventDefault(e);\n }\n }, true));\n }\n isCancelled(_event) {\n if (this.group.api.location.type === 'floating' && !_event.shiftKey) {\n return true;\n }\n return false;\n }\n getData(dragEvent) {\n const dataTransfer = dragEvent.dataTransfer;\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, null)], PanelTransfer.prototype);\n const style = window.getComputedStyle(this.el);\n const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');\n const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');\n if (dataTransfer) {\n const ghostElement = document.createElement('div');\n ghostElement.style.backgroundColor = bgColor;\n ghostElement.style.color = color;\n ghostElement.style.padding = '2px 8px';\n ghostElement.style.height = '24px';\n ghostElement.style.fontSize = '11px';\n ghostElement.style.lineHeight = '20px';\n ghostElement.style.borderRadius = '12px';\n ghostElement.style.position = 'absolute';\n ghostElement.textContent = `Multiple Panels (${this.group.size})`;\n addGhostImage(dataTransfer, ghostElement);\n }\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\n","import { addClasses, removeClasses } from '../dom';\nexport function addGhostImage(dataTransfer, ghostElement) {\n // class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues\n addClasses(ghostElement, 'dv-dragged');\n document.body.appendChild(ghostElement);\n dataTransfer.setDragImage(ghostElement, 0, 0);\n setTimeout(() => {\n removeClasses(ghostElement, 'dv-dragged');\n ghostElement.remove();\n }, 0);\n}\n","import { last } from '../../../array';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { GroupDragHandler } from '../../../dnd/groupDragHandler';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nexport class VoidContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'void-container';\n this._element.tabIndex = 0;\n this._element.draggable = true;\n this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {\n this.accessor.doSetGroupActive(this.group);\n }));\n const handler = new GroupDragHandler(this._element, accessor, group);\n this.dropTraget = new Droptarget(this._element, {\n acceptedTargetZones: ['center'],\n canDisplayOverlay: (event, position) => {\n var _a;\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n if (data.panelId === null &&\n data.groupId === this.group.id) {\n // don't allow group move to drop on self\n return false;\n }\n // don't show the overlay if the tab being dragged is the last panel of this group\n return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;\n }\n return group.model.canDisplayOverlay(event, position, 'panel');\n },\n });\n this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;\n this.addDisposables(handler, handler.onDragStart((event) => {\n this._onDragStart.fire(event);\n }), this.dropTraget.onDrop((event) => {\n this._onDrop.fire(event);\n }), this.dropTraget);\n }\n}\n","import { CompositeDisposable, } from '../../../lifecycle';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { Tab } from '../tab/tab';\nimport { VoidContainer } from './voidContainer';\nimport { toggleClass } from '../../../dom';\nimport { WillShowOverlayLocationEvent, } from '../../dockviewGroupPanelModel';\nexport class TabsContainer extends CompositeDisposable {\n get panels() {\n return this.tabs.map((_) => _.value.panel.id);\n }\n get size() {\n return this.tabs.length;\n }\n get hidden() {\n return this._hidden;\n }\n set hidden(value) {\n this._hidden = value;\n this.element.style.display = value ? 'none' : '';\n }\n show() {\n if (!this.hidden) {\n this.element.style.display = '';\n }\n }\n hide() {\n this._element.style.display = 'none';\n }\n setRightActionsElement(element) {\n if (this.rightActions === element) {\n return;\n }\n if (this.rightActions) {\n this.rightActions.remove();\n this.rightActions = undefined;\n }\n if (element) {\n this.rightActionsContainer.appendChild(element);\n this.rightActions = element;\n }\n }\n setLeftActionsElement(element) {\n if (this.leftActions === element) {\n return;\n }\n if (this.leftActions) {\n this.leftActions.remove();\n this.leftActions = undefined;\n }\n if (element) {\n this.leftActionsContainer.appendChild(element);\n this.leftActions = element;\n }\n }\n setPrefixActionsElement(element) {\n if (this.preActions === element) {\n return;\n }\n if (this.preActions) {\n this.preActions.remove();\n this.preActions = undefined;\n }\n if (element) {\n this.preActionsContainer.appendChild(element);\n this.preActions = element;\n }\n }\n get element() {\n return this._element;\n }\n isActive(tab) {\n return (this.selectedIndex > -1 &&\n this.tabs[this.selectedIndex].value === tab);\n }\n indexOf(id) {\n return this.tabs.findIndex((tab) => tab.value.panel.id === id);\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this.tabs = [];\n this.selectedIndex = -1;\n this._hidden = false;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._element = document.createElement('div');\n this._element.className = 'tabs-and-actions-container';\n toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');\n this.rightActionsContainer = document.createElement('div');\n this.rightActionsContainer.className = 'right-actions-container';\n this.leftActionsContainer = document.createElement('div');\n this.leftActionsContainer.className = 'left-actions-container';\n this.preActionsContainer = document.createElement('div');\n this.preActionsContainer.className = 'pre-actions-container';\n this.tabContainer = document.createElement('div');\n this.tabContainer.className = 'tabs-container';\n this.voidContainer = new VoidContainer(this.accessor, this.group);\n this._element.appendChild(this.preActionsContainer);\n this._element.appendChild(this.tabContainer);\n this._element.appendChild(this.leftActionsContainer);\n this._element.appendChild(this.voidContainer.element);\n this._element.appendChild(this.rightActionsContainer);\n this.addDisposables(this.accessor.onDidAddPanel((e) => {\n if (e.api.group === this.group) {\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\n }\n }), this.accessor.onDidRemovePanel((e) => {\n if (e.api.group === this.group) {\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\n }\n }), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {\n this._onGroupDragStart.fire({\n nativeEvent: event,\n group: this.group,\n });\n }), this.voidContainer.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this.tabs.length,\n });\n }), this.voidContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'header_space',\n }));\n }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n if (isFloatingGroupsEnabled &&\n event.shiftKey &&\n this.group.api.location.type !== 'floating') {\n event.preventDefault();\n const { top, left } = this.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(this.group, {\n x: left - rootLeft + 20,\n y: top - rootTop + 20,\n }, { inDragMode: true });\n }\n }), addDisposableListener(this.tabContainer, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n const isLeftClick = event.button === 0;\n if (isLeftClick) {\n this.accessor.doSetGroupActive(this.group);\n }\n }));\n }\n setActive(_isGroupActive) {\n // noop\n }\n addTab(tab, index = this.tabs.length) {\n if (index < 0 || index > this.tabs.length) {\n throw new Error('invalid location');\n }\n this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);\n this.tabs = [\n ...this.tabs.slice(0, index),\n tab,\n ...this.tabs.slice(index),\n ];\n if (this.selectedIndex < 0) {\n this.selectedIndex = index;\n }\n }\n delete(id) {\n const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);\n const tabToRemove = this.tabs.splice(index, 1)[0];\n const { value, disposable } = tabToRemove;\n disposable.dispose();\n value.dispose();\n value.element.remove();\n }\n setActivePanel(panel) {\n this.tabs.forEach((tab) => {\n const isActivePanel = panel.id === tab.value.panel.id;\n tab.value.setActive(isActivePanel);\n });\n }\n openPanel(panel, index = this.tabs.length) {\n var _a;\n if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {\n return;\n }\n const tab = new Tab(panel, this.accessor, this.group);\n if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {\n throw new Error('invalid header component');\n }\n tab.setContent(panel.view.tab);\n const disposable = new CompositeDisposable(tab.onDragStart((event) => {\n this._onTabDragStart.fire({ nativeEvent: event, panel });\n }), tab.onChanged((event) => {\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&\n this.size === 1;\n if (isFloatingGroupsEnabled &&\n !isFloatingWithOnePanel &&\n event.shiftKey) {\n event.preventDefault();\n const panel = this.accessor.getGroupPanel(tab.panel.id);\n const { top, left } = tab.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(panel, {\n x: left - rootLeft,\n y: top - rootTop,\n }, { inDragMode: true });\n return;\n }\n const isLeftClick = event.button === 0;\n if (!isLeftClick || event.defaultPrevented) {\n return;\n }\n if (this.group.activePanel !== panel) {\n this.group.model.openPanel(panel);\n }\n }), tab.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this.tabs.findIndex((x) => x.value === tab),\n });\n }), tab.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));\n }));\n const value = { value: tab, disposable };\n this.addTab(value, index);\n }\n closePanel(panel) {\n this.delete(panel.id);\n }\n dispose() {\n super.dispose();\n for (const { value, disposable } of this.tabs) {\n disposable.dispose();\n value.dispose();\n }\n this.tabs = [];\n }\n}\n","import { DockviewApi } from '../api/component.api';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { isAncestor, toggleClass } from '../dom';\nimport { addDisposableListener, DockviewEvent, Emitter, } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { ContentContainer, } from './components/panel/content';\nimport { TabsContainer, } from './components/titlebar/tabsContainer';\nexport class DockviewDidDropEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n get panel() {\n return this.options.panel;\n }\n get group() {\n return this.options.group;\n }\n get api() {\n return this.options.api;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n getData() {\n return this.options.getData();\n }\n}\nexport class DockviewWillDropEvent extends DockviewDidDropEvent {\n get kind() {\n return this._kind;\n }\n constructor(options) {\n super(options);\n this._kind = options.kind;\n }\n}\nexport class WillShowOverlayLocationEvent {\n get kind() {\n return this._kind;\n }\n get nativeEvent() {\n return this.event.nativeEvent;\n }\n get position() {\n return this.event.position;\n }\n get defaultPrevented() {\n return this.event.defaultPrevented;\n }\n preventDefault() {\n this.event.preventDefault();\n }\n constructor(event, options) {\n this.event = event;\n this._kind = options.kind;\n }\n}\nexport class DockviewGroupPanelModel extends CompositeDisposable {\n get element() {\n throw new Error('not supported');\n }\n get activePanel() {\n return this._activePanel;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);\n }\n get isActive() {\n return this._isGroupActive;\n }\n get panels() {\n return this._panels;\n }\n get size() {\n return this._panels.length;\n }\n get isEmpty() {\n return this._panels.length === 0;\n }\n get hasWatermark() {\n return !!(this.watermark && this.container.contains(this.watermark.element));\n }\n get header() {\n return this.tabsContainer;\n }\n get isContentFocused() {\n if (!document.activeElement) {\n return false;\n }\n return isAncestor(document.activeElement, this.contentContainer.element);\n }\n get location() {\n return this._location;\n }\n set location(value) {\n this._location = value;\n toggleClass(this.container, 'dv-groupview-floating', false);\n toggleClass(this.container, 'dv-groupview-popout', false);\n switch (value.type) {\n case 'grid':\n this.contentContainer.dropTarget.setTargetZones([\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'center',\n ]);\n break;\n case 'floating':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n this.contentContainer.dropTarget.setTargetZones(value\n ? ['center']\n : ['top', 'bottom', 'left', 'right', 'center']);\n toggleClass(this.container, 'dv-groupview-floating', true);\n break;\n case 'popout':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n toggleClass(this.container, 'dv-groupview-popout', true);\n break;\n }\n this.groupPanel.api._onDidLocationChange.fire({\n location: this.location,\n });\n }\n constructor(container, accessor, id, options, groupPanel) {\n var _a;\n super();\n this.container = container;\n this.accessor = accessor;\n this.id = id;\n this.options = options;\n this.groupPanel = groupPanel;\n this._isGroupActive = false;\n this._locked = false;\n this._location = { type: 'grid' };\n this.mostRecentlyUsed = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._width = 0;\n this._height = 0;\n this._panels = [];\n this._onMove = new Emitter();\n this.onMove = this._onMove.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._overwriteRenderContainer = null;\n toggleClass(this.container, 'groupview', true);\n this._api = new DockviewApi(this.accessor);\n this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);\n this.contentContainer = new ContentContainer(this.accessor, this);\n container.append(this.tabsContainer.element, this.contentContainer.element);\n this.header.hidden = !!options.hideHeader;\n this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;\n this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {\n this._onTabDragStart.fire(event);\n }), this.tabsContainer.onGroupDragStart((event) => {\n this._onGroupDragStart.fire(event);\n }), this.tabsContainer.onDrop((event) => {\n this.handleDropEvent('header', event.event, 'center', event.index);\n }), this.contentContainer.onDidFocus(() => {\n this.accessor.doSetGroupActive(this.groupPanel);\n }), this.contentContainer.onDidBlur(() => {\n // noop\n }), this.contentContainer.dropTarget.onDrop((event) => {\n this.handleDropEvent('content', event.nativeEvent, event.position);\n }), this.tabsContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(event);\n }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'content',\n }));\n }), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);\n }\n focusContent() {\n this.contentContainer.element.focus();\n }\n set renderContainer(value) {\n this.panels.forEach((panel) => {\n this.renderContainer.detatch(panel);\n });\n this._overwriteRenderContainer = value;\n this.panels.forEach((panel) => {\n this.rerender(panel);\n });\n }\n get renderContainer() {\n var _a;\n return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);\n }\n initialize() {\n if (this.options.panels) {\n this.options.panels.forEach((panel) => {\n this.doAddPanel(panel);\n });\n }\n if (this.options.activePanel) {\n this.openPanel(this.options.activePanel);\n }\n // must be run after the constructor otherwise this.parent may not be\n // correctly initialized\n this.setActive(this.isActive, true);\n this.updateContainer();\n if (this.accessor.options.createRightHeaderActionsElement) {\n this._rightHeaderActions =\n this.accessor.options.createRightHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._rightHeaderActions);\n this._rightHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);\n }\n if (this.accessor.options.createLeftHeaderActionsElement) {\n this._leftHeaderActions =\n this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._leftHeaderActions);\n this._leftHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);\n }\n if (this.accessor.options.createPrefixHeaderActionsElement) {\n this._prefixHeaderActions =\n this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._prefixHeaderActions);\n this._prefixHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);\n }\n }\n rerender(panel) {\n this.contentContainer.renderPanel(panel, { asActive: false });\n }\n indexOf(panel) {\n return this.tabsContainer.indexOf(panel.id);\n }\n toJSON() {\n var _a;\n const result = {\n views: this.tabsContainer.panels,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n id: this.id,\n };\n if (this.locked !== false) {\n result.locked = this.locked;\n }\n if (this.header.hidden) {\n result.hideHeader = true;\n }\n return result;\n }\n moveToNext(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n const index = options.panel ? this.panels.indexOf(options.panel) : -1;\n let normalizedIndex;\n if (index < this.panels.length - 1) {\n normalizedIndex = index + 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = 0;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n moveToPrevious(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n if (!options.panel) {\n return;\n }\n const index = this.panels.indexOf(options.panel);\n let normalizedIndex;\n if (index > 0) {\n normalizedIndex = index - 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = this.panels.length - 1;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n containsPanel(panel) {\n return this.panels.includes(panel);\n }\n init(_params) {\n //noop\n }\n update(_params) {\n //noop\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n openPanel(panel, options = {}) {\n /**\n * set the panel group\n * add the panel\n * check if group active\n * check if panel active\n */\n if (typeof options.index !== 'number' ||\n options.index > this.panels.length) {\n options.index = this.panels.length;\n }\n const skipSetActive = !!options.skipSetActive;\n // ensure the group is updated before we fire any events\n panel.updateParentGroup(this.groupPanel, {\n skipSetActive: options.skipSetActive,\n });\n this.doAddPanel(panel, options.index, {\n skipSetActive: skipSetActive,\n });\n if (this._activePanel === panel) {\n this.contentContainer.renderPanel(panel, { asActive: true });\n return;\n }\n if (!skipSetActive) {\n this.doSetActivePanel(panel);\n }\n if (!options.skipSetGroupActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n }\n removePanel(groupItemOrId, options = {\n skipSetActive: false,\n }) {\n const id = typeof groupItemOrId === 'string'\n ? groupItemOrId\n : groupItemOrId.id;\n const panelToRemove = this._panels.find((panel) => panel.id === id);\n if (!panelToRemove) {\n throw new Error('invalid operation');\n }\n return this._removePanel(panelToRemove, options);\n }\n closeAllPanels() {\n if (this.panels.length > 0) {\n // take a copy since we will be edting the array as we iterate through\n const arrPanelCpy = [...this.panels];\n for (const panel of arrPanelCpy) {\n this.doClose(panel);\n }\n }\n else {\n this.accessor.removeGroup(this.groupPanel);\n }\n }\n closePanel(panel) {\n this.doClose(panel);\n }\n doClose(panel) {\n this.accessor.removePanel(panel);\n }\n isPanelActive(panel) {\n return this._activePanel === panel;\n }\n updateActions(element) {\n this.tabsContainer.setRightActionsElement(element);\n }\n setActive(isGroupActive, force = false) {\n if (!force && this.isActive === isGroupActive) {\n return;\n }\n this._isGroupActive = isGroupActive;\n toggleClass(this.container, 'active-group', isGroupActive);\n toggleClass(this.container, 'inactive-group', !isGroupActive);\n this.tabsContainer.setActive(this.isActive);\n if (!this._activePanel && this.panels.length > 0) {\n this.doSetActivePanel(this.panels[0]);\n }\n this.updateContainer();\n }\n layout(width, height) {\n var _a;\n this._width = width;\n this._height = height;\n this.contentContainer.layout(this._width, this._height);\n if ((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.layout) {\n this._activePanel.layout(this._width, this._height);\n }\n }\n _removePanel(panel, options) {\n const isActivePanel = this._activePanel === panel;\n this.doRemovePanel(panel);\n if (isActivePanel && this.panels.length > 0) {\n const nextPanel = this.mostRecentlyUsed[0];\n this.openPanel(nextPanel, {\n skipSetActive: options.skipSetActive,\n skipSetGroupActive: options.skipSetActiveGroup,\n });\n }\n if (this._activePanel && this.panels.length === 0) {\n this.doSetActivePanel(undefined);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n return panel;\n }\n doRemovePanel(panel) {\n const index = this.panels.indexOf(panel);\n if (this._activePanel === panel) {\n this.contentContainer.closePanel();\n }\n this.tabsContainer.delete(panel.id);\n this._panels.splice(index, 1);\n if (this.mostRecentlyUsed.includes(panel)) {\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\n }\n this._onDidRemovePanel.fire({ panel });\n }\n doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {\n const existingPanel = this._panels.indexOf(panel);\n const hasExistingPanel = existingPanel > -1;\n this.tabsContainer.show();\n this.contentContainer.show();\n this.tabsContainer.openPanel(panel, index);\n if (!options.skipSetActive) {\n this.contentContainer.openPanel(panel);\n }\n if (hasExistingPanel) {\n // TODO - need to ensure ordering hasn't changed and if it has need to re-order this.panels\n return;\n }\n this.updateMru(panel);\n this.panels.splice(index, 0, panel);\n this._onDidAddPanel.fire({ panel });\n }\n doSetActivePanel(panel) {\n if (this._activePanel === panel) {\n return;\n }\n this._activePanel = panel;\n if (panel) {\n this.tabsContainer.setActivePanel(panel);\n panel.layout(this._width, this._height);\n this.updateMru(panel);\n this._onDidActivePanelChange.fire({\n panel,\n });\n }\n }\n updateMru(panel) {\n if (this.mostRecentlyUsed.includes(panel)) {\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\n }\n this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];\n }\n updateContainer() {\n var _a, _b;\n toggleClass(this.container, 'empty', this.isEmpty);\n this.panels.forEach((panel) => panel.runEvents());\n if (this.isEmpty && !this.watermark) {\n const watermark = this.accessor.createWatermarkComponent();\n watermark.init({\n containerApi: this._api,\n group: this.groupPanel,\n });\n this.watermark = watermark;\n addDisposableListener(this.watermark.element, 'click', () => {\n if (!this.isActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n });\n this.tabsContainer.hide();\n this.contentContainer.element.appendChild(this.watermark.element);\n this.watermark.updateParentGroup(this.groupPanel, true);\n }\n if (!this.isEmpty && this.watermark) {\n this.watermark.element.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = undefined;\n this.tabsContainer.show();\n }\n }\n canDisplayOverlay(event, position, target) {\n // custom overlay handler\n if (this.accessor.options.showDndOverlay) {\n return this.accessor.options.showDndOverlay({\n nativeEvent: event,\n target,\n group: this.accessor.getPanel(this.id),\n position,\n getData: getPanelData,\n });\n }\n return false;\n }\n handleDropEvent(type, event, position, index) {\n if (this.locked === 'no-drop-target') {\n return;\n }\n function getKind() {\n switch (type) {\n case 'header':\n return typeof index === 'number' ? 'tab' : 'header_space';\n case 'content':\n return 'content';\n }\n }\n const panel = typeof index === 'number' ? this.panels[index] : undefined;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n kind: getKind(),\n group: this.groupPanel,\n api: this._api,\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data && data.viewId === this.accessor.id) {\n if (data.panelId === null) {\n // this is a group move dnd event\n const { groupId } = data;\n this._onMove.fire({\n target: position,\n groupId: groupId,\n index,\n });\n return;\n }\n const fromSameGroup = this.tabsContainer.indexOf(data.panelId) !== -1;\n if (fromSameGroup && this.tabsContainer.size === 1) {\n return;\n }\n const { groupId, panelId } = data;\n const isSameGroup = this.id === groupId;\n if (isSameGroup && !position) {\n const oldIndex = this.tabsContainer.indexOf(panelId);\n if (oldIndex === index) {\n return;\n }\n }\n this._onMove.fire({\n target: position,\n groupId: data.groupId,\n itemId: data.panelId,\n index,\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n group: this.groupPanel,\n api: this._api,\n }));\n }\n }\n dispose() {\n var _a, _b, _c;\n super.dispose();\n (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();\n (_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);\n this.watermark = undefined;\n for (const panel of this.panels) {\n panel.dispose();\n }\n this.tabsContainer.dispose();\n this.contentContainer.dispose();\n }\n}\n","import { isInDocument, watchElementResize } from './dom';\nimport { CompositeDisposable } from './lifecycle';\nexport class Resizable extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get disableResizing() {\n return this._disableResizing;\n }\n set disableResizing(value) {\n this._disableResizing = value;\n }\n constructor(parentElement, disableResizing = false) {\n super();\n this._disableResizing = disableResizing;\n this._element = parentElement;\n this.addDisposables(watchElementResize(this._element, (entry) => {\n if (this.isDisposed) {\n /**\n * resize is delayed through requestAnimationFrame so there is a small chance\n * the component has already been disposed of\n */\n return;\n }\n if (this.disableResizing) {\n return;\n }\n if (!this._element.offsetParent) {\n /**\n * offsetParent === null is equivalent to display: none being set on the element or one\n * of it's parents. In the display: none case the size will become (0, 0) which we do\n * not want to propagate.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n *\n * You could use checkVisibility() but at the time of writing it's not supported across\n * all Browsers\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility\n */\n return;\n }\n if (!isInDocument(this._element)) {\n /**\n * since the event is dispatched through requestAnimationFrame there is a small chance\n * the component is no longer attached to the DOM, if that is the case the dimensions\n * are mostly likely all zero and meaningless. we should skip this case.\n */\n return;\n }\n const { width, height } = entry.contentRect;\n this.layout(width, height);\n }));\n }\n}\n","import { Emitter, Event, TickDelayedEvent } from '../events';\nimport { getGridLocation, Gridview } from './gridview';\nimport { Disposable } from '../lifecycle';\nimport { sequentialNumberGenerator } from '../math';\nimport { Sizing } from '../splitview/splitview';\nimport { Resizable } from '../resizable';\nconst nextLayoutId = sequentialNumberGenerator();\nexport function toTarget(direction) {\n switch (direction) {\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'within':\n default:\n return 'center';\n }\n}\nexport class BaseGrid extends Resizable {\n get id() {\n return this._id;\n }\n get size() {\n return this._groups.size;\n }\n get groups() {\n return Array.from(this._groups.values()).map((_) => _.value);\n }\n get width() {\n return this.gridview.width;\n }\n get height() {\n return this.gridview.height;\n }\n get minimumHeight() {\n return this.gridview.minimumHeight;\n }\n get maximumHeight() {\n return this.gridview.maximumHeight;\n }\n get minimumWidth() {\n return this.gridview.minimumWidth;\n }\n get maximumWidth() {\n return this.gridview.maximumWidth;\n }\n get activeGroup() {\n return this._activeGroup;\n }\n get locked() {\n return this.gridview.locked;\n }\n set locked(value) {\n this.gridview.locked = value;\n }\n constructor(options) {\n super(document.createElement('div'), options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._groups = new Map();\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidRemove = new Emitter();\n this.onDidRemove = this._onDidRemove.event;\n this._onDidAdd = new Emitter();\n this.onDidAdd = this._onDidAdd.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._bufferOnDidLayoutChange = new TickDelayedEvent();\n this.element.style.height = '100%';\n this.element.style.width = '100%';\n options.parentElement.appendChild(this.element);\n this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);\n this.gridview.locked = !!options.locked;\n this.element.appendChild(this.gridview.element);\n this.layout(0, 0, true); // set some elements height/widths\n this.addDisposables(Disposable.from(() => {\n var _a;\n (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);\n }), this.gridview.onDidChange(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Event.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), this._bufferOnDidLayoutChange.onEvent(() => {\n this._onDidLayoutChange.fire();\n }), this._bufferOnDidLayoutChange);\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n this._onDidLayoutChange.fire();\n }\n isVisible(panel) {\n return this.gridview.isViewVisible(getGridLocation(panel.element));\n }\n maximizeGroup(panel) {\n this.gridview.maximizeView(panel);\n this.doSetGroupActive(panel);\n }\n isMaximizedGroup(panel) {\n return this.gridview.maximizedView() === panel;\n }\n exitMaximizedGroup() {\n this.gridview.exitMaximizedView();\n }\n hasMaximizedGroup() {\n return this.gridview.hasMaximizedView();\n }\n get onDidMaximizedGroupChange() {\n return this.gridview.onDidMaximizedNodeChange;\n }\n doAddGroup(group, location = [0], size) {\n this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);\n this._onDidAdd.fire(group);\n }\n doRemoveGroup(group, options) {\n if (!this._groups.has(group.id)) {\n throw new Error('invalid operation');\n }\n const item = this._groups.get(group.id);\n const view = this.gridview.remove(group, Sizing.Distribute);\n if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n item.disposable.dispose();\n item.value.dispose();\n this._groups.delete(group.id);\n this._onDidRemove.fire(group);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return view;\n }\n getPanel(id) {\n var _a;\n return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;\n }\n doSetGroupActive(group) {\n if (this._activeGroup === group) {\n return;\n }\n if (this._activeGroup) {\n this._activeGroup.setActive(false);\n }\n if (group) {\n group.setActive(true);\n }\n this._activeGroup = group;\n this._onDidActiveChange.fire(group);\n }\n removeGroup(group) {\n this.doRemoveGroup(group);\n }\n moveToNext(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n moveToPrevious(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n layout(width, height, forceResize) {\n const different = forceResize !== null && forceResize !== void 0 ? forceResize : (width !== this.width || height !== this.height);\n if (!different) {\n return;\n }\n this.gridview.element.style.height = `${height}px`;\n this.gridview.element.style.width = `${width}px`;\n this.gridview.layout(width, height);\n }\n dispose() {\n this._onDidActiveChange.dispose();\n this._onDidAdd.dispose();\n this._onDidRemove.dispose();\n this._onDidLayoutChange.dispose();\n for (const group of this.groups) {\n group.dispose();\n }\n this.gridview.dispose();\n super.dispose();\n }\n}\n","import { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class WillFocusEvent extends DockviewEvent {\n constructor() {\n super();\n }\n}\n/**\n * A core api implementation that should be used across all panel-like objects\n */\nexport class PanelApiImpl extends CompositeDisposable {\n get isFocused() {\n return this._isFocused;\n }\n get isActive() {\n return this._isActive;\n }\n get isVisible() {\n return this._isVisible;\n }\n get isHidden() {\n return this._isHidden;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n constructor(id) {\n super();\n this.id = id;\n this._isFocused = false;\n this._isActive = false;\n this._isVisible = true;\n this._isHidden = false;\n this._width = 0;\n this._height = 0;\n this.panelUpdatesDisposable = new MutableDisposable();\n this._onDidDimensionChange = new Emitter();\n this.onDidDimensionsChange = this._onDidDimensionChange.event;\n this._onDidChangeFocus = new Emitter();\n this.onDidFocusChange = this._onDidChangeFocus.event;\n //\n this._onWillFocus = new Emitter();\n this.onWillFocus = this._onWillFocus.event;\n //\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._onDidHiddenChange = new Emitter();\n this.onDidHiddenChange = this._onDidHiddenChange.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._onActiveChange = new Emitter();\n this.onActiveChange = this._onActiveChange.event;\n this._onUpdateParameters = new Emitter();\n this.onUpdateParameters = this._onUpdateParameters.event;\n this.addDisposables(this.onDidFocusChange((event) => {\n this._isFocused = event.isFocused;\n }), this.onDidActiveChange((event) => {\n this._isActive = event.isActive;\n }), this.onDidVisibilityChange((event) => {\n this._isVisible = event.isVisible;\n }), this.onDidHiddenChange((event) => {\n this._isHidden = event.isHidden;\n }), this.onDidDimensionsChange((event) => {\n this._width = event.width;\n this._height = event.height;\n }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onDidHiddenChange, this._onUpdateParameters);\n }\n initialize(panel) {\n this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {\n panel.update({\n params: parameters,\n });\n });\n }\n setHidden(isHidden) {\n this._onDidHiddenChange.fire({ isHidden });\n }\n setActive() {\n this._onActiveChange.fire();\n }\n updateParameters(parameters) {\n this._onUpdateParameters.fire(parameters);\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class SplitviewPanelApiImpl extends PanelApiImpl {\n //\n constructor(id) {\n super(id);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n //\n this._onDidConstraintsChange = new Emitter({\n replay: true,\n });\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n //\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { Emitter } from '../events';\nimport { SplitviewPanelApiImpl } from './splitviewPanelApi';\nexport class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {\n set pane(pane) {\n this._pane = pane;\n }\n constructor(id) {\n super(id);\n this._onDidExpansionChange = new Emitter({\n replay: true,\n });\n this.onDidExpansionChange = this._onDidExpansionChange.event;\n this._onMouseEnter = new Emitter({});\n this.onMouseEnter = this._onMouseEnter.event;\n this._onMouseLeave = new Emitter({});\n this.onMouseLeave = this._onMouseLeave.event;\n this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);\n }\n setExpanded(isExpanded) {\n var _a;\n (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);\n }\n get isExpanded() {\n var _a;\n return !!((_a = this._pane) === null || _a === void 0 ? void 0 : _a.isExpanded());\n }\n}\n","import { trackFocus } from '../dom';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class BasePanelView extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n get params() {\n var _a;\n return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;\n }\n constructor(id, component, api) {\n super();\n this.id = id;\n this.component = component;\n this.api = api;\n this._height = 0;\n this._width = 0;\n this._element = document.createElement('div');\n this._element.tabIndex = -1;\n this._element.style.outline = 'none';\n this._element.style.height = '100%';\n this._element.style.width = '100%';\n this._element.style.overflow = 'hidden';\n const focusTracker = trackFocus(this._element);\n this.addDisposables(this.api, focusTracker.onDidFocus(() => {\n this.api._onDidChangeFocus.fire({ isFocused: true });\n }), focusTracker.onDidBlur(() => {\n this.api._onDidChangeFocus.fire({ isFocused: false });\n }), focusTracker);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n this._element.focus();\n }\n layout(width, height) {\n this._width = width;\n this._height = height;\n this.api._onDidDimensionChange.fire({ width, height });\n if (this.part) {\n if (this._params) {\n this.part.update(this._params.params);\n }\n }\n }\n init(parameters) {\n this._params = parameters;\n this.part = this.getComponent();\n }\n update(event) {\n var _a, _b;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, this._params), { params: Object.assign(Object.assign({}, (_a = this._params) === null || _a === void 0 ? void 0 : _a.params), event.params) });\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params.params[key];\n }\n }\n // update the view with the updated props\n (_b = this.part) === null || _b === void 0 ? void 0 : _b.update({ params: this._params.params });\n }\n toJSON() {\n var _a, _b;\n const params = (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {};\n return {\n id: this.id,\n component: this.component,\n params: Object.keys(params).length > 0 ? params : undefined,\n };\n }\n dispose() {\n var _a;\n this.api.dispose();\n (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();\n super.dispose();\n }\n}\n","import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';\nimport { addClasses, removeClasses } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { BasePanelView, } from '../gridview/basePanelView';\nimport { Orientation } from '../splitview/splitview';\nexport class PaneviewPanel extends BasePanelView {\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const minimumBodySize = expanded ? this._minimumBodySize : 0;\n return headerSize + minimumBodySize;\n }\n get maximumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const maximumBodySize = expanded ? this._maximumBodySize : 0;\n return headerSize + maximumBodySize;\n }\n get size() {\n return this._size;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(size) {\n this._orthogonalSize = size;\n }\n get minimumBodySize() {\n return this._minimumBodySize;\n }\n set minimumBodySize(value) {\n this._minimumBodySize = typeof value === 'number' ? value : 0;\n }\n get maximumBodySize() {\n return this._maximumBodySize;\n }\n set maximumBodySize(value) {\n this._maximumBodySize =\n typeof value === 'number' ? value : Number.POSITIVE_INFINITY;\n }\n get headerVisible() {\n return this._headerVisible;\n }\n set headerVisible(value) {\n this._headerVisible = value;\n this.header.style.display = value ? '' : 'none';\n }\n constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {\n super(id, component, new PaneviewPanelApiImpl(id));\n this.headerComponent = headerComponent;\n this._onDidChangeExpansionState = new Emitter({ replay: true });\n this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.headerSize = 22;\n this._orthogonalSize = 0;\n this._size = 0;\n this._minimumBodySize = 100;\n this._maximumBodySize = Number.POSITIVE_INFINITY;\n this._isExpanded = false;\n this.expandedSize = 0;\n this.api.pane = this; // TODO cannot use 'this' before 'super'\n this.api.initialize(this);\n this._isExpanded = isExpanded;\n this._headerVisible = isHeaderVisible;\n this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value\n this._orientation = orientation;\n this.element.classList.add('pane');\n this.addDisposables(this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }), addDisposableListener(this.element, 'mouseenter', (ev) => {\n this.api._onMouseEnter.fire(ev);\n }), addDisposableListener(this.element, 'mouseleave', (ev) => {\n this.api._onMouseLeave.fire(ev);\n }));\n this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {\n this.api._onDidExpansionChange.fire({\n isExpanded: isPanelExpanded,\n });\n }), this.api.onDidFocusChange((e) => {\n if (!this.header) {\n return;\n }\n if (e.isFocused) {\n addClasses(this.header, 'focused');\n }\n else {\n removeClasses(this.header, 'focused');\n }\n }));\n this.renderOnce();\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n isExpanded() {\n return this._isExpanded;\n }\n setExpanded(expanded) {\n if (this._isExpanded === expanded) {\n return;\n }\n this._isExpanded = expanded;\n if (expanded) {\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n }\n if (this.body) {\n this.element.appendChild(this.body);\n }\n }\n else {\n this.animationTimer = setTimeout(() => {\n var _a;\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.remove();\n }, 200);\n }\n this._onDidChange.fire(expanded ? { size: this.width } : {});\n this._onDidChangeExpansionState.fire(expanded);\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n if (this.isExpanded()) {\n this.expandedSize = width;\n }\n super.layout(width, height);\n }\n init(parameters) {\n var _a, _b;\n super.init(parameters);\n if (typeof parameters.minimumBodySize === 'number') {\n this.minimumBodySize = parameters.minimumBodySize;\n }\n if (typeof parameters.maximumBodySize === 'number') {\n this.maximumBodySize = parameters.maximumBodySize;\n }\n this.bodyPart = this.getBodyComponent();\n this.headerPart = this.getHeaderComponent();\n this.bodyPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n this.headerPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.append(this.bodyPart.element);\n (_b = this.header) === null || _b === void 0 ? void 0 : _b.append(this.headerPart.element);\n if (typeof parameters.isExpanded === 'boolean') {\n this.setExpanded(parameters.isExpanded);\n }\n }\n toJSON() {\n const params = this._params;\n return Object.assign(Object.assign({}, super.toJSON()), { headerComponent: this.headerComponent, title: params.title });\n }\n renderOnce() {\n this.header = document.createElement('div');\n this.header.tabIndex = 0;\n this.header.className = 'pane-header';\n this.header.style.height = `${this.headerSize}px`;\n this.header.style.lineHeight = `${this.headerSize}px`;\n this.header.style.minHeight = `${this.headerSize}px`;\n this.header.style.maxHeight = `${this.headerSize}px`;\n this.element.appendChild(this.header);\n this.body = document.createElement('div');\n this.body.className = 'pane-body';\n this.element.appendChild(this.body);\n }\n // TODO slightly hacky by-pass of the component to create a body and header component\n getComponent() {\n return {\n update: (params) => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.update({ params });\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.update({ params });\n },\n dispose: () => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.dispose();\n },\n };\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { DragHandler } from '../dnd/abstractDragHandler';\nimport { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';\nimport { Droptarget } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { PaneviewPanel, } from './paneviewPanel';\nexport class DraggablePaneviewPanel extends PaneviewPanel {\n constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {\n super(id, component, headerComponent, orientation, isExpanded, true);\n this.accessor = accessor;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n if (!disableDnd) {\n this.initDragFeatures();\n }\n }\n initDragFeatures() {\n if (!this.header) {\n return;\n }\n const id = this.id;\n const accessorId = this.accessor.id;\n this.header.draggable = true;\n this.handler = new (class PaneDragHandler extends DragHandler {\n getData() {\n LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);\n return {\n dispose: () => {\n LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);\n },\n };\n }\n })(this.header);\n this.target = new Droptarget(this.element, {\n acceptedTargetZones: ['top', 'bottom'],\n overlayModel: {\n activationSize: { type: 'percentage', value: 50 },\n },\n canDisplayOverlay: (event) => {\n const data = getPaneData();\n if (data) {\n if (data.paneId !== this.id &&\n data.viewId === this.accessor.id) {\n return true;\n }\n }\n if (this.accessor.options.showDndOverlay) {\n return this.accessor.options.showDndOverlay({\n nativeEvent: event,\n getData: getPaneData,\n panel: this,\n });\n }\n return false;\n },\n });\n this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {\n this.onDrop(event);\n }));\n }\n onDrop(event) {\n const data = getPaneData();\n if (!data || data.viewId !== this.accessor.id) {\n // if there is no local drag event for this panel\n // or if the drag event was creating by another Paneview instance\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));\n return;\n }\n const containerApi = this._params\n .containerApi;\n const panelId = data.paneId;\n const existingPanel = containerApi.getPanel(panelId);\n if (!existingPanel) {\n // if the panel doesn't exist\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));\n return;\n }\n const allPanels = containerApi.panels;\n const fromIndex = allPanels.indexOf(existingPanel);\n let toIndex = containerApi.panels.indexOf(this);\n if (event.position === 'left' || event.position === 'top') {\n toIndex = Math.max(0, toIndex - 1);\n }\n if (event.position === 'right' || event.position === 'bottom') {\n if (fromIndex > toIndex) {\n toIndex++;\n }\n toIndex = Math.min(allPanels.length - 1, toIndex);\n }\n containerApi.movePanel(fromIndex, toIndex);\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class GridviewPanelApiImpl extends PanelApiImpl {\n constructor(id, panel) {\n super(id);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n this._onDidConstraintsChange = new Emitter();\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n if (panel) {\n this.initialize(panel);\n }\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { BasePanelView, } from './basePanelView';\nimport { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';\nimport { Emitter } from '../events';\nexport class GridviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n get snap() {\n return this._snap;\n }\n get minimumWidth() {\n const width = typeof this._minimumWidth === 'function'\n ? this._minimumWidth()\n : this._minimumWidth;\n if (width !== this._evaluatedMinimumWidth) {\n this._evaluatedMinimumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n get minimumHeight() {\n const height = typeof this._minimumHeight === 'function'\n ? this._minimumHeight()\n : this._minimumHeight;\n if (height !== this._evaluatedMinimumHeight) {\n this._evaluatedMinimumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n get maximumHeight() {\n const height = typeof this._maximumHeight === 'function'\n ? this._maximumHeight()\n : this._maximumHeight;\n if (height !== this._evaluatedMaximumHeight) {\n this._evaluatedMaximumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n get maximumWidth() {\n const width = typeof this._maximumWidth === 'function'\n ? this._maximumWidth()\n : this._maximumWidth;\n if (width !== this._evaluatedMaximumWidth) {\n this._evaluatedMaximumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n get isActive() {\n return this.api.isActive;\n }\n constructor(id, component, options, api) {\n super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));\n this._evaluatedMinimumWidth = 0;\n this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;\n this._evaluatedMinimumHeight = 0;\n this._evaluatedMaximumHeight = Number.MAX_SAFE_INTEGER;\n this._minimumWidth = 0;\n this._minimumHeight = 0;\n this._maximumWidth = Number.MAX_SAFE_INTEGER;\n this._maximumHeight = Number.MAX_SAFE_INTEGER;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumWidth) === 'number') {\n this._minimumWidth = options.minimumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumWidth) === 'number') {\n this._maximumWidth = options.maximumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumHeight) === 'number') {\n this._minimumHeight = options.minimumHeight;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumHeight) === 'number') {\n this._maximumHeight = options.maximumHeight;\n }\n this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement\n this.addDisposables(this.api.onDidHiddenChange((event) => {\n const { isHidden } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, !isHidden);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.doSetGroupActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumWidth === 'number' ||\n typeof event.minimumWidth === 'function') {\n this._minimumWidth = event.minimumWidth;\n }\n if (typeof event.minimumHeight === 'number' ||\n typeof event.minimumHeight === 'function') {\n this._minimumHeight = event.minimumHeight;\n }\n if (typeof event.maximumWidth === 'number' ||\n typeof event.maximumWidth === 'function') {\n this._maximumWidth = event.maximumWidth;\n }\n if (typeof event.maximumHeight === 'number' ||\n typeof event.maximumHeight === 'function') {\n this._maximumHeight = event.maximumHeight;\n }\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({\n height: event.height,\n width: event.width,\n });\n }), this._onDidChange);\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n init(parameters) {\n if (parameters.maximumHeight) {\n this._maximumHeight = parameters.maximumHeight;\n }\n if (parameters.minimumHeight) {\n this._minimumHeight = parameters.minimumHeight;\n }\n if (parameters.maximumWidth) {\n this._maximumWidth = parameters.maximumWidth;\n }\n if (parameters.minimumWidth) {\n this._minimumWidth = parameters.minimumWidth;\n }\n this._priority = parameters.priority;\n this._snap = !!parameters.snap;\n super.init(parameters);\n if (typeof parameters.isVisible === 'boolean') {\n this.setVisible(parameters.isVisible);\n }\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n minimumWidth: this._evaluatedMinimumWidth,\n maximumWidth: this._evaluatedMaximumWidth,\n minimumHeight: this._evaluatedMinimumHeight,\n maximumHeight: this._evaluatedMaximumHeight,\n });\n }\n toJSON() {\n const state = super.toJSON();\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ? undefined : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, state), { minimumHeight: minimum(this.minimumHeight), maximumHeight: maximum(this.maximumHeight), minimumWidth: minimum(this.minimumWidth), maximumWidth: maximum(this.maximumWidth), snap: this.snap, priority: this.priority });\n }\n}\n","import { positionToDirection } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\n// TODO find a better way to initialize and avoid needing null checks\nconst NOT_INITIALIZED_MESSAGE = 'DockviewGroupPanelApiImpl not initialized';\nexport class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this._group.model.location;\n }\n constructor(id, accessor) {\n super(id);\n this.accessor = accessor;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this.addDisposables(this._onDidLocationChange);\n }\n close() {\n if (!this._group) {\n return;\n }\n return this.accessor.removeGroup(this._group);\n }\n getWindow() {\n return this.location.type === 'popout'\n ? this.location.getWindow()\n : window;\n }\n moveTo(options) {\n var _a, _b, _c;\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({\n direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),\n skipSetActive: true,\n });\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id },\n to: {\n group,\n position: options.group\n ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'\n : 'center',\n },\n });\n }\n maximize() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.location.type !== 'grid') {\n // only grid groups can be maximized\n return;\n }\n this.accessor.maximizeGroup(this._group);\n }\n isMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this.accessor.isMaximizedGroup(this._group);\n }\n exitMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.isMaximized()) {\n this.accessor.exitMaximizedGroup();\n }\n }\n initialize(group) {\n this._group = group;\n }\n}\n","import { DockviewGroupPanelModel, } from './dockviewGroupPanelModel';\nimport { GridviewPanel } from '../gridview/gridviewPanel';\nimport { DockviewGroupPanelApiImpl, } from '../api/dockviewGroupPanelApi';\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH = 100;\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT = 100;\nexport class DockviewGroupPanel extends GridviewPanel {\n get panels() {\n return this._model.panels;\n }\n get activePanel() {\n return this._model.activePanel;\n }\n get size() {\n return this._model.size;\n }\n get model() {\n return this._model;\n }\n get locked() {\n return this._model.locked;\n }\n set locked(value) {\n this._model.locked = value;\n }\n get header() {\n return this._model.header;\n }\n constructor(accessor, id, options) {\n super(id, 'groupview_default', {\n minimumHeight: MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT,\n minimumWidth: MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH,\n }, new DockviewGroupPanelApiImpl(id, accessor));\n this.api.initialize(this); // cannot use 'this' after after 'super' call\n this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);\n }\n focus() {\n if (!this.api.isActive) {\n this.api.setActive();\n }\n super.focus();\n }\n initialize() {\n this._model.initialize();\n }\n setActive(isActive) {\n super.setActive(isActive);\n this.model.setActive(isActive);\n }\n layout(width, height) {\n super.layout(width, height);\n this.model.layout(width, height);\n }\n getComponent() {\n return this._model;\n }\n toJSON() {\n return this.model.toJSON();\n }\n}\n","export function isPanelOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isPanelOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\n","import { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class DockviewPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n return this.group.api.location;\n }\n get title() {\n return this.panel.title;\n }\n get isGroupActive() {\n return this.group.isActive;\n }\n get renderer() {\n return this.panel.renderer;\n }\n set group(value) {\n const isOldGroupActive = this.isGroupActive;\n if (this._group !== value) {\n this._group = value;\n this._onDidGroupChange.fire({});\n let _trackGroupActive = isOldGroupActive; // prevent duplicate events with same state\n this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidLocationChange((event) => {\n if (this.group !== this.panel.group) {\n return;\n }\n this._onDidLocationChange.fire(event);\n }), this.group.api.onDidActiveChange(() => {\n if (this.group !== this.panel.group) {\n return;\n }\n if (_trackGroupActive !== this.isGroupActive) {\n _trackGroupActive = this.isGroupActive;\n this._onDidActiveGroupChange.fire({\n isActive: this.isGroupActive,\n });\n }\n }));\n // if (this.isGroupActive !== isOldGroupActive) {\n // this._onDidActiveGroupChange.fire({\n // isActive: this.isGroupActive,\n // });\n // }\n this._onDidLocationChange.fire({\n location: this.group.api.location,\n });\n }\n }\n get group() {\n return this._group;\n }\n constructor(panel, group, accessor) {\n super(panel.id);\n this.panel = panel;\n this.accessor = accessor;\n this._onDidTitleChange = new Emitter();\n this.onDidTitleChange = this._onDidTitleChange.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._onDidGroupChange = new Emitter();\n this.onDidGroupChange = this._onDidGroupChange.event;\n this._onDidRendererChange = new Emitter();\n this.onDidRendererChange = this._onDidRendererChange.event;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this.groupEventsDisposable = new MutableDisposable();\n this.initialize(panel);\n this._group = group;\n this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);\n }\n getWindow() {\n return this.group.api.getWindow();\n }\n moveTo(options) {\n var _a;\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id, panelId: this.panel.id },\n to: {\n group: options.group,\n position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',\n index: options.index,\n },\n });\n }\n setTitle(title) {\n this.panel.setTitle(title);\n }\n setRenderer(renderer) {\n this.panel.setRenderer(renderer);\n }\n close() {\n this.group.model.closePanel(this.panel);\n }\n maximize() {\n this.group.api.maximize();\n }\n isMaximized() {\n return this.group.api.isMaximized();\n }\n exitMaximized() {\n this.group.api.exitMaximized();\n }\n}\n","import { DockviewPanelApiImpl, } from '../api/dockviewPanelApi';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class DockviewPanel extends CompositeDisposable {\n get params() {\n return this._params;\n }\n get title() {\n return this._title;\n }\n get group() {\n return this._group;\n }\n get renderer() {\n var _a;\n return (_a = this._renderer) !== null && _a !== void 0 ? _a : this.accessor.renderer;\n }\n constructor(id, accessor, containerApi, group, view, options) {\n super();\n this.id = id;\n this.accessor = accessor;\n this.containerApi = containerApi;\n this.view = view;\n this._renderer = options.renderer;\n this._group = group;\n this.api = new DockviewPanelApiImpl(this, this._group, accessor);\n this.addDisposables(this.api.onActiveChange(() => {\n accessor.setActivePanel(this);\n }), this.api.onDidSizeChange((event) => {\n // forward the resize event to the group since if you want to resize a panel\n // you are actually just resizing the panels parent which is the group\n this.group.api.setSize(event);\n }), this.api.onDidRendererChange((event) => {\n this.group.model.rerender(this);\n }));\n }\n init(params) {\n this._params = params.params;\n this.view.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));\n this.setTitle(params.title);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n if (!this.api.isActive) {\n this.api.setActive();\n }\n }\n toJSON() {\n return {\n id: this.id,\n contentComponent: this.view.contentComponent,\n tabComponent: this.view.tabComponent,\n params: Object.keys(this._params || {}).length > 0\n ? this._params\n : undefined,\n title: this.title,\n renderer: this._renderer,\n };\n }\n setTitle(title) {\n const didTitleChange = title !== this.title;\n if (didTitleChange) {\n this._title = title;\n this.view.update({\n params: {\n params: this._params,\n title: this.title,\n },\n });\n this.api._onDidTitleChange.fire({ title });\n }\n }\n setRenderer(renderer) {\n const didChange = renderer !== this.renderer;\n if (didChange) {\n this._renderer = renderer;\n this.api._onDidRendererChange.fire({\n renderer: renderer,\n });\n }\n }\n update(event) {\n var _a;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, ((_a = this._params) !== null && _a !== void 0 ? _a : {})), event.params);\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params[key];\n }\n }\n // update the view with the updated props\n this.view.update({\n params: {\n params: this._params,\n title: this.title,\n },\n });\n }\n updateParentGroup(group, options) {\n this._group = group;\n this.api.group = this._group;\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n runEvents() {\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n layout(width, height) {\n // TODO: Can we somehow do height without header height or indicate what the header height is?\n this.api._onDidDimensionChange.fire({\n width,\n height: height,\n });\n this.view.layout(width, height);\n }\n dispose() {\n this.api.dispose();\n this.view.dispose();\n }\n}\n","const createSvgElementFromPath = (params) => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttributeNS(null, 'height', params.height);\n svg.setAttributeNS(null, 'width', params.width);\n svg.setAttributeNS(null, 'viewBox', params.viewbox);\n svg.setAttributeNS(null, 'aria-hidden', 'false');\n svg.setAttributeNS(null, 'focusable', 'false');\n svg.classList.add('dockview-svg');\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttributeNS(null, 'd', params.path);\n svg.appendChild(path);\n return svg;\n};\nexport const createCloseButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 28 28',\n path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',\n});\nexport const createExpandMoreButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 24 15',\n path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',\n});\nexport const createChevronRightButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 15 25',\n path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',\n});\n","import { CompositeDisposable } from '../../../lifecycle';\nimport { addDisposableListener } from '../../../events';\nimport { createCloseButton } from '../../../svg';\nexport class DefaultTab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n //\n this.params = {};\n this._element = document.createElement('div');\n this._element.className = 'default-tab';\n //\n this._content = document.createElement('div');\n this._content.className = 'tab-content';\n //\n this._actionContainer = document.createElement('div');\n this._actionContainer.className = 'action-container';\n //\n this._list = document.createElement('ul');\n this._list.className = 'tab-list';\n //\n this.action = document.createElement('div');\n this.action.className = 'tab-action';\n this.action.appendChild(createCloseButton());\n //\n this._element.appendChild(this._content);\n this._element.appendChild(this._actionContainer);\n this._actionContainer.appendChild(this._list);\n this._list.appendChild(this.action);\n //\n this.addDisposables(addDisposableListener(this._actionContainer, 'mousedown', (ev) => {\n ev.preventDefault();\n }));\n this.render();\n }\n update(event) {\n this.params = Object.assign(Object.assign({}, this.params), event.params);\n this.render();\n }\n focus() {\n //noop\n }\n init(params) {\n this.params = params;\n this._content.textContent = params.title;\n addDisposableListener(this.action, 'click', (ev) => {\n ev.preventDefault(); //\n this.params.api.close();\n });\n }\n onGroupChange(_group) {\n this.render();\n }\n onPanelVisibleChange(_isPanelVisible) {\n this.render();\n }\n layout(_width, _height) {\n // noop\n }\n render() {\n if (this._content.textContent !== this.params.title) {\n this._content.textContent = this.params.title;\n }\n }\n}\n","import { DefaultTab } from './components/tab/defaultTab';\nimport { createComponent } from '../panel/componentFactory';\nexport class DockviewPanelModel {\n get content() {\n return this._content;\n }\n get tab() {\n return this._tab;\n }\n constructor(accessor, id, contentComponent, tabComponent) {\n this.accessor = accessor;\n this.id = id;\n this.contentComponent = contentComponent;\n this.tabComponent = tabComponent;\n this._content = this.createContentComponent(this.id, contentComponent);\n this._tab = this.createTabComponent(this.id, tabComponent);\n }\n init(params) {\n this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));\n this.tab.init(params);\n }\n updateParentGroup(_group, _isPanelVisible) {\n // noop\n }\n layout(width, height) {\n var _a, _b;\n (_b = (_a = this.content).layout) === null || _b === void 0 ? void 0 : _b.call(_a, width, height);\n }\n update(event) {\n var _a, _b, _c, _d;\n (_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n (_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);\n }\n dispose() {\n var _a, _b, _c, _d;\n (_b = (_a = this.content).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);\n }\n createContentComponent(id, componentName) {\n var _a, _b;\n return createComponent(id, componentName, (_a = this.accessor.options.components) !== null && _a !== void 0 ? _a : {}, this.accessor.options.frameworkComponents, (_b = this.accessor.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.content);\n }\n createTabComponent(id, componentName) {\n var _a, _b;\n if (componentName) {\n return createComponent(id, componentName, this.accessor.options.tabComponents, this.accessor.options.frameworkTabComponents, (_a = this.accessor.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.tab, () => new DefaultTab());\n }\n else if (this.accessor.options.defaultTabComponent) {\n return createComponent(id, this.accessor.options.defaultTabComponent, this.accessor.options.tabComponents, this.accessor.options.frameworkTabComponents, (_b = this.accessor.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.tab, () => new DefaultTab());\n }\n else {\n return new DefaultTab();\n }\n }\n}\n","import { DockviewPanel } from './dockviewPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { DockviewApi } from '../api/component.api';\nexport class DefaultDockviewDeserialzier {\n constructor(accessor) {\n this.accessor = accessor;\n }\n fromJSON(panelData, group) {\n var _a, _b;\n const panelId = panelData.id;\n const params = panelData.params;\n const title = panelData.title;\n const viewData = panelData.view;\n const contentComponent = viewData\n ? viewData.content.id\n : (_a = panelData.contentComponent) !== null && _a !== void 0 ? _a : 'unknown';\n const tabComponent = viewData\n ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id\n : panelData.tabComponent;\n const view = new DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent);\n const panel = new DockviewPanel(panelId, this.accessor, new DockviewApi(this.accessor), group, view, {\n renderer: panelData.renderer,\n });\n panel.init({\n title: title !== null && title !== void 0 ? title : panelId,\n params: params !== null && params !== void 0 ? params : {},\n });\n return panel;\n }\n}\n","import { addDisposableListener } from '../../../events';\nimport { toggleClass } from '../../../dom';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { createCloseButton } from '../../../svg';\nexport class Watermark extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._element = document.createElement('div');\n this._element.className = 'watermark';\n const title = document.createElement('div');\n title.className = 'watermark-title';\n const emptySpace = document.createElement('span');\n emptySpace.style.flexGrow = '1';\n const content = document.createElement('div');\n content.className = 'watermark-content';\n this._element.appendChild(title);\n this._element.appendChild(content);\n const actionsContainer = document.createElement('div');\n actionsContainer.className = 'actions-container';\n const closeAnchor = document.createElement('div');\n closeAnchor.className = 'close-action';\n closeAnchor.appendChild(createCloseButton());\n actionsContainer.appendChild(closeAnchor);\n title.appendChild(emptySpace);\n title.appendChild(actionsContainer);\n this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {\n var _a;\n ev.preventDefault();\n if (this._group) {\n (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);\n }\n }));\n }\n update(_event) {\n // noop\n }\n focus() {\n // noop\n }\n layout(_width, _height) {\n // noop\n }\n init(_params) {\n this._api = _params.containerApi;\n this.render();\n }\n updateParentGroup(group, _visible) {\n this._group = group;\n this.render();\n }\n dispose() {\n super.dispose();\n }\n render() {\n const isOneGroup = !!(this._api && this._api.size <= 1);\n toggleClass(this.element, 'has-actions', isOneGroup);\n }\n}\n","import { getElementsByTagName, quasiDefaultPrevented, toggleClass, } from '../dom';\nimport { Emitter, addDisposableListener, addDisposableWindowListener, } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { clamp } from '../math';\nconst bringElementToFront = (() => {\n let previous = null;\n function pushToTop(element) {\n if (previous !== element && previous !== null) {\n toggleClass(previous, 'dv-bring-to-front', false);\n }\n toggleClass(element, 'dv-bring-to-front', true);\n previous = element;\n }\n return pushToTop;\n})();\nexport class Overlay extends CompositeDisposable {\n set minimumInViewportWidth(value) {\n this.options.minimumInViewportWidth = value;\n }\n set minimumInViewportHeight(value) {\n this.options.minimumInViewportHeight = value;\n }\n constructor(options) {\n super();\n this.options = options;\n this._element = document.createElement('div');\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidChangeEnd = new Emitter();\n this.onDidChangeEnd = this._onDidChangeEnd.event;\n this.addDisposables(this._onDidChange, this._onDidChangeEnd);\n this._element.className = 'dv-resize-container';\n this.setupResize('top');\n this.setupResize('bottom');\n this.setupResize('left');\n this.setupResize('right');\n this.setupResize('topleft');\n this.setupResize('topright');\n this.setupResize('bottomleft');\n this.setupResize('bottomright');\n this._element.appendChild(this.options.content);\n this.options.container.appendChild(this._element);\n // if input bad resize within acceptable boundaries\n this.setBounds({\n height: this.options.height,\n width: this.options.width,\n top: this.options.top,\n left: this.options.left,\n });\n }\n setBounds(bounds = {}) {\n if (typeof bounds.height === 'number') {\n this._element.style.height = `${bounds.height}px`;\n }\n if (typeof bounds.width === 'number') {\n this._element.style.width = `${bounds.width}px`;\n }\n if (typeof bounds.top === 'number') {\n this._element.style.top = `${bounds.top}px`;\n }\n if (typeof bounds.left === 'number') {\n this._element.style.left = `${bounds.left}px`;\n }\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n // region: ensure bounds within allowable limits\n // a minimum width of minimumViewportWidth must be inside the viewport\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n // a minimum height of minimumViewportHeight must be inside the viewport\n const yOffset = typeof this.options.minimumInViewportHeight === 'number'\n ? Math.max(0, this.getMinimumHeight(overlayRect.height))\n : 0;\n const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this._element.style.left = `${left}px`;\n this._element.style.top = `${top}px`;\n this._onDidChange.fire();\n }\n toJSON() {\n const container = this.options.container.getBoundingClientRect();\n const element = this._element.getBoundingClientRect();\n return {\n top: element.top - container.top,\n left: element.left - container.left,\n width: element.width,\n height: element.height,\n };\n }\n setupDrag(dragTarget, options = { inDragMode: false }) {\n const move = new MutableDisposable();\n const track = () => {\n let offset = null;\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n move.value = new CompositeDisposable({\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n }, addDisposableWindowListener(window, 'mousemove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const x = e.clientX - containerRect.left;\n const y = e.clientY - containerRect.top;\n toggleClass(this._element, 'dv-resize-container-dragging', true);\n const overlayRect = this._element.getBoundingClientRect();\n if (offset === null) {\n offset = {\n x: e.clientX - overlayRect.left,\n y: e.clientY - overlayRect.top,\n };\n }\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n const yOffset = Math.max(0, this.options.minimumInViewportHeight\n ? this.getMinimumHeight(overlayRect.height)\n : 0);\n const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this.setBounds({ top, left });\n }), addDisposableWindowListener(window, 'mouseup', () => {\n toggleClass(this._element, 'dv-resize-container-dragging', false);\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n };\n this.addDisposables(move, addDisposableListener(dragTarget, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n event.preventDefault();\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n track();\n }), addDisposableListener(this.options.content, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n if (event.shiftKey) {\n track();\n }\n }), addDisposableListener(this.options.content, 'mousedown', () => {\n bringElementToFront(this._element);\n }, true));\n bringElementToFront(this._element);\n if (options.inDragMode) {\n track();\n }\n }\n setupResize(direction) {\n const resizeHandleElement = document.createElement('div');\n resizeHandleElement.className = `dv-resize-handle-${direction}`;\n this._element.appendChild(resizeHandleElement);\n const move = new MutableDisposable();\n this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {\n e.preventDefault();\n let startPosition = null;\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n const y = e.clientY - containerRect.top;\n const x = e.clientX - containerRect.left;\n if (startPosition === null) {\n // record the initial dimensions since as all subsequence moves are relative to this\n startPosition = {\n originalY: y,\n originalHeight: overlayRect.height,\n originalX: x,\n originalWidth: overlayRect.width,\n };\n }\n let top = undefined;\n let height = undefined;\n let left = undefined;\n let width = undefined;\n const moveTop = () => {\n top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +\n startPosition.originalHeight >\n containerRect.height\n ? this.getMinimumHeight(containerRect.height)\n : Math.max(0, startPosition.originalY +\n startPosition.originalHeight -\n Overlay.MINIMUM_HEIGHT));\n height =\n startPosition.originalY +\n startPosition.originalHeight -\n top;\n };\n const moveBottom = () => {\n top =\n startPosition.originalY -\n startPosition.originalHeight;\n height = clamp(y - top, top < 0 &&\n typeof this.options\n .minimumInViewportHeight === 'number'\n ? -top +\n this.options.minimumInViewportHeight\n : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);\n };\n const moveLeft = () => {\n left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +\n startPosition.originalWidth >\n containerRect.width\n ? this.getMinimumWidth(containerRect.width)\n : Math.max(0, startPosition.originalX +\n startPosition.originalWidth -\n Overlay.MINIMUM_WIDTH));\n width =\n startPosition.originalX +\n startPosition.originalWidth -\n left;\n };\n const moveRight = () => {\n left =\n startPosition.originalX -\n startPosition.originalWidth;\n width = clamp(x - left, left < 0 &&\n typeof this.options\n .minimumInViewportWidth === 'number'\n ? -left +\n this.options.minimumInViewportWidth\n : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);\n };\n switch (direction) {\n case 'top':\n moveTop();\n break;\n case 'bottom':\n moveBottom();\n break;\n case 'left':\n moveLeft();\n break;\n case 'right':\n moveRight();\n break;\n case 'topleft':\n moveTop();\n moveLeft();\n break;\n case 'topright':\n moveTop();\n moveRight();\n break;\n case 'bottomleft':\n moveBottom();\n moveLeft();\n break;\n case 'bottomright':\n moveBottom();\n moveRight();\n break;\n }\n this.setBounds({ height, width, top, left });\n }), {\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n }, addDisposableWindowListener(window, 'mouseup', () => {\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n }));\n }\n getMinimumWidth(width) {\n if (typeof this.options.minimumInViewportWidth === 'number') {\n return width - this.options.minimumInViewportWidth;\n }\n return 0;\n }\n getMinimumHeight(height) {\n if (typeof this.options.minimumInViewportHeight === 'number') {\n return height - this.options.minimumInViewportHeight;\n }\n return height;\n }\n dispose() {\n this._element.remove();\n super.dispose();\n }\n}\nOverlay.MINIMUM_HEIGHT = 20;\nOverlay.MINIMUM_WIDTH = 20;\n","import { CompositeDisposable } from '../lifecycle';\nexport class DockviewFloatingGroupPanel extends CompositeDisposable {\n constructor(group, overlay) {\n super();\n this.group = group;\n this.overlay = overlay;\n this.addDisposables(overlay);\n }\n position(bounds) {\n this.overlay.setBounds(bounds);\n }\n}\n","export const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;\nexport const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };\n","import { DragAndDropObserver } from './dnd/dnd';\nimport { getDomNodePagePosition, toggleClass } from './dom';\nimport { CompositeDisposable, Disposable } from './lifecycle';\nfunction createFocusableElement() {\n const element = document.createElement('div');\n element.tabIndex = -1;\n return element;\n}\nexport class OverlayRenderContainer extends CompositeDisposable {\n constructor(element) {\n super();\n this.element = element;\n this.map = {};\n this._disposed = false;\n this.addDisposables(Disposable.from(() => {\n for (const value of Object.values(this.map)) {\n value.disposable.dispose();\n value.destroy.dispose();\n }\n this._disposed = true;\n }));\n }\n detatch(panel) {\n if (this.map[panel.api.id]) {\n const { disposable, destroy } = this.map[panel.api.id];\n disposable.dispose();\n destroy.dispose();\n delete this.map[panel.api.id];\n return true;\n }\n return false;\n }\n attach(options) {\n const { panel, referenceContainer } = options;\n if (!this.map[panel.api.id]) {\n const element = createFocusableElement();\n element.className = 'dv-render-overlay';\n this.map[panel.api.id] = {\n panel,\n disposable: Disposable.NONE,\n destroy: Disposable.NONE,\n element,\n };\n }\n const focusContainer = this.map[panel.api.id].element;\n if (panel.view.content.element.parentElement !== focusContainer) {\n focusContainer.appendChild(panel.view.content.element);\n }\n if (focusContainer.parentElement !== this.element) {\n this.element.appendChild(focusContainer);\n }\n const resize = () => {\n // TODO propagate position to avoid getDomNodePagePosition calls, possible performance bottleneck?\n const box = getDomNodePagePosition(referenceContainer.element);\n const box2 = getDomNodePagePosition(this.element);\n focusContainer.style.left = `${box.left - box2.left}px`;\n focusContainer.style.top = `${box.top - box2.top}px`;\n focusContainer.style.width = `${box.width}px`;\n focusContainer.style.height = `${box.height}px`;\n toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');\n };\n const visibilityChanged = () => {\n if (panel.api.isVisible) {\n resize();\n }\n focusContainer.style.display = panel.api.isVisible ? '' : 'none';\n };\n const disposable = new CompositeDisposable(\n /**\n * since container is positioned absoutely we must explicitly forward\n * the dnd events for the expect behaviours to continue to occur in terms of dnd\n *\n * the dnd observer does not need to be conditional on whether the panel is visible since\n * non-visible panels are 'display: none' and in such case the dnd observer will not fire.\n */\n new DragAndDropObserver(focusContainer, {\n onDragEnd: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnd(e);\n },\n onDragEnter: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnter(e);\n },\n onDragLeave: (e) => {\n referenceContainer.dropTarget.dnd.onDragLeave(e);\n },\n onDrop: (e) => {\n referenceContainer.dropTarget.dnd.onDrop(e);\n },\n onDragOver: (e) => {\n referenceContainer.dropTarget.dnd.onDragOver(e);\n },\n }), panel.api.onDidVisibilityChange((event) => {\n /**\n * Control the visibility of the content, however even when not visible (display: none)\n * the content is still maintained within the DOM hence DOM specific attributes\n * such as scroll position are maintained when next made visible.\n */\n visibilityChanged();\n }), panel.api.onDidDimensionsChange(() => {\n if (!panel.api.isVisible) {\n return;\n }\n resize();\n }));\n this.map[panel.api.id].destroy = Disposable.from(() => {\n var _a;\n if (panel.view.content.element.parentElement === focusContainer) {\n focusContainer.removeChild(panel.view.content.element);\n }\n (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);\n });\n queueMicrotask(() => {\n if (this.isDisposed) {\n return;\n }\n /**\n * wait until everything has finished in the current stack-frame call before\n * calling the first resize as other size-altering events may still occur before\n * the end of the stack-frame.\n */\n visibilityChanged();\n });\n // dispose of logic asoccciated with previous reference-container\n this.map[panel.api.id].disposable.dispose();\n // and reset the disposable to the active reference-container\n this.map[panel.api.id].disposable = disposable;\n return focusContainer;\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { __awaiter } from \"tslib\";\nimport { addStyles } from './dom';\nimport { Emitter, addDisposableWindowListener } from './events';\nimport { CompositeDisposable } from './lifecycle';\nexport class PopoutWindow extends CompositeDisposable {\n get window() {\n var _a, _b;\n return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;\n }\n constructor(target, className, options) {\n super();\n this.target = target;\n this.className = className;\n this.options = options;\n this._onWillClose = new Emitter();\n this.onWillClose = this._onWillClose.event;\n this._onDidClose = new Emitter();\n this.onDidClose = this._onDidClose.event;\n this._window = null;\n this.addDisposables(this._onWillClose, this._onDidClose, {\n dispose: () => {\n this.close();\n },\n });\n }\n dimensions() {\n if (!this._window) {\n return null;\n }\n const left = this._window.value.screenX;\n const top = this._window.value.screenY;\n const width = this._window.value.innerWidth;\n const height = this._window.value.innerHeight;\n return { top, left, width, height };\n }\n close() {\n var _a, _b;\n if (this._window) {\n this._onWillClose.fire();\n (_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: this._window.value,\n });\n this._window.disposable.dispose();\n this._window.value.close();\n this._window = null;\n this._onDidClose.fire();\n }\n }\n open() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this._window) {\n throw new Error('instance of popout window is already open');\n }\n const url = `${this.options.url}`;\n const features = Object.entries({\n top: this.options.top,\n left: this.options.left,\n width: this.options.width,\n height: this.options.height,\n })\n .map(([key, value]) => `${key}=${value}`)\n .join(',');\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open\n */\n const externalWindow = window.open(url, this.target, features);\n if (!externalWindow) {\n /**\n * Popup blocked\n */\n return null;\n }\n const disposable = new CompositeDisposable();\n this._window = { value: externalWindow, disposable };\n disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {\n /**\n * before the main window closes we should close this popup too\n * to be good citizens\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n }));\n const container = this.createPopoutWindowContainer();\n if (this.className) {\n container.classList.add(this.className);\n }\n (_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: externalWindow,\n });\n return new Promise((resolve) => {\n externalWindow.addEventListener('unload', (e) => {\n // if page fails to load before unloading\n // this.close();\n });\n externalWindow.addEventListener('load', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event\n */\n const externalDocument = externalWindow.document;\n externalDocument.title = document.title;\n externalDocument.body.appendChild(container);\n addStyles(externalDocument, window.document.styleSheets);\n /**\n * beforeunload must be registered after load for reasons I could not determine\n * otherwise the beforeunload event will not fire when the window is closed\n */\n addDisposableWindowListener(externalWindow, 'beforeunload', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n });\n resolve(container);\n });\n });\n });\n }\n createPopoutWindowContainer() {\n const el = document.createElement('div');\n el.classList.add('dv-popout-window');\n el.id = 'dv-popout-window';\n el.style.position = 'absolute';\n el.style.width = '100%';\n el.style.height = '100%';\n el.style.top = '0px';\n el.style.left = '0px';\n return el;\n }\n}\n","import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';\nimport { directionToPosition, Droptarget, } from '../dnd/droptarget';\nimport { tail, sequenceEquals, remove } from '../array';\nimport { DockviewPanel } from './dockviewPanel';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nimport { Event, Emitter, addDisposableWindowListener } from '../events';\nimport { Watermark } from './components/watermark/watermark';\nimport { sequentialNumberGenerator } from '../math';\nimport { DefaultDockviewDeserialzier } from './deserializer';\nimport { createComponent } from '../panel/componentFactory';\nimport { isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, } from './options';\nimport { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';\nimport { DockviewApi } from '../api/component.api';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { DockviewDidDropEvent, DockviewWillDropEvent, } from './dockviewGroupPanelModel';\nimport { DockviewGroupPanel } from './dockviewGroupPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { Overlay } from '../dnd/overlay';\nimport { toggleClass, watchElementResize } from '../dom';\nimport { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';\nimport { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, } from '../constants';\nimport { OverlayRenderContainer, } from '../overlayRenderContainer';\nimport { PopoutWindow } from '../popoutWindow';\nconst DEFAULT_ROOT_OVERLAY_MODEL = {\n activationSize: { type: 'pixels', value: 10 },\n size: { type: 'pixels', value: 20 },\n};\nfunction moveGroupWithoutDestroying(options) {\n const activePanel = options.from.activePanel;\n const panels = [...options.from.panels].map((panel) => {\n const removedPanel = options.from.model.removePanel(panel);\n options.from.model.renderContainer.detatch(panel);\n return removedPanel;\n });\n panels.forEach((panel) => {\n options.to.model.openPanel(panel, {\n skipSetActive: activePanel !== panel,\n skipSetGroupActive: true,\n });\n });\n}\nfunction getDockviewTheme(element) {\n function toClassList(element) {\n const list = [];\n for (let i = 0; i < element.classList.length; i++) {\n list.push(element.classList.item(i));\n }\n return list;\n }\n let theme = undefined;\n let parent = element;\n while (parent !== null) {\n theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));\n if (typeof theme === 'string') {\n break;\n }\n parent = parent.parentElement;\n }\n return theme;\n}\nfunction typeValidate3(data, path) {\n if (typeof data.id !== 'string') {\n throw new Error(`${path}.id must be a string`);\n }\n if (typeof data.activeView !== 'string' ||\n typeof data.activeView !== 'undefined') {\n throw new Error(`${path}.activeView must be a string of undefined`);\n }\n}\nfunction typeValidate2(data, path) {\n if (typeof data.size !== 'number' && typeof data.size !== 'undefined') {\n throw new Error(`${path}.size must be a number or undefined`);\n }\n if (typeof data.visible !== 'boolean' &&\n typeof data.visible !== 'undefined') {\n throw new Error(`${path}.visible must be a boolean or undefined`);\n }\n if (data.type === 'leaf') {\n if (typeof data.data !== 'object' ||\n data.data === null ||\n Array.isArray(data.data)) {\n throw new Error('object must be a non-null object');\n }\n typeValidate3(data.data, `${path}.data`);\n }\n else if (data.type === 'branch') {\n if (!Array.isArray(data.data)) {\n throw new Error(`${path}.data must be an array`);\n }\n }\n else {\n throw new Error(`${path}.type must be onew of {'branch', 'leaf'}`);\n }\n}\nfunction typeValidate(data) {\n if (typeof data !== 'object' || data === null) {\n throw new Error('object must be a non-null object');\n }\n const { grid, panels, activeGroup, floatingGroups } = data;\n if (typeof grid !== 'object' || grid === null) {\n throw new Error(\"'.grid' must be a non-null object\");\n }\n if (typeof grid.height !== 'number') {\n throw new Error(\"'.grid.height' must be a number\");\n }\n if (typeof grid.width !== 'number') {\n throw new Error(\"'.grid.width' must be a number\");\n }\n if (typeof grid.root !== 'object' || grid.root === null) {\n throw new Error(\"'.grid.root' must be a non-null object\");\n }\n if (grid.root.type !== 'branch') {\n throw new Error(\".grid.root.type must be of type 'branch'\");\n }\n if (grid.orientation !== Orientation.HORIZONTAL &&\n grid.orientation !== Orientation.VERTICAL) {\n throw new Error(`'.grid.width' must be one of {${Orientation.HORIZONTAL}, ${Orientation.VERTICAL}}`);\n }\n typeValidate2(grid.root, '.grid.root');\n}\nexport class DockviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n get totalPanels() {\n return this.panels.length;\n }\n get panels() {\n return this.groups.flatMap((group) => group.panels);\n }\n get options() {\n return this._options;\n }\n get activePanel() {\n const activeGroup = this.activeGroup;\n if (!activeGroup) {\n return undefined;\n }\n return activeGroup.activePanel;\n }\n get renderer() {\n var _a;\n return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';\n }\n constructor(options) {\n var _a, _b;\n super({\n proportionalLayout: true,\n orientation: (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.HORIZONTAL,\n styles: options.styles,\n parentElement: options.parentElement,\n disableAutoResizing: options.disableAutoResizing,\n locked: options.locked,\n });\n this.nextGroupId = sequentialNumberGenerator();\n this._deserializer = new DefaultDockviewDeserialzier(this);\n this.watermark = null;\n this._onWillDragPanel = new Emitter();\n this.onWillDragPanel = this._onWillDragPanel.event;\n this._onWillDragGroup = new Emitter();\n this.onWillDragGroup = this._onWillDragGroup.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidLayoutFromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._onDidMovePanel = new Emitter();\n this._floatingGroups = [];\n this._popoutGroups = [];\n this._ignoreEvents = 0;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._moving = false;\n const gready = document.createElement('div');\n gready.className = 'dv-overlay-render-container';\n this.gridview.element.appendChild(gready);\n this.overlayRenderContainer = new OverlayRenderContainer(gready);\n toggleClass(this.gridview.element, 'dv-dockview', true);\n toggleClass(this.element, 'dv-debug', !!options.debug);\n 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) => {\n if (!this._moving) {\n this._onDidAddGroup.fire(event);\n }\n }), this.onDidRemove((event) => {\n if (!this._moving) {\n this._onDidRemoveGroup.fire(event);\n }\n }), this.onDidActiveChange((event) => {\n if (!this._moving) {\n this._onDidActiveGroupChange.fire(event);\n }\n }), Event.any(this.onDidAdd, this.onDidRemove)(() => {\n this.updateWatermark();\n }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Disposable.from(() => {\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._floatingGroups]) {\n group.dispose();\n }\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._popoutGroups]) {\n group.disposable.dispose();\n }\n }));\n this._options = options;\n if (!this.options.components) {\n this.options.components = {};\n }\n if (!this.options.frameworkComponents) {\n this.options.frameworkComponents = {};\n }\n if (!this.options.frameworkTabComponents) {\n this.options.frameworkTabComponents = {};\n }\n if (!this.options.tabComponents) {\n this.options.tabComponents = {};\n }\n if (!this.options.watermarkComponent &&\n !this.options.watermarkFrameworkComponent) {\n this.options.watermarkComponent = Watermark;\n }\n this._rootDropTarget = new Droptarget(this.element, {\n canDisplayOverlay: (event, position) => {\n const data = getPanelData();\n if (data) {\n if (data.viewId !== this.id) {\n return false;\n }\n if (position === 'center') {\n // center drop target is only allowed if there are no panels in the grid\n // floating panels are allowed\n return this.gridview.length === 0;\n }\n return true;\n }\n if (this.options.showDndOverlay) {\n if (position === 'center' && this.gridview.length !== 0) {\n /**\n * for external events only show the four-corner drag overlays, disable\n * the center position so that external drag events can fall through to the group\n * and panel drop target handlers\n */\n return false;\n }\n return this.options.showDndOverlay({\n nativeEvent: event,\n position: position,\n target: 'edge',\n getData: getPanelData,\n });\n }\n return false;\n },\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n overlayModel: (_b = this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,\n });\n this.addDisposables(this._rootDropTarget.onDrop((event) => {\n var _a;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n kind: 'content',\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data) {\n this.moveGroupOrPanel({\n from: {\n groupId: data.groupId,\n panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,\n },\n to: {\n group: this.orthogonalize(event.position),\n position: 'center',\n },\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n }));\n }\n }), this._rootDropTarget);\n this._api = new DockviewApi(this);\n this.updateWatermark();\n }\n addPopoutGroup(itemToPopout, options) {\n var _a, _b, _c;\n if (itemToPopout instanceof DockviewPanel &&\n itemToPopout.group.size === 1) {\n return this.addPopoutGroup(itemToPopout.group);\n }\n const theme = getDockviewTheme(this.gridview.element);\n const element = this.element;\n function getBox() {\n if (options === null || options === void 0 ? void 0 : options.position) {\n return options.position;\n }\n if (itemToPopout instanceof DockviewGroupPanel) {\n return itemToPopout.element.getBoundingClientRect();\n }\n if (itemToPopout.group) {\n return itemToPopout.group.element.getBoundingClientRect();\n }\n return element.getBoundingClientRect();\n }\n const box = getBox();\n 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;\n if (itemToPopout.api.location.type === 'grid') {\n itemToPopout.api.setHidden(true);\n }\n const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id\n theme !== null && theme !== void 0 ? theme : '', {\n url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',\n left: window.screenX + box.left,\n top: window.screenY + box.top,\n width: box.width,\n height: box.height,\n onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,\n onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,\n });\n const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {\n popoutWindowDisposable.dispose();\n }));\n return _window\n .open()\n .then((popoutContainer) => {\n var _a;\n if (_window.isDisposed) {\n return;\n }\n if (popoutContainer === null) {\n popoutWindowDisposable.dispose();\n return;\n }\n const gready = document.createElement('div');\n gready.className = 'dv-overlay-render-container';\n const overlayRenderContainer = new OverlayRenderContainer(gready);\n const referenceGroup = itemToPopout instanceof DockviewPanel\n ? itemToPopout.group\n : itemToPopout;\n const referenceLocation = itemToPopout.api.location.type;\n const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });\n group.model.renderContainer = overlayRenderContainer;\n if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {\n this._onDidAddGroup.fire(group);\n }\n if (itemToPopout instanceof DockviewPanel) {\n this.movingLock(() => {\n const panel = referenceGroup.model.removePanel(itemToPopout);\n group.model.openPanel(panel);\n });\n }\n else {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: referenceGroup,\n to: group,\n }));\n switch (referenceLocation) {\n case 'grid':\n referenceGroup.api.setHidden(true);\n break;\n case 'floating':\n case 'popout':\n this.removeGroup(referenceGroup);\n break;\n }\n }\n popoutContainer.classList.add('dv-dockview');\n popoutContainer.style.overflow = 'hidden';\n popoutContainer.appendChild(gready);\n popoutContainer.appendChild(group.element);\n group.model.location = {\n type: 'popout',\n getWindow: () => _window.window,\n };\n this.doSetGroupAndPanelActive(group);\n popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {\n var _a;\n if (event.isActive) {\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }), group.api.onWillFocus(() => {\n var _a;\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }));\n let returnedGroup;\n const value = {\n window: _window,\n popoutGroup: group,\n referenceGroup: this.getPanel(referenceGroup.id)\n ? referenceGroup.id\n : undefined,\n disposable: {\n dispose: () => {\n popoutWindowDisposable.dispose();\n return returnedGroup;\n },\n },\n };\n popoutWindowDisposable.addDisposables(\n /**\n * ResizeObserver seems slow here, I do not know why but we don't need it\n * since we can reply on the window resize event as we will occupy the full\n * window dimensions\n */\n addDisposableWindowListener(_window.window, 'resize', () => {\n group.layout(window.innerWidth, window.innerHeight);\n }), overlayRenderContainer, Disposable.from(() => {\n if (this.getPanel(referenceGroup.id)) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: group,\n to: referenceGroup,\n }));\n if (referenceGroup.api.isHidden) {\n referenceGroup.api.setHidden(false);\n }\n if (this.getPanel(group.id)) {\n this.doRemoveGroup(group, {\n skipPopoutAssociated: true,\n });\n }\n }\n else {\n if (this.getPanel(group.id)) {\n const removedGroup = this.doRemoveGroup(group, {\n skipDispose: true,\n skipActive: true,\n });\n removedGroup.model.renderContainer =\n this.overlayRenderContainer;\n removedGroup.model.location = { type: 'grid' };\n returnedGroup = removedGroup;\n }\n }\n }));\n this._popoutGroups.push(value);\n this.updateWatermark();\n })\n .catch((err) => {\n console.error(err);\n });\n }\n addFloatingGroup(item, coord, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n let group;\n if (item instanceof DockviewPanel) {\n group = this.createGroup();\n this._onDidAddGroup.fire(group);\n this.movingLock(() => this.removePanel(item, {\n removeEmptyGroup: true,\n skipDispose: true,\n skipSetActiveGroup: true,\n }));\n group.model.openPanel(item, { skipSetGroupActive: true });\n }\n else {\n group = item;\n const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;\n const popoutReferenceGroup = popoutReferenceGroupId\n ? this.getPanel(popoutReferenceGroupId)\n : undefined;\n const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&\n options.skipRemoveGroup;\n if (!skip) {\n if (popoutReferenceGroup) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: item,\n to: popoutReferenceGroup,\n }));\n this.doRemoveGroup(item, {\n skipPopoutReturn: true,\n skipPopoutAssociated: true,\n });\n this.doRemoveGroup(popoutReferenceGroup, {\n skipDispose: true,\n });\n group = popoutReferenceGroup;\n }\n else {\n this.doRemoveGroup(item, {\n skipDispose: true,\n skipPopoutReturn: true,\n skipPopoutAssociated: !!popoutReferenceGroup,\n });\n }\n }\n }\n group.model.location = { type: 'floating' };\n const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'\n ? Math.max(coord.x, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.left;\n const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number'\n ? Math.max(coord.y, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.top;\n const overlay = new Overlay({\n container: this.gridview.element,\n content: group.element,\n height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,\n width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,\n left: overlayLeft,\n top: overlayTop,\n minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\n minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\n });\n const el = group.element.querySelector('.void-container');\n if (!el) {\n throw new Error('failed to find drag handle');\n }\n overlay.setupDrag(el, {\n inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'\n ? options.inDragMode\n : false,\n });\n const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);\n const disposable = watchElementResize(group.element, (entry) => {\n const { width, height } = entry.contentRect;\n group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel\n });\n floatingGroupPanel.addDisposables(overlay.onDidChange(() => {\n // this is either a resize or a move\n // to inform the panels .layout(...) the group with it's current size\n // don't care about resize since the above watcher handles that\n group.layout(group.height, group.width);\n }), overlay.onDidChangeEnd(() => {\n this._bufferOnDidLayoutChange.fire();\n }), group.onDidChange((event) => {\n overlay.setBounds({\n height: event === null || event === void 0 ? void 0 : event.height,\n width: event === null || event === void 0 ? void 0 : event.width,\n });\n }), {\n dispose: () => {\n disposable.dispose();\n group.model.location = { type: 'grid' };\n remove(this._floatingGroups, floatingGroupPanel);\n this.updateWatermark();\n },\n });\n this._floatingGroups.push(floatingGroupPanel);\n if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {\n this.doSetGroupAndPanelActive(group);\n }\n this.updateWatermark();\n }\n orthogonalize(position) {\n switch (position) {\n case 'top':\n case 'bottom':\n if (this.gridview.orientation === Orientation.HORIZONTAL) {\n // we need to add to a vertical splitview but the current root is a horizontal splitview.\n // insert a vertical splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n case 'left':\n case 'right':\n if (this.gridview.orientation === Orientation.VERTICAL) {\n // we need to add to a horizontal splitview but the current root is a vertical splitview.\n // insert a horiziontal splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n default:\n break;\n }\n switch (position) {\n case 'top':\n case 'left':\n case 'center':\n return this.createGroupAtLocation([0]); // insert into first position\n case 'bottom':\n case 'right':\n return this.createGroupAtLocation([this.gridview.length]); // insert into last position\n default:\n throw new Error(`unsupported position ${position}`);\n }\n }\n updateOptions(options) {\n var _a, _b;\n const changed_orientation = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n const changed_floatingGroupBounds = options.floatingGroupBounds !== undefined &&\n options.floatingGroupBounds !== this.options.floatingGroupBounds;\n const changed_rootOverlayOptions = options.rootOverlayModel !== undefined &&\n options.rootOverlayModel !== this.options.rootOverlayModel;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (changed_orientation) {\n this.gridview.orientation = options.orientation;\n }\n if (changed_floatingGroupBounds) {\n for (const group of this._floatingGroups) {\n switch (this.options.floatingGroupBounds) {\n case 'boundedWithinViewport':\n group.overlay.minimumInViewportHeight = undefined;\n group.overlay.minimumInViewportWidth = undefined;\n break;\n case undefined:\n group.overlay.minimumInViewportHeight =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n group.overlay.minimumInViewportWidth =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n break;\n default:\n group.overlay.minimumInViewportHeight =\n (_a = this.options.floatingGroupBounds) === null || _a === void 0 ? void 0 : _a.minimumHeightWithinViewport;\n group.overlay.minimumInViewportWidth =\n (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;\n }\n group.overlay.setBounds({});\n }\n }\n if (changed_rootOverlayOptions) {\n this._rootDropTarget.setOverlayModel(options.rootOverlayModel);\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n layout(width, height, forceResize) {\n super.layout(width, height, forceResize);\n if (this._floatingGroups) {\n for (const floating of this._floatingGroups) {\n // ensure floting groups stay within visible boundaries\n floating.overlay.setBounds();\n }\n }\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n getGroupPanel(id) {\n return this.panels.find((panel) => panel.id === id);\n }\n setActivePanel(panel) {\n panel.group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(panel.group);\n }\n moveToNext(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !==\n options.group.panels[options.group.panels.length - 1]) {\n options.group.model.moveToNext({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupAndPanelActive(next);\n }\n moveToPrevious(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !== options.group.panels[0]) {\n options.group.model.moveToPrevious({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n if (next) {\n this.doSetGroupAndPanelActive(next);\n }\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n const panels = this.panels.reduce((collection, panel) => {\n collection[panel.id] = panel.toJSON();\n return collection;\n }, {});\n const floats = this._floatingGroups.map((group) => {\n return {\n data: group.group.toJSON(),\n position: group.overlay.toJSON(),\n };\n });\n const popoutGroups = this._popoutGroups.map((group) => {\n return {\n data: group.popoutGroup.toJSON(),\n gridReferenceGroup: group.referenceGroup,\n position: group.window.dimensions(),\n };\n });\n const result = {\n grid: data,\n panels,\n activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n if (floats.length > 0) {\n result.floatingGroups = floats;\n }\n if (popoutGroups.length > 0) {\n result.popoutGroups = popoutGroups;\n }\n return result;\n }\n fromJSON(data) {\n var _a, _b, _c;\n this.clear();\n if (typeof data !== 'object' || data === null) {\n throw new Error('serialized layout must be a non-null object');\n }\n const { grid, panels, activeGroup } = data;\n if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {\n throw new Error('root must be of type branch');\n }\n try {\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n const createGroupFromSerializedState = (data) => {\n const { id, locked, hideHeader, views, activeView } = data;\n if (typeof id !== 'string') {\n throw new Error('group id must be of type string');\n }\n const group = this.createGroup({\n id,\n locked: !!locked,\n hideHeader: !!hideHeader,\n });\n const createdPanels = [];\n for (const child of views) {\n /**\n * Run the deserializer step seperately since this may fail to due corrupted external state.\n * In running this section first we avoid firing lots of 'add' events in the event of a failure\n * due to a corruption of input data.\n */\n const panel = this._deserializer.fromJSON(panels[child], group);\n createdPanels.push(panel);\n }\n this._onDidAddGroup.fire(group);\n for (let i = 0; i < views.length; i++) {\n const panel = createdPanels[i];\n const isActive = typeof activeView === 'string' &&\n activeView === panel.id;\n group.model.openPanel(panel, {\n skipSetActive: !isActive,\n skipSetGroupActive: true,\n });\n }\n if (!group.activePanel && group.panels.length > 0) {\n group.model.openPanel(group.panels[group.panels.length - 1], {\n skipSetGroupActive: true,\n });\n }\n return group;\n };\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n return createGroupFromSerializedState(node.data);\n },\n });\n this.layout(width, height, true);\n const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];\n for (const serializedFloatingGroup of serializedFloatingGroups) {\n const { data, position } = serializedFloatingGroup;\n const group = createGroupFromSerializedState(data);\n this.addFloatingGroup(group, {\n x: position.left,\n y: position.top,\n height: position.height,\n width: position.width,\n }, { skipRemoveGroup: true, inDragMode: false });\n }\n const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];\n for (const serializedPopoutGroup of serializedPopoutGroups) {\n const { data, position, gridReferenceGroup } = serializedPopoutGroup;\n const group = createGroupFromSerializedState(data);\n this.addPopoutGroup((_c = (gridReferenceGroup\n ? this.getPanel(gridReferenceGroup)\n : undefined)) !== null && _c !== void 0 ? _c : group, {\n skipRemoveGroup: true,\n position: position !== null && position !== void 0 ? position : undefined,\n overridePopoutGroup: gridReferenceGroup\n ? group\n : undefined,\n });\n }\n for (const floatingGroup of this._floatingGroups) {\n floatingGroup.overlay.setBounds();\n }\n if (typeof activeGroup === 'string') {\n const panel = this.getPanel(activeGroup);\n if (panel) {\n this.doSetGroupAndPanelActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * Takes all the successfully created groups and remove all of their panels.\n */\n for (const group of this.groups) {\n for (const panel of group.panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: false,\n });\n }\n }\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // iterate over a reassigned array since original array will be modified\n for (const floatingGroup of [...this._floatingGroups]) {\n floatingGroup.dispose();\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this.updateWatermark();\n this._onDidLayoutFromJSON.fire();\n }\n clear() {\n const groups = Array.from(this._groups.values()).map((_) => _.value);\n const hasActiveGroup = !!this.activeGroup;\n const hasActivePanel = !!this.activePanel;\n for (const group of groups) {\n // remove the group will automatically remove the panels\n this.removeGroup(group, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupAndPanelActive(undefined);\n }\n this.gridview.clear();\n }\n closeAllGroups() {\n for (const entry of this._groups.entries()) {\n const [_, group] = entry;\n group.value.model.closeAllPanels();\n }\n }\n addPanel(options) {\n var _a, _b;\n if (this.panels.find((_) => _.id === options.id)) {\n throw new Error(`panel with id ${options.id} already exists`);\n }\n let referenceGroup;\n if (options.position && options.floating) {\n throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');\n }\n if (options.position) {\n if (isPanelOptionsWithPanel(options.position)) {\n const referencePanel = typeof options.position.referencePanel === 'string'\n ? this.getGroupPanel(options.position.referencePanel)\n : options.position.referencePanel;\n if (!referencePanel) {\n throw new Error(`referencePanel ${options.position.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n }\n else if (isPanelOptionsWithGroup(options.position)) {\n referenceGroup =\n typeof options.position.referenceGroup === 'string'\n ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.position.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`referencePanel ${options.position.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.position.direction));\n const panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n return panel;\n }\n }\n else {\n referenceGroup = this.activeGroup;\n }\n let panel;\n if (referenceGroup) {\n const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');\n if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const o = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, o, {\n inDragMode: false,\n skipRemoveGroup: true,\n skipActiveGroup: true,\n });\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n }\n else if (referenceGroup.api.location.type === 'floating' ||\n target === 'center') {\n panel = this.createPanel(options, referenceGroup);\n referenceGroup.model.openPanel(panel);\n this.doSetGroupAndPanelActive(referenceGroup);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n const group = this.createGroupAtLocation(relativeLocation);\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n }\n }\n else if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const o = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, o, {\n inDragMode: false,\n skipRemoveGroup: true,\n skipActiveGroup: true,\n });\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n }\n else {\n const group = this.createGroupAtLocation();\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n }\n return panel;\n }\n removePanel(panel, options = {\n removeEmptyGroup: true,\n skipDispose: false,\n }) {\n const group = panel.group;\n if (!group) {\n throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);\n }\n group.model.removePanel(panel, {\n skipSetActiveGroup: options.skipSetActiveGroup,\n });\n if (!options.skipDispose) {\n panel.group.model.renderContainer.detatch(panel);\n panel.dispose();\n }\n if (group.size === 0 && options.removeEmptyGroup) {\n this.removeGroup(group, { skipActive: options.skipSetActiveGroup });\n }\n }\n createWatermarkComponent() {\n var _a;\n return createComponent('watermark-id', 'watermark-name', this.options.watermarkComponent\n ? { 'watermark-name': this.options.watermarkComponent }\n : {}, this.options.watermarkFrameworkComponent\n ? { 'watermark-name': this.options.watermarkFrameworkComponent }\n : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);\n }\n updateWatermark() {\n var _a, _b;\n if (this.groups.filter((x) => x.api.location.type === 'grid' && !x.api.isHidden).length === 0) {\n if (!this.watermark) {\n this.watermark = this.createWatermarkComponent();\n this.watermark.init({\n containerApi: new DockviewApi(this),\n });\n const watermarkContainer = document.createElement('div');\n watermarkContainer.className = 'dv-watermark-container';\n watermarkContainer.appendChild(this.watermark.element);\n this.gridview.element.appendChild(watermarkContainer);\n }\n }\n else if (this.watermark) {\n this.watermark.element.parentElement.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = null;\n }\n }\n addGroup(options) {\n var _a;\n const group = this.createGroup(options);\n if (options) {\n let referenceGroup;\n if (isGroupOptionsWithPanel(options)) {\n const referencePanel = typeof options.referencePanel === 'string'\n ? this.panels.find((panel) => panel.id === options.referencePanel)\n : options.referencePanel;\n if (!referencePanel) {\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n if (!referenceGroup) {\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\n }\n }\n else if (isGroupOptionsWithGroup(options)) {\n referenceGroup =\n typeof options.referenceGroup === 'string'\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.direction));\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n const target = toTarget(options.direction || 'within');\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n this.doAddGroup(group, relativeLocation);\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n else {\n this.doAddGroup(group);\n this.doSetGroupAndPanelActive(group);\n return group;\n }\n }\n removeGroup(group, options) {\n this.doRemoveGroup(group, options);\n }\n doRemoveGroup(group, options) {\n var _a;\n const panels = [...group.panels]; // reassign since group panels will mutate\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n for (const panel of panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\n });\n }\n }\n const activePanel = this.activePanel;\n if (group.api.location.type === 'floating') {\n const floatingGroup = this._floatingGroups.find((_) => _.group === group);\n if (floatingGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n floatingGroup.group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n remove(this._floatingGroups, floatingGroup);\n floatingGroup.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return floatingGroup.group;\n }\n throw new Error('failed to find floating group');\n }\n if (group.api.location.type === 'popout') {\n const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);\n if (selectedGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {\n const refGroup = selectedGroup.referenceGroup\n ? this.getPanel(selectedGroup.referenceGroup)\n : undefined;\n if (refGroup) {\n this.removeGroup(refGroup);\n }\n }\n selectedGroup.popoutGroup.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n const removedGroup = selectedGroup.disposable.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {\n this.doAddGroup(removedGroup, [0]);\n this.doSetGroupAndPanelActive(removedGroup);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n this.updateWatermark();\n return selectedGroup.popoutGroup;\n }\n throw new Error('failed to find popout group');\n }\n const re = super.doRemoveGroup(group, options);\n if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {\n if (this.activePanel !== activePanel) {\n this._onDidActivePanelChange.fire(this.activePanel);\n }\n }\n return re;\n }\n movingLock(func) {\n const isMoving = this._moving;\n try {\n this._moving = true;\n return func();\n }\n finally {\n this._moving = isMoving;\n }\n }\n moveGroupOrPanel(options) {\n var _a;\n const destinationGroup = options.to.group;\n const sourceGroupId = options.from.groupId;\n const sourceItemId = options.from.panelId;\n const destinationTarget = options.to.position;\n const destinationIndex = options.to.index;\n const sourceGroup = sourceGroupId\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\n : undefined;\n if (!sourceGroup) {\n throw new Error(`Failed to find group id ${sourceGroupId}`);\n }\n if (sourceItemId === undefined) {\n /**\n * Moving an entire group into another group\n */\n this.moveGroup({\n from: { group: sourceGroup },\n to: {\n group: destinationGroup,\n position: destinationTarget,\n },\n });\n return;\n }\n if (!destinationTarget || destinationTarget === 'center') {\n /**\n * Dropping a panel within another group\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n if (sourceGroup.model.size === 0) {\n // remove the group and do not set a new group as active\n this.doRemoveGroup(sourceGroup, { skipActive: true });\n }\n this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {\n index: destinationIndex,\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(destinationGroup);\n this._onDidMovePanel.fire({\n panel: removedPanel,\n });\n }\n else {\n /**\n * Dropping a panel to the extremities of a group which will place that panel\n * into an adjacent group\n */\n const referenceLocation = getGridLocation(destinationGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n if (sourceGroup.size < 2) {\n /**\n * If we are moving from a group which only has one panel left we will consider\n * moving the group itself rather than moving the panel into a newly created group\n */\n const [targetParentLocation, to] = tail(targetLocation);\n if (sourceGroup.api.location.type === 'grid') {\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n }\n // source group will become empty so delete the group\n const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n }));\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\n this.movingLock(() => this.doAddGroup(targetGroup, location));\n this.doSetGroupAndPanelActive(targetGroup);\n }\n else {\n /**\n * The group we are removing from has many panels, we need to remove the panels we are moving,\n * create a new group, add the panels to that new group and add the new group in an appropiate position\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n const group = this.createGroupAtLocation(dropLocation);\n this.movingLock(() => group.model.openPanel(removedPanel, {\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(group);\n }\n }\n }\n moveGroup(options) {\n const from = options.from.group;\n const to = options.to.group;\n const target = options.to.position;\n if (target === 'center') {\n const activePanel = from.activePanel;\n const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {\n skipSetActive: true,\n })));\n if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {\n this.doRemoveGroup(from, { skipActive: true });\n }\n this.movingLock(() => {\n for (const panel of panels) {\n to.model.openPanel(panel, {\n skipSetActive: panel !== activePanel,\n skipSetGroupActive: true,\n });\n }\n });\n this.doSetGroupAndPanelActive(to);\n panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n else {\n switch (from.api.location.type) {\n case 'grid':\n this.gridview.removeView(getGridLocation(from.element));\n break;\n case 'floating': {\n const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);\n if (!selectedFloatingGroup) {\n throw new Error('failed to find floating group');\n }\n selectedFloatingGroup.dispose();\n break;\n }\n case 'popout': {\n const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);\n if (!selectedPopoutGroup) {\n throw new Error('failed to find popout group');\n }\n selectedPopoutGroup.disposable.dispose();\n }\n }\n const referenceLocation = getGridLocation(to.element);\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n this.gridview.addView(from, Sizing.Distribute, dropLocation);\n from.panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n }\n doSetGroupActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n doSetGroupAndPanelActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (group &&\n this.hasMaximizedGroup() &&\n !this.isMaximizedGroup(group)) {\n this.exitMaximizedGroup();\n }\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n getNextGroupId() {\n let id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n return id;\n }\n createGroup(options) {\n if (!options) {\n options = {};\n }\n let id = options === null || options === void 0 ? void 0 : options.id;\n if (id && this._groups.has(options.id)) {\n console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\n id = undefined;\n }\n if (!id) {\n id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n }\n const view = new DockviewGroupPanel(this, id, options);\n view.init({ params: {}, accessor: this });\n if (!this._groups.has(view.id)) {\n const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {\n this._onWillDragPanel.fire(event);\n }), view.model.onGroupDragStart((event) => {\n this._onWillDragGroup.fire(event);\n }), view.model.onMove((event) => {\n const { groupId, itemId, target, index } = event;\n this.moveGroupOrPanel({\n from: { groupId: groupId, panelId: itemId },\n to: {\n group: view,\n position: target,\n index,\n },\n });\n }), view.model.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n }), view.model.onWillDrop((event) => {\n this._onWillDrop.fire(event);\n }), view.model.onWillShowOverlay((event) => {\n if (this.options.disableDnd) {\n event.preventDefault();\n return;\n }\n this._onWillShowOverlay.fire(event);\n }), view.model.onDidAddPanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidAddPanel.fire(event.panel);\n }), view.model.onDidRemovePanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidRemovePanel.fire(event.panel);\n }), view.model.onDidActivePanelChange((event) => {\n if (this._moving) {\n return;\n }\n if (event.panel !== this.activePanel) {\n return;\n }\n if (this._onDidActivePanelChange.value !== event.panel) {\n this._onDidActivePanelChange.fire(event.panel);\n }\n }));\n this._groups.set(view.id, { value: view, disposable });\n }\n // TODO: must be called after the above listeners have been setup, not an ideal pattern\n view.initialize();\n return view;\n }\n createPanel(options, group) {\n var _a, _b, _c;\n const contentComponent = options.component;\n const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\n const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });\n panel.init({\n title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,\n params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},\n });\n return panel;\n }\n createGroupAtLocation(location = [0]) {\n const group = this.createGroup();\n this.doAddGroup(group, location);\n return group;\n }\n findGroup(panel) {\n var _a;\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { toggleClass } from '../dom';\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\nexport class DefaultHeader extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._expandedIcon = createExpandMoreButton();\n this._collapsedIcon = createChevronRightButton();\n this.disposable = new MutableDisposable();\n this.apiRef = { api: null };\n this._element = document.createElement('div');\n this.element.className = 'default-header';\n this._content = document.createElement('span');\n this._expander = document.createElement('div');\n this._expander.className = 'dockview-pane-header-icon';\n this.element.appendChild(this._expander);\n this.element.appendChild(this._content);\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\n var _a;\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\n }));\n }\n init(params) {\n this.apiRef.api = params.api;\n this._content.textContent = params.title;\n this.updateIcon();\n this.disposable.value = params.api.onDidExpansionChange(() => {\n this.updateIcon();\n });\n }\n updateIcon() {\n var _a;\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\n toggleClass(this._expander, 'collapsed', !isExpanded);\n if (isExpanded) {\n if (this._expander.contains(this._collapsedIcon)) {\n this._collapsedIcon.remove();\n }\n if (!this._expander.contains(this._expandedIcon)) {\n this._expander.appendChild(this._expandedIcon);\n }\n }\n else {\n if (this._expander.contains(this._expandedIcon)) {\n this._expandedIcon.remove();\n }\n if (!this._expander.contains(this._collapsedIcon)) {\n this._expander.appendChild(this._collapsedIcon);\n }\n }\n }\n update(_params) {\n //\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { Paneview } from './paneview';\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\nimport { DefaultHeader } from './defaultPaneviewHeader';\nimport { sequentialNumberGenerator } from '../math';\nimport { Resizable } from '../resizable';\nconst nextLayoutId = sequentialNumberGenerator();\nexport class PaneFramework extends DraggablePaneviewPanel {\n constructor(options) {\n super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);\n this.options = options;\n }\n getBodyComponent() {\n return this.options.body;\n }\n getHeaderComponent() {\n return this.options.header;\n }\n}\nexport class PaneviewComponent extends Resizable {\n get id() {\n return this._id;\n }\n get panels() {\n return this.paneview.getPanes();\n }\n set paneview(value) {\n this._paneview = value;\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get paneview() {\n return this._paneview;\n }\n get minimumSize() {\n return this.paneview.minimumSize;\n }\n get maximumSize() {\n return this.paneview.maximumSize;\n }\n get height() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.orthogonalSize\n : this.paneview.size;\n }\n get width() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.size\n : this.paneview.orthogonalSize;\n }\n get options() {\n return this._options;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._disposable = new MutableDisposable();\n this._viewDisposables = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.paneview = new Paneview(this.element, {\n // only allow paneview in the vertical orientation for now\n orientation: Orientation.VERTICAL,\n });\n this.addDisposables(this._disposable);\n }\n focus() {\n //noop\n }\n updateOptions(options) {\n this._options = Object.assign(Object.assign({}, this.options), options);\n }\n addPanel(options) {\n var _a, _b, _c, _d;\n const body = createComponent(options.id, options.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.body.createComponent,\n }\n : undefined);\n let header;\n if (options.headerComponent) {\n header = createComponent(options.id, options.headerComponent, (_c = this.options.headerComponents) !== null && _c !== void 0 ? _c : {}, this.options.headerframeworkComponents, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.header\n .createComponent,\n }\n : undefined);\n }\n else {\n header = new DefaultHeader();\n }\n const view = new PaneFramework({\n id: options.id,\n component: options.component,\n headerComponent: options.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!options.isExpanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n });\n this.doAddPanel(view);\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n view.init({\n params: (_d = options.params) !== null && _d !== void 0 ? _d : {},\n minimumBodySize: options.minimumBodySize,\n maximumBodySize: options.maximumBodySize,\n isExpanded: options.isExpanded,\n title: options.title,\n containerApi: new PaneviewApi(this),\n });\n this.paneview.addPane(view, size, index);\n view.orientation = this.paneview.orientation;\n return view;\n }\n removePanel(panel) {\n const views = this.panels;\n const index = views.findIndex((_) => _ === panel);\n this.paneview.removePane(index);\n this.doRemovePanel(panel);\n }\n movePanel(from, to) {\n this.paneview.moveView(from, to);\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.paneview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.paneview.layout(size, orthogonalSize);\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n const views = this.paneview\n .getPanes()\n .map((view, i) => {\n const size = this.paneview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n minimumSize: minimum(view.minimumBodySize),\n maximumSize: maximum(view.maximumBodySize),\n expanded: view.isExpanded(),\n };\n });\n return {\n views,\n size: this.paneview.size,\n };\n }\n fromJSON(serializedPaneview) {\n this.clear();\n const { views, size } = serializedPaneview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.paneview = new Paneview(this.element, {\n orientation: Orientation.VERTICAL,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b, _c, _d;\n const data = view.data;\n const body = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.body\n .createComponent,\n }\n : undefined);\n let header;\n if (data.headerComponent) {\n header = createComponent(data.id, data.headerComponent, (_c = this.options.headerComponents) !== null && _c !== void 0 ? _c : {}, (_d = this.options.headerframeworkComponents) !== null && _d !== void 0 ? _d : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.header\n .createComponent,\n }\n : undefined);\n }\n else {\n header = new DefaultHeader();\n }\n const panel = new PaneFramework({\n id: data.id,\n component: data.component,\n headerComponent: data.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!view.expanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n });\n this.doAddPanel(panel);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumBodySize: view.minimumSize,\n maximumBodySize: view.maximumSize,\n title: data.title,\n isExpanded: !!view.expanded,\n containerApi: new PaneviewApi(this),\n });\n panel.orientation = this.paneview.orientation;\n });\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n doAddPanel(panel) {\n const disposable = panel.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n });\n this._viewDisposables.set(panel.id, disposable);\n }\n doRemovePanel(panel) {\n const disposable = this._viewDisposables.get(panel.id);\n if (disposable) {\n disposable.dispose();\n this._viewDisposables.delete(panel.id);\n }\n }\n dispose() {\n super.dispose();\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n}\n","import { getRelativeLocation, getGridLocation, } from './gridview';\nimport { tail, sequenceEquals } from '../array';\nimport { CompositeDisposable } from '../lifecycle';\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nexport class GridviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n set orientation(value) {\n this.gridview.orientation = value;\n }\n get options() {\n return this._options;\n }\n get deserializer() {\n return this._deserializer;\n }\n set deserializer(value) {\n this._deserializer = value;\n }\n constructor(options) {\n super({\n parentElement: options.parentElement,\n proportionalLayout: options.proportionalLayout,\n orientation: options.orientation,\n styles: options.styles,\n disableAutoResizing: options.disableAutoResizing,\n });\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._options = options;\n this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {\n this._onDidAddGroup.fire(event);\n }), this.onDidRemove((event) => {\n this._onDidRemoveGroup.fire(event);\n }), this.onDidActiveChange((event) => {\n this._onDidActiveGroupChange.fire(event);\n }));\n if (!this.options.components) {\n this.options.components = {};\n }\n if (!this.options.frameworkComponents) {\n this.options.frameworkComponents = {};\n }\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.gridview.orientation = options.orientation;\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n removePanel(panel) {\n this.removeGroup(panel);\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n return {\n grid: data,\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n }\n setActive(panel) {\n this._groups.forEach((value, _key) => {\n value.value.setActive(panel === value.value);\n });\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n fromJSON(serializedGridview) {\n this.clear();\n const { grid, activePanel } = serializedGridview;\n try {\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n var _a, _b;\n const { data } = node;\n const view = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n queue.push(() => view.init({\n params: data.params,\n minimumWidth: data.minimumWidth,\n maximumWidth: data.maximumWidth,\n minimumHeight: data.minimumHeight,\n maximumHeight: data.maximumHeight,\n priority: data.priority,\n snap: !!data.snap,\n accessor: this,\n isVisible: node.visible,\n }));\n this._onDidAddGroup.fire(view);\n this.registerPanel(view);\n return view;\n },\n });\n this.layout(width, height, true);\n queue.forEach((f) => f());\n if (typeof activePanel === 'string') {\n const panel = this.getPanel(activePanel);\n if (panel) {\n this.doSetGroupActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n const hasActiveGroup = this.activeGroup;\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\n for (const group of groups) {\n group.disposable.dispose();\n this.doRemoveGroup(group.value, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupActive(undefined);\n }\n this.gridview.clear();\n }\n movePanel(panel, options) {\n var _a;\n let relativeLocation;\n const removedPanel = this.gridview.remove(panel);\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.reference} does not exist`);\n }\n const target = toTarget(options.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n this.doAddGroup(removedPanel, relativeLocation, options.size);\n }\n addPanel(options) {\n var _a, _b, _c, _d, _e, _f;\n let relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];\n if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {\n const referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\n }\n const target = toTarget(options.position.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n }\n const view = createComponent(options.id, options.component, (_d = this.options.components) !== null && _d !== void 0 ? _d : {}, (_e = this.options.frameworkComponents) !== null && _e !== void 0 ? _e : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n view.init({\n params: (_f = options.params) !== null && _f !== void 0 ? _f : {},\n minimumWidth: options.minimumWidth,\n maximumWidth: options.maximumWidth,\n minimumHeight: options.minimumHeight,\n maximumHeight: options.maximumHeight,\n priority: options.priority,\n snap: !!options.snap,\n accessor: this,\n isVisible: true,\n });\n this.registerPanel(view);\n this.doAddGroup(view, relativeLocation, options.size);\n this.doSetGroupActive(view);\n return view;\n }\n registerPanel(panel) {\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this._groups.forEach((groupItem) => {\n const group = groupItem.value;\n if (group !== panel) {\n group.setActive(false);\n }\n else {\n group.setActive(true);\n }\n });\n }));\n this._groups.set(panel.id, {\n value: panel,\n disposable,\n });\n }\n moveGroup(referenceGroup, groupId, target) {\n const sourceGroup = this.getPanel(groupId);\n if (!sourceGroup) {\n throw new Error('invalid operation');\n }\n const referenceLocation = getGridLocation(referenceGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n const [targetParentLocation, to] = tail(targetLocation);\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n // source group will become empty so delete the group\n const targetGroup = this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n });\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\n this.doAddGroup(targetGroup, location);\n }\n removeGroup(group) {\n super.removeGroup(group);\n }\n dispose() {\n super.dispose();\n this._onDidLayoutfromJSON.dispose();\n }\n}\n","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing, Splitview, } from './splitview';\nimport { Emitter } from '../events';\nimport { createComponent } from '../panel/componentFactory';\nimport { Resizable } from '../resizable';\n/**\n * A high-level implementation of splitview that works using 'panels'\n */\nexport class SplitviewComponent extends Resizable {\n get panels() {\n return this.splitview.getViews();\n }\n get options() {\n return this._options;\n }\n get length() {\n return this._panels.size;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get splitview() {\n return this._splitview;\n }\n set splitview(value) {\n this._splitview = value;\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get height() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.orthogonalSize\n : this.splitview.size;\n }\n get width() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.size\n : this.splitview.orthogonalSize;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._splitviewChangeDisposable = new MutableDisposable();\n this._panels = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.splitview = new Splitview(this.element, options);\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.options.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.splitview.orientation = options.orientation;\n }\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n movePanel(from, to) {\n this.splitview.moveView(from, to);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.splitview.setViewVisible(index, visible);\n }\n setActive(view, skipFocus) {\n this._activePanel = view;\n this.panels\n .filter((v) => v !== view)\n .forEach((v) => {\n v.api._onDidActiveChange.fire({ isActive: false });\n if (!skipFocus) {\n v.focus();\n }\n });\n view.api._onDidActiveChange.fire({ isActive: true });\n if (!skipFocus) {\n view.focus();\n }\n }\n removePanel(panel, sizing) {\n const item = this._panels.get(panel.id);\n if (!item) {\n throw new Error(`unknown splitview panel ${panel.id}`);\n }\n item.dispose();\n this._panels.delete(panel.id);\n const index = this.panels.findIndex((_) => _ === panel);\n const removedView = this.splitview.removeView(index, sizing);\n removedView.dispose();\n const panels = this.panels;\n if (panels.length > 0) {\n this.setActive(panels[panels.length - 1]);\n }\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n addPanel(options) {\n var _a, _b, _c;\n if (this._panels.has(options.id)) {\n throw new Error(`panel ${options.id} already exists`);\n }\n const view = createComponent(options.id, options.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.createComponent,\n }\n : undefined);\n view.orientation = this.splitview.orientation;\n view.init({\n params: (_c = options.params) !== null && _c !== void 0 ? _c : {},\n minimumSize: options.minimumSize,\n maximumSize: options.maximumSize,\n snap: options.snap,\n priority: options.priority,\n accessor: this,\n });\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n this.splitview.addView(view, size, index);\n this.doAddView(view);\n this.setActive(view);\n return view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.splitview.layout(size, orthogonalSize);\n }\n doAddView(view) {\n const disposable = view.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this.setActive(view, true);\n });\n this._panels.set(view.id, disposable);\n }\n toJSON() {\n var _a;\n const views = this.splitview\n .getViews()\n .map((view, i) => {\n const size = this.splitview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n snap: !!view.snap,\n priority: view.priority,\n };\n });\n return {\n views,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n size: this.splitview.size,\n orientation: this.splitview.orientation,\n };\n }\n fromJSON(serializedSplitview) {\n this.clear();\n const { views, orientation, size, activeView } = serializedSplitview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.splitview = new Splitview(this.element, {\n orientation,\n proportionalLayout: this.options.proportionalLayout,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b;\n const data = view.data;\n if (this._panels.has(data.id)) {\n throw new Error(`panel ${data.id} already exists`);\n }\n const panel = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper\n .createComponent,\n }\n : undefined);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumSize: data.minimumSize,\n maximumSize: data.maximumSize,\n snap: view.snap,\n priority: view.priority,\n accessor: this,\n });\n });\n panel.orientation = orientation;\n this.doAddView(panel);\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n if (typeof activeView === 'string') {\n const panel = this.getPanel(activeView);\n if (panel) {\n this.setActive(panel);\n }\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n while (this.splitview.length > 0) {\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\n view.dispose();\n }\n }\n dispose() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n const views = this.splitview.getViews();\n this._splitviewChangeDisposable.dispose();\n this.splitview.dispose();\n for (const view of views) {\n view.dispose();\n }\n super.dispose();\n }\n}\n","import { BasePanelView, } from '../gridview/basePanelView';\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\nimport { Orientation } from './splitview';\nimport { Emitter } from '../events';\nexport class SplitviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const size = typeof this._minimumSize === 'function'\n ? this._minimumSize()\n : this._minimumSize;\n if (size !== this._evaluatedMinimumSize) {\n this._evaluatedMinimumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get maximumSize() {\n const size = typeof this._maximumSize === 'function'\n ? this._maximumSize()\n : this._maximumSize;\n if (size !== this._evaluatedMaximumSize) {\n this._evaluatedMaximumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get snap() {\n return this._snap;\n }\n constructor(id, componentName) {\n super(id, componentName, new SplitviewPanelApiImpl(id));\n this._evaluatedMinimumSize = 0;\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\n this._minimumSize = 0;\n this._maximumSize = Number.POSITIVE_INFINITY;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.api.initialize(this);\n this.addDisposables(this._onDidChange, this.api.onDidHiddenChange((event) => {\n const { isHidden } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, !isHidden);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.setActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumSize === 'number' ||\n typeof event.minimumSize === 'function') {\n this._minimumSize = event.minimumSize;\n }\n if (typeof event.maximumSize === 'number' ||\n typeof event.maximumSize === 'function') {\n this._maximumSize = event.maximumSize;\n }\n this.updateConstraints();\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }));\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n layout(size, orthogonalSize) {\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n super.layout(width, height);\n }\n init(parameters) {\n super.init(parameters);\n this._priority = parameters.priority;\n if (parameters.minimumSize) {\n this._minimumSize = parameters.minimumSize;\n }\n if (parameters.maximumSize) {\n this._maximumSize = parameters.maximumSize;\n }\n if (parameters.snap) {\n this._snap = parameters.snap;\n }\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, super.toJSON()), { minimumSize: minimum(this.minimumSize), maximumSize: maximum(this.maximumSize) });\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n maximumSize: this._evaluatedMaximumSize,\n minimumSize: this._evaluatedMinimumSize,\n });\n }\n}\n"],"names":["Disposable","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","TransferObject","PanelTransfer","constructor","viewId","groupId","panelId","super","this","PaneTransfer","paneId","LocalSelectionTransfer","getInstance","INSTANCE","hasData","proto","clearData","undefined","data","getData","setData","getPanelData","panelTransfer","prototype","getPaneData","paneTransfer","exports","DockviewEvent","Event","any","children","listener","disposables","map","child","dispose","forEach","d","_defaultPrevented","defaultPrevented","preventDefault","Stacktrace","create","_a","Error","stack","value","print","console","warn","Listener","callback","stacktrace","Emitter","setLeakageMonitorEnabled","isEnabled","ENABLE_TRACKING","MEMORY_LEAK_WATCHER","clear","_last","options","_listeners","_disposed","event","_event","replay","push","index","indexOf","splice","add","fire","e","length","queueMicrotask","delete","addDisposableWindowListener","element","addEventListener","removeEventListener","addDisposableListener","events","Map","size","set","TickDelayedEvent","_onFired","onEvent","timer","clearTimeout","setTimeout","NONE","from","func","CompositeDisposable","isDisposed","_isDisposed","args","_disposables","addDisposables","arg","MutableDisposable","_disposable","disposable","createComponent","id","componentName","components","frameworkComponents","createFrameworkComponent","fallback","Component","FrameworkComponent","watchElementResize","cb","observer","ResizeObserver","entires","requestAnimationFrame","firstEntry","observe","unobserve","disconnect","removeClasses","classes","classname","classList","contains","remove","addClasses","toggleClass","className","isToggled","hasClass","isAncestor","testChild","testAncestor","parentNode","tag","Array","slice","call","trackFocus","FocusTracker","_onDidFocus","onDidFocus","_onDidBlur","onDidBlur","hasFocus","activeElement","loosingFocus","onFocus","onBlur","window","_refreshStateHandler","HTMLElement","refreshState","QUASI_PREVENT_DEFAULT_KEY","quasiDefaultPrevented","getDomNodePagePosition","domNode","left","top","width","height","getBoundingClientRect","scrollX","scrollY","tail","arr","sequenceEquals","arr1","arr2","i","pushToStart","unshift","pushToEnd","array","findIndex","t","clamp","min","max","Math","sequentialNumberGenerator","next","toString","range","to","result","ViewItem","_size","cachedVisibleSize","_cachedVisibleSize","visible","minimumSize","view","viewMinimumSize","maximumSize","viewMaximumSize","priority","snap","enabled","container","pointerEvents","setVisible","toggle","Orientation","SashState","LayoutPriority","Sizing","Distribute","Split","Invisible","Splitview","contentSize","_contentSize","orthogonalSize","_orthogonalSize","viewItems","proportions","_proportions","orientation","_orientation","tmp","HORIZONTAL","reduce","r","item","Number","POSITIVE_INFINITY","startSnappingEnabled","_startSnappingEnabled","updateSashEnablement","endSnappingEnabled","_endSnappingEnabled","disabled","_disabled","sashes","_onDidSashEnd","onDidSashEnd","_onDidAddView","onDidAddView","_onDidRemoveView","onDidRemoveView","resize","delta","sizes","x","lowPriorityIndexes","highPriorityIndexes","overloadMinDelta","NEGATIVE_INFINITY","overloadMaxDelta","snapBefore","snapAfter","upIndexes","downIndexes","upItems","upSizes","downItems","downSizes","minDeltaUp","_","maxDeltaUp","maxDeltaDown","minDeltaDown","minDelta","maxDelta","snapped","snapView","limitDelta","actualDelta","deltaUp","viewDelta","deltaDown","createContainer","proportionalLayout","viewContainer","createViewContainer","sashContainer","createSashContainer","styles","descriptor","views","viewDescriptor","sizing","addView","saveProportions","separatorBorder","removeProperty","setProperty","isViewVisible","setViewVisible","viewItem","distributeEmptySpace","layoutViews","getViewSize","resizeView","indexes","filter","Low","High","round","relayout","getViews","onDidChange","skipLayout","viewSize","newSize","removeChild","sash","onPointerStart","iframes","iframe","start","clientX","clientY","sashIndex","fn","firstIndex","s","snapBeforeIndex","findFirstSnapIndex","snapAfterIndex","snappedViewItem","halfSize","floor","onPointerMove","end","sashItem","distributeViewSizes","flexibleViewItems","flexibleSize","removeView","getViewCachedVisibleSize","moveView","layout","previousSize","total","proportion","lowPriorityIndex","emptyDelta","sum","offset","VERTICAL","previous","collapsesDown","expandsDown","reverseViews","reverse","collapsesUp","expandsUp","position","snappedBefore","snappedAfter","updateSash","MINIMUM","MAXIMUM","DISABLED","ENABLED","state","orientationClassname","Paneview","splitview","paneItems","skipAnimation","_onDidChange","getPanes","pane","onDidChangeExpansionState","setupAnimation","paneItem","addPane","removePane","skipDispose","animationTimer","LeafNode","minimumWidth","maximumWidth","minimumHeight","maximumHeight","minimumOrthogonalSize","maximumOrthogonalSize","BranchNode","c","Normal","priorities","some","p","childDescriptors","_childrenDisposable","_onDidVisibilityChange","onDidVisibilityChange","childDescriptor","node","setupChildrenEvents","isChildVisible","setChildVisible","wereAllChildrenHidden","areAllChildrenHidden","moveChild","_removeChild","_addChild","getChildSize","resizeChild","addChild","getChildCachedVisibleSize","findLeaf","candiateNode","last","flipNode","orthogonal","totalSize","childSize","indexInParent","parentElement","el","firstElementChild","lastElementChild","nextElementSibling","getGridLocation","test","getRelativeLocation","rootOrientation","location","direction","getLocationOrientation","getDirectionOrientation","rest","_index","isGridBranchNode","serializeBranchNode","box","toJSON","Gridview","_root","root","locked","_locked","branch","pop","maximizedView","_maximizedNode","leaf","hasMaximizedView","maximizeView","getNode","exitMaximizedView","hiddenOnMaximize","hideAllViewsBut","parent","exclude","_onDidMaximizedNodeChange","showViewsInReverseOrder","includes","serialize","getView","deserialize","json","deserializer","_deserialize","_deserializeNode","serializedChild","fromJSON","oldRoot","insertOrthogonalSplitviewAtRoot","childReference","progmaticSelect","_getViews","nodeCachedVisibleSize","path","n","l","onDidMaximizedNodeChange","parentLocation","pathToParent","grandParent","parentIndex","__","newSiblingSize","newSiblingCachedVisibleSize","newParent","newSibling","nodeToRemove","sibling","isSiblingVisible","siblingSizing","PaneviewApi","component","panels","onDidLayoutChange","onDidLayoutFromJSON","onDidDrop","emitter","Object","assign","api","removePanel","panel","getPanel","movePanel","focus","addPanel","DockviewApi","totalPanels","onDidActiveGroupChange","onDidAddGroup","onDidRemoveGroup","onDidActivePanelChange","onDidAddPanel","onDidRemovePanel","onWillDrop","onWillShowOverlay","onWillDragGroup","onWillDragPanel","groups","activePanel","activeGroup","getGroupPanel","force","addGroup","closeAllGroups","removeGroup","group","getGroup","addFloatingGroup","coord","moveToNext","moveToPrevious","maximizeGroup","hasMaximizedGroup","exitMaximizedGroup","onDidMaximizedGroupChange","addPopoutGroup","DragAndDropObserver","callbacks","target","registerListeners","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","WillShowOverlayEvent","nativeEvent","directionToPosition","positionToDirection","DEFAULT_ACTIVATION_SIZE","DEFAULT_SIZE","Droptarget","_state","_onDrop","_onWillShowOverlay","_acceptedTargetZonesSet","Set","acceptedTargetZones","dnd","removeDropTarget","clientWidth","clientHeight","rect","currentTarget","y","quadrant","calculateQuadrant","isAlreadyUsed","willShowOverlayEvent","canDisplayOverlay","markAsUsed","targetElement","overlayElement","append","toggleClasses","stopPropagation","setTargetZones","setOverlayModel","model","overlayModel","USED_EVENT_ID","_b","isSmallX","isSmallY","isLeft","isRight","isTop","isBottom","rightClass","leftClass","topClass","bottomClass","sizeOptions","overlayType","activationSizeOptions","activationSize","threshold","xp","yp","has","calculateQuadrantAsPercentage","calculateQuadrantAsPixels","ContentContainer","_element","accessor","tabIndex","dropTarget","shiftKey","show","display","hide","renderPanel","asActive","doRender","isPanelActive","content","renderer","renderContainer","detatch","attach","referenceContainer","focusTracker","openPanel","_width","_height","closePanel","DragHandler","dataDisposable","pointerEventsDisposable","_onDragStart","onDragStart","configure","isCancelled","dataTransfer","effectAllowed","items","TabDragHandler","Tab","_onChanged","onChanged","_onDropped","draggable","dragHandler","setActive","isActive","setContent","part","GroupDragHandler","dragEvent","getComputedStyle","bgColor","getPropertyValue","color","ghostElement","backgroundColor","padding","fontSize","lineHeight","borderRadius","textContent","body","setDragImage","addGhostImage","VoidContainer","doSetGroupActive","handler","dropTraget","TabsContainer","tabs","hidden","_hidden","setRightActionsElement","rightActions","rightActionsContainer","setLeftActionsElement","leftActions","leftActionsContainer","setPrefixActionsElement","preActions","preActionsContainer","tab","selectedIndex","_onTabDragStart","onTabDragStart","_onGroupDragStart","onGroupDragStart","singleTabMode","tabContainer","voidContainer","WillShowOverlayLocationEvent","kind","disableFloatingGroups","rootTop","rootLeft","inDragMode","button","_isGroupActive","addTab","tabToRemove","setActivePanel","isActivePanel","find","isFloatingGroupsEnabled","isFloatingWithOnePanel","DockviewDidDropEvent","DockviewWillDropEvent","_kind","DockviewGroupPanelModel","_activePanel","_panels","isEmpty","hasWatermark","watermark","header","tabsContainer","isContentFocused","contentContainer","_location","groupPanel","_onDidLocationChange","mostRecentlyUsed","_onMove","onMove","_onDidDrop","_onWillDrop","_onDidAddPanel","_onDidRemovePanel","_onDidActivePanelChange","_overwriteRenderContainer","_api","hideHeader","handleDropEvent","focusContent","rerender","overlayRenderContainer","initialize","doAddPanel","updateContainer","createRightHeaderActionsElement","_rightHeaderActions","init","containerApi","createLeftHeaderActionsElement","_leftHeaderActions","createPrefixHeaderActionsElement","_prefixHeaderActions","activeView","normalizedIndex","suppressRoll","containsPanel","_params","update","skipSetActive","updateParentGroup","doSetActivePanel","skipSetGroupActive","groupItemOrId","panelToRemove","_removePanel","closeAllPanels","arrPanelCpy","doClose","updateActions","isGroupActive","doRemovePanel","nextPanel","skipSetActiveGroup","hasExistingPanel","updateMru","runEvents","createWatermarkComponent","showDndOverlay","willDropEvent","getKind","itemId","_c","Resizable","disableResizing","_disableResizing","entry","offsetParent","currentElement","DocumentFragment","host","isInDocument","contentRect","nextLayoutId","toTarget","BaseGrid","_id","_groups","values","gridview","_activeGroup","disableAutoResizing","_onDidLayoutChange","_onDidRemove","onDidRemove","_onDidAdd","onDidAdd","_onDidActiveChange","onDidActiveChange","_bufferOnDidLayoutChange","isVisible","isMaximizedGroup","doAddGroup","doRemoveGroup","get","skipActive","forceResize","WillFocusEvent","PanelApiImpl","isFocused","_isFocused","_isActive","_isVisible","isHidden","_isHidden","panelUpdatesDisposable","_onDidDimensionChange","onDidDimensionsChange","_onDidChangeFocus","onDidFocusChange","_onWillFocus","onWillFocus","_onDidHiddenChange","onDidHiddenChange","_onActiveChange","onActiveChange","_onUpdateParameters","onUpdateParameters","parameters","params","setHidden","updateParameters","SplitviewPanelApiImpl","_onDidConstraintsChangeInternal","onDidConstraintsChangeInternal","_onDidConstraintsChange","onDidConstraintsChange","_onDidSizeChange","onDidSizeChange","setConstraints","setSize","PaneviewPanelApiImpl","_pane","_onDidExpansionChange","onDidExpansionChange","_onMouseEnter","onMouseEnter","_onMouseLeave","onMouseLeave","setExpanded","isExpanded","BasePanelView","outline","overflow","getComponent","key","keys","PaneviewPanel","headerSize","_minimumBodySize","_maximumBodySize","minimumBodySize","maximumBodySize","headerVisible","_headerVisible","headerComponent","isHeaderVisible","_onDidChangeExpansionState","_isExpanded","expandedSize","ev","isPanelExpanded","renderOnce","expanded","bodyPart","getBodyComponent","headerPart","getHeaderComponent","title","minHeight","maxHeight","DraggablePaneviewPanel","disableDnd","initDragFeatures","accessorId","existingPanel","allPanels","fromIndex","toIndex","GridviewPanelApiImpl","GridviewPanel","_priority","_snap","_minimumWidth","_evaluatedMinimumWidth","updateConstraints","_minimumHeight","_evaluatedMinimumHeight","_maximumHeight","_evaluatedMaximumHeight","_maximumWidth","_evaluatedMaximumWidth","MAX_SAFE_INTEGER","maximum","minimum","NOT_INITIALIZED_MESSAGE","DockviewGroupPanelApiImpl","_group","onDidLocationChange","close","getWindow","moveTo","moveGroupOrPanel","maximize","isMaximized","exitMaximized","DockviewGroupPanel","_model","isPanelOptionsWithPanel","referencePanel","isPanelOptionsWithGroup","referenceGroup","isGroupOptionsWithPanel","isGroupOptionsWithGroup","DockviewPanelApiImpl","isOldGroupActive","_onDidGroupChange","_trackGroupActive","groupEventsDisposable","_onDidActiveGroupChange","_onDidTitleChange","onDidTitleChange","onDidGroupChange","_onDidRendererChange","onDidRendererChange","setTitle","setRenderer","DockviewPanel","_title","_renderer","contentComponent","tabComponent","isPanelVisible","createSvgElementFromPath","svg","createElementNS","setAttributeNS","viewbox","createCloseButton","DefaultTab","_content","_actionContainer","_list","action","render","onGroupChange","onPanelVisibleChange","_isPanelVisible","DockviewPanelModel","_tab","createContentComponent","createTabComponent","_d","frameworkComponentFactory","tabComponents","frameworkTabComponents","defaultTabComponent","DefaultDockviewDeserialzier","panelData","viewData","Watermark","emptySpace","flexGrow","actionsContainer","closeAnchor","_visible","isOneGroup","bringElementToFront","Overlay","minimumInViewportWidth","minimumInViewportHeight","_onDidChangeEnd","onDidChangeEnd","setupResize","setBounds","bounds","containerRect","overlayRect","xOffset","getMinimumWidth","yOffset","getMinimumHeight","setupDrag","dragTarget","move","track","resizeHandleElement","startPosition","originalY","originalHeight","originalX","originalWidth","moveTop","MAX_VALUE","MINIMUM_HEIGHT","moveBottom","moveLeft","MINIMUM_WIDTH","moveRight","DockviewFloatingGroupPanel","overlay","DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE","DEFAULT_FLOATING_GROUP_POSITION","OverlayRenderContainer","destroy","createFocusableElement","focusContainer","box2","visibilityChanged","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","then","apply","SuppressedError","PopoutWindow","_window","_onWillClose","onWillClose","_onDidClose","onDidClose","dimensions","screenX","screenY","innerWidth","innerHeight","open","url","features","entries","join","externalWindow","createPopoutWindowContainer","onDidOpen","externalDocument","styleSheetList","styleSheets","href","link","rel","cssTexts","cssRules","rule","err","addStyles","DEFAULT_ROOT_OVERLAY_MODEL","moveGroupWithoutDestroying","removedPanel","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","flatMap","_options","defaultRenderer","nextGroupId","_deserializer","_onWillDragPanel","_onWillDragGroup","_onDidLayoutFromJSON","_onDidMovePanel","_floatingGroups","_popoutGroups","_ignoreEvents","_onDidRemoveGroup","_onDidAddGroup","_moving","gready","debug","updateWatermark","watermarkComponent","watermarkFrameworkComponent","_rootDropTarget","rootOverlayModel","orthogonalize","itemToPopout","theme","toClassList","list","cls","startsWith","getDockviewTheme","overridePopoutGroup","getNextGroupId","popoutUrl","popoutWindowDisposable","popoutContainer","referenceLocation","createGroup","movingLock","returnedGroup","doSetGroupAndPanelActive","popoutGroup","skipPopoutAssociated","removedGroup","catch","error","_e","_f","_g","removeEmptyGroup","popoutReferenceGroupId","popoutReferenceGroup","skipRemoveGroup","skipPopoutReturn","overlayLeft","overlayTop","floatingGroupBounds","minimumWidthWithinViewport","minimumHeightWithinViewport","querySelector","floatingGroupPanel","skipActiveGroup","createGroupAtLocation","updateOptions","changed_orientation","changed_floatingGroupBounds","changed_rootOverlayOptions","floating","includePanel","collection","floats","popoutGroups","gridReferenceGroup","grid","floatingGroups","isArray","createGroupFromSerializedState","createdPanels","serializedFloatingGroups","serializedFloatingGroup","serializedPopoutGroups","serializedPopoutGroup","floatingGroup","hasActiveGroup","findGroup","createPanel","o","relativeLocation","watermarkContainer","selectedGroup","refGroup","re","isMoving","destinationGroup","sourceGroupId","sourceItemId","destinationTarget","destinationIndex","sourceGroup","targetLocation","targetParentLocation","sourceLocation","sourceParentLocation","targetGroup","updatedReferenceLocation","dropLocation","moveGroup","selectedFloatingGroup","selectedPopoutGroup","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","reference","groupItem","paneview","_paneview","_viewDisposables","frameworkWrapper","headerComponents","headerframeworkComponents","serializedPaneview","_splitview","_splitviewChangeDisposable","skipFocus","v","doAddView","serializedSplitview","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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CIlD,KAAKie,UAAU/a,OAClB,EA8IE,MAAM8b,GAIT,MAAI/Y,GACA,OAAOjG,KAAKie,UAAUhY,EACzB,CAID,SAAI0D,GACA,OAAO3J,KAAKie,UAAUtU,KACzB,CAID,UAAIC,GACA,OAAO5J,KAAKie,UAAUrU,MACzB,CAID,iBAAIwN,GACA,OAAOpX,KAAKie,UAAU7G,aACzB,CAID,iBAAIC,GACA,OAAOrX,KAAKie,UAAU5G,aACzB,CAID,gBAAIH,GACA,OAAOlX,KAAKie,UAAU/G,YACzB,CAID,gBAAIC,GACA,OAAOnX,KAAKie,UAAU9G,YACzB,CAID,QAAIxS,GACA,OAAO3E,KAAKie,UAAUtZ,IACzB,CAID,eAAIsa,GACA,OAAOjf,KAAKie,UAAUgB,WACzB,CAID,0BAAIC,GACA,OAAOlf,KAAKie,UAAUiB,sBACzB,CAID,iBAAIC,GACA,OAAOnf,KAAKie,UAAUkB,aACzB,CAID,oBAAIC,GACA,OAAOpf,KAAKie,UAAUmB,gBACzB,CAID,0BAAIC,GACA,OAAOrf,KAAKie,UAAUoB,sBACzB,CAID,iBAAIC,GACA,OAAOtf,KAAKie,UAAUqB,aACzB,CAID,oBAAIC,GACA,OAAOvf,KAAKie,UAAUsB,gBACzB,CAID,uBAAInB,GACA,OAAOpe,KAAKie,UAAUG,mBACzB,CAID,qBAAID,GACA,OAAOne,KAAKie,UAAUE,iBACzB,CAID,aAAIE,GACA,OAAOre,KAAKie,UAAUI,SACzB,CAOD,cAAImB,GACA,OAAOxf,KAAKie,UAAUuB,UACzB,CAID,qBAAIC,GACA,OAAOzf,KAAKie,UAAUwB,iBACzB,CAID,mBAAIC,GACA,OAAO1f,KAAKie,UAAUyB,eACzB,CAID,mBAAIC,GACA,OAAO3f,KAAKie,UAAU0B,eACzB,CAID,UAAIzB,GACA,OAAOle,KAAKie,UAAUC,MACzB,CAID,UAAI0B,GACA,OAAO5f,KAAKie,UAAU2B,MACzB,CAID,eAAIC,GACA,OAAO7f,KAAKie,UAAU4B,WACzB,CAID,eAAIC,GACA,OAAO9f,KAAKie,UAAU6B,WACzB,CACD,WAAAngB,CAAY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","x_google_ignoreList":[1,49]}
|