@idraw/types
Advanced tools
Comparing version 0.4.0-beta.33 to 0.4.0-beta.34
{ | ||
"name": "@idraw/types", | ||
"version": "0.4.0-beta.33", | ||
"version": "0.4.0-beta.34", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "src/index.ts", |
@@ -52,2 +52,3 @@ import type { Point, PointSize } from './point'; | ||
doubleClick: BoardWatcherPointEvent; | ||
contextMenu: BoardWatcherPointEvent; | ||
wheel: BoardWatherWheelEvent; | ||
@@ -74,8 +75,6 @@ wheelScale: BoardWatherWheelScaleEvent; | ||
doubleClick?: (e: BoardWatcherEventMap<S>['doubleClick']) => void | boolean; | ||
// wheelX?: (e: BoardWatcherEventMap<S>['wheelX']) => void | boolean; | ||
// wheelY?: (e: BoardWatcherEventMap<S>['wheelY']) => void | boolean; | ||
contextMenu?: (e: BoardWatcherEventMap<S>['contextMenu']) => void | boolean; | ||
wheel?: (e: BoardWatcherEventMap<S>['wheel']) => void | boolean; | ||
wheelScale?: (e: BoardWatcherEventMap<S>['wheelScale']) => void | boolean; | ||
// scale?: (e: BoardWatcherEventMap<S>['scale']) => void | boolean; | ||
scrollX?: (e: BoardWatcherEventMap<S>['scrollX']) => void | boolean; | ||
@@ -82,0 +81,0 @@ scrollY?: (e: BoardWatcherEventMap<S>['scrollY']) => void | boolean; |
@@ -1,2 +0,3 @@ | ||
import type { Element, ElementType } from './element'; | ||
import type { Element, ElementSize, ElementType, ElementPosition } from './element'; | ||
import type { ViewScaleInfo } from './view'; | ||
import type { Data } from './data'; | ||
@@ -27,14 +28,25 @@ import type { ViewContext2D } from './context2d'; | ||
export interface CoreEventCursor { | ||
type: CursorType | string | null; | ||
type?: CursorType | string | null; | ||
groupQueue?: Element<'group'>[]; | ||
element?: Element<ElementType>; | ||
element?: Element<ElementType> | ElementSize | null; | ||
} | ||
export interface CoreEventSelect { | ||
uuids: string[]; | ||
positions?: Array<Array<number>>; | ||
} | ||
// export interface CoreEventSelect { | ||
// uuids: string[]; | ||
// positions?: Array<Array<number>>; | ||
// } | ||
export interface CoreEventChange { | ||
type: string; | ||
data: Data; | ||
type: | ||
| 'updateElement' | ||
| 'deleteElement' | ||
| 'moveElement' | ||
| 'addElement' | ||
| 'dragElement' | ||
| 'resizeElement' | ||
| 'setData' | ||
| 'undo' | ||
| 'redo' | ||
| 'changeLayout' // TODO | ||
| 'other'; | ||
selectedElements?: Element[] | null; | ||
@@ -47,6 +59,36 @@ hoverElement?: Element | null; | ||
type CoreEventTextEdit = { | ||
element: Element<'text'>; | ||
position: ElementPosition; | ||
groupQueue: Element<'group'>[]; | ||
viewScaleInfo: ViewScaleInfo; | ||
}; | ||
type CoreEventTextChange = { | ||
element: { | ||
uuid: string; | ||
detail: { | ||
text: string; | ||
}; | ||
}; | ||
position: ElementPosition; | ||
}; | ||
type CoreEventContextMenu = { | ||
pointerContainer: HTMLDivElement; | ||
selectedElements: Element[]; | ||
}; | ||
export type CoreEventMap = BoardBaseEventMap & { | ||
cursor: CoreEventCursor; | ||
change: CoreEventChange; | ||
[key: string]: any; | ||
ruler: { show: boolean; showGrid: boolean }; | ||
scale: { scale: number }; | ||
select: { uuids?: string[]; positions?: ElementPosition[] }; | ||
clearSelect: { uuids?: string[] } | void; | ||
textEdit: CoreEventTextEdit; | ||
textChange: CoreEventTextChange; | ||
contextMenu: CoreEventContextMenu; | ||
selectInGroup: { enable: boolean }; | ||
snapToGrid: { enable: boolean }; | ||
}; |
export interface UtilEventEmitter<T extends Record<string, any>> { | ||
on<K extends keyof T>(eventKey: K, callback: (e: T[K]) => void): void; | ||
off<K extends keyof T>(eventKey: K, callback: (e: T[K]) => void): void; | ||
trigger<K extends keyof T>(eventKey: K, e: T[K]): void; | ||
trigger<K extends keyof T>(eventKey: K, e?: T[K]): void; | ||
has<K extends keyof T>(name: K | string): boolean; | ||
@@ -6,0 +6,0 @@ } |
32023
911