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