@egjs/axes
Version:
A module used to change the information of user action entered by various input devices such as touch screen or mouse into the logical virtual coordinates. You can easily create a UI that responds to user actions.
122 lines (121 loc) • 3.21 kB
TypeScript
import { Ref } from "@cfcs/core";
import { Axis } from "./AxisManager";
import { MouseEventInput } from "./eventInput/MouseEventInput";
import { TouchEventInput } from "./eventInput/TouchEventInput";
import { PointerEventInput } from "./eventInput/PointerEventInput";
import { TouchMouseEventInput } from "./eventInput/TouchMouseEventInput";
import { InputType } from "./inputType/InputType";
import { AXES_METHODS } from "./const";
import Axes from "./Axes";
export declare type ObjectInterface<T = any> = Record<string | number, T>;
export declare type InputEventType = PointerEvent | MouseEvent | TouchEvent;
export declare type ElementType = string | HTMLElement | Ref<HTMLElement>;
export declare type ActiveEvent = MouseEventInput | TouchEventInput | TouchMouseEventInput | PointerEventInput;
export interface AxesEvents {
hold: OnHold;
change: OnChange;
release: OnRelease;
animationStart: OnAnimationStart;
animationEnd: OnAnimationEnd;
finish: OnFinish;
}
export interface AxesReactiveState {
holding: boolean;
[key: string]: any;
}
export declare type AxesMethods = {
[key in typeof AXES_METHODS[number]]: Axes[key];
};
export interface AnimationParam {
depaPos: Axis;
destPos: Axis;
duration: number;
delta: Axis;
isTrusted?: boolean;
stop?: () => void;
setTo?: (destPos?: Axis, duration?: number) => {
destPos: Axis;
duration: number;
};
done?: () => void;
startTime?: number;
inputEvent?: any;
input?: InputType;
}
export interface UpdateAnimationOption {
destPos?: Axis;
duration?: number;
restart?: boolean;
}
export interface OnHold {
pos: Record<string, any>;
input: InputType | null;
inputEvent: any;
isTrusted: boolean;
}
export interface OnAnimationStart {
depaPos: Axis;
destPos: Axis;
duration: number;
delta: Axis;
isTrusted: boolean;
startTime?: number;
inputEvent?: any;
input?: InputType | null;
setTo(destPos?: Axis, duration?: number): void;
done(): void;
stop(): void;
}
export interface OnChange {
pos: Axis;
delta: Axis;
bounceRatio: Axis;
holding: boolean;
inputEvent: any;
isTrusted: boolean;
input: InputType | null;
set(toPos?: Axis, userDuration?: number): void;
stop(): void;
}
export interface OnRelease {
depaPos: Axis;
destPos: Axis;
duration: number;
delta: Axis;
bounceRatio: Axis;
isTrusted?: boolean;
startTime?: number;
inputEvent?: any;
input?: InputType | null;
setTo(destPos?: Axis, duration?: number): void;
done(): void;
}
export interface OnAnimationEnd {
isTrusted: boolean;
}
export interface OnFinish {
isTrusted: boolean;
}
export interface ExtendedEvent {
srcEvent: InputEventType;
angle: number;
scale: number;
directionX: number;
directionY: number;
center: {
x: number;
y: number;
};
deltaX: number;
deltaY: number;
offsetX: number;
offsetY: number;
velocityX: number;
velocityY: number;
preventSystemEvent: boolean;
}
export interface LatestInterval {
timestamp: number;
deltaX: number;
deltaY: number;
}