UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

60 lines 7.4 kB
import { __decorate } from "tslib"; import { Directive, inject } from '@angular/core'; import { tuiGetActualTarget, tuiIsElement } from '@taiga-ui/cdk/utils/dom'; import { shouldCall } from '@taiga-ui/event-plugins'; import { TuiTile } from './tile.component'; import * as i0 from "@angular/core"; function isInteracting(x = NaN) { return !Number.isNaN(x) || !Number.isNaN(this['x']); } function isDragging() { return !Number.isNaN(this['x']); } class TuiTileHandle { constructor() { this.tile = inject(TuiTile); this.x = NaN; this.y = NaN; } onPointer(x = NaN, y = NaN) { const { left, top } = this.tile.element.getBoundingClientRect(); this.x = x - left; this.y = y - top; this.tile.onDrag([NaN, NaN]); } onMove(x, y) { 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)" }, properties: { "style.touchAction": "\"none\"", "style.userSelect": "\"none\"" } }, ngImport: i0 }); } } __decorate([ shouldCall(isInteracting) ], TuiTileHandle.prototype, "onPointer", null); __decorate([ shouldCall(isDragging) ], TuiTileHandle.prototype, "onMove", null); 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: { '[style.touchAction]': '"none"', '[style.userSelect]': '"none"', '(pointerdown.zoneless.prevent)': 'onStart($event)', '(document:pointerup.zoneless)': 'onPointer()', '(document:pointermove.zoneless)': 'onMove($event.x, $event.y)', }, }] }], propDecorators: { onPointer: [], onMove: [] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYW5kbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdGlsZXMvdGlsZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFekMsU0FBUyxhQUFhLENBQXNCLENBQUMsR0FBRyxHQUFHO0lBQy9DLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBUyxVQUFVO0lBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BV2EsYUFBYTtJQVgxQjtRQVlxQixTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQUMsR0FBRyxHQUFHLENBQUM7UUFDUixNQUFDLEdBQUcsR0FBRyxDQUFDO0tBMEJuQjtJQXZCYSxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRztRQUNoQyxNQUFNLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHUyxNQUFNLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFtQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUMsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQzsrR0E1QlEsYUFBYTttR0FBYixhQUFhOztBQU1aO0lBRFQsVUFBVSxDQUFDLGFBQWEsQ0FBQzs4Q0FPekI7QUFHUztJQURULFVBQVUsQ0FBQyxVQUFVLENBQUM7MkNBR3RCO1NBakJRLGFBQWE7NEZBQWIsYUFBYTtrQkFYekIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLHFCQUFxQixFQUFFLFFBQVE7d0JBQy9CLG9CQUFvQixFQUFFLFFBQVE7d0JBQzlCLGdDQUFnQyxFQUFFLGlCQUFpQjt3QkFDbkQsK0JBQStCLEVBQUUsYUFBYTt3QkFDOUMsaUNBQWlDLEVBQUUsNEJBQTRCO3FCQUNsRTtpQkFDSjs4QkFPYSxTQUFTLE1BU1QsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlHZXRBY3R1YWxUYXJnZXQsIHR1aUlzRWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtzaG91bGRDYWxsfSBmcm9tICdAdGFpZ2EtdWkvZXZlbnQtcGx1Z2lucyc7XG5cbmltcG9ydCB7VHVpVGlsZX0gZnJvbSAnLi90aWxlLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGlzSW50ZXJhY3RpbmcodGhpczogVHVpVGlsZUhhbmRsZSwgeCA9IE5hTik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKHgpIHx8ICFOdW1iZXIuaXNOYU4odGhpc1sneCddKTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnZ2luZyh0aGlzOiBUdWlUaWxlSGFuZGxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFOdW1iZXIuaXNOYU4odGhpc1sneCddKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlUaWxlSGFuZGxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLnRvdWNoQWN0aW9uXSc6ICdcIm5vbmVcIicsXG4gICAgICAgICdbc3R5bGUudXNlclNlbGVjdF0nOiAnXCJub25lXCInLFxuICAgICAgICAnKHBvaW50ZXJkb3duLnpvbmVsZXNzLnByZXZlbnQpJzogJ29uU3RhcnQoJGV2ZW50KScsXG4gICAgICAgICcoZG9jdW1lbnQ6cG9pbnRlcnVwLnpvbmVsZXNzKSc6ICdvblBvaW50ZXIoKScsXG4gICAgICAgICcoZG9jdW1lbnQ6cG9pbnRlcm1vdmUuem9uZWxlc3MpJzogJ29uTW92ZSgkZXZlbnQueCwgJGV2ZW50LnkpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUaWxlSGFuZGxlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRpbGUgPSBpbmplY3QoVHVpVGlsZSk7XG4gICAgcHJpdmF0ZSB4ID0gTmFOO1xuICAgIHByaXZhdGUgeSA9IE5hTjtcblxuICAgIEBzaG91bGRDYWxsKGlzSW50ZXJhY3RpbmcpXG4gICAgcHJvdGVjdGVkIG9uUG9pbnRlcih4ID0gTmFOLCB5ID0gTmFOKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtsZWZ0LCB0b3B9ID0gdGhpcy50aWxlLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgdGhpcy54ID0geCAtIGxlZnQ7XG4gICAgICAgIHRoaXMueSA9IHkgLSB0b3A7XG4gICAgICAgIHRoaXMudGlsZS5vbkRyYWcoW05hTiwgTmFOXSk7XG4gICAgfVxuXG4gICAgQHNob3VsZENhbGwoaXNEcmFnZ2luZylcbiAgICBwcm90ZWN0ZWQgb25Nb3ZlKHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGlsZS5vbkRyYWcoW3ggLSB0aGlzLngsIHkgLSB0aGlzLnldKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TdGFydChldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHR1aUdldEFjdHVhbFRhcmdldChldmVudCk7XG4gICAgICAgIGNvbnN0IHt4LCB5LCBwb2ludGVySWR9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKHR1aUlzRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICB0YXJnZXQucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHBvaW50ZXJJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uUG9pbnRlcih4LCB5KTtcbiAgICB9XG59XG4iXX0=