UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

36 lines (35 loc) 1.34 kB
import { ApiBase } from './ApiBase'; import Emitter from '../../Utilities/Emitter'; import { EventInternalApi } from '../Internal/EventInternalApi'; import { logDeprecation } from '../../Utilities/logDeprecation'; export class EventApiImpl extends ApiBase { emitter; internalApi; constructor(_adaptable) { super(_adaptable); this.emitter = new Emitter(); this.internalApi = new EventInternalApi(_adaptable); } destroy() { super.destroy(); this.emitSync('AdaptableDestroy'); this.emitter.destroy(); } on = (eventName, callback) => { if (eventName === 'ThemeChanged') { logDeprecation(this._adaptable.logger, 'EventApi', 'ThemeChanged', undefined, "The 'ThemeChanged' event is deprecated. Subscribe to 'ThemeSelected' instead."); } let result; if (eventName === 'AdaptableReady') { this.emitter.onIncludeFiredOnce(eventName).then(callback); return () => { }; } else { result = this.emitter.on(eventName, callback); } return result; }; off = (eventName, callback) => this.emitter.off(eventName, callback); emit = (eventName, data) => this.emitter.emit(eventName, data); emitSync = (eventName, data) => this.emitter.emitSync(eventName, data); }