@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
JavaScript
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=