UNPKG

@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
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