UNPKG

ng-devui

Version:

DevUI components based on Angular

40 lines 5.63 kB
import { EventEmitter } from '@angular/core'; export class PreserveNextEventEmitter extends EventEmitter { get schedulerFns() { return this._schedulerFns; } constructor(isAsync = false) { super(isAsync); this._isAsync = isAsync; } forceCallback(value, once = false) { if (this.schedulerFns && this.schedulerFns.size) { this.schedulerFns.forEach(fn => { fn(value); }); if (once) { this.cleanCallbackFn(); } } } cleanCallbackFn() { this._schedulerFns = undefined; } emit(value) { super.emit(value); } subscribe(generatorOrNext, error, complete) { let schedulerFn; if (generatorOrNext && typeof generatorOrNext === 'object') { schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext.next(value)); } : (value) => { generatorOrNext.next(value); }; } else { schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext(value)); } : (value) => { generatorOrNext(value); }; } if (!this._schedulerFns) { this._schedulerFns = new Set(); } this._schedulerFns.add(schedulerFn); return super.subscribe(generatorOrNext, error, complete); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VydmUtbmV4dC1ldmVudC1lbWl0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZGV2dWkvZHJhZ2Ryb3Avc2hhcmVkL3ByZXNlcnZlLW5leHQtZXZlbnQtZW1pdHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdDLE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxZQUFlO0lBSTlELElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFakQsWUFBWSxPQUFPLEdBQUcsS0FBSztRQUN6QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVEsRUFBRSxJQUFJLEdBQUcsS0FBSztRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDN0IsRUFBRSxDQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFTLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEMsU0FBUyxDQUFDLGVBQXFCLEVBQUUsS0FBVyxFQUFFLFFBQWM7UUFDMUQsSUFBSSxXQUE0QixDQUFDO1FBRWpDLElBQUksZUFBZSxJQUFJLE9BQU8sZUFBZSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNELFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUMzQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzRixDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQU8sQ0FBQztRQUN0QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBQcmVzZXJ2ZU5leHRFdmVudEVtaXR0ZXI8VD4gZXh0ZW5kcyBFdmVudEVtaXR0ZXI8VD4ge1xuICAvKiog5L+d55WZ5rOo5YaM55qEIGdlbmVyYXRvck9yTmV4dOaehOaIkOeahOWHveaVsCovXG4gIHByaXZhdGUgX3NjaGVkdWxlckZuczogU2V0PGFueT47XG4gIHByaXZhdGUgX2lzQXN5bmM6IGJvb2xlYW47XG4gIGdldCBzY2hlZHVsZXJGbnMoKSB7IHJldHVybiB0aGlzLl9zY2hlZHVsZXJGbnM7IH1cblxuICBjb25zdHJ1Y3Rvcihpc0FzeW5jID0gZmFsc2UpIHtcbiAgICBzdXBlcihpc0FzeW5jKTtcbiAgICB0aGlzLl9pc0FzeW5jID0gaXNBc3luYztcbiAgfVxuXG4gIGZvcmNlQ2FsbGJhY2sodmFsdWU6IFQsIG9uY2UgPSBmYWxzZSkge1xuICAgIGlmICh0aGlzLnNjaGVkdWxlckZucyAmJiB0aGlzLnNjaGVkdWxlckZucy5zaXplKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlckZucy5mb3JFYWNoKGZuID0+IHtcbiAgICAgICAgZm4gKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgICAgaWYgKG9uY2UpIHtcbiAgICAgICAgdGhpcy5jbGVhbkNhbGxiYWNrRm4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2xlYW5DYWxsYmFja0ZuKCkge1xuICAgIHRoaXMuX3NjaGVkdWxlckZucyA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGVtaXQodmFsdWU/OiBUKSB7IHN1cGVyLmVtaXQodmFsdWUpOyB9XG5cbiAgc3Vic2NyaWJlKGdlbmVyYXRvck9yTmV4dD86IGFueSwgZXJyb3I/OiBhbnksIGNvbXBsZXRlPzogYW55KTogYW55IHtcbiAgICBsZXQgc2NoZWR1bGVyRm46ICh0OiBhbnkpID0+IGFueTtcblxuICAgIGlmIChnZW5lcmF0b3JPck5leHQgJiYgdHlwZW9mIGdlbmVyYXRvck9yTmV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHNjaGVkdWxlckZuID0gdGhpcy5faXNBc3luYyA/ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZ2VuZXJhdG9yT3JOZXh0Lm5leHQodmFsdWUpKTtcbiAgICAgIH0gOiAodmFsdWU6IGFueSkgPT4geyBnZW5lcmF0b3JPck5leHQubmV4dCh2YWx1ZSk7IH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVkdWxlckZuID0gdGhpcy5faXNBc3luYyA/ICh2YWx1ZTogYW55KSA9PiB7IHNldFRpbWVvdXQoKCkgPT4gZ2VuZXJhdG9yT3JOZXh0KHZhbHVlKSk7IH0gOlxuICAgICAgICAodmFsdWU6IGFueSkgPT4geyBnZW5lcmF0b3JPck5leHQodmFsdWUpOyB9O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3NjaGVkdWxlckZucykge1xuICAgICAgdGhpcy5fc2NoZWR1bGVyRm5zID0gbmV3IFNldDxhbnk+KCk7XG4gICAgfVxuICAgIHRoaXMuX3NjaGVkdWxlckZucy5hZGQoc2NoZWR1bGVyRm4pO1xuXG4gICAgcmV0dXJuIHN1cGVyLnN1YnNjcmliZShnZW5lcmF0b3JPck5leHQsIGVycm9yLCBjb21wbGV0ZSk7XG4gIH1cblxufVxuIl19