@mlightcad/common
Version:
The common package provides shared utilities and base classes that are used across the RealDWG-Web ecosystem. This package contains fundamental components for color management, event handling, logging, performance monitoring, and file loading operations.
60 lines • 2.18 kB
JavaScript
// eslint-disable-next-line
var AcCmEventDispatcher = /** @class */ (function () {
/**
* Creates {@link AcCmEventDispatcher} object.
*/
function AcCmEventDispatcher() {
this._listeners = {};
}
AcCmEventDispatcher.prototype.addEventListener = function (type, listener) {
if (this._listeners === undefined)
this._listeners = {};
var listeners = this._listeners;
if (listeners[type] === undefined) {
listeners[type] = [];
}
if (listeners[type].indexOf(listener) === -1) {
listeners[type].push(listener);
}
};
AcCmEventDispatcher.prototype.hasEventListener = function (type, listener) {
if (this._listeners === undefined)
return false;
var listeners = this._listeners;
return (listeners[type] !== undefined && listeners[type].indexOf(listener) !== -1);
};
AcCmEventDispatcher.prototype.removeEventListener = function (type, listener) {
if (this._listeners === undefined)
return;
var listeners = this._listeners;
var listenerArray = listeners[type];
if (listenerArray !== undefined) {
var index = listenerArray.indexOf(listener);
if (index !== -1) {
listenerArray.splice(index, 1);
}
}
};
/**
* Fire an event type.
* @param event The event that gets fired.
*/
AcCmEventDispatcher.prototype.dispatchEvent = function (event) {
if (this._listeners === undefined)
return;
var listeners = this._listeners;
var listenerArray = listeners[event.type];
if (listenerArray !== undefined) {
// @ts-expect-error add target property
event.target = this;
// Make a copy, in case listeners are removed while iterating.
var array = listenerArray.slice(0);
for (var i = 0, l = array.length; i < l; i++) {
array[i].call(this, event);
}
}
};
return AcCmEventDispatcher;
}());
export { AcCmEventDispatcher };
//# sourceMappingURL=AcCmEventDispatcher.js.map