UNPKG

@group_wtf_npm/loading

Version:

loading加载

45 lines (41 loc) 1.36 kB
import GlobalLoading from './GlobalLoading.js'; import WtfLoading from './WtfLoading.js'; /** * 初始化全局加载管理器 * * 该函数用于注册自定义元素 `wtf-loading`,并返回一个全局加载管理器的实例。 * 如果自定义元素已经注册,则不会重复注册。 * * @param {string} [tag='wtf-loading'] - 自定义元素的名称,默认为 `wtf-loading`。 * @param userOpts 其它配置项 * @returns {GlobalLoading} 返回一个全局加载管理器的实例。 */ function initGlobalLoading(tag = 'wtf-loading', userOpts) { // 检查自定义元素是否已经注册 const LoadTag = customElements.get(tag); if (!LoadTag) customElements.define(tag, WtfLoading); // 返回全局加载管理器实例 const opts = Object.assign({ tag }, userOpts); return new GlobalLoading(opts); }; class Loading extends GlobalLoading { constructor(userOpts) { super(userOpts); this.register(); } register = () => { // 检查自定义元素是否已经注册 const { tag } = this.opts; const LoadTag = customElements.get(tag); if (!LoadTag) customElements.define(tag, WtfLoading); this.init(); } } // 命名导出 export { Loading, WtfLoading, GlobalLoading, initGlobalLoading, initGlobalLoading as default };