diff --git a/frontend/src/lib/event-manager/event-manager.js b/frontend/src/lib/event-manager/event-manager.js index f0959d66e..a091445d5 100644 --- a/frontend/src/lib/event-manager/event-manager.js +++ b/frontend/src/lib/event-manager/event-manager.js @@ -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() {}