ag-grid-angular
Version:
AG Grid Angular Component
35 lines • 5.49 kB
JavaScript
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(userListener) {
let listener = userListener;
if (this.frameworkOverrides.shouldWrapOutgoing) {
listener = (event) => {
this.frameworkOverrides.wrapOutgoing(() => userListener(event));
};
this.wrappedListeners.set(userListener, listener);
}
return listener;
}
wrapGlobal(userListener) {
let listener = userListener;
if (this.frameworkOverrides.shouldWrapOutgoing) {
listener = (eventType, event) => {
this.frameworkOverrides.wrapOutgoing(() => userListener(eventType, event));
};
this.wrappedGlobalListeners.set(userListener, listener);
}
return listener;
}
unwrap(userListener) {
return this.wrappedListeners.get(userListener) ?? userListener;
}
unwrapGlobal(userListener) {
return this.wrappedGlobalListeners.get(userListener) ?? userListener;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYWctZ3JpZC1hbmd1bGFyL3NyYy9saWIvYW5ndWxhckZyYW1ld29ya0V2ZW50TGlzdGVuZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxvQ0FBb0M7SUFRN0MsWUFBb0Isa0JBQTZDO1FBQTdDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMkI7UUFKakUsd0ZBQXdGO1FBQ2hGLHFCQUFnQixHQUF3QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2xFLDJCQUFzQixHQUFvRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFOUQsSUFBSSxDQUFDLFlBQTRCO1FBQ3BDLElBQUksUUFBUSxHQUFRLFlBQVksQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QyxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNyRDtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxVQUFVLENBQUMsWUFBa0M7UUFDaEQsSUFBSSxRQUFRLEdBQVEsWUFBWSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixFQUFFO1lBQzVDLFFBQVEsR0FBRyxDQUFDLFNBQWMsRUFBRSxLQUFVLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0UsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQTRCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUM7SUFDbkUsQ0FBQztJQUNNLFlBQVksQ0FBQyxZQUFrQztRQUNsRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDO0lBQ3pFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyB9IGZyb20gJy4vYW5ndWxhckZyYW1ld29ya092ZXJyaWRlcyc7XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRnJhbWV3b3JrRXZlbnRMaXN0ZW5lclNlcnZpY2U8XG4gICAgVEV2ZW50TGlzdGVuZXIgZXh0ZW5kcyAoZTogYW55KSA9PiB2b2lkLFxuICAgIFRHbG9iYWxFdmVudExpc3RlbmVyIGV4dGVuZHMgKG5hbWU6IHN0cmluZywgZTogYW55KSA9PiB2b2lkLFxuPiB7XG4gICAgLy8gTWFwIGZyb20gdXNlciBsaXN0ZW5lciB0byB3cmFwcGVkIGxpc3RlbmVyIHNvIHdlIGNhbiByZW1vdmUgbGlzdGVuZXIgcHJvdmlkZWQgYnkgdXNlclxuICAgIHByaXZhdGUgd3JhcHBlZExpc3RlbmVyczogTWFwPFRFdmVudExpc3RlbmVyLCBURXZlbnRMaXN0ZW5lcj4gPSBuZXcgTWFwKCk7XG4gICAgcHJpdmF0ZSB3cmFwcGVkR2xvYmFsTGlzdGVuZXJzOiBNYXA8VEdsb2JhbEV2ZW50TGlzdGVuZXIsIFRHbG9iYWxFdmVudExpc3RlbmVyPiA9IG5ldyBNYXAoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJhbWV3b3JrT3ZlcnJpZGVzOiBBbmd1bGFyRnJhbWV3b3JrT3ZlcnJpZGVzKSB7fVxuXG4gICAgcHVibGljIHdyYXAodXNlckxpc3RlbmVyOiBURXZlbnRMaXN0ZW5lcik6IFRFdmVudExpc3RlbmVyIHtcbiAgICAgICAgbGV0IGxpc3RlbmVyOiBhbnkgPSB1c2VyTGlzdGVuZXI7XG4gICAgICAgIGlmICh0aGlzLmZyYW1ld29ya092ZXJyaWRlcy5zaG91bGRXcmFwT3V0Z29pbmcpIHtcbiAgICAgICAgICAgIGxpc3RlbmVyID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1ld29ya092ZXJyaWRlcy53cmFwT3V0Z29pbmcoKCkgPT4gdXNlckxpc3RlbmVyKGV2ZW50KSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy53cmFwcGVkTGlzdGVuZXJzLnNldCh1c2VyTGlzdGVuZXIsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlzdGVuZXI7XG4gICAgfVxuXG4gICAgcHVibGljIHdyYXBHbG9iYWwodXNlckxpc3RlbmVyOiBUR2xvYmFsRXZlbnRMaXN0ZW5lcik6IFRHbG9iYWxFdmVudExpc3RlbmVyIHtcbiAgICAgICAgbGV0IGxpc3RlbmVyOiBhbnkgPSB1c2VyTGlzdGVuZXI7XG5cbiAgICAgICAgaWYgKHRoaXMuZnJhbWV3b3JrT3ZlcnJpZGVzLnNob3VsZFdyYXBPdXRnb2luZykge1xuICAgICAgICAgICAgbGlzdGVuZXIgPSAoZXZlbnRUeXBlOiBhbnksIGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZyYW1ld29ya092ZXJyaWRlcy53cmFwT3V0Z29pbmcoKCkgPT4gdXNlckxpc3RlbmVyKGV2ZW50VHlwZSwgZXZlbnQpKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLndyYXBwZWRHbG9iYWxMaXN0ZW5lcnMuc2V0KHVzZXJMaXN0ZW5lciwgbGlzdGVuZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaXN0ZW5lcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW53cmFwKHVzZXJMaXN0ZW5lcjogVEV2ZW50TGlzdGVuZXIpOiBURXZlbnRMaXN0ZW5lciB7XG4gICAgICAgIHJldHVybiB0aGlzLndyYXBwZWRMaXN0ZW5lcnMuZ2V0KHVzZXJMaXN0ZW5lcikgPz8gdXNlckxpc3RlbmVyO1xuICAgIH1cbiAgICBwdWJsaWMgdW53cmFwR2xvYmFsKHVzZXJMaXN0ZW5lcjogVEdsb2JhbEV2ZW50TGlzdGVuZXIpOiBUR2xvYmFsRXZlbnRMaXN0ZW5lciB7XG4gICAgICAgIHJldHVybiB0aGlzLndyYXBwZWRHbG9iYWxMaXN0ZW5lcnMuZ2V0KHVzZXJMaXN0ZW5lcikgPz8gdXNlckxpc3RlbmVyO1xuICAgIH1cbn1cbiJdfQ==