@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
JavaScript
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);
}