@ecip/shared
Version:
72 lines • 3.71 kB
JavaScript
/**
* @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;
}
var Broadcaster = /** @class */ (function () {
function Broadcaster() {
this._eventBus = new Subject();
}
/**
* @param {?} key
* @param {?=} data
* @return {?}
*/
Broadcaster.prototype.broadcast = /**
* @param {?} key
* @param {?=} data
* @return {?}
*/
function (key, data) {
this._eventBus.next({ key: key, data: data });
};
/**
* @template T
* @param {?} key
* @return {?}
*/
Broadcaster.prototype.on = /**
* @template T
* @param {?} key
* @return {?}
*/
function (key) {
return this._eventBus.asObservable()
.filter((/**
* @param {?} event
* @return {?}
*/
function (event) { return event.key === key; }))
.map((/**
* @param {?} event
* @return {?}
*/
function (event) { return (/** @type {?} */ (event.data)); }));
};
Broadcaster.decorators = [
{ type: Injectable }
];
/** @nocollapse */
Broadcaster.ctorParameters = function () { return []; };
return Broadcaster;
}());
export { Broadcaster };
if (false) {
/**
* @type {?}
* @private
*/
Broadcaster.prototype._eventBus;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZWNpcC9zaGFyZWQvIiwic291cmNlcyI6WyJzcmMvYnJvYWRjYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLFNBQVMsQ0FBQzs7OztBQUU1Qyw2QkFHQzs7O0lBRkMsNkJBQVM7O0lBQ1QsOEJBQVc7O0FBR2I7SUFJRTtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFDakQsQ0FBQzs7Ozs7O0lBRUQsK0JBQVM7Ozs7O0lBQVQsVUFBVSxHQUFRLEVBQUUsSUFBVTtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsS0FBQSxFQUFFLElBQUksTUFBQSxFQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7Ozs7SUFFRCx3QkFBRTs7Ozs7SUFBRixVQUFNLEdBQVE7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO2FBQ2pDLE1BQU07Ozs7UUFBQyxVQUFBLEtBQUssSUFBSSxPQUFBLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFqQixDQUFpQixFQUFDO2FBQ2xDLEdBQUc7Ozs7UUFBQyxVQUFBLEtBQUssV0FBSSxtQkFBRyxLQUFLLENBQUMsSUFBSSxFQUFBLEdBQUEsRUFBQyxDQUFDO0lBQ2pDLENBQUM7O2dCQWhCRixVQUFVOzs7O0lBaUJYLGtCQUFDO0NBQUEsQUFqQkQsSUFpQkM7U0FoQlksV0FBVzs7Ozs7O0lBQ3RCLGdDQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tIFwicnhqcy9SeFwiO1xyXG5cclxuaW50ZXJmYWNlIEJyb2FkY2FzdEV2ZW50IHtcclxuICBrZXk6IGFueTtcclxuICBkYXRhPzogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBCcm9hZGNhc3RlciB7XHJcbiAgcHJpdmF0ZSBfZXZlbnRCdXM6IFN1YmplY3Q8QnJvYWRjYXN0RXZlbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2V2ZW50QnVzID0gbmV3IFN1YmplY3Q8QnJvYWRjYXN0RXZlbnQ+KCk7XHJcbiAgfVxyXG5cclxuICBicm9hZGNhc3Qoa2V5OiBhbnksIGRhdGE/OiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50QnVzLm5leHQoe2tleSwgZGF0YX0pO1xyXG4gIH1cclxuXHJcbiAgb248VD4oa2V5OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9ldmVudEJ1cy5hc09ic2VydmFibGUoKVxyXG4gICAgICAuZmlsdGVyKGV2ZW50ID0+IGV2ZW50LmtleSA9PT0ga2V5KVxyXG4gICAgICAubWFwKGV2ZW50ID0+IDxUPmV2ZW50LmRhdGEpO1xyXG4gIH1cclxufVxyXG4iXX0=