@aurigma/design-atoms-model
Version:
Design Atoms is a part of Customer's Canvas SDK which allows for manipulating individual design elements through your code.
67 lines • 1.57 kB
JavaScript
export class BaseEventObject {
constructor() {
this._listeners = [];
}
add(listener) {
if (!this._listeners.includes(listener))
this._listeners.push(listener);
}
remove(listener) {
this._listeners = this._listeners.filter(l => l !== listener);
}
listenersCount() {
return this._listeners.length;
}
notify(...args) {
for (let listener of this._listeners)
listener(...args);
}
}
export class EventObject extends BaseEventObject {
add(listener) {
super.add(listener);
}
remove(listener) {
super.remove(listener);
}
notify(data) {
super.notify(data);
}
fire(data) {
this.notify(data);
}
}
export class EventWithAutoSenderArg extends BaseEventObject {
constructor(_sender) {
super();
this._sender = _sender;
}
add(listener) {
super.add(listener);
}
remove(listener) {
super.remove(listener);
}
notify(data) {
super.notify(this._sender, data);
}
fire(data) {
this.notify(data);
}
}
export class EventWithSenderArg extends BaseEventObject {
constructor(_sender = null) {
super();
this._sender = _sender;
}
add(listener) {
super.add(listener);
}
remove(listener) {
super.remove(listener);
}
notify(sender, data) {
super.notify(sender, data);
}
}
//# sourceMappingURL=EventObject.js.map