sci-pro
Version:
2 lines (1 loc) • 1.07 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("vue"),l=require("../utils/dom.js"),g=require("../utils/type.js"),v=require("./loading.js"),i=Symbol("ElementLoading");function p(t){var a,o;const e=v.createLoadingComponent({...t}),s=l.getStyle((a=e.target)==null?void 0:a.value,"position");return["absolute","fixed","sticky"].includes(s)||l.addClass((o=e.target)==null?void 0:o.value,"loading-relative"),e.target.value.appendChild(e.$el),e}const u=(t,e)=>{const s=e.instance,a=n=>{const r=g.isString(n)&&(s==null?void 0:s[n])||n;return r&&d.ref(r)},o=n=>a(t.getAttribute(`sci-loading-${n}`)),c={text:o("text"),svg:o("svg"),svgViewBox:o("svgViewBox"),spinner:o("spinner"),background:o("background"),customClass:o("customClass"),target:t,visible:o("visible")??!0};t[i]={options:c,instance:p(c)}},f={mounted(t,e){e.value&&u(t,e)},updated(t,e){const s=t[i];e.oldValue!==e.value&&(e.value&&!e.oldValue?u(t,e):s==null||s.instance.close())},unmounted(t){var e;(e=t[i])==null||e.instance.close(),t[i]=null}};exports.vLoading=f;