UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

132 lines (128 loc) 3.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; class EventEmitter extends EventTarget { constructor() { super(); __publicField(this, "_events"); __publicField(this, "_eventsCount"); this._events = {}; this._eventsCount = 0; } /** * @param {string} type * @param {(event: CustomEvent, ...args: any[]) => void} listener * @returns */ addListener(type, listener) { if (typeof listener !== "function") { throw new TypeError("listener must be a function"); } if (!this._events[type]) { this._events[type] = []; } function wrappedListener(event) { listener.call(this, event, ...event.detail); } wrappedListener.listener = listener; this._events[type].push(wrappedListener); this._eventsCount++; this.addEventListener(type, wrappedListener.bind(this)); return this; } /** * @alias addListener * @param {string} type * @param {(event: CustomEvent, ...args: any[]) => void} listener * @returns */ on(type, listener) { return this.addListener(type, listener); } /** * @param {string} type * @param {any[]} args * @returns */ trigger(type, ...args) { if (!this._events[type]) { return void 0; } const event = new CustomEvent(type, { detail: args, cancelable: true }); return this.dispatchEvent(event); } /** * @alias trigger * @param {string} type * @param {any[]} args * @returns */ emit(type, ...args) { return this.trigger(type, ...args); } /** * @param {string} type * @param {(event: CustomEvent, ...args: any[]) => void} listener * @returns */ removeListener(type, listener) { if (!this._events[type]) { return this; } this._events[type] = this._events[type].filter((wrappedListener) => { if (wrappedListener.listener !== listener) { return true; } this.removeEventListener(type, wrappedListener); return false; }); if (this._events[type].length === 0) { delete this._events[type]; this._eventsCount--; } return this; } /** * @param {string} type * @returns */ removeAllListeners(type) { if (type === void 0) { Object.keys(this._events).forEach((eventType) => { this.removeAllListeners(eventType); }); return this; } if (this._events[type]) { this._events[type].forEach((wrappedListener) => { this.removeEventListener(type, wrappedListener); }); delete this._events[type]; this._eventsCount--; } return this; } /** * @param {string} type * @param {(event: CustomEvent, ...args: any[]) => void} listener * @returns */ off(type, listener) { if (type === void 0) { return this.removeAllListeners(); } if (listener === void 0) { return this.removeAllListeners(type); } return this.removeListener(type, listener); } } exports.EventEmitter = EventEmitter;