UNPKG

@taiga-ui/cdk

Version:

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

34 lines 6.46 kB
import { inject, NgZone } from '@angular/core'; import { asyncScheduler, Observable, pipe, } from 'rxjs'; export function tuiZonefull(zone = inject(NgZone)) { return (source) => new Observable((subscriber) => source.subscribe({ next: (value) => zone.run(() => subscriber.next(value)), error: (error) => zone.run(() => subscriber.error(error)), complete: () => zone.run(() => subscriber.complete()), })); } export function tuiZonefree(zone = inject(NgZone)) { return (source) => new Observable((subscriber) => zone.runOutsideAngular(() => source.subscribe(subscriber))); } export function tuiZoneOptimized(zone = inject(NgZone)) { return pipe(tuiZonefree(zone), tuiZonefull(zone)); } class TuiZoneScheduler { constructor(zoneConditionFn, scheduler = asyncScheduler) { this.zoneConditionFn = zoneConditionFn; this.scheduler = scheduler; } now() { return this.scheduler.now(); } schedule(...args) { return this.zoneConditionFn(() => this.scheduler.schedule(...args)); } } export function tuiZonefreeScheduler(zone = inject(NgZone), scheduler = asyncScheduler) { return new TuiZoneScheduler(zone.runOutsideAngular.bind(zone), scheduler); } export function tuiZonefullScheduler(zone = inject(NgZone), scheduler = asyncScheduler) { return new TuiZoneScheduler(zone.run.bind(zone), scheduler); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9vYnNlcnZhYmxlcy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFDSCxjQUFjLEVBRWQsVUFBVSxFQUNWLElBQUksR0FHUCxNQUFNLE1BQU0sQ0FBQztBQUVkLE1BQU0sVUFBVSxXQUFXLENBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2QsSUFBSSxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUMxQixNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2IsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsS0FBSyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3hELENBQUMsQ0FDTCxDQUFDO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDaEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2QsSUFBSSxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUM3RCxDQUFDO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNyRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sZ0JBQWdCO0lBQ2xCLFlBQ3FCLGVBQXdELEVBQ3hELFlBQTJCLGNBQWM7UUFEekMsb0JBQWUsR0FBZixlQUFlLENBQXlDO1FBQ3hELGNBQVMsR0FBVCxTQUFTLENBQWdDO0lBQzNELENBQUM7SUFFRyxHQUFHO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBRyxJQUEyQztRQUMxRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDaEMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDckIsWUFBMkIsY0FBYztJQUV6QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUNyQixZQUEyQixjQUFjO0lBRXpDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIE5nWm9uZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGFzeW5jU2NoZWR1bGVyLFxuICAgIHR5cGUgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLFxuICAgIE9ic2VydmFibGUsXG4gICAgcGlwZSxcbiAgICB0eXBlIFNjaGVkdWxlckxpa2UsXG4gICAgdHlwZSBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZ1bGw8VD4oem9uZSA9IGluamVjdChOZ1pvbmUpKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSkgPT5cbiAgICAgICAgbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+XG4gICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAodmFsdWUpID0+IHpvbmUucnVuKCgpID0+IHN1YnNjcmliZXIubmV4dCh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3I6IHVua25vd24pID0+IHpvbmUucnVuKCgpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpKSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gem9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZyZWU8VD4oem9uZSA9IGluamVjdChOZ1pvbmUpKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSkgPT5cbiAgICAgICAgbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+XG4gICAgICAgICAgICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpLFxuICAgICAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZU9wdGltaXplZDxUPih6b25lID0gaW5qZWN0KE5nWm9uZSkpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiBwaXBlKHR1aVpvbmVmcmVlKHpvbmUpLCB0dWlab25lZnVsbCh6b25lKSk7XG59XG5cbmNsYXNzIFR1aVpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB6b25lQ29uZGl0aW9uRm46IDxUPihmbjogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gVCkgPT4gVCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlci5ub3coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2NoZWR1bGUoLi4uYXJnczogUGFyYW1ldGVyczxTY2hlZHVsZXJMaWtlWydzY2hlZHVsZSddPik6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnpvbmVDb25kaXRpb25GbigoKSA9PiB0aGlzLnNjaGVkdWxlci5zY2hlZHVsZSguLi5hcmdzKSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZyZWVTY2hlZHVsZXIoXG4gICAgem9uZSA9IGluamVjdChOZ1pvbmUpLFxuICAgIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyLFxuKTogU2NoZWR1bGVyTGlrZSB7XG4gICAgcmV0dXJuIG5ldyBUdWlab25lU2NoZWR1bGVyKHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIuYmluZCh6b25lKSwgc2NoZWR1bGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aVpvbmVmdWxsU2NoZWR1bGVyKFxuICAgIHpvbmUgPSBpbmplY3QoTmdab25lKSxcbiAgICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcixcbik6IFNjaGVkdWxlckxpa2Uge1xuICAgIHJldHVybiBuZXcgVHVpWm9uZVNjaGVkdWxlcih6b25lLnJ1bi5iaW5kKHpvbmUpLCBzY2hlZHVsZXIpO1xufVxuIl19