UNPKG

@taiga-ui/cdk

Version:

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

21 lines 4.49 kB
import { tuiZonefreeScheduler } from '@taiga-ui/cdk/observables'; import { map, race, skipWhile, take, throttleTime, timer } from 'rxjs'; import { AbstractTuiAutofocusHandler } from './abstract.handler'; const TIMEOUT = 1000; const NG_ANIMATION_SELECTOR = '.ng-animating'; export class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler { constructor(el, animationFrame$, zone, options) { super(el, options); this.animationFrame$ = animationFrame$; this.zone = zone; } setFocus() { if (this.isTextFieldElement) { race(timer(this.options.delay || TIMEOUT), this.animationFrame$.pipe(throttleTime(100, tuiZonefreeScheduler(this.zone)), map(() => this.element.closest(NG_ANIMATION_SELECTOR)), skipWhile(Boolean), take(1))).subscribe(() => this.element.focus({ preventScroll: this.options.preventScroll })); } else { this.element.focus({ preventScroll: true }); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy9oYW5kbGVycy9kZWZhdWx0LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLEdBQUcsRUFBbUIsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd0RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDckIsTUFBTSxxQkFBcUIsR0FBRyxlQUFlLENBQUM7QUFFOUMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLDJCQUEyQjtJQUN2RSxZQUNJLEVBQTJCLEVBQ1YsZUFBbUMsRUFDbkMsSUFBWSxFQUM3QixPQUE0QjtRQUU1QixLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBSkYsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLFNBQUksR0FBSixJQUFJLENBQVE7SUFJakMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLENBQ0EsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxFQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDckIsWUFBWSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDbEQsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFDdEQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1YsQ0FDSixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDYixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBQyxDQUFDLENBQ2xFLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztTQUM3QztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHlwZSBFbGVtZW50UmVmLCB0eXBlIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R1aVpvbmVmcmVlU2NoZWR1bGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7bWFwLCB0eXBlIE9ic2VydmFibGUsIHJhY2UsIHNraXBXaGlsZSwgdGFrZSwgdGhyb3R0bGVUaW1lLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7dHlwZSBUdWlBdXRvZm9jdXNPcHRpb25zfSBmcm9tICcuLi9hdXRvZm9jdXMub3B0aW9ucyc7XG5pbXBvcnQge0Fic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9hYnN0cmFjdC5oYW5kbGVyJztcblxuY29uc3QgVElNRU9VVCA9IDEwMDA7XG5jb25zdCBOR19BTklNQVRJT05fU0VMRUNUT1IgPSAnLm5nLWFuaW1hdGluZyc7XG5cbmV4cG9ydCBjbGFzcyBUdWlEZWZhdWx0QXV0b2ZvY3VzSGFuZGxlciBleHRlbmRzIEFic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhbmltYXRpb25GcmFtZSQ6IE9ic2VydmFibGU8bnVtYmVyPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUsXG4gICAgICAgIG9wdGlvbnM6IFR1aUF1dG9mb2N1c09wdGlvbnMsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGVsLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzVGV4dEZpZWxkRWxlbWVudCkge1xuICAgICAgICAgICAgcmFjZShcbiAgICAgICAgICAgICAgICB0aW1lcih0aGlzLm9wdGlvbnMuZGVsYXkgfHwgVElNRU9VVCksXG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDEwMCwgdHVpWm9uZWZyZWVTY2hlZHVsZXIodGhpcy56b25lKSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLmVsZW1lbnQuY2xvc2VzdChOR19BTklNQVRJT05fU0VMRUNUT1IpKSxcbiAgICAgICAgICAgICAgICAgICAgc2tpcFdoaWxlKEJvb2xlYW4pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdGhpcy5vcHRpb25zLnByZXZlbnRTY3JvbGx9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==