@studiometa/js-toolkit
Version:
A set of useful little bits of JavaScript to boost your project! 🚀
58 lines (57 loc) • 1.52 kB
TypeScript
import type { ServiceConfig, ServiceInterface } from './AbstractService.js';
import { AbstractService } from './AbstractService.js';
export interface PointerServiceProps {
event: MouseEvent | TouchEvent;
isDown: boolean;
x: number;
y: number;
changed: {
x: boolean;
y: boolean;
};
last: {
x: number;
y: number;
};
delta: {
x: number;
y: number;
};
progress: {
x: number;
y: number;
};
max: {
x: number;
y: number;
};
}
export type PointerServiceInterface = ServiceInterface<PointerServiceProps>;
export declare class PointerService extends AbstractService<PointerServiceProps> {
static config: ServiceConfig;
target: HTMLElement | Window | undefined;
props: PointerServiceProps;
constructor(target: HTMLElement | undefined);
isTouchEvent(event: TouchEvent | MouseEvent): boolean;
getTargetSize(): DOMRect | {
width: number;
height: number;
x: number;
y: number;
};
/**
* Update the pointer positions.
*/
updateProps(event: MouseEvent | TouchEvent): PointerServiceProps;
/**
* Handle events.
*
* @todo handle scroll as well
*/
handleEvent(event: MouseEvent | TouchEvent): void;
}
/**
* Use the pointer service.
* @link https://js-toolkit.studiometa.dev/api/services/usePointer.html
*/
export declare function usePointer(target?: HTMLElement | Window): PointerServiceInterface;