@3mo/pointer-controller
Version:
A controller that tracks the pointer state of a web component.
32 lines (31 loc) • 1.06 kB
JavaScript
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);