dockview-core 1.8.4 → 1.8.5
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/README.md +51 -51
- package/dist/cjs/api/component.api.d.ts +455 -152
- package/dist/cjs/api/component.api.d.ts.map +1 -1
- package/dist/cjs/api/component.api.js +895 -592
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +29 -29
- package/dist/cjs/api/dockviewGroupPanelApi.js +53 -53
- package/dist/cjs/api/dockviewPanelApi.d.ts +47 -47
- package/dist/cjs/api/dockviewPanelApi.js +88 -88
- package/dist/cjs/api/gridviewPanelApi.d.ts +37 -37
- package/dist/cjs/api/gridviewPanelApi.js +47 -47
- package/dist/cjs/api/panelApi.d.ts +88 -88
- package/dist/cjs/api/panelApi.js +135 -135
- package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
- package/dist/cjs/api/paneviewPanelApi.js +57 -57
- package/dist/cjs/api/splitviewPanelApi.d.ts +32 -32
- package/dist/cjs/api/splitviewPanelApi.js +47 -47
- package/dist/cjs/array.d.ts +13 -13
- package/dist/cjs/array.js +67 -67
- package/dist/cjs/dnd/abstractDragHandler.d.ts +12 -12
- package/dist/cjs/dnd/abstractDragHandler.js +141 -141
- package/dist/cjs/dnd/dataTransfer.d.ts +30 -31
- package/dist/cjs/dnd/dataTransfer.d.ts.map +1 -1
- package/dist/cjs/dnd/dataTransfer.js +99 -100
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +27 -27
- package/dist/cjs/dnd/dnd.js +59 -59
- package/dist/cjs/dnd/droptarget.d.ts +53 -53
- package/dist/cjs/dnd/droptarget.js +304 -304
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dnd/ghost.d.ts +1 -1
- package/dist/cjs/dnd/ghost.js +15 -15
- package/dist/cjs/dnd/groupDragHandler.d.ts +12 -12
- package/dist/cjs/dnd/groupDragHandler.js +77 -77
- package/dist/cjs/dnd/overlay.d.ts +43 -43
- package/dist/cjs/dnd/overlay.d.ts.map +1 -1
- package/dist/cjs/dnd/overlay.js +412 -412
- package/dist/cjs/dnd/overlay.js.map +1 -1
- package/dist/cjs/dockview/components/panel/content.d.ts +30 -30
- package/dist/cjs/dockview/components/panel/content.js +100 -100
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +21 -21
- package/dist/cjs/dockview/components/tab/defaultTab.js +105 -105
- package/dist/cjs/dockview/components/tab/tab.d.ts +34 -34
- package/dist/cjs/dockview/components/tab/tab.js +120 -120
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +81 -81
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +325 -325
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +17 -17
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +77 -77
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +18 -18
- package/dist/cjs/dockview/components/watermark/watermark.js +87 -87
- package/dist/cjs/dockview/deserializer.d.ts +12 -12
- package/dist/cjs/dockview/deserializer.js +33 -33
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +159 -159
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.js +1170 -1156
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +23 -23
- package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +34 -34
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +30 -30
- package/dist/cjs/dockview/dockviewGroupPanel.js +97 -97
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +185 -185
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +632 -631
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +41 -41
- package/dist/cjs/dockview/dockviewPanel.js +172 -171
- package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanelModel.d.ts +35 -35
- package/dist/cjs/dockview/dockviewPanelModel.js +98 -98
- package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +133 -136
- package/dist/cjs/dockview/options.d.ts.map +1 -1
- package/dist/cjs/dockview/options.js +31 -31
- package/dist/cjs/dockview/types.d.ts +63 -63
- package/dist/cjs/dockview/types.js +10 -10
- package/dist/cjs/dockview/types.js.map +1 -1
- package/dist/cjs/dom.d.ts +16 -16
- package/dist/cjs/dom.js +197 -197
- package/dist/cjs/events.d.ts +47 -47
- package/dist/cjs/events.js +216 -216
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +88 -87
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +270 -270
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +40 -40
- package/dist/cjs/gridview/basePanelView.js +156 -156
- package/dist/cjs/gridview/branchNode.d.ts +49 -49
- package/dist/cjs/gridview/branchNode.js +343 -343
- package/dist/cjs/gridview/gridview.d.ts +133 -133
- package/dist/cjs/gridview/gridview.js +547 -547
- package/dist/cjs/gridview/gridviewComponent.d.ts +80 -80
- package/dist/cjs/gridview/gridviewComponent.d.ts.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.js +362 -360
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +65 -65
- package/dist/cjs/gridview/gridviewPanel.js +214 -214
- package/dist/cjs/gridview/leafNode.d.ts +34 -34
- package/dist/cjs/gridview/leafNode.js +170 -170
- package/dist/cjs/gridview/leafNode.js.map +1 -1
- package/dist/cjs/gridview/options.d.ts +17 -18
- package/dist/cjs/gridview/options.d.ts.map +1 -1
- package/dist/cjs/gridview/options.js +2 -2
- package/dist/cjs/gridview/types.d.ts +3 -3
- package/dist/cjs/gridview/types.js +2 -2
- package/dist/cjs/index.d.ts +42 -42
- package/dist/cjs/index.js +61 -61
- package/dist/cjs/lifecycle.d.ts +23 -23
- package/dist/cjs/lifecycle.js +65 -65
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/math.d.ts +5 -5
- package/dist/cjs/math.js +34 -34
- package/dist/cjs/panel/componentFactory.d.ts +11 -10
- package/dist/cjs/panel/componentFactory.d.ts.map +1 -1
- package/dist/cjs/panel/componentFactory.js +30 -30
- package/dist/cjs/panel/componentFactory.js.map +1 -1
- package/dist/cjs/panel/types.d.ts +33 -33
- package/dist/cjs/panel/types.js +2 -2
- package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +21 -21
- package/dist/cjs/paneview/defaultPaneviewHeader.js +90 -90
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +21 -21
- package/dist/cjs/paneview/draggablePaneviewPanel.js +131 -131
- package/dist/cjs/paneview/options.d.ts +25 -28
- package/dist/cjs/paneview/options.d.ts.map +1 -1
- package/dist/cjs/paneview/options.js +2 -2
- package/dist/cjs/paneview/paneview.d.ts +40 -40
- package/dist/cjs/paneview/paneview.d.ts.map +1 -1
- package/dist/cjs/paneview/paneview.js +200 -201
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +128 -128
- package/dist/cjs/paneview/paneviewComponent.js +400 -397
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +92 -92
- package/dist/cjs/paneview/paneviewPanel.d.ts.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.js +275 -275
- package/dist/cjs/resizable.d.ts +10 -7
- package/dist/cjs/resizable.d.ts.map +1 -1
- package/dist/cjs/resizable.js +79 -64
- package/dist/cjs/resizable.js.map +1 -1
- package/dist/cjs/splitview/options.d.ts +26 -27
- package/dist/cjs/splitview/options.d.ts.map +1 -1
- package/dist/cjs/splitview/options.js +2 -2
- package/dist/cjs/splitview/splitview.d.ts +128 -128
- package/dist/cjs/splitview/splitview.js +936 -936
- package/dist/cjs/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +101 -101
- package/dist/cjs/splitview/splitviewComponent.js +395 -392
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +45 -45
- package/dist/cjs/splitview/splitviewPanel.d.ts.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js +179 -179
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/cjs/splitview/viewItem.d.ts +25 -25
- package/dist/cjs/splitview/viewItem.js +119 -119
- package/dist/cjs/svg.d.ts +3 -3
- package/dist/cjs/svg.js +43 -43
- package/dist/cjs/types.d.ts +2 -2
- package/dist/cjs/types.js +2 -2
- package/dist/dockview-core.amd.js +7650 -7316
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +7601 -7267
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +7650 -7316
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +7650 -7316
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +7650 -7316
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +7601 -7267
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +455 -152
- package/dist/esm/api/component.api.d.ts.map +1 -1
- package/dist/esm/api/component.api.js +638 -335
- package/dist/esm/api/component.api.js.map +1 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +29 -29
- package/dist/esm/api/dockviewGroupPanelApi.js +27 -27
- package/dist/esm/api/dockviewPanelApi.d.ts +47 -47
- package/dist/esm/api/dockviewPanelApi.js +53 -53
- package/dist/esm/api/gridviewPanelApi.d.ts +37 -37
- package/dist/esm/api/gridviewPanelApi.js +25 -25
- package/dist/esm/api/panelApi.d.ts +88 -88
- package/dist/esm/api/panelApi.js +93 -93
- package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
- package/dist/esm/api/paneviewPanelApi.js +27 -27
- package/dist/esm/api/splitviewPanelApi.d.ts +32 -32
- package/dist/esm/api/splitviewPanelApi.js +25 -25
- package/dist/esm/array.d.ts +13 -13
- package/dist/esm/array.js +57 -57
- package/dist/esm/dnd/abstractDragHandler.d.ts +12 -12
- package/dist/esm/dnd/abstractDragHandler.js +63 -63
- package/dist/esm/dnd/dataTransfer.d.ts +30 -31
- package/dist/esm/dnd/dataTransfer.d.ts.map +1 -1
- package/dist/esm/dnd/dataTransfer.js +66 -69
- package/dist/esm/dnd/dataTransfer.js.map +1 -1
- package/dist/esm/dnd/dnd.d.ts +27 -27
- package/dist/esm/dnd/dnd.js +36 -36
- package/dist/esm/dnd/droptarget.d.ts +53 -53
- package/dist/esm/dnd/droptarget.js +274 -274
- package/dist/esm/dnd/droptarget.js.map +1 -1
- package/dist/esm/dnd/ghost.d.ts +1 -1
- package/dist/esm/dnd/ghost.js +11 -11
- package/dist/esm/dnd/groupDragHandler.d.ts +12 -12
- package/dist/esm/dnd/groupDragHandler.js +54 -54
- package/dist/esm/dnd/overlay.d.ts +43 -43
- package/dist/esm/dnd/overlay.d.ts.map +1 -1
- package/dist/esm/dnd/overlay.js +304 -304
- package/dist/esm/dnd/overlay.js.map +1 -1
- package/dist/esm/dockview/components/panel/content.d.ts +30 -30
- package/dist/esm/dockview/components/panel/content.js +73 -73
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +21 -21
- package/dist/esm/dockview/components/tab/defaultTab.js +67 -67
- package/dist/esm/dockview/components/tab/tab.d.ts +34 -34
- package/dist/esm/dockview/components/tab/tab.js +90 -90
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +81 -81
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +239 -239
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +17 -17
- package/dist/esm/dockview/components/titlebar/voidContainer.js +51 -51
- package/dist/esm/dockview/components/watermark/watermark.d.ts +18 -18
- package/dist/esm/dockview/components/watermark/watermark.js +61 -61
- package/dist/esm/dockview/deserializer.d.ts +12 -12
- package/dist/esm/dockview/deserializer.js +28 -28
- package/dist/esm/dockview/deserializer.js.map +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +159 -159
- package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewComponent.js +932 -918
- package/dist/esm/dockview/dockviewComponent.js.map +1 -1
- package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +23 -23
- package/dist/esm/dockview/dockviewFloatingGroupPanel.js +12 -12
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +30 -30
- package/dist/esm/dockview/dockviewGroupPanel.js +51 -51
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +185 -185
- package/dist/esm/dockview/dockviewGroupPanelModel.js +499 -498
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +41 -41
- package/dist/esm/dockview/dockviewPanel.js +105 -104
- package/dist/esm/dockview/dockviewPanel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanelModel.d.ts +35 -35
- package/dist/esm/dockview/dockviewPanelModel.js +74 -74
- package/dist/esm/dockview/dockviewPanelModel.js.map +1 -1
- package/dist/esm/dockview/options.d.ts +133 -136
- package/dist/esm/dockview/options.d.ts.map +1 -1
- package/dist/esm/dockview/options.js +24 -24
- package/dist/esm/dockview/types.d.ts +63 -63
- package/dist/esm/dockview/types.js +7 -7
- package/dist/esm/dom.d.ts +16 -16
- package/dist/esm/dom.js +126 -126
- package/dist/esm/events.d.ts +47 -47
- package/dist/esm/events.js +156 -156
- package/dist/esm/events.js.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +88 -87
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +184 -184
- package/dist/esm/gridview/baseComponentGridview.js.map +1 -1
- package/dist/esm/gridview/basePanelView.d.ts +40 -40
- package/dist/esm/gridview/basePanelView.js +85 -85
- package/dist/esm/gridview/branchNode.d.ts +49 -49
- package/dist/esm/gridview/branchNode.js +219 -219
- package/dist/esm/gridview/gridview.d.ts +133 -133
- package/dist/esm/gridview/gridview.js +461 -461
- package/dist/esm/gridview/gridviewComponent.d.ts +80 -80
- package/dist/esm/gridview/gridviewComponent.d.ts.map +1 -1
- package/dist/esm/gridview/gridviewComponent.js +264 -262
- package/dist/esm/gridview/gridviewComponent.js.map +1 -1
- package/dist/esm/gridview/gridviewPanel.d.ts +65 -65
- package/dist/esm/gridview/gridviewPanel.js +151 -151
- package/dist/esm/gridview/leafNode.d.ts +34 -34
- package/dist/esm/gridview/leafNode.js +103 -103
- package/dist/esm/gridview/options.d.ts +17 -18
- package/dist/esm/gridview/options.d.ts.map +1 -1
- package/dist/esm/gridview/options.js +1 -1
- package/dist/esm/gridview/types.d.ts +3 -3
- package/dist/esm/gridview/types.js +1 -1
- package/dist/esm/index.d.ts +42 -42
- package/dist/esm/index.js +34 -34
- package/dist/esm/lifecycle.d.ts +23 -23
- package/dist/esm/lifecycle.js +41 -41
- package/dist/esm/math.d.ts +5 -5
- package/dist/esm/math.js +28 -28
- package/dist/esm/panel/componentFactory.d.ts +11 -10
- package/dist/esm/panel/componentFactory.d.ts.map +1 -1
- package/dist/esm/panel/componentFactory.js +24 -24
- package/dist/esm/panel/componentFactory.js.map +1 -1
- package/dist/esm/panel/types.d.ts +33 -33
- package/dist/esm/panel/types.js +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.d.ts +21 -21
- package/dist/esm/paneview/defaultPaneviewHeader.js +63 -63
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +21 -21
- package/dist/esm/paneview/draggablePaneviewPanel.js +92 -92
- package/dist/esm/paneview/options.d.ts +25 -28
- package/dist/esm/paneview/options.d.ts.map +1 -1
- package/dist/esm/paneview/options.js +1 -1
- package/dist/esm/paneview/paneview.d.ts +40 -40
- package/dist/esm/paneview/paneview.d.ts.map +1 -1
- package/dist/esm/paneview/paneview.js +145 -145
- package/dist/esm/paneview/paneviewComponent.d.ts +128 -128
- package/dist/esm/paneview/paneviewComponent.js +276 -273
- package/dist/esm/paneview/paneviewComponent.js.map +1 -1
- package/dist/esm/paneview/paneviewPanel.d.ts +92 -92
- package/dist/esm/paneview/paneviewPanel.d.ts.map +1 -1
- package/dist/esm/paneview/paneviewPanel.js +192 -192
- package/dist/esm/resizable.d.ts +10 -7
- package/dist/esm/resizable.d.ts.map +1 -1
- package/dist/esm/resizable.js +48 -38
- package/dist/esm/resizable.js.map +1 -1
- package/dist/esm/splitview/options.d.ts +26 -27
- package/dist/esm/splitview/options.d.ts.map +1 -1
- package/dist/esm/splitview/options.js +1 -1
- package/dist/esm/splitview/splitview.d.ts +128 -128
- package/dist/esm/splitview/splitview.js +704 -704
- package/dist/esm/splitview/splitviewComponent.d.ts +101 -101
- package/dist/esm/splitview/splitviewComponent.js +261 -258
- package/dist/esm/splitview/splitviewComponent.js.map +1 -1
- package/dist/esm/splitview/splitviewPanel.d.ts +45 -45
- package/dist/esm/splitview/splitviewPanel.d.ts.map +1 -1
- package/dist/esm/splitview/splitviewPanel.js +108 -108
- package/dist/esm/splitview/splitviewPanel.js.map +1 -1
- package/dist/esm/splitview/viewItem.d.ts +25 -25
- package/dist/esm/splitview/viewItem.js +74 -74
- package/dist/esm/svg.d.ts +3 -3
- package/dist/esm/svg.js +31 -31
- package/dist/esm/types.d.ts +2 -2
- package/dist/esm/types.js +1 -1
- package/package.json +30 -42
- package/LICENSE +0 -21
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import { Event } from '../events';
|
|
2
|
-
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
-
import { Direction } from '../gridview/baseComponentGridview';
|
|
4
|
-
export declare function directionToPosition(direction: Direction): Position;
|
|
5
|
-
export declare function positionToDirection(position: Position): Direction;
|
|
6
|
-
export interface DroptargetEvent {
|
|
7
|
-
readonly position: Position;
|
|
8
|
-
readonly nativeEvent: DragEvent;
|
|
9
|
-
}
|
|
10
|
-
export type Position = 'top' | 'bottom' | 'left' | 'right' | 'center';
|
|
11
|
-
export type CanDisplayOverlay = boolean | ((dragEvent: DragEvent, state: Position) => boolean);
|
|
12
|
-
export declare class Droptarget extends CompositeDisposable {
|
|
13
|
-
private readonly element;
|
|
14
|
-
private readonly options;
|
|
15
|
-
private targetElement;
|
|
16
|
-
private overlayElement;
|
|
17
|
-
private _state;
|
|
18
|
-
private _acceptedTargetZonesSet;
|
|
19
|
-
private readonly _onDrop;
|
|
20
|
-
readonly onDrop: Event<DroptargetEvent>;
|
|
21
|
-
private static USED_EVENT_ID;
|
|
22
|
-
get state(): Position | undefined;
|
|
23
|
-
constructor(element: HTMLElement, options: {
|
|
24
|
-
canDisplayOverlay: CanDisplayOverlay;
|
|
25
|
-
acceptedTargetZones: Position[];
|
|
26
|
-
overlayModel?: {
|
|
27
|
-
size?: {
|
|
28
|
-
value: number;
|
|
29
|
-
type: 'pixels' | 'percentage';
|
|
30
|
-
};
|
|
31
|
-
activationSize?: {
|
|
32
|
-
value: number;
|
|
33
|
-
type: 'pixels' | 'percentage';
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
|
-
setTargetZones(acceptedTargetZones: Position[]): void;
|
|
38
|
-
dispose(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Add a property to the event object for other potential listeners to check
|
|
41
|
-
*/
|
|
42
|
-
private markAsUsed;
|
|
43
|
-
/**
|
|
44
|
-
* Check is the event has already been used by another instance od DropTarget
|
|
45
|
-
*/
|
|
46
|
-
private isAlreadyUsed;
|
|
47
|
-
private toggleClasses;
|
|
48
|
-
private setState;
|
|
49
|
-
private calculateQuadrant;
|
|
50
|
-
private removeDropTarget;
|
|
51
|
-
}
|
|
52
|
-
export declare function calculateQuadrantAsPercentage(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;
|
|
53
|
-
export declare function calculateQuadrantAsPixels(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;
|
|
1
|
+
import { Event } from '../events';
|
|
2
|
+
import { CompositeDisposable } from '../lifecycle';
|
|
3
|
+
import { Direction } from '../gridview/baseComponentGridview';
|
|
4
|
+
export declare function directionToPosition(direction: Direction): Position;
|
|
5
|
+
export declare function positionToDirection(position: Position): Direction;
|
|
6
|
+
export interface DroptargetEvent {
|
|
7
|
+
readonly position: Position;
|
|
8
|
+
readonly nativeEvent: DragEvent;
|
|
9
|
+
}
|
|
10
|
+
export type Position = 'top' | 'bottom' | 'left' | 'right' | 'center';
|
|
11
|
+
export type CanDisplayOverlay = boolean | ((dragEvent: DragEvent, state: Position) => boolean);
|
|
12
|
+
export declare class Droptarget extends CompositeDisposable {
|
|
13
|
+
private readonly element;
|
|
14
|
+
private readonly options;
|
|
15
|
+
private targetElement;
|
|
16
|
+
private overlayElement;
|
|
17
|
+
private _state;
|
|
18
|
+
private _acceptedTargetZonesSet;
|
|
19
|
+
private readonly _onDrop;
|
|
20
|
+
readonly onDrop: Event<DroptargetEvent>;
|
|
21
|
+
private static USED_EVENT_ID;
|
|
22
|
+
get state(): Position | undefined;
|
|
23
|
+
constructor(element: HTMLElement, options: {
|
|
24
|
+
canDisplayOverlay: CanDisplayOverlay;
|
|
25
|
+
acceptedTargetZones: Position[];
|
|
26
|
+
overlayModel?: {
|
|
27
|
+
size?: {
|
|
28
|
+
value: number;
|
|
29
|
+
type: 'pixels' | 'percentage';
|
|
30
|
+
};
|
|
31
|
+
activationSize?: {
|
|
32
|
+
value: number;
|
|
33
|
+
type: 'pixels' | 'percentage';
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
setTargetZones(acceptedTargetZones: Position[]): void;
|
|
38
|
+
dispose(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Add a property to the event object for other potential listeners to check
|
|
41
|
+
*/
|
|
42
|
+
private markAsUsed;
|
|
43
|
+
/**
|
|
44
|
+
* Check is the event has already been used by another instance od DropTarget
|
|
45
|
+
*/
|
|
46
|
+
private isAlreadyUsed;
|
|
47
|
+
private toggleClasses;
|
|
48
|
+
private setState;
|
|
49
|
+
private calculateQuadrant;
|
|
50
|
+
private removeDropTarget;
|
|
51
|
+
}
|
|
52
|
+
export declare function calculateQuadrantAsPercentage(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;
|
|
53
|
+
export declare function calculateQuadrantAsPixels(overlayType: Set<Position>, x: number, y: number, width: number, height: number, threshold: number): Position | null;
|
|
54
54
|
//# sourceMappingURL=droptarget.d.ts.map
|
|
@@ -1,275 +1,275 @@
|
|
|
1
|
-
import { toggleClass } from '../dom';
|
|
2
|
-
import { Emitter } from '../events';
|
|
3
|
-
import { CompositeDisposable } from '../lifecycle';
|
|
4
|
-
import { DragAndDropObserver } from './dnd';
|
|
5
|
-
import { clamp } from '../math';
|
|
6
|
-
function numberOrFallback(maybeNumber, fallback) {
|
|
7
|
-
return typeof maybeNumber === 'number' ? maybeNumber : fallback;
|
|
8
|
-
}
|
|
9
|
-
export function directionToPosition(direction) {
|
|
10
|
-
switch (direction) {
|
|
11
|
-
case 'above':
|
|
12
|
-
return 'top';
|
|
13
|
-
case 'below':
|
|
14
|
-
return 'bottom';
|
|
15
|
-
case 'left':
|
|
16
|
-
return 'left';
|
|
17
|
-
case 'right':
|
|
18
|
-
return 'right';
|
|
19
|
-
case 'within':
|
|
20
|
-
return 'center';
|
|
21
|
-
default:
|
|
22
|
-
throw new Error(`invalid direction '${direction}'`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
export function positionToDirection(position) {
|
|
26
|
-
switch (position) {
|
|
27
|
-
case 'top':
|
|
28
|
-
return 'above';
|
|
29
|
-
case 'bottom':
|
|
30
|
-
return 'below';
|
|
31
|
-
case 'left':
|
|
32
|
-
return 'left';
|
|
33
|
-
case 'right':
|
|
34
|
-
return 'right';
|
|
35
|
-
case 'center':
|
|
36
|
-
return 'within';
|
|
37
|
-
default:
|
|
38
|
-
throw new Error(`invalid position '${position}'`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
export class Droptarget extends CompositeDisposable {
|
|
42
|
-
get state() {
|
|
43
|
-
return this._state;
|
|
44
|
-
}
|
|
45
|
-
constructor(element, options) {
|
|
46
|
-
super();
|
|
47
|
-
this.element = element;
|
|
48
|
-
this.options = options;
|
|
49
|
-
this._onDrop = new Emitter();
|
|
50
|
-
this.onDrop = this._onDrop.event;
|
|
51
|
-
// use a set to take advantage of #<set>.has
|
|
52
|
-
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
53
|
-
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
54
|
-
onDragEnter: () => undefined,
|
|
55
|
-
onDragOver: (e) => {
|
|
56
|
-
if (this._acceptedTargetZonesSet.size === 0) {
|
|
57
|
-
this.removeDropTarget();
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
const width = this.element.clientWidth;
|
|
61
|
-
const height = this.element.clientHeight;
|
|
62
|
-
if (width === 0 || height === 0) {
|
|
63
|
-
return; // avoid div!0
|
|
64
|
-
}
|
|
65
|
-
const rect = e.currentTarget.getBoundingClientRect();
|
|
66
|
-
const x = e.clientX - rect.left;
|
|
67
|
-
const y = e.clientY - rect.top;
|
|
68
|
-
const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);
|
|
69
|
-
/**
|
|
70
|
-
* If the event has already been used by another DropTarget instance
|
|
71
|
-
* then don't show a second drop target, only one target should be
|
|
72
|
-
* active at any one time
|
|
73
|
-
*/
|
|
74
|
-
if (this.isAlreadyUsed(e) || quadrant === null) {
|
|
75
|
-
// no drop target should be displayed
|
|
76
|
-
this.removeDropTarget();
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
80
|
-
if (!this.options.canDisplayOverlay) {
|
|
81
|
-
this.removeDropTarget();
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else if (!this.options.canDisplayOverlay(e, quadrant)) {
|
|
86
|
-
this.removeDropTarget();
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
this.markAsUsed(e);
|
|
90
|
-
if (!this.targetElement) {
|
|
91
|
-
this.targetElement = document.createElement('div');
|
|
92
|
-
this.targetElement.className = 'drop-target-dropzone';
|
|
93
|
-
this.overlayElement = document.createElement('div');
|
|
94
|
-
this.overlayElement.className = 'drop-target-selection';
|
|
95
|
-
this._state = 'center';
|
|
96
|
-
this.targetElement.appendChild(this.overlayElement);
|
|
97
|
-
this.element.classList.add('drop-target');
|
|
98
|
-
this.element.append(this.targetElement);
|
|
99
|
-
}
|
|
100
|
-
this.toggleClasses(quadrant, width, height);
|
|
101
|
-
this.setState(quadrant);
|
|
102
|
-
},
|
|
103
|
-
onDragLeave: () => {
|
|
104
|
-
this.removeDropTarget();
|
|
105
|
-
},
|
|
106
|
-
onDragEnd: () => {
|
|
107
|
-
this.removeDropTarget();
|
|
108
|
-
},
|
|
109
|
-
onDrop: (e) => {
|
|
110
|
-
e.preventDefault();
|
|
111
|
-
const state = this._state;
|
|
112
|
-
this.removeDropTarget();
|
|
113
|
-
if (state) {
|
|
114
|
-
// only stop the propagation of the event if we are dealing with it
|
|
115
|
-
// which is only when the target has state
|
|
116
|
-
e.stopPropagation();
|
|
117
|
-
this._onDrop.fire({ position: state, nativeEvent: e });
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
setTargetZones(acceptedTargetZones) {
|
|
123
|
-
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
124
|
-
}
|
|
125
|
-
dispose() {
|
|
126
|
-
this.removeDropTarget();
|
|
127
|
-
super.dispose();
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Add a property to the event object for other potential listeners to check
|
|
131
|
-
*/
|
|
132
|
-
markAsUsed(event) {
|
|
133
|
-
event[Droptarget.USED_EVENT_ID] = true;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Check is the event has already been used by another instance od DropTarget
|
|
137
|
-
*/
|
|
138
|
-
isAlreadyUsed(event) {
|
|
139
|
-
const value = event[Droptarget.USED_EVENT_ID];
|
|
140
|
-
return typeof value === 'boolean' && value;
|
|
141
|
-
}
|
|
142
|
-
toggleClasses(quadrant, width, height) {
|
|
143
|
-
var _a, _b, _c, _d;
|
|
144
|
-
if (!this.overlayElement) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const isSmallX = width < 100;
|
|
148
|
-
const isSmallY = height < 100;
|
|
149
|
-
const isLeft = quadrant === 'left';
|
|
150
|
-
const isRight = quadrant === 'right';
|
|
151
|
-
const isTop = quadrant === 'top';
|
|
152
|
-
const isBottom = quadrant === 'bottom';
|
|
153
|
-
const rightClass = !isSmallX && isRight;
|
|
154
|
-
const leftClass = !isSmallX && isLeft;
|
|
155
|
-
const topClass = !isSmallY && isTop;
|
|
156
|
-
const bottomClass = !isSmallY && isBottom;
|
|
157
|
-
let size = 0.5;
|
|
158
|
-
if (((_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) === null || _b === void 0 ? void 0 : _b.type) === 'percentage') {
|
|
159
|
-
size = clamp(this.options.overlayModel.size.value, 0, 100) / 100;
|
|
160
|
-
}
|
|
161
|
-
if (((_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) === null || _d === void 0 ? void 0 : _d.type) === 'pixels') {
|
|
162
|
-
if (rightClass || leftClass) {
|
|
163
|
-
size =
|
|
164
|
-
clamp(0, this.options.overlayModel.size.value, width) /
|
|
165
|
-
width;
|
|
166
|
-
}
|
|
167
|
-
if (topClass || bottomClass) {
|
|
168
|
-
size =
|
|
169
|
-
clamp(0, this.options.overlayModel.size.value, height) /
|
|
170
|
-
height;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
const translate = (1 - size) / 2;
|
|
174
|
-
const scale = size;
|
|
175
|
-
let transform;
|
|
176
|
-
if (rightClass) {
|
|
177
|
-
transform = `translateX(${100 * translate}%) scaleX(${scale})`;
|
|
178
|
-
}
|
|
179
|
-
else if (leftClass) {
|
|
180
|
-
transform = `translateX(-${100 * translate}%) scaleX(${scale})`;
|
|
181
|
-
}
|
|
182
|
-
else if (topClass) {
|
|
183
|
-
transform = `translateY(-${100 * translate}%) scaleY(${scale})`;
|
|
184
|
-
}
|
|
185
|
-
else if (bottomClass) {
|
|
186
|
-
transform = `translateY(${100 * translate}%) scaleY(${scale})`;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
transform = '';
|
|
190
|
-
}
|
|
191
|
-
this.overlayElement.style.transform = transform;
|
|
192
|
-
toggleClass(this.overlayElement, 'small-right', isSmallX && isRight);
|
|
193
|
-
toggleClass(this.overlayElement, 'small-left', isSmallX && isLeft);
|
|
194
|
-
toggleClass(this.overlayElement, 'small-top', isSmallY && isTop);
|
|
195
|
-
toggleClass(this.overlayElement, 'small-bottom', isSmallY && isBottom);
|
|
196
|
-
}
|
|
197
|
-
setState(quadrant) {
|
|
198
|
-
switch (quadrant) {
|
|
199
|
-
case 'top':
|
|
200
|
-
this._state = 'top';
|
|
201
|
-
break;
|
|
202
|
-
case 'left':
|
|
203
|
-
this._state = 'left';
|
|
204
|
-
break;
|
|
205
|
-
case 'bottom':
|
|
206
|
-
this._state = 'bottom';
|
|
207
|
-
break;
|
|
208
|
-
case 'right':
|
|
209
|
-
this._state = 'right';
|
|
210
|
-
break;
|
|
211
|
-
case 'center':
|
|
212
|
-
this._state = 'center';
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
calculateQuadrant(overlayType, x, y, width, height) {
|
|
217
|
-
var _a, _b, _c, _d, _e, _f;
|
|
218
|
-
const isPercentage = ((_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) === undefined ||
|
|
219
|
-
((_c = (_b = this.options.overlayModel) === null || _b === void 0 ? void 0 : _b.activationSize) === null || _c === void 0 ? void 0 : _c.type) === 'percentage';
|
|
220
|
-
const value = numberOrFallback((_f = (_e = (_d = this.options) === null || _d === void 0 ? void 0 : _d.overlayModel) === null || _e === void 0 ? void 0 : _e.activationSize) === null || _f === void 0 ? void 0 : _f.value, 20);
|
|
221
|
-
if (isPercentage) {
|
|
222
|
-
return calculateQuadrantAsPercentage(overlayType, x, y, width, height, value);
|
|
223
|
-
}
|
|
224
|
-
return calculateQuadrantAsPixels(overlayType, x, y, width, height, value);
|
|
225
|
-
}
|
|
226
|
-
removeDropTarget() {
|
|
227
|
-
if (this.targetElement) {
|
|
228
|
-
this._state = undefined;
|
|
229
|
-
this.element.removeChild(this.targetElement);
|
|
230
|
-
this.targetElement = undefined;
|
|
231
|
-
this.overlayElement = undefined;
|
|
232
|
-
this.element.classList.remove('drop-target');
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
Droptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';
|
|
237
|
-
export function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {
|
|
238
|
-
const xp = (100 * x) / width;
|
|
239
|
-
const yp = (100 * y) / height;
|
|
240
|
-
if (overlayType.has('left') && xp < threshold) {
|
|
241
|
-
return 'left';
|
|
242
|
-
}
|
|
243
|
-
if (overlayType.has('right') && xp > 100 - threshold) {
|
|
244
|
-
return 'right';
|
|
245
|
-
}
|
|
246
|
-
if (overlayType.has('top') && yp < threshold) {
|
|
247
|
-
return 'top';
|
|
248
|
-
}
|
|
249
|
-
if (overlayType.has('bottom') && yp > 100 - threshold) {
|
|
250
|
-
return 'bottom';
|
|
251
|
-
}
|
|
252
|
-
if (!overlayType.has('center')) {
|
|
253
|
-
return null;
|
|
254
|
-
}
|
|
255
|
-
return 'center';
|
|
256
|
-
}
|
|
257
|
-
export function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {
|
|
258
|
-
if (overlayType.has('left') && x < threshold) {
|
|
259
|
-
return 'left';
|
|
260
|
-
}
|
|
261
|
-
if (overlayType.has('right') && x > width - threshold) {
|
|
262
|
-
return 'right';
|
|
263
|
-
}
|
|
264
|
-
if (overlayType.has('top') && y < threshold) {
|
|
265
|
-
return 'top';
|
|
266
|
-
}
|
|
267
|
-
if (overlayType.has('bottom') && y > height - threshold) {
|
|
268
|
-
return 'bottom';
|
|
269
|
-
}
|
|
270
|
-
if (!overlayType.has('center')) {
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
return 'center';
|
|
274
|
-
}
|
|
1
|
+
import { toggleClass } from '../dom';
|
|
2
|
+
import { Emitter } from '../events';
|
|
3
|
+
import { CompositeDisposable } from '../lifecycle';
|
|
4
|
+
import { DragAndDropObserver } from './dnd';
|
|
5
|
+
import { clamp } from '../math';
|
|
6
|
+
function numberOrFallback(maybeNumber, fallback) {
|
|
7
|
+
return typeof maybeNumber === 'number' ? maybeNumber : fallback;
|
|
8
|
+
}
|
|
9
|
+
export function directionToPosition(direction) {
|
|
10
|
+
switch (direction) {
|
|
11
|
+
case 'above':
|
|
12
|
+
return 'top';
|
|
13
|
+
case 'below':
|
|
14
|
+
return 'bottom';
|
|
15
|
+
case 'left':
|
|
16
|
+
return 'left';
|
|
17
|
+
case 'right':
|
|
18
|
+
return 'right';
|
|
19
|
+
case 'within':
|
|
20
|
+
return 'center';
|
|
21
|
+
default:
|
|
22
|
+
throw new Error(`invalid direction '${direction}'`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function positionToDirection(position) {
|
|
26
|
+
switch (position) {
|
|
27
|
+
case 'top':
|
|
28
|
+
return 'above';
|
|
29
|
+
case 'bottom':
|
|
30
|
+
return 'below';
|
|
31
|
+
case 'left':
|
|
32
|
+
return 'left';
|
|
33
|
+
case 'right':
|
|
34
|
+
return 'right';
|
|
35
|
+
case 'center':
|
|
36
|
+
return 'within';
|
|
37
|
+
default:
|
|
38
|
+
throw new Error(`invalid position '${position}'`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class Droptarget extends CompositeDisposable {
|
|
42
|
+
get state() {
|
|
43
|
+
return this._state;
|
|
44
|
+
}
|
|
45
|
+
constructor(element, options) {
|
|
46
|
+
super();
|
|
47
|
+
this.element = element;
|
|
48
|
+
this.options = options;
|
|
49
|
+
this._onDrop = new Emitter();
|
|
50
|
+
this.onDrop = this._onDrop.event;
|
|
51
|
+
// use a set to take advantage of #<set>.has
|
|
52
|
+
this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);
|
|
53
|
+
this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {
|
|
54
|
+
onDragEnter: () => undefined,
|
|
55
|
+
onDragOver: (e) => {
|
|
56
|
+
if (this._acceptedTargetZonesSet.size === 0) {
|
|
57
|
+
this.removeDropTarget();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const width = this.element.clientWidth;
|
|
61
|
+
const height = this.element.clientHeight;
|
|
62
|
+
if (width === 0 || height === 0) {
|
|
63
|
+
return; // avoid div!0
|
|
64
|
+
}
|
|
65
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
66
|
+
const x = e.clientX - rect.left;
|
|
67
|
+
const y = e.clientY - rect.top;
|
|
68
|
+
const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);
|
|
69
|
+
/**
|
|
70
|
+
* If the event has already been used by another DropTarget instance
|
|
71
|
+
* then don't show a second drop target, only one target should be
|
|
72
|
+
* active at any one time
|
|
73
|
+
*/
|
|
74
|
+
if (this.isAlreadyUsed(e) || quadrant === null) {
|
|
75
|
+
// no drop target should be displayed
|
|
76
|
+
this.removeDropTarget();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (typeof this.options.canDisplayOverlay === 'boolean') {
|
|
80
|
+
if (!this.options.canDisplayOverlay) {
|
|
81
|
+
this.removeDropTarget();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if (!this.options.canDisplayOverlay(e, quadrant)) {
|
|
86
|
+
this.removeDropTarget();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.markAsUsed(e);
|
|
90
|
+
if (!this.targetElement) {
|
|
91
|
+
this.targetElement = document.createElement('div');
|
|
92
|
+
this.targetElement.className = 'drop-target-dropzone';
|
|
93
|
+
this.overlayElement = document.createElement('div');
|
|
94
|
+
this.overlayElement.className = 'drop-target-selection';
|
|
95
|
+
this._state = 'center';
|
|
96
|
+
this.targetElement.appendChild(this.overlayElement);
|
|
97
|
+
this.element.classList.add('drop-target');
|
|
98
|
+
this.element.append(this.targetElement);
|
|
99
|
+
}
|
|
100
|
+
this.toggleClasses(quadrant, width, height);
|
|
101
|
+
this.setState(quadrant);
|
|
102
|
+
},
|
|
103
|
+
onDragLeave: () => {
|
|
104
|
+
this.removeDropTarget();
|
|
105
|
+
},
|
|
106
|
+
onDragEnd: () => {
|
|
107
|
+
this.removeDropTarget();
|
|
108
|
+
},
|
|
109
|
+
onDrop: (e) => {
|
|
110
|
+
e.preventDefault();
|
|
111
|
+
const state = this._state;
|
|
112
|
+
this.removeDropTarget();
|
|
113
|
+
if (state) {
|
|
114
|
+
// only stop the propagation of the event if we are dealing with it
|
|
115
|
+
// which is only when the target has state
|
|
116
|
+
e.stopPropagation();
|
|
117
|
+
this._onDrop.fire({ position: state, nativeEvent: e });
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
}));
|
|
121
|
+
}
|
|
122
|
+
setTargetZones(acceptedTargetZones) {
|
|
123
|
+
this._acceptedTargetZonesSet = new Set(acceptedTargetZones);
|
|
124
|
+
}
|
|
125
|
+
dispose() {
|
|
126
|
+
this.removeDropTarget();
|
|
127
|
+
super.dispose();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Add a property to the event object for other potential listeners to check
|
|
131
|
+
*/
|
|
132
|
+
markAsUsed(event) {
|
|
133
|
+
event[Droptarget.USED_EVENT_ID] = true;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check is the event has already been used by another instance od DropTarget
|
|
137
|
+
*/
|
|
138
|
+
isAlreadyUsed(event) {
|
|
139
|
+
const value = event[Droptarget.USED_EVENT_ID];
|
|
140
|
+
return typeof value === 'boolean' && value;
|
|
141
|
+
}
|
|
142
|
+
toggleClasses(quadrant, width, height) {
|
|
143
|
+
var _a, _b, _c, _d;
|
|
144
|
+
if (!this.overlayElement) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const isSmallX = width < 100;
|
|
148
|
+
const isSmallY = height < 100;
|
|
149
|
+
const isLeft = quadrant === 'left';
|
|
150
|
+
const isRight = quadrant === 'right';
|
|
151
|
+
const isTop = quadrant === 'top';
|
|
152
|
+
const isBottom = quadrant === 'bottom';
|
|
153
|
+
const rightClass = !isSmallX && isRight;
|
|
154
|
+
const leftClass = !isSmallX && isLeft;
|
|
155
|
+
const topClass = !isSmallY && isTop;
|
|
156
|
+
const bottomClass = !isSmallY && isBottom;
|
|
157
|
+
let size = 0.5;
|
|
158
|
+
if (((_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) === null || _b === void 0 ? void 0 : _b.type) === 'percentage') {
|
|
159
|
+
size = clamp(this.options.overlayModel.size.value, 0, 100) / 100;
|
|
160
|
+
}
|
|
161
|
+
if (((_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) === null || _d === void 0 ? void 0 : _d.type) === 'pixels') {
|
|
162
|
+
if (rightClass || leftClass) {
|
|
163
|
+
size =
|
|
164
|
+
clamp(0, this.options.overlayModel.size.value, width) /
|
|
165
|
+
width;
|
|
166
|
+
}
|
|
167
|
+
if (topClass || bottomClass) {
|
|
168
|
+
size =
|
|
169
|
+
clamp(0, this.options.overlayModel.size.value, height) /
|
|
170
|
+
height;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const translate = (1 - size) / 2;
|
|
174
|
+
const scale = size;
|
|
175
|
+
let transform;
|
|
176
|
+
if (rightClass) {
|
|
177
|
+
transform = `translateX(${100 * translate}%) scaleX(${scale})`;
|
|
178
|
+
}
|
|
179
|
+
else if (leftClass) {
|
|
180
|
+
transform = `translateX(-${100 * translate}%) scaleX(${scale})`;
|
|
181
|
+
}
|
|
182
|
+
else if (topClass) {
|
|
183
|
+
transform = `translateY(-${100 * translate}%) scaleY(${scale})`;
|
|
184
|
+
}
|
|
185
|
+
else if (bottomClass) {
|
|
186
|
+
transform = `translateY(${100 * translate}%) scaleY(${scale})`;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
transform = '';
|
|
190
|
+
}
|
|
191
|
+
this.overlayElement.style.transform = transform;
|
|
192
|
+
toggleClass(this.overlayElement, 'small-right', isSmallX && isRight);
|
|
193
|
+
toggleClass(this.overlayElement, 'small-left', isSmallX && isLeft);
|
|
194
|
+
toggleClass(this.overlayElement, 'small-top', isSmallY && isTop);
|
|
195
|
+
toggleClass(this.overlayElement, 'small-bottom', isSmallY && isBottom);
|
|
196
|
+
}
|
|
197
|
+
setState(quadrant) {
|
|
198
|
+
switch (quadrant) {
|
|
199
|
+
case 'top':
|
|
200
|
+
this._state = 'top';
|
|
201
|
+
break;
|
|
202
|
+
case 'left':
|
|
203
|
+
this._state = 'left';
|
|
204
|
+
break;
|
|
205
|
+
case 'bottom':
|
|
206
|
+
this._state = 'bottom';
|
|
207
|
+
break;
|
|
208
|
+
case 'right':
|
|
209
|
+
this._state = 'right';
|
|
210
|
+
break;
|
|
211
|
+
case 'center':
|
|
212
|
+
this._state = 'center';
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
calculateQuadrant(overlayType, x, y, width, height) {
|
|
217
|
+
var _a, _b, _c, _d, _e, _f;
|
|
218
|
+
const isPercentage = ((_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) === undefined ||
|
|
219
|
+
((_c = (_b = this.options.overlayModel) === null || _b === void 0 ? void 0 : _b.activationSize) === null || _c === void 0 ? void 0 : _c.type) === 'percentage';
|
|
220
|
+
const value = numberOrFallback((_f = (_e = (_d = this.options) === null || _d === void 0 ? void 0 : _d.overlayModel) === null || _e === void 0 ? void 0 : _e.activationSize) === null || _f === void 0 ? void 0 : _f.value, 20);
|
|
221
|
+
if (isPercentage) {
|
|
222
|
+
return calculateQuadrantAsPercentage(overlayType, x, y, width, height, value);
|
|
223
|
+
}
|
|
224
|
+
return calculateQuadrantAsPixels(overlayType, x, y, width, height, value);
|
|
225
|
+
}
|
|
226
|
+
removeDropTarget() {
|
|
227
|
+
if (this.targetElement) {
|
|
228
|
+
this._state = undefined;
|
|
229
|
+
this.element.removeChild(this.targetElement);
|
|
230
|
+
this.targetElement = undefined;
|
|
231
|
+
this.overlayElement = undefined;
|
|
232
|
+
this.element.classList.remove('drop-target');
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
Droptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';
|
|
237
|
+
export function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {
|
|
238
|
+
const xp = (100 * x) / width;
|
|
239
|
+
const yp = (100 * y) / height;
|
|
240
|
+
if (overlayType.has('left') && xp < threshold) {
|
|
241
|
+
return 'left';
|
|
242
|
+
}
|
|
243
|
+
if (overlayType.has('right') && xp > 100 - threshold) {
|
|
244
|
+
return 'right';
|
|
245
|
+
}
|
|
246
|
+
if (overlayType.has('top') && yp < threshold) {
|
|
247
|
+
return 'top';
|
|
248
|
+
}
|
|
249
|
+
if (overlayType.has('bottom') && yp > 100 - threshold) {
|
|
250
|
+
return 'bottom';
|
|
251
|
+
}
|
|
252
|
+
if (!overlayType.has('center')) {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
return 'center';
|
|
256
|
+
}
|
|
257
|
+
export function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {
|
|
258
|
+
if (overlayType.has('left') && x < threshold) {
|
|
259
|
+
return 'left';
|
|
260
|
+
}
|
|
261
|
+
if (overlayType.has('right') && x > width - threshold) {
|
|
262
|
+
return 'right';
|
|
263
|
+
}
|
|
264
|
+
if (overlayType.has('top') && y < threshold) {
|
|
265
|
+
return 'top';
|
|
266
|
+
}
|
|
267
|
+
if (overlayType.has('bottom') && y > height - threshold) {
|
|
268
|
+
return 'bottom';
|
|
269
|
+
}
|
|
270
|
+
if (!overlayType.has('center')) {
|
|
271
|
+
return null;
|
|
272
|
+
}
|
|
273
|
+
return 'center';
|
|
274
|
+
}
|
|
275
275
|
//# sourceMappingURL=droptarget.js.map
|