UNPKG

@ly-js/ui

Version:

`@ly-js/ui` 是基于`vue3`常用库,会在`@ly-js/element`、`@ly-js/vant`中引入

59 lines (55 loc) 1.26 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function eventHub(all) { all = all || /* @__PURE__ */ new Map(); return { all, on(type, handler) { const handlers = all.get(type); if (handlers) { handlers.push(handler); } else { all.set(type, [handler]); } }, once(type, handler) { const handlers = all.get(type); const onceHandler = (evt) => { this.off(type, onceHandler); handler(evt); }; if (handlers) { handlers.push(onceHandler); } else { all.set(type, [onceHandler]); } }, off(type, handler) { const handlers = all.get(type); if (handlers) { if (handler) { handlers.splice(handlers.indexOf(handler) >>> 0, 1); } else { all.set(type, []); } } }, emit(type, evt) { let handlers = all.get(type); if (handlers) { ; handlers.slice().map((handler) => { handler(evt); }); } handlers = all.get("*"); if (handlers) { ; handlers.slice().map((handler) => { handler(type, evt); }); } } }; } exports.eventHub = eventHub;