{"version":3,"file":"taiga-ui-cdk-directives-resizer.mjs","sources":["../../../projects/cdk/directives/resizer/resizable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElement} from '@taiga-ui/cdk/directives/element';\n\n@Directive({\n    standalone: true,\n    selector: '[tuiResizable]',\n})\nexport class TuiResizable extends TuiElement {}\n","import {\n    Directive,\n    type ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n} from '@angular/core';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiResizable} from './resizable.directive';\n\n@Directive({\n    standalone: true,\n    selector: '[tuiResizer]',\n    host: {\n        '[style.cursor]': 'cursor',\n        '[style.touchAction]': '\"none\"',\n        '(pointerdown.zoneless.prevent)': 'onPointerDown($event.x, $event.y)',\n        '(document:pointermove.zoneless)': 'onPointerMove($event)',\n        '(document:pointerup.zoneless)': 'onPointerUp()',\n    },\n})\nexport class TuiResizer {\n    private readonly resizable: ElementRef<HTMLElement> = inject(TuiResizable);\n\n    protected x = NaN;\n    protected y = NaN;\n    protected width = 0;\n    protected height = 0;\n\n    @Input()\n    public tuiResizer: readonly [x: number, y: number] = [0, 0];\n\n    @Output()\n    public readonly tuiSizeChange = new EventEmitter<readonly [x: number, y: number]>();\n\n    protected get cursor(): string {\n        if (!this.tuiResizer[0]) {\n            return 'ns-resize';\n        }\n\n        if (!this.tuiResizer[1]) {\n            return 'ew-resize';\n        }\n\n        if (this.tuiResizer[0] * this.tuiResizer[1] > 0) {\n            return 'nwse-resize';\n        }\n\n        return 'nesw-resize';\n    }\n\n    protected onPointerDown(x: number, y: number): void {\n        this.x = x;\n        this.y = y;\n        this.width = this.resizable.nativeElement.clientWidth;\n        this.height = this.resizable.nativeElement.clientHeight;\n    }\n\n    protected onPointerMove({x, y, buttons}: PointerEvent): void {\n        if (!buttons) {\n            this.onPointerUp();\n        } else {\n            this.onMove(x, y);\n        }\n    }\n\n    protected onPointerUp(): void {\n        this.x = NaN;\n    }\n\n    protected onMove(x: number, y: number): void {\n        if (Number.isNaN(this.x)) {\n            return;\n        }\n\n        const {style} = this.resizable.nativeElement;\n        const size = [\n            this.width + this.tuiResizer[0] * (x - this.x),\n            this.height + this.tuiResizer[1] * (y - this.y),\n        ] as const;\n\n        if (this.tuiResizer[0]) {\n            style.width = tuiPx(size[0]);\n        }\n\n        if (this.tuiResizer[1]) {\n            style.height = tuiPx(size[1]);\n        }\n\n        this.tuiSizeChange.emit(size);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}