UNPKG

ag-grid-angular

Version:
60 lines 8.89 kB
export class AngularFrameworkEventListenerService { constructor(frameworkOverrides) { this.frameworkOverrides = frameworkOverrides; // Map from user listener to wrapped listener so we can remove listener provided by user this.wrappedListeners = new Map(); this.wrappedGlobalListeners = new Map(); } wrap(eventType, userListener) { const { frameworkOverrides, wrappedListeners } = this; let listener = userListener; if (frameworkOverrides.shouldWrapOutgoing) { listener = (event) => { frameworkOverrides.wrapOutgoing(() => userListener(event)); }; let eventListeners = wrappedListeners.get(eventType); if (!eventListeners) { eventListeners = new Map(); wrappedListeners.set(eventType, eventListeners); } eventListeners.set(userListener, listener); } return listener; } wrapGlobal(userListener) { const { frameworkOverrides, wrappedGlobalListeners } = this; let listener = userListener; if (frameworkOverrides.shouldWrapOutgoing) { listener = (eventType, event) => { frameworkOverrides.wrapOutgoing(() => userListener(eventType, event)); }; wrappedGlobalListeners.set(userListener, listener); } return listener; } unwrap(eventType, userListener) { const { wrappedListeners } = this; const eventListeners = wrappedListeners.get(eventType); if (eventListeners) { const wrapped = eventListeners.get(userListener); if (wrapped) { eventListeners.delete(userListener); if (eventListeners.size === 0) { wrappedListeners.delete(eventType); } return wrapped; } } return userListener; } unwrapGlobal(userListener) { const { wrappedGlobalListeners } = this; const wrapped = wrappedGlobalListeners.get(userListener); if (wrapped) { wrappedGlobalListeners.delete(userListener); return wrapped; } return userListener; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWctZ3JpZC1hbmd1bGFyL3NyYy9saWIvYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxvQ0FBb0M7SUFRN0MsWUFBb0Isa0JBQTZDO1FBQTdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFKakUsd0ZBQXdGO1FBQ2hGLHFCQUFnQixHQUE4RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLDJCQUFzQixHQUFvRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFOUQsSUFBSSxDQUFDLFNBQTBCLEVBQUUsWUFBNEI7UUFDaEUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3RELElBQUksUUFBUSxHQUFRLFlBQVksQ0FBQztRQUVqQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsUUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ3RCLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvRCxDQUFDLENBQUM7WUFFRixJQUFJLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNsQixjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxVQUFVLENBQUMsWUFBa0M7UUFDaEQsTUFBTSxFQUFFLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQzVELElBQUksUUFBUSxHQUFRLFlBQVksQ0FBQztRQUVqQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDeEMsUUFBUSxHQUFHLENBQUMsU0FBYyxFQUFFLEtBQVUsRUFBRSxFQUFFO2dCQUN0QyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQztZQUNGLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBMEIsRUFBRSxZQUE0QjtRQUNsRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksY0FBYyxFQUFFLENBQUM7WUFDakIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDNUIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2dCQUNELE9BQU8sT0FBTyxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNNLFlBQVksQ0FBQyxZQUFrQztRQUNsRCxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixzQkFBc0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUMsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyB9IGZyb20gJy4vYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyc7XG5cbnR5cGUgRXZlbnRUeXBlVG9XcmFwID0gc3RyaW5nO1xuXG5leHBvcnQgY2xhc3MgQW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlPFxuICAgIFRFdmVudExpc3RlbmVyIGV4dGVuZHMgKGU6IGFueSkgPT4gdm9pZCxcbiAgICBUR2xvYmFsRXZlbnRMaXN0ZW5lciBleHRlbmRzIChuYW1lOiBzdHJpbmcsIGU6IGFueSkgPT4gdm9pZCxcbj4ge1xuICAgIC8vIE1hcCBmcm9tIHVzZXIgbGlzdGVuZXIgdG8gd3JhcHBlZCBsaXN0ZW5lciBzbyB3ZSBjYW4gcmVtb3ZlIGxpc3RlbmVyIHByb3ZpZGVkIGJ5IHVzZXJcbiAgICBwcml2YXRlIHdyYXBwZWRMaXN0ZW5lcnM6IE1hcDxFdmVudFR5cGVUb1dyYXAsIE1hcDxURXZlbnRMaXN0ZW5lciwgVEV2ZW50TGlzdGVuZXI+PiA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIHdyYXBwZWRHbG9iYWxMaXN0ZW5lcnM6IE1hcDxUR2xvYmFsRXZlbnRMaXN0ZW5lciwgVEdsb2JhbEV2ZW50TGlzdGVuZXI+ID0gbmV3IE1hcCgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmFtZXdvcmtPdmVycmlkZXM6IEFuZ3VsYXJGcmFtZXdvcmtPdmVycmlkZXMpIHt9XG5cbiAgICBwdWJsaWMgd3JhcChldmVudFR5cGU6IEV2ZW50VHlwZVRvV3JhcCwgdXNlckxpc3RlbmVyOiBURXZlbnRMaXN0ZW5lcik6IFRFdmVudExpc3RlbmVyIHtcbiAgICAgICAgY29uc3QgeyBmcmFtZXdvcmtPdmVycmlkZXMsIHdyYXBwZWRMaXN0ZW5lcnMgfSA9IHRoaXM7XG4gICAgICAgIGxldCBsaXN0ZW5lcjogYW55ID0gdXNlckxpc3RlbmVyO1xuXG4gICAgICAgIGlmIChmcmFtZXdvcmtPdmVycmlkZXMuc2hvdWxkV3JhcE91dGdvaW5nKSB7XG4gICAgICAgICAgICBsaXN0ZW5lciA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgZnJhbWV3b3JrT3ZlcnJpZGVzLndyYXBPdXRnb2luZygoKSA9PiB1c2VyTGlzdGVuZXIoZXZlbnQpKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCBldmVudExpc3RlbmVycyA9IHdyYXBwZWRMaXN0ZW5lcnMuZ2V0KGV2ZW50VHlwZSk7XG4gICAgICAgICAgICBpZiAoIWV2ZW50TGlzdGVuZXJzKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICAgICAgd3JhcHBlZExpc3RlbmVycy5zZXQoZXZlbnRUeXBlLCBldmVudExpc3RlbmVycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudExpc3RlbmVycy5zZXQodXNlckxpc3RlbmVyLCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpc3RlbmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cmFwR2xvYmFsKHVzZXJMaXN0ZW5lcjogVEdsb2JhbEV2ZW50TGlzdGVuZXIpOiBUR2xvYmFsRXZlbnRMaXN0ZW5lciB7XG4gICAgICAgIGNvbnN0IHsgZnJhbWV3b3JrT3ZlcnJpZGVzLCB3cmFwcGVkR2xvYmFsTGlzdGVuZXJzIH0gPSB0aGlzO1xuICAgICAgICBsZXQgbGlzdGVuZXI6IGFueSA9IHVzZXJMaXN0ZW5lcjtcblxuICAgICAgICBpZiAoZnJhbWV3b3JrT3ZlcnJpZGVzLnNob3VsZFdyYXBPdXRnb2luZykge1xuICAgICAgICAgICAgbGlzdGVuZXIgPSAoZXZlbnRUeXBlOiBhbnksIGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtPdmVycmlkZXMud3JhcE91dGdvaW5nKCgpID0+IHVzZXJMaXN0ZW5lcihldmVudFR5cGUsIGV2ZW50KSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgd3JhcHBlZEdsb2JhbExpc3RlbmVycy5zZXQodXNlckxpc3RlbmVyLCBsaXN0ZW5lcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpc3RlbmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bndyYXAoZXZlbnRUeXBlOiBFdmVudFR5cGVUb1dyYXAsIHVzZXJMaXN0ZW5lcjogVEV2ZW50TGlzdGVuZXIpOiBURXZlbnRMaXN0ZW5lciB7XG4gICAgICAgIGNvbnN0IHsgd3JhcHBlZExpc3RlbmVycyB9ID0gdGhpcztcbiAgICAgICAgY29uc3QgZXZlbnRMaXN0ZW5lcnMgPSB3cmFwcGVkTGlzdGVuZXJzLmdldChldmVudFR5cGUpO1xuICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZWQgPSBldmVudExpc3RlbmVycy5nZXQodXNlckxpc3RlbmVyKTtcbiAgICAgICAgICAgIGlmICh3cmFwcGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRMaXN0ZW5lcnMuZGVsZXRlKHVzZXJMaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50TGlzdGVuZXJzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd3JhcHBlZExpc3RlbmVycy5kZWxldGUoZXZlbnRUeXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXJMaXN0ZW5lcjtcbiAgICB9XG4gICAgcHVibGljIHVud3JhcEdsb2JhbCh1c2VyTGlzdGVuZXI6IFRHbG9iYWxFdmVudExpc3RlbmVyKTogVEdsb2JhbEV2ZW50TGlzdGVuZXIge1xuICAgICAgICBjb25zdCB7IHdyYXBwZWRHbG9iYWxMaXN0ZW5lcnMgfSA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHdyYXBwZWQgPSB3cmFwcGVkR2xvYmFsTGlzdGVuZXJzLmdldCh1c2VyTGlzdGVuZXIpO1xuICAgICAgICBpZiAod3JhcHBlZCkge1xuICAgICAgICAgICAgd3JhcHBlZEdsb2JhbExpc3RlbmVycy5kZWxldGUodXNlckxpc3RlbmVyKTtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1c2VyTGlzdGVuZXI7XG4gICAgfVxufVxuIl19