UNPKG

vexip-ui

Version:

A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good

3 lines (2 loc) 2.27 kB
"use strict";var p=Object.defineProperty;var d=(i,e,t)=>e in i?p(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var n=(i,e,t)=>d(i,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue");require("./loading.vue.cjs");const a=require("@vexip-ui/hooks"),r=require("@vexip-ui/utils"),u=require("./loading.vue2.cjs");class o{constructor(e={}){n(this,"name");n(this,"defaults");n(this,"_mountedApp");n(this,"_instance");n(this,"_innerApp");n(this,"_container");n(this,"_wrapper");n(this,"_mountedEl");this._mountedApp=null,this._instance=null,this._innerApp=null,this._container=null,this._wrapper=null,this._mountedEl=null,this.name="Loading",this.defaults={},this.config(e)}open(e){r.isClient&&(typeof e=="number"&&(e={percent:e}),this._getInstance().startLoading({...this.defaults,...e}))}close(){this.open(100)}config(e){this.defaults={...this.defaults,...e}}clone(){const e=new o(this.defaults);return e._mountedApp=this._mountedApp,e}destroy(){var e,t;this._mountedEl&&((e=this._wrapper)==null||e.removeChild(this._mountedEl)),(t=this._innerApp)==null||t.unmount(),this._container&&s.render(null,this._container),r.destroyObject(this)}isDestroyed(){return!1}install(e,t={}){const{property:l,...h}=t;this.config(h),this._mountedApp=e,(l||!e.config.globalProperties.$loading)&&(e.config.globalProperties[l||"$loading"]=this)}transferTo(e){if(!r.isClient)return;const t=a.unrefElement(e);t&&(this._wrapper=t,this._instance?this._mountedEl&&this._wrapper.appendChild(this._mountedEl):this._getInstance())}_getInstance(){if(!this._instance&&r.isClient){if(!this._mountedApp)console.warn("[vexip-ui:Loading]: App missing, the plugin maybe not installed."),this._container=document.createElement("div"),this._innerApp=s.createApp(u),this._instance=this._innerApp.mount(this._container);else{const e=s.createVNode(u,null,null);this._container=document.createElement("div"),e.appContext=this._mountedApp._context,s.render(e,this._container),this._instance=a.proxyExposed(e)}this._mountedEl=this._container.firstElementChild,(this._wrapper||document.body).appendChild(this._mountedEl)}return this._instance}}const c=new o;exports.Loading=c;exports.LoadingManager=o; //# sourceMappingURL=index.cjs.map