/** EventBus سبک برای سکشن‌های ERP در پورتال مستقل */
export default class SimpleEventBus {
    constructor() {
        this._map = new Map();
    }
    on(evt, fn) {
        if (!this._map.has(evt)) this._map.set(evt, new Set());
        this._map.get(evt).add(fn);
        return () => this.off(evt, fn);
    }
    off(evt, fn) {
        this._map.get(evt)?.delete(fn);
    }
    emit(evt, data = null) {
        this._map.get(evt)?.forEach(fn => { try { fn(data); } catch (e) { console.error(e); } });
    }
}
