diff --git a/packages/dockview-core/src/api/component.api.ts b/packages/dockview-core/src/api/component.api.ts index f919d779f..76d9cd128 100644 --- a/packages/dockview-core/src/api/component.api.ts +++ b/packages/dockview-core/src/api/component.api.ts @@ -51,8 +51,8 @@ import { Box } from '../types'; import { DockviewDidDropEvent, DockviewWillDropEvent, - WillShowOverlayLocationEvent, } from '../dockview/dockviewGroupPanelModel'; +import { WillShowOverlayLocationEvent } from '../dockview/events'; import { PaneviewComponentOptions, PaneviewDndOverlayEvent, diff --git a/packages/dockview-core/src/dockview/components/titlebar/tabs.ts b/packages/dockview-core/src/dockview/components/titlebar/tabs.ts index 4bf3fd603..6779fa3ea 100644 --- a/packages/dockview-core/src/dockview/components/titlebar/tabs.ts +++ b/packages/dockview-core/src/dockview/components/titlebar/tabs.ts @@ -13,7 +13,7 @@ import { import { Scrollbar } from '../../../scrollbar'; import { DockviewComponent } from '../../dockviewComponent'; import { DockviewGroupPanel } from '../../dockviewGroupPanel'; -import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel'; +import { WillShowOverlayLocationEvent } from '../../events'; import { DockviewPanel, IDockviewPanel } from '../../dockviewPanel'; import { Tab } from '../tab/tab'; import { TabDragEvent, TabDropIndexEvent } from './tabsContainer'; diff --git a/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts b/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts index 904dbf64b..b96b13dd8 100644 --- a/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts +++ b/packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts @@ -11,7 +11,7 @@ import { VoidContainer } from './voidContainer'; import { findRelativeZIndexParent, toggleClass } from '../../../dom'; import { IDockviewPanel } from '../../dockviewPanel'; import { DockviewComponent } from '../../dockviewComponent'; -import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel'; +import { WillShowOverlayLocationEvent } from '../../events'; import { getPanelData } from '../../../dnd/dataTransfer'; import { Tabs } from './tabs'; import { diff --git a/packages/dockview-core/src/dockview/dockviewComponent.ts b/packages/dockview-core/src/dockview/dockviewComponent.ts index 36ace1f25..1002e950c 100644 --- a/packages/dockview-core/src/dockview/dockviewComponent.ts +++ b/packages/dockview-core/src/dockview/dockviewComponent.ts @@ -45,8 +45,8 @@ import { GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent, - WillShowOverlayLocationEvent, } from './dockviewGroupPanelModel'; +import { WillShowOverlayLocationEvent } from './events'; import { DockviewGroupPanel } from './dockviewGroupPanel'; import { DockviewPanelModel } from './dockviewPanelModel'; import { getPanelData } from '../dnd/dataTransfer'; diff --git a/packages/dockview-core/src/dockview/dockviewGroupPanelModel.ts b/packages/dockview-core/src/dockview/dockviewGroupPanelModel.ts index f46f330cd..d8e52150f 100644 --- a/packages/dockview-core/src/dockview/dockviewGroupPanelModel.ts +++ b/packages/dockview-core/src/dockview/dockviewGroupPanelModel.ts @@ -1,6 +1,6 @@ import { DockviewApi } from '../api/component.api'; import { getPanelData, PanelTransfer } from '../dnd/dataTransfer'; -import { Position, WillShowOverlayEvent } from '../dnd/droptarget'; +import { Position } from '../dnd/droptarget'; import { DockviewComponent } from './dockviewComponent'; import { isAncestor, toggleClass } from '../dom'; import { @@ -10,6 +10,7 @@ import { Event, IDockviewEvent, } from '../events'; +import { DockviewGroupDropLocation, WillShowOverlayLocationEvent, WillShowOverlayLocationEventOptions } from './events'; import { IViewSize } from '../gridview/gridview'; import { CompositeDisposable, IDisposable } from '../lifecycle'; import { @@ -140,11 +141,6 @@ export interface IHeader { export type DockviewGroupPanelLocked = boolean | 'no-drop-target'; -export type DockviewGroupDropLocation = - | 'tab' - | 'header_space' - | 'content' - | 'edge'; export interface IDockviewGroupPanelModel extends IPanel { readonly isActive: boolean; @@ -199,56 +195,6 @@ export type DockviewGroupLocation = | { type: 'floating' } | { type: 'popout'; getWindow: () => Window; popoutUrl?: string }; -export interface WillShowOverlayLocationEventOptions { - readonly kind: DockviewGroupDropLocation; - readonly panel: IDockviewPanel | undefined; - readonly api: DockviewApi; - readonly group: DockviewGroupPanel | undefined; - getData: () => PanelTransfer | undefined; -} - -export class WillShowOverlayLocationEvent implements IDockviewEvent { - get kind(): DockviewGroupDropLocation { - return this.options.kind; - } - - get nativeEvent(): DragEvent { - return this.event.nativeEvent; - } - - get position(): Position { - return this.event.position; - } - - get defaultPrevented(): boolean { - return this.event.defaultPrevented; - } - - get panel(): IDockviewPanel | undefined { - return this.options.panel; - } - - get api(): DockviewApi { - return this.options.api; - } - - get group(): DockviewGroupPanel | undefined { - return this.options.group; - } - - preventDefault(): void { - this.event.preventDefault(); - } - - getData(): PanelTransfer | undefined { - return this.options.getData(); - } - - constructor( - private readonly event: WillShowOverlayEvent, - readonly options: WillShowOverlayLocationEventOptions - ) {} -} export class DockviewGroupPanelModel extends CompositeDisposable diff --git a/packages/dockview-core/src/dockview/events.ts b/packages/dockview-core/src/dockview/events.ts new file mode 100644 index 000000000..3e039acd8 --- /dev/null +++ b/packages/dockview-core/src/dockview/events.ts @@ -0,0 +1,63 @@ +import { Position, WillShowOverlayEvent } from '../dnd/droptarget'; +import { PanelTransfer } from '../dnd/dataTransfer'; +import { DockviewApi } from '../api/component.api'; +import { IDockviewPanel } from './dockviewPanel'; +import { DockviewGroupPanel } from './dockviewGroupPanel'; +import { IDockviewEvent } from '../events'; + +export type DockviewGroupDropLocation = + | 'tab' + | 'header_space' + | 'content' + | 'edge'; + +export interface WillShowOverlayLocationEventOptions { + readonly kind: DockviewGroupDropLocation; + readonly panel: IDockviewPanel | undefined; + readonly api: DockviewApi; + readonly group: DockviewGroupPanel | undefined; + getData: () => PanelTransfer | undefined; +} + +export class WillShowOverlayLocationEvent implements IDockviewEvent { + get kind(): DockviewGroupDropLocation { + return this.options.kind; + } + + get nativeEvent(): DragEvent { + return this.event.nativeEvent; + } + + get position(): Position { + return this.event.position; + } + + get defaultPrevented(): boolean { + return this.event.defaultPrevented; + } + + get panel(): IDockviewPanel | undefined { + return this.options.panel; + } + + get api(): DockviewApi { + return this.options.api; + } + + get group(): DockviewGroupPanel | undefined { + return this.options.group; + } + + preventDefault(): void { + this.event.preventDefault(); + } + + getData(): PanelTransfer | undefined { + return this.options.getData(); + } + + constructor( + private readonly event: WillShowOverlayEvent, + readonly options: WillShowOverlayLocationEventOptions + ) {} +} \ No newline at end of file diff --git a/packages/dockview-core/src/dockview/options.ts b/packages/dockview-core/src/dockview/options.ts index 39e66d2c3..708c71407 100644 --- a/packages/dockview-core/src/dockview/options.ts +++ b/packages/dockview-core/src/dockview/options.ts @@ -7,10 +7,8 @@ import { DockviewGroupPanel } from './dockviewGroupPanel'; import { PanelTransfer } from '../dnd/dataTransfer'; import { IDisposable } from '../lifecycle'; import { DroptargetOverlayModel, Position } from '../dnd/droptarget'; -import { - DockviewGroupDropLocation, - GroupOptions, -} from './dockviewGroupPanelModel'; +import { GroupOptions } from './dockviewGroupPanelModel'; +import { DockviewGroupDropLocation } from './events'; import { IDockviewPanel } from './dockviewPanel'; import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer'; import { IGroupHeaderProps } from './framework';