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.esm.min.js","sources":["../../src/events.ts","../../src/lifecycle.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../../src/dnd/dataTransfer.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/gridview/gridviewComponent.ts","../../src/splitview/splitviewComponent.ts","../../src/paneview/defaultPaneviewHeader.ts","../../src/paneview/paneviewComponent.ts","../../src/splitview/splitviewPanel.ts"],"sourcesContent":[null,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],"names":["Event","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","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","SplitviewApi","component","panels","onDidLayoutFromJSON","onDidLayoutChange","updateOptions","removePanel","panel","focus","getPanel","addPanel","movePanel","PaneviewApi","onDidDrop","emitter","Object","assign","api","GridviewApi","onDidAddPanel","onDidAddGroup","onDidRemovePanel","onDidRemoveGroup","onDidActivePanelChange","onDidActiveGroupChange","groups","force","DockviewApi","totalPanels","onWillDragGroup","onWillDragPanel","activePanel","activeGroup","getGroupPanel","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","DockviewComponent","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","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","GridviewComponent","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","removedPanel","reference","SplitviewComponent","_splitview","_splitviewChangeDisposable","v","frameworkWrapper","doAddView","serializedSplitview","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","PaneviewComponent","paneview","_paneview","_viewDisposables","headerComponents","headerframeworkComponents","serializedPaneview","SplitviewPanel","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"dockview-core.esm.min.js","sources":["../src/events.ts","../src/lifecycle.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/dnd/dataTransfer.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/gridview/gridviewComponent.ts","../src/splitview/splitviewComponent.ts","../src/paneview/defaultPaneviewHeader.ts","../src/paneview/paneviewComponent.ts","../src/splitview/splitviewPanel.ts"],"sourcesContent":["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 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 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 { 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 { 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 { 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":["Event","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","any","children","listener","disposables","map","child","dispose","forEach","d","DockviewEvent","_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","SplitviewApi","component","panels","onDidLayoutFromJSON","onDidLayoutChange","updateOptions","removePanel","panel","focus","getPanel","addPanel","movePanel","PaneviewApi","onDidDrop","emitter","Object","assign","api","GridviewApi","onDidAddPanel","onDidAddGroup","onDidRemovePanel","onDidRemoveGroup","onDidActivePanelChange","onDidActiveGroupChange","groups","force","DockviewApi","totalPanels","onWillDrop","onWillShowOverlay","onWillDragGroup","onWillDragPanel","activePanel","activeGroup","getGroupPanel","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","DockviewComponent","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","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","GridviewComponent","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","reference","groupItem","SplitviewComponent","_splitview","_splitviewChangeDisposable","skipFocus","v","frameworkWrapper","doAddView","serializedSplitview","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","PaneviewComponent","paneview","_paneview","_viewDisposables","headerComponents","headerframeworkComponents","serializedPaneview","SplitviewPanel","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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","x_google_ignoreList":[2,49]}
|