@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
112 lines • 7.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: shared/preserve-next-event-emitter.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { EventEmitter } from '@angular/core';
/**
* @template T
*/
export class PreserveNextEventEmitter extends EventEmitter {
/**
* @param {?=} isAsync
*/
constructor(isAsync = false) {
super(isAsync);
this._isAsync = isAsync;
}
/**
* @return {?}
*/
get schedulerFns() { return this._schedulerFns; }
/**
* @param {?} value
* @param {?=} once
* @return {?}
*/
forceCallback(value, once = false) {
if (this.schedulerFns && this.schedulerFns.size) {
this.schedulerFns.forEach((/**
* @param {?} fn
* @return {?}
*/
fn => {
fn(value);
}));
if (once) {
this.cleanCallbackFn();
}
}
}
/**
* @return {?}
*/
cleanCallbackFn() {
this._schedulerFns = undefined;
}
/**
* @param {?=} value
* @return {?}
*/
emit(value) { super.emit(value); }
/**
* @param {?=} generatorOrNext
* @param {?=} error
* @param {?=} complete
* @return {?}
*/
subscribe(generatorOrNext, error, complete) {
/** @type {?} */
let schedulerFn;
if (generatorOrNext && typeof generatorOrNext === 'object') {
schedulerFn = this._isAsync ? (/**
* @param {?} value
* @return {?}
*/
(value) => {
setTimeout((/**
* @return {?}
*/
() => generatorOrNext.next(value)));
}) : (/**
* @param {?} value
* @return {?}
*/
(value) => { generatorOrNext.next(value); });
}
else {
schedulerFn = this._isAsync ? (/**
* @param {?} value
* @return {?}
*/
(value) => { setTimeout((/**
* @return {?}
*/
() => generatorOrNext(value))); }) :
(/**
* @param {?} value
* @return {?}
*/
(value) => { generatorOrNext(value); });
}
if (!this._schedulerFns) {
this._schedulerFns = new Set();
}
this._schedulerFns.add(schedulerFn);
return super.subscribe(generatorOrNext, error, complete);
}
}
if (false) {
/**
* 保留注册的 generatorOrNext构成的函数
* @type {?}
* @private
*/
PreserveNextEventEmitter.prototype._schedulerFns;
/**
* @type {?}
* @private
*/
PreserveNextEventEmitter.prototype._isAsync;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VydmUtbmV4dC1ldmVudC1lbWl0dGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvZHJhZ2Ryb3AvIiwic291cmNlcyI6WyJzaGFyZWQvcHJlc2VydmUtbmV4dC1ldmVudC1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUU3QyxNQUFNLE9BQU8sd0JBQTRCLFNBQVEsWUFBZTs7OztJQU05RCxZQUFZLFVBQW1CLEtBQUs7UUFDbEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQzs7OztJQUxELElBQUksWUFBWSxLQUFLLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Ozs7OztJQU9qRCxhQUFhLENBQUMsS0FBUSxFQUFFLElBQUksR0FBRyxLQUFLO1FBQ2xDLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRTtZQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU87Ozs7WUFBQyxFQUFFLENBQUMsRUFBRTtnQkFDN0IsRUFBRSxDQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxFQUFDLENBQUM7WUFDSCxJQUFJLElBQUksRUFBRTtnQkFDUixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDeEI7U0FDRjtJQUNILENBQUM7Ozs7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQzs7Ozs7SUFFRCxJQUFJLENBQUMsS0FBUyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOzs7Ozs7O0lBRXRDLFNBQVMsQ0FBQyxlQUFxQixFQUFFLEtBQVcsRUFBRSxRQUFjOztZQUN0RCxXQUE0QjtRQUVoQyxJQUFJLGVBQWUsSUFBSSxPQUFPLGVBQWUsS0FBSyxRQUFRLEVBQUU7WUFDMUQsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7OztZQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQzNDLFVBQVU7OztnQkFBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUM7WUFDaEQsQ0FBQyxFQUFDLENBQUM7Ozs7WUFBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO1NBQ3REO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzs7O1lBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFHLFVBQVU7OztZQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7Ozs7O2dCQUM5RCxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUM7U0FDNUU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksR0FBRyxFQUFPLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBRUY7Ozs7Ozs7SUE1Q0MsaURBQWdDOzs7OztJQUNoQyw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQcmVzZXJ2ZU5leHRFdmVudEVtaXR0ZXI8VD4gZXh0ZW5kcyBFdmVudEVtaXR0ZXI8VD4ge1xyXG4gIC8qKiDkv53nlZnms6jlhoznmoQgZ2VuZXJhdG9yT3JOZXh05p6E5oiQ55qE5Ye95pWwKi9cclxuICBwcml2YXRlIF9zY2hlZHVsZXJGbnM6IFNldDxhbnk+O1xyXG4gIHByaXZhdGUgX2lzQXN5bmM6IGJvb2xlYW47XHJcbiAgZ2V0IHNjaGVkdWxlckZucygpIHsgcmV0dXJuIHRoaXMuX3NjaGVkdWxlckZuczsgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihpc0FzeW5jOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHN1cGVyKGlzQXN5bmMpO1xyXG4gICAgdGhpcy5faXNBc3luYyA9IGlzQXN5bmM7XHJcbiAgfVxyXG5cclxuICBmb3JjZUNhbGxiYWNrKHZhbHVlOiBULCBvbmNlID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLnNjaGVkdWxlckZucyAmJiB0aGlzLnNjaGVkdWxlckZucy5zaXplKSB7XHJcbiAgICAgIHRoaXMuc2NoZWR1bGVyRm5zLmZvckVhY2goZm4gPT4ge1xyXG4gICAgICAgIGZuICh2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob25jZSkge1xyXG4gICAgICAgIHRoaXMuY2xlYW5DYWxsYmFja0ZuKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY2xlYW5DYWxsYmFja0ZuKCkge1xyXG4gICAgdGhpcy5fc2NoZWR1bGVyRm5zID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZW1pdCh2YWx1ZT86IFQpIHsgc3VwZXIuZW1pdCh2YWx1ZSk7IH1cclxuXHJcbiAgc3Vic2NyaWJlKGdlbmVyYXRvck9yTmV4dD86IGFueSwgZXJyb3I/OiBhbnksIGNvbXBsZXRlPzogYW55KTogYW55IHtcclxuICAgIGxldCBzY2hlZHVsZXJGbjogKHQ6IGFueSkgPT4gYW55O1xyXG5cclxuICAgIGlmIChnZW5lcmF0b3JPck5leHQgJiYgdHlwZW9mIGdlbmVyYXRvck9yTmV4dCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgc2NoZWR1bGVyRm4gPSB0aGlzLl9pc0FzeW5jID8gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGdlbmVyYXRvck9yTmV4dC5uZXh0KHZhbHVlKSk7XHJcbiAgICAgIH0gOiAodmFsdWU6IGFueSkgPT4geyBnZW5lcmF0b3JPck5leHQubmV4dCh2YWx1ZSk7IH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzY2hlZHVsZXJGbiA9IHRoaXMuX2lzQXN5bmMgPyAodmFsdWU6IGFueSkgPT4geyBzZXRUaW1lb3V0KCgpID0+IGdlbmVyYXRvck9yTmV4dCh2YWx1ZSkpOyB9IDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZTogYW55KSA9PiB7IGdlbmVyYXRvck9yTmV4dCh2YWx1ZSk7IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3NjaGVkdWxlckZucykge1xyXG4gICAgICB0aGlzLl9zY2hlZHVsZXJGbnMgPSBuZXcgU2V0PGFueT4oKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NjaGVkdWxlckZucy5hZGQoc2NoZWR1bGVyRm4pO1xyXG5cclxuICAgIHJldHVybiBzdXBlci5zdWJzY3JpYmUoZ2VuZXJhdG9yT3JOZXh0LCBlcnJvciwgY29tcGxldGUpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19