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.43 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9vYnNlcnZhYmxlcy96b25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE9BQU8sRUFBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV0RCxNQUFNLFVBQVUsV0FBVyxDQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELEtBQUssRUFBRSxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN4RCxDQUFDLENBQ0wsQ0FBQztBQUNWLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFJLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNkLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FDN0QsQ0FBQztBQUNWLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDckQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCxNQUFNLGdCQUFnQjtJQUNsQixZQUNxQixlQUF3RCxFQUN4RCxZQUEyQixjQUFjO1FBRHpDLG9CQUFlLEdBQWYsZUFBZSxDQUF5QztRQUN4RCxjQUFTLEdBQVQsU0FBUyxDQUFnQztJQUMzRCxDQUFDO0lBRUcsR0FBRztRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEdBQUcsSUFBMkM7UUFDMUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2hDLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQ3JCLFlBQTJCLGNBQWM7SUFFekMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDaEMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDckIsWUFBMkIsY0FBYztJQUV6QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge01vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgU2NoZWR1bGVyTGlrZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7YXN5bmNTY2hlZHVsZXIsIE9ic2VydmFibGUsIHBpcGV9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZ1bGw8VD4oem9uZSA9IGluamVjdChOZ1pvbmUpKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSkgPT5cbiAgICAgICAgbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+XG4gICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAodmFsdWUpID0+IHpvbmUucnVuKCgpID0+IHN1YnNjcmliZXIubmV4dCh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3I6IHVua25vd24pID0+IHpvbmUucnVuKCgpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpKSxcbiAgICAgICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4gem9uZS5ydW4oKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZyZWU8VD4oem9uZSA9IGluamVjdChOZ1pvbmUpKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gKHNvdXJjZSkgPT5cbiAgICAgICAgbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+XG4gICAgICAgICAgICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpLFxuICAgICAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZU9wdGltaXplZDxUPih6b25lID0gaW5qZWN0KE5nWm9uZSkpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICAgIHJldHVybiBwaXBlKHR1aVpvbmVmcmVlKHpvbmUpLCB0dWlab25lZnVsbCh6b25lKSk7XG59XG5cbmNsYXNzIFR1aVpvbmVTY2hlZHVsZXIgaW1wbGVtZW50cyBTY2hlZHVsZXJMaWtlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB6b25lQ29uZGl0aW9uRm46IDxUPihmbjogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gVCkgPT4gVCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcixcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbm93KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNjaGVkdWxlci5ub3coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2NoZWR1bGUoLi4uYXJnczogUGFyYW1ldGVyczxTY2hlZHVsZXJMaWtlWydzY2hlZHVsZSddPik6IFN1YnNjcmlwdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnpvbmVDb25kaXRpb25GbigoKSA9PiB0aGlzLnNjaGVkdWxlci5zY2hlZHVsZSguLi5hcmdzKSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpWm9uZWZyZWVTY2hlZHVsZXIoXG4gICAgem9uZSA9IGluamVjdChOZ1pvbmUpLFxuICAgIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyLFxuKTogU2NoZWR1bGVyTGlrZSB7XG4gICAgcmV0dXJuIG5ldyBUdWlab25lU2NoZWR1bGVyKHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIuYmluZCh6b25lKSwgc2NoZWR1bGVyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR1aVpvbmVmdWxsU2NoZWR1bGVyKFxuICAgIHpvbmUgPSBpbmplY3QoTmdab25lKSxcbiAgICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlcixcbik6IFNjaGVkdWxlckxpa2Uge1xuICAgIHJldHVybiBuZXcgVHVpWm9uZVNjaGVkdWxlcih6b25lLnJ1bi5iaW5kKHpvbmUpLCBzY2hlZHVsZXIpO1xufVxuIl19