feat(event-manager): mutation observers can be managed via the event manager
This commit is contained in:
parent
6581137d2c
commit
34b4f48386
@ -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() {}
|
||||
|
||||
Reference in New Issue
Block a user