UNPKG

ag-grid-angular

Version:
60 lines 8.8 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWctZ3JpZC1hbmd1bGFyL3NyYy9saWIvYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxvQ0FBb0M7SUFRN0MsWUFBb0Isa0JBQTZDO1FBQTdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFKakUsd0ZBQXdGO1FBQ2hGLHFCQUFnQixHQUE4RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLDJCQUFzQixHQUFvRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFOUQsSUFBSSxDQUFDLFNBQTBCLEVBQUUsWUFBNEI7UUFDaEUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3RELElBQUksUUFBUSxHQUFRLFlBQVksQ0FBQztRQUVqQyxJQUFJLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFO1lBQ3ZDLFFBQVEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUN0QixrQkFBa0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQyxDQUFDO1lBRUYsSUFBSSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ2pCLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUMzQixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsY0FBYyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDOUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sVUFBVSxDQUFDLFlBQWtDO1FBQ2hELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM1RCxJQUFJLFFBQVEsR0FBUSxZQUFZLENBQUM7UUFFakMsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUN2QyxRQUFRLEdBQUcsQ0FBQyxTQUFjLEVBQUUsS0FBVSxFQUFFLEVBQUU7Z0JBQ3RDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDO1lBQ0Ysc0JBQXNCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBMEIsRUFBRSxZQUE0QjtRQUNsRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksY0FBYyxFQUFFO1lBQ2hCLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsY0FBYyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDcEMsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDM0IsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxPQUFPLE9BQU8sQ0FBQzthQUNsQjtTQUNKO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUNNLFlBQVksQ0FBQyxZQUFrQztRQUNsRCxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELElBQUksT0FBTyxFQUFFO1lBQ1Qsc0JBQXNCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzIH0gZnJvbSAnLi9hbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzJztcblxudHlwZSBFdmVudFR5cGVUb1dyYXAgPSBzdHJpbmc7XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrRXZlbnRMaXN0ZW5lclNlcnZpY2U8XG4gICAgVEV2ZW50TGlzdGVuZXIgZXh0ZW5kcyAoZTogYW55KSA9PiB2b2lkLFxuICAgIFRHbG9iYWxFdmVudExpc3RlbmVyIGV4dGVuZHMgKG5hbWU6IHN0cmluZywgZTogYW55KSA9PiB2b2lkLFxuPiB7XG4gICAgLy8gTWFwIGZyb20gdXNlciBsaXN0ZW5lciB0byB3cmFwcGVkIGxpc3RlbmVyIHNvIHdlIGNhbiByZW1vdmUgbGlzdGVuZXIgcHJvdmlkZWQgYnkgdXNlclxuICAgIHByaXZhdGUgd3JhcHBlZExpc3RlbmVyczogTWFwPEV2ZW50VHlwZVRvV3JhcCwgTWFwPFRFdmVudExpc3RlbmVyLCBURXZlbnRMaXN0ZW5lcj4+ID0gbmV3IE1hcCgpO1xuICAgIHByaXZhdGUgd3JhcHBlZEdsb2JhbExpc3RlbmVyczogTWFwPFRHbG9iYWxFdmVudExpc3RlbmVyLCBUR2xvYmFsRXZlbnRMaXN0ZW5lcj4gPSBuZXcgTWFwKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyYW1ld29ya092ZXJyaWRlczogQW5ndWxhckZyYW1ld29ya092ZXJyaWRlcykge31cblxuICAgIHB1YmxpYyB3cmFwKGV2ZW50VHlwZTogRXZlbnRUeXBlVG9XcmFwLCB1c2VyTGlzdGVuZXI6IFRFdmVudExpc3RlbmVyKTogVEV2ZW50TGlzdGVuZXIge1xuICAgICAgICBjb25zdCB7IGZyYW1ld29ya092ZXJyaWRlcywgd3JhcHBlZExpc3RlbmVycyB9ID0gdGhpcztcbiAgICAgICAgbGV0IGxpc3RlbmVyOiBhbnkgPSB1c2VyTGlzdGVuZXI7XG5cbiAgICAgICAgaWYgKGZyYW1ld29ya092ZXJyaWRlcy5zaG91bGRXcmFwT3V0Z29pbmcpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBmcmFtZXdvcmtPdmVycmlkZXMud3JhcE91dGdvaW5nKCgpID0+IHVzZXJMaXN0ZW5lcihldmVudCkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IGV2ZW50TGlzdGVuZXJzID0gd3JhcHBlZExpc3RlbmVycy5nZXQoZXZlbnRUeXBlKTtcbiAgICAgICAgICAgIGlmICghZXZlbnRMaXN0ZW5lcnMpIHtcbiAgICAgICAgICAgICAgICBldmVudExpc3RlbmVycyA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgICAgICB3cmFwcGVkTGlzdGVuZXJzLnNldChldmVudFR5cGUsIGV2ZW50TGlzdGVuZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50TGlzdGVuZXJzLnNldCh1c2VyTGlzdGVuZXIsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdGVuZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHdyYXBHbG9iYWwodXNlckxpc3RlbmVyOiBUR2xvYmFsRXZlbnRMaXN0ZW5lcik6IFRHbG9iYWxFdmVudExpc3RlbmVyIHtcbiAgICAgICAgY29uc3QgeyBmcmFtZXdvcmtPdmVycmlkZXMsIHdyYXBwZWRHbG9iYWxMaXN0ZW5lcnMgfSA9IHRoaXM7XG4gICAgICAgIGxldCBsaXN0ZW5lcjogYW55ID0gdXNlckxpc3RlbmVyO1xuXG4gICAgICAgIGlmIChmcmFtZXdvcmtPdmVycmlkZXMuc2hvdWxkV3JhcE91dGdvaW5nKSB7XG4gICAgICAgICAgICBsaXN0ZW5lciA9IChldmVudFR5cGU6IGFueSwgZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGZyYW1ld29ya092ZXJyaWRlcy53cmFwT3V0Z29pbmcoKCkgPT4gdXNlckxpc3RlbmVyKGV2ZW50VHlwZSwgZXZlbnQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3cmFwcGVkR2xvYmFsTGlzdGVuZXJzLnNldCh1c2VyTGlzdGVuZXIsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdGVuZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHVud3JhcChldmVudFR5cGU6IEV2ZW50VHlwZVRvV3JhcCwgdXNlckxpc3RlbmVyOiBURXZlbnRMaXN0ZW5lcik6IFRFdmVudExpc3RlbmVyIHtcbiAgICAgICAgY29uc3QgeyB3cmFwcGVkTGlzdGVuZXJzIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHdyYXBwZWRMaXN0ZW5lcnMuZ2V0KGV2ZW50VHlwZSk7XG4gICAgICAgIGlmIChldmVudExpc3RlbmVycykge1xuICAgICAgICAgICAgY29uc3Qgd3JhcHBlZCA9IGV2ZW50TGlzdGVuZXJzLmdldCh1c2VyTGlzdGVuZXIpO1xuICAgICAgICAgICAgaWYgKHdyYXBwZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudExpc3RlbmVycy5kZWxldGUodXNlckxpc3RlbmVyKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnRMaXN0ZW5lcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB3cmFwcGVkTGlzdGVuZXJzLmRlbGV0ZShldmVudFR5cGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlckxpc3RlbmVyO1xuICAgIH1cbiAgICBwdWJsaWMgdW53cmFwR2xvYmFsKHVzZXJMaXN0ZW5lcjogVEdsb2JhbEV2ZW50TGlzdGVuZXIpOiBUR2xvYmFsRXZlbnRMaXN0ZW5lciB7XG4gICAgICAgIGNvbnN0IHsgd3JhcHBlZEdsb2JhbExpc3RlbmVycyB9ID0gdGhpcztcbiAgICAgICAgY29uc3Qgd3JhcHBlZCA9IHdyYXBwZWRHbG9iYWxMaXN0ZW5lcnMuZ2V0KHVzZXJMaXN0ZW5lcik7XG4gICAgICAgIGlmICh3cmFwcGVkKSB7XG4gICAgICAgICAgICB3cmFwcGVkR2xvYmFsTGlzdGVuZXJzLmRlbGV0ZSh1c2VyTGlzdGVuZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBwZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXJMaXN0ZW5lcjtcbiAgICB9XG59XG4iXX0=