UNPKG

pithos

Version:

Advanced JavaScript/TypeScript superset providing performance, gestures, animations, and DOM utilities

43 lines 1.25 kB
import { Debouncer } from "./debouncer"; export class EventDebouncerManager { constructor(callback, delay = 3000) { this.listeners = []; this.debouncer = new Debouncer(delay, callback); } addTriggerEvent(element, event) { this.addEvent({ element, event, preventTimeout: false }); } addPreventEvent(element, event) { this.addEvent({ element, event, preventTimeout: true }); } addEvent(config) { const handler = () => { if (config.preventTimeout) { this.debouncer.cancel(); } else { this.debouncer.trigger(); } }; config.element.addEventListener(config.event, handler); this.listeners.push({ element: config.element, event: config.event, handler, }); } trigger() { this.debouncer.trigger(); } cancel() { this.debouncer.cancel(); } destroy() { this.debouncer.destroy(); this.listeners.forEach(({ element, event, handler }) => { element.removeEventListener(event, handler); }); this.listeners = []; } } //# sourceMappingURL=event-debouncer-manager.js.map