UNPKG

@ashetm/ng-broadcast-channel

Version:

``@ashetm/ng-broadcast-channel`` is a library that simplify manipulation of ``BroadcastChannel`` API.

27 lines 3.48 kB
import { Injectable } from '@angular/core'; import { BroadcastChannelRef } from './broadcast-channel.ref'; import * as i0 from "@angular/core"; export class BroadcastChannelService { constructor(_ngZone) { this._ngZone = _ngZone; this._broadcastChannels = {}; } ngOnDestroy() { for (const broadcastChannel in this._broadcastChannels) { this._broadcastChannels[broadcastChannel].close(); } } create(name) { return this._broadcastChannels[name] || (this._broadcastChannels[name] = new BroadcastChannelRef(this._ngZone, name)); } get(name) { return this._broadcastChannels[name]; } static { this.ɵfac = function BroadcastChannelService_Factory(t) { return new (t || BroadcastChannelService)(i0.ɵɵinject(i0.NgZone)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BroadcastChannelService, factory: BroadcastChannelService.ɵfac }); } } (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BroadcastChannelService, [{ type: Injectable }], function () { return [{ type: i0.NgZone }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvYWRjYXN0LWNoYW5uZWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Jyb2FkY2FzdC1jaGFubmVsL3NyYy9saWIvYnJvYWRjYXN0LWNoYW5uZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFJOUQsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUE2QixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUgzQix1QkFBa0IsR0FDL0IsRUFBRyxDQUFDO0lBRXdDLENBQUM7SUFFakQsV0FBVztRQUNULEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFJLElBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO2VBQy9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksbUJBQW1CLENBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxHQUFHLENBQUksSUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO3dGQXBCVSx1QkFBdUI7dUVBQXZCLHVCQUF1QixXQUF2Qix1QkFBdUI7O3VGQUF2Qix1QkFBdUI7Y0FEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyb2FkY2FzdENoYW5uZWxSZWYgfSBmcm9tICcuL2Jyb2FkY2FzdC1jaGFubmVsLnJlZic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJyb2FkY2FzdENoYW5uZWxTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9icm9hZGNhc3RDaGFubmVsczogUmVjb3JkPHN0cmluZywgQnJvYWRjYXN0Q2hhbm5lbFJlZjxhbnk+PlxuICAgID0geyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lKSB7IH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGJyb2FkY2FzdENoYW5uZWwgaW4gdGhpcy5fYnJvYWRjYXN0Q2hhbm5lbHMpIHtcbiAgICAgIHRoaXMuX2Jyb2FkY2FzdENoYW5uZWxzW2Jyb2FkY2FzdENoYW5uZWxdLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlPFQ+KG5hbWU6IHN0cmluZyk6IEJyb2FkY2FzdENoYW5uZWxSZWY8VD4ge1xuICAgIHJldHVybiB0aGlzLl9icm9hZGNhc3RDaGFubmVsc1tuYW1lXVxuICAgICAgfHwgKHRoaXMuX2Jyb2FkY2FzdENoYW5uZWxzW25hbWVdID0gbmV3IEJyb2FkY2FzdENoYW5uZWxSZWY8VD4odGhpcy5fbmdab25lLCBuYW1lKSk7XG4gIH1cblxuICBnZXQ8VD4obmFtZTogc3RyaW5nKTogQnJvYWRjYXN0Q2hhbm5lbFJlZjxUPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9icm9hZGNhc3RDaGFubmVsc1tuYW1lXTtcbiAgfVxuXG59XG4iXX0=