1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2025-09-05 01:19:23 +00:00
Classworks/assets/VMenu-3DqtRakv.js

2 lines
3.3 KiB
JavaScript

import{g as T,p as I,R as M,aU as S,aj as O,aL as U,X as K,U as B,bt as F,c4 as E,W as N,bg as j,c5 as H,a4 as W,c6 as b,Y as Z,bL as k,J as z,E as A,c as J,aF as V,d as P,O as X,aO as Y,Z as $,aZ as q,bS as G,c7 as y,c8 as Q,by as _,c9 as ee}from"./index-BPtvo4Tw.js";const te=I({id:String,submenu:Boolean,...$(q({closeDelay:250,closeOnContentClick:!0,locationStrategy:"connected",location:void 0,openDelay:300,scrim:!1,scrollStrategy:"reposition",transition:{component:G}}),["absolute"])},"VMenu"),ne=T()({name:"VMenu",props:te(),emits:{"update:modelValue":a=>!0},setup(a,h){let{slots:c}=h;const s=M(a,"modelValue"),{scopeId:R}=S(),{isRtl:f}=O(),v=U(),m=K(()=>a.id||`v-menu-${v}`),o=B(),n=F(E,null),d=N(new Set);_(E,{register(){d.value.add(v)},unregister(){d.value.delete(v)},closeParents(e){setTimeout(()=>{var t;!d.value.size&&!a.persistent&&(e==null||(t=o.value)!=null&&t.contentEl&&!ee(e,o.value.contentEl))&&(s.value=!1,n==null||n.closeParents())},40)}}),j(()=>{n==null||n.unregister(),document.removeEventListener("focusin",g)}),H(()=>s.value=!1);async function g(e){var u,r,i;const t=e.relatedTarget,l=e.target;await W(),s.value&&t!==l&&((u=o.value)!=null&&u.contentEl)&&((r=o.value)!=null&&r.globalTop)&&![document,o.value.contentEl].includes(l)&&!o.value.contentEl.contains(l)&&((i=b(o.value.contentEl)[0])==null||i.focus())}Z(s,e=>{e?(n==null||n.register(),k&&document.addEventListener("focusin",g,{once:!0})):(n==null||n.unregister(),k&&document.removeEventListener("focusin",g))},{immediate:!0});function C(e){n==null||n.closeParents(e)}function D(e){var t,l,u,r,i;if(!a.disabled)if(e.key==="Tab"||e.key==="Enter"&&!a.closeOnContentClick){if(e.key==="Enter"&&(e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLInputElement&&e.target.closest("form")))return;e.key==="Enter"&&e.preventDefault(),Q(b((t=o.value)==null?void 0:t.contentEl,!1),e.shiftKey?"prev":"next",L=>L.tabIndex>=0)||(s.value=!1,(u=(l=o.value)==null?void 0:l.activatorEl)==null||u.focus())}else a.submenu&&e.key===(f.value?"ArrowRight":"ArrowLeft")&&(s.value=!1,(i=(r=o.value)==null?void 0:r.activatorEl)==null||i.focus())}function w(e){var l;if(a.disabled)return;const t=(l=o.value)==null?void 0:l.contentEl;t&&s.value?e.key==="ArrowDown"?(e.preventDefault(),e.stopImmediatePropagation(),y(t,"next")):e.key==="ArrowUp"?(e.preventDefault(),e.stopImmediatePropagation(),y(t,"prev")):a.submenu&&(e.key===(f.value?"ArrowRight":"ArrowLeft")?s.value=!1:e.key===(f.value?"ArrowLeft":"ArrowRight")&&(e.preventDefault(),y(t,"first"))):(a.submenu?e.key===(f.value?"ArrowLeft":"ArrowRight"):["ArrowDown","ArrowUp"].includes(e.key))&&(s.value=!0,e.preventDefault(),setTimeout(()=>setTimeout(()=>w(e))))}const p=z(()=>A({"aria-haspopup":"menu","aria-expanded":String(s.value),"aria-controls":m.value,onKeydown:w},a.activatorProps));return J(()=>{const e=V.filterProps(a);return P(V,A({ref:o,id:m.value,class:["v-menu",a.class],style:a.style},e,{modelValue:s.value,"onUpdate:modelValue":t=>s.value=t,absolute:!0,activatorProps:p.value,location:a.location??(a.submenu?"end":"bottom"),"onClick:outside":C,onKeydown:D},R),{activator:c.activator,default:function(){for(var t=arguments.length,l=new Array(t),u=0;u<t;u++)l[u]=arguments[u];return P(X,{root:"VMenu"},{default:()=>{var r;return[(r=c.default)==null?void 0:r.call(c,...l)]}})}})}),Y({id:m,ΨopenChildren:d},o)}});export{ne as V};