dockview-core 7.0.4 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENCE.md +21 -0
- package/README.md +17 -86
- package/dist/cjs/api/component.api.d.ts +100 -9
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +45 -1
- package/dist/cjs/api/dockviewPanelApi.d.ts +21 -0
- package/dist/cjs/dismissableLayer.d.ts +57 -0
- package/dist/cjs/dnd/backend.d.ts +2 -2
- package/dist/cjs/dnd/dataTransfer.d.ts +1 -0
- package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +12 -0
- package/dist/cjs/dnd/droptarget.d.ts +94 -0
- package/dist/cjs/dnd/ghost.d.ts +1 -0
- package/dist/cjs/dnd/pointer/longPress.d.ts +2 -2
- package/dist/cjs/dnd/pointer/pointerDragController.d.ts +5 -2
- package/dist/cjs/dnd/pointer/pointerDragSource.d.ts +1 -1
- package/dist/cjs/dnd/pointer/pointerDropTarget.d.ts +30 -1
- package/dist/cjs/dnd/pointer/pointerGhost.d.ts +1 -1
- package/dist/cjs/dockview/accessibilityMessages.d.ts +6 -0
- package/dist/cjs/dockview/advancedDnDService.d.ts +31 -0
- package/dist/cjs/dockview/components/panel/content.d.ts +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -0
- package/dist/cjs/dockview/components/tab/tab.d.ts +2 -0
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +2 -2
- package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +73 -2
- package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +1 -1
- package/dist/cjs/dockview/components/titlebar/tabReorderController.d.ts +295 -0
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +120 -50
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +48 -0
- package/dist/cjs/dockview/dndCapabilities.d.ts +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +307 -19
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +76 -2
- package/dist/cjs/dockview/dockviewPanel.d.ts +12 -0
- package/dist/cjs/dockview/dockviewShell.d.ts +48 -24
- package/dist/cjs/dockview/edgeGroupService.d.ts +20 -0
- package/dist/cjs/dockview/events.d.ts +6 -0
- package/dist/cjs/dockview/liveRegionService.d.ts +18 -5
- package/dist/cjs/dockview/moduleContracts.d.ts +485 -14
- package/dist/cjs/dockview/modules.d.ts +101 -22
- package/dist/cjs/dockview/options.d.ts +336 -30
- package/dist/cjs/dockview/optionsModules.d.ts +73 -0
- package/dist/cjs/dockview/popoutWindowService.d.ts +15 -10
- package/dist/cjs/dockview/rootDropTargetService.d.ts +11 -0
- package/dist/cjs/dockview/tabGroup.d.ts +3 -0
- package/dist/cjs/dockview/tabGroupAccent.d.ts +1 -1
- package/dist/cjs/dockview/tabGroupChipsService.d.ts +10 -0
- package/dist/cjs/dockview/theme.d.ts +2 -2
- package/dist/cjs/dockview/types.d.ts +3 -0
- package/dist/cjs/dom.d.ts +9 -1
- package/dist/cjs/events.d.ts +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +2 -2
- package/dist/cjs/gridview/branchNode.d.ts +16 -0
- package/dist/cjs/gridview/gridview.d.ts +2 -0
- package/dist/cjs/index.d.ts +35 -29
- package/dist/cjs/lifecycle.d.ts +1 -0
- package/dist/cjs/overlay/overlay.d.ts +4 -2
- package/dist/cjs/overlay/overlayRenderContainer.d.ts +8 -0
- package/dist/cjs/paneview/paneview.d.ts +2 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +3 -0
- package/dist/cjs/paneview/paneviewPanel.d.ts +5 -0
- package/dist/cjs/scrollbar.d.ts +10 -0
- package/dist/cjs/splitview/viewItem.d.ts +10 -0
- package/dist/cjs/svg.d.ts +1 -0
- package/dist/cjs/types.d.ts +8 -0
- package/dist/dockview-core.js +18513 -19679
- package/dist/dockview-core.min.js +4138 -6
- package/dist/dockview-core.min.noStyle.js +6 -7
- package/dist/dockview-core.noStyle.js +18512 -19656
- package/dist/package/main.cjs.js +18123 -19267
- package/dist/package/main.cjs.min.js +6 -6
- package/dist/package/main.esm.min.mjs +6 -6
- package/dist/package/main.esm.mjs +18081 -19260
- package/package.json +81 -77
- package/dist/cjs/api/component.api.js +0 -1242
- package/dist/cjs/api/dockviewGroupPanelApi.js +0 -200
- package/dist/cjs/api/dockviewPanelApi.js +0 -172
- package/dist/cjs/api/entryPoints.js +0 -27
- package/dist/cjs/api/gridviewPanelApi.js +0 -45
- package/dist/cjs/api/panelApi.js +0 -133
- package/dist/cjs/api/paneviewPanelApi.js +0 -57
- package/dist/cjs/api/splitviewPanelApi.js +0 -47
- package/dist/cjs/array.js +0 -66
- package/dist/cjs/constants.js +0 -11
- package/dist/cjs/dnd/backend.js +0 -171
- package/dist/cjs/dnd/dataTransfer.js +0 -100
- package/dist/cjs/dnd/dnd.js +0 -74
- package/dist/cjs/dnd/dropOverlay.js +0 -197
- package/dist/cjs/dnd/dropTargetAnchorContainer.js +0 -104
- package/dist/cjs/dnd/droptarget.js +0 -362
- package/dist/cjs/dnd/ghost.js +0 -17
- package/dist/cjs/dnd/pointer/index.js +0 -13
- package/dist/cjs/dnd/pointer/longPress.js +0 -151
- package/dist/cjs/dnd/pointer/pointerDragController.js +0 -243
- package/dist/cjs/dnd/pointer/pointerDragSource.js +0 -197
- package/dist/cjs/dnd/pointer/pointerDropTarget.js +0 -198
- package/dist/cjs/dnd/pointer/pointerGhost.js +0 -44
- package/dist/cjs/dnd/pointer/types.js +0 -2
- package/dist/cjs/dockview/accessibilityMessages.js +0 -51
- package/dist/cjs/dockview/allModules.js +0 -25
- package/dist/cjs/dockview/components/panel/content.js +0 -213
- package/dist/cjs/dockview/components/popupService.js +0 -132
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -70
- package/dist/cjs/dockview/components/tab/tab.js +0 -281
- package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +0 -95
- package/dist/cjs/dockview/components/titlebar/groupDragSource.js +0 -218
- package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +0 -104
- package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +0 -477
- package/dist/cjs/dockview/components/titlebar/tabGroups.js +0 -854
- package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +0 -19
- package/dist/cjs/dockview/components/titlebar/tabs.js +0 -2016
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +0 -458
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -120
- package/dist/cjs/dockview/components/watermark/watermark.js +0 -40
- package/dist/cjs/dockview/deserializer.js +0 -39
- package/dist/cjs/dockview/dndCapabilities.js +0 -39
- package/dist/cjs/dockview/dockviewComponent.js +0 -3896
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -70
- package/dist/cjs/dockview/dockviewGroupPanel.js +0 -204
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1514
- package/dist/cjs/dockview/dockviewPanel.js +0 -265
- package/dist/cjs/dockview/dockviewPanelModel.js +0 -105
- package/dist/cjs/dockview/dockviewShell.js +0 -744
- package/dist/cjs/dockview/edgeGroupService.js +0 -128
- package/dist/cjs/dockview/events.js +0 -67
- package/dist/cjs/dockview/floatingGroupService.js +0 -231
- package/dist/cjs/dockview/framework.js +0 -2
- package/dist/cjs/dockview/headerActionsService.js +0 -149
- package/dist/cjs/dockview/liveRegionService.js +0 -185
- package/dist/cjs/dockview/moduleContracts.js +0 -2
- package/dist/cjs/dockview/modules.js +0 -304
- package/dist/cjs/dockview/options.js +0 -103
- package/dist/cjs/dockview/popoutWindowService.js +0 -261
- package/dist/cjs/dockview/rootDropTargetService.js +0 -87
- package/dist/cjs/dockview/strictEventsSequencing.js +0 -63
- package/dist/cjs/dockview/tabGroup.js +0 -219
- package/dist/cjs/dockview/tabGroupAccent.js +0 -126
- package/dist/cjs/dockview/theme.js +0 -139
- package/dist/cjs/dockview/types.js +0 -2
- package/dist/cjs/dockview/validate.js +0 -76
- package/dist/cjs/dockview/watermarkService.js +0 -61
- package/dist/cjs/dom.js +0 -543
- package/dist/cjs/events.js +0 -296
- package/dist/cjs/framwork.js +0 -2
- package/dist/cjs/gridview/baseComponentGridview.js +0 -330
- package/dist/cjs/gridview/basePanelView.js +0 -162
- package/dist/cjs/gridview/branchNode.js +0 -372
- package/dist/cjs/gridview/gridview.js +0 -776
- package/dist/cjs/gridview/gridviewComponent.js +0 -363
- package/dist/cjs/gridview/gridviewPanel.js +0 -249
- package/dist/cjs/gridview/leafNode.js +0 -169
- package/dist/cjs/gridview/options.js +0 -17
- package/dist/cjs/gridview/types.js +0 -2
- package/dist/cjs/index.js +0 -105
- package/dist/cjs/lifecycle.js +0 -80
- package/dist/cjs/math.js +0 -38
- package/dist/cjs/overlay/overlay.js +0 -602
- package/dist/cjs/overlay/overlayRenderContainer.js +0 -309
- package/dist/cjs/panel/types.js +0 -2
- package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -92
- package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -141
- package/dist/cjs/paneview/options.js +0 -44
- package/dist/cjs/paneview/paneview.js +0 -203
- package/dist/cjs/paneview/paneviewComponent.js +0 -430
- package/dist/cjs/paneview/paneviewPanel.js +0 -275
- package/dist/cjs/popoutWindow.js +0 -244
- package/dist/cjs/resizable.js +0 -97
- package/dist/cjs/scrollbar.js +0 -169
- package/dist/cjs/splitview/options.js +0 -19
- package/dist/cjs/splitview/splitview.js +0 -999
- package/dist/cjs/splitview/splitviewComponent.js +0 -401
- package/dist/cjs/splitview/splitviewPanel.js +0 -179
- package/dist/cjs/splitview/viewItem.js +0 -119
- package/dist/cjs/svg.js +0 -43
- package/dist/cjs/types.js +0 -2
- package/dist/dockview-core.min.js.map +0 -1
- package/dist/dockview-core.min.noStyle.js.map +0 -1
- package/dist/esm/api/component.api.d.ts +0 -640
- package/dist/esm/api/component.api.js +0 -887
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +0 -109
- package/dist/esm/api/dockviewGroupPanelApi.js +0 -155
- package/dist/esm/api/dockviewPanelApi.d.ts +0 -84
- package/dist/esm/api/dockviewPanelApi.js +0 -124
- package/dist/esm/api/entryPoints.d.ts +0 -9
- package/dist/esm/api/entryPoints.js +0 -21
- package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
- package/dist/esm/api/gridviewPanelApi.js +0 -23
- package/dist/esm/api/panelApi.d.ts +0 -100
- package/dist/esm/api/panelApi.js +0 -87
- package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
- package/dist/esm/api/paneviewPanelApi.js +0 -27
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
- package/dist/esm/api/splitviewPanelApi.js +0 -25
- package/dist/esm/array.d.ts +0 -13
- package/dist/esm/array.js +0 -57
- package/dist/esm/constants.d.ts +0 -8
- package/dist/esm/constants.js +0 -8
- package/dist/esm/dnd/backend.d.ts +0 -70
- package/dist/esm/dnd/backend.js +0 -148
- package/dist/esm/dnd/dataTransfer.d.ts +0 -31
- package/dist/esm/dnd/dataTransfer.js +0 -67
- package/dist/esm/dnd/dnd.d.ts +0 -32
- package/dist/esm/dnd/dnd.js +0 -51
- package/dist/esm/dnd/dropOverlay.d.ts +0 -20
- package/dist/esm/dnd/dropOverlay.js +0 -192
- package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +0 -16
- package/dist/esm/dnd/dropTargetAnchorContainer.js +0 -73
- package/dist/esm/dnd/droptarget.d.ts +0 -116
- package/dist/esm/dnd/droptarget.js +0 -316
- package/dist/esm/dnd/ghost.d.ts +0 -4
- package/dist/esm/dnd/ghost.js +0 -14
- package/dist/esm/dnd/pointer/index.d.ts +0 -11
- package/dist/esm/dnd/pointer/index.js +0 -5
- package/dist/esm/dnd/pointer/longPress.d.ts +0 -32
- package/dist/esm/dnd/pointer/longPress.js +0 -127
- package/dist/esm/dnd/pointer/pointerDragController.d.ts +0 -60
- package/dist/esm/dnd/pointer/pointerDragController.js +0 -193
- package/dist/esm/dnd/pointer/pointerDragSource.d.ts +0 -61
- package/dist/esm/dnd/pointer/pointerDragSource.js +0 -173
- package/dist/esm/dnd/pointer/pointerDropTarget.d.ts +0 -39
- package/dist/esm/dnd/pointer/pointerDropTarget.js +0 -168
- package/dist/esm/dnd/pointer/pointerGhost.d.ts +0 -30
- package/dist/esm/dnd/pointer/pointerGhost.js +0 -39
- package/dist/esm/dnd/pointer/types.d.ts +0 -16
- package/dist/esm/dnd/pointer/types.js +0 -1
- package/dist/esm/dockview/accessibilityMessages.d.ts +0 -32
- package/dist/esm/dockview/accessibilityMessages.js +0 -30
- package/dist/esm/dockview/allModules.d.ts +0 -8
- package/dist/esm/dockview/allModules.js +0 -22
- package/dist/esm/dockview/components/panel/content.d.ts +0 -54
- package/dist/esm/dockview/components/panel/content.js +0 -185
- package/dist/esm/dockview/components/popupService.d.ts +0 -21
- package/dist/esm/dockview/components/popupService.js +0 -108
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -12
- package/dist/esm/dockview/components/tab/defaultTab.js +0 -43
- package/dist/esm/dockview/components/tab/tab.d.ts +0 -44
- package/dist/esm/dockview/components/tab/tab.js +0 -242
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +0 -34
- package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +0 -65
- package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +0 -51
- package/dist/esm/dockview/components/titlebar/groupDragSource.js +0 -178
- package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +0 -37
- package/dist/esm/dockview/components/titlebar/tabGroupChip.js +0 -77
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +0 -72
- package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +0 -360
- package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +0 -107
- package/dist/esm/dockview/components/titlebar/tabGroups.js +0 -621
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +0 -8
- package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +0 -16
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +0 -167
- package/dist/esm/dockview/components/titlebar/tabs.js +0 -1653
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +0 -104
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +0 -359
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +0 -21
- package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -92
- package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -8
- package/dist/esm/dockview/components/watermark/watermark.js +0 -14
- package/dist/esm/dockview/deserializer.d.ts +0 -12
- package/dist/esm/dockview/deserializer.js +0 -34
- package/dist/esm/dockview/dndCapabilities.d.ts +0 -19
- package/dist/esm/dockview/dndCapabilities.js +0 -36
- package/dist/esm/dockview/dockviewComponent.d.ts +0 -626
- package/dist/esm/dockview/dockviewComponent.js +0 -3214
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -45
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -44
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +0 -35
- package/dist/esm/dockview/dockviewGroupPanel.js +0 -142
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +0 -358
- package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1180
- package/dist/esm/dockview/dockviewPanel.d.ts +0 -69
- package/dist/esm/dockview/dockviewPanel.js +0 -178
- package/dist/esm/dockview/dockviewPanelModel.d.ts +0 -37
- package/dist/esm/dockview/dockviewPanelModel.js +0 -81
- package/dist/esm/dockview/dockviewShell.d.ts +0 -150
- package/dist/esm/dockview/dockviewShell.js +0 -678
- package/dist/esm/dockview/edgeGroupService.d.ts +0 -38
- package/dist/esm/dockview/edgeGroupService.js +0 -63
- package/dist/esm/dockview/events.d.ts +0 -38
- package/dist/esm/dockview/events.js +0 -34
- package/dist/esm/dockview/floatingGroupService.d.ts +0 -37
- package/dist/esm/dockview/floatingGroupService.js +0 -150
- package/dist/esm/dockview/framework.d.ts +0 -65
- package/dist/esm/dockview/framework.js +0 -1
- package/dist/esm/dockview/headerActionsService.d.ts +0 -32
- package/dist/esm/dockview/headerActionsService.js +0 -86
- package/dist/esm/dockview/liveRegionService.d.ts +0 -53
- package/dist/esm/dockview/liveRegionService.js +0 -159
- package/dist/esm/dockview/moduleContracts.d.ts +0 -119
- package/dist/esm/dockview/moduleContracts.js +0 -1
- package/dist/esm/dockview/modules.d.ts +0 -110
- package/dist/esm/dockview/modules.js +0 -170
- package/dist/esm/dockview/options.d.ts +0 -474
- package/dist/esm/dockview/options.js +0 -77
- package/dist/esm/dockview/popoutWindowService.d.ts +0 -95
- package/dist/esm/dockview/popoutWindowService.js +0 -175
- package/dist/esm/dockview/rootDropTargetService.d.ts +0 -35
- package/dist/esm/dockview/rootDropTargetService.js +0 -82
- package/dist/esm/dockview/strictEventsSequencing.d.ts +0 -7
- package/dist/esm/dockview/strictEventsSequencing.js +0 -41
- package/dist/esm/dockview/tabGroup.d.ts +0 -99
- package/dist/esm/dockview/tabGroup.js +0 -144
- package/dist/esm/dockview/tabGroupAccent.d.ts +0 -65
- package/dist/esm/dockview/tabGroupAccent.js +0 -114
- package/dist/esm/dockview/theme.d.ts +0 -86
- package/dist/esm/dockview/theme.js +0 -136
- package/dist/esm/dockview/types.d.ts +0 -53
- package/dist/esm/dockview/types.js +0 -1
- package/dist/esm/dockview/validate.d.ts +0 -0
- package/dist/esm/dockview/validate.js +0 -76
- package/dist/esm/dockview/watermarkService.d.ts +0 -30
- package/dist/esm/dockview/watermarkService.js +0 -56
- package/dist/esm/dom.d.ts +0 -60
- package/dist/esm/dom.js +0 -375
- package/dist/esm/events.d.ts +0 -79
- package/dist/esm/events.js +0 -219
- package/dist/esm/framwork.d.ts +0 -4
- package/dist/esm/framwork.js +0 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +0 -111
- package/dist/esm/gridview/baseComponentGridview.js +0 -237
- package/dist/esm/gridview/basePanelView.d.ts +0 -40
- package/dist/esm/gridview/basePanelView.js +0 -91
- package/dist/esm/gridview/branchNode.d.ts +0 -57
- package/dist/esm/gridview/branchNode.js +0 -257
- package/dist/esm/gridview/gridview.d.ts +0 -158
- package/dist/esm/gridview/gridview.js +0 -681
- package/dist/esm/gridview/gridviewComponent.d.ts +0 -88
- package/dist/esm/gridview/gridviewComponent.js +0 -265
- package/dist/esm/gridview/gridviewPanel.d.ts +0 -77
- package/dist/esm/gridview/gridviewPanel.js +0 -182
- package/dist/esm/gridview/leafNode.d.ts +0 -34
- package/dist/esm/gridview/leafNode.js +0 -102
- package/dist/esm/gridview/options.d.ts +0 -15
- package/dist/esm/gridview/options.js +0 -14
- package/dist/esm/gridview/types.d.ts +0 -3
- package/dist/esm/gridview/types.js +0 -1
- package/dist/esm/index.d.ts +0 -58
- package/dist/esm/index.js +0 -44
- package/dist/esm/lifecycle.d.ts +0 -25
- package/dist/esm/lifecycle.js +0 -56
- package/dist/esm/math.d.ts +0 -5
- package/dist/esm/math.js +0 -32
- package/dist/esm/overlay/overlay.d.ts +0 -91
- package/dist/esm/overlay/overlay.js +0 -520
- package/dist/esm/overlay/overlayRenderContainer.d.ts +0 -24
- package/dist/esm/overlay/overlayRenderContainer.js +0 -249
- package/dist/esm/panel/types.d.ts +0 -33
- package/dist/esm/panel/types.js +0 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
- package/dist/esm/paneview/defaultPaneviewHeader.js +0 -65
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -38
- package/dist/esm/paneview/draggablePaneviewPanel.js +0 -107
- package/dist/esm/paneview/options.d.ts +0 -30
- package/dist/esm/paneview/options.js +0 -22
- package/dist/esm/paneview/paneview.d.ts +0 -41
- package/dist/esm/paneview/paneview.js +0 -148
- package/dist/esm/paneview/paneviewComponent.d.ts +0 -133
- package/dist/esm/paneview/paneviewComponent.js +0 -306
- package/dist/esm/paneview/paneviewPanel.d.ts +0 -98
- package/dist/esm/paneview/paneviewPanel.js +0 -192
- package/dist/esm/popoutWindow.d.ts +0 -38
- package/dist/esm/popoutWindow.js +0 -170
- package/dist/esm/resizable.d.ts +0 -12
- package/dist/esm/resizable.js +0 -66
- package/dist/esm/scrollbar.d.ts +0 -15
- package/dist/esm/scrollbar.js +0 -139
- package/dist/esm/splitview/options.d.ts +0 -21
- package/dist/esm/splitview/options.js +0 -16
- package/dist/esm/splitview/splitview.d.ts +0 -145
- package/dist/esm/splitview/splitview.js +0 -770
- package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
- package/dist/esm/splitview/splitviewComponent.js +0 -267
- package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
- package/dist/esm/splitview/splitviewPanel.js +0 -108
- package/dist/esm/splitview/viewItem.d.ts +0 -25
- package/dist/esm/splitview/viewItem.js +0 -74
- package/dist/esm/svg.d.ts +0 -3
- package/dist/esm/svg.js +0 -31
- package/dist/esm/types.d.ts +0 -31
- package/dist/esm/types.js +0 -1
- package/dist/styles/dockview.css +0 -3436
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Service + host interfaces for the pluggable feature modules. Core references
|
|
3
|
-
* only these interfaces
|
|
3
|
+
* only these interfaces, never a module's implementation, so each module is
|
|
4
4
|
* decoupled from core and independently testable / removable. Keep this file
|
|
5
5
|
* implementation-free.
|
|
6
6
|
*/
|
|
7
7
|
import { IDisposable } from '../lifecycle';
|
|
8
8
|
import { Event } from '../events';
|
|
9
|
-
import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
|
|
9
|
+
import { DroptargetOverlayModel, Position, PositionResolver, PositionResolverArgs, PositionResolverResult } from '../dnd/droptarget';
|
|
10
|
+
import { Box } from '../types';
|
|
10
11
|
import { IDragGhostSpec } from '../dnd/backend';
|
|
11
12
|
import { DockviewApi } from '../api/component.api';
|
|
12
13
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
@@ -14,15 +15,23 @@ import { IDockviewPanel } from './dockviewPanel';
|
|
|
14
15
|
import { ITabGroup } from './tabGroup';
|
|
15
16
|
import { TabGroupColorPalette } from './tabGroupAccent';
|
|
16
17
|
import { PopupService } from './components/popupService';
|
|
17
|
-
import { DockviewComponentOptions } from './options';
|
|
18
|
-
import { DockviewLayoutMutationEvent, GroupNavigationDirection } from './dockviewComponent';
|
|
18
|
+
import { DockviewComponentOptions, FloatingGroupDragContext, SmartGuidesOptions } from './options';
|
|
19
|
+
import { DockviewActivePanelChangeEvent, DockviewLayoutMutationEvent, DockviewLayoutMutationKind, DockviewOrigin, DockviewPanelPinnedChangeEvent, GroupNavigationDirection, SerializedDockview } from './dockviewComponent';
|
|
19
20
|
import { DockviewWillDropEvent } from './dockviewGroupPanelModel';
|
|
21
|
+
import { EdgeGroupPosition } from './dockviewShell';
|
|
20
22
|
import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
|
|
21
23
|
import { DockviewGroupDropLocation, DockviewTabGroupChangeEvent, DockviewTabGroupPanelChangeEvent, DockviewTabGroupCollapsedChangeEvent, DockviewWillShowOverlayLocationEvent } from './events';
|
|
22
24
|
export interface IContextMenuHost {
|
|
23
25
|
readonly options: DockviewComponentOptions;
|
|
24
26
|
readonly api: DockviewApi;
|
|
25
27
|
readonly tabGroupColorPalette: TabGroupColorPalette;
|
|
28
|
+
/**
|
|
29
|
+
* The PinnedTabs module service, or `undefined` when that module is not
|
|
30
|
+
* registered. The tab context menu auto-injects a Pin/Unpin item only when
|
|
31
|
+
* this is present (and pinning is enabled); it's an optional enhancement,
|
|
32
|
+
* never a hard dependency.
|
|
33
|
+
*/
|
|
34
|
+
readonly pinnedTabsService: IPinnedTabsService | undefined;
|
|
26
35
|
getPopupServiceForGroup(group: DockviewGroupPanel): PopupService;
|
|
27
36
|
}
|
|
28
37
|
export interface IContextMenuService {
|
|
@@ -49,10 +58,10 @@ export interface ITabGroupChipsService extends IDisposable {
|
|
|
49
58
|
*/
|
|
50
59
|
attachToGroup(group: DockviewGroupPanel): IDisposable;
|
|
51
60
|
}
|
|
52
|
-
export interface
|
|
61
|
+
export interface IKeyboardNavigationHost {
|
|
53
62
|
/**
|
|
54
63
|
* The outermost dockview element (the shell, which also contains edge
|
|
55
|
-
* groups). A getter
|
|
64
|
+
* groups). A getter: it must resolve to the shell once that exists, not
|
|
56
65
|
* the inner gridview, or keydowns from edge groups are missed.
|
|
57
66
|
*/
|
|
58
67
|
readonly rootElement: HTMLElement;
|
|
@@ -61,21 +70,37 @@ export interface IAccessibilityHost {
|
|
|
61
70
|
readonly activeGroup: DockviewGroupPanel | undefined;
|
|
62
71
|
readonly activePanel: IDockviewPanel | undefined;
|
|
63
72
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
73
|
+
* Live popout `Window` handles + a signal when that set changes. Keyboard
|
|
74
|
+
* services attach their document listeners to each popout document too, so
|
|
75
|
+
* the keys work *inside* a popped-out window (a separate `document`).
|
|
76
|
+
*/
|
|
77
|
+
getPopoutWindows(): Window[];
|
|
78
|
+
readonly onDidChangePopouts: Event<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Does this dock own `node`, in *any* of its windows? True when the node is
|
|
81
|
+
* inside the main shell, or inside one of this component's popout documents.
|
|
82
|
+
* Replaces a single-document `rootElement.contains` so keyboard handling and
|
|
83
|
+
* focus gating recognise events/elements that live in a popout window.
|
|
84
|
+
*/
|
|
85
|
+
ownsElement(node: Node): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* The next / previous group in gridview (spatial) order, wrapping round.
|
|
88
|
+
* This is the one piece of navigation that needs the grid internals. All
|
|
89
|
+
* other focus logic lives in the service, using the public group API.
|
|
67
90
|
*/
|
|
68
91
|
adjacentGroup(group: DockviewGroupPanel, reverse: boolean): DockviewGroupPanel | undefined;
|
|
69
|
-
/** The nearest grid group in a spatial direction
|
|
92
|
+
/** The nearest grid group in a spatial direction; drives Alt+Arrow nav. */
|
|
70
93
|
adjacentGroupInDirection(group: DockviewGroupPanel, direction: GroupNavigationDirection): DockviewGroupPanel | undefined;
|
|
71
|
-
/** Fires before / after a structural layout change
|
|
94
|
+
/** Fires before / after a structural layout change; used to restore focus on close. */
|
|
72
95
|
readonly onWillMutateLayout: Event<DockviewLayoutMutationEvent>;
|
|
73
96
|
readonly onDidMutateLayout: Event<DockviewLayoutMutationEvent>;
|
|
74
97
|
showDropPreview(group: DockviewGroupPanel, position: Position): IDisposable;
|
|
75
98
|
announce(message: string): void;
|
|
76
99
|
dockPanel(panel: IDockviewPanel, group: DockviewGroupPanel, position: Position): void;
|
|
100
|
+
/** Float the panel into a new floating group: the keyboard-move "float" terminal action. */
|
|
101
|
+
floatPanel(panel: IDockviewPanel): void;
|
|
77
102
|
}
|
|
78
|
-
export interface
|
|
103
|
+
export interface IKeyboardNavigationService extends IDisposable {
|
|
79
104
|
}
|
|
80
105
|
/**
|
|
81
106
|
* Marker for the advanced keyboard docking service (spatial group focus +
|
|
@@ -109,11 +134,457 @@ export interface IAdvancedDnDService extends IDisposable {
|
|
|
109
134
|
*/
|
|
110
135
|
resolveOverlayModel(location: DockviewGroupDropLocation, group?: DockviewGroupPanel): DroptargetOverlayModel | undefined;
|
|
111
136
|
/**
|
|
112
|
-
* Render the drop-preview overlay on a group at `position`
|
|
113
|
-
* overlay a mouse drag shows
|
|
137
|
+
* Render the drop-preview overlay on a group at `position` (the same
|
|
138
|
+
* overlay a mouse drag shows) without a live drag. Returns a disposable
|
|
114
139
|
* that clears it. Used by keyboard docking so keyboard and mouse previews
|
|
115
140
|
* are identical (single source of truth). Commit the move via the public
|
|
116
141
|
* `api.moveGroupOrPanel({ to: { group, position } })`.
|
|
117
142
|
*/
|
|
118
143
|
showPreviewOverlay(group: DockviewGroupPanel, position: Position): IDisposable;
|
|
119
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* The narrow surface the layout-history service needs from the host
|
|
147
|
+
* (`DockviewComponent`). It reads/writes whole-layout snapshots and listens to
|
|
148
|
+
* the mutation-transaction boundary, the only place a *pre-image* can be taken
|
|
149
|
+
* before a mutation runs.
|
|
150
|
+
*/
|
|
151
|
+
export interface ILayoutHistoryHost {
|
|
152
|
+
readonly options: DockviewComponentOptions;
|
|
153
|
+
toJSON(): SerializedDockview;
|
|
154
|
+
fromJSON(data: SerializedDockview, options?: {
|
|
155
|
+
reuseExistingPanels: boolean;
|
|
156
|
+
}): void;
|
|
157
|
+
/** Fires before a structural mutation; used to capture the pre-image. */
|
|
158
|
+
readonly onWillMutateLayout: Event<DockviewLayoutMutationEvent>;
|
|
159
|
+
/** Fires after a structural mutation; used to capture the post-image. */
|
|
160
|
+
readonly onDidMutateLayout: Event<DockviewLayoutMutationEvent>;
|
|
161
|
+
/** Coalesced (microtask-buffered) ping after any layout change; the only
|
|
162
|
+
* signal for sash resize, which does not go through the mutation boundary. */
|
|
163
|
+
readonly onDidLayoutChange: Event<void>;
|
|
164
|
+
/** Settles once any in-flight popout-window restoration (from `fromJSON`)
|
|
165
|
+
* completes. Popouts re-open asynchronously, so undo/redo holds its guard
|
|
166
|
+
* until this resolves. Already-resolved when nothing is restoring. */
|
|
167
|
+
readonly popoutRestorationPromise: Promise<void>;
|
|
168
|
+
}
|
|
169
|
+
/** Entry labels: the mutation kinds plus the synthetic `'resize'` (sash drag,
|
|
170
|
+
* which has no mutation-boundary kind of its own). */
|
|
171
|
+
export type LayoutHistoryKind = DockviewLayoutMutationKind | 'resize';
|
|
172
|
+
export interface LayoutHistoryChangeEvent {
|
|
173
|
+
readonly canUndo: boolean;
|
|
174
|
+
readonly canRedo: boolean;
|
|
175
|
+
readonly undoCount: number;
|
|
176
|
+
readonly redoCount: number;
|
|
177
|
+
readonly lastEntry?: {
|
|
178
|
+
kind: LayoutHistoryKind;
|
|
179
|
+
origin: DockviewOrigin;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export interface ILayoutHistoryService extends IDisposable {
|
|
183
|
+
readonly canUndo: boolean;
|
|
184
|
+
readonly canRedo: boolean;
|
|
185
|
+
readonly onDidChangeHistory: Event<LayoutHistoryChangeEvent>;
|
|
186
|
+
undo(): void;
|
|
187
|
+
redo(): void;
|
|
188
|
+
/** Drop both stacks (e.g. on document switch). */
|
|
189
|
+
clear(): void;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* The narrow surface the DnD compass service needs from the host
|
|
193
|
+
* (`DockviewComponent`). The service owns the compass widget + the cell
|
|
194
|
+
* hit-test resolver; the component installs that resolver at the drop-target
|
|
195
|
+
* seam (`dropPositionResolver`) and surfaces the drag-over signal the widget
|
|
196
|
+
* follows. It never re-implements drop resolution or the commit path.
|
|
197
|
+
*/
|
|
198
|
+
export interface IDndCompassHost {
|
|
199
|
+
readonly options: DockviewComponentOptions;
|
|
200
|
+
/**
|
|
201
|
+
* Fires on each drag-over with the hovered group + native event; the
|
|
202
|
+
* signal the compass widget mounts/follows. The service filters for
|
|
203
|
+
* `kind === 'content'`.
|
|
204
|
+
*/
|
|
205
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
206
|
+
/**
|
|
207
|
+
* Whether a drop at `position` on `group`'s content is actually allowed
|
|
208
|
+
* (the per-position `canDisplayOverlay` veto), used to gate which compass
|
|
209
|
+
* cells are shown, so only legal drops appear.
|
|
210
|
+
*/
|
|
211
|
+
canDropOnGroup(group: DockviewGroupPanel, position: Position, event: DragEvent | PointerEvent): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* The element the content drop target measures its quadrants against (the
|
|
214
|
+
* `dndPanelOverlay` outline: the whole group, or just its content). The
|
|
215
|
+
* compass paints its cells in this frame so they line up with where a drop
|
|
216
|
+
* actually resolves, not a different box.
|
|
217
|
+
*/
|
|
218
|
+
getDropOverlayElement(group: DockviewGroupPanel): HTMLElement | undefined;
|
|
219
|
+
/** The layout root element: the (positioned) surface the outer-cell
|
|
220
|
+
* landing preview is drawn over (where a whole-layout-edge dock lands). */
|
|
221
|
+
getLayoutElement(): HTMLElement;
|
|
222
|
+
}
|
|
223
|
+
export interface IDndCompassService extends IDisposable {
|
|
224
|
+
/**
|
|
225
|
+
* The cell hit-test resolver, installed by the host at the drop-target seam
|
|
226
|
+
* in place of the default cursor-quadrant logic, or `undefined` when the
|
|
227
|
+
* compass is disabled (`dndCompass` unset), so the default behaviour runs.
|
|
228
|
+
*/
|
|
229
|
+
readonly resolver: PositionResolver | undefined;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* The narrow surface the Smart Guides service needs from the host
|
|
233
|
+
* (`DockviewComponent`). The service owns candidate generation, snap resolution
|
|
234
|
+
* and the guide overlay; it only reads the floating container (for guide
|
|
235
|
+
* geometry) and the drag-end signal from the host, never mutating layout. The
|
|
236
|
+
* per-frame snap itself is driven by the component composing the service into
|
|
237
|
+
* the float drag loop's `transformFloatingGroupDrag`, so it is not a host
|
|
238
|
+
* member.
|
|
239
|
+
*/
|
|
240
|
+
export interface ISmartGuidesHost {
|
|
241
|
+
readonly options: DockviewComponentOptions;
|
|
242
|
+
/**
|
|
243
|
+
* The positioning parent for floating groups, in whose coordinate space the
|
|
244
|
+
* guide overlay is drawn (container-relative, never client/viewport space).
|
|
245
|
+
* This is the same element floats are placed in
|
|
246
|
+
* (`_floatingOverlayHost ?? gridview.element`).
|
|
247
|
+
*/
|
|
248
|
+
getFloatingContainer(): HTMLElement;
|
|
249
|
+
/**
|
|
250
|
+
* Fires with the dragged group the first time a floating group move-drag
|
|
251
|
+
* actually moves; the signal to (re)build per-drag state from a clean slate.
|
|
252
|
+
* Tears down any session left over from a drag that ended without a normal
|
|
253
|
+
* pointerup (e.g. a redock long-press, which aborts without an end event).
|
|
254
|
+
*/
|
|
255
|
+
readonly onDidStartFloatingGroupDrag: Event<DockviewGroupPanel>;
|
|
256
|
+
/**
|
|
257
|
+
* Fires with the dragged group when a floating group's move-drag ends
|
|
258
|
+
* (pointerup / cancel); the signal to tear down the guides and per-drag
|
|
259
|
+
* state. A resize-end fires it too; with no active drag session that is a
|
|
260
|
+
* harmless no-op.
|
|
261
|
+
*/
|
|
262
|
+
readonly onDidEndFloatingGroupDrag: Event<DockviewGroupPanel>;
|
|
263
|
+
/**
|
|
264
|
+
* The live floating windows other than `exclude`, each with its group
|
|
265
|
+
* identity and container-relative box; the snap-together detector needs
|
|
266
|
+
* identity (which neighbour to dock into), not just geometry.
|
|
267
|
+
*/
|
|
268
|
+
getFloatingGroupSnapshots(exclude: DockviewGroupPanel): readonly {
|
|
269
|
+
group: DockviewGroupPanel;
|
|
270
|
+
box: Box;
|
|
271
|
+
}[];
|
|
272
|
+
/**
|
|
273
|
+
* The underlying grid's splitter (sash) rectangles, in the same
|
|
274
|
+
* container-relative space, for the optional `snapTargets.splitters` source.
|
|
275
|
+
* Empty when there are no sashes.
|
|
276
|
+
*/
|
|
277
|
+
getGridSplitterRects(): Box[];
|
|
278
|
+
/**
|
|
279
|
+
* Commit a snap-together: dock / merge the dragged float into a target group
|
|
280
|
+
* at `position`. Reuses the existing move primitive (`moveGroupOrPanel`) so
|
|
281
|
+
* events + undo cover it; a no-op when `dragged === target`.
|
|
282
|
+
*/
|
|
283
|
+
mergeFloatInto(dragged: DockviewGroupPanel, target: DockviewGroupPanel, position: SmartGuidesSnapPosition): void;
|
|
284
|
+
}
|
|
285
|
+
/** Where a snapped-together float docks relative to its target. */
|
|
286
|
+
export type SmartGuidesSnapPosition = 'left' | 'right' | 'top' | 'bottom' | 'center';
|
|
287
|
+
/** Fired when a dragged float commits an alignment snap on drop. */
|
|
288
|
+
export interface SmartGuidesSnapEvent {
|
|
289
|
+
readonly group: DockviewGroupPanel;
|
|
290
|
+
/** Which axes were snapped at release. */
|
|
291
|
+
readonly axes: ('x' | 'y')[];
|
|
292
|
+
}
|
|
293
|
+
/** Fired when a dragged float commits a dock/merge on drop. */
|
|
294
|
+
export interface SmartGuidesSnapTogetherEvent {
|
|
295
|
+
readonly dragged: DockviewGroupPanel;
|
|
296
|
+
readonly target: DockviewGroupPanel;
|
|
297
|
+
readonly position: SmartGuidesSnapPosition;
|
|
298
|
+
}
|
|
299
|
+
export interface ISmartGuidesService extends IDisposable {
|
|
300
|
+
/**
|
|
301
|
+
* Snap the proposed drag position against the other floating groups,
|
|
302
|
+
* drawing an alignment guide on the snapped edge. Returns an adjusted
|
|
303
|
+
* top-left, or nothing to leave the proposed position unchanged, which is
|
|
304
|
+
* also the pass-through when `smartGuides` is unset / disabled.
|
|
305
|
+
*/
|
|
306
|
+
transformFloatingGroupDrag(context: FloatingGroupDragContext): {
|
|
307
|
+
top: number;
|
|
308
|
+
left: number;
|
|
309
|
+
} | void;
|
|
310
|
+
/** Whether snapping is currently active (option present + enabled). */
|
|
311
|
+
readonly enabled: boolean;
|
|
312
|
+
/** Toggle snapping at runtime (overrides `smartGuides.enabled`). */
|
|
313
|
+
setEnabled(enabled: boolean): void;
|
|
314
|
+
/** Merge a partial option override in at runtime. */
|
|
315
|
+
updateOptions(options: Partial<SmartGuidesOptions>): void;
|
|
316
|
+
readonly onDidSnapFloat: Event<SmartGuidesSnapEvent>;
|
|
317
|
+
readonly onDidSnapTogether: Event<SmartGuidesSnapTogetherEvent>;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* The narrow surface the auto-hide service needs from the host
|
|
321
|
+
* (`DockviewComponent`). Collapse/expand is delegated to the existing free
|
|
322
|
+
* edge-group machinery (`setEdgeGroupCollapsed` → shell); the module owns
|
|
323
|
+
* interaction + presentation, never layout/sizing.
|
|
324
|
+
*/
|
|
325
|
+
export interface IAutoHideEdgeGroupHost {
|
|
326
|
+
readonly options: DockviewComponentOptions;
|
|
327
|
+
/** Fires when any group is added; the service filters for `location.type === 'edge'`. */
|
|
328
|
+
readonly onDidAddGroup: Event<DockviewGroupPanel>;
|
|
329
|
+
readonly onDidRemoveGroup: Event<DockviewGroupPanel>;
|
|
330
|
+
/** The edge group at a position, or undefined. */
|
|
331
|
+
getEdgeGroupPanel(position: EdgeGroupPosition): DockviewGroupPanel | undefined;
|
|
332
|
+
/** Collapse/expand an edge group: the single mutate path (fires
|
|
333
|
+
* `onDidCollapsedChange`, no-op guarded). */
|
|
334
|
+
setEdgeGroupCollapsed(group: DockviewGroupPanel, collapsed: boolean): void;
|
|
335
|
+
/** Whether this edge group should behave as an auto-hide (pinnable) tool
|
|
336
|
+
* window: the per-group flag resolved against the global
|
|
337
|
+
* `autoHideEdgeGroups` option. Lets static and auto-hiding edge groups
|
|
338
|
+
* co-exist. */
|
|
339
|
+
isEdgeGroupAutoHide(group: DockviewGroupPanel): boolean;
|
|
340
|
+
/** Fires when a group's resolved auto-hide state changes at runtime
|
|
341
|
+
* (per-group `setAutoHide`), so a controller can dock/undock retroactively. */
|
|
342
|
+
readonly onDidEdgeGroupAutoHideChange: Event<DockviewGroupPanel>;
|
|
343
|
+
/** The element the slide-out peek mounts on: the shell, which is also the
|
|
344
|
+
* `OverlayRenderContainer` root, so `always`-rendered content anchors in
|
|
345
|
+
* the same coordinate space as the peek. */
|
|
346
|
+
readonly overlayRoot: HTMLElement;
|
|
347
|
+
/** The size an edge group expands to; sizes the peek overlay. */
|
|
348
|
+
getEdgeGroupExpandedSize(position: EdgeGroupPosition): number;
|
|
349
|
+
/** Record the peek state so `group.api.isPeeking()` / `onDidPeekChange`
|
|
350
|
+
* reflect it (the module owns the actual overlay). */
|
|
351
|
+
setEdgeGroupPeeking(group: DockviewGroupPanel, peeking: boolean): void;
|
|
352
|
+
/** Reposition a single `renderer:'always'` panel's overlay over its
|
|
353
|
+
* reference container, optionally forcing it visible. The peek reparents a
|
|
354
|
+
* group's content container into the slide-out overlay; the always-rendered
|
|
355
|
+
* content is not reparented (its parent stays constant); it's re-anchored
|
|
356
|
+
* over the moving container and force-shown for the duration of the peek.
|
|
357
|
+
* `clip` (viewport rect) clips the overlay to the peek's reveal window so an
|
|
358
|
+
* `always` panel emerges from the strip's inner edge instead of sliding in
|
|
359
|
+
* from the screen edge; omit it to clear any clip. */
|
|
360
|
+
repositionPanelOverlay(panel: IDockviewPanel, forceVisible: boolean, clip?: DOMRect): void;
|
|
361
|
+
/** Announce a message to assistive technology via the shared live region
|
|
362
|
+
* (no-op when no live-region service / `announcements: false`). */
|
|
363
|
+
announce(message: string): void;
|
|
364
|
+
}
|
|
365
|
+
export interface IAutoHideEdgeGroupService extends IDisposable {
|
|
366
|
+
/** Peek (true) / close (false) the collapsed edge group at `position`. */
|
|
367
|
+
peek(position: EdgeGroupPosition, peek: boolean): void;
|
|
368
|
+
/** Pin (re-dock / expand) the edge group at `position`. */
|
|
369
|
+
pin(position: EdgeGroupPosition): void;
|
|
370
|
+
/** Auto-hide (collapse to strip) the edge group at `position`. */
|
|
371
|
+
autoHide(position: EdgeGroupPosition): void;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* The narrow surface the two-band drag-reveal affordance needs from the host
|
|
375
|
+
* (`DockviewComponent`). It reuses the existing `onWillShowOverlay` /
|
|
376
|
+
* `onWillDrop` seams (no new core overlay code): on a layout-edge drag it
|
|
377
|
+
* classifies the pointer into an outer "dock as edge group" band and an inner
|
|
378
|
+
* "split the grid" band, drawing its own outer-band highlight and routing an
|
|
379
|
+
* outer-band drop to `revealEdgeGroupWithData`. The inner band falls through to
|
|
380
|
+
* core's default grid split.
|
|
381
|
+
*
|
|
382
|
+
* This service is what makes `dockToEdgeGroups` do anything: core implements no
|
|
383
|
+
* part of it, and gates the widened activation band on this service's presence.
|
|
384
|
+
*/
|
|
385
|
+
export interface IAutoEdgeGroupHost {
|
|
386
|
+
readonly options: DockviewComponentOptions;
|
|
387
|
+
/** Fires before an edge drop overlay is shown; the affordance draws its
|
|
388
|
+
* outer-band highlight (or lets the inner band render the core overlay). */
|
|
389
|
+
readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
|
|
390
|
+
/** Fires before a layout-edge drop commits; the affordance preempts the
|
|
391
|
+
* outer band and reveals an edge group. */
|
|
392
|
+
readonly onWillDrop: Event<DockviewWillDropEvent>;
|
|
393
|
+
/** The element the outer-band highlight mounts on (the shell / overlay root). */
|
|
394
|
+
readonly overlayRoot: HTMLElement;
|
|
395
|
+
/** Viewport rect of the docked content area (the drop-target element), to
|
|
396
|
+
* classify a pointer's edge band and position the highlight. */
|
|
397
|
+
getDropZoneRect(): DOMRect;
|
|
398
|
+
/** Reveal (create-or-fill) the edge group at `position` and drop the dragged
|
|
399
|
+
* item into it. The primitive behind drag-revealed edges. */
|
|
400
|
+
revealEdgeGroupWithData(position: EdgeGroupPosition, data: {
|
|
401
|
+
groupId: string;
|
|
402
|
+
panelId?: string | null;
|
|
403
|
+
}, options?: {
|
|
404
|
+
autoHide?: boolean;
|
|
405
|
+
}): void;
|
|
406
|
+
}
|
|
407
|
+
export interface IAutoEdgeGroupService extends IDisposable {
|
|
408
|
+
/** The standalone position resolver installed on the group content drop
|
|
409
|
+
* targets: marks the outer band of the content area as an `edge` cell (so a
|
|
410
|
+
* drop there routes to `dockToLayoutEdge` → reveal) and otherwise resolves
|
|
411
|
+
* the normal cursor quadrant. `undefined` when disabled. */
|
|
412
|
+
readonly resolver: PositionResolver | undefined;
|
|
413
|
+
/** Edge-band detection only: an `edge` cell when the pointer is in the outer
|
|
414
|
+
* band, else `null`. Used to compose with another resolver (e.g. the
|
|
415
|
+
* DnD compass): the outer edge reveals an edge group and everything
|
|
416
|
+
* else falls through to the other resolver. */
|
|
417
|
+
resolveEdge(args: PositionResolverArgs): PositionResolverResult | null;
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* The narrow surface the multi-row (wrapping) tabs service needs from the host
|
|
421
|
+
* (`DockviewComponent`). The wrap layout itself is CSS; the service only toggles
|
|
422
|
+
* the wrap class on a group's tab list, measures the wrapped row count, and asks
|
|
423
|
+
* the host to relayout so the now-taller header shrinks the content area
|
|
424
|
+
* (the free header-aware content-sizing seam does the actual subtraction). It
|
|
425
|
+
* owns no tab model, overflow detection, or panel sizing math.
|
|
426
|
+
*/
|
|
427
|
+
export interface IMultiRowTabsHost {
|
|
428
|
+
readonly options: DockviewComponentOptions;
|
|
429
|
+
/** Fires when any group is added; the service attaches a wrap controller. */
|
|
430
|
+
readonly onDidAddGroup: Event<DockviewGroupPanel>;
|
|
431
|
+
readonly onDidRemoveGroup: Event<DockviewGroupPanel>;
|
|
432
|
+
/** Fires after `updateOptions`; the service re-applies wrap to every group
|
|
433
|
+
* so a runtime `overflow.mode` change takes effect. */
|
|
434
|
+
readonly onDidOptionsChange: Event<void>;
|
|
435
|
+
/**
|
|
436
|
+
* The scrollable tab list element (`.dv-tabs-container`) for a group: the
|
|
437
|
+
* element the wrap class is toggled on and whose child tab geometry the
|
|
438
|
+
* row-count measurement reads. Undefined if the group has no tab header.
|
|
439
|
+
*/
|
|
440
|
+
getTabsListElement(group: DockviewGroupPanel): HTMLElement | undefined;
|
|
441
|
+
/**
|
|
442
|
+
* Re-run a group's layout with its current dimensions so a header-height
|
|
443
|
+
* change (a new wrapped row) propagates to the content + active panel. Wraps
|
|
444
|
+
* the free `DockviewGroupPanel.relayout()`.
|
|
445
|
+
*/
|
|
446
|
+
relayoutGroup(group: DockviewGroupPanel): void;
|
|
447
|
+
/**
|
|
448
|
+
* Force a set of the group's panels into the overflow dropdown regardless of
|
|
449
|
+
* horizontal fit: the wrap controller's surplus set (the tabs on rows
|
|
450
|
+
* beyond `overflow.maxRows`). In wrap mode nothing clips horizontally, so the
|
|
451
|
+
* free `OverflowObserver` never surfaces these; this seam routes them to the
|
|
452
|
+
* dropdown and re-evaluates it immediately. Passing `() => false` clears the
|
|
453
|
+
* forcing.
|
|
454
|
+
*/
|
|
455
|
+
setForcedOverflow(group: DockviewGroupPanel, fn: (panelId: string) => boolean): void;
|
|
456
|
+
}
|
|
457
|
+
export interface IMultiRowTabsService extends IDisposable {
|
|
458
|
+
/** Whether wrap mode is currently active (`overflow.mode === 'wrap'`). */
|
|
459
|
+
readonly enabled: boolean;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* The narrow surface the pinned-tabs service reads from the host
|
|
463
|
+
* (`DockviewComponent`). Pinned state itself lives on the panel
|
|
464
|
+
* (`panel.api.isPinned`, mutated through the gated
|
|
465
|
+
* `DockviewComponent.setPanelPinned`); the module only observes pinned-state
|
|
466
|
+
* changes and re-orders each group's tab strip so pinned tabs render first. No
|
|
467
|
+
* layout or sizing is touched.
|
|
468
|
+
*/
|
|
469
|
+
export interface IPinnedTabsHost {
|
|
470
|
+
/** The owning component's id: the `viewId` a within-component drag payload
|
|
471
|
+
* (`PanelTransfer`) carries, so the pinned second row can originate a drag
|
|
472
|
+
* the main strip's drop targets accept. */
|
|
473
|
+
readonly id: string;
|
|
474
|
+
readonly options: DockviewComponentOptions;
|
|
475
|
+
readonly onDidAddGroup: Event<DockviewGroupPanel>;
|
|
476
|
+
readonly onDidRemoveGroup: Event<DockviewGroupPanel>;
|
|
477
|
+
/** Fires after `updateOptions`; the service re-applies the pinned-tabs
|
|
478
|
+
* presentation (mode / sticky) to every existing group so a runtime
|
|
479
|
+
* `pinnedTabs` change takes effect. New groups pick it up in
|
|
480
|
+
* `onDidAddGroup`; this retrofits the ones that already exist. */
|
|
481
|
+
readonly onDidOptionsChange: Event<void>;
|
|
482
|
+
/** Fires after a panel's pinned flag is mutated via the gated
|
|
483
|
+
* `setPanelPinned`; the service's sole trigger to re-order the strip. */
|
|
484
|
+
readonly onDidPanelPinnedChange: Event<DockviewPanelPinnedChangeEvent>;
|
|
485
|
+
/** Fires after a `fromJSON` restore completes; the service seeds its
|
|
486
|
+
* pinned store from the restored panels' `isPinned` flags and re-asserts
|
|
487
|
+
* the invariant. */
|
|
488
|
+
readonly onDidLayoutFromJSON: Event<void>;
|
|
489
|
+
/** Fires when a panel is removed; the service prunes it from its pinned
|
|
490
|
+
* bookkeeping so a closed pinned panel's id can't leak. */
|
|
491
|
+
readonly onDidRemovePanel: Event<IDockviewPanel>;
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Pinned-tabs module service. Its presence is what
|
|
495
|
+
* `DockviewComponent.setPanelPinned` checks (via `assertModule`) before
|
|
496
|
+
* mutating pinned state; the pinned-first ordering is enforced internally and
|
|
497
|
+
* reactively as panels are pinned/unpinned, added, or moved.
|
|
498
|
+
*/
|
|
499
|
+
export interface IPinnedTabsService extends IDisposable {
|
|
500
|
+
/** Re-assert the pinned-first invariant on a single group's tab strip. */
|
|
501
|
+
enforceOrder(group: DockviewGroupPanel): void;
|
|
502
|
+
/** Pure predicate (handed to each group's `Tabs`); true keeps the panel
|
|
503
|
+
* out of the overflow dropdown. */
|
|
504
|
+
isExcludedFromOverflow(panelId: string): boolean;
|
|
505
|
+
/** Clamp/redirect a proposed header drop `index` against the group's pin
|
|
506
|
+
* boundary so the dragged panel lands on the correct side. May flip the
|
|
507
|
+
* panel's pinned state instead of clamping when
|
|
508
|
+
* `togglePinOnCrossBoundaryDrag` is enabled. */
|
|
509
|
+
resolveDropIndex(group: DockviewGroupPanel, panelId: string, index: number): number;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* One rendered overflow row: the free `headerOverflow` tab renderer wrapped with
|
|
513
|
+
* activate-on-click, built by core and reused by the advanced overflow list so
|
|
514
|
+
* the row DOM + behaviour stay identical to the free dropdown.
|
|
515
|
+
*/
|
|
516
|
+
export interface IOverflowRow {
|
|
517
|
+
/** The row wrapper (`.dv-tab`). Click-to-activate is already wired. */
|
|
518
|
+
readonly element: HTMLElement;
|
|
519
|
+
readonly panel: IDockviewPanel;
|
|
520
|
+
/**
|
|
521
|
+
* Expand the panel's tab group if collapsed, activate the panel (origin
|
|
522
|
+
* `'user'`) and close the popover, identical to clicking the row. Used by
|
|
523
|
+
* the keyboard controller (Enter).
|
|
524
|
+
*/
|
|
525
|
+
activate(): void;
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Core-provided builders handed to {@link IAdvancedOverflowService.renderOverflow}
|
|
529
|
+
* so the module can rebuild the free dropdown body (rows + group headers) in a
|
|
530
|
+
* custom order (search-filtered, MRU-ordered) without re-implementing the row
|
|
531
|
+
* DOM, the group-header DOM, or the window-bound popover open/close. The popover
|
|
532
|
+
* control stays in core so it renders in the correct document for popped-out
|
|
533
|
+
* groups (a `getPopupServiceForGroup(group)`-bound `PopupService`).
|
|
534
|
+
*/
|
|
535
|
+
export interface IAdvancedOverflowRenderContext {
|
|
536
|
+
/** Build a single overflow row for a panel id, or `undefined` if the panel
|
|
537
|
+
* no longer exists in the group. */
|
|
538
|
+
buildRow(panelId: string): IOverflowRow | undefined;
|
|
539
|
+
/** Build the group-header element for an overflow tab-group id, or
|
|
540
|
+
* `undefined` when it is not an overflow group. */
|
|
541
|
+
buildGroupHeader(tabGroupId: string): HTMLElement | undefined;
|
|
542
|
+
/** Build the "Pinned" section header shown above the pinned overflow rows
|
|
543
|
+
* (see {@link AdvancedOverflowRenderParams.pinnedOverflowTabs}). */
|
|
544
|
+
buildPinnedHeader(): HTMLElement;
|
|
545
|
+
/** The overflow tab-group id a panel belongs to, or `undefined`. Used to
|
|
546
|
+
* interleave group headers against the filtered set (same rule as free). */
|
|
547
|
+
overflowGroupIdForPanel(panelId: string): string | undefined;
|
|
548
|
+
/** Open `body` in the group's window-bound popover at the chevron anchor. */
|
|
549
|
+
open(body: HTMLElement): void;
|
|
550
|
+
/** Close the popover. */
|
|
551
|
+
close(): void;
|
|
552
|
+
/** Restore focus to the chevron trigger (Esc). */
|
|
553
|
+
focusTrigger(): void;
|
|
554
|
+
}
|
|
555
|
+
/** The argument to {@link IAdvancedOverflowService.renderOverflow}. */
|
|
556
|
+
export interface AdvancedOverflowRenderParams {
|
|
557
|
+
readonly group: DockviewGroupPanel;
|
|
558
|
+
/** Overflow panel ids in free (tab DOM) order. */
|
|
559
|
+
readonly overflowTabs: string[];
|
|
560
|
+
/** Overflow tab-group ids. */
|
|
561
|
+
readonly overflowTabGroups: string[];
|
|
562
|
+
/** Pinned panel ids whose tabs have clipped out of the strip, rendered in
|
|
563
|
+
* a dedicated "Pinned" section at the top of the dropdown, above the search
|
|
564
|
+
* box and MRU list. Empty unless the PinnedTabs module is active and the
|
|
565
|
+
* pinned block itself overflows. */
|
|
566
|
+
readonly pinnedOverflowTabs: string[];
|
|
567
|
+
/** Core row/header builders + popover control (see the context type). */
|
|
568
|
+
readonly context: IAdvancedOverflowRenderContext;
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* The narrow surface the advanced overflow service reads from the host
|
|
572
|
+
* (`DockviewComponent`). The service self-wires MRU tracking off these events;
|
|
573
|
+
* the component never calls into it except through the rendering seam
|
|
574
|
+
* (`renderOverflow`).
|
|
575
|
+
*/
|
|
576
|
+
export interface IAdvancedOverflowHost {
|
|
577
|
+
readonly options: DockviewComponentOptions;
|
|
578
|
+
readonly onDidAddGroup: Event<DockviewGroupPanel>;
|
|
579
|
+
readonly onDidRemoveGroup: Event<DockviewGroupPanel>;
|
|
580
|
+
readonly onDidActivePanelChange: Event<DockviewActivePanelChangeEvent>;
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Advanced overflow module service. When registered, the tab-overflow dropdown
|
|
584
|
+
* upgrades in place into a command-palette tab switcher (search + MRU +
|
|
585
|
+
* keyboard). Absent, core renders the free flat list unchanged.
|
|
586
|
+
*/
|
|
587
|
+
export interface IAdvancedOverflowService extends IDisposable {
|
|
588
|
+
/** Build AND open the advanced overflow popover for a group. */
|
|
589
|
+
renderOverflow(params: AdvancedOverflowRenderParams): void;
|
|
590
|
+
}
|