1 import { Injectable } from '@angular/core';
2 import {BasePubSub, IPubSubEvent} from "../../models/base-pubsub";
5 export class EventBusService extends BasePubSub {
11 protected handlePluginRegistration(eventData: IPubSubEvent, event: any) {
12 if (eventData.type === 'PLUGIN_REGISTER') {
13 this.register(eventData.data.pluginId, event.source, event.origin);
14 } else if (eventData.type === 'PLUGIN_UNREGISTER') {
15 this.unregister(eventData.data.pluginId);
19 public unregister(pluginId: string) {
20 const unregisterData = {
24 this.notify('PLUGIN_CLOSE', unregisterData);
25 super.unregister(pluginId);
28 protected onMessage(event: any) {
29 if (event.data.type === 'PLUGIN_REGISTER') {
30 this.handlePluginRegistration(event.data, event);
33 super.onMessage(event);
35 if (event.data.type === 'PLUGIN_UNREGISTER') {
36 this.handlePluginRegistration(event.data, event);