angular-rich-text-editor
Version:
A lightweight, configurable rich-text editor component for Angular applications.
28 lines • 3.38 kB
JavaScript
export class EditorEventManager {
editorInstance;
listeners = [];
constructor(editorInstance) {
this.editorInstance = editorInstance;
}
attach(event, handler) {
if (this.editorInstance?.attachEvent) {
this.editorInstance.attachEvent(event, handler);
this.listeners.push({ event, handler });
}
}
attachMany(events, handler) {
events.forEach(event => this.attach(event, handler));
}
detachAll() {
if (this.editorInstance?.detachEvent) {
this.listeners.forEach(({ event, handler }) => {
try {
this.editorInstance.detachEvent(event, handler);
}
catch { }
});
}
this.listeners = [];
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWV2ZW50LW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaWNoLXRleHQtZWRpdG9yL3NyYy9saWIvdXRpbHMvZWRpdG9yLWV2ZW50LW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxPQUFPLGtCQUFrQjtJQUdUO0lBRlosU0FBUyxHQUFrQixFQUFFLENBQUM7SUFFdEMsWUFBb0IsY0FBbUI7UUFBbkIsbUJBQWMsR0FBZCxjQUFjLENBQUs7SUFBRyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxLQUFhLEVBQUUsT0FBMkI7UUFDL0MsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWdCLEVBQUUsT0FBMkI7UUFDdEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO2dCQUM1QyxJQUFJLENBQUM7b0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO2dCQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFZGl0b3JFdmVudEhhbmRsZXIgPSAoKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRvckV2ZW50IHtcbiAgZXZlbnQ6IHN0cmluZztcbiAgaGFuZGxlcjogRWRpdG9yRXZlbnRIYW5kbGVyO1xufVxuXG5leHBvcnQgY2xhc3MgRWRpdG9yRXZlbnRNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBsaXN0ZW5lcnM6IEVkaXRvckV2ZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvckluc3RhbmNlOiBhbnkpIHt9XG5cbiAgYXR0YWNoKGV2ZW50OiBzdHJpbmcsIGhhbmRsZXI6IEVkaXRvckV2ZW50SGFuZGxlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRvckluc3RhbmNlPy5hdHRhY2hFdmVudCkge1xuICAgICAgdGhpcy5lZGl0b3JJbnN0YW5jZS5hdHRhY2hFdmVudChldmVudCwgaGFuZGxlcik7XG4gICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKHsgZXZlbnQsIGhhbmRsZXIgfSk7XG4gICAgfVxuICB9XG5cbiAgYXR0YWNoTWFueShldmVudHM6IHN0cmluZ1tdLCBoYW5kbGVyOiBFZGl0b3JFdmVudEhhbmRsZXIpOiB2b2lkIHtcbiAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiB0aGlzLmF0dGFjaChldmVudCwgaGFuZGxlcikpO1xuICB9XG5cbiAgZGV0YWNoQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRvckluc3RhbmNlPy5kZXRhY2hFdmVudCkge1xuICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaCgoeyBldmVudCwgaGFuZGxlciB9KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdGhpcy5lZGl0b3JJbnN0YW5jZS5kZXRhY2hFdmVudChldmVudCwgaGFuZGxlcik7XG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xuICB9XG59XG4iXX0=