UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

53 lines 6.79 kB
import { Directive, inject, NgZone } from '@angular/core'; import { tuiGetActualTarget, tuiIsElement } from '@taiga-ui/cdk/utils/dom'; import { TuiTile } from './tile.component'; import * as i0 from "@angular/core"; class TuiTileHandle { constructor() { this.zone = inject(NgZone); this.tile = inject(TuiTile); this.x = NaN; this.y = NaN; } onPointer(x = NaN, y = NaN) { if (!Number.isNaN(x) || !Number.isNaN(this.x)) { this.zone.run(() => { const { left, top } = this.tile.element.getBoundingClientRect(); this.x = x - left; this.y = y - top; this.tile.onDrag([NaN, NaN]); }); } } onMove(x, y) { if (!Number.isNaN(this.x)) { this.zone.run(() => { this.tile.onDrag([x - this.x, y - this.y]); }); } } onStart(event) { const target = tuiGetActualTarget(event); const { x, y, pointerId } = event; if (tuiIsElement(target)) { target.releasePointerCapture(pointerId); } this.onPointer(x, y); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTileHandle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTileHandle, isStandalone: true, selector: "[tuiTileHandle]", host: { listeners: { "pointerdown.zoneless.prevent": "onStart($event)", "document:pointerup.zoneless": "onPointer()", "document:pointermove.zoneless": "onMove($event.x, $event.y)" } }, ngImport: i0 }); } } export { TuiTileHandle }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTileHandle, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiTileHandle]', host: { '(pointerdown.zoneless.prevent)': 'onStart($event)', '(document:pointerup.zoneless)': 'onPointer()', '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)', }, }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYW5kbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdGlsZXMvdGlsZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLGtCQUFrQixDQUFDOztBQUV6QyxNQVNhLGFBQWE7SUFUMUI7UUFVcUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQUMsR0FBRyxHQUFHLENBQUM7UUFDUixNQUFDLEdBQUcsR0FBRyxDQUFDO0tBZ0NuQjtJQTlCYSxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBRTlELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRVMsTUFBTSxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFUyxPQUFPLENBQUMsS0FBbUI7UUFDakMsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFDLEdBQUcsS0FBSyxDQUFDO1FBRWhDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7K0dBbkNRLGFBQWE7bUdBQWIsYUFBYTs7U0FBYixhQUFhOzRGQUFiLGFBQWE7a0JBVHpCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLElBQUksRUFBRTt3QkFDRixnQ0FBZ0MsRUFBRSxpQkFBaUI7d0JBQ25ELCtCQUErQixFQUFFLGFBQWE7d0JBQzlDLGlDQUFpQyxFQUFFLDRCQUE0QjtxQkFDbEU7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgaW5qZWN0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlHZXRBY3R1YWxUYXJnZXQsIHR1aUlzRWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuXG5pbXBvcnQge1R1aVRpbGV9IGZyb20gJy4vdGlsZS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aVRpbGVIYW5kbGVdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICcocG9pbnRlcmRvd24uem9uZWxlc3MucHJldmVudCknOiAnb25TdGFydCgkZXZlbnQpJyxcbiAgICAgICAgJyhkb2N1bWVudDpwb2ludGVydXAuem9uZWxlc3MpJzogJ29uUG9pbnRlcigpJyxcbiAgICAgICAgJyhkb2N1bWVudDpwb2ludGVybW92ZS56b25lbGVzcyknOiAnb25Nb3ZlKCRldmVudC54LCAkZXZlbnQueSknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVRpbGVIYW5kbGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGlsZSA9IGluamVjdChUdWlUaWxlKTtcbiAgICBwcml2YXRlIHggPSBOYU47XG4gICAgcHJpdmF0ZSB5ID0gTmFOO1xuXG4gICAgcHJvdGVjdGVkIG9uUG9pbnRlcih4ID0gTmFOLCB5ID0gTmFOKTogdm9pZCB7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKHgpIHx8ICFOdW1iZXIuaXNOYU4odGhpcy54KSkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qge2xlZnQsIHRvcH0gPSB0aGlzLnRpbGUuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMueCA9IHggLSBsZWZ0O1xuICAgICAgICAgICAgICAgIHRoaXMueSA9IHkgLSB0b3A7XG4gICAgICAgICAgICAgICAgdGhpcy50aWxlLm9uRHJhZyhbTmFOLCBOYU5dKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoIU51bWJlci5pc05hTih0aGlzLngpKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbGUub25EcmFnKFt4IC0gdGhpcy54LCB5IC0gdGhpcy55XSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblN0YXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdHVpR2V0QWN0dWFsVGFyZ2V0KGV2ZW50KTtcbiAgICAgICAgY29uc3Qge3gsIHksIHBvaW50ZXJJZH0gPSBldmVudDtcblxuICAgICAgICBpZiAodHVpSXNFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRhcmdldC5yZWxlYXNlUG9pbnRlckNhcHR1cmUocG9pbnRlcklkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25Qb2ludGVyKHgsIHkpO1xuICAgIH1cbn1cbiJdfQ==