feat(event-manager): mutation observers can be managed via the event manager

This commit is contained in:
Johannes Eder 2021-07-05 12:01:27 +02:00 committed by Sarah Vaupel
parent 6581137d2c
commit 34b4f48386

View File

@ -15,10 +15,12 @@ export const EVENT_TYPE = {
export class EventManager {
_registeredListeners;
_mutationObservers;
constructor() {
this._registeredListeners = [];
this._mutationObservers = [];
}
registerNewListener(eventWrapper) {
@ -28,6 +30,12 @@ export class EventManager {
this._registeredListeners.push(eventWrapper);
}
registerNewMutationObserver(callback, domNode, config) {
let observer = new MutationObserver(callback);
observer.observe(domNode, config);
this._muatationObservers.add(observer);
}
removeAllEventListenersFromUtil() {
this._debugLog('removeAllEventListenersFromUtil',);
for (let eventWrapper of this._registeredListeners) {
@ -37,6 +45,10 @@ export class EventManager {
this._registeredListeners = [];
}
removeAllObserversFromUtil() {
this._mutationObservers.forEach((observer) => observer.disconnect());
}
//Todo: Uncomment debug log!
//_debugLog() {}