UNPKG

carbon-components-angular

Version:
36 lines 4.52 kB
import { Injectable } from "@angular/core"; import { Observable, Subscription } from "rxjs"; import { getEventObservable } from "./event-observable"; import * as i0 from "@angular/core"; export class DocumentService { constructor() { this.globalEvents = new Map(); this.documentRef = document; this.subscriptions = new Subscription(); } handleEvent(eventType, callback) { if (!this.globalEvents.has(eventType)) { if (this.documentRef) { this.globalEvents.set(eventType, getEventObservable(this.documentRef, eventType)); } else { this.globalEvents.set(eventType, new Observable()); } } const observable = this.globalEvents.get(eventType); this.subscriptions.add(observable.subscribe(callback)); } handleClick(callback) { this.handleEvent("click", callback); } ngOnDestroy() { this.subscriptions.unsubscribe(); this.globalEvents = null; } } DocumentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DocumentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); DocumentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DocumentService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DocumentService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9kb2N1bWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBR3hELE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVcsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUVwRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQztRQUV2QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0FzQjdDO0lBcEJBLFdBQVcsQ0FBQyxTQUFpQixFQUFFLFFBQXNCO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBa0IsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ3pGO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUM7YUFDbkQ7U0FDRDtRQUNELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQXNCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDOzs0R0ExQlcsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEV2ZW50SGFuZGxlciB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRFdmVudE9ic2VydmFibGUgfSBmcm9tIFwiLi9ldmVudC1vYnNlcnZhYmxlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHRwcm90ZWN0ZWQgZ2xvYmFsRXZlbnRzID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8RXZlbnQ+PigpO1xuXG5cdHByb3RlY3RlZCBkb2N1bWVudFJlZiA9IGRvY3VtZW50O1xuXG5cdHByb3RlY3RlZCBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG5cdGhhbmRsZUV2ZW50KGV2ZW50VHlwZTogc3RyaW5nLCBjYWxsYmFjazogRXZlbnRIYW5kbGVyKSB7XG5cdFx0aWYgKCF0aGlzLmdsb2JhbEV2ZW50cy5oYXMoZXZlbnRUeXBlKSkge1xuXHRcdFx0aWYgKHRoaXMuZG9jdW1lbnRSZWYpIHtcblx0XHRcdFx0dGhpcy5nbG9iYWxFdmVudHMuc2V0KGV2ZW50VHlwZSwgZ2V0RXZlbnRPYnNlcnZhYmxlKHRoaXMuZG9jdW1lbnRSZWYgYXMgYW55LCBldmVudFR5cGUpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuZ2xvYmFsRXZlbnRzLnNldChldmVudFR5cGUsIG5ldyBPYnNlcnZhYmxlKCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5nbG9iYWxFdmVudHMuZ2V0KGV2ZW50VHlwZSk7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLmFkZChvYnNlcnZhYmxlLnN1YnNjcmliZShjYWxsYmFjaykpO1xuXHR9XG5cblx0aGFuZGxlQ2xpY2soY2FsbGJhY2s6IEV2ZW50SGFuZGxlcikge1xuXHRcdHRoaXMuaGFuZGxlRXZlbnQoXCJjbGlja1wiLCBjYWxsYmFjayk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLmdsb2JhbEV2ZW50cyA9IG51bGw7XG5cdH1cbn1cbiJdfQ==