dockview-core 1.9.2 → 1.10.1
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 +35 -8
- package/dist/cjs/api/component.api.js +37 -7
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
- package/dist/cjs/api/dockviewPanelApi.d.ts +24 -7
- package/dist/cjs/api/dockviewPanelApi.js +60 -14
- package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -4
- package/dist/cjs/api/panelApi.d.ts +10 -8
- package/dist/cjs/api/panelApi.js +19 -29
- 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 +586 -198
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js +6 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +81 -37
- 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 +10 -6
- package/dist/cjs/dockview/options.js +0 -1
- package/dist/cjs/dockview/types.d.ts +0 -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 +2 -3
- 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 +3 -4
- 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 +1 -1
- package/dist/cjs/paneview/paneview.js +3 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +2 -1
- package/dist/cjs/paneview/paneviewComponent.js +6 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +2 -1
- package/dist/cjs/paneview/paneviewPanel.js +5 -2
- 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 +1 -2
- package/dist/cjs/splitview/splitviewComponent.js +5 -6
- package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
- package/dist/cjs/splitview/splitviewPanel.js +1 -2
- 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 +1298 -531
- 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 +1297 -530
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +1298 -531
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +1296 -532
- 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 +1298 -531
- 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 +1297 -530
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +35 -8
- package/dist/esm/api/component.api.js +29 -7
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
- package/dist/esm/api/dockviewPanelApi.d.ts +24 -7
- package/dist/esm/api/dockviewPanelApi.js +56 -14
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
- package/dist/esm/api/gridviewPanelApi.js +1 -4
- package/dist/esm/api/panelApi.d.ts +10 -8
- package/dist/esm/api/panelApi.js +16 -29
- 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 +529 -163
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js +6 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +81 -37
- 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 +10 -6
- package/dist/esm/dockview/options.js +0 -1
- package/dist/esm/dockview/types.d.ts +0 -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 +2 -3
- 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 +3 -4
- 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 +1 -1
- package/dist/esm/paneview/paneview.js +3 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +2 -1
- package/dist/esm/paneview/paneviewComponent.js +6 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +2 -1
- package/dist/esm/paneview/paneviewPanel.js +5 -2
- 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 +1 -2
- package/dist/esm/splitview/splitviewComponent.js +5 -6
- package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
- package/dist/esm/splitview/splitviewPanel.js +1 -2
- 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.amd.min.noStyle.js","sources":["../../src/dnd/dataTransfer.ts","../../src/events.ts","../../src/lifecycle.ts","../../src/panel/componentFactory.ts","../../src/dom.ts","../../src/array.ts","../../src/math.ts","../../src/splitview/viewItem.ts","../../src/splitview/splitview.ts","../../src/paneview/paneview.ts","../../src/gridview/leafNode.ts","../../src/gridview/branchNode.ts","../../src/gridview/gridview.ts","../../src/api/component.api.ts","../../src/dnd/dnd.ts","../../src/dnd/droptarget.ts","../../src/dockview/types.ts","../../src/dockview/components/panel/content.ts","../../src/dnd/abstractDragHandler.ts","../../src/dockview/components/tab/tab.ts","../../src/dnd/groupDragHandler.ts","../../src/dnd/ghost.ts","../../src/dockview/components/titlebar/voidContainer.ts","../../src/dockview/components/titlebar/tabsContainer.ts","../../src/dockview/dockviewGroupPanelModel.ts","../../src/resizable.ts","../../src/gridview/baseComponentGridview.ts","../../src/api/panelApi.ts","../../src/api/splitviewPanelApi.ts","../../src/api/paneviewPanelApi.ts","../../src/gridview/basePanelView.ts","../../src/paneview/paneviewPanel.ts","../../src/paneview/draggablePaneviewPanel.ts","../../src/api/gridviewPanelApi.ts","../../src/gridview/gridviewPanel.ts","../../src/api/dockviewGroupPanelApi.ts","../../src/dockview/dockviewGroupPanel.ts","../../src/dockview/options.ts","../../src/api/dockviewPanelApi.ts","../../src/dockview/dockviewPanel.ts","../../src/svg.ts","../../src/dockview/components/tab/defaultTab.ts","../../src/dockview/dockviewPanelModel.ts","../../src/dockview/deserializer.ts","../../src/dockview/components/watermark/watermark.ts","../../src/dnd/overlay.ts","../../src/dockview/dockviewFloatingGroupPanel.ts","../../src/popoutWindow.ts","../../src/dockview/dockviewPopoutGroupPanel.ts","../../src/constants.ts","../../src/overlayRenderContainer.ts","../../src/dockview/dockviewComponent.ts","../../src/paneview/defaultPaneviewHeader.ts","../../src/paneview/paneviewComponent.ts","../../src/gridview/gridviewComponent.ts","../../src/splitview/splitviewComponent.ts","../../src/splitview/splitviewPanel.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["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","Disposable","exports","DockviewEvent","Event","any","children","listener","disposables","map","child","dispose","forEach","d","Stacktrace","create","_a","Error","stack","value","print","console","warn","Listener","callback","stacktrace","Emitter","setLeakageMonitorEnabled","isEnabled","ENABLE_TRACKING","MEMORY_LEAK_WATCHER","clear","options","_listeners","_disposed","event","_event","replay","_last","push","index","indexOf","splice","add","fire","e","length","queueMicrotask","delete","addDisposableWindowListener","element","type","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","getElementsByTagName","tag","Array","slice","call","document","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","style","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","appendChild","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","createElement","viewSize","newSize","removeChild","insertBefore","sash","onPointerStart","iframes","iframe","start","clientX","clientY","sashIndex","fn","firstIndex","s","snapBeforeIndex","findFirstSnapIndex","snapAfterIndex","snappedViewItem","halfSize","floor","onPointerMove","end","sashItem","distributeViewSizes","flexibleViewItems","flexibleSize","removeView","getViewCachedVisibleSize","moveView","layout","previousSize","total","proportion","lowPriorityIndex","emptyDelta","sum","offset","VERTICAL","previous","collapsesDown","expandsDown","reverseViews","reverse","collapsesUp","expandsUp","position","snappedBefore","snappedAfter","updateSash","MINIMUM","MAXIMUM","DISABLED","ENABLED","state","orientationClassname","Paneview","splitview","paneItems","skipAnimation","_onDidChange","getPanes","pane","onDidChangeExpansionState","setupAnimation","paneItem","addPane","removePane","skipDispose","animationTimer","LeafNode","minimumWidth","maximumWidth","minimumHeight","maximumHeight","minimumOrthogonalSize","maximumOrthogonalSize","BranchNode","c","Normal","priorities","some","p","childDescriptors","_childrenDisposable","_onDidVisibilityChange","onDidVisibilityChange","childDescriptor","node","setupChildrenEvents","isChildVisible","setChildVisible","wereAllChildrenHidden","areAllChildrenHidden","moveChild","_removeChild","_addChild","getChildSize","resizeChild","addChild","getChildCachedVisibleSize","findLeaf","candiateNode","last","flipNode","orthogonal","totalSize","childSize","indexInParent","parentElement","el","firstElementChild","lastElementChild","nextElementSibling","getGridLocation","test","getRelativeLocation","rootOrientation","location","direction","getLocationOrientation","getDirectionOrientation","rest","_index","isGridBranchNode","serializeBranchNode","box","toJSON","Gridview","_root","root","maximizedView","_maximizedNode","hasMaximizedView","maximizeView","getNode","exitMaximizedView","hideAllViewsBut","parent","exclude","_onDidMaxmizedNodeChange","showViewsInReverseOrder","serialize","getView","deserialize","json","deserializer","_deserialize","_deserializeNode","serializedChild","fromJSON","oldRoot","insertOrthogonalSplitviewAtRoot","childReference","progmaticSelect","_getViews","nodeCachedVisibleSize","path","n","l","onDidMaxmizedNodeChange","parentLocation","pathToParent","grandParent","parentIndex","__","newSiblingSize","newSiblingCachedVisibleSize","newParent","newSibling","nodeToRemove","sibling","isSiblingVisible","siblingSizing","PaneviewApi","component","panels","onDidLayoutChange","onDidLayoutFromJSON","onDidDrop","emitter","Object","assign","api","removePanel","panel","getPanel","movePanel","focus","addPanel","DockviewApi","totalPanels","onDidActiveGroupChange","onDidAddGroup","onDidRemoveGroup","onDidActivePanelChange","onDidAddPanel","onDidRemovePanel","onWillDragGroup","onWillDragPanel","groups","activePanel","activeGroup","getGroupPanel","force","addGroup","closeAllGroups","removeGroup","group","getGroup","addFloatingGroup","coord","moveToNext","moveToPrevious","maximizeGroup","hasMaximizedGroup","exitMaxmizedGroup","exitMaximizedGroup","onDidMaxmizedGroupChange","addPopoutGroup","DragAndDropObserver","callbacks","target","registerListeners","onDragEnter","onDragOver","preventDefault","onDragLeave","onDragEnd","onDrop","directionToPosition","positionToDirection","DEFAULT_ACTIVATION_SIZE","DEFAULT_SIZE","Droptarget","_state","_onDrop","_acceptedTargetZonesSet","Set","acceptedTargetZones","dnd","removeDropTarget","clientWidth","clientHeight","rect","currentTarget","y","quadrant","calculateQuadrant","isAlreadyUsed","canDisplayOverlay","markAsUsed","targetElement","overlayElement","append","toggleClasses","stopPropagation","nativeEvent","setTargetZones","setOverlayModel","model","overlayModel","USED_EVENT_ID","isSmallX","isSmallY","isLeft","isRight","isTop","isBottom","rightClass","leftClass","topClass","bottomClass","sizeOptions","_b","translate","transform","overlayType","activationSizeOptions","activationSize","threshold","xp","yp","has","calculateQuadrantAsPercentage","calculateQuadrantAsPixels","DockviewDropTargets","ContentContainer","_element","accessor","tabIndex","dropTarget","locked","shiftKey","Panel","show","display","hide","renderPanel","asActive","doRender","isPanelActive","content","renderer","overlayRenderContainer","detatch","attach","referenceContainer","focusTracker","openPanel","_width","_height","closePanel","DragHandler","dataDisposable","pointerEventsDisposable","_onDragStart","onDragStart","configure","isCancelled","defaultPrevented","dataTransfer","effectAllowed","items","TabDragHandler","Tab","_onChanged","onChanged","_onDropped","draggable","dragHandler","droptarget","setActive","isActive","setContent","part","GroupDragHandler","dragEvent","getComputedStyle","bgColor","getPropertyValue","color","ghostElement","backgroundColor","padding","fontSize","lineHeight","borderRadius","textContent","body","setDragImage","addGhostImage","VoidContainer","doSetGroupActive","handler","voidDropTarget","TabsContainer","tabs","hidden","_hidden","setRightActionsElement","rightActions","rightActionsContainer","setLeftActionsElement","leftActions","leftActionsContainer","setPrefixActionsElement","preActions","preActionsContainer","tab","selectedIndex","_onTabDragStart","onTabDragStart","_onGroupDragStart","onGroupDragStart","singleTabMode","tabContainer","voidContainer","disableFloatingGroups","rootTop","rootLeft","inDragMode","button","_isGroupActive","addTab","tabToRemove","setActivePanel","isActivePanel","find","isFloatingGroupsEnabled","isFloatingWithOnePanel","alreadyFocused","isContentFocused","skipFocus","DockviewGroupPanelModel","_activePanel","_locked","_panels","isEmpty","hasWatermark","watermark","header","tabsContainer","contentContainer","_location","groupPanel","_onDidLocationChange","mostRecentlyUsed","_onMove","onMove","_onDidDrop","_onDidAddPanel","_onDidRemovePanel","_onDidActivePanelChange","hideHeader","handleDropEvent","initialize","doAddPanel","updateContainer","createRightHeaderActionsElement","_rightHeaderActions","init","containerApi","createLeftHeaderActionsElement","_leftHeaderActions","createPrefixHeaderActionsElement","_prefixHeaderActions","rerender","activeView","normalizedIndex","suppressRoll","containsPanel","includes","_params","update","skipSetPanelActive","skipSetGroupActive","updateParentGroup","doSetActivePanel","groupItemOrId","panelToRemove","_removePanel","closeAllPanels","arrPanelCpy","doClose","updateActions","isGroupActive","_d","_c","doRemovePanel","nextPanel","skipSetActive","hasExistingPanel","updateMru","createWatermarkComponent","showDndOverlay","itemId","Resizable","disableResizing","_disableResizing","entry","offsetParent","currentElement","DocumentFragment","host","isInDocument","contentRect","nextLayoutId","toTarget","BaseGrid","_id","_groups","values","gridview","_activeGroup","disableAutoResizing","_onDidLayoutChange","_onDidRemoveGroup","_onDidAddGroup","_onDidActiveGroupChange","_bufferOnDidLayoutChange","isVisible","isMaximizedGroup","doAddGroup","doRemoveGroup","get","skipActive","forceResize","PanelApiImpl","isFocused","_isFocused","_isActive","_isVisible","panelUpdatesDisposable","_onDidDimensionChange","onDidDimensionsChange","_onDidChangeFocus","onDidFocusChange","_onFocusEvent","onFocusEvent","_onVisibilityChange","onVisibilityChange","_onDidActiveChange","onDidActiveChange","_onActiveChange","onActiveChange","_onUpdateParameters","onUpdateParameters","parameters","params","updateParameters","SplitviewPanelApiImpl","_onDidConstraintsChangeInternal","onDidConstraintsChangeInternal","_onDidConstraintsChange","onDidConstraintsChange","_onDidSizeChange","onDidSizeChange","setConstraints","setSize","PaneviewPanelApiImpl","_pane","_onDidExpansionChange","onDidExpansionChange","_onMouseEnter","onMouseEnter","_onMouseLeave","onMouseLeave","setExpanded","isExpanded","BasePanelView","outline","overflow","getComponent","key","keys","PaneviewPanel","headerSize","_minimumBodySize","_maximumBodySize","minimumBodySize","maximumBodySize","headerVisible","_headerVisible","headerComponent","isHeaderVisible","_onDidChangeExpansionState","_isExpanded","expandedSize","ev","isPanelExpanded","renderOnce","expanded","bodyPart","getBodyComponent","headerPart","getHeaderComponent","title","minHeight","maxHeight","DraggablePaneviewPanel","disableDnd","initDragFeatures","accessorId","existingPanel","allPanels","fromIndex","toIndex","GridviewPanelApiImpl","GridviewPanel","_priority","_snap","_minimumWidth","_evaluatedMinimumWidth","updateConstraints","_minimumHeight","_evaluatedMinimumHeight","_maximumHeight","_evaluatedMaximumHeight","_maximumWidth","_evaluatedMaximumWidth","MAX_SAFE_INTEGER","maximum","minimum","NOT_INITIALIZED_MESSAGE","DockviewGroupPanelApiImpl","_group","onDidLocationChange","moveTo","moveGroupOrPanel","maximize","isMaximized","exitMaximized","DockviewGroupPanel","_model","isPanelOptionsWithPanel","referencePanel","isPanelOptionsWithGroup","referenceGroup","isGroupOptionsWithPanel","isGroupOptionsWithGroup","DockviewPanelApiImpl","isOldGroupActive","_onDidGroupChange","_onDidTitleChange","onDidTitleChange","onDidGroupChange","_onDidRendererChange","onDidRendererChange","setTitle","setRenderer","close","DockviewPanel","_title","_renderer","contentComponent","tabComponent","isPanelVisible","createSvgElementFromPath","svg","createElementNS","setAttributeNS","viewbox","createCloseButton","DefaultTab","_content","_actionContainer","_list","action","render","onGroupChange","onPanelVisibleChange","_isPanelVisible","DockviewPanelModel","_tab","createContentComponent","createTabComponent","frameworkComponentFactory","tabComponents","frameworkTabComponents","defaultTabComponent","DefaultDockviewDeserialzier","panelData","viewData","Watermark","emptySpace","flexGrow","actionsContainer","closeAnchor","_api","_visible","isOneGroup","bringElementToFront","Overlay","minimumInViewportWidth","minimumInViewportHeight","_onDidChangeEnd","onDidChangeEnd","setupResize","setBounds","bounds","containerRect","overlayRect","xOffset","getMinimumWidth","yOffset","getMinimumHeight","setupDrag","dragTarget","move","track","resizeHandleElement","startPosition","originalY","originalHeight","originalX","originalWidth","moveTop","MAX_VALUE","MINIMUM_HEIGHT","moveBottom","moveLeft","MINIMUM_WIDTH","moveRight","DockviewFloatingGroupPanel","overlay","PopoutWindow","_onDidClose","onDidClose","_window","dimensions","screenX","screenY","innerWidth","innerHeight","open","url","features","entries","join","externalWindow","cleanUp","externalDocument","div","replaceChildren","styleSheetList","styleSheets","styleSheet","href","link","rel","head","cssTexts","cssRules","rule","cssText","err","createTextNode","addStyles","DockviewPopoutGroupPanel","popoutUrl","DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE","DEFAULT_FLOATING_GROUP_POSITION","OverlayRenderContainer","destroy","createFocusableElement","focusContainer","box2","visibilityChanged","DEFAULT_ROOT_OVERLAY_MODEL","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","flatMap","_options","defaultRenderer","nextGroupId","_deserializer","_onWillDragPanel","_onWillDragGroup","_onDidLayoutFromJSON","_floatingGroups","_popoutGroups","gready","debug","updateWatermark","watermarkComponent","watermarkFrameworkComponent","_rootDropTarget","Edge","rootOverlayModel","orthogonalize","createGroup","removeEmptyGroup","skipRemoveGroup","theme","toClassList","list","cls","startsWith","getTheme","popoutWindow","overlayLeft","overlayTop","floatingGroupBounds","minimumWidthWithinViewport","_f","_e","minimumHeightWithinViewport","querySelector","floatingGroupPanel","createGroupAtLocation","updateOptions","changed_orientation","changed_floatingGroupBounds","changed_rootOverlayOptions","floating","includePanel","doSetGroupAndPanelActive","collection","floats","popoutGroups","grid","floatingGroups","isArray","createGroupFromSerializedState","createdPanels","serializedFloatingGroups","serializedFloatingGroup","serializedPopoutGroups","serializedPopoutGroup","floatingGroup","hasActiveGroup","hasActivePanel","findGroup","createPanel","o","relativeLocation","watermarkContainer","selectedGroup","destinationGroup","sourceGroupId","sourceItemId","destinationTarget","destinationIndex","sourceGroup","referenceLocation","targetLocation","targetParentLocation","sourceLocation","sourceParentLocation","targetGroup","updatedReferenceLocation","groupItem","dropLocation","moveGroup","selectedFloatingGroup","selectedPopoutGroup","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","removedPanel","reference","paneview","_paneview","_viewDisposables","frameworkWrapper","headerComponents","headerframeworkComponents","serializedPaneview","_splitview","_splitviewChangeDisposable","v","doAddView","serializedSplitview","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dockview-core.amd.min.noStyle.js","sources":["../src/dnd/dataTransfer.ts","../src/events.ts","../src/lifecycle.ts","../src/panel/componentFactory.ts","../src/dom.ts","../src/array.ts","../src/math.ts","../src/splitview/viewItem.ts","../src/splitview/splitview.ts","../src/paneview/paneview.ts","../src/gridview/leafNode.ts","../src/gridview/branchNode.ts","../src/gridview/gridview.ts","../src/api/component.api.ts","../src/dnd/dnd.ts","../src/dnd/droptarget.ts","../src/dockview/components/panel/content.ts","../src/dnd/abstractDragHandler.ts","../src/dockview/components/tab/tab.ts","../src/dnd/groupDragHandler.ts","../src/dnd/ghost.ts","../src/dockview/components/titlebar/voidContainer.ts","../src/dockview/components/titlebar/tabsContainer.ts","../src/dockview/dockviewGroupPanelModel.ts","../src/resizable.ts","../src/gridview/baseComponentGridview.ts","../src/api/panelApi.ts","../src/api/splitviewPanelApi.ts","../src/api/paneviewPanelApi.ts","../src/gridview/basePanelView.ts","../src/paneview/paneviewPanel.ts","../src/paneview/draggablePaneviewPanel.ts","../src/api/gridviewPanelApi.ts","../src/gridview/gridviewPanel.ts","../src/api/dockviewGroupPanelApi.ts","../src/dockview/dockviewGroupPanel.ts","../src/dockview/options.ts","../src/api/dockviewPanelApi.ts","../src/dockview/dockviewPanel.ts","../src/svg.ts","../src/dockview/components/tab/defaultTab.ts","../src/dockview/dockviewPanelModel.ts","../src/dockview/deserializer.ts","../src/dockview/components/watermark/watermark.ts","../src/dnd/overlay.ts","../src/dockview/dockviewFloatingGroupPanel.ts","../src/constants.ts","../src/overlayRenderContainer.ts","../../../node_modules/tslib/tslib.es6.js","../src/popoutWindow.ts","../src/dockview/dockviewComponent.ts","../src/paneview/defaultPaneviewHeader.ts","../src/paneview/paneviewComponent.ts","../src/gridview/gridviewComponent.ts","../src/splitview/splitviewComponent.ts","../src/splitview/splitviewPanel.ts"],"sourcesContent":["class TransferObject {\n}\nexport class PanelTransfer extends TransferObject {\n constructor(viewId, groupId, panelId) {\n super();\n this.viewId = viewId;\n this.groupId = groupId;\n this.panelId = panelId;\n }\n}\nexport class PaneTransfer extends TransferObject {\n constructor(viewId, paneId) {\n super();\n this.viewId = viewId;\n this.paneId = paneId;\n }\n}\n/**\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\n */\nexport class LocalSelectionTransfer {\n constructor() {\n // protect against external instantiation\n }\n static getInstance() {\n return LocalSelectionTransfer.INSTANCE;\n }\n hasData(proto) {\n return proto && proto === this.proto;\n }\n clearData(proto) {\n if (this.hasData(proto)) {\n this.proto = undefined;\n this.data = undefined;\n }\n }\n getData(proto) {\n if (this.hasData(proto)) {\n return this.data;\n }\n return undefined;\n }\n setData(data, proto) {\n if (proto) {\n this.data = data;\n this.proto = proto;\n }\n }\n}\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\nexport function getPanelData() {\n const panelTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return panelTransfer.getData(PanelTransfer.prototype)[0];\n}\nexport function getPaneData() {\n const paneTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return paneTransfer.getData(PaneTransfer.prototype)[0];\n}\n","export var Event;\n(function (Event) {\n Event.any = (...children) => {\n return (listener) => {\n const disposables = children.map((child) => child(listener));\n return {\n dispose: () => {\n disposables.forEach((d) => {\n d.dispose();\n });\n },\n };\n };\n };\n})(Event || (Event = {}));\nexport class DockviewEvent {\n constructor() {\n this._defaultPrevented = false;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n preventDefault() {\n this._defaultPrevented = true;\n }\n}\nclass LeakageMonitor {\n constructor() {\n this.events = new Map();\n }\n get size() {\n return this.events.size;\n }\n add(event, stacktrace) {\n this.events.set(event, stacktrace);\n }\n delete(event) {\n this.events.delete(event);\n }\n clear() {\n this.events.clear();\n }\n}\nclass Stacktrace {\n static create() {\n var _a;\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\n }\n constructor(value) {\n this.value = value;\n }\n print() {\n console.warn(this.value);\n }\n}\nclass Listener {\n constructor(callback, stacktrace) {\n this.callback = callback;\n this.stacktrace = stacktrace;\n }\n}\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\nexport class Emitter {\n static setLeakageMonitorEnabled(isEnabled) {\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.clear();\n }\n Emitter.ENABLE_TRACKING = isEnabled;\n }\n get value() {\n return this._last;\n }\n constructor(options) {\n this.options = options;\n this._listeners = [];\n this._disposed = false;\n }\n get event() {\n if (!this._event) {\n this._event = (callback) => {\n var _a;\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\n callback(this._last);\n }\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\n this._listeners.push(listener);\n return {\n dispose: () => {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n else if (Emitter.ENABLE_TRACKING) {\n // console.warn(\n // `Listener already disposed`,\n // Stacktrace.create().print()\n // );\n }\n },\n };\n };\n if (Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\n }\n }\n return this._event;\n }\n fire(e) {\n this._last = e;\n for (const listener of this._listeners) {\n listener.callback(e);\n }\n }\n dispose() {\n if (!this._disposed) {\n this._disposed = true;\n if (this._listeners.length > 0) {\n if (Emitter.ENABLE_TRACKING) {\n queueMicrotask(() => {\n var _a;\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\n for (const listener of this._listeners) {\n console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\n }\n });\n }\n this._listeners = [];\n }\n if (Emitter.ENABLE_TRACKING && this._event) {\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\n }\n }\n }\n}\nEmitter.ENABLE_TRACKING = false;\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\nexport function addDisposableWindowListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport function addDisposableListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport class TickDelayedEvent {\n constructor() {\n this._onFired = new Emitter();\n this.onEvent = this._onFired.event;\n }\n fire() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this._onFired.fire();\n clearTimeout(this.timer);\n });\n }\n dispose() {\n this._onFired.dispose();\n }\n}\n","export 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","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 setViewVisible(index, visible) {\n this.splitview.setViewVisible(index, visible);\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 * Invoked before an overlay is shown indicating a drop target.\n *\n * Calling `event.preventDefault()` will prevent the overlay being shown and prevent\n * the any subsequent drop event.\n */\n get onWillShowOverlay() {\n return this.component.onWillShowOverlay;\n }\n /**\n * Invoked before a group is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.\n *\n */\n get onWillDragGroup() {\n return this.component.onWillDragGroup;\n }\n /**\n * Invoked before a panel is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.\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, 'content');\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, 'header_space');\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 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._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._onWillVisibilityChange = new Emitter();\n this.onWillVisibilityChange = this._onWillVisibilityChange.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.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._onWillVisibilityChange, this._onUpdateParameters);\n }\n initialize(panel) {\n this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {\n panel.update({\n params: parameters,\n });\n });\n }\n setVisible(isVisible) {\n this._onWillVisibilityChange.fire({ isVisible });\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.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), 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.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\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 oldGroup = this._group;\n if (this._group !== value) {\n this._group = value;\n this._onDidGroupChange.fire({});\n this.setupGroupEventListeners(oldGroup);\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.setupGroupEventListeners();\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 setupGroupEventListeners(previousGroup) {\n var _a;\n let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state\n this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {\n if (!event.isVisible && this.isVisible) {\n this._onDidVisibilityChange.fire(event);\n }\n else if (event.isVisible &&\n !this.isVisible &&\n this.group.model.isPanelActive(this.panel)) {\n this._onDidVisibilityChange.fire(event);\n }\n }), 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 }\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, WillShowOverlayLocationEvent, } 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, this._rootDropTarget.onWillShowOverlay((event) => {\n if (this.gridview.length > 0 && event.position === 'center') {\n // option only available when no panels in primary grid\n return;\n }\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'edge',\n }));\n }), 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: 'edge',\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.setVisible(false);\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.setVisible(false);\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.isVisible) {\n referenceGroup.api.setVisible(true);\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.isVisible).length === 0) {\n if (!this.watermark) {\n this.watermark = this.createWatermarkComponent();\n this.watermark.init({\n containerApi: new DockviewApi(this),\n });\n const watermarkContainer = document.createElement('div');\n watermarkContainer.className = 'dv-watermark-container';\n watermarkContainer.appendChild(this.watermark.element);\n this.gridview.element.appendChild(watermarkContainer);\n }\n }\n else if (this.watermark) {\n this.watermark.element.parentElement.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = null;\n }\n }\n addGroup(options) {\n var _a;\n const group = this.createGroup(options);\n if (options) {\n let referenceGroup;\n if (isGroupOptionsWithPanel(options)) {\n const referencePanel = typeof options.referencePanel === 'string'\n ? this.panels.find((panel) => panel.id === options.referencePanel)\n : options.referencePanel;\n if (!referencePanel) {\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n if (!referenceGroup) {\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\n }\n }\n else if (isGroupOptionsWithGroup(options)) {\n referenceGroup =\n typeof options.referenceGroup === 'string'\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.direction));\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n const target = toTarget(options.direction || 'within');\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n this.doAddGroup(group, relativeLocation);\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n else {\n this.doAddGroup(group);\n this.doSetGroupAndPanelActive(group);\n return group;\n }\n }\n removeGroup(group, options) {\n this.doRemoveGroup(group, options);\n }\n doRemoveGroup(group, options) {\n var _a;\n const panels = [...group.panels]; // reassign since group panels will mutate\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n for (const panel of panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\n });\n }\n }\n const activePanel = this.activePanel;\n if (group.api.location.type === 'floating') {\n const floatingGroup = this._floatingGroups.find((_) => _.group === group);\n if (floatingGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n floatingGroup.group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n remove(this._floatingGroups, floatingGroup);\n floatingGroup.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return floatingGroup.group;\n }\n throw new Error('failed to find floating group');\n }\n if (group.api.location.type === 'popout') {\n const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);\n if (selectedGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {\n const refGroup = selectedGroup.referenceGroup\n ? this.getPanel(selectedGroup.referenceGroup)\n : undefined;\n if (refGroup) {\n this.removeGroup(refGroup);\n }\n }\n selectedGroup.popoutGroup.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n const removedGroup = selectedGroup.disposable.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {\n this.doAddGroup(removedGroup, [0]);\n this.doSetGroupAndPanelActive(removedGroup);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n this.updateWatermark();\n return selectedGroup.popoutGroup;\n }\n throw new Error('failed to find popout group');\n }\n const re = super.doRemoveGroup(group, options);\n if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {\n if (this.activePanel !== activePanel) {\n this._onDidActivePanelChange.fire(this.activePanel);\n }\n }\n return re;\n }\n movingLock(func) {\n const isMoving = this._moving;\n try {\n this._moving = true;\n return func();\n }\n finally {\n this._moving = isMoving;\n }\n }\n moveGroupOrPanel(options) {\n var _a;\n const destinationGroup = options.to.group;\n const sourceGroupId = options.from.groupId;\n const sourceItemId = options.from.panelId;\n const destinationTarget = options.to.position;\n const destinationIndex = options.to.index;\n const sourceGroup = sourceGroupId\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\n : undefined;\n if (!sourceGroup) {\n throw new Error(`Failed to find group id ${sourceGroupId}`);\n }\n if (sourceItemId === undefined) {\n /**\n * Moving an entire group into another group\n */\n this.moveGroup({\n from: { group: sourceGroup },\n to: {\n group: destinationGroup,\n position: destinationTarget,\n },\n });\n return;\n }\n if (!destinationTarget || destinationTarget === 'center') {\n /**\n * Dropping a panel within another group\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n if (sourceGroup.model.size === 0) {\n // remove the group and do not set a new group as active\n this.doRemoveGroup(sourceGroup, { skipActive: true });\n }\n this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {\n index: destinationIndex,\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(destinationGroup);\n this._onDidMovePanel.fire({\n panel: removedPanel,\n });\n }\n else {\n /**\n * Dropping a panel to the extremities of a group which will place that panel\n * into an adjacent group\n */\n const referenceLocation = getGridLocation(destinationGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n if (sourceGroup.size < 2) {\n /**\n * If we are moving from a group which only has one panel left we will consider\n * moving the group itself rather than moving the panel into a newly created group\n */\n const [targetParentLocation, to] = tail(targetLocation);\n if (sourceGroup.api.location.type === 'grid') {\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n }\n // source group will become empty so delete the group\n const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n }));\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\n this.movingLock(() => this.doAddGroup(targetGroup, location));\n this.doSetGroupAndPanelActive(targetGroup);\n }\n else {\n /**\n * The group we are removing from has many panels, we need to remove the panels we are moving,\n * create a new group, add the panels to that new group and add the new group in an appropiate position\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n const group = this.createGroupAtLocation(dropLocation);\n this.movingLock(() => group.model.openPanel(removedPanel, {\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(group);\n }\n }\n }\n moveGroup(options) {\n const from = options.from.group;\n const to = options.to.group;\n const target = options.to.position;\n if (target === 'center') {\n const activePanel = from.activePanel;\n const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {\n skipSetActive: true,\n })));\n if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {\n this.doRemoveGroup(from, { skipActive: true });\n }\n this.movingLock(() => {\n for (const panel of panels) {\n to.model.openPanel(panel, {\n skipSetActive: panel !== activePanel,\n skipSetGroupActive: true,\n });\n }\n });\n this.doSetGroupAndPanelActive(to);\n panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n else {\n switch (from.api.location.type) {\n case 'grid':\n this.gridview.removeView(getGridLocation(from.element));\n break;\n case 'floating': {\n const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);\n if (!selectedFloatingGroup) {\n throw new Error('failed to find floating group');\n }\n selectedFloatingGroup.dispose();\n break;\n }\n case 'popout': {\n const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);\n if (!selectedPopoutGroup) {\n throw new Error('failed to find popout group');\n }\n selectedPopoutGroup.disposable.dispose();\n }\n }\n const referenceLocation = getGridLocation(to.element);\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n this.gridview.addView(from, Sizing.Distribute, dropLocation);\n from.panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n }\n doSetGroupActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n doSetGroupAndPanelActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (group &&\n this.hasMaximizedGroup() &&\n !this.isMaximizedGroup(group)) {\n this.exitMaximizedGroup();\n }\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n getNextGroupId() {\n let id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n return id;\n }\n createGroup(options) {\n if (!options) {\n options = {};\n }\n let id = options === null || options === void 0 ? void 0 : options.id;\n if (id && this._groups.has(options.id)) {\n console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\n id = undefined;\n }\n if (!id) {\n id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n }\n const view = new DockviewGroupPanel(this, id, options);\n view.init({ params: {}, accessor: this });\n if (!this._groups.has(view.id)) {\n const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {\n this._onWillDragPanel.fire(event);\n }), view.model.onGroupDragStart((event) => {\n this._onWillDragGroup.fire(event);\n }), view.model.onMove((event) => {\n const { groupId, itemId, target, index } = event;\n this.moveGroupOrPanel({\n from: { groupId: groupId, panelId: itemId },\n to: {\n group: view,\n position: target,\n index,\n },\n });\n }), view.model.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n }), view.model.onWillDrop((event) => {\n this._onWillDrop.fire(event);\n }), view.model.onWillShowOverlay((event) => {\n if (this.options.disableDnd) {\n event.preventDefault();\n return;\n }\n this._onWillShowOverlay.fire(event);\n }), view.model.onDidAddPanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidAddPanel.fire(event.panel);\n }), view.model.onDidRemovePanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidRemovePanel.fire(event.panel);\n }), view.model.onDidActivePanelChange((event) => {\n if (this._moving) {\n return;\n }\n if (event.panel !== this.activePanel) {\n return;\n }\n if (this._onDidActivePanelChange.value !== event.panel) {\n this._onDidActivePanelChange.fire(event.panel);\n }\n }));\n this._groups.set(view.id, { value: view, disposable });\n }\n // TODO: must be called after the above listeners have been setup, not an ideal pattern\n view.initialize();\n return view;\n }\n createPanel(options, group) {\n var _a, _b, _c;\n const contentComponent = options.component;\n const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\n const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });\n panel.init({\n title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,\n params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},\n });\n return panel;\n }\n createGroupAtLocation(location = [0]) {\n const group = this.createGroup();\n this.doAddGroup(group, location);\n return group;\n }\n findGroup(panel) {\n var _a;\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { toggleClass } from '../dom';\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\nexport class DefaultHeader extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._expandedIcon = createExpandMoreButton();\n this._collapsedIcon = createChevronRightButton();\n this.disposable = new MutableDisposable();\n this.apiRef = { api: null };\n this._element = document.createElement('div');\n this.element.className = 'default-header';\n this._content = document.createElement('span');\n this._expander = document.createElement('div');\n this._expander.className = 'dockview-pane-header-icon';\n this.element.appendChild(this._expander);\n this.element.appendChild(this._content);\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\n var _a;\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\n }));\n }\n init(params) {\n this.apiRef.api = params.api;\n this._content.textContent = params.title;\n this.updateIcon();\n this.disposable.value = params.api.onDidExpansionChange(() => {\n this.updateIcon();\n });\n }\n updateIcon() {\n var _a;\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\n toggleClass(this._expander, 'collapsed', !isExpanded);\n if (isExpanded) {\n if (this._expander.contains(this._collapsedIcon)) {\n this._collapsedIcon.remove();\n }\n if (!this._expander.contains(this._expandedIcon)) {\n this._expander.appendChild(this._expandedIcon);\n }\n }\n else {\n if (this._expander.contains(this._expandedIcon)) {\n this._expandedIcon.remove();\n }\n if (!this._expander.contains(this._collapsedIcon)) {\n this._expander.appendChild(this._collapsedIcon);\n }\n }\n }\n update(_params) {\n //\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { Paneview } from './paneview';\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\nimport { DefaultHeader } from './defaultPaneviewHeader';\nimport { sequentialNumberGenerator } from '../math';\nimport { Resizable } from '../resizable';\nconst nextLayoutId = sequentialNumberGenerator();\nexport class PaneFramework extends DraggablePaneviewPanel {\n constructor(options) {\n super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);\n this.options = options;\n }\n getBodyComponent() {\n return this.options.body;\n }\n getHeaderComponent() {\n return this.options.header;\n }\n}\nexport class PaneviewComponent extends Resizable {\n get id() {\n return this._id;\n }\n get panels() {\n return this.paneview.getPanes();\n }\n set paneview(value) {\n this._paneview = value;\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get paneview() {\n return this._paneview;\n }\n get minimumSize() {\n return this.paneview.minimumSize;\n }\n get maximumSize() {\n return this.paneview.maximumSize;\n }\n get height() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.orthogonalSize\n : this.paneview.size;\n }\n get width() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.size\n : this.paneview.orthogonalSize;\n }\n get options() {\n return this._options;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._disposable = new MutableDisposable();\n this._viewDisposables = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.paneview = new Paneview(this.element, {\n // only allow paneview in the vertical orientation for now\n orientation: Orientation.VERTICAL,\n });\n this.addDisposables(this._disposable);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.paneview.setViewVisible(index, visible);\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 accessor: 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 accessor: this,\n });\n panel.orientation = this.paneview.orientation;\n });\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n doAddPanel(panel) {\n const disposable = panel.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n });\n this._viewDisposables.set(panel.id, disposable);\n }\n doRemovePanel(panel) {\n const disposable = this._viewDisposables.get(panel.id);\n if (disposable) {\n disposable.dispose();\n this._viewDisposables.delete(panel.id);\n }\n }\n dispose() {\n super.dispose();\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n}\n","import { getRelativeLocation, getGridLocation, } from './gridview';\nimport { tail, sequenceEquals } from '../array';\nimport { CompositeDisposable } from '../lifecycle';\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nexport class GridviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n set orientation(value) {\n this.gridview.orientation = value;\n }\n get options() {\n return this._options;\n }\n get deserializer() {\n return this._deserializer;\n }\n set deserializer(value) {\n this._deserializer = value;\n }\n constructor(options) {\n super({\n parentElement: options.parentElement,\n proportionalLayout: options.proportionalLayout,\n orientation: options.orientation,\n styles: options.styles,\n disableAutoResizing: options.disableAutoResizing,\n });\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._options = options;\n this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {\n this._onDidAddGroup.fire(event);\n }), this.onDidRemove((event) => {\n this._onDidRemoveGroup.fire(event);\n }), this.onDidActiveChange((event) => {\n this._onDidActiveGroupChange.fire(event);\n }));\n if (!this.options.components) {\n this.options.components = {};\n }\n if (!this.options.frameworkComponents) {\n this.options.frameworkComponents = {};\n }\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.gridview.orientation = options.orientation;\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n removePanel(panel) {\n this.removeGroup(panel);\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n return {\n grid: data,\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n }\n setActive(panel) {\n this._groups.forEach((value, _key) => {\n value.value.setActive(panel === value.value);\n });\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n fromJSON(serializedGridview) {\n this.clear();\n const { grid, activePanel } = serializedGridview;\n try {\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n var _a, _b;\n const { data } = node;\n const view = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n queue.push(() => view.init({\n params: data.params,\n minimumWidth: data.minimumWidth,\n maximumWidth: data.maximumWidth,\n minimumHeight: data.minimumHeight,\n maximumHeight: data.maximumHeight,\n priority: data.priority,\n snap: !!data.snap,\n accessor: this,\n isVisible: node.visible,\n }));\n this._onDidAddGroup.fire(view);\n this.registerPanel(view);\n return view;\n },\n });\n this.layout(width, height, true);\n queue.forEach((f) => f());\n if (typeof activePanel === 'string') {\n const panel = this.getPanel(activePanel);\n if (panel) {\n this.doSetGroupActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n const hasActiveGroup = this.activeGroup;\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\n for (const group of groups) {\n group.disposable.dispose();\n this.doRemoveGroup(group.value, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupActive(undefined);\n }\n this.gridview.clear();\n }\n movePanel(panel, options) {\n var _a;\n let relativeLocation;\n const removedPanel = this.gridview.remove(panel);\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.reference} does not exist`);\n }\n const target = toTarget(options.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n this.doAddGroup(removedPanel, relativeLocation, options.size);\n }\n addPanel(options) {\n var _a, _b, _c, _d, _e, _f;\n let relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];\n if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {\n const referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\n }\n const target = toTarget(options.position.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n }\n const view = createComponent(options.id, options.component, (_d = this.options.components) !== null && _d !== void 0 ? _d : {}, (_e = this.options.frameworkComponents) !== null && _e !== void 0 ? _e : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n view.init({\n params: (_f = options.params) !== null && _f !== void 0 ? _f : {},\n minimumWidth: options.minimumWidth,\n maximumWidth: options.maximumWidth,\n minimumHeight: options.minimumHeight,\n maximumHeight: options.maximumHeight,\n priority: options.priority,\n snap: !!options.snap,\n accessor: this,\n isVisible: true,\n });\n this.registerPanel(view);\n this.doAddGroup(view, relativeLocation, options.size);\n this.doSetGroupActive(view);\n return view;\n }\n registerPanel(panel) {\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this._groups.forEach((groupItem) => {\n const group = groupItem.value;\n if (group !== panel) {\n group.setActive(false);\n }\n else {\n group.setActive(true);\n }\n });\n }));\n this._groups.set(panel.id, {\n value: panel,\n disposable,\n });\n }\n moveGroup(referenceGroup, groupId, target) {\n const sourceGroup = this.getPanel(groupId);\n if (!sourceGroup) {\n throw new Error('invalid operation');\n }\n const referenceLocation = getGridLocation(referenceGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n const [targetParentLocation, to] = tail(targetLocation);\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n // source group will become empty so delete the group\n const targetGroup = this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n });\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\n this.doAddGroup(targetGroup, location);\n }\n removeGroup(group) {\n super.removeGroup(group);\n }\n dispose() {\n super.dispose();\n this._onDidLayoutfromJSON.dispose();\n }\n}\n","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing, Splitview, } from './splitview';\nimport { Emitter } from '../events';\nimport { createComponent } from '../panel/componentFactory';\nimport { Resizable } from '../resizable';\n/**\n * A high-level implementation of splitview that works using 'panels'\n */\nexport class SplitviewComponent extends Resizable {\n get panels() {\n return this.splitview.getViews();\n }\n get options() {\n return this._options;\n }\n get length() {\n return this._panels.size;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get splitview() {\n return this._splitview;\n }\n set splitview(value) {\n this._splitview = value;\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get height() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.orthogonalSize\n : this.splitview.size;\n }\n get width() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.size\n : this.splitview.orthogonalSize;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._splitviewChangeDisposable = new MutableDisposable();\n this._panels = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.splitview = new Splitview(this.element, options);\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.options.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.splitview.orientation = options.orientation;\n }\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n movePanel(from, to) {\n this.splitview.moveView(from, to);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.splitview.setViewVisible(index, visible);\n }\n setActive(panel, skipFocus) {\n this._activePanel = panel;\n this.panels\n .filter((v) => v !== panel)\n .forEach((v) => {\n v.api._onDidActiveChange.fire({ isActive: false });\n if (!skipFocus) {\n v.focus();\n }\n });\n panel.api._onDidActiveChange.fire({ isActive: true });\n if (!skipFocus) {\n panel.focus();\n }\n }\n removePanel(panel, sizing) {\n const item = this._panels.get(panel.id);\n if (!item) {\n throw new Error(`unknown splitview panel ${panel.id}`);\n }\n item.dispose();\n this._panels.delete(panel.id);\n const index = this.panels.findIndex((_) => _ === panel);\n const removedView = this.splitview.removeView(index, sizing);\n removedView.dispose();\n const panels = this.panels;\n if (panels.length > 0) {\n this.setActive(panels[panels.length - 1]);\n }\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n addPanel(options) {\n var _a, _b, _c;\n if (this._panels.has(options.id)) {\n throw new Error(`panel ${options.id} already exists`);\n }\n const view = createComponent(options.id, options.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.createComponent,\n }\n : undefined);\n view.orientation = this.splitview.orientation;\n view.init({\n params: (_c = options.params) !== null && _c !== void 0 ? _c : {},\n minimumSize: options.minimumSize,\n maximumSize: options.maximumSize,\n snap: options.snap,\n priority: options.priority,\n accessor: this,\n });\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n this.splitview.addView(view, size, index);\n this.doAddView(view);\n this.setActive(view);\n return view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.splitview.layout(size, orthogonalSize);\n }\n doAddView(view) {\n const disposable = view.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this.setActive(view, true);\n });\n this._panels.set(view.id, disposable);\n }\n toJSON() {\n var _a;\n const views = this.splitview\n .getViews()\n .map((view, i) => {\n const size = this.splitview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n snap: !!view.snap,\n priority: view.priority,\n };\n });\n return {\n views,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n size: this.splitview.size,\n orientation: this.splitview.orientation,\n };\n }\n fromJSON(serializedSplitview) {\n this.clear();\n const { views, orientation, size, activeView } = serializedSplitview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.splitview = new Splitview(this.element, {\n orientation,\n proportionalLayout: this.options.proportionalLayout,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b;\n const data = view.data;\n if (this._panels.has(data.id)) {\n throw new Error(`panel ${data.id} already exists`);\n }\n const panel = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper\n .createComponent,\n }\n : undefined);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumSize: data.minimumSize,\n maximumSize: data.maximumSize,\n snap: view.snap,\n priority: view.priority,\n accessor: this,\n });\n });\n panel.orientation = orientation;\n this.doAddView(panel);\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n if (typeof activeView === 'string') {\n const panel = this.getPanel(activeView);\n if (panel) {\n this.setActive(panel);\n }\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n while (this.splitview.length > 0) {\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\n view.dispose();\n }\n }\n dispose() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n const views = this.splitview.getViews();\n this._splitviewChangeDisposable.dispose();\n this.splitview.dispose();\n for (const view of views) {\n view.dispose();\n }\n super.dispose();\n }\n}\n","import { BasePanelView, } from '../gridview/basePanelView';\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\nimport { Orientation } from './splitview';\nimport { Emitter } from '../events';\nexport class SplitviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const size = typeof this._minimumSize === 'function'\n ? this._minimumSize()\n : this._minimumSize;\n if (size !== this._evaluatedMinimumSize) {\n this._evaluatedMinimumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get maximumSize() {\n const size = typeof this._maximumSize === 'function'\n ? this._maximumSize()\n : this._maximumSize;\n if (size !== this._evaluatedMaximumSize) {\n this._evaluatedMaximumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get snap() {\n return this._snap;\n }\n constructor(id, componentName) {\n super(id, componentName, new SplitviewPanelApiImpl(id));\n this._evaluatedMinimumSize = 0;\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\n this._minimumSize = 0;\n this._maximumSize = Number.POSITIVE_INFINITY;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.api.initialize(this);\n this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\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":["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","Disposable","exports","DockviewEvent","Event","any","children","listener","disposables","map","child","dispose","forEach","d","_defaultPrevented","defaultPrevented","preventDefault","Stacktrace","create","_a","Error","stack","value","print","console","warn","Listener","callback","stacktrace","Emitter","setLeakageMonitorEnabled","isEnabled","ENABLE_TRACKING","MEMORY_LEAK_WATCHER","clear","_last","options","_listeners","_disposed","event","_event","replay","push","index","indexOf","splice","add","fire","e","length","queueMicrotask","delete","addDisposableWindowListener","element","type","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","getElementsByTagName","tag","Array","slice","call","document","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","style","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","appendChild","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","createElement","viewSize","newSize","removeChild","insertBefore","sash","onPointerStart","iframes","iframe","start","clientX","clientY","sashIndex","fn","firstIndex","s","snapBeforeIndex","findFirstSnapIndex","snapAfterIndex","snappedViewItem","halfSize","floor","onPointerMove","end","sashItem","distributeViewSizes","flexibleViewItems","flexibleSize","removeView","getViewCachedVisibleSize","moveView","layout","previousSize","total","proportion","lowPriorityIndex","emptyDelta","sum","offset","VERTICAL","previous","collapsesDown","expandsDown","reverseViews","reverse","collapsesUp","expandsUp","position","snappedBefore","snappedAfter","updateSash","MINIMUM","MAXIMUM","DISABLED","ENABLED","state","orientationClassname","Paneview","splitview","paneItems","skipAnimation","_onDidChange","getPanes","pane","onDidChangeExpansionState","setupAnimation","paneItem","addPane","removePane","skipDispose","animationTimer","LeafNode","minimumWidth","maximumWidth","minimumHeight","maximumHeight","minimumOrthogonalSize","maximumOrthogonalSize","BranchNode","c","Normal","priorities","some","p","childDescriptors","_childrenDisposable","_onDidVisibilityChange","onDidVisibilityChange","childDescriptor","node","setupChildrenEvents","isChildVisible","setChildVisible","wereAllChildrenHidden","areAllChildrenHidden","moveChild","_removeChild","_addChild","getChildSize","resizeChild","addChild","getChildCachedVisibleSize","findLeaf","candiateNode","last","flipNode","orthogonal","totalSize","childSize","indexInParent","parentElement","el","firstElementChild","lastElementChild","nextElementSibling","getGridLocation","test","getRelativeLocation","rootOrientation","location","direction","getLocationOrientation","getDirectionOrientation","rest","_index","isGridBranchNode","serializeBranchNode","box","toJSON","Gridview","_root","root","locked","_locked","branch","pop","maximizedView","_maximizedNode","leaf","hasMaximizedView","maximizeView","getNode","exitMaximizedView","hiddenOnMaximize","hideAllViewsBut","parent","exclude","_onDidMaximizedNodeChange","showViewsInReverseOrder","includes","serialize","getView","deserialize","json","deserializer","_deserialize","_deserializeNode","serializedChild","fromJSON","oldRoot","insertOrthogonalSplitviewAtRoot","childReference","progmaticSelect","_getViews","nodeCachedVisibleSize","path","n","l","onDidMaximizedNodeChange","parentLocation","pathToParent","grandParent","parentIndex","__","newSiblingSize","newSiblingCachedVisibleSize","newParent","newSibling","nodeToRemove","sibling","isSiblingVisible","siblingSizing","PaneviewApi","component","panels","onDidLayoutChange","onDidLayoutFromJSON","onDidDrop","emitter","Object","assign","api","removePanel","panel","getPanel","movePanel","focus","addPanel","DockviewApi","totalPanels","onDidActiveGroupChange","onDidAddGroup","onDidRemoveGroup","onDidActivePanelChange","onDidAddPanel","onDidRemovePanel","onWillDrop","onWillShowOverlay","onWillDragGroup","onWillDragPanel","groups","activePanel","activeGroup","getGroupPanel","force","addGroup","closeAllGroups","removeGroup","group","getGroup","addFloatingGroup","coord","moveToNext","moveToPrevious","maximizeGroup","hasMaximizedGroup","exitMaximizedGroup","onDidMaximizedGroupChange","addPopoutGroup","DragAndDropObserver","callbacks","target","registerListeners","onDragEnter","onDragOver","onDragLeave","onDragEnd","onDrop","WillShowOverlayEvent","nativeEvent","directionToPosition","positionToDirection","DEFAULT_ACTIVATION_SIZE","DEFAULT_SIZE","Droptarget","_state","_onDrop","_onWillShowOverlay","_acceptedTargetZonesSet","Set","acceptedTargetZones","dnd","removeDropTarget","clientWidth","clientHeight","rect","currentTarget","y","quadrant","calculateQuadrant","isAlreadyUsed","willShowOverlayEvent","canDisplayOverlay","markAsUsed","targetElement","overlayElement","append","toggleClasses","stopPropagation","setTargetZones","setOverlayModel","model","overlayModel","USED_EVENT_ID","_b","isSmallX","isSmallY","isLeft","isRight","isTop","isBottom","rightClass","leftClass","topClass","bottomClass","sizeOptions","overlayType","activationSizeOptions","activationSize","threshold","xp","yp","has","calculateQuadrantAsPercentage","calculateQuadrantAsPixels","ContentContainer","_element","accessor","tabIndex","dropTarget","shiftKey","show","display","hide","renderPanel","asActive","doRender","isPanelActive","content","renderer","renderContainer","detatch","attach","referenceContainer","focusTracker","openPanel","_width","_height","closePanel","DragHandler","dataDisposable","pointerEventsDisposable","_onDragStart","onDragStart","configure","isCancelled","dataTransfer","effectAllowed","items","TabDragHandler","Tab","_onChanged","onChanged","_onDropped","draggable","dragHandler","setActive","isActive","setContent","part","GroupDragHandler","dragEvent","getComputedStyle","bgColor","getPropertyValue","color","ghostElement","backgroundColor","padding","fontSize","lineHeight","borderRadius","textContent","body","setDragImage","addGhostImage","VoidContainer","doSetGroupActive","handler","dropTraget","TabsContainer","tabs","hidden","_hidden","setRightActionsElement","rightActions","rightActionsContainer","setLeftActionsElement","leftActions","leftActionsContainer","setPrefixActionsElement","preActions","preActionsContainer","tab","selectedIndex","_onTabDragStart","onTabDragStart","_onGroupDragStart","onGroupDragStart","singleTabMode","tabContainer","voidContainer","WillShowOverlayLocationEvent","kind","disableFloatingGroups","rootTop","rootLeft","inDragMode","button","_isGroupActive","addTab","tabToRemove","setActivePanel","isActivePanel","find","isFloatingGroupsEnabled","isFloatingWithOnePanel","DockviewDidDropEvent","DockviewWillDropEvent","_kind","DockviewGroupPanelModel","_activePanel","_panels","isEmpty","hasWatermark","watermark","header","tabsContainer","isContentFocused","contentContainer","_location","groupPanel","_onDidLocationChange","mostRecentlyUsed","_onMove","onMove","_onDidDrop","_onWillDrop","_onDidAddPanel","_onDidRemovePanel","_onDidActivePanelChange","_overwriteRenderContainer","_api","hideHeader","handleDropEvent","focusContent","rerender","overlayRenderContainer","initialize","doAddPanel","updateContainer","createRightHeaderActionsElement","_rightHeaderActions","init","containerApi","createLeftHeaderActionsElement","_leftHeaderActions","createPrefixHeaderActionsElement","_prefixHeaderActions","activeView","normalizedIndex","suppressRoll","containsPanel","_params","update","skipSetActive","updateParentGroup","doSetActivePanel","skipSetGroupActive","groupItemOrId","panelToRemove","_removePanel","closeAllPanels","arrPanelCpy","doClose","updateActions","isGroupActive","doRemovePanel","nextPanel","skipSetActiveGroup","hasExistingPanel","updateMru","runEvents","createWatermarkComponent","showDndOverlay","willDropEvent","getKind","itemId","_c","Resizable","disableResizing","_disableResizing","entry","offsetParent","currentElement","DocumentFragment","host","isInDocument","contentRect","nextLayoutId","toTarget","BaseGrid","_id","_groups","values","gridview","_activeGroup","disableAutoResizing","_onDidLayoutChange","_onDidRemove","onDidRemove","_onDidAdd","onDidAdd","_onDidActiveChange","onDidActiveChange","_bufferOnDidLayoutChange","isVisible","isMaximizedGroup","doAddGroup","doRemoveGroup","get","skipActive","forceResize","WillFocusEvent","PanelApiImpl","isFocused","_isFocused","_isActive","_isVisible","panelUpdatesDisposable","_onDidDimensionChange","onDidDimensionsChange","_onDidChangeFocus","onDidFocusChange","_onWillFocus","onWillFocus","_onWillVisibilityChange","onWillVisibilityChange","_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","close","getWindow","moveTo","moveGroupOrPanel","maximize","isMaximized","exitMaximized","DockviewGroupPanel","_model","isPanelOptionsWithPanel","referencePanel","isPanelOptionsWithGroup","referenceGroup","isGroupOptionsWithPanel","isGroupOptionsWithGroup","DockviewPanelApiImpl","oldGroup","_onDidGroupChange","setupGroupEventListeners","_onDidTitleChange","onDidTitleChange","_onDidActiveGroupChange","onDidGroupChange","_onDidRendererChange","onDidRendererChange","groupEventsDisposable","setTitle","setRenderer","previousGroup","_trackGroupActive","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","styleSheet","href","link","rel","head","cssTexts","cssRules","rule","cssText","err","createTextNode","addStyles","DEFAULT_ROOT_OVERLAY_MODEL","moveGroupWithoutDestroying","removedPanel","DefaultHeader","_expandedIcon","_collapsedIcon","apiRef","_expander","updateIcon","PaneFramework","flatMap","_options","defaultRenderer","nextGroupId","_deserializer","_onWillDragPanel","_onWillDragGroup","_onDidLayoutFromJSON","_onDidMovePanel","_floatingGroups","_popoutGroups","_ignoreEvents","_onDidRemoveGroup","_onDidAddGroup","_moving","gready","debug","updateWatermark","watermarkComponent","watermarkFrameworkComponent","_rootDropTarget","rootOverlayModel","orthogonalize","itemToPopout","theme","toClassList","list","cls","startsWith","getDockviewTheme","overridePopoutGroup","getNextGroupId","popoutUrl","popoutWindowDisposable","popoutContainer","referenceLocation","createGroup","movingLock","returnedGroup","doSetGroupAndPanelActive","popoutGroup","skipPopoutAssociated","removedGroup","catch","error","_e","_f","_g","removeEmptyGroup","popoutReferenceGroupId","popoutReferenceGroup","skipRemoveGroup","skipPopoutReturn","overlayLeft","overlayTop","floatingGroupBounds","minimumWidthWithinViewport","minimumHeightWithinViewport","querySelector","floatingGroupPanel","skipActiveGroup","createGroupAtLocation","updateOptions","changed_orientation","changed_floatingGroupBounds","changed_rootOverlayOptions","floating","includePanel","collection","floats","popoutGroups","gridReferenceGroup","grid","floatingGroups","isArray","createGroupFromSerializedState","createdPanels","serializedFloatingGroups","serializedFloatingGroup","serializedPopoutGroups","serializedPopoutGroup","floatingGroup","hasActiveGroup","findGroup","createPanel","o","relativeLocation","watermarkContainer","selectedGroup","refGroup","re","isMoving","destinationGroup","sourceGroupId","sourceItemId","destinationTarget","destinationIndex","sourceGroup","targetLocation","targetParentLocation","sourceLocation","sourceParentLocation","targetGroup","updatedReferenceLocation","dropLocation","moveGroup","selectedFloatingGroup","selectedPopoutGroup","_onDidLayoutfromJSON","hasOrientationChanged","_key","serializedGridview","queue","registerPanel","f","reference","groupItem","paneview","_paneview","_viewDisposables","frameworkWrapper","headerComponents","headerframeworkComponents","serializedPaneview","_splitview","_splitviewChangeDisposable","skipFocus","v","doAddView","serializedSplitview","_minimumSize","_evaluatedMinimumSize","_maximumSize","_evaluatedMaximumSize"],"mappings":"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","x_google_ignoreList":[48]}
|