vue-devui
Version:
DevUI components based on Vite and Vue3
2 lines (1 loc) • 4.31 kB
JavaScript
(function(l,r){typeof exports=="object"&&typeof module!="undefined"?r(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],r):(l=typeof globalThis!="undefined"?globalThis:l||self,r(l.index={},l.Vue))})(this,function(l,r){"use strict";const y=Symbol("dev_component_container");function h(e,o,n=null){const t=r.h(e,{...o},n),s=document.createElement("div");return t[y]=s,r.render(t,s),t.component}function P(e){r.render(null,e==null?void 0:e.vnode[y])}class b{constructor(){this.top="50%",this.left="50%"}}const v={message:String,backdrop:Boolean,view:{type:Object,default:()=>new b},zIndex:Number,isFull:{type:Boolean,default:!1}};class m{constructor(){this.backdrop=!0,this.positionType="relative",this.view=new b}}function u(e,o,n){let t=e;return o&&(t+=`__${o}`),n&&(t+=`--${n}`),t}function k(e,o=!1){const n=o?`.devui-${e}`:`devui-${e}`;return{b:()=>u(n),e:c=>c?u(n,c):"",m:c=>c?u(n,"",c):"",em:(c,f)=>c&&f?u(n,c,f):""}}var j="",w=r.defineComponent({name:"Loading",inheritAttrs:!1,props:v,setup(e){const o={top:e.view.top,left:e.view.left,zIndex:e.zIndex};e.message||(o.background="none");const n=r.ref(!1);return{style:o,isShow:n,open:()=>{n.value=!0},close:()=>{n.value=!1}}},render(){var c;const{isShow:e,isFull:o,backdrop:n,style:t,message:s,$slots:a}=this,i=k("loading");return e&&r.createVNode("div",{class:[i.b(),o?i.m("full"):""]},[((c=a.default)==null?void 0:c.call(a))||r.createVNode("div",{class:i.e("wrapper")},[n?r.createVNode("div",{class:i.e("mask")},null):null,r.createVNode("div",{style:t,class:i.e("area")},[r.createVNode("div",{class:i.e("busy-default-spinner")},[r.createVNode("div",{class:i.e("bar1")},null),r.createVNode("div",{class:i.e("bar2")},null),r.createVNode("div",{class:i.e("bar3")},null),r.createVNode("div",{class:i.e("bar4")},null)]),s?r.createVNode("span",{class:i.e("text")},[s]):null])])])}});const O=r.defineComponent(w),p=new WeakMap,N={open(e={}){var a,i,c;const o=e.target||document.body;if(p.has(o))return p.get(o);o.style&&(o.style.position=e.positionType);const n=document.body===o;e={...new m,...e};const t=h(O,{...e,isFull:n},e.loadingTemplateRef?()=>e.loadingTemplateRef:null);p.set(o,t),(a=t==null?void 0:t.proxy)==null||a.open(),o.appendChild((i=t==null?void 0:t.proxy)==null?void 0:i.$el);const s=(c=t==null?void 0:t.proxy)==null?void 0:c.close;return t&&(t.loadingInstance=t==null?void 0:t.proxy,t.loadingInstance&&(t.loadingInstance.close=(...f)=>{p.delete(o),s==null||s(...f)})),t}},C=r.defineComponent(w),d=new WeakSet,g=e=>{if(!e)return!0;if(Array.isArray(e))return e.length===0;if(e instanceof Set||e instanceof Map)return e.size===0;if(e instanceof Promise)return!1;if(typeof e=="object")try{return Object.keys(e).length===0}catch{return!1}return!1},T=e=>Object.prototype.toString.call(e).slice(8,-1).toLowerCase(),_=e=>{switch(T(e)){case"promise":return[e];case"array":return e.some(n=>T(n)!=="promise")?(console.error(new TypeError("Binding values should all be of type Promise")),"error"):e;default:return!1}},A=e=>{d.delete(e),e.instance.proxy.close(),P(e.instance)},x=(e,o)=>{var n,t,s;if(o.value){const a=_(o.value);if(a==="error")return;(s=(t=(n=e==null?void 0:e.instance)==null?void 0:n.proxy)==null?void 0:t.open)==null||s.call(t),e.appendChild(e.mask),d.add(e),a&&Promise.all(a).catch(i=>{console.error(new Error("Promise handling errors"),i)}).finally(()=>{A(e)})}else A(e)},S=e=>{e.removeAttribute("zindex"),e.removeAttribute("positiontype"),e.removeAttribute("backdrop"),e.removeAttribute("message"),e.removeAttribute("view"),e.removeAttribute("loadingtemplateref")},V=(e,o)=>{var a;const n={...new m,...o},t=n.loadingTemplateRef,s=h(C,{...n},t?()=>t:null);e.style.position=n.positionType||"relative",e.options=n,e.instance=s,e.mask=(a=s==null?void 0:s.proxy)==null?void 0:a.$el},L={mounted:function(e,o,n){V(e,n.props),S(e),!g(o.value)&&x(e,o)},updated:function(e,o,n){!g(o.value)&&d.has(e)||g(o.value)&&!d.has(e)||(!d.has(e)&&V(e,n.props),S(e),x(e,o))}};var $={title:"Loading \u52A0\u8F7D\u63D0\u793A",category:"\u53CD\u9988",status:"100%",install(e){e.directive("loading",L),e.config.globalProperties.$loadingService=N}};l.LoadingDirective=L,l.LoadingOptions=m,l.LoadingService=N,l.default=$,l.loadingProps=v,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});