@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
33 lines (29 loc) • 1.67 kB
JavaScript
import * as i0 from '@angular/core';
import { inject, Directive } from '@angular/core';
import { outputFromObservable } from '@angular/core/rxjs-interop';
import { ControlContainer, NgControl } from '@angular/forms';
import { tuiControlValue } from '@taiga-ui/cdk/observables';
import { Subject, distinctUntilChanged, switchMap, skip } from 'rxjs';
class TuiValueChanges {
constructor() {
this.container = inject(ControlContainer, { optional: true });
this.control = inject(NgControl, { optional: true });
this.control$ = new Subject();
this.tuiValueChanges$ = this.control$.pipe(distinctUntilChanged(), switchMap((tuiControlValue)), distinctUntilChanged(), skip(1));
this.tuiValueChanges = outputFromObservable(this.tuiValueChanges$);
}
ngDoCheck() {
this.control$.next(this.control || this.container);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiValueChanges, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: TuiValueChanges, isStandalone: true, selector: "[tuiValueChanges]", outputs: { tuiValueChanges: "tuiValueChanges" }, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TuiValueChanges, decorators: [{
type: Directive,
args: [{ selector: '[tuiValueChanges]' }]
}] });
/**
* Generated bundle index. Do not edit.
*/
export { TuiValueChanges };
//# sourceMappingURL=taiga-ui-cdk-directives-value-changes.mjs.map