@antv/g6
Version:
A Graph Visualization Framework in JavaScript
75 lines (69 loc) • 1.95 kB
text/typescript
import type { IAnimation } from '@antv/g';
import type { AnimationType, GraphEvent } from '../../constants';
import type {
ElementDatum,
ElementType,
IAnimateEvent,
IElementLifeCycleEvent,
IGraphLifeCycleEvent,
IViewportEvent,
TransformOptions,
} from '../../types';
export class BaseEvent {
constructor(public type: string) {}
}
export class GraphLifeCycleEvent extends BaseEvent implements IGraphLifeCycleEvent {
constructor(
type:
| GraphEvent.BEFORE_RENDER
| GraphEvent.AFTER_RENDER
| GraphEvent.BEFORE_DRAW
| GraphEvent.AFTER_DRAW
| GraphEvent.BEFORE_LAYOUT
| GraphEvent.AFTER_LAYOUT
| GraphEvent.BEFORE_STAGE_LAYOUT
| GraphEvent.AFTER_STAGE_LAYOUT
| GraphEvent.BEFORE_SIZE_CHANGE
| GraphEvent.AFTER_SIZE_CHANGE
| GraphEvent.BATCH_START
| GraphEvent.BATCH_END
| GraphEvent.BEFORE_DESTROY
| GraphEvent.AFTER_DESTROY,
public data?: any,
) {
super(type);
}
}
export class AnimateEvent extends BaseEvent implements IAnimateEvent {
constructor(
type: GraphEvent.BEFORE_ANIMATE | GraphEvent.AFTER_ANIMATE,
public animationType: AnimationType,
public animation: IAnimation | null,
public data?: any,
) {
super(type);
}
}
export class ElementLifeCycleEvent extends BaseEvent implements IElementLifeCycleEvent {
constructor(
type:
| GraphEvent.BEFORE_ELEMENT_CREATE
| GraphEvent.AFTER_ELEMENT_CREATE
| GraphEvent.BEFORE_ELEMENT_UPDATE
| GraphEvent.AFTER_ELEMENT_UPDATE
| GraphEvent.BEFORE_ELEMENT_DESTROY
| GraphEvent.AFTER_ELEMENT_DESTROY,
public elementType: ElementType,
public data: ElementDatum,
) {
super(type);
}
}
export class ViewportEvent extends BaseEvent implements IViewportEvent {
constructor(
type: GraphEvent.BEFORE_TRANSFORM | GraphEvent.AFTER_TRANSFORM,
public data: TransformOptions,
) {
super(type);
}
}