@ashetm/ng-broadcast-channel
Version:
``@ashetm/ng-broadcast-channel`` is a library that simplify manipulation of ``BroadcastChannel`` API.
1 lines • 4.57 kB
Source Map (JSON)
{"version":3,"file":"ashetm-ng-broadcast-channel.mjs","sources":["../../../projects/broadcast-channel/src/lib/broadcast-channel.ref.ts","../../../projects/broadcast-channel/src/lib/broadcast-channel.service.ts","../../../projects/broadcast-channel/src/lib/broadcast-channel.provider.ts","../../../projects/broadcast-channel/src/public-api.ts","../../../projects/broadcast-channel/src/ashetm-ng-broadcast-channel.ts"],"sourcesContent":["import { NgZone } from \"@angular/core\";\nimport { Observable, Subscriber } from \"rxjs\";\n\n\nexport class BroadcastChannelRef<T> {\n\n readonly data$: Observable<T> = new Observable<T>((subscriber: Subscriber<T>) => {\n this._broadcastChannel.onmessage = (event: MessageEvent<T>) => {\n this._ngZone.run(() => subscriber.next(event.data));\n };\n this._broadcastChannel.onmessageerror = (event: MessageEvent<T>) => {\n this._ngZone.run(() => subscriber.error(event.data));\n };\n });\n\n private readonly _broadcastChannel: BroadcastChannel;\n\n get name(): string {\n return this._broadcastChannel.name;\n }\n\n constructor(\n private readonly _ngZone: NgZone,\n private readonly _name: string\n ) {\n this._broadcastChannel = new BroadcastChannel(_name);\n }\n\n close(): void {\n this._broadcastChannel.close();\n }\n\n send(data: T): void {\n this._broadcastChannel.postMessage(data);\n }\n\n}\n","import { Injectable, NgZone, OnDestroy } from '@angular/core';\n\nimport { BroadcastChannelRef } from './broadcast-channel.ref';\n\n\n@Injectable()\nexport class BroadcastChannelService implements OnDestroy {\n\n private readonly _broadcastChannels: Record<string, BroadcastChannelRef<any>>\n = { };\n\n constructor(private readonly _ngZone: NgZone) { }\n\n ngOnDestroy(): void {\n for (const broadcastChannel in this._broadcastChannels) {\n this._broadcastChannels[broadcastChannel].close();\n }\n }\n\n create<T>(name: string): BroadcastChannelRef<T> {\n return this._broadcastChannels[name]\n || (this._broadcastChannels[name] = new BroadcastChannelRef<T>(this._ngZone, name));\n }\n\n get<T>(name: string): BroadcastChannelRef<T> | null {\n return this._broadcastChannels[name];\n }\n\n}\n","import { makeEnvironmentProviders } from \"@angular/core\";\n\nimport { BroadcastChannelService } from \"./broadcast-channel.service\";\n\nexport const provideBroadcastChannel = () => {\n return makeEnvironmentProviders([BroadcastChannelService]);\n}\n","/*\n * Public API Surface of broadcast-channel\n */\n\nexport * from './lib/broadcast-channel.provider';\nexport * from './lib/broadcast-channel.ref';\nexport * from './lib/broadcast-channel.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAIa,mBAAmB,CAAA;AAa9B,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;KACpC;IAED,WACmB,CAAA,OAAe,EACf,KAAa,EAAA;QADb,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AAjBvB,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,UAAU,CAAI,CAAC,UAAyB,KAAI;YAC9E,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,KAAsB,KAAI;AAC5D,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,aAAC,CAAC;YACF,IAAI,CAAC,iBAAiB,CAAC,cAAc,GAAG,CAAC,KAAsB,KAAI;AACjE,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC;QAYD,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;KACtD;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;KAChC;AAED,IAAA,IAAI,CAAC,IAAO,EAAA;AACV,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1C;AAEF;;MC9BY,uBAAuB,CAAA;AAKlC,IAAA,WAAA,CAA6B,OAAe,EAAA;QAAf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAH3B,IAAkB,CAAA,kBAAA,GAC/B,EAAG,CAAC;KAEyC;IAEjD,WAAW,GAAA;AACT,QAAA,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACtD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;AACnD,SAAA;KACF;AAED,IAAA,MAAM,CAAI,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC/B,gBAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,mBAAmB,CAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;KACvF;AAED,IAAA,GAAG,CAAI,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACtC;wFApBU,uBAAuB,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,iBAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,KAAA,EAAA,uBAAuB,WAAvB,uBAAuB,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;uFAAvB,uBAAuB,EAAA,CAAA;cADnC,UAAU;;;ACDJ,MAAM,uBAAuB,GAAG,MAAK;AAC1C,IAAA,OAAO,wBAAwB,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC7D;;ACNA;;AAEG;;ACFH;;AAEG;;;;"}