// TODO frha: Borde ligga i common/service/broadcast // Angular imports // import { Injectable } from '@angular/core'; import { downgradeInjectable } from '@angular/upgrade/static'; declare const angular: angular.IAngularStatic; // Components // // Modules // // Services // // Directives // // Pipes // // RxJS // import { Subject } from 'rxjs/Subject'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/filter'; import 'rxjs/add/operator/map'; // Other // import { IBroadcastEvent } from './broadcast.interface'; @Injectable() export class FbBroadcastService { private ng1Broadcasts: Subject = new Subject(); broadcast(key: string, data?: any): any { this.ng1Broadcasts.next({key, data}); } on(key: string): Observable { return this.ng1Broadcasts.asObservable() .filter(event => event.key === key) .map(event => event.data as T); } } angular.module('fasit') .factory('fbBroadcastService', downgradeInjectable(FbBroadcastService));