UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

46 lines 5.72 kB
import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { DestroyRef, Directive, inject, Input } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { timer } from 'rxjs'; import { TUI_AUTOFOCUS_HANDLER, TUI_AUTOFOCUS_OPTIONS, TUI_AUTOFOCUS_PROVIDERS, } from './autofocus.options'; import * as i0 from "@angular/core"; class TuiAutoFocus { constructor() { this.handler = inject(TUI_AUTOFOCUS_HANDLER); this.options = inject(TUI_AUTOFOCUS_OPTIONS); this.destroyRef = inject(DestroyRef); } ngAfterViewInit() { if (this.autoFocus) { this.focus(); } } focus() { if (Number.isNaN(this.options.delay)) { void Promise.resolve().then(() => this.handler.setFocus()); } else { timer(this.options.delay) .pipe(takeUntilDestroyed(this.destroyRef)) .subscribe(() => this.handler.setFocus()); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAutoFocus, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: TuiAutoFocus, isStandalone: true, selector: "[tuiAutoFocus]", inputs: { autoFocus: ["tuiAutoFocus", "autoFocus", coerceBooleanProperty] }, providers: TUI_AUTOFOCUS_PROVIDERS, ngImport: i0 }); } } export { TuiAutoFocus }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAutoFocus, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiAutoFocus]', providers: TUI_AUTOFOCUS_PROVIDERS, }] }], propDecorators: { autoFocus: [{ type: Input, args: [{ alias: 'tuiAutoFocus', transform: coerceBooleanProperty, }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9kaXJlY3RpdmVzL2F1dG8tZm9jdXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0UsT0FBTyxFQUFxQixVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUzQixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix1QkFBdUIsR0FDMUIsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFN0IsTUFLYSxZQUFZO0lBTHpCO1FBTXFCLFlBQU8sR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQXVCcEQ7SUFmVSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLEtBQUssT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDOUQ7YUFBTTtZQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDekMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7K0dBekJRLFlBQVk7bUdBQVosWUFBWSxxR0FPTixxQkFBcUIsZ0JBVHpCLHVCQUF1Qjs7U0FFekIsWUFBWTs0RkFBWixZQUFZO2tCQUx4QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsdUJBQXVCO2lCQUNyQzs4QkFVVSxTQUFTO3NCQUpmLEtBQUs7dUJBQUM7d0JBQ0gsS0FBSyxFQUFFLGNBQWM7d0JBQ3JCLFNBQVMsRUFBRSxxQkFBcUI7cUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0eXBlIEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHt0eXBlIEFmdGVyVmlld0luaXQsIERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHt0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgIFRVSV9BVVRPRk9DVVNfT1BUSU9OUyxcbiAgICBUVUlfQVVUT0ZPQ1VTX1BST1ZJREVSUyxcbn0gZnJvbSAnLi9hdXRvZm9jdXMub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdbdHVpQXV0b0ZvY3VzXScsXG4gICAgcHJvdmlkZXJzOiBUVUlfQVVUT0ZPQ1VTX1BST1ZJREVSUyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpQXV0b0ZvY3VzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyID0gaW5qZWN0KFRVSV9BVVRPRk9DVVNfSEFORExFUik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9BVVRPRk9DVVNfT1BUSU9OUyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgQElucHV0KHtcbiAgICAgICAgYWxpYXM6ICd0dWlBdXRvRm9jdXMnLFxuICAgICAgICB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSxcbiAgICB9KVxuICAgIHB1YmxpYyBhdXRvRm9jdXM6IEJvb2xlYW5JbnB1dDtcblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHRoaXMub3B0aW9ucy5kZWxheSkpIHtcbiAgICAgICAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLmhhbmRsZXIuc2V0Rm9jdXMoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aW1lcih0aGlzLm9wdGlvbnMuZGVsYXkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRsZXIuc2V0Rm9jdXMoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=