New observable notify design in pubsub

Implemented the new subscription mechanism for the pub sub notify function

Change-Id: I5e6484adf1a0413d48b54b55048cda1a59b387ee
Issue-ID: SDC-1178
Signed-off-by: Idan Amit <ia096e@intl.att.com>
diff --git a/catalog-ui/src/app/models/plugin-pubsub.ts b/catalog-ui/src/app/models/plugin-pubsub.ts
new file mode 100644
index 0000000..3a34de9
--- /dev/null
+++ b/catalog-ui/src/app/models/plugin-pubsub.ts
@@ -0,0 +1,29 @@
+import {BasePubSub} from "./base-pubsub";
+
+declare const window: Window;
+
+export class PluginPubSub extends BasePubSub {
+
+    constructor(pluginId: string, parentUrl: string, eventsToWait?: Array<string>) {
+        super(pluginId);
+        this.register('sdc-hub', window.parent, parentUrl);
+        this.subscribe(eventsToWait);
+    }
+
+    public subscribe(eventsToWait?: Array<string>) {
+        const registerData = {
+            pluginId: this.clientId,
+            eventsToWait: eventsToWait || []
+        };
+
+        this.notify('PLUGIN_REGISTER', registerData);
+    }
+
+    public unsubscribe() {
+        const unregisterData = {
+            pluginId: this.clientId
+        };
+
+        this.notify('PLUGIN_UNREGISTER', unregisterData);
+    }
+}