UNPKG

carbon-components-angular

Version:
35 lines 4.92 kB
import { Injectable } from "@angular/core"; import { Subscription } from "rxjs"; import { getEventObservable } from "./event-observable"; import * as i0 from "@angular/core"; import * as i1 from "./document.service"; export class EventService { constructor(documentService) { this.documentService = documentService; this.subscriptions = new Subscription(); this.targets = new WeakMap(); } on(targetElement, eventType, callback) { if (!this.targets.has(targetElement)) { this.targets.set(targetElement, new Map()); } const eventMap = this.targets.get(targetElement); if (!eventMap.has(eventType)) { eventMap.set(eventType, getEventObservable(targetElement, eventType)); } const subscription = eventMap.get(eventType).subscribe(callback); this.subscriptions.add(subscription); } onDocument(eventType, callback) { this.documentService.handleEvent(eventType, callback); } ngOnDestroy() { this.subscriptions.unsubscribe(); } } EventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EventService, deps: [{ token: i1.DocumentService }], target: i0.ɵɵFactoryTarget.Injectable }); EventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EventService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: EventService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.DocumentService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTyxZQUFZO0lBS3hCLFlBQXNCLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUo1QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkMsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFvRSxDQUFDO0lBRTNDLENBQUM7SUFFMUQsRUFBRSxDQUFDLGFBQW9DLEVBQUUsU0FBaUIsRUFBRSxRQUFzQjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUMzQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxTQUFpQixFQUFFLFFBQXNCO1FBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7eUdBNUJXLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tIFwiLi9kb2N1bWVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFdmVudEhhbmRsZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0RXZlbnRPYnNlcnZhYmxlIH0gZnJvbSBcIi4vZXZlbnQtb2JzZXJ2YWJsZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0cHJvdGVjdGVkIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cblx0cHJvdGVjdGVkIHRhcmdldHMgPSBuZXcgV2Vha01hcDxIVE1MRWxlbWVudCB8IEVsZW1lbnQgfCBEb2N1bWVudCwgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxFdmVudD4+PigpO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSkge31cblxuXHRvbih0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCB8IEVsZW1lbnQsIGV2ZW50VHlwZTogc3RyaW5nLCBjYWxsYmFjazogRXZlbnRIYW5kbGVyKSB7XG5cdFx0aWYgKCF0aGlzLnRhcmdldHMuaGFzKHRhcmdldEVsZW1lbnQpKSB7XG5cdFx0XHR0aGlzLnRhcmdldHMuc2V0KHRhcmdldEVsZW1lbnQsIG5ldyBNYXAoKSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZXZlbnRNYXAgPSB0aGlzLnRhcmdldHMuZ2V0KHRhcmdldEVsZW1lbnQpO1xuXG5cdFx0aWYgKCFldmVudE1hcC5oYXMoZXZlbnRUeXBlKSkge1xuXHRcdFx0ZXZlbnRNYXAuc2V0KGV2ZW50VHlwZSwgZ2V0RXZlbnRPYnNlcnZhYmxlKHRhcmdldEVsZW1lbnQsIGV2ZW50VHlwZSkpO1xuXHRcdH1cblxuXHRcdGNvbnN0IHN1YnNjcmlwdGlvbiA9IGV2ZW50TWFwLmdldChldmVudFR5cGUpLnN1YnNjcmliZShjYWxsYmFjayk7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLmFkZChzdWJzY3JpcHRpb24pO1xuXHR9XG5cblx0b25Eb2N1bWVudChldmVudFR5cGU6IHN0cmluZywgY2FsbGJhY2s6IEV2ZW50SGFuZGxlcikge1xuXHRcdHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmhhbmRsZUV2ZW50KGV2ZW50VHlwZSwgY2FsbGJhY2spO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG5cdH1cbn1cbiJdfQ==