air-lib
Version:
This is Air's angular component library
57 lines • 3.83 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import * as i0 from "@angular/core";
/**
* @record
*/
function IBroadcastEvent() { }
if (false) {
/** @type {?} */
IBroadcastEvent.prototype.key;
/** @type {?|undefined} */
IBroadcastEvent.prototype.data;
}
export class BroadcasterService {
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(event => event.key === key)
.map(event => (/** @type {?} */ (event.data)));
}
}
BroadcasterService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
BroadcasterService.ctorParameters = () => [];
/** @nocollapse */ BroadcasterService.ngInjectableDef = i0.defineInjectable({ factory: function BroadcasterService_Factory() { return new BroadcasterService(); }, token: BroadcasterService, providedIn: "root" });
if (false) {
/**
* @type {?}
* @private
*/
BroadcasterService.prototype._eventBus;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2Fpci1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvQnJvYWRjYXN0ZXIvYnJvYWRjYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXZDLE9BQU8sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyx1QkFBdUIsQ0FBQzs7Ozs7QUFFL0IsOEJBR0M7OztJQUZDLDhCQUFTOztJQUNULCtCQUFXOztBQU9iLE1BQU07SUFJRjtRQUNJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7SUFDcEQsQ0FBQzs7Ozs7O0lBRUQsU0FBUyxDQUFDLEdBQVEsRUFBRSxJQUFVO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7Ozs7O0lBRUQsRUFBRSxDQUFJLEdBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFO2FBQy9CLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDO2FBQ2xDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLG1CQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OztZQW5CSixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7Ozs7OztJQUdDLHVDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMvU3ViamVjdCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xyXG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2ZpbHRlcic7XHJcbmltcG9ydCAncnhqcy9hZGQvb3BlcmF0b3IvbWFwJztcclxuXHJcbmludGVyZmFjZSBJQnJvYWRjYXN0RXZlbnQge1xyXG4gIGtleTogYW55O1xyXG4gIGRhdGE/OiBhbnk7XHJcbn1cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCcm9hZGNhc3RlclNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9ldmVudEJ1czogU3ViamVjdDxJQnJvYWRjYXN0RXZlbnQ+O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50QnVzID0gbmV3IFN1YmplY3Q8SUJyb2FkY2FzdEV2ZW50PigpO1xyXG4gICAgfVxyXG5cclxuICAgIGJyb2FkY2FzdChrZXk6IGFueSwgZGF0YT86IGFueSkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50QnVzLm5leHQoeyBrZXksIGRhdGEgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb248VD4oa2V5OiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnRCdXMuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgLmZpbHRlcihldmVudCA9PiBldmVudC5rZXkgPT09IGtleSlcclxuICAgICAgICAgICAgLm1hcChldmVudCA9PiA8VD5ldmVudC5kYXRhKTtcclxuICAgIH1cclxufVxyXG4iXX0=