devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
25 lines (24 loc) • 763 B
JavaScript
import { ListUtils } from '@devexpress/utils/lib/utils/list';
export class EventDispatcher {
listeners = [];
clear() {
ListUtils.clear(this.listeners);
}
add(listener) {
if (!ListUtils.unsafeAnyOf(this.listeners, currListener => currListener === listener))
this.listeners.push(listener);
}
remove(listener) {
for (let i = 0, currListener; currListener = this.listeners[i]; i++) {
if (currListener === listener) {
this.listeners.splice(i, 1);
break;
}
}
}
dispose() {
const listeners = this.listeners;
this.listeners = [];
listeners.forEach(listener => listener.dispose?.());
}
}