UNPKG

unicorn-components

Version:

<a target="_blank" href="https://getunicorn.io"><img src="https://bitbucket-assetroot.s3.amazonaws.com/c/photos/2017/Jul/07/2615006260-5-nitsnetsstudios-ondemand-UNI_avatar.png" align="left"></a>

41 lines (32 loc) 1.15 kB
import { EventEmitter, Input, OnInit, Output } from '@angular/core'; import { Observable, Subscription } from 'rxjs/Rx'; import { UniBaseComponent } from './../base/base.component'; export abstract class UniInputBaseComponent extends UniBaseComponent implements OnInit { @Input() model; @Output() modelChange = new EventEmitter(); @Output() uniFocus = new EventEmitter(); @Output() uniBlur = new EventEmitter(); @Input() name = ''; @Input() value = ''; @Input() required = false; @Input() debounce = 0; debounceSubs: Subscription; ngOnInit() { if (!this.model && this.value) { this.onNgModelChange(this.value); } else { this.value = this.model; } } onNgModelChange(ev): Observable<any> { if (this.debounceSubs && !this.debounceSubs.closed) { this.debounceSubs.unsubscribe(); } const observable = Observable.timer(this.debounce || 0).share(); this.debounceSubs = observable.subscribe(_ => { this.model = ev; this.modelChange.emit(ev); }); return observable; } }