dockview-core 7.0.3 → 8.0.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/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 +46 -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 +303 -19
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +52 -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 +480 -14
- package/dist/cjs/dockview/modules.d.ts +101 -22
- package/dist/cjs/dockview/options.d.ts +337 -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/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/gridview/baseComponentGridview.d.ts +2 -2
- 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/svg.d.ts +1 -0
- package/dist/cjs/types.d.ts +8 -0
- package/dist/dockview-core.js +18391 -19679
- package/dist/dockview-core.min.js +4138 -6
- package/dist/dockview-core.min.noStyle.js +6 -7
- package/dist/dockview-core.noStyle.js +18390 -19656
- package/dist/package/main.cjs.js +18002 -19268
- package/dist/package/main.cjs.min.js +6 -6
- package/dist/package/main.esm.min.mjs +6 -6
- package/dist/package/main.esm.mjs +17959 -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
package/dist/esm/dom.js
DELETED
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import { Emitter, addDisposableListener, } from './events';
|
|
2
|
-
import { CompositeDisposable } from './lifecycle';
|
|
3
|
-
export class OverflowObserver extends CompositeDisposable {
|
|
4
|
-
constructor(el) {
|
|
5
|
-
super();
|
|
6
|
-
this._onDidChange = new Emitter();
|
|
7
|
-
this.onDidChange = this._onDidChange.event;
|
|
8
|
-
this._value = null;
|
|
9
|
-
this.addDisposables(this._onDidChange, watchElementResize(el, (entry) => {
|
|
10
|
-
const hasScrollX = entry.target.scrollWidth > entry.target.clientWidth;
|
|
11
|
-
const hasScrollY = entry.target.scrollHeight > entry.target.clientHeight;
|
|
12
|
-
this._value = { hasScrollX, hasScrollY };
|
|
13
|
-
this._onDidChange.fire(this._value);
|
|
14
|
-
}));
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export function watchElementResize(element, cb) {
|
|
18
|
-
const observer = new ResizeObserver((entires) => {
|
|
19
|
-
/**
|
|
20
|
-
* Fast browser window resize produces Error: ResizeObserver loop limit exceeded.
|
|
21
|
-
* The error isn't visible in browser console, doesn't affect functionality, but degrades performance.
|
|
22
|
-
* See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523
|
|
23
|
-
*/
|
|
24
|
-
requestAnimationFrame(() => {
|
|
25
|
-
const firstEntry = entires[0];
|
|
26
|
-
cb(firstEntry);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
observer.observe(element);
|
|
30
|
-
return {
|
|
31
|
-
dispose: () => {
|
|
32
|
-
observer.unobserve(element);
|
|
33
|
-
observer.disconnect();
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export const removeClasses = (element, ...classes) => {
|
|
38
|
-
for (const classname of classes) {
|
|
39
|
-
if (element.classList.contains(classname)) {
|
|
40
|
-
element.classList.remove(classname);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
export const addClasses = (element, ...classes) => {
|
|
45
|
-
for (const classname of classes) {
|
|
46
|
-
if (!element.classList.contains(classname)) {
|
|
47
|
-
element.classList.add(classname);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
export const toggleClass = (element, className, isToggled) => {
|
|
52
|
-
const hasClass = element.classList.contains(className);
|
|
53
|
-
if (isToggled && !hasClass) {
|
|
54
|
-
element.classList.add(className);
|
|
55
|
-
}
|
|
56
|
-
if (!isToggled && hasClass) {
|
|
57
|
-
element.classList.remove(className);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
export function isAncestor(testChild, testAncestor) {
|
|
61
|
-
while (testChild) {
|
|
62
|
-
if (testChild === testAncestor) {
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
testChild = testChild.parentNode;
|
|
66
|
-
}
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
export function getElementsByTagName(tag, document) {
|
|
70
|
-
return Array.prototype.slice.call(document.querySelectorAll(tag), 0);
|
|
71
|
-
}
|
|
72
|
-
export function trackFocus(element) {
|
|
73
|
-
return new FocusTracker(element);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default
|
|
77
|
-
*/
|
|
78
|
-
class FocusTracker extends CompositeDisposable {
|
|
79
|
-
constructor(element) {
|
|
80
|
-
super();
|
|
81
|
-
this._onDidFocus = new Emitter();
|
|
82
|
-
this.onDidFocus = this._onDidFocus.event;
|
|
83
|
-
this._onDidBlur = new Emitter();
|
|
84
|
-
this.onDidBlur = this._onDidBlur.event;
|
|
85
|
-
this.addDisposables(this._onDidFocus, this._onDidBlur);
|
|
86
|
-
let hasFocus = isAncestor(document.activeElement, element);
|
|
87
|
-
let loosingFocus = false;
|
|
88
|
-
const onFocus = () => {
|
|
89
|
-
loosingFocus = false;
|
|
90
|
-
if (!hasFocus) {
|
|
91
|
-
hasFocus = true;
|
|
92
|
-
this._onDidFocus.fire();
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
const onBlur = () => {
|
|
96
|
-
if (hasFocus) {
|
|
97
|
-
loosingFocus = true;
|
|
98
|
-
globalThis.setTimeout(() => {
|
|
99
|
-
if (loosingFocus) {
|
|
100
|
-
loosingFocus = false;
|
|
101
|
-
hasFocus = false;
|
|
102
|
-
this._onDidBlur.fire();
|
|
103
|
-
}
|
|
104
|
-
}, 0);
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
this._refreshStateHandler = () => {
|
|
108
|
-
const currentNodeHasFocus = isAncestor(document.activeElement, element);
|
|
109
|
-
if (currentNodeHasFocus !== hasFocus) {
|
|
110
|
-
if (hasFocus) {
|
|
111
|
-
onBlur();
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
onFocus();
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));
|
|
119
|
-
this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));
|
|
120
|
-
}
|
|
121
|
-
refreshState() {
|
|
122
|
-
this._refreshStateHandler();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// quasi: apparently, but not really; seemingly
|
|
126
|
-
const QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';
|
|
127
|
-
// mark an event directly for other listeners to check
|
|
128
|
-
export function quasiPreventDefault(event) {
|
|
129
|
-
event[QUASI_PREVENT_DEFAULT_KEY] = true;
|
|
130
|
-
}
|
|
131
|
-
// check if this event has been marked
|
|
132
|
-
export function quasiDefaultPrevented(event) {
|
|
133
|
-
return event[QUASI_PREVENT_DEFAULT_KEY];
|
|
134
|
-
}
|
|
135
|
-
export function addStyles(document, styleSheetList, options = {}) {
|
|
136
|
-
const styleSheets = Array.from(styleSheetList);
|
|
137
|
-
const { nonce } = options;
|
|
138
|
-
const resolvedNonce = typeof nonce === 'function' ? nonce(document) : nonce;
|
|
139
|
-
for (const styleSheet of styleSheets) {
|
|
140
|
-
if (styleSheet.href) {
|
|
141
|
-
const link = document.createElement('link');
|
|
142
|
-
link.href = styleSheet.href;
|
|
143
|
-
link.type = styleSheet.type;
|
|
144
|
-
link.rel = 'stylesheet';
|
|
145
|
-
document.head.appendChild(link);
|
|
146
|
-
// The <link> will load and apply its rules in the target
|
|
147
|
-
// document. Reading cssRules here would duplicate them
|
|
148
|
-
// (and throws for cross-origin sheets).
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
let cssTexts = [];
|
|
152
|
-
try {
|
|
153
|
-
if (styleSheet.cssRules) {
|
|
154
|
-
cssTexts = Array.from(styleSheet.cssRules).map((rule) => rule.cssText);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (err) {
|
|
158
|
-
console.warn('dockview: failed to access stylesheet rules due to security restrictions', err);
|
|
159
|
-
}
|
|
160
|
-
const fragment = document.createDocumentFragment();
|
|
161
|
-
for (const rule of cssTexts) {
|
|
162
|
-
const style = document.createElement('style');
|
|
163
|
-
if (resolvedNonce) {
|
|
164
|
-
style.setAttribute('nonce', resolvedNonce);
|
|
165
|
-
}
|
|
166
|
-
style.appendChild(document.createTextNode(rule));
|
|
167
|
-
fragment.appendChild(style);
|
|
168
|
-
}
|
|
169
|
-
document.head.appendChild(fragment);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
export function getDomNodePagePosition(domNode) {
|
|
173
|
-
const { left, top, width, height } = domNode.getBoundingClientRect();
|
|
174
|
-
return {
|
|
175
|
-
left: left + window.scrollX,
|
|
176
|
-
top: top + window.scrollY,
|
|
177
|
-
width: width,
|
|
178
|
-
height: height,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Check whether an element is in the DOM (including the Shadow DOM)
|
|
183
|
-
* @see https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/
|
|
184
|
-
*/
|
|
185
|
-
export function isInDocument(element) {
|
|
186
|
-
let currentElement = element;
|
|
187
|
-
while (currentElement === null || currentElement === void 0 ? void 0 : currentElement.parentNode) {
|
|
188
|
-
if (currentElement.parentNode === document) {
|
|
189
|
-
return true;
|
|
190
|
-
}
|
|
191
|
-
else if (currentElement.parentNode instanceof DocumentFragment) {
|
|
192
|
-
// handle shadow DOMs
|
|
193
|
-
currentElement = currentElement.parentNode.host;
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
currentElement = currentElement.parentNode;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return false;
|
|
200
|
-
}
|
|
201
|
-
export function addTestId(element, id) {
|
|
202
|
-
element.setAttribute('data-testid', id);
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Should be more efficient than element.querySelectorAll("*") since there
|
|
206
|
-
* is no need to store every element in-memory using this approach
|
|
207
|
-
*/
|
|
208
|
-
function allTagsNamesInclusiveOfShadowDoms(tagNames, rootNode) {
|
|
209
|
-
const iframes = [];
|
|
210
|
-
function findIframesInNode(node) {
|
|
211
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
212
|
-
if (tagNames.includes(node.tagName)) {
|
|
213
|
-
iframes.push(node);
|
|
214
|
-
}
|
|
215
|
-
if (node.shadowRoot) {
|
|
216
|
-
findIframesInNode(node.shadowRoot);
|
|
217
|
-
}
|
|
218
|
-
for (const child of node.children) {
|
|
219
|
-
findIframesInNode(child);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
// Document → walk from its root element. Element → walk from itself.
|
|
224
|
-
const startEl = rootNode instanceof Document
|
|
225
|
-
? rootNode.documentElement
|
|
226
|
-
: rootNode;
|
|
227
|
-
findIframesInNode(startEl);
|
|
228
|
-
return iframes;
|
|
229
|
-
}
|
|
230
|
-
export function disableIframePointEvents(rootNode = document) {
|
|
231
|
-
const iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW'], rootNode);
|
|
232
|
-
const original = new WeakMap(); // don't hold onto HTMLElement references longer than required
|
|
233
|
-
for (const iframe of iframes) {
|
|
234
|
-
original.set(iframe, iframe.style.pointerEvents);
|
|
235
|
-
iframe.style.pointerEvents = 'none';
|
|
236
|
-
}
|
|
237
|
-
return {
|
|
238
|
-
release: () => {
|
|
239
|
-
var _a;
|
|
240
|
-
for (const iframe of iframes) {
|
|
241
|
-
iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';
|
|
242
|
-
}
|
|
243
|
-
iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required
|
|
244
|
-
},
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
export function getDockviewTheme(element) {
|
|
248
|
-
function toClassList(element) {
|
|
249
|
-
const list = [];
|
|
250
|
-
for (let i = 0; i < element.classList.length; i++) {
|
|
251
|
-
list.push(element.classList.item(i));
|
|
252
|
-
}
|
|
253
|
-
return list;
|
|
254
|
-
}
|
|
255
|
-
let theme = undefined;
|
|
256
|
-
let parent = element;
|
|
257
|
-
while (parent !== null) {
|
|
258
|
-
theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));
|
|
259
|
-
if (typeof theme === 'string') {
|
|
260
|
-
break;
|
|
261
|
-
}
|
|
262
|
-
parent = parent.parentElement;
|
|
263
|
-
}
|
|
264
|
-
return theme;
|
|
265
|
-
}
|
|
266
|
-
export class Classnames {
|
|
267
|
-
constructor(element) {
|
|
268
|
-
this.element = element;
|
|
269
|
-
this._classNames = [];
|
|
270
|
-
}
|
|
271
|
-
setClassNames(classNames) {
|
|
272
|
-
for (const className of this._classNames) {
|
|
273
|
-
toggleClass(this.element, className, false);
|
|
274
|
-
}
|
|
275
|
-
this._classNames = classNames
|
|
276
|
-
.split(' ')
|
|
277
|
-
.filter((v) => v.trim().length > 0);
|
|
278
|
-
for (const className of this._classNames) {
|
|
279
|
-
toggleClass(this.element, className, true);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
const DEBOUCE_DELAY = 100;
|
|
284
|
-
export function isChildEntirelyVisibleWithinParent(child, parent) {
|
|
285
|
-
const childPosition = getDomNodePagePosition(child);
|
|
286
|
-
const parentPosition = getDomNodePagePosition(parent);
|
|
287
|
-
// Check horizontal visibility
|
|
288
|
-
if (childPosition.left < parentPosition.left) {
|
|
289
|
-
return false;
|
|
290
|
-
}
|
|
291
|
-
if (childPosition.left + childPosition.width >
|
|
292
|
-
parentPosition.left + parentPosition.width) {
|
|
293
|
-
return false;
|
|
294
|
-
}
|
|
295
|
-
// Check vertical visibility
|
|
296
|
-
if (childPosition.top < parentPosition.top) {
|
|
297
|
-
return false;
|
|
298
|
-
}
|
|
299
|
-
if (childPosition.top + childPosition.height >
|
|
300
|
-
parentPosition.top + parentPosition.height) {
|
|
301
|
-
return false;
|
|
302
|
-
}
|
|
303
|
-
return true;
|
|
304
|
-
}
|
|
305
|
-
export function onDidWindowMoveEnd(window) {
|
|
306
|
-
const emitter = new Emitter();
|
|
307
|
-
let previousScreenX = window.screenX;
|
|
308
|
-
let previousScreenY = window.screenY;
|
|
309
|
-
let timeout;
|
|
310
|
-
const checkMovement = () => {
|
|
311
|
-
if (window.closed) {
|
|
312
|
-
return;
|
|
313
|
-
}
|
|
314
|
-
const currentScreenX = window.screenX;
|
|
315
|
-
const currentScreenY = window.screenY;
|
|
316
|
-
if (currentScreenX !== previousScreenX ||
|
|
317
|
-
currentScreenY !== previousScreenY) {
|
|
318
|
-
clearTimeout(timeout);
|
|
319
|
-
timeout = setTimeout(() => {
|
|
320
|
-
emitter.fire();
|
|
321
|
-
}, DEBOUCE_DELAY);
|
|
322
|
-
previousScreenX = currentScreenX;
|
|
323
|
-
previousScreenY = currentScreenY;
|
|
324
|
-
}
|
|
325
|
-
requestAnimationFrame(checkMovement);
|
|
326
|
-
};
|
|
327
|
-
checkMovement();
|
|
328
|
-
return emitter;
|
|
329
|
-
}
|
|
330
|
-
export function onDidWindowResizeEnd(element, cb) {
|
|
331
|
-
let resizeTimeout;
|
|
332
|
-
const disposable = new CompositeDisposable(addDisposableListener(element, 'resize', () => {
|
|
333
|
-
clearTimeout(resizeTimeout);
|
|
334
|
-
resizeTimeout = setTimeout(() => {
|
|
335
|
-
cb();
|
|
336
|
-
}, DEBOUCE_DELAY);
|
|
337
|
-
}));
|
|
338
|
-
return disposable;
|
|
339
|
-
}
|
|
340
|
-
export function shiftAbsoluteElementIntoView(element, root, options = { buffer: 10 }) {
|
|
341
|
-
const buffer = options.buffer;
|
|
342
|
-
const rect = element.getBoundingClientRect();
|
|
343
|
-
const rootRect = root.getBoundingClientRect();
|
|
344
|
-
let translateX = 0;
|
|
345
|
-
let translateY = 0;
|
|
346
|
-
const left = rect.left - rootRect.left;
|
|
347
|
-
const top = rect.top - rootRect.top;
|
|
348
|
-
const bottom = rect.bottom - rootRect.bottom;
|
|
349
|
-
const right = rect.right - rootRect.right;
|
|
350
|
-
// Check horizontal overflow
|
|
351
|
-
if (left < buffer) {
|
|
352
|
-
translateX = buffer - left;
|
|
353
|
-
}
|
|
354
|
-
else if (right > buffer) {
|
|
355
|
-
translateX = -buffer - right;
|
|
356
|
-
}
|
|
357
|
-
// Check vertical overflow
|
|
358
|
-
if (top < buffer) {
|
|
359
|
-
translateY = buffer - top;
|
|
360
|
-
}
|
|
361
|
-
else if (bottom > buffer) {
|
|
362
|
-
translateY = -bottom - buffer;
|
|
363
|
-
}
|
|
364
|
-
// Apply the translation if needed
|
|
365
|
-
if (translateX !== 0 || translateY !== 0) {
|
|
366
|
-
element.style.transform = `translate(${translateX}px, ${translateY}px)`;
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
export function findRelativeZIndexParent(el) {
|
|
370
|
-
let tmp = el;
|
|
371
|
-
while (tmp && (tmp.style.zIndex === 'auto' || tmp.style.zIndex === '')) {
|
|
372
|
-
tmp = tmp.parentElement;
|
|
373
|
-
}
|
|
374
|
-
return tmp;
|
|
375
|
-
}
|
package/dist/esm/events.d.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { IDisposable } from './lifecycle';
|
|
2
|
-
export interface Event<T> {
|
|
3
|
-
(listener: (e: T) => any): IDisposable;
|
|
4
|
-
}
|
|
5
|
-
export interface EmitterOptions {
|
|
6
|
-
readonly replay?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare namespace Event {
|
|
9
|
-
const any: <T>(...children: Event<T>[]) => Event<T>;
|
|
10
|
-
}
|
|
11
|
-
export interface IDockviewEvent {
|
|
12
|
-
readonly defaultPrevented: boolean;
|
|
13
|
-
preventDefault(): void;
|
|
14
|
-
}
|
|
15
|
-
export declare class DockviewEvent implements IDockviewEvent {
|
|
16
|
-
private _defaultPrevented;
|
|
17
|
-
get defaultPrevented(): boolean;
|
|
18
|
-
preventDefault(): void;
|
|
19
|
-
}
|
|
20
|
-
export interface IAcceptableEvent {
|
|
21
|
-
readonly isAccepted: boolean;
|
|
22
|
-
accept(): void;
|
|
23
|
-
}
|
|
24
|
-
export declare class AcceptableEvent implements IAcceptableEvent {
|
|
25
|
-
private _isAccepted;
|
|
26
|
-
get isAccepted(): boolean;
|
|
27
|
-
accept(): void;
|
|
28
|
-
}
|
|
29
|
-
declare class LeakageMonitor {
|
|
30
|
-
readonly events: Map<Event<any>, Stacktrace>;
|
|
31
|
-
get size(): number;
|
|
32
|
-
add<T>(event: Event<T>, stacktrace: Stacktrace): void;
|
|
33
|
-
delete<T>(event: Event<T>): void;
|
|
34
|
-
clear(): void;
|
|
35
|
-
}
|
|
36
|
-
declare class Stacktrace {
|
|
37
|
-
readonly value: string;
|
|
38
|
-
static create(): Stacktrace;
|
|
39
|
-
private constructor();
|
|
40
|
-
print(): void;
|
|
41
|
-
}
|
|
42
|
-
export declare class Emitter<T> implements IDisposable {
|
|
43
|
-
private readonly options?;
|
|
44
|
-
private _event?;
|
|
45
|
-
private _last?;
|
|
46
|
-
private _listeners;
|
|
47
|
-
private _disposed;
|
|
48
|
-
private readonly _pauseTokens;
|
|
49
|
-
static ENABLE_TRACKING: boolean;
|
|
50
|
-
static readonly MEMORY_LEAK_WATCHER: LeakageMonitor;
|
|
51
|
-
static setLeakageMonitorEnabled(isEnabled: boolean): void;
|
|
52
|
-
get value(): T | undefined;
|
|
53
|
-
constructor(options?: EmitterOptions | undefined);
|
|
54
|
-
get event(): Event<T>;
|
|
55
|
-
fire(e: T): void;
|
|
56
|
-
pause(): IDisposable;
|
|
57
|
-
dispose(): void;
|
|
58
|
-
}
|
|
59
|
-
export declare function addDisposableListener<K extends keyof WindowEventMap>(element: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
60
|
-
export declare function addDisposableListener<K extends keyof HTMLElementEventMap>(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
61
|
-
/**
|
|
62
|
-
*
|
|
63
|
-
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
64
|
-
*
|
|
65
|
-
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
66
|
-
* This implementation exists to avoid external dependencies.
|
|
67
|
-
*
|
|
68
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
69
|
-
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
70
|
-
*/
|
|
71
|
-
export declare class AsapEvent implements IDisposable {
|
|
72
|
-
private readonly _onFired;
|
|
73
|
-
private _currentFireCount;
|
|
74
|
-
private _queued;
|
|
75
|
-
readonly onEvent: Event<void>;
|
|
76
|
-
fire(): void;
|
|
77
|
-
dispose(): void;
|
|
78
|
-
}
|
|
79
|
-
export {};
|
package/dist/esm/events.js
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
import { Disposable } from './lifecycle';
|
|
2
|
-
export var Event;
|
|
3
|
-
(function (Event) {
|
|
4
|
-
Event.any = (...children) => {
|
|
5
|
-
return (listener) => {
|
|
6
|
-
const disposables = children.map((child) => child(listener));
|
|
7
|
-
return {
|
|
8
|
-
dispose: () => {
|
|
9
|
-
disposables.forEach((d) => {
|
|
10
|
-
d.dispose();
|
|
11
|
-
});
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
})(Event || (Event = {}));
|
|
17
|
-
export class DockviewEvent {
|
|
18
|
-
constructor() {
|
|
19
|
-
this._defaultPrevented = false;
|
|
20
|
-
}
|
|
21
|
-
get defaultPrevented() {
|
|
22
|
-
return this._defaultPrevented;
|
|
23
|
-
}
|
|
24
|
-
preventDefault() {
|
|
25
|
-
this._defaultPrevented = true;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export class AcceptableEvent {
|
|
29
|
-
constructor() {
|
|
30
|
-
this._isAccepted = false;
|
|
31
|
-
}
|
|
32
|
-
get isAccepted() {
|
|
33
|
-
return this._isAccepted;
|
|
34
|
-
}
|
|
35
|
-
accept() {
|
|
36
|
-
this._isAccepted = true;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
class LeakageMonitor {
|
|
40
|
-
constructor() {
|
|
41
|
-
this.events = new Map();
|
|
42
|
-
}
|
|
43
|
-
get size() {
|
|
44
|
-
return this.events.size;
|
|
45
|
-
}
|
|
46
|
-
add(event, stacktrace) {
|
|
47
|
-
this.events.set(event, stacktrace);
|
|
48
|
-
}
|
|
49
|
-
delete(event) {
|
|
50
|
-
this.events.delete(event);
|
|
51
|
-
}
|
|
52
|
-
clear() {
|
|
53
|
-
this.events.clear();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
class Stacktrace {
|
|
57
|
-
static create() {
|
|
58
|
-
var _a;
|
|
59
|
-
return new Stacktrace((_a = new Error('listener stacktrace').stack) !== null && _a !== void 0 ? _a : '');
|
|
60
|
-
}
|
|
61
|
-
constructor(value) {
|
|
62
|
-
this.value = value;
|
|
63
|
-
}
|
|
64
|
-
print() {
|
|
65
|
-
console.warn('dockview: stacktrace', this.value);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
class Listener {
|
|
69
|
-
constructor(callback, stacktrace) {
|
|
70
|
-
this.callback = callback;
|
|
71
|
-
this.stacktrace = stacktrace;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts
|
|
75
|
-
export class Emitter {
|
|
76
|
-
static setLeakageMonitorEnabled(isEnabled) {
|
|
77
|
-
if (isEnabled !== Emitter.ENABLE_TRACKING) {
|
|
78
|
-
Emitter.MEMORY_LEAK_WATCHER.clear();
|
|
79
|
-
}
|
|
80
|
-
Emitter.ENABLE_TRACKING = isEnabled;
|
|
81
|
-
}
|
|
82
|
-
get value() {
|
|
83
|
-
return this._last;
|
|
84
|
-
}
|
|
85
|
-
constructor(options) {
|
|
86
|
-
this.options = options;
|
|
87
|
-
this._listeners = [];
|
|
88
|
-
this._disposed = false;
|
|
89
|
-
this._pauseTokens = new Set();
|
|
90
|
-
}
|
|
91
|
-
get event() {
|
|
92
|
-
if (!this._event) {
|
|
93
|
-
this._event = (callback) => {
|
|
94
|
-
var _a;
|
|
95
|
-
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {
|
|
96
|
-
callback(this._last);
|
|
97
|
-
}
|
|
98
|
-
const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);
|
|
99
|
-
this._listeners.push(listener);
|
|
100
|
-
return {
|
|
101
|
-
dispose: () => {
|
|
102
|
-
const index = this._listeners.indexOf(listener);
|
|
103
|
-
if (index > -1) {
|
|
104
|
-
this._listeners.splice(index, 1);
|
|
105
|
-
}
|
|
106
|
-
else if (Emitter.ENABLE_TRACKING) {
|
|
107
|
-
// console.warn(
|
|
108
|
-
// `dockview: listener already disposed`,
|
|
109
|
-
// Stacktrace.create().print()
|
|
110
|
-
// );
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
if (Emitter.ENABLE_TRACKING) {
|
|
116
|
-
Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
return this._event;
|
|
120
|
-
}
|
|
121
|
-
fire(e) {
|
|
122
|
-
var _a;
|
|
123
|
-
if (this._pauseTokens.size > 0) {
|
|
124
|
-
// while paused, the event is dropped entirely — `_last` is not
|
|
125
|
-
// updated, so replay subscribers won't see values fired during a pause
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) {
|
|
129
|
-
this._last = e;
|
|
130
|
-
}
|
|
131
|
-
for (const listener of this._listeners) {
|
|
132
|
-
listener.callback(e);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
pause() {
|
|
136
|
-
const token = {};
|
|
137
|
-
this._pauseTokens.add(token);
|
|
138
|
-
return Disposable.from(() => this._pauseTokens.delete(token));
|
|
139
|
-
}
|
|
140
|
-
dispose() {
|
|
141
|
-
if (!this._disposed) {
|
|
142
|
-
this._disposed = true;
|
|
143
|
-
if (this._listeners.length > 0) {
|
|
144
|
-
if (Emitter.ENABLE_TRACKING) {
|
|
145
|
-
queueMicrotask(() => {
|
|
146
|
-
var _a;
|
|
147
|
-
// don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block
|
|
148
|
-
for (const listener of this._listeners) {
|
|
149
|
-
console.warn('dockview: stacktrace', (_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
this._listeners = [];
|
|
154
|
-
}
|
|
155
|
-
if (Emitter.ENABLE_TRACKING && this._event) {
|
|
156
|
-
Emitter.MEMORY_LEAK_WATCHER.delete(this._event);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
Emitter.ENABLE_TRACKING = false;
|
|
162
|
-
Emitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();
|
|
163
|
-
export function addDisposableListener(element, type, listener, options) {
|
|
164
|
-
element.addEventListener(type, listener, options);
|
|
165
|
-
return {
|
|
166
|
-
dispose: () => {
|
|
167
|
-
element.removeEventListener(type, listener, options);
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
*
|
|
173
|
-
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
174
|
-
*
|
|
175
|
-
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
176
|
-
* This implementation exists to avoid external dependencies.
|
|
177
|
-
*
|
|
178
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
179
|
-
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
180
|
-
*/
|
|
181
|
-
export class AsapEvent {
|
|
182
|
-
constructor() {
|
|
183
|
-
this._onFired = new Emitter();
|
|
184
|
-
this._currentFireCount = 0;
|
|
185
|
-
this._queued = false;
|
|
186
|
-
this.onEvent = (e) => {
|
|
187
|
-
/**
|
|
188
|
-
* when the event is first subscribed to take note of the current fire count
|
|
189
|
-
*/
|
|
190
|
-
const fireCountAtTimeOfEventSubscription = this._currentFireCount;
|
|
191
|
-
return this._onFired.event(() => {
|
|
192
|
-
/**
|
|
193
|
-
* if the current fire count is greater than the fire count at event subscription
|
|
194
|
-
* then the event has been fired since we subscribed and it's ok to "on_next" the event.
|
|
195
|
-
*
|
|
196
|
-
* if the count is not greater then what we are recieving is an event from the microtask
|
|
197
|
-
* queue that was triggered before we actually subscribed and therfore we should ignore it.
|
|
198
|
-
*/
|
|
199
|
-
if (this._currentFireCount > fireCountAtTimeOfEventSubscription) {
|
|
200
|
-
e();
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
fire() {
|
|
206
|
-
this._currentFireCount++;
|
|
207
|
-
if (this._queued) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
this._queued = true;
|
|
211
|
-
queueMicrotask(() => {
|
|
212
|
-
this._queued = false;
|
|
213
|
-
this._onFired.fire();
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
dispose() {
|
|
217
|
-
this._onFired.dispose();
|
|
218
|
-
}
|
|
219
|
-
}
|
package/dist/esm/framwork.d.ts
DELETED
package/dist/esm/framwork.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|