@scvzerng/vue2-context-menu
Version:
A context menu component for Vue3
3 lines (2 loc) • 41 kB
JavaScript
(function(P,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],r):(P=typeof globalThis<"u"?globalThis:P||self,r(P["vue2-context-menu"]={},P.Vue))})(this,function(P,r){"use strict";let Y=null;function He(){return Y!==null}function Oe(l){Y&&pe(),Y=l}function ve(l){l===Y&&(Y=null)}function pe(){Y&&(Y.closeMenu(),Y=null)}const G={defaultDirection:"br",defaultMinWidth:100,defaultMaxWidth:600,defaultZindex:100,defaultZoom:1,defaultAdjustPadding:{x:0,y:10}};function X(l,e){let o=l.offsetTop;return l.offsetParent!=null&&l.offsetParent!=e&&(o-=l.offsetParent.scrollTop,o+=X(l.offsetParent,e)),o}function U(l,e){let o=l.offsetLeft;return l.offsetParent!=null&&l.offsetParent!=e&&(o-=l.offsetParent.scrollLeft,o+=U(l.offsetParent,e)),o}function $e(l,e,o,t){return{x:U(l,t)+e,y:X(l,t)+o}}const ae="mx-menu-default-container",Ee="mx-menu-container-";let Pe=0;function me(l){const{getContainer:e,zIndex:o}=l;if(e){const n=typeof e=="function"?e():e;if(n){let c=n.getAttribute("id");return c||(c=Ee+Pe++,n.setAttribute("id",c)),{eleId:c,container:n,isNew:!1}}}let t=document.getElementById(ae);return t||(t=document.createElement("div"),t.setAttribute("id",ae),t.setAttribute("class","mx-menu-ghost-host fullscreen"),document.body.appendChild(t)),t.style.zIndex=(o==null?void 0:o.toString())||G.defaultZindex.toString(),{eleId:ae,container:t,isNew:!0}}function Fe(l){let e=0;for(let o=0;o<l.length;o++){const t=l.charCodeAt(o);e=(e<<5)-e+t,e|=0}return e}function De(l){return typeof l=="number"?`${l}px`:l}const ge=r.defineComponent({props:{vnode:{type:null},data:{type:null,default:null}},setup(l){const{vnode:e,data:o}=r.toRefs(l);return()=>typeof e.value=="function"?e.value(o.value):e.value}});function Ae(l,e){const o={...l};return delete o[e],o}var Le=r.defineComponent({name:"Teleport",abstract:!0,props:{to:{type:[String,HTMLElement],required:!0},disabled:Boolean},data:function(){var l={teleported:!1,lastTo:"",rootEl:void 0,originalEl:void 0,dumb:document.createComment(" teleport ")};return Object.preventExtensions(l),l},methods:{onEnter:function(){var l,e;this.rootEl=this._vnode.elm,this.originalEl=this.teleported?(l=this.dumb)===null||l===void 0?void 0:l.parentNode:(e=this.rootEl)===null||e===void 0?void 0:e.parentNode,this.disabled?this.restore():this.telport()},restore:function(){var l;this.teleported&&(this.$vnode.elm=this.rootEl,this.teleported=!1,this.lastTo="",this.originalEl&&(this.rootEl&&this.originalEl.insertBefore(this.rootEl,this.dumb),(l=this.dumb.parentNode)===null||l===void 0||l.removeChild(this.dumb)))},telport:function(){if(!(!this.rootEl||!this.originalEl)){this.teleported||this.originalEl.insertBefore(this.dumb,this.rootEl),this.$vnode.elm=this.dumb,this.teleported=!0;var l;this.to!==this.lastTo&&(l=typeof this.to=="string"?document.querySelector(this.to):this.to),l&&(l.appendChild(this.rootEl),this.lastTo=this.to)}}},mounted:function(){this.onEnter()},updated:function(){this.onEnter()},beforeDestroy:function(){var l,e;(l=this.dumb.parentNode)===null||l===void 0||l.removeChild(this.dumb),(e=this.rootEl)===null||e===void 0||(e=e.parentNode)===null||e===void 0||e.removeChild(this.rootEl)},render:function(l){var e,o=(e=this.$slots.default)===null||e===void 0?void 0:e[0];return o}});function je(l,e,o,t,n,c,i,p){var u=typeof l=="function"?l.options:l;return{exports:l,options:u}}var Ne=je(Le),be=Ne.exports,ze=Object.defineProperty,Ye=(l,e,o)=>e in l?ze(l,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):l[e]=o,Ce=(l,e,o)=>(Ye(l,typeof e!="symbol"?e+"":e,o),o);class _e{constructor(e,o){Ce(this,"x",0),Ce(this,"y",0),this.x=e||0,this.y=o||0}set(e,o){this.x=e,this.y=o}substract(e){this.x-=e.x,this.y-=e.y}}function xe(l){const{onDown:e,onMove:o,onUp:t}=l,n=new _e,c=new _e;let i;function p(a){a.stopPropagation(),c.set(a.x,a.y),c.substract(n),o(n,c,a,i)}function u(a){t(a,i),n.set(0,0),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",u)}return(a,S)=>e(a,S)?(i=S,n.set(a.x,a.y),document.addEventListener("mousemove",p),document.addEventListener("mouseup",u),a.stopPropagation(),!0):!1}function Xe(l,e){let o=0;return{start(){o>0&&clearInterval(o),o=setInterval(()=>{o=0,e()},l)},stop(){o>0&&(clearInterval(o),o=0)}}}const V=[],Me=Xe(100,()=>{for(const l of V)l()});function Ue(l,e,o,t){let n=0,c=0;function i(){l.value&&(e&&n!==l.value.offsetWidth&&e(l.value.offsetWidth),o&&c!==l.value.offsetHeight&&o(l.value.offsetHeight),t&&(n!==l.value.offsetWidth||c!==l.value.offsetHeight)&&t(l.value.offsetWidth,l.value.offsetHeight),n=l.value.offsetWidth,c=l.value.offsetHeight)}return{startResizeChecker(){Me.start(),V.push(i)},stopResizeChecker(){const p=V.indexOf(i);p>=0&&V.splice(p,1),V.length===0&&Me.stop()}}}const Ke=r.defineComponent({__name:"ScrollRect",props:{scroll:{type:String,default:"both"},scrollBarAlwaysShow:{type:Boolean,default:!1},scrollBarBackgroundClickable:{type:Boolean,default:!1},height:{type:Number,default:void 0},width:{type:Number,default:void 0},maxHeight:{type:Number,default:void 0},maxWidth:{type:Number,default:void 0},containerClass:{type:String,default:""},containerStyle:{type:null},scrollToStartThreshold:{type:Number,default:50},scrollToEndThreshold:{type:Number,default:50}},emits:["scroll","resized","scrollToStart","scrollToEnd"],setup(l,{expose:e,emit:o}){const t=l,n=r.ref(),c=r.ref(),i=r.ref(),p=r.ref(),u=r.ref(),a=r.ref(),S=r.ref(!1),B=r.computed(()=>t.scroll==="horizontal"||t.scroll==="both"),f=r.computed(()=>t.scroll==="vertical"||t.scroll==="both"),C=r.reactive({show:!1,size:0,sizeRaw:0,pos:0}),x=r.reactive({show:!1,size:0,sizeRaw:0,pos:0});let I=0,y=0,g=0,d=0,M=null;const T={attributes:!0,childList:!0};function m(){if(n.value){if(C.show){const s=n.value.offsetWidth/n.value.scrollWidth;C.sizeRaw=s*n.value.offsetWidth,C.size=s*100,C.pos=n.value.scrollLeft/(n.value.scrollWidth-n.value.offsetWidth)*(100-C.size),s>=1&&(C.show=!1)}if(x.show){const s=n.value.offsetHeight/n.value.scrollHeight;x.sizeRaw=s*n.value.offsetHeight,x.size=s*100,x.pos=n.value.scrollTop/(n.value.scrollHeight-n.value.offsetHeight)*(100-x.size),s>=1&&(x.show=!1)}t.scroll==="vertical"?(t.scrollToStartThreshold&&n.value.scrollTop<=t.scrollToStartThreshold&&o("scrollToStart"),t.scrollToEndThreshold&&n.value.scrollTop>=n.value.scrollHeight-t.scrollToEndThreshold-n.value.offsetHeight&&o("scrollToEnd")):t.scroll==="horizontal"&&(t.scrollToStartThreshold&&n.value.scrollLeft<=t.scrollToStartThreshold&&o("scrollToStart"),t.scrollToEndThreshold&&n.value.scrollLeft>=n.value.scrollWidth-t.scrollToEndThreshold-n.value.offsetWidth&&o("scrollToEnd")),o("scroll",n.value.scrollLeft,n.value.scrollTop)}}function h(s=!1){if(!n.value)return;let v=B.value,b=f.value;const z=v&&(I!==n.value.scrollWidth||g!==n.value.offsetWidth),ce=f&&(y!==n.value.scrollHeight||d!==n.value.offsetHeight);if(!s&&!z&&!ce)return;const q=window.getComputedStyle(n.value);(q.overflow==="hidden"||q.overflowX==="hidden")&&(v=!1),(q.overflow==="hidden"||q.overflowY==="hidden")&&(b=!1),C.show=v,x.show=b,m(),g=n.value.offsetWidth,d=n.value.offsetHeight,I=n.value.scrollWidth,y=n.value.scrollHeight,o("resized",I,y)}const _=140,w=70;function F(s){var v;t.scroll=="horizontal"&&(s.deltaMode==0&&((v=n.value)==null||v.scrollTo({left:n.value.scrollLeft+(s.deltaY>0?_:-_),behavior:"smooth"})),s.preventDefault(),s.stopPropagation())}function H(s){var v;s.deltaMode==0&&((v=n.value)==null||v.scrollTo({left:n.value.scrollLeft+(s.deltaY>0?_:-_),behavior:"smooth"}),s.preventDefault(),s.stopPropagation())}function O(s){var v;s.deltaMode==0&&((v=n.value)==null||v.scrollTo({top:n.value.scrollTop+(s.deltaY>0?w:-w),behavior:"smooth"}),s.preventDefault(),s.stopPropagation())}let L=0,R=0,W=0,$=0;const E=xe({onDown(s){return!i.value||!u.value?!1:(L=s.offsetX,R=s.x-s.offsetX-u.value.offsetLeft,s.preventDefault(),S.value=!0,!0)},onMove(s,v,b){n.value&&i.value&&(K(b.x-L-R),b.preventDefault(),b.stopPropagation())},onUp(){S.value=!1}}),D=xe({onDown(s){return!p.value||!a.value?!1:(W=s.offsetY,$=s.y-s.offsetY-a.value.offsetTop,s.preventDefault(),S.value=!0,!0)},onMove(s,v,b){n.value&&p.value&&(Z(b.y-W-$),b.preventDefault(),b.stopPropagation())},onUp(){S.value=!1}});function j(s){n.value&&(n.value.scrollLeft=s/100*(n.value.scrollWidth-n.value.offsetWidth))}function N(s){n.value&&(n.value.scrollLeft=s/100*(n.value.scrollHeight-n.value.offsetHeight))}function K(s){n.value&&(n.value.scrollLeft=s/(n.value.offsetWidth-C.sizeRaw)*(n.value.scrollWidth-n.value.offsetWidth))}function Z(s){n.value&&(n.value.scrollTop=s/(n.value.offsetHeight-x.sizeRaw)*(n.value.scrollHeight-n.value.offsetHeight))}function k(s){t.scrollBarBackgroundClickable&&K(s.offsetX-C.sizeRaw/2)}function J(s){t.scrollBarBackgroundClickable&&Z(s.offsetY-x.sizeRaw/2)}const{startResizeChecker:se,stopResizeChecker:Q}=Ue(n,()=>h(),()=>h());return r.onMounted(()=>{r.nextTick(()=>{setTimeout(()=>h(!0),200),h(!0),se(),M=new MutationObserver(()=>h()),M.observe(n.value,T)})}),r.onBeforeUnmount(()=>{Q(),M&&(M.disconnect(),M=null)}),e({refreshScrollState(){h(!0)},getScrollContainer(){return n.value},scrollTo(s,v){var b;(b=n.value)==null||b.scrollTo(s,v)},scrollToTop(){var s;(s=n.value)==null||s.scrollTo(0,0)},scrollToBottom(){var s;(s=n.value)==null||s.scrollTo(n.value.scrollWidth,n.value.scrollHeight)}}),{__sfc:!0,props:t,emit:o,container:n,scrollrect:c,scrollBarRefX:i,scrollBarRefY:p,scrollBarThumbRefX:u,scrollBarThumbRefY:a,isDragging:S,canScrollX:B,canScrollY:f,scrollBarX:C,scrollBarY:x,lastCalcScrollScrollWidth:I,lastCalcScrollScrollHeight:y,lastCalcScrollWidth:g,lastCalcScrollHeight:d,observer:M,config:T,calcScrollBarPosition:m,calcScroll:h,manualWheelScrollSizeX:_,manualWheelScrollSizeY:w,mouseWheel:F,mouseWheelBarX:H,mouseWheelBarY:O,mouseDragDownInBarX:L,mouseDragDownOutBarAbsX:R,mouseDragDownInBarY:W,mouseDragDownOutBarAbsY:$,thumbDrageHandlerX:E,thumbDrageHandlerY:D,customScrollX:j,customScrollY:N,setScrollLeft:K,setScrollTop:Z,scrollbarClickScrollX:k,scrollbarClickScrollY:J,startResizeChecker:se,stopResizeChecker:Q}}});function Ge(l,e,o,t,n,c,i,p){var u=typeof l=="function"?l.options:l;e&&(u.render=e,u.staticRenderFns=o,u._compiled=!0),t&&(u.functional=!0),c&&(u._scopeId="data-v-"+c);var a;if(i?(a=function(f){f=f||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!f&&typeof __VUE_SSR_CONTEXT__<"u"&&(f=__VUE_SSR_CONTEXT__),n&&n.call(this,f),f&&f._registeredComponents&&f._registeredComponents.add(i)},u._ssrRegister=a):n&&(a=p?function(){n.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:n),a)if(u.functional){u._injectStyles=a;var S=u.render;u.render=function(f,C){return a.call(C),S(f,C)}}else{var B=u.beforeCreate;u.beforeCreate=B?[].concat(B,a):[a]}return{exports:l,options:u}}var Ze=function(){var l=this,e=l._self._c,o=l._self._setupProxy;return e("div",{ref:"scrollrect",class:["vue-scroll-rect",l.scrollBarAlwaysShow?"always-show-scrollbar":"",l.scrollBarBackgroundClickable?"background-clickable":"",o.isDragging?"dragging":""],style:{width:l.width?`${l.width}px`:void 0,height:l.height?`${l.height}px`:void 0},on:{wheel:o.mouseWheel}},[e("div",{ref:"container",class:["scroll-content",l.scroll,l.containerClass],style:{maxWidth:l.maxWidth?`${l.maxWidth}px`:void 0,maxHeight:l.maxHeight?`${l.maxHeight}px`:void 0,...l.containerStyle},on:{scroll:o.calcScrollBarPosition}},[l._t("default")],2),o.scrollBarX.show?l._t("scrollBarX",function(){return[e("div",{ref:"scrollBarRefX",staticClass:"scrollbar horizontal",on:{click:o.scrollbarClickScrollX,wheel:o.mouseWheelBarX}},[e("div",{ref:"scrollBarThumbRefX",staticClass:"thumb",style:{left:`${o.scrollBarX.pos}%`,width:`${o.scrollBarX.size}%`},on:{mousedown:o.thumbDrageHandlerX,wheel:o.mouseWheelBarX}})])]},{scrollBarValue:o.scrollBarX,onScroll:o.customScrollX}):l._e(),o.scrollBarY.show?l._t("scrollBarY",function(){return[o.scrollBarY.show?e("div",{ref:"scrollBarRefY",staticClass:"scrollbar vertical",on:{click:o.scrollbarClickScrollY,wheel:o.mouseWheelBarY}},[e("div",{ref:"scrollBarThumbRefY",staticClass:"thumb",style:{top:`${o.scrollBarY.pos}%`,height:`${o.scrollBarY.size}%`},on:{mousedown:o.thumbDrageHandlerY,wheel:o.mouseWheelBarY}})]):l._e()]},{scrollBarValue:o.scrollBarY,onScroll:o.customScrollY}):l._e()],2)},qe=[],Je=Ge(Ke,Ze,qe,!1,null,null,null,null);const Qe=Je.exports;function A(l,e,o,t,n,c,i,p){var u=typeof l=="function"?l.options:l;e&&(u.render=e,u.staticRenderFns=o,u._compiled=!0),t&&(u.functional=!0),c&&(u._scopeId="data-v-"+c);var a;if(i?(a=function(f){f=f||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,!f&&typeof __VUE_SSR_CONTEXT__<"u"&&(f=__VUE_SSR_CONTEXT__),n&&n.call(this,f),f&&f._registeredComponents&&f._registeredComponents.add(i)},u._ssrRegister=a):n&&(a=p?function(){n.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:n),a)if(u.functional){u._injectStyles=a;var S=u.render;u.render=function(C,x){return a.call(x),S(C,x)}}else{var B=u.beforeCreate;u.beforeCreate=B?[].concat(B,a):[a]}return{exports:l,options:u}}const Ve={};var et=function(){var e=this,o=e._self._c;return o("svg",{staticClass:"mx-checked-mark",attrs:{"aria-hidden":"true",viewBox:"0 0 1024 1024"}},[o("path",{attrs:{d:"M129.3,428.6L52,512l345,372.5l575-620.8l-69.5-75L400.4,718.2L129.3,428.6z"}})])},tt=[],nt=A(Ve,et,tt,!1,null,null,null,null);const ot=nt.exports,lt={};var st=function(){var e=this,o=e._self._c;return o("svg",{staticClass:"mx-right-arrow",attrs:{"aria-hidden":"true",viewBox:"0 0 1024 1024"}},[o("path",{attrs:{d:"M307.018 49.445c11.517 0 23.032 4.394 31.819 13.18L756.404 480.18c8.439 8.438 13.181 19.885 13.181 31.82s-4.741 23.38-13.181 31.82L338.838 961.376c-17.574 17.573-46.065 17.573-63.64-0.001-17.573-17.573-17.573-46.065 0.001-63.64L660.944 512 275.198 126.265c-17.574-17.573-17.574-46.066-0.001-63.64C283.985 53.839 295.501 49.445 307.018 49.445z"}})])},rt=[],at=A(lt,st,rt,!1,null,null,null,null);const it=at.exports,ut=r.defineComponent({__name:"ContextMenuItem",props:{disabled:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},customRender:{type:Function,default:null},customClass:{type:String,default:""},clickHandler:{type:Function,default:null},label:{type:[String,Object,Function],default:""},icon:{type:[String,Object,Function],default:""},iconFontClass:{type:String,default:"iconfont"},checked:{type:Boolean,default:!1},shortcut:{type:String,default:""},svgIcon:{type:String,default:""},svgProps:{type:Object,default:null},preserveIconWidth:{type:Boolean,default:!0},showRightArrow:{type:Boolean,default:!1},hasChildren:{type:Boolean,default:!1},clickClose:{type:Boolean,default:!0},clickableWhenHasChildren:{type:Boolean,default:!1},rawMenuItem:{type:Object,default:void 0}},emits:["click","subMenuOpen","subMenuClose"],setup(l,{expose:e,emit:o}){const t=l,{clickHandler:n,clickClose:c,clickableWhenHasChildren:i,disabled:p,hidden:u,label:a,icon:S,iconFontClass:B,showRightArrow:f,shortcut:C,hasChildren:x}=r.toRefs(t),I=r.ref(!1),y=r.ref(!1),g=r.ref(),d=r.inject("globalOptions"),M=r.inject("globalHasSlot"),T=r.inject("globalRenderSlot"),m=r.inject("globalCloseMenu"),h=r.inject("menuContext"),_=r.computed(()=>typeof a.value=="string"?a.value:typeof a.value=="function"?Fe(a.value.toString()):"MenuItem[unknow]");r.provide("MenuItemName",_);const w={getSubMenuInstance:()=>{},showSubMenu:()=>I.value?(h.markActiveMenuItem(w,!0),!0):x.value?(H(),!0):!1,hideSubMenu:()=>{h.closeOtherSubMenu()},isDisabledOrHidden:()=>p.value||u.value,getElement:()=>g.value,focus:()=>y.value=!0,blur:()=>y.value=!1,click:F};r.provide("menuItemInstance",w),r.onMounted(()=>{h.isMenuItemDataCollectedFlag()?r.nextTick(()=>{let R=0;const W=h.getElement();if(W){let $=0;for(let E=0;E<W.children.length;E++){const D=W.children[E];if(D.getAttribute("data-type")==="ContextMenuItem"){if(D===g.value){R=$;break}$++}}}h.addChildMenuItem(w,R)}):h.addChildMenuItem(w)}),r.onBeforeUnmount(()=>{h.removeChildMenuItem(w)});function F(R){if(!p.value){if(R){const W=R.target;if(W.classList.contains("mx-context-no-clickable")||d.value.ignoreClickClassName&&W.classList.contains(d.value.ignoreClickClassName))return;if(d.value.clickCloseClassName&&W.classList.contains(d.value.clickCloseClassName)){R.stopPropagation(),m(t.rawMenuItem);return}}x.value?i.value?(typeof n.value=="function"&&n.value(R),o("click",R)):I.value||H():(typeof n.value=="function"&&n.value(R),o("click",R),c.value&&m(t.rawMenuItem))}}function H(R){y.value=!1,h.checkCloseOtherSubMenuTimeOut()||h.closeOtherSubMenu(),p.value||(h.markActiveMenuItem(w),x.value&&(R||h.markThisOpenedByKeyBoard(),h.addOpenedSubMenu(O),I.value=!0,r.nextTick(()=>o("subMenuOpen",w))))}function O(){y.value=!1,I.value=!1,o("subMenuClose",w)}function L(){return{disabled:p.value,label:a.value,icon:S.value,iconFontClass:B.value,showRightArrow:f.value,clickClose:c.value,clickableWhenHasChildren:i.value,shortcut:C.value,theme:d.value.theme,isOpen:I,hasChildren:x,onClick:F,onMouseEnter:H,closeMenu:m}}return e(w),{__sfc:!0,props:t,emit:o,clickHandler:n,clickClose:c,clickableWhenHasChildren:i,disabled:p,hidden:u,label:a,icon:S,iconFontClass:B,showRightArrow:f,shortcut:C,hasChildren:x,showSubMenu:I,keyBoardFocusMenu:y,menuItemRef:g,options:d,globalHasSlot:M,globalRenderSlot:T,globalCloseMenu:m,menuContext:h,nameForDebug:_,menuItemInstance:w,onClick:F,onMouseEnter:H,closeSubMenu:O,getItemDataForChildren:L,VNodeRender:ge,ContextMenuIconCheck:ot,ContextMenuIconRight:it}}}),Kt="";var ct=function(){var e=this,o=e._self._c,t=e._self._setupProxy;return t.hidden?e._e():o("div",{ref:"menuItemRef",staticClass:"mx-context-menu-item-wrapper",attrs:{"data-type":"ContextMenuItem"}},[t.globalHasSlot("itemRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemRender",t.getItemDataForChildren())}}):e.customRender?o(t.VNodeRender,{attrs:{vnode:e.customRender,data:t.getItemDataForChildren()}}):o("div",{class:["mx-context-menu-item",t.disabled?"disabled":"",t.keyBoardFocusMenu?"keyboard-focus":"",e.customClass?" "+e.customClass:"",t.showSubMenu?"open":""],on:{click:t.onClick,mouseenter:t.onMouseEnter}},[e._t("default",function(){return[o("div",{staticClass:"mx-item-row"},[o("div",{class:["mx-icon-placeholder",e.preserveIconWidth?"preserve-width":""]},[e._t("icon",function(){return[t.globalHasSlot("itemIconRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemIconRender",t.getItemDataForChildren())}}):typeof e.svgIcon=="string"&&e.svgIcon?o("svg",e._b({staticClass:"icon svg"},"svg",e.svgProps,!1),[o("use",{attrs:{"xlink:href":e.svgIcon}})]):typeof t.icon!="string"?o(t.VNodeRender,{attrs:{vnode:t.icon,data:t.icon}}):typeof t.icon=="string"&&t.icon!==""?o("i",{class:t.icon+" icon "+t.iconFontClass+" "+t.options.iconFontClass}):e._e()]}),e.checked?e._t("check",function(){return[t.globalHasSlot("itemCheckRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemCheckRender",t.getItemDataForChildren())}}):e._e(),o(t.ContextMenuIconCheck)]}):e._e()],2),e._t("label",function(){return[t.globalHasSlot("itemLabelRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemLabelRender",t.getItemDataForChildren())}}):typeof t.label=="string"?o("span",{staticClass:"label"},[e._v(e._s(t.label))]):o(t.VNodeRender,{attrs:{vnode:t.label,data:t.label}})]})],2),o("div",{staticClass:"mx-item-row"},[t.shortcut||e.$slots.shortcut?e._t("shortcut",function(){return[t.globalHasSlot("itemShortcutRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemShortcutRender",t.getItemDataForChildren())}}):e._e(),o("span",{staticClass:"mx-shortcut"},[e._v(e._s(t.shortcut))])]}):e._e(),t.showRightArrow?e._t("rightArrow",function(){return[t.globalHasSlot("itemRightArrowRender")?o(t.VNodeRender,{attrs:{vnode:()=>t.globalRenderSlot("itemRightArrowRender",t.getItemDataForChildren())}}):e._e(),o(t.ContextMenuIconRight)]}):e._e()],2)]})],2),e._t("submenu",null,{context:t.menuItemInstance,show:t.showSubMenu})],2)},dt=[],ft=A(ut,ct,dt,!1,null,null,null,null);const oe=ft.exports,ht=r.defineComponent({name:"ContextMenuSperator",components:{VNodeRender:ge},setup(){const l=r.inject("globalHasSlot"),e=r.inject("globalRenderSlot");return{globalHasSlot:l,globalRenderSlot:e}}});var vt=function(){var e=this,o=e._self._c;return e._self._setupProxy,e.globalHasSlot("separatorRender")?o("VNodeRender",{attrs:{vnode:()=>e.globalRenderSlot("separatorRender",{})}}):o("div",{staticClass:"mx-context-menu-item-sperator mx-context-no-clickable"})},pt=[],mt=A(ht,vt,pt,!1,null,null,null,null);const le=mt.exports,gt=r.defineComponent({__name:"ContextSubMenu",props:{items:{type:Array,default:null},show:{type:Boolean,default:!1},maxHeight:{type:Number,default:0},maxWidth:{type:[String,Number],default:0},minWidth:{type:[String,Number],default:0},adjustPosition:{type:Boolean,default:!0},direction:{type:String,default:"br"},parentMenuItemContext:{type:Object,default:null}},emits:["closeAnimFinished"],setup(l,{expose:e,emit:o}){const t=l,n=r.ref(!1),c=r.inject("globalGetMenuHostId",""),i=r.inject("menuContext"),p=r.inject("globalOptions"),u=r.inject("globalHasSlot"),a=r.inject("globalRenderSlot"),S=r.ref("UnknowOrRoot"),B=r.inject("MenuItemName",S),{zIndex:f,getParentWidth:C,getParentHeight:x,getZoom:I}=i,{adjustPosition:y}=r.toRefs(t),g=r.ref(),d=r.ref(),M=r.ref(),T=[],m=r.inject("globalSetCurrentSubMenu"),h=[];let _=null,w=0;function F(){_&&_.blur()}function H(s,v){if(s){for(let b=v!==void 0?v:0;b<h.length;b++)if(!h[b].isDisabledOrHidden()){O(b);break}}else for(let b=v!==void 0?v:h.length-1;b>=0;b--)if(!h[b].isDisabledOrHidden()){O(b);break}}function O(s){if(_&&F(),s!==void 0&&(_=h[Math.max(0,Math.min(s,h.length-1))]),!_)return;_.focus();const v=_.getElement();v&&v.scrollIntoView({behavior:"auto",block:"nearest",inline:"nearest"})}function L(){m(R)}const R={el:M,name:B,isTopLevel:()=>i.getParentContext()===null,closeSelfAndActiveParent:()=>{const s=E.getParentContext();if(s){s.closeOtherSubMenu();const v=s.getSubMenuInstanceContext();if(v)return v.focusCurrentItem(),!0}return!1},closeCurrentSubMenu:()=>{var s;return(s=E.getParentContext())==null?void 0:s.closeOtherSubMenu()},moveCurrentItemFirst:()=>H(!0),moveCurrentItemLast:()=>H(!1),moveCurrentItemDown:()=>H(!0,_?h.indexOf(_)+1:0),moveCurrentItemUp:()=>H(!1,_?h.indexOf(_)-1:0),focusCurrentItem:()=>O(),openCurrentItemSubMenu:()=>_?_==null?void 0:_.showSubMenu():!1,triggerCurrentItemClick:s=>_==null?void 0:_.click(s)};let W=!1,$=!1;const E={zIndex:f+1,container:i.container,adjustPadding:p.value.adjustPadding||G.defaultAdjustPadding,getParentWidth:()=>{var s;return((s=M.value)==null?void 0:s.offsetWidth)||0},getParentHeight:()=>{var s;return((s=M.value)==null?void 0:s.offsetHeight)||0},getPositon:()=>[k.value.x,k.value.y],getZoom:()=>p.value.zoom||G.defaultZoom,addOpenedSubMenu(s){T.push(s)},closeOtherSubMenu(){T.forEach(s=>s()),T.splice(0,T.length),m(R)},checkCloseOtherSubMenuTimeOut(){return w?(clearTimeout(w),w=0,!0):!1},closeOtherSubMenuWithTimeOut(){w=setTimeout(()=>{w=0,this.closeOtherSubMenu()},200)},addChildMenuItem:(s,v)=>{v===void 0?h.push(s):h.splice(v,0,s)},removeChildMenuItem:s=>{h.splice(h.indexOf(s),1),s.getSubMenuInstance=()=>{}},markActiveMenuItem:(s,v=!1)=>{F(),_=s,v&&O()},markThisOpenedByKeyBoard:()=>{W=!0},isOpenedByKeyBoardFlag:()=>W?(W=!1,!0):!1,isMenuItemDataCollectedFlag:()=>$,getElement:()=>M.value||null,getParentContext:()=>i,getSubMenuInstanceContext:()=>R};r.provide("menuContext",E);const D={getChildItem:s=>h[s],getMenuDimensions:()=>d.value?{width:d.value.offsetWidth,height:d.value.offsetHeight}:{width:0,height:0},getSubmenuRoot:()=>d.value,getMenu:()=>M.value,getScrollValue:()=>{var s,v;return((v=(s=g.value)==null?void 0:s.getScrollContainer())==null?void 0:v.scrollTop)||0},setScrollValue:s=>{var v;return(v=g.value)==null?void 0:v.scrollTo(0,s)},getScrollHeight:()=>N.value,adjustPosition:()=>{J()},getMaxHeight:()=>K.value,getPosition:()=>k.value,setPosition:(s,v)=>{k.value.x=s,k.value.y=v}},j=r.inject("menuItemInstance",void 0);j&&(j.getSubMenuInstance=()=>D);const N=r.ref(0),K=r.ref(0),Z=r.ref(!1),k=r.ref({x:0,y:0});function J(){r.nextTick(()=>{const s=M.value,v=d.value;if(s&&v&&g.value){const{container:b}=i,z=(C==null?void 0:C())??0,ce=(x==null?void 0:x())??0,q=getComputedStyle(v),re=parseFloat(q.paddingLeft),ee=parseFloat(q.paddingTop),de=ce>0?ee:0,Nt=document.documentElement.scrollHeight/I(),zt=document.documentElement.scrollWidth/I(),Yt=Math.min(zt,b.offsetWidth),Re=Math.min(Nt,b.offsetHeight);let fe=U(s,b),he=X(s,b);t.direction.includes("l")?k.value.x-=s.offsetWidth+re:t.direction.includes("r")?k.value.x+=z+re:(k.value.x+=z/2,k.value.x-=(s.offsetWidth+re)/2),t.direction.includes("t")?k.value.y-=(s.offsetHeight+ee*2)/I():t.direction.includes("b")?k.value.y-=ee/I():k.value.y-=(s.offsetHeight+ee)/2/I(),r.nextTick(()=>{var Te,We;fe=U(s,b),he=X(s,b);const ke=((We=(Te=g.value)==null?void 0:Te.getScrollContainer())==null?void 0:We.scrollHeight)||0,Xt=t.maxHeight;N.value=t.maxHeight?Math.min(ke,t.maxHeight):ke;const Ut=fe+s.offsetWidth-Yt,Be=he+N.value+de*2-Re;if(Z.value=Be>0,y.value&&Ut>0){const te=z+s.offsetWidth-re,ne=fe;te>ne?k.value.x-=ne:k.value.x-=te}if(Z.value){if(y.value){const te=Be,ne=he;te>ne?k.value.y-=ne-de:k.value.y-=te-de}K.value=Re-(k.value.y+ee)}else K.value=Xt||0})}})}function se(){}function Q(){var v;const s=(v=t.parentMenuItemContext)==null?void 0:v.getElement();if(s){const b=U(s,i.container),z=X(s,i.container);k.value.x=b,k.value.y=z}else{const[b,z]=i.getPositon();k.value.x=b,k.value.y=z}r.nextTick(()=>{var b;m(R),(b=M.value)==null||b.focus({preventScroll:!0}),i.isOpenedByKeyBoardFlag()&&r.nextTick(()=>H(!0)),$=!0}),J()}return r.watch(()=>t.show,s=>{s?Q():void 0}),r.onMounted(()=>{n.value=!0,t.show?Q():J()}),r.onBeforeUnmount(()=>{n.value=!1,j&&(j.getSubMenuInstance=()=>{})}),e(D),{__sfc:!0,props:t,emit:o,mounted:n,globalGetMenuHostId:c,parentContext:i,options:p,globalHasSlot:u,globalRenderSlot:a,debugMenuItemNameDefault:S,debugMenuItemName:B,zIndex:f,getParentWidth:C,getParentHeight:x,getZoom:I,adjustPosition:y,scrollRectRef:g,submenuRoot:d,menu:M,openedSubMenuClose:T,globalSetCurrentSubMenu:m,menuItems:h,currentItem:_,leaveTimeout:w,blurCurrentMenu:F,setAndFocusNotDisableItem:H,setAndFocusCurrentMenu:O,onSubMenuBodyClick:L,thisMenuInsContext:R,isOpenedByKeyBoardFlag:W,isMenuItemDataCollectedFlag:$,thisMenuContext:E,exposeContext:D,menuItemInstance:j,scrollHeight:N,scrollTargetMaxHeight:K,overflow:Z,position:k,doAdjustPosition:J,hideSolve:se,showSolve:Q,MenuConstOptions:G,solveNumberOrStringSize:De,ScrollRect:Qe,ContextMenuItem:oe,ContextMenuSeparator:le,Teleport:be}}}),Gt="";var bt=function(){var e=this,o=e._self._c,t=e._self._setupProxy;return t.mounted?o(t.Teleport,{attrs:{to:`#${t.globalGetMenuHostId}`}},[o("Transition",e._b({attrs:{appear:""},on:{"after-leave":function(n){return t.emit("closeAnimFinished")}}},"Transition",t.options.menuTransitionProps||{duration:10},!1),[e.show?o("div",e._b({ref:"submenuRoot",class:["mx-context-menu",t.options.customClass?t.options.customClass:"",t.options.theme||""],style:{maxWidth:e.maxWidth?t.solveNumberOrStringSize(e.maxWidth):`${t.MenuConstOptions.defaultMaxWidth}px`,minWidth:e.minWidth?t.solveNumberOrStringSize(e.minWidth):`${t.MenuConstOptions.defaultMinWidth}px`,zIndex:t.zIndex,left:`${t.position.x}px`,top:`${t.position.y}px`},attrs:{"data-type":"ContextSubMenu"},on:{click:t.onSubMenuBodyClick}},"div",e.$attrs,!1),[o(t.ScrollRect,{ref:"scrollRectRef",attrs:{scroll:"vertical",maxHeight:t.scrollTargetMaxHeight,containerClass:"mx-context-menu-scroll"}},[o("div",{ref:"menu",class:["mx-context-menu-items"]},[e._t("default",function(){return[e._l(e.items,function(n,c){return[n.hidden!==!0&&n.divided==="up"?o(t.ContextMenuSeparator):e._e(),n.hidden!==!0&&n.divided==="self"?o(t.ContextMenuSeparator):o(t.ContextMenuItem,{attrs:{clickHandler:n.onClick?i=>n.onClick(i):void 0,disabled:typeof n.disabled=="object"?n.disabled.value:n.disabled,hidden:typeof n.hidden=="object"?n.hidden.value:n.hidden,icon:n.icon,iconFontClass:n.iconFontClass,svgIcon:n.svgIcon,svgProps:n.svgProps,label:n.label,customRender:n.customRender,customClass:n.customClass,checked:typeof n.checked=="object"?n.checked.value:n.checked,shortcut:n.shortcut,clickClose:n.clickClose,clickableWhenHasChildren:n.clickableWhenHasChildren,preserveIconWidth:n.preserveIconWidth!==void 0?n.preserveIconWidth:t.options.preserveIconWidth,showRightArrow:n.children&&n.children.length>0,hasChildren:n.children&&n.children.length>0,rawMenuItem:n},on:{"sub-menu-open":i=>{var p;return(p=n.onSubMenuOpen)==null?void 0:p.call(n,i)},"sub-menu-close":i=>{var p;return(p=n.onSubMenuClose)==null?void 0:p.call(n,i)}},scopedSlots:e._u([n.children&&n.children.length>0?{key:"submenu",fn:function({context:i,show:p}){return[o("ContextSubMenu",{attrs:{show:p,parentMenuItemContext:i,items:n.children,maxWidth:n.maxWidth,minWidth:n.minWidth,maxHeight:n.maxHeight,adjustPosition:n.adjustSubMenuPosition!==void 0?n.adjustSubMenuPosition:t.options.adjustPosition,direction:n.direction!==void 0?n.direction:t.options.direction}})]}}:null],null,!0)}),n.hidden!==!0&&(n.divided==="down"||n.divided===!0)?o(t.ContextMenuSeparator):e._e()]})]})],2)])],1):e._e()])],1):e._e()},Ct=[],_t=A(gt,bt,Ct,!1,null,null,null,null);const ie=_t.exports,xt=r.defineComponent({__name:"ContextSubMenuWrapper",props:{options:{type:Object,default:null},show:{type:null,default:null},container:{type:HTMLElement,default:null},isFullScreenContainer:{type:Boolean,default:!0}},emits:["close","closeAnimFinished"],setup(l,{expose:e,emit:o}){const t=l,n=r.useSlots(),c=r.ref(),{options:i,show:p,container:u}=r.toRefs(t);r.onMounted(()=>{p.value&&B()}),r.onBeforeUnmount(()=>{I()}),r.watch(p,m=>{m?B():(ve(a),I())});const a={closeMenu:f,isClosed:C,getMenuRef:()=>c.value,getMenuDimensions:()=>{var m;return((m=c.value)==null?void 0:m.getMenuDimensions())??{width:0,height:0}}};let S=!1;function B(){x(),Oe(a)}function f(m){S=!0,o("close",m),i.value.menuTransitionProps||o("closeAnimFinished"),ve(a)}function C(){return S}function x(){setTimeout(()=>{document.addEventListener("click",M,!0),document.addEventListener("contextmenu",M,!0),document.addEventListener("scroll",d,!0),!t.isFullScreenContainer&&u.value&&u.value.addEventListener("scroll",d,!0),i.value.keyboardControl!==!1&&document.addEventListener("keydown",g,!0)},50)}function I(){document.removeEventListener("contextmenu",M,!0),document.removeEventListener("click",M,!0),document.removeEventListener("scroll",d,!0),!t.isFullScreenContainer&&u.value&&u.value.removeEventListener("scroll",d,!0),i.value.keyboardControl!==!1&&document.removeEventListener("keydown",g,!0)}const y=r.ref();r.provide("globalSetCurrentSubMenu",m=>y.value=m),r.provide("globalGetMenuHostId",u.value.id);function g(m){var _,w,F,H,O,L,R,W,$,E,D,j,N;let h=!0;switch(m.key){case"Escape":{((_=y.value)==null?void 0:_.isTopLevel())===!1?(w=y.value)==null||w.closeCurrentSubMenu():f();break}case"ArrowDown":(F=y.value)==null||F.moveCurrentItemDown();break;case"ArrowUp":(H=y.value)==null||H.moveCurrentItemUp();break;case"Home":(O=y.value)==null||O.moveCurrentItemFirst();break;case"End":(L=y.value)==null||L.moveCurrentItemLast();break;case"ArrowLeft":{(R=y.value)!=null&&R.closeSelfAndActiveParent()||($=(W=i.value).onKeyFocusMoveLeft)==null||$.call(W);break}case"ArrowRight":(E=y.value)!=null&&E.openCurrentItemSubMenu()||(j=(D=i.value).onKeyFocusMoveRight)==null||j.call(D);break;case"Enter":(N=y.value)==null||N.triggerCurrentItemClick(m);break;default:h=!1;break}h&&y.value&&(m.stopPropagation(),m.preventDefault())}function d(m){i.value.closeWhenScroll!==!1&&T(m.target,null)}function M(m){T(m.target,m)}function T(m,h){var _,w;for(;m;){if(m.classList&&m.classList.contains("mx-context-menu"))return;m=m.parentNode}h?i.value.clickCloseOnOutside!==!1?(I(),f()):(w=(_=i.value).onClickOnOutside)==null||w.call(_,h):(I(),f())}return r.provide("globalOptions",i),r.provide("globalCloseMenu",f),r.provide("globalIsFullScreenContainer",t.isFullScreenContainer),r.provide("globalHasSlot",m=>n[m]!==void 0),r.provide("globalRenderSlot",(m,h)=>n[m]?n[m](h):r.h("span","Render slot failed")),r.provide("menuContext",{zIndex:i.value.zIndex||G.defaultZindex,container:u.value,adjustPadding:{x:0,y:0},getZoom:()=>i.value.zoom||G.defaultZoom,getParentWidth:()=>0,getParentHeight:()=>0,getPositon:()=>[i.value.x,i.value.y],closeOtherSubMenuWithTimeOut:()=>{},checkCloseOtherSubMenuTimeOut:()=>!1,addOpenedSubMenu:()=>{},closeOtherSubMenu:()=>{},getParentContext:()=>null,getSubMenuInstanceContext:()=>null,getElement:()=>null,addChildMenuItem:()=>{},removeChildMenuItem:()=>{},markActiveMenuItem:()=>{},markThisOpenedByKeyBoard:()=>{},isOpenedByKeyBoardFlag:()=>!1,isMenuItemDataCollectedFlag:()=>!1}),e(a),{__sfc:!0,props:t,emit:o,slots:n,submenuInstance:c,options:i,show:p,container:u,instance:a,closed:S,openMenu:B,closeMenu:f,isClosed:C,installBodyEvents:x,removeBodyEvents:I,currentOpenedMenu:y,onMenuKeyDown:g,onBodyScroll:d,onBodyClick:M,checkTargetAndClose:T,MenuConstOptions:G,ContextSubMenuConstructor:ie}}}),Zt="";var Mt=function(){var e=this,o=e._self._c,t=e._self._setupProxy;return o(t.ContextSubMenuConstructor,{ref:"submenuInstance",attrs:{show:t.show,items:t.options.items,adjustPosition:t.options.adjustPosition,maxWidth:t.options.maxWidth||t.MenuConstOptions.defaultMaxWidth,minWidth:t.options.minWidth||t.MenuConstOptions.defaultMinWidth,maxHeight:t.options.maxHeight,direction:t.options.direction||t.MenuConstOptions.defaultDirection},on:{closeAnimFinished:function(n){return t.emit("closeAnimFinished")}}},[e._t("default")],2)},St=[],yt=A(xt,Mt,St,!1,null,null,null,null);const Se=yt.exports,wt=r.defineComponent({__name:"ContextMenu",props:{options:{type:Object,default:null},show:{type:Boolean,default:!1}},emits:["update:show","close"],setup(l,{expose:e,emit:o}){const t=l,{options:n,show:c}=r.toRefs(t),{isNew:i,container:p,eleId:u}=me(n.value),a=r.ref(null),S=r.useSlots();function B(f){var C,x;o("update:show",!1),o("close"),(x=(C=n.value).onClose)==null||x.call(C,f)}return e({closeMenu:()=>o("update:show",!1),isClosed:()=>!c.value,getMenuRef:()=>{var f;return(f=a.value)==null?void 0:f.getMenuRef()},getMenuDimensions:()=>{var f;return((f=a.value)==null?void 0:f.getMenuDimensions())??{width:0,height:0}}}),{__sfc:!0,emit:o,props:t,options:n,show:c,isNew:i,container:p,eleId:u,menuRef:a,slots:S,onClose:B,Teleport:be,ContextSubMenuWrapperConstructor:Se}}});var It=function(){var e=this,o=e._self._c,t=e._self._setupProxy;return o(t.Teleport,{attrs:{to:`#${t.eleId}`}},[o(t.ContextSubMenuWrapperConstructor,{ref:"menuRef",attrs:{options:t.options,show:t.show,container:t.container,isFullScreenContainer:!t.isNew},on:{close:t.onClose},scopedSlots:e._u([e._l(t.slots,function(n,c){return{key:c,fn:function(i){return[e._t(c,null,null,i)]}}})],null,!0)})],1)},Rt=[],kt=A(wt,It,Rt,!1,null,null,null,null);const ye=kt.exports,Bt=r.defineComponent({name:"ContextMenuGroup",props:{disabled:{type:Boolean,default:!1},hidden:{type:Boolean,default:!1},clickHandler:{type:Function,default:null},label:{type:String,default:""},icon:{type:String,default:""},iconFontClass:{type:String,default:"iconfont"},checked:{type:Boolean,default:!1},shortcut:{type:String,default:""},svgIcon:{type:String,default:""},svgProps:{type:Object,default:null},preserveIconWidth:{type:Boolean,default:!0},showRightArrow:{type:Boolean,default:!1},clickClose:{type:Boolean,default:!0},adjustSubMenuPosition:{type:Boolean,default:void 0},maxHeight:{type:[String,Number],default:0},maxWidth:{type:[String,Number],default:0},minWidth:{type:[String,Number],default:0}},setup(l,e){const o=r.inject("globalOptions"),{adjustSubMenuPosition:t,maxWidth:n,minWidth:c,maxHeight:i}=r.toRefs(l),p=typeof t.value<"u"?t.value:o.value.adjustPosition,u=r.ref(),a=r.ref();return e.expose({getSubMenuRef:()=>u.value,getMenuItemRef:()=>a.value}),()=>r.h(oe,{...l,ref:a,showRightArrow:!0,maxWidth:void 0,minWidth:void 0,maxHeight:void 0,adjustSubMenuPosition:void 0,hasChildren:typeof e.slots.default!==void 0},e.slots.default?{submenu:S=>r.h(ie,{ref:u,show:S.show,maxWidth:n.value,minWidth:c.value,maxHeight:i.value,adjustPosition:p,parentMenuItemContext:S.context},{default:e.slots.default}),...Ae(e.slots,"default")}:e.slots)}});var Tt=A(Bt,null,null,!1,null,null,null,null);const we=Tt.exports;function Wt(l,e,o,t){const n=new r({data:{show:!0},render(c){return c(Se,{props:{options:l,show:this.show,container:e,isFullScreenContainer:!o},on:{closeAnimFinished:()=>{n.$destroy()},close:i=>{var p;(p=l.onClose)==null||p.call(l,i),n.show=!1}}},t)}});return n.$mount(),e&&e.appendChild(n.$el),n}function Ie(l,e){const o=me(l);return Wt(l,o.container,o.isNew,e).exposed}const ue={install(l){l.prototype.$contextmenu=Ie,l.component("ContextMenu",ye),l.component("ContextMenuItem",oe),l.component("ContextMenuGroup",we),l.component("ContextMenuSperator",le),l.component("ContextMenuSeparator",le),l.component("ContextSubMenu",ie)},showContextMenu(l,e){return Ie(l,e)},isAnyContextMenuOpen(){return He()},closeContextMenu:pe,transformMenuPosition:$e},Ht={};var Ot=function(){var e=this,o=e._self._c;return o("svg",{staticClass:"mx-menu-bar-icon-menu",attrs:{viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"200",height:"200"}},[o("path",{attrs:{d:"M133.310936 296.552327l757.206115 0c19.781623 0 35.950949-16.169326 35.950949-35.950949 0-19.781623-15.997312-35.950949-35.950949-35.950949L133.310936 224.650428c-19.781623 0-35.950949 16.169326-35.950949 35.950949C97.359987 280.383 113.529313 296.552327 133.310936 296.552327z"}}),o("path",{attrs:{d:"M890.51705 476.135058 133.310936 476.135058c-19.781623 0-35.950949 16.169326-35.950949 35.950949 0 19.781623 16.169326 35.950949 35.950949 35.950949l757.206115 0c19.781623 0 35.950949-16.169326 35.950949-35.950949C926.467999 492.304384 910.298673 476.135058 890.51705 476.135058z"}}),o("path",{attrs:{d:"M890.51705 727.447673 133.310936 727.447673c-19.781623 0-35.950949 15.997312-35.950949 35.950949s16.169326 35.950949 35.950949 35.950949l757.206115 0c19.781623 0 35.950949-15.997312 35.950949-35.950949S910.298673 727.447673 890.51705 727.447673z"}})])},$t=[],Et=A(Ht,Ot,$t,!1,null,null,null,null);const Pt=Et.exports,Ft=r.defineComponent({__name:"MenuBar",props:{options:{type:Object,default:null}},setup(l){const e=l,o=r.ref(),t=r.ref(!1),n=r.ref([]),c=r.ref(null);function i(){t.value=!0}function p(){t.value=!1}r.onMounted(()=>{n.value=e.options.items||[]}),r.watch(()=>e.options,()=>{n.value=e.options.items||[]});let u=null,a=-1;function S(){a<n.value.length-1?a++:a=0,C(a,n.value[a])}function B(){a>0?a--:a=n.value.length-1,C(a,n.value[a])}function f(g){const d=e.options.barPopDirection??"bl";let M=0,T=0;return d.startsWith("b")?T=X(g)+g.offsetHeight:d.startsWith("t")?T=X(g):T=X(g)+g.offsetHeight/2,d.endsWith("l")?M=U(g):d.startsWith("r")?M=U(g)+g.offsetWidth:M=U(g)+g.offsetWidth/2,{x:M,y:T+5}}function C(g,d){var T;if(a=g,!d.children)return;u&&(u.closeMenu(),u=null,t.value=!0),c.value=d;const M=(T=o.value)==null?void 0:T.children[g];if(M){const{x:m,y:h}=f(M);u=ue.showContextMenu({...e.options,items:d.children,x:m,y:h,onKeyFocusMoveLeft(){B()},onKeyFocusMoveRight(){S()},onClose(){c.value==d&&(t.value=!1,c.value=null),typeof d.onSubMenuClose=="function"&&d.onSubMenuClose(void 0)}}),u&&typeof d.onSubMenuOpen=="function"&&d.onSubMenuOpen(void 0)}}function x(){a=0;const g=o.value;if(g){const{x:d,y:M}=f(g);u=ue.showContextMenu({...e.options,x:d,y:M})}}function I(g,d){d?(t.value=!0,C(g,d),d.onClick&&(d.clickableWhenHasChildren===!0&&d.children&&d.children.length>0||!d.children||d.children.length===0)&&d.onClick()):x()}function y(g,d){t.value&&C(g,d)}return{__sfc:!0,props:e,menuBarContent:o,menuBarActive:t,menuItems:n,menuActive:c,onFocus:i,onBlur:p,currentMenu:u,currentMenuIndex:a,showNextSubMenu:S,showPrevSubMenu:B,getMenuShowPos:f,showSubMenu:C,showAllSubMenu:x,onItemClick:I,onItemEnter:y,MenuBarIconMenu:Pt}}}),Qt="";var Dt=function(){var e=this,o=e._self._c,t=e._self._setupProxy;return o("div",{class:["mx-menu-bar",e.options.theme||"",e.options.mini?"mini":""],on:{focus:t.onFocus,blur:t.onBlur}},[e._t("prefix"),e.options.mini?o("div",{ref:"menuBarContent",staticClass:"mx-menu-bar-content"},[o("div",{staticClass:"mx-menu-bar-item",on:{click:function(n){return t.onItemClick(0,null)}}},[o(t.MenuBarIconMenu)],1)]):o("div",{ref:"menuBarContent",staticClass:"mx-menu-bar-content"},e._l(t.menuItems,function(n,c){return o("div",{key:c,class:["mx-menu-bar-item",n==t.menuActive?"active":""],on:{click:function(i){return t.onItemClick(c,n)},mouseenter:function(i){return t.onItemEnter(c,n)}}},[e._v(" "+e._s(n.label)+" ")])}),0),e._t("suffix")],2)},At=[],Lt=A(Ft,Dt,At,!1,null,null,null,null);const jt=Lt.exports;P.ContextMenu=ye,P.ContextMenuGroup=we,P.ContextMenuItem=oe,P.ContextMenuSeparator=le,P.MenuBar=jt,P.default=ue,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
//# sourceMappingURL=vue2-context-menu.umd.js.map