@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
TypeScript
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;