UNPKG

@zxh19890103/wik

Version:

The world-class JavaScript library for building large-scale digital warehouse both on 2D and 3D.

35 lines (34 loc) 1.25 kB
import { GraphicObject } from './GraghicObject'; export interface IBehavior { onLoad(): void; onUnload(): void; onHover(obj: GraphicObject, evt: unknown): void; onUnHover(obj: GraphicObject, evt: unknown): void; onClick(obj: GraphicObject, evt: unknown): void; onDblClick(obj: GraphicObject, evt: unknown): void; onPress(obj: GraphicObject, evt: unknown): void; onContextMenu(obj: GraphicObject, evt: unknown): void; onMouseDown(evt: unknown): void; onMouseMove(evt: unknown): void; onMouseUp(evt: unknown): void; onNoopClick(evt: unknown): void; } export type BehaviorCallback = 'onMouseDown' | 'onMouseMove' | 'onMouseUp' | 'onNoopClick' | 'onHover' | 'onDblClick' | 'onClick' | 'onPress' | 'onContextMenu'; export interface IMode { name: string; behaviors: IBehavior[]; modeMgr: IModeManager; load(): void; unload(): void; onLoad(): void; onUnload(): void; } export interface IModeManager { modes: Map<string, IMode>; add(...modes: IMode[]): void; remove(...modes: IMode[]): void; set mode(val: IMode | string); get mode(): IMode; apply(callback: BehaviorCallback, ...args: any[]): void; create(name: string, ...behaviors: IBehavior[]): void; }