"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventBus = exports.throttle = exports.formatSeconds = void 0; function formatSeconds(seconds) { var result = typeof seconds === "string" ? parseFloat(seconds) : seconds; if (isNaN(result)) return ""; let h = Math.floor(result / 3600) < 10 ? "0" + Math.floor(result / 3600) : Math.floor(result / 3600); let m = Math.floor((result / 60) % 60) < 10 ? "0" + Math.floor((result / 60) % 60) : Math.floor((result / 60) % 60); let s = Math.floor(result % 60) < 10 ? "0" + Math.floor(result % 60) : Math.floor(result % 60); return `${h}:${m}:${s}`; //time为毫秒数 } exports.formatSeconds = formatSeconds; function throttle(fn, wait) { let previous = 0; return function(...arg) { let context = this; let now = Date.now(); //每隔一段时间执行一次; if (now - previous > wait) { fn.apply(context, arg); previous = now; } }; } exports.throttle = throttle; class EventBus { constructor() { this._events = new Map(); } on(event, action, fn) { let arr = this._events.get(event); let hasAction = arr ? arr.findIndex((i) => i.action == action) : -1; if (hasAction > -1) { return; } this._events.set(event, [ ...(this._events.get(event) || []), { action, fn, }, ]); } has(event) { return this._events.has(event); } emit(event, data) { if (!this.has(event)) { return; } let arr = this._events.get(event); arr.forEach((i) => { i.fn(data); }); } off(event, action) { if (!this.has(event)) { return; } let arr = this._events.get(event); let newdata = arr.filter((i) => i.action !== action); this._events.set(event, [...newdata]); } } exports.EventBus = EventBus;