UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

36 lines 5.34 kB
import { DestroyRef, Directive, inject, } from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous'; import { distinctUntilChanged, merge, Observable } from 'rxjs'; import { TuiVehicle } from './vehicle'; import * as i0 from "@angular/core"; export class TuiDriver extends Observable { } export function tuiAsDriver(driver) { return tuiProvide(TuiDriver, driver, true); } class TuiDriverDirective { constructor() { this.destroyRef = inject(DestroyRef); this.drivers = inject(TuiDriver, { self: true, optional: true }) || []; this.vehicles = inject(TuiVehicle, { self: true, optional: true, }); } ngAfterViewInit() { const vehicle = this.vehicles?.find(({ type }) => type === this.type); merge(...this.drivers.filter(({ type }) => type === this.type)) .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef)) .subscribe((value) => { vehicle?.toggle(value); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDriverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiDriverDirective, ngImport: i0 }); } } export { TuiDriverDirective }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiDriverDirective, decorators: [{ type: Directive }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9jbGFzc2VzL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFFVCxNQUFNLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBRXJDLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLFVBQW1CO0NBRTFEO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUF1QjtJQUMvQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUNzQixrQkFBa0I7SUFEeEM7UUFJcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQ3BCLE1BQU0sQ0FBTSxTQUFTLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5QyxhQUFRLEdBQTBCLE1BQU0sQ0FBTSxVQUFVLEVBQUU7WUFDdkUsSUFBSSxFQUFFLElBQUk7WUFDVixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7S0FXTjtJQVRVLGVBQWU7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBFLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4RCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDakUsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7K0dBcEJpQixrQkFBa0I7bUdBQWxCLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBRHZDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICB0eXBlIEV4aXN0aW5nUHJvdmlkZXIsXG4gICAgaW5qZWN0LFxuICAgIHR5cGUgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHt0dWlQcm92aWRlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWVyZ2UsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1R1aVZlaGljbGV9IGZyb20gJy4vdmVoaWNsZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlEcml2ZXIgZXh0ZW5kcyBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpQXNEcml2ZXIoZHJpdmVyOiBUeXBlPFR1aURyaXZlcj4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcbiAgICByZXR1cm4gdHVpUHJvdmlkZShUdWlEcml2ZXIsIGRyaXZlciwgdHJ1ZSk7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFR1aURyaXZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHB1YmxpYyBhYnN0cmFjdCB0eXBlOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkcml2ZXJzOiByZWFkb25seSBUdWlEcml2ZXJbXSA9XG4gICAgICAgIGluamVjdDxhbnk+KFR1aURyaXZlciwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSkgfHwgW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHZlaGljbGVzOiByZWFkb25seSBUdWlWZWhpY2xlW10gPSBpbmplY3Q8YW55PihUdWlWZWhpY2xlLCB7XG4gICAgICAgIHNlbGY6IHRydWUsXG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmVoaWNsZSA9IHRoaXMudmVoaWNsZXM/LmZpbmQoKHt0eXBlfSkgPT4gdHlwZSA9PT0gdGhpcy50eXBlKTtcblxuICAgICAgICBtZXJnZSguLi50aGlzLmRyaXZlcnMuZmlsdGVyKCh7dHlwZX0pID0+IHR5cGUgPT09IHRoaXMudHlwZSkpXG4gICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdmVoaWNsZT8udG9nZ2xlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==