UNPKG

@niuee/board

Version:

<h1 align="center"> board </h1> <p align="center"> board supercharges your html canvas element giving it the capabilities to pan, zoom, rotate, and much more. </p> <p align="center"> <a href="https://www.npmjs.com/package/@niuee/board">

113 lines (112 loc) 3.25 kB
import { Point } from "../util/misc"; import { InputFlowControl } from "../input-flow-control"; import BoardCamera from "../board-camera"; /** * @description The unsubscribe to user raw input. * * @category Event Parser */ export type UnsubscribeToUserRawInput = () => void; /** * @description The raw user pan input event payload. * * @category Event Parser */ export type RawUserPanInputEventPayload = { diff: Point; }; /** * @description The raw user pan input event. * Use type to discriminate between pan, zoom, and rotate events. * * @category Event Parser */ export type RawUserPanInputEvent = { type: "pan"; } & RawUserPanInputEventPayload; /** * @description The raw user zoom input event payload. * * @category Event Parser */ export type RawUserZoomInputEventPayload = { deltaZoomAmount: number; anchorPoint: Point; }; /** * @description The raw user zoom input event. * Use type to discriminate between pan, zoom, and rotate events. * * @category Event Parser */ export type RawUserZoomInputEvent = { type: "zoom"; } & RawUserZoomInputEventPayload; /** * @description The raw user rotate input event payload. * * @category Event Parser */ export type RawUserRotateInputEventPayload = { deltaRotation: number; }; /** * @description The raw user rotate input event. * Use type to discriminate between pan, zoom, and rotate events. * * @category Event Parser */ export type RawUserRotateInputEvent = { type: "rotate"; } & RawUserRotateInputEventPayload; /** * @description The raw user input event map. * * @category Event Parser */ export type RawUserInputEventMap = { "pan": RawUserPanInputEventPayload; "zoom": RawUserZoomInputEventPayload; "rotate": RawUserRotateInputEventPayload; "all": RawUserInputEvent; }; /** * @description The raw user input event. * Use type to discriminate between pan, zoom, and rotate events. * * @category Event Parser */ export type RawUserInputEvent = RawUserPanInputEvent | RawUserZoomInputEvent | RawUserRotateInputEvent; /** * @description The raw user input callback. * This is the function type of callbacks for raw user input events. * * @category Event Parser */ export type RawUserInputCallback<K extends keyof RawUserInputEventMap> = (event: RawUserInputEventMap[K]) => void; /** * @description The raw user input publisher. * Publishs raw user input events to the input flow control, and subscribers. * * @category Event Parser */ export declare class RawUserInputPublisher { private pan; private zoom; private rotate; private all; private _flowControl; constructor(flowControl: InputFlowControl); notifyPan(diff: Point): void; notifyZoom(deltaZoomAmount: number, anchorPoint: Point): void; notifyRotate(deltaRotation: number): void; on<K extends keyof RawUserInputEventMap>(eventName: K, callback: (event: RawUserInputEventMap[K]) => void): UnsubscribeToUserRawInput; get flowControl(): InputFlowControl; set flowControl(flowControl: InputFlowControl); } /** * @description Creates a default raw user input publisher. * * @category Event Parser */ export declare function createDefaultRawUserInputPublisher(camera: BoardCamera): RawUserInputPublisher;