@hpe/angular-toolkit
Version:
Hewlett-Packard Enterprise : Angular toolkit for rapid project development
87 lines (86 loc) • 8.81 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
//=============================================================================
//===
//=== (C) Copyright 2018 Hewlett Packard Enterprise Development LP.
//===
//=== Use of this source code is governed by an MIT-style license that can be
//=== found in the LICENSE file
//=============================================================================
import { EventEmitter, Injectable } from "@angular/core";
import { AppEvent } from "@hpe/angular-toolkit/model";
export class EventBusService {
constructor() {
this.eventEmitterMap = new Map();
this.errorEvents = new EventEmitter();
}
/**
* @param {?} eventCode
* @param {?} handler
* @return {?}
*/
subscribeToApp(eventCode, handler) {
let /** @type {?} */ emitter = this.eventEmitterMap.get(eventCode);
if (emitter == null) {
emitter = new EventEmitter();
this.eventEmitterMap.set(eventCode, emitter);
}
return emitter.subscribe(handler, null, null);
}
/**
* @param {?} event
* @return {?}
*/
emitToApp(event) {
let /** @type {?} */ emitter = this.eventEmitterMap.get(event.code);
if (emitter != null) {
console.log("Emitting event : " + JSON.stringify(event));
emitter.emit(event);
}
else {
console.log("WARNING : Emitting an event without any handler : " + JSON.stringify(event));
}
//--- Emitting to global handlers
emitter = this.eventEmitterMap.get(AppEvent.ANY);
if (emitter != null) {
emitter.emit(event);
}
}
/**
* @param {?} handler
* @return {?}
*/
subscribeToError(handler) {
return this.errorEvents.subscribe(handler, null, null);
}
/**
* @param {?} event
* @return {?}
*/
emitToError(event) {
console.log("Emitting error event : " + JSON.stringify(event));
this.errorEvents.emit(event);
}
}
EventBusService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
EventBusService.ctorParameters = () => [];
function EventBusService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
EventBusService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
EventBusService.ctorParameters;
/** @type {?} */
EventBusService.prototype.eventEmitterMap;
/** @type {?} */
EventBusService.prototype.errorEvents;
}
//=============================================================================
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRidXMtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BocGUvYW5ndWxhci10b29sa2l0L3NlcnZpY2UvIiwic291cmNlcyI6WyJldmVudGJ1cy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkQsT0FBTyxFQUFDLFFBQVEsRUFBeUMsTUFBTSw0QkFBNEIsQ0FBQztBQUs1RixNQUFNO0lBaUJMOytCQVRnRSxJQUFJLEdBQUcsRUFBRTsyQkFDcEIsSUFBSSxZQUFZLEVBQUU7S0FTdEU7Ozs7OztJQVFNLGNBQWMsQ0FBQyxTQUFrQixFQUFFLE9BQXNCO1FBRS9ELHFCQUFJLE9BQU8sR0FBNEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFM0UsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzs7Ozs7O0lBS3hDLFNBQVMsQ0FBQyxLQUFnQjtRQUVoQyxxQkFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEdBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsQ0FBQztZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0RBQW9ELEdBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3pGOztRQUlELE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakQsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNwQjs7Ozs7O0lBS0ssZ0JBQWdCLENBQUMsT0FBc0I7UUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Ozs7OztJQUtqRCxXQUFXLENBQUMsS0FBa0I7UUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsR0FBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Ozs7WUF4RTlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLz09PVxuLy89PT0gKEMpIENvcHlyaWdodCAyMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLlxuLy89PT1cbi8vPT09IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4vLz09PSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtBcHBFdmVudCwgRXJyb3JFdmVudCwgRXJyb3JIYW5kbGVyLCBFdmVudEhhbmRsZXJ9IGZyb20gXCJAaHBlL2FuZ3VsYXItdG9vbGtpdC9tb2RlbFwiO1xuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdmVudEJ1c1NlcnZpY2Uge1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBWYXJpYWJsZXNcblx0Ly8tLS1cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBldmVudEVtaXR0ZXJNYXAgOiBNYXA8c3RyaW5nLCBFdmVudEVtaXR0ZXI8QXBwRXZlbnQ+PiA9IG5ldyBNYXAoKTtcblx0cHJpdmF0ZSBlcnJvckV2ZW50cyAgICAgOiBFdmVudEVtaXR0ZXI8RXJyb3JFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIENvbnN0cnVjdG9yXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIEFQSSBtZXRob2RzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBzdWJzY3JpYmVUb0FwcChldmVudENvZGUgOiBzdHJpbmcsIGhhbmRsZXIgOiBFdmVudEhhbmRsZXIpIDogU3Vic2NyaXB0aW9uIHtcblxuXHRcdGxldCBlbWl0dGVyIDogRXZlbnRFbWl0dGVyPEFwcEV2ZW50PiA9IHRoaXMuZXZlbnRFbWl0dGVyTWFwLmdldChldmVudENvZGUpO1xuXG5cdFx0aWYgKGVtaXR0ZXIgPT0gbnVsbCkge1xuXHRcdFx0ZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0XHRcdHRoaXMuZXZlbnRFbWl0dGVyTWFwLnNldChldmVudENvZGUsIGVtaXR0ZXIpO1xuXHRcdH1cblxuXHRcdHJldHVybiBlbWl0dGVyLnN1YnNjcmliZShoYW5kbGVyLCBudWxsLCBudWxsKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBlbWl0VG9BcHAoZXZlbnQgOiBBcHBFdmVudCkgOiB2b2lkIHtcblxuXHRcdGxldCBlbWl0dGVyID0gdGhpcy5ldmVudEVtaXR0ZXJNYXAuZ2V0KGV2ZW50LmNvZGUpO1xuXG5cdFx0aWYgKGVtaXR0ZXIgIT0gbnVsbCkge1xuXHRcdFx0Y29uc29sZS5sb2coXCJFbWl0dGluZyBldmVudCA6IFwiKyBKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXHRcdFx0ZW1pdHRlci5lbWl0KGV2ZW50KTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRjb25zb2xlLmxvZyhcIldBUk5JTkcgOiBFbWl0dGluZyBhbiBldmVudCB3aXRob3V0IGFueSBoYW5kbGVyIDogXCIrIEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG5cdFx0fVxuXG5cdFx0Ly8tLS0gRW1pdHRpbmcgdG8gZ2xvYmFsIGhhbmRsZXJzXG5cblx0XHRlbWl0dGVyID0gdGhpcy5ldmVudEVtaXR0ZXJNYXAuZ2V0KEFwcEV2ZW50LkFOWSk7XG5cblx0XHRpZiAoZW1pdHRlciAhPSBudWxsKSB7XG5cdFx0XHRlbWl0dGVyLmVtaXQoZXZlbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBzdWJzY3JpYmVUb0Vycm9yKGhhbmRsZXIgOiBFcnJvckhhbmRsZXIpIDogU3Vic2NyaXB0aW9uIHtcblx0XHRyZXR1cm4gdGhpcy5lcnJvckV2ZW50cy5zdWJzY3JpYmUoaGFuZGxlciwgbnVsbCwgbnVsbCk7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgZW1pdFRvRXJyb3IoZXZlbnQgOiBFcnJvckV2ZW50KSA6IHZvaWQge1xuXHRcdGNvbnNvbGUubG9nKFwiRW1pdHRpbmcgZXJyb3IgZXZlbnQgOiBcIisgSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblx0XHR0aGlzLmVycm9yRXZlbnRzLmVtaXQoZXZlbnQpO1xuXHR9XG59XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiJdfQ==