vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 2.55 kB
JavaScript
"use strict";var h=Object.defineProperty;var _=(s,e,n)=>e in s?h(s,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):s[e]=n;var t=(s,e,n)=>_(s,typeof e!="symbol"?e+"":e,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue");require("./confirm.vue.cjs");const p=require("@vexip-ui/hooks"),c=require("@vexip-ui/utils"),m=require("./props.cjs"),u=require("./confirm.vue2.cjs");u.name="Confirm";class l{constructor(e={}){t(this,"name");t(this,"defaults");t(this,"_mountedApp");t(this,"_instance");t(this,"_innerApp");t(this,"_container");t(this,"_wrapper");t(this,"_mountedEl");this._mountedApp=null,this._instance=null,this._innerApp=null,this._container=null,this._wrapper=null,this._mountedEl=null,this.name="Confirm",this.defaults={},this.config(e)}open(e,n,r){var a;if(!c.isClient)return;typeof e=="string"&&(r?e={title:n,content:e,confirmType:r}:e={content:e,confirmType:n});const i={...this.defaults,...e};return i.icon&&typeof i.icon=="object"&&(i.icon=o.markRaw(i.icon)),(a=this._getInstance())==null?void 0:a.openConfirm(i)}close(){var e;(e=this._getInstance())==null||e.closeConfirm()}config(e){this.defaults={...this.defaults,...e}}clone(){const e=new l(this.defaults);return e._mountedApp=this._mountedApp,e}destroy(){var e,n;this._mountedEl&&((e=this._wrapper)==null||e.removeChild(this._mountedEl)),(n=this._innerApp)==null||n.unmount(),this._container&&o.render(null,this._container),c.destroyObject(this)}isDestroyed(){return!1}install(e,n={}){const{property:r,...i}=n;this.config(i),this._mountedApp=e,(r||!e.config.globalProperties.$confirm)&&(e.config.globalProperties[r||"$confirm"]=this)}transferTo(e){if(!c.isClient)return;const n=p.unrefElement(e);n&&(this._wrapper=n,this._instance?this._mountedEl&&this._wrapper.appendChild(this._mountedEl):this._getInstance())}_getInstance(){if(!this._instance&&c.isClient){if(!this._mountedApp)console.warn("[vexip-ui:Confirm]: App missing, the plugin maybe not installed."),this._container=document.createElement("div"),this._innerApp=o.createApp(u),this._instance=this._innerApp.mount(this._container);else{const e=o.createVNode(u,null,null);this._container=document.createElement("div"),e.appContext=this._mountedApp._context,o.render(e,this._container),this._instance=p.proxyExposed(e)}this._mountedEl=this._container.firstElementChild,(this._wrapper||document.body).appendChild(this._mountedEl)}return this._instance}}const d=new l;exports.confirmProps=m.confirmProps;exports.Confirm=d;exports.ConfirmManager=l;
//# sourceMappingURL=index.cjs.map