UNPKG

@ecip/shared

Version:
60 lines 3.21 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from "@angular/core"; import { Subject } from "rxjs/Rx"; /** * @record */ function BroadcastEvent() { } if (false) { /** @type {?} */ BroadcastEvent.prototype.key; /** @type {?|undefined} */ BroadcastEvent.prototype.data; } export class Broadcaster { constructor() { this._eventBus = new Subject(); } /** * @param {?} key * @param {?=} data * @return {?} */ broadcast(key, data) { this._eventBus.next({ key, data }); } /** * @template T * @param {?} key * @return {?} */ on(key) { return this._eventBus.asObservable() .filter((/** * @param {?} event * @return {?} */ event => event.key === key)) .map((/** * @param {?} event * @return {?} */ event => (/** @type {?} */ (event.data)))); } } Broadcaster.decorators = [ { type: Injectable } ]; /** @nocollapse */ Broadcaster.ctorParameters = () => []; if (false) { /** * @type {?} * @private */ Broadcaster.prototype._eventBus; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWNpcC9zaGFyZWQvIiwic291cmNlcyI6WyJzcmMvYnJvYWRjYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLFNBQVMsQ0FBQzs7OztBQUU1Qyw2QkFHQzs7O0lBRkMsNkJBQVM7O0lBQ1QsOEJBQVc7O0FBSWIsTUFBTSxPQUFPLFdBQVc7SUFHdEI7UUFDRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO0lBQ2pELENBQUM7Ozs7OztJQUVELFNBQVMsQ0FBQyxHQUFRLEVBQUUsSUFBVTtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Ozs7OztJQUVELEVBQUUsQ0FBSSxHQUFRO1FBQ1osT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTthQUNqQyxNQUFNOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBQzthQUNsQyxHQUFHOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxtQkFBRyxLQUFLLENBQUMsSUFBSSxFQUFBLEVBQUMsQ0FBQztJQUNqQyxDQUFDOzs7WUFoQkYsVUFBVTs7Ozs7Ozs7O0lBRVQsZ0NBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzL1J4XCI7XHJcblxyXG5pbnRlcmZhY2UgQnJvYWRjYXN0RXZlbnQge1xyXG4gIGtleTogYW55O1xyXG4gIGRhdGE/OiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdGVyIHtcclxuICBwcml2YXRlIF9ldmVudEJ1czogU3ViamVjdDxCcm9hZGNhc3RFdmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fZXZlbnRCdXMgPSBuZXcgU3ViamVjdDxCcm9hZGNhc3RFdmVudD4oKTtcclxuICB9XHJcblxyXG4gIGJyb2FkY2FzdChrZXk6IGFueSwgZGF0YT86IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRCdXMubmV4dCh7a2V5LCBkYXRhfSk7XHJcbiAgfVxyXG5cclxuICBvbjxUPihrZXk6IGFueSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50QnVzLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5maWx0ZXIoZXZlbnQgPT4gZXZlbnQua2V5ID09PSBrZXkpXHJcbiAgICAgIC5tYXAoZXZlbnQgPT4gPFQ+ZXZlbnQuZGF0YSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==