mirror of
https://github.com/mathuo/dockview
synced 2025-09-09 02:46:47 +00:00
chore: remove circular dependencies
This commit is contained in:
parent
ea62570b9a
commit
8bbe482d74
@ -51,8 +51,8 @@ import { Box } from '../types';
|
|||||||
import {
|
import {
|
||||||
DockviewDidDropEvent,
|
DockviewDidDropEvent,
|
||||||
DockviewWillDropEvent,
|
DockviewWillDropEvent,
|
||||||
WillShowOverlayLocationEvent,
|
|
||||||
} from '../dockview/dockviewGroupPanelModel';
|
} from '../dockview/dockviewGroupPanelModel';
|
||||||
|
import { WillShowOverlayLocationEvent } from '../dockview/events';
|
||||||
import {
|
import {
|
||||||
PaneviewComponentOptions,
|
PaneviewComponentOptions,
|
||||||
PaneviewDndOverlayEvent,
|
PaneviewDndOverlayEvent,
|
||||||
|
@ -13,7 +13,7 @@ import {
|
|||||||
import { Scrollbar } from '../../../scrollbar';
|
import { Scrollbar } from '../../../scrollbar';
|
||||||
import { DockviewComponent } from '../../dockviewComponent';
|
import { DockviewComponent } from '../../dockviewComponent';
|
||||||
import { DockviewGroupPanel } from '../../dockviewGroupPanel';
|
import { DockviewGroupPanel } from '../../dockviewGroupPanel';
|
||||||
import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
|
import { WillShowOverlayLocationEvent } from '../../events';
|
||||||
import { DockviewPanel, IDockviewPanel } from '../../dockviewPanel';
|
import { DockviewPanel, IDockviewPanel } from '../../dockviewPanel';
|
||||||
import { Tab } from '../tab/tab';
|
import { Tab } from '../tab/tab';
|
||||||
import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
|
import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
|
||||||
|
@ -11,7 +11,7 @@ import { VoidContainer } from './voidContainer';
|
|||||||
import { findRelativeZIndexParent, toggleClass } from '../../../dom';
|
import { findRelativeZIndexParent, toggleClass } from '../../../dom';
|
||||||
import { IDockviewPanel } from '../../dockviewPanel';
|
import { IDockviewPanel } from '../../dockviewPanel';
|
||||||
import { DockviewComponent } from '../../dockviewComponent';
|
import { DockviewComponent } from '../../dockviewComponent';
|
||||||
import { WillShowOverlayLocationEvent } from '../../dockviewGroupPanelModel';
|
import { WillShowOverlayLocationEvent } from '../../events';
|
||||||
import { getPanelData } from '../../../dnd/dataTransfer';
|
import { getPanelData } from '../../../dnd/dataTransfer';
|
||||||
import { Tabs } from './tabs';
|
import { Tabs } from './tabs';
|
||||||
import {
|
import {
|
||||||
|
@ -45,8 +45,8 @@ import {
|
|||||||
GroupPanelViewState,
|
GroupPanelViewState,
|
||||||
DockviewDidDropEvent,
|
DockviewDidDropEvent,
|
||||||
DockviewWillDropEvent,
|
DockviewWillDropEvent,
|
||||||
WillShowOverlayLocationEvent,
|
|
||||||
} from './dockviewGroupPanelModel';
|
} from './dockviewGroupPanelModel';
|
||||||
|
import { WillShowOverlayLocationEvent } from './events';
|
||||||
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
||||||
import { DockviewPanelModel } from './dockviewPanelModel';
|
import { DockviewPanelModel } from './dockviewPanelModel';
|
||||||
import { getPanelData } from '../dnd/dataTransfer';
|
import { getPanelData } from '../dnd/dataTransfer';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { DockviewApi } from '../api/component.api';
|
import { DockviewApi } from '../api/component.api';
|
||||||
import { getPanelData, PanelTransfer } from '../dnd/dataTransfer';
|
import { getPanelData, PanelTransfer } from '../dnd/dataTransfer';
|
||||||
import { Position, WillShowOverlayEvent } from '../dnd/droptarget';
|
import { Position } from '../dnd/droptarget';
|
||||||
import { DockviewComponent } from './dockviewComponent';
|
import { DockviewComponent } from './dockviewComponent';
|
||||||
import { isAncestor, toggleClass } from '../dom';
|
import { isAncestor, toggleClass } from '../dom';
|
||||||
import {
|
import {
|
||||||
@ -10,6 +10,7 @@ import {
|
|||||||
Event,
|
Event,
|
||||||
IDockviewEvent,
|
IDockviewEvent,
|
||||||
} from '../events';
|
} from '../events';
|
||||||
|
import { DockviewGroupDropLocation, WillShowOverlayLocationEvent, WillShowOverlayLocationEventOptions } from './events';
|
||||||
import { IViewSize } from '../gridview/gridview';
|
import { IViewSize } from '../gridview/gridview';
|
||||||
import { CompositeDisposable, IDisposable } from '../lifecycle';
|
import { CompositeDisposable, IDisposable } from '../lifecycle';
|
||||||
import {
|
import {
|
||||||
@ -140,11 +141,6 @@ export interface IHeader {
|
|||||||
|
|
||||||
export type DockviewGroupPanelLocked = boolean | 'no-drop-target';
|
export type DockviewGroupPanelLocked = boolean | 'no-drop-target';
|
||||||
|
|
||||||
export type DockviewGroupDropLocation =
|
|
||||||
| 'tab'
|
|
||||||
| 'header_space'
|
|
||||||
| 'content'
|
|
||||||
| 'edge';
|
|
||||||
|
|
||||||
export interface IDockviewGroupPanelModel extends IPanel {
|
export interface IDockviewGroupPanelModel extends IPanel {
|
||||||
readonly isActive: boolean;
|
readonly isActive: boolean;
|
||||||
@ -199,56 +195,6 @@ export type DockviewGroupLocation =
|
|||||||
| { type: 'floating' }
|
| { type: 'floating' }
|
||||||
| { type: 'popout'; getWindow: () => Window; popoutUrl?: string };
|
| { 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
|
export class DockviewGroupPanelModel
|
||||||
extends CompositeDisposable
|
extends CompositeDisposable
|
||||||
|
63
packages/dockview-core/src/dockview/events.ts
Normal file
63
packages/dockview-core/src/dockview/events.ts
Normal file
@ -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
|
||||||
|
) {}
|
||||||
|
}
|
@ -7,10 +7,8 @@ import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|||||||
import { PanelTransfer } from '../dnd/dataTransfer';
|
import { PanelTransfer } from '../dnd/dataTransfer';
|
||||||
import { IDisposable } from '../lifecycle';
|
import { IDisposable } from '../lifecycle';
|
||||||
import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
|
import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
|
||||||
import {
|
import { GroupOptions } from './dockviewGroupPanelModel';
|
||||||
DockviewGroupDropLocation,
|
import { DockviewGroupDropLocation } from './events';
|
||||||
GroupOptions,
|
|
||||||
} from './dockviewGroupPanelModel';
|
|
||||||
import { IDockviewPanel } from './dockviewPanel';
|
import { IDockviewPanel } from './dockviewPanel';
|
||||||
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
|
||||||
import { IGroupHeaderProps } from './framework';
|
import { IGroupHeaderProps } from './framework';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user