UNPKG

wix-style-react

Version:
56 lines (55 loc) 1.6 kB
"use strict"; exports.__esModule = true; exports.eventManager = exports.Event = void 0; var Event = exports.Event = /*#__PURE__*/function (Event) { Event[Event["Show"] = 0] = "Show"; Event[Event["Clear"] = 1] = "Clear"; Event[Event["DidMount"] = 2] = "DidMount"; Event[Event["WillUnmount"] = 3] = "WillUnmount"; return Event; }({}); var eventManager = exports.eventManager = { list: new Map(), emitQueue: new Map(), on(event, callback) { this.list.has(event) || this.list.set(event, []); this.list.get(event).push(callback); return this; }, off(event, callback) { if (callback) { var cb = this.list.get(event).filter(c => c !== callback); this.list.set(event, cb); return this; } this.list.delete(event); return this; }, cancelEmit(event) { var timers = this.emitQueue.get(event); if (timers) { timers.forEach(clearTimeout); this.emitQueue.delete(event); } return this; }, emit(event) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } this.list.has(event) && this.list.get(event).forEach(callback => { if (process.env.NODE_ENV === 'test') { // @ts-ignore callback(...args); return; } var timer = setTimeout(() => { // @ts-ignore callback(...args); }, 0); this.emitQueue.has(event) || this.emitQueue.set(event, []); this.emitQueue.get(event).push(timer); }); } }; //# sourceMappingURL=eventManager.js.map