@ashetm/ng-broadcast-channel
Version:
``@ashetm/ng-broadcast-channel`` is a library that simplify manipulation of ``BroadcastChannel`` API.
27 lines • 3.48 kB
JavaScript
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=