UNPKG

@3mo/pointer-controller

Version:

A controller that tracks the pointer state of a web component.

32 lines (31 loc) 1.06 kB
import { __decorate } from "tslib"; import { Controller, eventListener, extractEventTargets } from '@a11d/lit'; export class PointerPressController extends Controller { constructor(host, options) { super(host); this.host = host; this.options = options; this._press = false; } get press() { return this._press; } setPress(press) { if (this._press !== press) { this._press = press; this.options?.handlePressChange?.(press); this.host.requestUpdate(); } } setPressTrue() { this.setPress(true); } setPressFalse() { this.setPress(false); } } __decorate([ eventListener({ type: 'pointerdown', target() { return extractEventTargets(this.host, this.options?.target); } }) ], PointerPressController.prototype, "setPressTrue", null); __decorate([ eventListener({ type: 'pointerup', target: document }), eventListener({ type: 'pointercancel', target: document }) ], PointerPressController.prototype, "setPressFalse", null);