UNPKG

cocori-ng

Version:

Cocori-ng is an Angular full of great components & utilites based on Material

42 lines 6.38 kB
import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { filter, map } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class BroadcastEventService { constructor() { this._broadcastedEvents = []; this._eventBus = new Subject(); } broadcast(event) { this._eventBus.next(event); } listen(keys) { const eventKey = keys.join("-"); if (!this.isEventKnown(eventKey)) { const newEvent = this._eventBus.asObservable() .pipe(filter(event => (event.eventKeys.join("-")) === eventKey), map(event => event.eventData)); this._broadcastedEvents.push({ eventKey: eventKey, event: newEvent }); return newEvent; } else { return this.returnEvent(eventKey); } } isEventKnown(eventKey) { const index = this._broadcastedEvents.findIndex(entrée => entrée.eventKey === eventKey); return index >= 0; } returnEvent(eventKey) { const event = this._broadcastedEvents.find(event => event.eventKey === eventKey); return event.event; } } BroadcastEventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); BroadcastEventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BroadcastEventService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BroadcastEventService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LWV2ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2Nvcmktbmcvc3JjL2ZlYXR1cmUtY29yZS9zZXJ2aWNlL2Jyb2FkY2FzdC1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWlCN0MsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QjtRQUZRLHVCQUFrQixHQUFpQixFQUFFLENBQUM7UUFHMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQztJQUNuRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXFCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUksSUFBZTtRQUNyQixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXZDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFrQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTtpQkFDeEQsSUFBSSxDQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsRUFDekQsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUNoQyxDQUFDO1lBRU4sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFaEYsT0FBTyxRQUFRLENBQUM7U0FDbkI7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFTyxZQUFZLENBQUMsUUFBZ0I7UUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7UUFFeEYsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxXQUFXLENBQUksUUFBZ0I7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7UUFFakYsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O2tIQXhDUSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZsQixNQUFNOzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbnRlcmZhY2UgQnJvYWRjYXN0RXZlbnQge1xyXG4gICAgZXZlbnRLZXlzOiBFdmVudEtleXM7XHJcbiAgICBldmVudERhdGE/OiBhbnk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBFdmVudDxUPiB7XHJcbiAgICBldmVudEtleTogc3RyaW5nO1xyXG4gICAgZXZlbnQ6IE9ic2VydmFibGU8VD47XHJcbn1cclxuXHJcbnR5cGUgRXZlbnRLZXlzID0gKHN0cmluZyB8IG51bWJlcilbXTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdEV2ZW50U2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9ldmVudEJ1czogU3ViamVjdDxCcm9hZGNhc3RFdmVudD47XHJcbiAgICBwcml2YXRlIF9icm9hZGNhc3RlZEV2ZW50czogRXZlbnQ8YW55PltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRCdXMgPSBuZXcgU3ViamVjdDxCcm9hZGNhc3RFdmVudD4oKTtcclxuICAgIH1cclxuXHJcbiAgICBicm9hZGNhc3QoZXZlbnQ6IEJyb2FkY2FzdEV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fZXZlbnRCdXMubmV4dChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGlzdGVuPFQ+KGtleXM6IEV2ZW50S2V5cyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50S2V5OiBzdHJpbmcgPSBrZXlzLmpvaW4oXCItXCIpXHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0V2ZW50S25vd24oZXZlbnRLZXkpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0V2ZW50OiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5fZXZlbnRCdXMuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiAoZXZlbnQuZXZlbnRLZXlzLmpvaW4oXCItXCIpKSA9PT0gZXZlbnRLZXkpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiBldmVudC5ldmVudERhdGEpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2Jyb2FkY2FzdGVkRXZlbnRzLnB1c2goPEV2ZW50PFQ+PnsgZXZlbnRLZXk6IGV2ZW50S2V5LCBldmVudDogbmV3RXZlbnQgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbmV3RXZlbnQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuRXZlbnQoZXZlbnRLZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzRXZlbnRLbm93bihldmVudEtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9icm9hZGNhc3RlZEV2ZW50cy5maW5kSW5kZXgoZW50csOpZSA9PiBlbnRyw6llLmV2ZW50S2V5ID09PSBldmVudEtleSk7XHJcblxyXG4gICAgICAgIHJldHVybiBpbmRleCA+PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0dXJuRXZlbnQ8VD4oZXZlbnRLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5fYnJvYWRjYXN0ZWRFdmVudHMuZmluZChldmVudCA9PiBldmVudC5ldmVudEtleSA9PT0gZXZlbnRLZXkpO1xyXG5cclxuICAgICAgICByZXR1cm4gZXZlbnQuZXZlbnQ7XHJcbiAgICB9XHJcbn1cclxuIl19