UNPKG

@studiometa/js-toolkit

Version:

A set of useful little bits of JavaScript to boost your project! 🚀

58 lines (57 loc) • 1.52 kB
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;