UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

60 lines 7.35 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.silent": "onStart($event)", "document:pointerup.silent": "onPointer()", "document:pointermove.silent": "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.silent)': 'onStart($event)', '(document:pointerup.silent)': 'onPointer()', '(document:pointermove.silent)': 'onMove($event.x, $event.y)', }, }] }], propDecorators: { onPointer: [], onMove: [] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1oYW5kbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvdGlsZXMvdGlsZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFekMsU0FBUyxhQUFhLENBQXNCLENBQUMsR0FBRyxHQUFHO0lBQy9DLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQsU0FBUyxVQUFVO0lBQ2YsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BV2EsYUFBYTtJQVgxQjtRQVlxQixTQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLE1BQUMsR0FBRyxHQUFHLENBQUM7UUFDUixNQUFDLEdBQUcsR0FBRyxDQUFDO0tBMEJuQjtJQXZCYSxTQUFTLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRztRQUNoQyxNQUFNLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFFOUQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHUyxNQUFNLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFtQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxNQUFNLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUMsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQzsrR0E1QlEsYUFBYTttR0FBYixhQUFhOztBQU1aO0lBRFQsVUFBVSxDQUFDLGFBQWEsQ0FBQzs4Q0FPekI7QUFHUztJQURULFVBQVUsQ0FBQyxVQUFVLENBQUM7MkNBR3RCO1NBakJRLGFBQWE7NEZBQWIsYUFBYTtrQkFYekIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNGLHFCQUFxQixFQUFFLFFBQVE7d0JBQy9CLG9CQUFvQixFQUFFLFFBQVE7d0JBQzlCLHNCQUFzQixFQUFFLGlCQUFpQjt3QkFDekMsNkJBQTZCLEVBQUUsYUFBYTt3QkFDNUMsK0JBQStCLEVBQUUsNEJBQTRCO3FCQUNoRTtpQkFDSjs4QkFPYSxTQUFTLE1BU1QsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlHZXRBY3R1YWxUYXJnZXQsIHR1aUlzRWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtzaG91bGRDYWxsfSBmcm9tICdAdGFpZ2EtdWkvZXZlbnQtcGx1Z2lucyc7XG5cbmltcG9ydCB7VHVpVGlsZX0gZnJvbSAnLi90aWxlLmNvbXBvbmVudCc7XG5cbmZ1bmN0aW9uIGlzSW50ZXJhY3RpbmcodGhpczogVHVpVGlsZUhhbmRsZSwgeCA9IE5hTik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKHgpIHx8ICFOdW1iZXIuaXNOYU4odGhpc1sneCddKTtcbn1cblxuZnVuY3Rpb24gaXNEcmFnZ2luZyh0aGlzOiBUdWlUaWxlSGFuZGxlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFOdW1iZXIuaXNOYU4odGhpc1sneCddKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlUaWxlSGFuZGxlXScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLnRvdWNoQWN0aW9uXSc6ICdcIm5vbmVcIicsXG4gICAgICAgICdbc3R5bGUudXNlclNlbGVjdF0nOiAnXCJub25lXCInLFxuICAgICAgICAnKHBvaW50ZXJkb3duLnNpbGVudCknOiAnb25TdGFydCgkZXZlbnQpJyxcbiAgICAgICAgJyhkb2N1bWVudDpwb2ludGVydXAuc2lsZW50KSc6ICdvblBvaW50ZXIoKScsXG4gICAgICAgICcoZG9jdW1lbnQ6cG9pbnRlcm1vdmUuc2lsZW50KSc6ICdvbk1vdmUoJGV2ZW50LngsICRldmVudC55KScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGlsZUhhbmRsZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0aWxlID0gaW5qZWN0KFR1aVRpbGUpO1xuICAgIHByaXZhdGUgeCA9IE5hTjtcbiAgICBwcml2YXRlIHkgPSBOYU47XG5cbiAgICBAc2hvdWxkQ2FsbChpc0ludGVyYWN0aW5nKVxuICAgIHByb3RlY3RlZCBvblBvaW50ZXIoeCA9IE5hTiwgeSA9IE5hTik6IHZvaWQge1xuICAgICAgICBjb25zdCB7bGVmdCwgdG9wfSA9IHRoaXMudGlsZS5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHRoaXMueCA9IHggLSBsZWZ0O1xuICAgICAgICB0aGlzLnkgPSB5IC0gdG9wO1xuICAgICAgICB0aGlzLnRpbGUub25EcmFnKFtOYU4sIE5hTl0pO1xuICAgIH1cblxuICAgIEBzaG91bGRDYWxsKGlzRHJhZ2dpbmcpXG4gICAgcHJvdGVjdGVkIG9uTW92ZSh4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnRpbGUub25EcmFnKFt4IC0gdGhpcy54LCB5IC0gdGhpcy55XSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU3RhcnQoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0dWlHZXRBY3R1YWxUYXJnZXQoZXZlbnQpO1xuICAgICAgICBjb25zdCB7eCwgeSwgcG9pbnRlcklkfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmICh0dWlJc0VsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgdGFyZ2V0LnJlbGVhc2VQb2ludGVyQ2FwdHVyZShwb2ludGVySWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblBvaW50ZXIoeCwgeSk7XG4gICAgfVxufVxuIl19