>>24)&16711935|(r[h]<<24|r[h]>>>8)&4278255360;r[p>>>5]|=128<>>9<<4)+14]=p;for(var f=i._ff,v=i._gg,y=i._hh,w=i._ii,h=0;h>>0,c=c+x>>>0,d=d+L>>>0,u=u+E>>>0}return t.endian([a,c,d,u])};i._ff=function(s,l,r,p,a,c,d){var u=s+(l&r|~l&p)+(a>>>0)+d;return(u<>>32-c)+l},i._gg=function(s,l,r,p,a,c,d){var u=s+(l&p|r&~p)+(a>>>0)+d;return(u<>>32-c)+l},i._hh=function(s,l,r,p,a,c,d){var u=s+(l^r^p)+(a>>>0)+d;return(u<>>32-c)+l},i._ii=function(s,l,r,p,a,c,d){var u=s+(r^(l|~p))+(a>>>0)+d;return(u<>>32-c)+l},i._blocksize=16,i._digestsize=16,yn.exports=function(s,l){if(s==null)throw new Error("Illegal argument "+s);var r=t.wordsToBytes(i(s,l));return l&&l.asBytes?r:l&&l.asString?o.bytesToString(r):t.bytesToHex(r)}})()),yn.exports}var Xr=Zr();const Kr=Bn(Xr);_t(Lo);class B{constructor(e,n,o,i){this.r=e,this.g=n,this.b=o,this.name=i,this.r=Math.min(e,255),this.g=Math.min(n,255),this.b=Math.min(o,255),this.name=i}r;g;b;name;get color(){const e=n=>`00${n.toString(16)}`.slice(-2);return`#${e(this.r)}${e(this.g)}${e(this.b)}`}}function Yr(t,e,n){return{r:(n.r-e.r)/t,g:(n.g-e.g)/t,b:(n.b-e.b)/t}}function ae(t,e,n){const o=[];o.push(e);const i=Yr(t,e,n);for(let s=1;s{bo.value=_o()});function _o(){return window.outerHeight===window.screen.height}Fn(bo);var xe={exports:{}},Jr=xe.exports,Tn;function ta(){return Tn||(Tn=1,(function(t){(function(e){if(typeof n!="function"){var n=function(f){return f};n.nonNative=!0}const o=n("plaintext"),i=n("html"),s=n("comment"),l=/<(\w*)>/g,r=/<\/?([^\s\/>]+)/;function p(f,v,y){f=f||"",v=v||[],y=y||"";let w=c(v,y);return d(f,w)}function a(f,v){f=f||[],v=v||"";let y=c(f,v);return function(w){return d(w||"",y)}}p.init_streaming_mode=a;function c(f,v){return f=u(f),{allowable_tags:f,tag_replacement:v,state:o,tag_buffer:"",depth:0,in_quote_char:""}}function d(f,v){if(typeof f!="string")throw new TypeError("'html' parameter must be a string");let y=v.allowable_tags,w=v.tag_replacement,_=v.state,x=v.tag_buffer,L=v.depth,E=v.in_quote_char,O="";for(let I=0,D=f.length;I":if(E)break;if(L){L--;break}E="",_=o,x+=">",y.has(h(x))?O+=x:O+=w,x="";break;case'"':case"'":M===E?E="":E=E||M,x+=M;break;case"-":x===""?(x.slice(-2)=="--"&&(_=o),x=""):x+=M)}return v.state=_,v.tag_buffer=x,v.depth=L,v.in_quote_char=E,O}function u(f){let v=new Set;if(typeof f=="string"){let y;for(;y=l.exec(f);)v.add(y[1])}else!n.nonNative&&typeof f[n.iterator]=="function"?v=new Set(f):typeof f.forEach=="function"&&f.forEach(v.add,v);return v}function h(f){let v=r.exec(f);return v?v[1].toLowerCase():null}t.exports?t.exports=p:e.striptags=p})(Jr)})(xe)),xe.exports}ta();function ea(t,e){const n=(e?.size||64)<=64?64:512,o=e?.isGuest?"/guest":"",i=e?.isDarkTheme??Bt(document.body)?"/dark":"";return Hn(`/avatar${o}/{user}/{size}${i}?guestFallback=true`,{user:t,size:n})}const Cn=`
+
+
+
+
+`,na=`
+
+
+
+`,oa=`
+
+
+
+`,ia=`
+
+
+
+
+
+`,sa=`
+
+
+
+`,Pn=`
+
+
+
+
+`,kn=`
+
+
+
+`,ra=`
+
+
+
+`,aa=`
+
+
+
+`;_t(Eo),_t(Io);function So(t){switch(t){case"away":return N("away");case"busy":return N("busy");case"dnd":return N("do not disturb");case"online":return N("online");case"invisible":return N("invisible");case"offline":return N("offline");default:return t}}const la={online:at?ra:aa,away:at?Cn:na,busy:at?Cn:oa,dnd:at?ia:sa,invisible:at?Pn:kn,offline:at?Pn:kn},ca={name:"NcUserStatusIcon",props:{user:{type:String,default:null},status:{type:String,default:null,validator:t=>["online","away","busy","dnd","invisible","offline"].includes(t)},ariaHidden:{type:String,default:null,validator:t=>["true","false"].includes(t)}},data(){return{fetchedUserStatus:null}},computed:{activeStatus(){return this.status??this.fetchedUserStatus},activeSvg(){return la[this.activeStatus]??null},ariaLabel(){return this.ariaHidden==="true"?null:N("User status: {status}",{status:So(this.activeStatus)})}},watch:{user:{immediate:!0,async handler(t){if(!t||!On()?.user_status?.enabled){this.fetchedUserStatus=null;return}try{const{data:e}=await Ae.get(Rn("/apps/user_status/api/v1/statuses/{user}",{user:t}));this.fetchedUserStatus=e.ocs?.data?.status}catch{this.fetchedUserStatus=null}}}}};var ua=function(){var t=this,e=t._self._c;return t.activeStatus?e("span",{staticClass:"user-status-icon",class:{"user-status-icon--invisible":["invisible","offline"].includes(t.status)},attrs:{role:"img","aria-hidden":t.ariaHidden,"aria-label":t.ariaLabel},domProps:{innerHTML:t._s(t.activeSvg)}}):t._e()},da=[],pa=U(ca,ua,da,!1,null,"86b73d39");const ha=pa.exports,fa={name:"NcActionLink",mixins:[Rt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{href:{type:String,required:!0,validator:t=>{try{return new URL(t)}catch{return t.startsWith("#")||t.startsWith("/")}}},download:{type:String,default:null},target:{type:String,default:"_self",validator:t=>t&&(!t.startsWith("_")||["_blank","_self","_parent","_top"].indexOf(t)>-1)},title:{type:String,default:null},ariaHidden:{type:Boolean,default:null}}};var ma=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("a",{staticClass:"action-link focusable",attrs:{download:t.download,href:t.href,"aria-label":t.ariaLabel,target:t.target,title:t.title,rel:"nofollow noreferrer noopener",role:t.isInSemanticMenu&&"menuitem"},on:{click:t.onClick}},[t._t("icon",function(){return[e("span",{staticClass:"action-link__icon",class:[t.isIconUrl?"action-link__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:null},attrs:{"aria-hidden":"true"}})]}),t.name?e("span",{staticClass:"action-link__longtext-wrapper"},[e("strong",{staticClass:"action-link__name"},[t._v(" "+t._s(t.name)+" ")]),e("br"),e("span",{staticClass:"action-link__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e("span",{staticClass:"action-link__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-link__text"},[t._v(t._s(t.text))]),t._e()],2)])},ga=[],va=U(fa,ma,ga,!1,null,"b7a160c7");const ya=va.exports,wa={name:"NcActionRouter",mixins:[Rt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{to:{type:[String,Object],required:!0},exact:{type:Boolean,default:!1}}};var ba=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("RouterLink",{staticClass:"action-router focusable",attrs:{to:t.to,"aria-label":t.ariaLabel,exact:t.exact,title:t.title,rel:"nofollow noreferrer noopener",role:t.isInSemanticMenu&&"menuitem"},nativeOn:{click:function(n){return t.onClick.apply(null,arguments)}}},[t._t("icon",function(){return[e("span",{staticClass:"action-router__icon",class:[t.isIconUrl?"action-router__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:null},attrs:{"aria-hidden":"true"}})]}),t.name?e("span",{staticClass:"action-router__longtext-wrapper"},[e("strong",{staticClass:"action-router__name"},[t._v(" "+t._s(t.name)+" ")]),e("br"),e("span",{staticClass:"action-router__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e("span",{staticClass:"action-router__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-router__text"},[t._v(t._s(t.text))]),t._e()],2)],1)},_a=[],Sa=U(wa,ba,_a,!1,null,"4dae1ff7");const xa=Sa.exports,Aa={name:"NcActionText",mixins:[Rt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}}};var $a=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("span",{staticClass:"action-text",on:{click:t.onClick}},[t._t("icon",function(){return[t.icon!==""?e("span",{staticClass:"action-text__icon",class:[t.isIconUrl?"action-text__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:null},attrs:{"aria-hidden":"true"}}):t._e()]}),t.name?e("span",{staticClass:"action-text__longtext-wrapper"},[e("strong",{staticClass:"action-text__name"},[t._v(" "+t._s(t.name)+" ")]),e("span",{staticClass:"action-text__longtext",domProps:{textContent:t._s(t.text)}})]):t.isLongText?e("span",{staticClass:"action-text__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-text__text"},[t._v(t._s(t.text))]),t._e()],2)])},Ta=[],Ca=U(Aa,$a,Ta,!1,null,"2fe7eb92");const Pa=Ca.exports;_t(Oo);const ka={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(t){if(!t)return;const e=On();if(!(!Object.hasOwn(e,"user_status")||!e.user_status.enabled)&&ce())try{const{data:n}=await Ae.get(Rn("apps/user_status/api/v1/statuses/{userId}",{userId:t}));this.setUserStatus(n.ocs.data)}catch(n){if(n.response.status===404&&n.response.data.ocs?.data?.length===0)return;lt.error("Could not fetch user status",{error:n})}},setUserStatus({status:t,message:e,icon:n}){this.userStatus.status=t||"",this.userStatus.message=e||"",this.userStatus.icon=n||"",this.hasStatus=!!t}}},xo=zo("nextcloud").persist().build();function Na(t){const e=xo.getItem("user-has-avatar."+t);return typeof e=="string"?!!e:null}function Nn(t,e){t&&xo.setItem("user-has-avatar."+t,e)}const Ma={name:"NcAvatar",directives:{ClickOutside:vr},components:{IconDotsHorizontal:fo,NcActions:gr,NcButton:En,NcIconSvgWrapper:Mn,NcLoadingIcon:jo,NcPopover:ho,NcProfileHoverCard:Uo(()=>Bo(()=>import("./NcProfileHoverCard-DK5YkGF0-B210bn0u.chunk.mjs").then(t=>t.N),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]),import.meta.url)),NcUserStatusIcon:ha},mixins:[ka],props:{url:{type:String,default:void 0},iconClass:{type:String,default:void 0},user:{type:String,default:void 0},hideStatus:{type:Boolean,default:!1},showUserStatus:{type:Boolean,default:!0},verboseStatus:{type:Boolean,default:!1},showUserStatusCompact:{type:Boolean,default:!0},preloadedUserStatus:{type:Object,default:void 0},isGuest:{type:Boolean,default:!1},displayName:{type:String,default:void 0},size:{type:Number,default:32},noPlaceholder:{type:Boolean,default:!1},allowPlaceholder:{type:Boolean,default:!0},disableTooltip:{type:Boolean,default:!1},disableMenu:{type:Boolean,default:!1},tooltipMessage:{type:String,default:null},isNoUser:{type:Boolean,default:!1},menuContainer:{type:[Boolean,String,Object,Element],default:"body"}},setup(){return{isDarkTheme:qr(),isLegacy35:Do}},data(){return{avatarUrlLoaded:null,avatarSrcSetLoaded:null,userDoesNotExist:!1,isAvatarLoaded:!1,isMenuLoaded:!1,contactsMenuLoading:!1,contactsMenuData:{},contactsMenuActions:[],contactsMenuOpenState:!1}},computed:{avatarAriaLabel(){if(this.hasMenu)return this.canDisplayUserStatus||this.showUserStatusIconOnAvatar?N("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:So(this.userStatus.status)}):N("Avatar of {displayName}",{displayName:this.displayName??this.user})},canDisplayUserStatus(){return!this.hideStatus&&this.showUserStatus&&this.hasStatus&&["online","away","busy","dnd"].includes(this.userStatus.status)},showUserStatusIconOnAvatar(){return!this.hideStatus&&this.showUserStatus&&!this.verboseStatus&&this.showUserStatusCompact&&this.hasStatus&&this.userStatus.status!=="dnd"&&this.userStatus.icon},userIdentifier(){return this.isDisplayNameDefined?this.displayName:this.isUserDefined?this.user:""},isUserDefined(){return typeof this.user<"u"},isDisplayNameDefined(){return typeof this.displayName<"u"},isUrlDefined(){return typeof this.url<"u"},hasMenu(){return this.disableMenu?!1:this.isLegacy35?this.isMenuLoaded?this.menu.length>0:!(this.user===ce()?.uid||this.userDoesNotExist||this.url):!!this.user&&!this.isNoUser&&!this.url&&!this.userDoesNotExist},showInitials(){return!this.noPlaceholder&&this.allowPlaceholder&&this.userDoesNotExist&&!(this.iconClass||this.$scopedSlots.icon)},avatarStyle(){return{"--avatar-size":this.size+"px",lineHeight:this.showInitials?this.size+"px":0,fontSize:Math.round(this.size*.45)+"px"}},initialsWrapperStyle(){const{r:t,g:e,b:n}=$n(this.userIdentifier);return{backgroundColor:`rgba(${t}, ${e}, ${n}, 0.1)`}},initialsStyle(){const{r:t,g:e,b:n}=$n(this.userIdentifier);return{color:`rgb(${t}, ${e}, ${n})`}},tooltip(){return this.disableTooltip?!1:this.tooltipMessage?this.tooltipMessage:this.displayName},initials(){let t="?";if(this.showInitials){const e=this.userIdentifier.trim();if(e==="")return t;const n=e.match(/[\p{L}\p{N}\s]/gu);if(!n)return t;const o=n.join("").trim(),i=o.lastIndexOf(" ");t=String.fromCodePoint(o.codePointAt(0)),i!==-1&&(t=t.concat(String.fromCodePoint(o.codePointAt(i+1))))}return t.toLocaleUpperCase()},hoverCardActions(){return this.isLegacy35||!this.isMenuLoaded?null:this.menu.length>0?this.menu:null},hoverCardPreloadedUserStatus(){if(this.preloadedUserStatus)return this.userStatus;if(this.userStatus.status||this.userStatus.icon||this.userStatus.message)return this.userStatus},menu(){if(this.isLegacy35)return this.legacyMenu;const t=this.contactsMenuActions.map(e=>{const n=gn(this.$router,e.hyperlink);return{id:e.id,appId:e.appId,text:e.title,href:n?void 0:e.hyperlink,to:n||void 0,icon:e.icon}});for(const e of vn(this.contactsMenuData))try{t.push({id:e.id,text:e.displayName(this.contactsMenuData),iconSvg:e.iconSvg(this.contactsMenuData),onClick:()=>e.callback(this.contactsMenuData)})}catch(n){lt.error(`Failed to render ContactsMenu action ${e.id}`,{error:n,action:e})}return t},legacyMenu(){const t=this.contactsMenuActions.map(n=>{const o=gn(this.$router,n.hyperlink);return{ncActionComponent:o?xa:ya,ncActionComponentProps:o?{to:o,icon:n.icon}:{href:n.hyperlink,icon:n.icon},text:n.title}});for(const n of vn(this.contactsMenuData))try{t.push({ncActionComponent:Jo,ncActionComponentProps:{},ncActionComponentHandlers:{click:()=>n.callback(this.contactsMenuData)},text:n.displayName(this.contactsMenuData),iconSvg:n.iconSvg(this.contactsMenuData)})}catch(o){lt.error(`Failed to render ContactsMenu action ${n.id}`,{error:o,action:n})}function e(n){const o=document.createTextNode(n),i=document.createElement("p");return i.appendChild(o),i.innerHTML}if(!this.hideStatus&&this.showUserStatus&&(this.userStatus.icon||this.userStatus.message)){const n=`
+ ${e(this.userStatus.icon)}
+ `;return[{ncActionComponent:Pa,ncActionComponentProps:{},iconSvg:this.userStatus.icon?n:void 0,text:`${this.userStatus.message}`}].concat(t)}return t}},watch:{url(){this.userDoesNotExist=!1,this.loadAvatarUrl()},user(){this.userDoesNotExist=!1,this.isMenuLoaded=!1,this.loadAvatarUrl()},preloadedUserStatus(t){t&&this.setUserStatus(t)},contactsMenuOpenState(t){this.isLegacy35||(t?this.debouncedFetchContactsMenu():this.debouncedFetchContactsMenu.clear())}},created(){this.debouncedFetchContactsMenu=xr(this.fetchContactsMenu,300)},mounted(){this.loadAvatarUrl(),Jt("settings:avatar:updated",this.loadAvatarUrl),Jt("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.showUserStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),Jt("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeDestroy(){this.debouncedFetchContactsMenu.clear(),Qt("settings:avatar:updated",this.loadAvatarUrl),Qt("settings:display-name:updated",this.loadAvatarUrl),Qt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:N,handleUserStatusUpdated(t){this.user===t.userId&&(this.userStatus={status:t.status,icon:t.icon,message:t.message},this.hasStatus=t.status!==null)},async toggleMenu(t){t.type==="keydown"&&t.key!=="Enter"||(this.contactsMenuOpenState||await this.fetchContactsMenu(),this.contactsMenuOpenState=!this.contactsMenuOpenState)},closeMenu(){this.isLegacy35&&(this.contactsMenuOpenState=!1)},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const t=encodeURIComponent(this.user),{data:e}=await Ae.post(Hn("contactsmenu/findOne"),`shareType=0&shareWith=${t}`);this.contactsMenuData=e,this.contactsMenuActions=e.topAction?[e.topAction].concat(e.actions):e.actions}catch{this.contactsMenuData={},this.contactsMenuActions=[],this.isLegacy35&&(this.contactsMenuOpenState=!1)}this.contactsMenuLoading=!1,this.isMenuLoaded=!0},loadAvatarUrl(){if(this.isAvatarLoaded=!1,!this.isUrlDefined&&(!this.isUserDefined||this.isNoUser||this.iconClass||this.$scopedSlots.icon)){this.isAvatarLoaded=!0,this.userDoesNotExist=!0;return}if(this.isUrlDefined){this.updateImageIfValid(this.url);return}if(this.size<=64){const t=this.avatarUrlGenerator(this.user,64),e=[t+" 1x",this.avatarUrlGenerator(this.user,512)+" 8x"].join(", ");this.updateImageIfValid(t,e)}else{const t=this.avatarUrlGenerator(this.user,512);this.updateImageIfValid(t)}},avatarUrlGenerator(t,e){let n=ea(t,{size:e,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return t===ce()?.uid&&typeof window.oc_userconfig<"u"&&(n+="?v="+window.oc_userconfig.avatar.version),n},updateImageIfValid(t,e=null){const n=Na(this.user);if(this.isUserDefined&&typeof n=="boolean"){this.isAvatarLoaded=!0,this.avatarUrlLoaded=t,e&&(this.avatarSrcSetLoaded=e),n===!1&&(this.userDoesNotExist=!0);return}const o=new Image;o.onload=()=>{this.avatarUrlLoaded=t,e&&(this.avatarSrcSetLoaded=e),this.isAvatarLoaded=!0,Nn(this.user,!0)},o.onerror=i=>{lt.debug("Invalid avatar url",{error:i,url:t}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,Nn(this.user,!1)},e&&(o.srcset=e),o.src=t}}};var La=function(){var t=this,e=t._self._c;return e("span",{directives:[{name:"click-outside",rawName:"v-click-outside",value:t.closeMenu,expression:"closeMenu"}],staticClass:"avatardiv popovermenu-wrapper",class:{"avatardiv--unknown":t.userDoesNotExist,"avatardiv--with-menu":t.hasMenu,"avatardiv--with-legacy-menu":t.hasMenu&&t.isLegacy35,"avatardiv--with-menu-loading":t.contactsMenuLoading},style:t.avatarStyle,attrs:{title:t.tooltip}},[t._t("icon",function(){return[t.iconClass?e("span",{staticClass:"avatar-class-icon",class:t.iconClass}):t.isAvatarLoaded&&!t.userDoesNotExist?e("img",{attrs:{src:t.avatarUrlLoaded,srcset:t.avatarSrcSetLoaded,alt:""}}):t._e()]}),t.isLegacy35&&t.hasMenu?[t.menu.length===0?e("NcButton",{staticClass:"action-item action-item__menutoggle",attrs:{"aria-label":t.avatarAriaLabel,variant:"tertiary-no-background"},on:{click:t.toggleMenu},scopedSlots:t._u([{key:"icon",fn:function(){return[t.contactsMenuLoading?e("NcLoadingIcon"):e("IconDotsHorizontal",{attrs:{size:20}})]},proxy:!0}],null,!1,1269954734)}):e("NcActions",{attrs:{"aria-label":t.avatarAriaLabel,container:t.menuContainer,"force-menu":"","manual-open":"",open:t.contactsMenuOpenState,variant:"tertiary-no-background"},on:{"update:open":function(n){t.contactsMenuOpenState=n},click:t.toggleMenu},scopedSlots:t._u([t.contactsMenuLoading?{key:"icon",fn:function(){return[e("NcLoadingIcon")]},proxy:!0}:null],null,!0)},t._l(t.menu,function(n,o){return e(n.ncActionComponent,t._g(t._b({key:o,tag:"component",scopedSlots:t._u([n.iconSvg?{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:n.iconSvg}})]},proxy:!0}:null],null,!0)},"component",n.ncActionComponentProps,!1),n.ncActionComponentHandlers),[t._v(" "+t._s(n.text)+" ")])}),1)]:t.hasMenu?e("NcPopover",{staticClass:"avatar-profile-popover",attrs:{shown:t.contactsMenuOpenState,container:t.menuContainer,delay:{show:400,hide:0},"popover-triggers":["hover"],triggers:["hover","focus","click"],"no-focus-trap":"","popup-role":"dialog"},on:{"update:shown":function(n){t.contactsMenuOpenState=n}},scopedSlots:t._u([{key:"trigger",fn:function({attrs:n}){return[e("span",t._b({staticClass:"avatar-profile-popover__trigger",attrs:{role:"button",tabindex:"0","aria-label":t.avatarAriaLabel}},"span",n,!1))]}}])},[e("NcProfileHoverCard",{attrs:{user:t.user,open:t.contactsMenuOpenState,actions:t.hoverCardActions,"actions-loading":t.contactsMenuLoading,"preloaded-user-status":t.hoverCardPreloadedUserStatus}})],1):t._e(),t.showUserStatusIconOnAvatar?e("span",{staticClass:"avatardiv__user-status avatardiv__user-status--icon"},[t._v(" "+t._s(t.userStatus.icon)+" ")]):t.canDisplayUserStatus?e("NcUserStatusIcon",{staticClass:"avatardiv__user-status",attrs:{status:t.userStatus.status,"aria-hidden":String(t.hasMenu)}}):t._e(),t.showInitials?e("span",{staticClass:"avatardiv__initials-wrapper",style:t.initialsWrapperStyle},[e("span",{staticClass:"avatardiv__initials",style:t.initialsStyle},[t._v(" "+t._s(t.initials)+" ")])]):t._e()],2)},Ea=[],Ia=U(Ma,La,Ea,!1,null,"c3ee4dd7");const el=Ia.exports;export{Wo as A,ya as B,tl as C,Qa as D,hn as E,Ja as F,Vo as G,qa as H,ja as I,Fa as J,B as K,on as L,Jo as N,wo as S,Ka as U,ho as a,el as b,gr as c,Wa as d,xr as e,Zs as f,ue as g,Ga as h,Ra as i,vo as j,Go as k,za as l,Za as m,Xa as n,Ua as o,Ha as p,gn as q,qo as r,Va as s,Ya as t,ka as u,Nr as v,Rr as w,zr as x,ie as y,xa as z};
+//# sourceMappingURL=NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.map
diff --git a/js/NcAvatar-C1ty7wsG-I_Ku5JeW.chunk.mjs.license b/js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.license
similarity index 79%
rename from js/NcAvatar-C1ty7wsG-I_Ku5JeW.chunk.mjs.license
rename to js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.license
index db613c270..f6ac2c6d8 100644
--- a/js/NcAvatar-C1ty7wsG-I_Ku5JeW.chunk.mjs.license
+++ b/js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.license
@@ -1,17 +1,26 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: MIT
+SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
SPDX-FileCopyrightText: Eugene Sharygin
SPDX-FileCopyrightText: Feross Aboukhadijeh
+SPDX-FileCopyrightText: Guillaume Chau
SPDX-FileCopyrightText: Jacob Clevenger
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Paul Vorbach (http://vorb.de)
SPDX-FileCopyrightText: Paul Vorbach (http://paul.vorba.ch)
SPDX-FileCopyrightText: Titus Wormer (https://wooorm.com)
+SPDX-FileCopyrightText: atomiks
SPDX-FileCopyrightText: debounce developers
This file is generated from multiple sources. Included packages:
+- @floating-ui/core
+ - version: 0.3.1
+ - license: MIT
+- @floating-ui/dom
+ - version: 0.1.10
+ - license: MIT
- @nextcloud/vue
- version: 8.41.0
- license: AGPL-3.0-or-later
@@ -27,6 +36,12 @@ This file is generated from multiple sources. Included packages:
- debounce
- version: 2.2.0
- license: MIT
+- floating-vue
+ - version: 1.0.0-beta.19
+ - license: MIT
+- focus-trap
+ - version: 7.8.0
+ - license: MIT
- is-buffer
- version: 1.1.6
- license: MIT
diff --git a/js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.map b/js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.map
new file mode 100644
index 000000000..e7e912b67
--- /dev/null
+++ b/js/NcAvatar-C1ty7wsG-BPdiftbj.chunk.mjs.map
@@ -0,0 +1 @@
+{"version":3,"mappings":"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","names":["GenRandomId","length","mdiArrowLeft","mdiArrowRight","mdiArrowTopRight","mdiCheck","mdiChevronLeft","mdiChevronRight","mdiClose","mdiCloseCircleOutline","mdiContentCopy","mdiDotsHorizontal","mdiOpenInNew","mdiRadioboxBlank","mdiRadioboxMarked","mdiUndo","ActionGlobalMixin","GetParent","context","name","parent","ActionTextMixin","event","_sfc_main","NcIconSvgWrapper","behavior","attributes","_sfc_render","_vm","_c","_sfc_staticRenderFns","__component__","normalizeComponent","NcActionButton","getTrapStack","createTrapStackController","pausedStack","trap","useTrapStackControl","shouldPause","options","trapStackController","watch","toValue","onUnmounted","getBasePlacement","placement","getAlignment","getMainAxisFromPlacement","getLengthFromAxis","axis","computeCoordsFromPlacement","_ref","reference","floating","commonX","commonY","coords","mainAxis","computePosition","config","strategy","middleware","platform","rects","x","y","statefulPlacement","middlewareData","i","fn","nextX","_","data","reset","nextY","expandPaddingObject","padding","getSideObjectFromPadding","rectToClientRect","rect","detectOverflow","middlewareArguments","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","elementClientRect","min","max","within","min$1","value","max$1","arrow","basePlacement","arrowDimensions","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","hash$1","getOppositePlacement","matched","getAlignmentSides","isStart","mainAlignmentSide","hash","getOppositeAlignmentPlacement","basePlacements","allPlacements","acc","getPlacementList","alignment","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_middlewareData$autoP3","_middlewareData$autoP4","_middlewareData$autoP5","_placementsSortedByLe","detectOverflowOptions","placements","overflow","currentIndex","currentPlacement","main","cross","currentOverflows","allOverflows","nextPlacement","placementsSortedByLeastOverflow","a","b","placementThatFitsOnAllSides","overflows","getExpandedPlacements","oppositePlacement","flip","_middlewareData$flip","_middlewareData$flip2","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","flipAlignment","fallbackPlacements","overflowsData","side","_middlewareData$flip$","_middlewareData$flip3","nextIndex","resetPlacement","_overflowsData$slice$","convertValueToCoords","multiplier","rawValue","crossAxis","diffCoords","getCrossAxis","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","_middlewareData$size","apply","isEnd","heightSide","widthSide","xMin","xMax","yMin","yMax","dimensions","isWindow","getWindow","node","ownerDocument","getComputedStyle$1","getNodeName","isHTMLElement","isElement","isNode","isShadowRoot","OwnElement","isScrollParent","overflowX","overflowY","isTableElement","isContainingBlock","isFirefox","css","round","getBoundingClientRect","includeScale","clientRect","scaleX","scaleY","getDocumentElement","getNodeScroll","getWindowScrollBarX","isScaled","getRectRelativeToOffsetParent","offsetParent","isOffsetParentAnElement","documentElement","scroll","offsets","offsetRect","getParentNode","getTrueOffsetParent","getContainingBlock","currentNode","getOffsetParent","window","getDimensions","convertOffsetParentRelativeRectToViewportRelativeRect","getViewportRect","win","html","visualViewport","width","height","getDocumentRect","_element$ownerDocumen","body","getScrollParent","getScrollParents","list","_node$ownerDocument","scrollParent","isBody","target","updatedList","contains","child","rootNode","next","getInnerBoundingClientRect","top","left","getClientRectFromClippingParent","clippingParent","getClippingParents","clippingParents","clipperElement","getClippingClientRect","firstClippingParent","clippingRect","accRect","args","_ref2","_ref3","_ref4","_ref5","computePosition$1","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","__spreadValues","prop","__spreadProps","__objRest","source","exclude","assign","to","from","events","getDefaultConfig","theme","themeConfig","getThemeClasses","result","c","getAllParentThemes","supportsPassive","opts","isIOS","base","SHOW_EVENT_MAP","HIDE_EVENT_MAP","removeFromArray","array","item","index","nextFrame","resolve","shownPoppers","hidingPopper","shownPoppersByTheme","getShownPoppersByTheme","Element","defaultPropFactory","props","PROVIDE_KEY","PrivatePopper","_a","_b","n","skipDelay","force","skipAiming","e","options2","isPlacementAuto","centerOffset","autoSize","_a2","type","delay","skipTransition","bounds","popperWrapper","parentBounds","showGroup","popover","disposeTime","container","handleShow","handleHide","targetNodes","eventType","handler","eventMap","commonTriggers","customTrigger","triggers","trigger","filterEventType","newList","listener","touch","attrFrom","attrTo","el","attrs","referenceBounds","mouseX","mouseY","popperBounds","vectorX","mousePreviousX","vectorY","mousePreviousY","newVectorLength","edgeX","edgeY","lineIntersectsLine","handleGlobalMousedown","handleGlobalTouchend","handleGlobalClick","computePositionAllShownPoppers","popper","popperContent","handleGlobalClose","preventClose","isContainingEventTarget","shouldAutoHide","parent2","getAutoHideResult","x1","y1","x2","y2","x3","y3","x4","y4","uA","uB","getInternetExplorerVersion","ua","msie","trident","rv","edge","isIE","initCompat","script","_this","object","normalizeComponent$1","template","style","script2","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","__vue_script__","__vue_render__","_h","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_component__","install$1","Vue2","plugin$1","GlobalVue$1","global","PrivateThemeClass","__vue2_script$5","render$2","$event","staticRenderFns$2","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","hook","originalRender","h","existing","__cssModules$5","__component__$5","__vue2_injectStyles$5","o","PrivatePopperContent","PrivatePopperMethods","__vue2_script$4","render$1","ref","popperId","isShown","shouldMountContent","autoHide","show","hide","handleResize","onResize","classes","staticRenderFns$1","__cssModules$4","__component__$4","__vue2_injectStyles$4","PrivatePopperWrapper","__vue2_script$3","__vue2_render$2","__vue2_staticRenderFns$2","__cssModules$3","__component__$3","__vue2_injectStyles$3","PrivateDropdown","__vue2_script$2","__vue2_render$1","__vue2_staticRenderFns$1","__cssModules$2","__component__$2","__vue2_injectStyles$2","PrivateMenu","__vue2_script$1","__vue2_render","__vue2_staticRenderFns","__cssModules$1","__component__$1","__vue2_injectStyles$1","PrivateTooltip","__vue2_script","fetchId","res","render","staticRenderFns","__cssModules","__vue2_injectStyles","PrivateTooltipDirective","TARGET_CLASS","getPlacement","modifiers","pos","getOptions","createTooltip","tooltipApp","Vue","content","loadingContent","otherOptions","mountTarget","destroyTooltip","bind","oldValue","PrivateVTooltip","addListeners","onClick","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","firstTouch","PrivateVClosePopper","Dropdown","install","app","plugin","GlobalVue","_arrayLikeToArray","r","_arrayWithoutHoles","_createForOfIteratorHelper","t","_unsupportedIterableToArray","F","u","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","_objectSpread2","_toConsumableArray","_toPrimitive","activeFocusTraps","trapStack","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","valueOrHandler","_len","params","_key","getActualTarget","internalTrapStack","createFocusTrap","userOptions","doc","state","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","err","getInitialFocusNode","isFocusable","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","tabbable","focusableNodes","focusable","lastTabbableNode","firstDomTabbableNode","isTabbable","lastDomTabbableNode","posTabIndexesFound","getTabIndex","forward","nodeIdx","group","g","_getActiveElement","activeElement","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","collectAdjacentElements","containers","containerAncestors","adjacentElements","_iterator","_step","insideShadowRoot","current","siblings","_iterator2","_step2","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","preexistingTrap","revertState","_preexistingTrap$_set","finishActivation","error","_preexistingTrap$_set2","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","unpauseOptions","containerElements","elementsAsArray","paused","onPause","onPostPause","onUnpause","onPostUnpause","isEnabled","_el$getAttribute","_sfc_main$1","defineComponent","_sfc_render$1","_sfc_staticRenderFns$1","NcPopoverTriggerProvider","ncPopover","style0","THEME","triggerButton","triggerElements","triggerContainer","logger","slotProps","_sfc_injectStyles","ctx","NcPopover","DotsHorizontalIcon","register","t5","focusableSelector","NcButton","computed","randomId","triggerRandomId","action","url","inner","maxMenuHeight","currentHeight","actionHeight","bottom","boundaryTop","boundaryBottom","focusList","focusIndex","newFocusIndex","currentActiveElement","focusElement","liMenuParent","indexLength","firstCheckedIndex","button","actions","validInlineActions","inlineActions","menuActions","textInputActions","menuItemsActions","linkActions","hasTextInputAction","hasMenuItemAction","hasLinkAction","renderInlineAction","iconProp","icon","clickListener","text","ariaLabel","buttonText","title","propsToForward","nativeType","renderActionsPopover","actions2","triggerIcon","NcActions","defaultWindow","isClient","unrefElement","elRef","plain","useEventListener","listeners","noop","cleanups","cleanup","stopWatch","optionsClone","isObject","stop","tryOnScopeDispose","_iOSWorkaround","onClickOutside","ignore","capture","detectIframe","shouldListen","shouldIgnore","target2","hasMultipleRoots","vm","checkMultipleRoots","children","isProcessingClick","vOnClickOutside","directiveHooks","binding","resolveElement","checkOverflowScroll","ele","preventDefault","rawEvent","_target","elInitialOverflow","useScrollLock","initialState","isLocked","stopTouchMoveListener","initialOverflow","toRef","lock","unlock","v","onScrollLock","isMounted","debounce","function_","wait","immediate","storedContext","storedArguments","timeoutId","timestamp","run","callContext","callArguments","later","last","debounced","arguments_","callNow","debounceModule","convert","test","ok","castFactory","anyFactory","propertiesFactory","typeFactory","tests","checks","any","parameters","check","checkAsRecord","all","nodeAsRecord","testFunction","looksLikeANode","empty","CONTINUE","EXIT","SKIP","visitParents","tree","visitor","reverse","is","step","factory","parents","visit","subresult","grandparents","toResult","nodeAsParent","__props","href","decorateExternal","externalLink","externalLink_decorated","NcRichTextExternalLink","URL_PATTERN","URL_PATTERN_AUTOLINK","remarkAutolink","autolink","useMarkdown","useExtendedMarkdown","ancestors","ancestor","parsed","parseUrl","match","start","textAfter","textBefore","lastChar","joinedText","getRoute","router","removePrefix","str","prefix","removePrefixes","prefixes","isAbsoluteURL","isNonHttpLink","getBaseUrl","relativeUrl","relativeRouterBase","getRootUrl","potentialRouterPath","route","checkIfDarkTheme","backgroundInvertIfDark","INJECTION_KEY_THEME","useIsDarkThemeElement","isDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","inject","getEnabledContactsMenuActions","entry","base64map","crypt","bytes","words","hex","base64","triplet","j","imod4","cryptModule","charenc","charenc_1","isBuffer_1","isBuffer","isSlowBuffer","require$$0","utf8","require$$1","require$$2","bin","md5","message","m","l","d","FF","GG","HH","II","aa","bb","cc","dd","s","md5Module","digestbytes","t4","Color","toHex","int","calculateStepIncrement","steps","color1","color2","mixPalette","palette","increment","COLOR_RED","COLOR_YELLOW","COLOR_BLUE","COLOR_BLACK","COLOR_WHITE","defaultPalette","generatePalette","palette1","palette2","palette3","usernameToColor","username","finalPalette","hashToInt","hash2","maximum","finalInt","isFullscreen","checkIfIsFullscreen","Symbol","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","allowable_tags","tag_replacement","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","idx","char","normalize_tag","tag_set","module","this","getAvatarUrl","user","guestUrl","themeUrl","generateUrl","awayLegacySvg","awaySvg","busySvg","dndLegacySvg","dndSvg","invisibleLegacySvg","invisibleSvg","onlineLegacySvg","onlineSvg","t54","t12","getUserStatusText","status","matchSvg","isLegacy32","getCapabilities","axios","generateOcsUrl","NcUserStatusIcon","NcActionLink","NcActionRouter","NcActionText","t11","userStatus","userId","capabilities","getCurrentUser","browserStorage","getBuilder","getUserHasAvatar","flag","setUserHasAvatar","NcLoadingIcon","defineAsyncComponent","isLegacy35","initials","filteredChars","filtered","escape","p","emojiIcon","shown","subscribe","unsubscribe","avatarUrl","srcset","userHasAvatar","img","NcAvatar"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"sources":["../node_modules/@nextcloud/vue/dist/chunks/GenRandomId-F5ebeBB_.mjs","../node_modules/@nextcloud/vue/dist/chunks/mdi-DkJglNiS.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionGlobal-DqVa7c7G.mjs","../node_modules/@nextcloud/vue/dist/chunks/actionText-BMig9Egt.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionButton-D7uypboC.mjs","../node_modules/@nextcloud/vue/dist/chunks/focusTrap-HJQ4pqHV.mjs","../node_modules/@nextcloud/vue/dist/chunks/useTrapStackControl-BnLfCgGU.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","../node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","../node_modules/floating-vue/dist/floating-vue.es.js","../node_modules/focus-trap/dist/focus-trap.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcPopover-BaHX3QSG.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActions-CX1MSord.mjs","../node_modules/@vueuse/components/index.mjs","../node_modules/debounce/index.js","../node_modules/unist-builder/lib/index.js","../node_modules/unist-util-is/lib/index.js","../node_modules/unist-util-visit-parents/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink-COrOqbJu.mjs","../node_modules/@nextcloud/vue/dist/Functions/isDarkTheme.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-wIEKSp2G.mjs","../node_modules/@nextcloud/vue/dist/Composables/useIsDarkTheme.mjs","../node_modules/@nextcloud/vue/dist/Functions/contactsMenu.mjs","../node_modules/crypt/crypt.js","../node_modules/charenc/charenc.js","../node_modules/is-buffer/index.js","../node_modules/md5/md5.js","../node_modules/@nextcloud/vue/dist/chunks/colors-B_oqiKWY.mjs","../node_modules/@nextcloud/vue/dist/Functions/usernameToColor.mjs","../node_modules/@nextcloud/vue/dist/Composables/useIsFullscreen.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/getAvatarUrl-BGOeDmNO.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-gpl3yJFX.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionLink.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionRouter.mjs","../node_modules/@nextcloud/vue/dist/Components/NcActionText.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar-C1ty7wsG.mjs"],"sourcesContent":["function GenRandomId(length) {\n return Math.random().toString(36).replace(/[^a-z]+/g, \"\").slice(0, length || 5);\n}\nexport {\n GenRandomId as G\n};\n//# sourceMappingURL=GenRandomId-F5ebeBB_.mjs.map\n","var mdiArrowLeft = \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\";\nvar mdiArrowRight = \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\";\nvar mdiArrowTopRight = \"M5,17.59L15.59,7H9V5H19V15H17V8.41L6.41,19L5,17.59Z\";\nvar mdiCheck = \"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\";\nvar mdiCheckboxBlankOutline = \"M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z\";\nvar mdiCheckboxMarked = \"M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z\";\nvar mdiChevronLeft = \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\";\nvar mdiChevronRight = \"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\";\nvar mdiClose = \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\";\nvar mdiCloseCircleOutline = \"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2C6.47,2 2,6.47 2,12C2,17.53 6.47,22 12,22C17.53,22 22,17.53 22,12C22,6.47 17.53,2 12,2M14.59,8L12,10.59L9.41,8L8,9.41L10.59,12L8,14.59L9.41,16L12,13.41L14.59,16L16,14.59L13.41,12L16,9.41L14.59,8Z\";\nvar mdiCog = \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\";\nvar mdiCogOutline = \"M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\";\nvar mdiContentCopy = \"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\";\nvar mdiCreation = \"M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74\";\nvar mdiDotsHorizontal = \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\";\nvar mdiOpenInNew = \"M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z\";\nvar mdiRadioboxBlank = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\";\nvar mdiRadioboxMarked = \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z\";\nvar mdiUndo = \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\";\nexport {\n mdiCheck as a,\n mdiUndo as b,\n mdiClose as c,\n mdiArrowRight as d,\n mdiContentCopy as e,\n mdiCreation as f,\n mdiRadioboxMarked as g,\n mdiRadioboxBlank as h,\n mdiCheckboxMarked as i,\n mdiCheckboxBlankOutline as j,\n mdiCogOutline as k,\n mdiCog as l,\n mdiChevronRight as m,\n mdiOpenInNew as n,\n mdiArrowTopRight as o,\n mdiDotsHorizontal as p,\n mdiCloseCircleOutline as q,\n mdiArrowLeft as r,\n mdiChevronLeft as s\n};\n//# sourceMappingURL=mdi-DkJglNiS.mjs.map\n","const ActionGlobalMixin = {\n beforeUpdate() {\n this.text = this.getText();\n },\n data() {\n return {\n // $slots are not reactive.\n // We need to update the content manually\n text: this.getText()\n };\n },\n computed: {\n isLongText() {\n return this.text && this.text.trim().length > 20;\n }\n },\n methods: {\n getText() {\n return this.$slots.default ? this.$slots.default[0].text.trim() : \"\";\n }\n }\n};\nexport {\n ActionGlobalMixin as A\n};\n//# sourceMappingURL=actionGlobal-DqVa7c7G.mjs.map\n","import { A as ActionGlobalMixin } from \"./actionGlobal-DqVa7c7G.mjs\";\nfunction GetParent(context, name) {\n let parent = context.$parent;\n while (parent) {\n if (parent.$options.name === name) {\n return parent;\n }\n parent = parent.$parent;\n }\n}\nconst ActionTextMixin = {\n mixins: [ActionGlobalMixin],\n props: {\n /**\n * Icon to show with the action, can be either a CSS class or an URL\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * The main text content of the entry.\n */\n name: {\n type: String,\n default: \"\"\n },\n /**\n * The title attribute of the element.\n */\n title: {\n type: String,\n default: \"\"\n },\n /**\n * Whether we close the Actions menu after the click\n */\n closeAfterClick: {\n type: Boolean,\n default: false\n },\n /**\n * Aria label for the button. Not needed if the button has text.\n */\n ariaLabel: {\n type: String,\n default: null\n },\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n default: null\n }\n },\n emits: [\n \"click\"\n ],\n computed: {\n /**\n * Check if icon prop is an URL\n *\n * @return {boolean} Whether the icon prop is an URL\n */\n isIconUrl() {\n try {\n return !!new URL(this.icon, this.icon.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n }\n },\n methods: {\n onClick(event) {\n this.$emit(\"click\", event);\n if (this.closeAfterClick) {\n const parent = GetParent(this, \"NcActions\");\n if (parent && parent.closeMenu) {\n parent.closeMenu(false);\n }\n }\n }\n }\n};\nexport {\n ActionTextMixin as A\n};\n//# sourceMappingURL=actionText-BMig9Egt.mjs.map\n","import '../assets/NcActionButton-CwGeOQFe.css';\nimport { m as mdiChevronRight, a as mdiCheck } from \"./mdi-DkJglNiS.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { A as ActionTextMixin } from \"./actionText-BMig9Egt.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"NcActionButton\",\n components: {\n NcIconSvgWrapper\n },\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: \"NcActions:isSemanticMenu\",\n default: false\n }\n },\n props: {\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: null\n },\n /**\n * disabled state of the action button\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * If this is a menu, a chevron icon will\n * be added at the end of the line\n */\n isMenu: {\n type: Boolean,\n default: false\n },\n /**\n * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n * This extends the native HTML button type attribute.\n */\n type: {\n type: String,\n default: \"button\",\n validator: (behavior) => [\"button\", \"checkbox\", \"radio\", \"reset\", \"submit\"].includes(behavior)\n },\n /**\n * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n * For checkbox and toggle button behavior - boolean value.\n * For radio button behavior - could be a boolean checked or a string with the value of the button.\n * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n *\n * **This is not availabe for `type='submit'` or `type='reset'`**\n *\n * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n * For `type='radio'` `null` is equal to `false`\n */\n modelValue: {\n type: [Boolean, String],\n default: null\n },\n /**\n * The value used for the `modelValue` when this component is used with radio behavior\n * Similar to the `value` attribute of ` `\n */\n value: {\n type: String,\n default: null\n },\n /**\n * Small underlying text content of the entry\n */\n description: {\n type: String,\n default: \"\"\n }\n },\n setup() {\n return {\n mdiCheck,\n mdiChevronRight\n };\n },\n computed: {\n /**\n * determines if the action is focusable\n *\n * @return {boolean} is the action focusable ?\n */\n isFocusable() {\n return !this.disabled;\n },\n /**\n * The current \"checked\" or \"pressed\" state for the model behavior\n */\n isChecked() {\n if (this.type === \"radio\" && typeof this.modelValue !== \"boolean\") {\n return this.modelValue === this.value;\n }\n return this.modelValue;\n },\n /**\n * The native HTML type to set on the button\n */\n nativeType() {\n if (this.type === \"submit\" || this.type === \"reset\") {\n return this.type;\n }\n return \"button\";\n },\n /**\n * HTML attributes to bind to the \n */\n buttonAttributes() {\n const attributes = {};\n if (this.isInSemanticMenu) {\n attributes.role = \"menuitem\";\n if (this.type === \"radio\") {\n attributes.role = \"menuitemradio\";\n attributes[\"aria-checked\"] = this.isChecked ? \"true\" : \"false\";\n } else if (this.type === \"checkbox\" || this.nativeType === \"button\" && this.modelValue !== null) {\n attributes.role = \"menuitemcheckbox\";\n attributes[\"aria-checked\"] = this.modelValue === null ? \"mixed\" : this.modelValue ? \"true\" : \"false\";\n }\n } else if (this.modelValue !== null && this.nativeType === \"button\") {\n attributes[\"aria-pressed\"] = this.modelValue ? \"true\" : \"false\";\n }\n return attributes;\n }\n },\n methods: {\n /**\n * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n *\n * @param {MouseEvent} event The click event\n */\n handleClick(event) {\n this.onClick(event);\n if (this.modelValue !== null || this.type !== \"button\") {\n if (this.type === \"radio\") {\n if (typeof this.modelValue !== \"boolean\") {\n if (!this.isChecked) {\n this.$emit(\"update:modelValue\", this.value);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n } else {\n this.$emit(\"update:modelValue\", !this.isChecked);\n }\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"li\", { staticClass: \"action\", class: { \"action--disabled\": _vm.disabled }, attrs: { \"role\": _vm.isInSemanticMenu && \"presentation\" } }, [_c(\"button\", _vm._b({ staticClass: \"action-button button-vue\", class: {\n \"action-button--active\": _vm.isChecked,\n focusable: _vm.isFocusable\n }, attrs: { \"aria-label\": _vm.ariaLabel, \"disabled\": _vm.disabled, \"title\": _vm.title, \"type\": _vm.nativeType }, on: { \"click\": _vm.handleClick } }, \"button\", _vm.buttonAttributes, false), [_vm._t(\"icon\", function() {\n return [_c(\"span\", { staticClass: \"action-button__icon\", class: [_vm.isIconUrl ? \"action-button__icon--url\" : _vm.icon], style: { backgroundImage: _vm.isIconUrl ? `url(${_vm.icon})` : null }, attrs: { \"aria-hidden\": \"true\" } })];\n }), _c(\"span\", { staticClass: \"action-button__longtext-wrapper\" }, [_vm.name ? _c(\"strong\", { staticClass: \"action-button__name\" }, [_vm._v(\" \" + _vm._s(_vm.name) + \" \")]) : _vm._e(), _vm.isLongText ? _c(\"span\", { staticClass: \"action-button__longtext\", domProps: { \"textContent\": _vm._s(_vm.text) } }) : _c(\"span\", { staticClass: \"action-button__text\" }, [_vm._v(\" \" + _vm._s(_vm.text) + \" \")]), _vm.description ? _c(\"span\", { staticClass: \"action-button__description\", domProps: { \"textContent\": _vm._s(_vm.description) } }) : _vm._e()]), _vm.isMenu ? _c(\"NcIconSvgWrapper\", { staticClass: \"action-button__menu-icon\", attrs: { \"directional\": \"\", \"path\": _vm.mdiChevronRight } }) : _vm.isChecked ? _c(\"NcIconSvgWrapper\", { staticClass: \"action-button__pressed-icon\", attrs: { \"path\": _vm.mdiCheck } }) : _vm.isChecked === false ? _c(\"span\", { staticClass: \"action-button__pressed-icon material-design-icon\" }) : _vm._e(), _vm._e()], 2)]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ab2ff78b\"\n);\nconst NcActionButton = __component__.exports;\nexport {\n NcActionButton as N\n};\n//# sourceMappingURL=NcActionButton-D7uypboC.mjs.map\n","function getTrapStack() {\n window._nc_focus_trap ??= [];\n return window._nc_focus_trap;\n}\nfunction createTrapStackController() {\n let pausedStack = [];\n return {\n /**\n * Pause the current focus-trap stack\n */\n pause() {\n pausedStack = [...getTrapStack()];\n for (const trap of pausedStack) {\n trap.pause();\n }\n },\n /**\n * Unpause the paused focus trap stack\n * If the actual stack is different from the paused one, ignore unpause.\n */\n unpause() {\n if (pausedStack.length === getTrapStack().length) {\n for (const trap of pausedStack) {\n trap.unpause();\n }\n }\n pausedStack = [];\n }\n };\n}\nexport {\n createTrapStackController as c,\n getTrapStack as g\n};\n//# sourceMappingURL=focusTrap-HJQ4pqHV.mjs.map\n","import { toValue } from \"@vueuse/core\";\nimport { watch, onUnmounted } from \"vue\";\nimport { c as createTrapStackController } from \"./focusTrap-HJQ4pqHV.mjs\";\nfunction useTrapStackControl(shouldPause, options = {}) {\n const trapStackController = createTrapStackController();\n watch(shouldPause, () => {\n if (toValue(options.disabled)) {\n return;\n }\n if (toValue(shouldPause)) {\n trapStackController.pause();\n } else {\n trapStackController.unpause();\n }\n });\n onUnmounted(() => {\n trapStackController.unpause();\n });\n}\nexport {\n useTrapStackControl as u\n};\n//# sourceMappingURL=useTrapStackControl-BnLfCgGU.mjs.map\n","function getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getBasePlacement(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref) {\n let {\n reference,\n floating,\n placement\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n let coords;\n\n switch (getBasePlacement(placement)) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] = coords[mainAxis] - (reference[length] / 2 - floating[length] / 2);\n break;\n\n case 'end':\n coords[mainAxis] = coords[mainAxis] + (reference[length] / 2 - floating[length] / 2);\n break;\n }\n\n return coords;\n}\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement\n });\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: data != null ? data : {}\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement: statefulPlacement\n }));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nasync function detectOverflow(middlewareArguments, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingParents',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = await platform.getClippingClientRect({\n element: (await platform.isElement(element)) ? element : element.contextElement || (await platform.getDocumentElement({\n element: elements.floating\n })),\n boundary,\n rootBoundary\n });\n const elementClientRect = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n })); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const basePlacement = getBasePlacement(placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions({\n element\n });\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await platform.getOffsetParent({\n element\n });\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects) {\n const isStart = getAlignment(placement) === 'start';\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? isStart ? 'right' : 'left' : isStart ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst basePlacements = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/basePlacements.reduce((acc, basePlacement) => acc.concat(basePlacement, basePlacement + \"-start\", basePlacement + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getBasePlacement(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _middlewareData$autoP5, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$autoP = middlewareData.autoPlacement) != null && _middlewareData$autoP.skip) {\n return {};\n }\n\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP2 = (_middlewareData$autoP3 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP3.index) != null ? _middlewareData$autoP2 : 0;\n const currentPlacement = placements[currentIndex];\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getBasePlacement(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP4 = (_middlewareData$autoP5 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP5.overflows) != null ? _middlewareData$autoP4 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n return {\n data: {\n skip: true\n },\n reset: {\n placement: placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement\n }\n };\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip, _middlewareData$flip2;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement\n } = middlewareArguments;\n\n if ((_middlewareData$flip = middlewareData.flip) != null && _middlewareData$flip.skip) {\n return {};\n }\n\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const basePlacement = getBasePlacement(placement);\n const isBasePlacement = basePlacement === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[basePlacement]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects);\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip3;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip3 = middlewareData.flip) == null ? void 0 : _middlewareData$flip3.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$slice$;\n\n const placement = (_overflowsData$slice$ = overflowsData.slice().sort((a, b) => a.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0) - b.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0))[0]) == null ? void 0 : _overflowsData$slice$.placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return basePlacements.some(side => overflow[side] >= 0);\n}\n\nconst hide = () => ({\n name: 'hide',\n\n async fn(modifierArguments) {\n const referenceOverflow = await detectOverflow(modifierArguments, {\n elementContext: 'reference'\n });\n const floatingAltOverflow = await detectOverflow(modifierArguments, {\n altBoundary: true\n });\n const referenceHiddenOffsets = getSideOffsets(referenceOverflow, modifierArguments.rects.reference);\n const escapedOffsets = getSideOffsets(floatingAltOverflow, modifierArguments.rects.floating);\n const referenceHidden = isAnySideFullyClipped(referenceHiddenOffsets);\n const escaped = isAnySideFullyClipped(escapedOffsets);\n return {\n data: {\n referenceHidden,\n referenceHiddenOffsets,\n escaped,\n escapedOffsets\n }\n };\n }\n\n});\n\nfunction convertValueToCoords(_ref) {\n let {\n placement,\n rects,\n value\n } = _ref;\n const basePlacement = getBasePlacement(placement);\n const multiplier = ['left', 'top'].includes(basePlacement) ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value;\n const {\n mainAxis,\n crossAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawValue\n };\n return getMainAxisFromPlacement(basePlacement) === 'x' ? {\n x: crossAxis,\n y: mainAxis * multiplier\n } : {\n x: mainAxis * multiplier,\n y: crossAxis\n };\n}\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects\n } = middlewareArguments;\n const diffCoords = convertValueToCoords({\n placement,\n rects,\n value\n });\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getBasePlacement(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({ ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getBasePlacement(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$size;\n\n const {\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$size = middlewareData.size) != null && _middlewareData$size.skip) {\n return {};\n }\n\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const basePlacement = getBasePlacement(placement);\n const isEnd = getAlignment(placement) === 'end';\n let heightSide;\n let widthSide;\n\n if (basePlacement === 'top' || basePlacement === 'bottom') {\n heightSide = basePlacement;\n widthSide = isEnd ? 'left' : 'right';\n } else {\n widthSide = basePlacement;\n heightSide = isEnd ? 'top' : 'bottom';\n }\n\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n\n };\n};\n\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$inlin, _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy,\n middlewareData\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n\n if ((_middlewareData$inlin = middlewareData.inline) != null && _middlewareData$inlin.skip) {\n return {};\n }\n\n const fallback = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n }));\n const clientRects = Array.from((_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects({\n element: elements.reference\n }))) != null ? _await$platform$getCl : []);\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getBasePlacement(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n const isLeftPlacement = getBasePlacement(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftPlacement ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n rects: await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n })\n }\n };\n }\n\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n return {\n width: clientRect.width / scaleX,\n height: clientRect.height / scaleY,\n top: clientRect.top / scaleY,\n right: clientRect.right / scaleX,\n bottom: clientRect.bottom / scaleY,\n left: clientRect.left / scaleX,\n x: clientRect.left / scaleX,\n y: clientRect.top / scaleY\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent));\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n if (Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < 0.01) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].includes(getNodeName(node))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\nfunction getScrollParents(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollParent = getScrollParent(node);\n const isBody = scrollParent === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollParent);\n const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getScrollParents(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element) {\n const clientRect = getBoundingClientRect(element);\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingParent(element, clippingParent) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n const clippingParents = getScrollParents(getParentNode(element));\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array\n\n\n return clippingParents.filter(clippingParent => isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingClientRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary\n } = _ref;\n const mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromClippingParent(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingParent(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nconst platform = {\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n convertOffsetParentRelativeRectToViewportRelativeRect: args => convertOffsetParentRelativeRectToViewportRelativeRect(args),\n getOffsetParent: _ref2 => {\n let {\n element\n } = _ref2;\n return getOffsetParent(element);\n },\n isElement: value => isElement(value),\n getDocumentElement: _ref3 => {\n let {\n element\n } = _ref3;\n return getDocumentElement(element);\n },\n getClippingClientRect: args => getClippingClientRect(args),\n getDimensions: _ref4 => {\n let {\n element\n } = _ref4;\n return getDimensions(element);\n },\n getClientRects: _ref5 => {\n let {\n element\n } = _ref5;\n return element.getClientRects();\n }\n};\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\nexport { computePosition, getScrollParents };\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport { offset, autoPlacement, shift, flip, arrow, size, computePosition, getScrollParents } from \"@floating-ui/dom\";\nimport Vue from \"vue\";\nfunction assign(to, from) {\n for (const key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) {\n if (typeof from[key] === \"object\" && to[key]) {\n assign(to[key], from[key]);\n } else {\n to[key] = from[key];\n }\n }\n }\n}\nconst config = {\n disabled: false,\n distance: 5,\n skidding: 0,\n container: \"body\",\n boundary: void 0,\n instantMove: false,\n disposeTimeout: 5e3,\n popperTriggers: [],\n strategy: \"absolute\",\n preventOverflow: true,\n flip: true,\n shift: true,\n overflowPadding: 0,\n arrowPadding: 0,\n arrowOverflow: true,\n themes: {\n tooltip: {\n placement: \"top\",\n triggers: [\"hover\", \"focus\", \"touch\"],\n hideTriggers: (events) => [...events, \"click\"],\n delay: {\n show: 200,\n hide: 0\n },\n handleResize: false,\n html: false,\n loadingContent: \"...\"\n },\n dropdown: {\n placement: \"bottom\",\n triggers: [\"click\"],\n delay: 0,\n handleResize: true,\n autoHide: true\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\", \"focus\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction getDefaultConfig(theme, key) {\n let themeConfig = config.themes[theme] || {};\n let value;\n do {\n value = themeConfig[key];\n if (typeof value === \"undefined\") {\n if (themeConfig.$extend) {\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n value = config[key];\n }\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return value;\n}\nfunction getThemeClasses(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend && !themeConfig.$resetCss) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result.map((c) => `v-popper--theme-${c}`);\n}\nfunction getAllParentThemes(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result;\n}\nvar vueResize = \"\";\nlet supportsPassive = false;\nif (typeof window !== \"undefined\") {\n supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n } catch (e) {\n }\n}\nlet isIOS = false;\nif (typeof window !== \"undefined\" && typeof navigator !== \"undefined\") {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\nconst placements = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((acc, base) => acc.concat([\n base,\n `${base}-start`,\n `${base}-end`\n]), []);\nconst SHOW_EVENT_MAP = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\"\n};\nconst HIDE_EVENT_MAP = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\"\n};\nfunction removeFromArray(array, item) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\nfunction nextFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n }));\n}\nconst shownPoppers = [];\nlet hidingPopper = null;\nconst shownPoppersByTheme = {};\nfunction getShownPoppersByTheme(theme) {\n let list = shownPoppersByTheme[theme];\n if (!list) {\n list = shownPoppersByTheme[theme] = [];\n }\n return list;\n}\nlet Element = function() {\n};\nif (typeof window !== \"undefined\") {\n Element = window.Element;\n}\nfunction defaultPropFactory(prop) {\n return function() {\n const props = this.$props;\n return getDefaultConfig(props.theme, prop);\n };\n}\nconst PROVIDE_KEY = \"__floating-vue__popper\";\nvar PrivatePopper = () => ({\n name: \"VPopper\",\n props: {\n theme: {\n type: String,\n required: true\n },\n targetNodes: {\n type: Function,\n required: true\n },\n referenceNode: {\n type: Function,\n required: true\n },\n popperNode: {\n type: Function,\n required: true\n },\n shown: {\n type: Boolean,\n default: false\n },\n showGroup: {\n type: String,\n default: null\n },\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: defaultPropFactory(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: defaultPropFactory(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: defaultPropFactory(\"placement\"),\n validator: (value) => placements.includes(value)\n },\n delay: {\n type: [String, Number, Object],\n default: defaultPropFactory(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: defaultPropFactory(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: defaultPropFactory(\"skidding\")\n },\n triggers: {\n type: Array,\n default: defaultPropFactory(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: defaultPropFactory(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: defaultPropFactory(\"container\")\n },\n boundary: {\n type: [String, Element],\n default: defaultPropFactory(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (value) => [\"absolute\", \"fixed\"].includes(value),\n default: defaultPropFactory(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: defaultPropFactory(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: defaultPropFactory(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: defaultPropFactory(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: defaultPropFactory(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: defaultPropFactory(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: defaultPropFactory(\"computeTransformOrigin\")\n },\n autoMinSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: defaultPropFactory(\"autoSize\")\n },\n autoMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: defaultPropFactory(\"flip\")\n },\n shift: {\n type: Boolean,\n default: defaultPropFactory(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: defaultPropFactory(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: defaultPropFactory(\"noAutoFocus\")\n }\n },\n provide() {\n return {\n [PROVIDE_KEY]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [PROVIDE_KEY]: { default: null }\n },\n data() {\n return {\n isShown: false,\n isMounted: false,\n skipTransition: false,\n classes: {\n showFrom: false,\n showTo: false,\n hideFrom: false,\n hideTo: true\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n shownChildren: /* @__PURE__ */ new Set(),\n lastAutoHide: true\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide === \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: __spreadProps(__spreadValues({}, this.classes), {\n popperClass: this.popperClass\n }),\n result: this.positioningDisabled ? null : this.result\n };\n },\n parentPopper() {\n var _a;\n return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var _a, _b;\n return ((_a = this.popperTriggers) == null ? void 0 : _a.includes(\"hover\")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes(\"hover\"));\n }\n },\n watch: __spreadValues(__spreadValues({\n shown: \"$_autoShowHide\",\n disabled(value) {\n if (value) {\n this.dispose();\n } else {\n this.init();\n }\n },\n async container() {\n if (this.isShown) {\n this.$_ensureTeleport();\n await this.$_computePosition();\n }\n }\n }, [\n \"triggers\",\n \"positioningDisabled\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_refreshListeners\";\n return acc;\n }, {})), [\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_computePosition\";\n return acc;\n }, {})),\n created() {\n this.$_isDisposed = true;\n this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join(\"_\")}`;\n if (this.autoMinSize) {\n console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.');\n }\n if (this.autoMaxSize) {\n console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n }\n },\n mounted() {\n this.init();\n this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeDestroy() {\n this.dispose();\n },\n methods: {\n show({ event = null, skipDelay = false, force = false } = {}) {\n var _a, _b;\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this)\n return;\n this.$_pendingHide = false;\n if (force || !this.disabled) {\n if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_scheduleShow(event, skipDelay);\n this.$emit(\"show\");\n this.$_showFrameLocked = true;\n requestAnimationFrame(() => {\n this.$_showFrameLocked = false;\n });\n }\n this.$emit(\"update:shown\", true);\n },\n hide({ event = null, skipDelay = false, skipAiming = false } = {}) {\n var _a;\n if (this.$_hideInProgress)\n return;\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n if (!skipAiming && this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n if (this.parentPopper) {\n this.parentPopper.lockedChild = this;\n clearTimeout(this.parentPopper.lockedChildTimer);\n this.parentPopper.lockedChildTimer = setTimeout(() => {\n if (this.parentPopper.lockedChild === this) {\n this.parentPopper.lockedChild.hide({ skipDelay });\n this.parentPopper.lockedChild = null;\n }\n }, 1e3);\n }\n return;\n }\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_pendingHide = false;\n this.$_scheduleHide(event, skipDelay);\n this.$emit(\"hide\");\n this.$emit(\"update:shown\", false);\n },\n init() {\n if (!this.$_isDisposed)\n return;\n this.$_isDisposed = false;\n this.isMounted = false;\n this.$_events = [];\n this.$_preventShow = false;\n this.$_referenceNode = this.referenceNode();\n this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE);\n this.$_popperNode = this.popperNode();\n this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\");\n this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\");\n this.$_swapTargetAttrs(\"title\", \"data-original-title\");\n this.$_detachPopperNode();\n if (this.triggers.length) {\n this.$_addEventListeners();\n }\n if (this.shown) {\n this.show();\n }\n },\n dispose() {\n if (this.$_isDisposed)\n return;\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({ skipDelay: true });\n this.$_detachPopperNode();\n this.isMounted = false;\n this.isShown = false;\n this.$_updateParentShownChildren(false);\n this.$_swapTargetAttrs(\"data-original-title\", \"title\");\n this.$emit(\"dispose\");\n },\n async onResize() {\n if (this.isShown) {\n await this.$_computePosition();\n this.$emit(\"resize\");\n }\n },\n async $_computePosition() {\n var _a;\n if (this.$_isDisposed || this.positioningDisabled)\n return;\n const options2 = {\n strategy: this.strategy,\n middleware: []\n };\n if (this.distance || this.skidding) {\n options2.middleware.push(offset({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n }\n const isPlacementAuto = this.placement.startsWith(\"auto\");\n if (isPlacementAuto) {\n options2.middleware.push(autoPlacement({\n alignment: (_a = this.placement.split(\"-\")[1]) != null ? _a : \"\"\n }));\n } else {\n options2.placement = this.placement;\n }\n if (this.preventOverflow) {\n if (this.shift) {\n options2.middleware.push(shift({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n }));\n }\n if (!isPlacementAuto && this.flip) {\n options2.middleware.push(flip({\n padding: this.overflowPadding,\n boundary: this.boundary\n }));\n }\n }\n options2.middleware.push(arrow({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n }));\n if (this.arrowOverflow) {\n options2.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement, rects, middlewareData }) => {\n let overflow;\n const { centerOffset } = middlewareData.arrow;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n overflow = Math.abs(centerOffset) > rects.reference.width / 2;\n } else {\n overflow = Math.abs(centerOffset) > rects.reference.height / 2;\n }\n return {\n data: {\n overflow\n }\n };\n }\n });\n }\n if (this.autoMinSize || this.autoSize) {\n const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n options2.middleware.push({\n name: \"autoSize\",\n fn: ({ rects, placement, middlewareData }) => {\n var _a2;\n if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) {\n return {};\n }\n let width;\n let height;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n width = rects.reference.width;\n } else {\n height = rects.reference.height;\n }\n this.$_innerNode.style[autoSize === \"min\" ? \"minWidth\" : autoSize === \"max\" ? \"maxWidth\" : \"width\"] = width != null ? `${width}px` : null;\n this.$_innerNode.style[autoSize === \"min\" ? \"minHeight\" : autoSize === \"max\" ? \"maxHeight\" : \"height\"] = height != null ? `${height}px` : null;\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n });\n }\n if (this.autoMaxSize || this.autoBoundaryMaxSize) {\n this.$_innerNode.style.maxWidth = null;\n this.$_innerNode.style.maxHeight = null;\n options2.middleware.push(size({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ width, height }) => {\n this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null;\n this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null;\n }\n }));\n }\n const data = await computePosition(this.$_referenceNode, this.$_popperNode, options2);\n Object.assign(this.result, {\n x: data.x,\n y: data.y,\n placement: data.placement,\n strategy: data.strategy,\n arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)\n });\n },\n $_scheduleShow(event = null, skipDelay = false) {\n this.$_updateParentShownChildren(true);\n this.$_hideInProgress = false;\n clearTimeout(this.$_scheduleTimer);\n if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) {\n hidingPopper.$_applyHide(true);\n this.$_applyShow(true);\n return;\n }\n if (skipDelay) {\n this.$_applyShow();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n }\n },\n $_scheduleHide(event = null, skipDelay = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n this.$_updateParentShownChildren(false);\n this.$_hideInProgress = true;\n clearTimeout(this.$_scheduleTimer);\n if (this.isShown) {\n hidingPopper = this;\n }\n if (skipDelay) {\n this.$_applyHide();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n }\n },\n $_computeDelay(type) {\n const delay = this.delay;\n return parseInt(delay && delay[type] || delay || 0);\n },\n async $_applyShow(skipTransition = false) {\n clearTimeout(this.$_disposeTimer);\n clearTimeout(this.$_scheduleTimer);\n this.skipTransition = skipTransition;\n if (this.isShown) {\n return;\n }\n this.$_ensureTeleport();\n await nextFrame();\n await this.$_computePosition();\n await this.$_applyShowEffect();\n if (!this.positioningDisabled) {\n this.$_registerEventListeners([\n ...getScrollParents(this.$_referenceNode),\n ...getScrollParents(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n });\n }\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const bounds = this.$_referenceNode.getBoundingClientRect();\n const popperWrapper = this.$_popperNode.querySelector(\".v-popper__wrapper\");\n const parentBounds = popperWrapper.parentNode.getBoundingClientRect();\n const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft);\n const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop);\n this.result.transformOrigin = `${x}px ${y}px`;\n }\n this.isShown = true;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const showGroup = this.showGroup;\n if (showGroup) {\n let popover;\n for (let i = 0; i < shownPoppers.length; i++) {\n popover = shownPoppers[i];\n if (popover.showGroup !== showGroup) {\n popover.hide();\n popover.$emit(\"close-group\");\n }\n }\n }\n shownPoppers.push(this);\n document.body.classList.add(\"v-popper--some-open\");\n for (const theme of getAllParentThemes(this.theme)) {\n getShownPoppersByTheme(theme).push(this);\n document.body.classList.add(`v-popper--some-open--${theme}`);\n }\n this.$emit(\"apply-show\");\n this.classes.showFrom = true;\n this.classes.showTo = false;\n this.classes.hideFrom = false;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.showFrom = false;\n this.classes.showTo = true;\n if (!this.noAutoFocus)\n this.$_popperNode.focus();\n },\n async $_applyHide(skipTransition = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n this.$_hideInProgress = false;\n return;\n }\n clearTimeout(this.$_scheduleTimer);\n if (!this.isShown) {\n return;\n }\n this.skipTransition = skipTransition;\n removeFromArray(shownPoppers, this);\n if (shownPoppers.length === 0) {\n document.body.classList.remove(\"v-popper--some-open\");\n }\n for (const theme of getAllParentThemes(this.theme)) {\n const list = getShownPoppersByTheme(theme);\n removeFromArray(list, this);\n if (list.length === 0) {\n document.body.classList.remove(`v-popper--some-open--${theme}`);\n }\n }\n if (hidingPopper === this) {\n hidingPopper = null;\n }\n this.isShown = false;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n });\n clearTimeout(this.$_disposeTimer);\n const disposeTime = getDefaultConfig(this.theme, \"disposeTimeout\");\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(() => {\n if (this.$_popperNode) {\n this.$_detachPopperNode();\n this.isMounted = false;\n }\n }, disposeTime);\n }\n this.$_removeEventListeners(\"scroll\");\n this.$emit(\"apply-hide\");\n this.classes.showFrom = false;\n this.classes.showTo = false;\n this.classes.hideFrom = true;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.hideFrom = false;\n this.classes.hideTo = true;\n },\n $_autoShowHide() {\n if (this.shown) {\n this.show();\n } else {\n this.hide();\n }\n },\n $_ensureTeleport() {\n if (this.$_isDisposed)\n return;\n let container = this.container;\n if (typeof container === \"string\") {\n container = window.document.querySelector(container);\n } else if (container === false) {\n container = this.$_targetNodes[0].parentNode;\n }\n if (!container) {\n throw new Error(\"No container for popover: \" + this.container);\n }\n container.appendChild(this.$_popperNode);\n this.isMounted = true;\n },\n $_addEventListeners() {\n const handleShow = (event) => {\n if (this.isShown && !this.$_hideInProgress) {\n return;\n }\n event.usedByTooltip = true;\n !this.$_preventShow && this.show({ event });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow);\n this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow);\n const handleHide = (skipAiming) => (event) => {\n if (event.usedByTooltip) {\n return;\n }\n this.hide({ event, skipAiming });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide(false));\n this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide(true));\n },\n $_registerEventListeners(targetNodes, eventType, handler) {\n this.$_events.push({ targetNodes, eventType, handler });\n targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? {\n passive: true\n } : void 0));\n },\n $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) {\n let triggers = commonTriggers;\n if (customTrigger != null) {\n triggers = typeof customTrigger === \"function\" ? customTrigger(triggers) : customTrigger;\n }\n triggers.forEach((trigger) => {\n const eventType = eventMap[trigger];\n if (eventType) {\n this.$_registerEventListeners(targetNodes, eventType, handler);\n }\n });\n },\n $_removeEventListeners(filterEventType) {\n const newList = [];\n this.$_events.forEach((listener) => {\n const { targetNodes, eventType, handler } = listener;\n if (!filterEventType || filterEventType === eventType) {\n targetNodes.forEach((node) => node.removeEventListener(eventType, handler));\n } else {\n newList.push(listener);\n }\n });\n this.$_events = newList;\n },\n $_refreshListeners() {\n if (!this.$_isDisposed) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n }\n },\n $_handleGlobalClose(event, touch = false) {\n if (this.$_showFrameLocked)\n return;\n this.hide({ event });\n if (event.closePopover) {\n this.$emit(\"close-directive\");\n } else {\n this.$emit(\"auto-hide\");\n }\n if (touch) {\n this.$_preventShow = true;\n setTimeout(() => {\n this.$_preventShow = false;\n }, 300);\n }\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(attrFrom, attrTo) {\n for (const el of this.$_targetNodes) {\n const value = el.getAttribute(attrFrom);\n if (value) {\n el.removeAttribute(attrFrom);\n el.setAttribute(attrTo, value);\n }\n }\n },\n $_applyAttrsToTarget(attrs) {\n for (const el of this.$_targetNodes) {\n for (const n in attrs) {\n const value = attrs[n];\n if (value == null) {\n el.removeAttribute(n);\n } else {\n el.setAttribute(n, value);\n }\n }\n }\n },\n $_updateParentShownChildren(value) {\n let parent = this.parentPopper;\n while (parent) {\n if (value) {\n parent.shownChildren.add(this.randomId);\n } else {\n parent.shownChildren.delete(this.randomId);\n if (parent.$_pendingHide) {\n parent.hide();\n }\n }\n parent = parent.parentPopper;\n }\n },\n $_isAimingPopper() {\n const referenceBounds = this.$el.getBoundingClientRect();\n if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) {\n const popperBounds = this.$_popperNode.getBoundingClientRect();\n const vectorX = mouseX - mousePreviousX;\n const vectorY = mouseY - mousePreviousY;\n const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY;\n const newVectorLength = distance + popperBounds.width + popperBounds.height;\n const edgeX = mousePreviousX + vectorX * newVectorLength;\n const edgeY = mousePreviousY + vectorY * newVectorLength;\n return lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.left, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.right, popperBounds.top) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.right, popperBounds.top, popperBounds.right, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.bottom, popperBounds.right, popperBounds.bottom);\n }\n return false;\n }\n },\n render() {\n return this.$scopedSlots.default(this.slotData)[0];\n }\n});\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n if (isIOS) {\n document.addEventListener(\"touchstart\", handleGlobalMousedown, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n document.addEventListener(\"touchend\", handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener(\"mousedown\", handleGlobalMousedown, true);\n window.addEventListener(\"click\", handleGlobalClick, true);\n }\n window.addEventListener(\"resize\", computePositionAllShownPoppers);\n}\nfunction handleGlobalMousedown(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n try {\n const popperContent = popper.popperNode();\n popper.$_mouseDownContains = popperContent.contains(event.target);\n } catch (e) {\n }\n }\n}\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\nfunction handleGlobalClose(event, touch = false) {\n const preventClose = {};\n for (let i = shownPoppers.length - 1; i >= 0; i--) {\n const popper = shownPoppers[i];\n try {\n const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event);\n popper.$_pendingHide = false;\n requestAnimationFrame(() => {\n popper.$_pendingHide = false;\n if (preventClose[popper.randomId])\n return;\n if (shouldAutoHide(popper, contains, event)) {\n popper.$_handleGlobalClose(event, touch);\n if (!event.closeAllPopover && event.closePopover && contains) {\n let parent2 = popper.parentPopper;\n while (parent2) {\n preventClose[parent2.randomId] = true;\n parent2 = parent2.parentPopper;\n }\n return;\n }\n let parent = popper.parentPopper;\n while (parent) {\n if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) {\n parent.$_handleGlobalClose(event, touch);\n } else {\n break;\n }\n parent = parent.parentPopper;\n }\n }\n });\n } catch (e) {\n }\n }\n}\nfunction isContainingEventTarget(popper, event) {\n const popperContent = popper.popperNode();\n return popper.$_mouseDownContains || popperContent.contains(event.target);\n}\nfunction shouldAutoHide(popper, contains, event) {\n return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains;\n}\nfunction getAutoHideResult(popper, event) {\n if (typeof popper.autoHide === \"function\") {\n const result = popper.autoHide(event);\n popper.lastAutoHide = result;\n return result;\n }\n return popper.autoHide;\n}\nfunction computePositionAllShownPoppers(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.$_computePosition(event);\n }\n}\nfunction hideAllPoppers() {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.hide();\n }\n}\nlet mousePreviousX = 0;\nlet mousePreviousY = 0;\nlet mouseX = 0;\nlet mouseY = 0;\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"mousemove\", (event) => {\n mousePreviousX = mouseX;\n mousePreviousY = mouseY;\n mouseX = event.clientX;\n mouseY = event.clientY;\n }, supportsPassive ? {\n passive: true\n } : void 0);\n}\nfunction lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) {\n const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;\n}\nfunction getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf(\"MSIE \");\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf(\".\", msie)), 10);\n }\n var trident = ua.indexOf(\"Trident/\");\n if (trident > 0) {\n var rv = ua.indexOf(\"rv:\");\n return parseInt(ua.substring(rv + 3, ua.indexOf(\".\", rv)), 10);\n }\n var edge = ua.indexOf(\"Edge/\");\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf(\".\", edge)), 10);\n }\n return -1;\n}\nvar isIE;\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\nvar script = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n initCompat();\n this.$nextTick(function() {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify);\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify);\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\nfunction normalizeComponent$1(template, style, script2, scopeId, isFunctionalTemplate, moduleIdentifier, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== \"boolean\") {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n }\n var options2 = typeof script2 === \"function\" ? script2.options : script2;\n if (template && template.render) {\n options2.render = template.render;\n options2.staticRenderFns = template.staticRenderFns;\n options2._compiled = true;\n if (isFunctionalTemplate) {\n options2.functional = true;\n }\n }\n if (scopeId) {\n options2._scopeId = scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function hook2(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (style) {\n style.call(this, createInjectorSSR(context));\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function(context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function(context) {\n style.call(this, createInjector(context));\n };\n }\n if (hook) {\n if (options2.functional) {\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return script2;\n}\nvar __vue_script__ = script;\nvar __vue_render__ = function __vue_render__2() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\nvar __vue_inject_styles__ = void 0;\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\nvar __vue_module_identifier__ = void 0;\nvar __vue_is_functional_template__ = false;\nvar __vue_component__ = /* @__PURE__ */ normalizeComponent$1({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, void 0, void 0, void 0);\nfunction install$1(Vue2) {\n Vue2.component(\"resize-observer\", __vue_component__);\n Vue2.component(\"ResizeObserver\", __vue_component__);\n}\nvar plugin$1 = {\n version: \"1.0.1\",\n install: install$1\n};\nvar GlobalVue$1 = null;\nif (typeof window !== \"undefined\") {\n GlobalVue$1 = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue$1 = global.Vue;\n}\nif (GlobalVue$1) {\n GlobalVue$1.use(plugin$1);\n}\nvar PrivateThemeClass = {\n computed: {\n themeClass() {\n return getThemeClasses(this.theme);\n }\n }\n};\nvar __vue2_script$5 = {\n name: \"VPopperContent\",\n components: {\n ResizeObserver: __vue_component__\n },\n mixins: [\n PrivateThemeClass\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n methods: {\n toPx(value) {\n if (value != null && !isNaN(value)) {\n return `${value}px`;\n }\n return null;\n }\n }\n};\nvar render$2 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { ref: \"popover\", staticClass: \"v-popper__popper\", class: [\n _vm.themeClass,\n _vm.classes.popperClass,\n {\n \"v-popper__popper--shown\": _vm.shown,\n \"v-popper__popper--hidden\": !_vm.shown,\n \"v-popper__popper--show-from\": _vm.classes.showFrom,\n \"v-popper__popper--show-to\": _vm.classes.showTo,\n \"v-popper__popper--hide-from\": _vm.classes.hideFrom,\n \"v-popper__popper--hide-to\": _vm.classes.hideTo,\n \"v-popper__popper--skip-transition\": _vm.skipTransition,\n \"v-popper__popper--arrow-overflow\": _vm.result && _vm.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !_vm.result\n }\n ], style: _vm.result ? {\n position: _vm.result.strategy,\n transform: \"translate3d(\" + Math.round(_vm.result.x) + \"px,\" + Math.round(_vm.result.y) + \"px,0)\"\n } : void 0, attrs: { \"id\": _vm.popperId, \"aria-hidden\": _vm.shown ? \"false\" : \"true\", \"tabindex\": _vm.autoHide ? 0 : void 0, \"data-popper-placement\": _vm.result ? _vm.result.placement : void 0 }, on: { \"keyup\": function($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }, [_c(\"div\", { staticClass: \"v-popper__backdrop\", on: { \"click\": function($event) {\n _vm.autoHide && _vm.$emit(\"hide\");\n } } }), _c(\"div\", { staticClass: \"v-popper__wrapper\", style: _vm.result ? {\n transformOrigin: _vm.result.transformOrigin\n } : void 0 }, [_c(\"div\", { ref: \"inner\", staticClass: \"v-popper__inner\" }, [_vm.mounted ? [_c(\"div\", [_vm._t(\"default\")], 2), _vm.handleResize ? _c(\"ResizeObserver\", { on: { \"notify\": function($event) {\n return _vm.$emit(\"resize\", $event);\n } } }) : _vm._e()] : _vm._e()], 2), _c(\"div\", { ref: \"arrow\", staticClass: \"v-popper__arrow-container\", style: _vm.result ? {\n left: _vm.toPx(_vm.result.arrow.x),\n top: _vm.toPx(_vm.result.arrow.y)\n } : void 0 }, [_c(\"div\", { staticClass: \"v-popper__arrow-outer\" }), _c(\"div\", { staticClass: \"v-popper__arrow-inner\" })])])]);\n};\nvar staticRenderFns$2 = [];\nvar PopperContent_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options2 = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options2.render = render2;\n options2.staticRenderFns = staticRenderFns2;\n options2._compiled = true;\n }\n if (functionalTemplate) {\n options2.functional = true;\n }\n if (scopeId) {\n options2._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options2._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options2.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options2.functional) {\n options2._injectStyles = hook;\n var originalRender = options2.render;\n options2.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options2.beforeCreate;\n options2.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options: options2\n };\n}\nconst __cssModules$5 = {};\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$2, staticRenderFns$2, false, __vue2_injectStyles$5, null, null, null);\nfunction __vue2_injectStyles$5(context) {\n for (let o in __cssModules$5) {\n this[o] = __cssModules$5[o];\n }\n}\nvar PrivatePopperContent = /* @__PURE__ */ function() {\n return __component__$5.exports;\n}();\nvar PrivatePopperMethods = {\n methods: {\n show(...args) {\n return this.$refs.popper.show(...args);\n },\n hide(...args) {\n return this.$refs.popper.hide(...args);\n },\n dispose(...args) {\n return this.$refs.popper.dispose(...args);\n },\n onResize(...args) {\n return this.$refs.popper.onResize(...args);\n }\n }\n};\nvar __vue2_script$4 = {\n name: \"VPopperWrapper\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods,\n PrivateThemeClass\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default() {\n return this.$options.vPopperTheme;\n }\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$refs.reference.children).filter((node) => node !== this.$refs.popperContent.$el);\n }\n }\n};\nvar render$1 = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"target-nodes\": _vm.getTargetNodes, \"reference-node\": function() {\n return _vm.$refs.reference;\n }, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var show = ref.show;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"div\", { ref: \"reference\", staticClass: \"v-popper\", class: [\n _vm.themeClass,\n {\n \"v-popper--shown\": isShown\n }\n ] }, [_vm._t(\"default\", null, { \"shown\": isShown, \"show\": show, \"hide\": hide }), _c(\"PopperContent\", { ref: \"popperContent\", attrs: { \"popper-id\": popperId, \"theme\": _vm.theme, \"shown\": isShown, \"mounted\": shouldMountContent, \"skip-transition\": skipTransition, \"auto-hide\": autoHide, \"handle-resize\": handleResize, \"classes\": classes, \"result\": result }, on: { \"hide\": hide, \"resize\": onResize } }, [_vm._t(\"popper\", null, { \"shown\": isShown, \"hide\": hide })], 2)], 2)];\n } }], null, true) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns$1 = [];\nconst __cssModules$4 = {};\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$1, staticRenderFns$1, false, __vue2_injectStyles$4, null, null, null);\nfunction __vue2_injectStyles$4(context) {\n for (let o in __cssModules$4) {\n this[o] = __cssModules$4[o];\n }\n}\nvar PrivatePopperWrapper = /* @__PURE__ */ function() {\n return __component__$4.exports;\n}();\nvar __vue2_script$3 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n});\nvar Dropdown_vue_vue_type_style_index_0_lang = \"\";\nlet __vue2_render$2, __vue2_staticRenderFns$2;\nconst __cssModules$3 = {};\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, __vue2_render$2, __vue2_staticRenderFns$2, false, __vue2_injectStyles$3, null, null, null);\nfunction __vue2_injectStyles$3(context) {\n for (let o in __cssModules$3) {\n this[o] = __cssModules$3[o];\n }\n}\nvar PrivateDropdown = /* @__PURE__ */ function() {\n return __component__$3.exports;\n}();\nvar __vue2_script$2 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n});\nlet __vue2_render$1, __vue2_staticRenderFns$1;\nconst __cssModules$2 = {};\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(__vue2_script$2, __vue2_render$1, __vue2_staticRenderFns$1, false, __vue2_injectStyles$2, null, null, null);\nfunction __vue2_injectStyles$2(context) {\n for (let o in __cssModules$2) {\n this[o] = __cssModules$2[o];\n }\n}\nvar PrivateMenu = /* @__PURE__ */ function() {\n return __component__$2.exports;\n}();\nvar __vue2_script$1 = __spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n});\nvar Tooltip_vue_vue_type_style_index_0_lang = \"\";\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar PrivateTooltip = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar __vue2_script = {\n name: \"VTooltipDirective\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default() {\n return getDefaultConfig(this.theme, \"html\");\n }\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default() {\n return getDefaultConfig(this.theme, \"loadingContent\");\n }\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content === \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n if (this.isContentAsync) {\n return this.loading ? this.loadingContent : this.asyncContent;\n }\n return this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(true);\n },\n immediate: true\n },\n async finalContent(value) {\n await this.$nextTick();\n this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(force) {\n if (typeof this.content === \"function\" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null;\n this.$_loading = true;\n const fetchId = ++this.$_fetchId;\n const result = this.content(this);\n if (result.then) {\n result.then((res) => this.onResult(fetchId, res));\n } else {\n this.onResult(fetchId, result);\n }\n }\n },\n onResult(fetchId, result) {\n if (fetchId !== this.$_fetchId)\n return;\n this.$_loading = false;\n this.asyncContent = result;\n },\n onShow() {\n this.$_isShown = true;\n this.fetchContent();\n },\n onHide() {\n this.$_isShown = false;\n }\n }\n};\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"Popper\", _vm._g(_vm._b({ ref: \"popper\", attrs: { \"theme\": _vm.theme, \"popper-node\": function() {\n return _vm.$refs.popperContent.$el;\n } }, on: { \"apply-show\": _vm.onShow, \"apply-hide\": _vm.onHide }, scopedSlots: _vm._u([{ key: \"default\", fn: function(ref) {\n var popperId = ref.popperId;\n var isShown = ref.isShown;\n var shouldMountContent = ref.shouldMountContent;\n var skipTransition = ref.skipTransition;\n var autoHide = ref.autoHide;\n var hide = ref.hide;\n var handleResize = ref.handleResize;\n var onResize = ref.onResize;\n var classes = ref.classes;\n var result = ref.result;\n return [_c(\"PopperContent\", { ref: \"popperContent\", class: {\n \"v-popper--tooltip-loading\": _vm.loading\n }, attrs: { \"popper-id\": popperId, \"theme\": _vm.theme, \"shown\": isShown, \"mounted\": shouldMountContent, \"skip-transition\": skipTransition, \"auto-hide\": autoHide, \"handle-resize\": handleResize, \"classes\": classes, \"result\": result }, on: { \"hide\": hide, \"resize\": onResize } }, [_vm.html ? _c(\"div\", { domProps: { \"innerHTML\": _vm._s(_vm.finalContent) } }) : _c(\"div\", { domProps: { \"textContent\": _vm._s(_vm.finalContent) } })])];\n } }]) }, \"Popper\", _vm.$attrs, false), _vm.$listeners));\n};\nvar staticRenderFns = [];\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar PrivateTooltipDirective = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nconst TARGET_CLASS = \"v-popper--has-tooltip\";\nfunction getPlacement(options2, modifiers) {\n let result = options2.placement;\n if (!result && modifiers) {\n for (const pos of placements) {\n if (modifiers[pos]) {\n result = pos;\n }\n }\n }\n if (!result) {\n result = getDefaultConfig(options2.theme || \"tooltip\", \"placement\");\n }\n return result;\n}\nfunction getOptions(el, value, modifiers) {\n let options2;\n const type = typeof value;\n if (type === \"string\") {\n options2 = { content: value };\n } else if (value && type === \"object\") {\n options2 = value;\n } else {\n options2 = { content: false };\n }\n options2.placement = getPlacement(options2, modifiers);\n options2.targetNodes = () => [el];\n options2.referenceNode = () => el;\n return options2;\n}\nfunction createTooltip(el, value, modifiers) {\n const options2 = getOptions(el, value, modifiers);\n const tooltipApp = el.$_popper = new Vue({\n mixins: [\n PrivatePopperMethods\n ],\n data() {\n return {\n options: options2\n };\n },\n render(h) {\n const _a = this.options, {\n theme,\n html,\n content,\n loadingContent\n } = _a, otherOptions = __objRest(_a, [\n \"theme\",\n \"html\",\n \"content\",\n \"loadingContent\"\n ]);\n return h(PrivateTooltipDirective, {\n props: {\n theme,\n html,\n content,\n loadingContent\n },\n attrs: otherOptions,\n ref: \"popper\"\n });\n },\n devtools: {\n hide: true\n }\n });\n const mountTarget = document.createElement(\"div\");\n document.body.appendChild(mountTarget);\n tooltipApp.$mount(mountTarget);\n if (el.classList) {\n el.classList.add(TARGET_CLASS);\n }\n return tooltipApp;\n}\nfunction destroyTooltip(el) {\n if (el.$_popper) {\n el.$_popper.$destroy();\n delete el.$_popper;\n delete el.$_popperOldShown;\n }\n if (el.classList) {\n el.classList.remove(TARGET_CLASS);\n }\n}\nfunction bind(el, { value, oldValue, modifiers }) {\n const options2 = getOptions(el, value, modifiers);\n if (!options2.content || getDefaultConfig(options2.theme || \"tooltip\", \"disabled\")) {\n destroyTooltip(el);\n } else {\n let tooltipApp;\n if (el.$_popper) {\n tooltipApp = el.$_popper;\n tooltipApp.options = options2;\n } else {\n tooltipApp = createTooltip(el, value, modifiers);\n }\n if (typeof value.shown !== \"undefined\" && value.shown !== el.$_popperOldShown) {\n el.$_popperOldShown = value.shown;\n value.shown ? tooltipApp.show() : tooltipApp.hide();\n }\n }\n}\nvar PrivateVTooltip = {\n bind,\n update: bind,\n unbind(el) {\n destroyTooltip(el);\n }\n};\nfunction addListeners(el) {\n el.addEventListener(\"click\", onClick);\n el.addEventListener(\"touchstart\", onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\nfunction removeListeners(el) {\n el.removeEventListener(\"click\", onClick);\n el.removeEventListener(\"touchstart\", onTouchStart);\n el.removeEventListener(\"touchend\", onTouchEnd);\n el.removeEventListener(\"touchcancel\", onTouchCancel);\n}\nfunction onClick(event) {\n const el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n const touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener(\"touchend\", onTouchEnd);\n el.addEventListener(\"touchcancel\", onTouchCancel);\n }\n}\nfunction onTouchEnd(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n if (event.changedTouches.length === 1) {\n const touch = event.changedTouches[0];\n const firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\nfunction onTouchCancel(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\nvar PrivateVClosePopper = {\n bind(el, { value, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n }\n },\n update(el, { value, oldValue, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (value !== oldValue) {\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind(el) {\n removeListeners(el);\n }\n};\nconst options = config;\nconst VTooltip = PrivateVTooltip;\nconst VClosePopper = PrivateVClosePopper;\nconst Dropdown = PrivateDropdown;\nconst Menu = PrivateMenu;\nconst Popper = PrivatePopper;\nconst PopperContent = PrivatePopperContent;\nconst PopperMethods = PrivatePopperMethods;\nconst PopperWrapper = PrivatePopperWrapper;\nconst ThemeClass = PrivateThemeClass;\nconst Tooltip = PrivateTooltip;\nconst TooltipDirective = PrivateTooltipDirective;\nfunction install(app, options2 = {}) {\n if (app.$_vTooltipInstalled)\n return;\n app.$_vTooltipInstalled = true;\n assign(config, options2);\n app.directive(\"tooltip\", PrivateVTooltip);\n app.directive(\"close-popper\", PrivateVClosePopper);\n app.component(\"v-tooltip\", PrivateTooltip);\n app.component(\"VTooltip\", PrivateTooltip);\n app.component(\"v-dropdown\", PrivateDropdown);\n app.component(\"VDropdown\", PrivateDropdown);\n app.component(\"v-menu\", PrivateMenu);\n app.component(\"VMenu\", PrivateMenu);\n}\nconst plugin = {\n version: \"1.0.0-beta.19\",\n install,\n options: config\n};\nlet GlobalVue = null;\nif (typeof window !== \"undefined\") {\n GlobalVue = window.Vue;\n} else if (typeof global !== \"undefined\") {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\nexport { Dropdown, HIDE_EVENT_MAP, Menu, Popper, PopperContent, PopperMethods, PopperWrapper, SHOW_EVENT_MAP, ThemeClass, Tooltip, TooltipDirective, VClosePopper, VTooltip, createTooltip, plugin as default, destroyTooltip, hideAllPoppers, install, options, placements };\n","/*!\n* focus-trap 7.8.0\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nimport { tabbable, focusable, isTabbable, getTabIndex, isFocusable } from 'tabbable';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: true\n } : {\n done: false,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = true,\n u = false;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = true, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nvar activeFocusTraps = {\n // Returns the trap from the top of the stack.\n getActiveTrap: function getActiveTrap(trapStack) {\n if ((trapStack === null || trapStack === void 0 ? void 0 : trapStack.length) > 0) {\n return trapStack[trapStack.length - 1];\n }\n return null;\n },\n // Pauses the currently active trap, then adds a new trap to the stack.\n activateTrap: function activateTrap(trapStack, trap) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (trap !== activeTrap) {\n activeFocusTraps.pauseTrap(trapStack);\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n // move this existing trap to the front of the queue\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n // Removes the trap from the top of the stack, then unpauses the next trap down.\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n activeFocusTraps.unpauseTrap(trapStack);\n },\n // Pauses the trap at the top of the stack.\n pauseTrap: function pauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n activeTrap === null || activeTrap === void 0 || activeTrap._setPausedState(true);\n },\n // Unpauses the trap at the top of the stack.\n unpauseTrap: function unpauseTrap(trapStack) {\n var activeTrap = activeFocusTraps.getActiveTrap(trapStack);\n if (activeTrap && !activeTrap._isManuallyPaused()) {\n activeTrap._setPausedState(false);\n }\n }\n};\nvar isSelectableInput = function isSelectableInput(node) {\n return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';\n};\nvar isEscapeEvent = function isEscapeEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Escape' || (e === null || e === void 0 ? void 0 : e.key) === 'Esc' || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === 'Tab' || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\n\n// checks for TAB by default\nvar isKeyForward = function isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\n\n// checks for SHIFT+TAB by default\nvar isKeyBackward = function isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay(fn) {\n return setTimeout(fn, 0);\n};\n\n/**\n * Get an option's value when it could be a plain value, or a handler that provides\n * the value.\n * @param {*} value Option's value to check.\n * @param {...*} [params] Any parameters to pass to the handler, if `value` is a function.\n * @returns {*} The `value`, or the handler's returned value.\n */\nvar valueOrHandler = function valueOrHandler(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === 'function' ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget(event) {\n // NOTE: If the trap is _inside_ a shadow DOM, event.target will always be the\n // shadow host. However, event.target.composedPath() will be an array of\n // nodes \"clicked\" from inner-most (the actual element inside the shadow) to\n // outer-most (the host HTML document). If we have access to composedPath(),\n // then use its first element; otherwise, fall back to event.target (and\n // this only works for an _open_ shadow DOM; otherwise,\n // composedPath()[0] === event.target always).\n return event.target.shadowRoot && typeof event.composedPath === 'function' ? event.composedPath()[0] : event.target;\n};\n\n// NOTE: this must be _outside_ `createFocusTrap()` to make sure all traps in this\n// current instance use the same stack if `userOptions.trapStack` isn't specified\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap(elements, userOptions) {\n // SSR: a live trap shouldn't be created in this type of environment so this\n // should be safe code to execute if the `document` option isn't specified\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isolateSubtrees: false,\n isKeyForward: isKeyForward,\n isKeyBackward: isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n /** @type {Array} */\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n /** @type {Array<{\n * container: HTMLElement,\n * tabbableNodes: Array, // empty if none\n * focusableNodes: Array, // empty if none\n * posTabIndexesFound: boolean,\n * firstTabbableNode: HTMLElement|undefined,\n * lastTabbableNode: HTMLElement|undefined,\n * firstDomTabbableNode: HTMLElement|undefined,\n * lastDomTabbableNode: HTMLElement|undefined,\n * nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n * }>}\n */\n containerGroups: [],\n // same order/length as `containers` list\n\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n // references to nodes that are siblings to the ancestors of this trap's containers.\n /** @type {Set} */\n adjacentElements: new Set(),\n // references to nodes that were inert or aria-hidden before the trap was activated.\n /** @type {Set} */\n alreadySilent: new Set(),\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n manuallyPaused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: undefined,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: undefined\n };\n var trap; // eslint-disable-line prefer-const -- some private functions reference it, and its methods reference private functions, so we must declare here and define later\n\n /**\n * Gets a configuration option value.\n * @param {Object|undefined} configOverrideOptions If true, and option is defined in this set,\n * value will be taken from this object. Otherwise, value will be taken from base configuration.\n * @param {string} optionName Name of the option whose value is sought.\n * @param {string|undefined} [configOptionName] Name of option to use __instead of__ `optionName`\n * IIF `configOverrideOptions` is not defined. Otherwise, `optionName` is used.\n */\n var getOption = function getOption(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== undefined ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n\n /**\n * Finds the index of the container that contains the element.\n * @param {HTMLElement} element\n * @param {Event} [event] If available, and `element` isn't directly found in any container,\n * the event's composed path is used to see if includes any known trap containers in the\n * case where the element is inside a Shadow DOM.\n * @returns {number} Index of the container in either `state.containers` or\n * `state.containerGroups` (the order/length of these lists are the same); -1\n * if the element isn't found.\n */\n var findContainerIndex = function findContainerIndex(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === 'function' ? event.composedPath() : undefined;\n // NOTE: search `containerGroups` because it's possible a group contains no tabbable\n // nodes, but still contains focusable nodes (e.g. if they all have `tabindex=-1`)\n // and we still need to find the element in there\n return state.containerGroups.findIndex(function (_ref) {\n var container = _ref.container,\n tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || (// fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function (node) {\n return node === element;\n });\n });\n };\n\n /**\n * Gets the node for the given option, which is expected to be an option that\n * can be either a DOM node, a string that is a selector to get a node, `false`\n * (if a node is explicitly NOT given), or a function that returns any of these\n * values.\n * @param {string} optionName\n * @param {Object} options\n * @param {boolean} [options.hasFallback] True if the option could be a selector string\n * and the option allows for a fallback scenario in the case where the selector is\n * valid but does not match a node (i.e. the queried node doesn't exist in the DOM).\n * @param {Array} [options.params] Params to pass to the option if it's a function.\n * @returns {undefined | null | false | HTMLElement | SVGElement} Returns\n * `undefined` if the option is not specified; `null` if the option didn't resolve\n * to a node but `options.hasFallback=true`, `false` if the option resolved to `false`\n * (node explicitly not given); otherwise, the resolved DOM node.\n * @throws {Error} If the option is set, not `false`, and is not, or does not\n * resolve to a node, unless the option is a selector string and `options.hasFallback=true`.\n */\n var getNodeForOption = function getNodeForOption(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref2$hasFallback = _ref2.hasFallback,\n hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback,\n _ref2$params = _ref2.params,\n params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === 'function') {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = undefined; // use default value\n }\n if (!optionValue) {\n if (optionValue === undefined || optionValue === false) {\n return optionValue;\n }\n // else, empty string (invalid), null (invalid), 0 (invalid)\n\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue; // could be HTMLElement, SVGElement, or non-empty string at this point\n\n if (typeof optionValue === 'string') {\n try {\n node = doc.querySelector(optionValue); // resolve to node, or null if fails\n } catch (err) {\n throw new Error(\"`\".concat(optionName, \"` appears to be an invalid selector; error=\\\"\").concat(err.message, \"\\\"\"));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n // else, `node` MUST be `null` because that's what `Document.querySelector()` returns\n // if the selector is valid but doesn't match anything\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode() {\n var node = getNodeForOption('initialFocus', {\n hasFallback: true\n });\n\n // false explicitly indicates we want no initialFocus at all\n if (node === false) {\n return false;\n }\n if (node === undefined || node && !isFocusable(node, config.tabbableOptions)) {\n // option not specified nor focusable: use fallback options\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n\n // NOTE: `fallbackFocus` option function cannot return `false` (not supported)\n node = firstTabbableNode || getNodeForOption('fallbackFocus');\n }\n } else if (node === null) {\n // option is a VALID selector string that doesn't yield a node: use the `fallbackFocus`\n // option instead of the default behavior when the option isn't specified at all\n node = getNodeForOption('fallbackFocus');\n }\n if (!node) {\n throw new Error('Your focus-trap needs to have at least one focusable element');\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes() {\n state.containerGroups = state.containers.map(function (container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n\n // NOTE: if we have tabbable nodes, we must have focusable nodes; focusable nodes\n // are a superset of tabbable nodes since nodes with negative `tabindex` attributes\n // are focusable but not tabbable\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : undefined;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : undefined;\n var firstDomTabbableNode = focusableNodes.find(function (node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function (node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function (node) {\n return getTabIndex(node) > 0;\n });\n return {\n container: container,\n tabbableNodes: tabbableNodes,\n focusableNodes: focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound: posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode: firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode: lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode: firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode: lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n // either not tabbable nor focusable, or was focused but not tabbable (negative tabindex):\n // since `node` should at least have been focusable, we assume that's the case and mimic\n // what browsers do, which is set focus to the next node in __document position order__,\n // regardless of positive tabindexes, if any -- and for reasons explained in the NOTE\n // above related to `firstDomTabbable` and `lastDomTabbable` properties, we fall back to\n // basic DOM order\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function (el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function (el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function (group) {\n return group.tabbableNodes.length > 0;\n });\n\n // throw if no groups have tabbable nodes and we don't have a fallback focus node either\n if (state.tabbableGroups.length <= 0 && !getNodeForOption('fallbackFocus') // returning false not supported for this option\n ) {\n throw new Error('Your focus-trap must have at least one container with at least one tabbable node in it at all times');\n }\n\n // NOTE: Positive tabindexes are only properly supported in single-container traps because\n // doing it across multiple containers where tabindexes could be all over the place\n // would require Tabbable to support multiple containers, would require additional\n // specialized Shadow DOM support, and would require Tabbable's multi-container support\n // to look at those containers in document position order rather than user-provided\n // order (as they are treated in Focus-trap, for legacy reasons). See discussion on\n // https://github.com/focus-trap/focus-trap/issues/375 for more details.\n if (state.containerGroups.find(function (g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n\n /**\n * Gets the current activeElement. If it's a web-component and has open shadow-root\n * it will recursively search inside shadow roots for the \"true\" activeElement.\n *\n * @param {Document | ShadowRoot} el\n *\n * @returns {HTMLElement} The element that currently has the focus\n **/\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n // NOTE: focus() API does not trigger focusIn event so set MRU node manually\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode(previousActiveElement) {\n var node = getNodeForOption('setReturnFocus', {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n\n /**\n * Finds the next node (in either direction) where focus should move according to a\n * keyboard focus-in event.\n * @param {Object} params\n * @param {Node} [params.target] Known target __from which__ to navigate, if any.\n * @param {KeyboardEvent|FocusEvent} [params.event] Event to use if `target` isn't known (event\n * will be used to determine the `target`). Ignored if `target` is specified.\n * @param {boolean} [params.isBackward] True if focus should move backward.\n * @returns {Node|undefined} The next node, or `undefined` if a next node couldn't be\n * determined given the current state of the trap.\n */\n var findNextNavNode = function findNextNavNode(_ref3) {\n var target = _ref3.target,\n event = _ref3.event,\n _ref3$isBackward = _ref3.isBackward,\n isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n // make sure the target is actually contained in a group\n // NOTE: the target may also be the container itself if it's focusable\n // with tabIndex='-1' and was given initial focus\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : undefined;\n if (containerIndex < 0) {\n // target not found in any group: quite possible focus has escaped the trap,\n // so bring it back into...\n if (isBackward) {\n // ...the last node in the last group\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n // ...the first node in the first group\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n // REVERSE\n\n // is the target the first tabbable node in a group?\n var startOfGroupIndex = state.tabbableGroups.findIndex(function (_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n // an exception case where the target is either the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle shift+tab as if focus were on the container's\n // first tabbable node, and go to the last tabbable node of the LAST group\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n // YES: then shift+tab should go to the last tabbable node in the\n // previous group (and wrap around to the last tabbable node of\n // the LAST group if it's the first tabbable node of the FIRST group)\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n // FORWARD\n\n // is the target the last tabbable node in a group?\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function (_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n // an exception case where the target is the container itself, or\n // a non-tabbable node that was given focus (i.e. tabindex is negative\n // and user clicked on it or node was programmatically given focus)\n // and is not followed by any other tabbable node, in which\n // case, we should handle tab as if focus were on the container's\n // last tabbable node, and go to the first tabbable node of the FIRST group\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n // YES: then tab should go to the first tabbable node in the next\n // group (and wrap around to the first tabbable node of the FIRST\n // group if it's the last tabbable node of the LAST group)\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n // user must have customized the nav keys so we have to move focus manually _within_\n // the active group: do this based on the order determined by tabbable()\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n // no groups available\n // NOTE: the fallbackFocus option does not support returning false to opt-out\n destinationNode = getNodeForOption('fallbackFocus');\n }\n return destinationNode;\n };\n\n // This needs to be done on mousedown and touchstart instead of click\n // so that it precedes the focus event.\n var checkPointerDown = function checkPointerDown(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n // allow the click since it ocurred inside the trap\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n // immediately deactivate the trap\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n\n // This is needed for mobile devices.\n // (If we'll only let `click` events through,\n // then on mobile they will be blocked anyways if `touchstart` is blocked.)\n if (valueOrHandler(config.allowOutsideClick, e)) {\n // allow the click outside the trap to take place\n return;\n }\n\n // otherwise, prevent the click\n e.preventDefault();\n };\n\n // In case focus escapes the trap for some strange reason, pull it back in.\n // NOTE: the focusIn event is NOT cancelable, so if focus escapes, it may cause unexpected\n // scrolling if the node that got focused was out of view; there's nothing we can do to\n // prevent that from happening by the time we discover that focus escaped\n var checkFocusIn = function checkFocusIn(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n\n // In Firefox when you Tab out of an iframe the Document is briefly focused.\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n // escaped! pull it back in to where it just left\n event.stopImmediatePropagation();\n\n // focus will escape if the MRU node had a positive tab index and user tried to nav forward;\n // it will also escape if the MRU node had a 0 tab index and user tried to nav backward\n // toward a node with a positive tab index\n var nextNode; // next node to focus, if we find one\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n // MRU container index must be >=0 otherwise we wouldn't have it as an MRU node...\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n // there MAY not be any tabbable nodes in the container if there are at least 2 containers\n // and the MRU node is focusable but not tabbable (focus-trap requires at least 1 container\n // with at least one tabbable node in order to function, so this could be the other container\n // with nothing tabbable in it)\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n // MRU tab index MAY not be found if the MRU node is focusable but not tabbable\n var mruTabIdx = tabbableNodes.findIndex(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n // else, don't wrap within the container as focus should move to next/previous\n // container\n }\n // else, don't find in container order without considering direction too\n }\n }\n // else, no tabbable nodes in that container (which means we must have at least one other\n // container with at least one tabbable node in it, otherwise focus-trap would've thrown\n // an error the last time updateTabbableNodes() was run): find next node among all known\n // containers\n } else {\n // check to see if there's at least one tabbable node with a positive tab index inside\n // the trap because focus seems to escape when navigating backward from a tabbable node\n // with tabindex=0 when this is the case (instead of wrapping to the tabbable node with\n // the greatest positive tab index like it should)\n if (!state.containerGroups.some(function (g) {\n return g.tabbableNodes.some(function (n) {\n return getTabIndex(n) > 0;\n });\n })) {\n // no containers with tabbable nodes with positive tab indexes which means the focus\n // escaped for some other reason and we should just execute the fallback to the\n // MRU node or initial focus node, if any\n navAcrossContainers = false;\n }\n }\n } else {\n // no MRU node means we're likely in some initial condition when the trap has just\n // been activated and initial focus hasn't been given yet, in which case we should\n // fall through to trying to focus the initial focus node, which is what should\n // happen below at this point in the logic\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = undefined; // clear\n };\n\n // Hijack key nav events on the first and last focusable nodes of the trap,\n // in order to prevent focus from escaping. If it escapes for even a\n // moment it can end up scrolling the page and causing confusion so we\n // kind of need to capture the action at the keydown phase.\n var checkKeyNav = function checkKeyNav(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event: event,\n isBackward: isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n // since tab natively moves focus, we wouldn't have a destination node unless we\n // were on the edge of a container and had to move to the next/previous edge, in\n // which case we want to prevent default to keep the browser from moving focus\n // to where it normally would\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n // else, let the browser take care of [shift+]tab and move the focus\n };\n var checkTabKey = function checkTabKey(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n\n // we use a different event phase for the Escape key to allow canceling the event and checking for this in escapeDeactivates\n var checkEscapeKey = function checkEscapeKey(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n //\n // EVENT LISTENERS\n //\n\n var addListeners = function addListeners() {\n if (!state.active) {\n return;\n }\n\n // There can be only one listening focus trap at a time\n activeFocusTraps.activateTrap(trapStack, trap);\n\n // Delay ensures that the focused element doesn't capture the event\n // that caused the focus trap activation.\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function () {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener('focusin', checkFocusIn, true);\n doc.addEventListener('mousedown', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('touchstart', checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener('click', checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n /**\n * Traverses up the DOM from each of `containers`, collecting references to\n * the elements that are siblings to `container` or an ancestor of `container`.\n * @param {Array} containers\n */\n var collectAdjacentElements = function collectAdjacentElements(containers) {\n // Re-activate all adjacent elements & clear previous collection.\n if (state.active && !state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.adjacentElements.clear();\n state.alreadySilent.clear();\n\n // Collect all ancestors of all containers to avoid redundant processing.\n var containerAncestors = new Set();\n var adjacentElements = new Set();\n\n // Compile all elements adjacent to the focus trap containers & lineage.\n var _iterator = _createForOfIteratorHelper(containers),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var container = _step.value;\n containerAncestors.add(container);\n var insideShadowRoot = typeof ShadowRoot !== 'undefined' && container.getRootNode() instanceof ShadowRoot;\n var current = container;\n while (current) {\n containerAncestors.add(current);\n var parent = current.parentElement;\n var siblings = [];\n if (parent) {\n siblings = parent.children;\n } else if (!parent && insideShadowRoot) {\n siblings = current.getRootNode().children;\n parent = current.getRootNode().host;\n insideShadowRoot = typeof ShadowRoot !== 'undefined' && parent.getRootNode() instanceof ShadowRoot;\n }\n\n // Add all the children, we'll remove container lineage later.\n var _iterator2 = _createForOfIteratorHelper(siblings),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var child = _step2.value;\n adjacentElements.add(child);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n current = parent;\n }\n }\n\n // Multi-container traps may overlap.\n // Remove elements within container lineages.\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n containerAncestors.forEach(function (el) {\n adjacentElements[\"delete\"](el);\n });\n state.adjacentElements = adjacentElements;\n };\n var removeListeners = function removeListeners() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener('focusin', checkFocusIn, true);\n doc.removeEventListener('mousedown', checkPointerDown, true);\n doc.removeEventListener('touchstart', checkPointerDown, true);\n doc.removeEventListener('click', checkClick, true);\n doc.removeEventListener('keydown', checkTabKey, true);\n doc.removeEventListener('keydown', checkEscapeKey);\n return trap;\n };\n\n //\n // MUTATION OBSERVER\n //\n\n var checkDomRemoval = function checkDomRemoval(mutations) {\n var isFocusedNodeRemoved = mutations.some(function (mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function (node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n\n // If the currently focused is removed then browsers will move focus to the\n // element. If this happens, try to move focus back into the trap.\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n\n // Use MutationObserver - if supported - to detect if focused node is removed\n // from the DOM.\n var mutationObserver = typeof window !== 'undefined' && 'MutationObserver' in window ? new MutationObserver(checkDomRemoval) : undefined;\n var updateObservedNodes = function updateObservedNodes() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function (container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n\n //\n // TRAP DEFINITION\n //\n\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, 'onActivate');\n var onPostActivate = getOption(activateOptions, 'onPostActivate');\n var checkCanFocusTrap = getOption(activateOptions, 'checkCanFocusTrap');\n\n // If a currently-active trap is isolating its subtree, we need to remove\n // that isolation to allow the new trap to find tabbable nodes.\n var preexistingTrap = activeFocusTraps.getActiveTrap(trapStack);\n var revertState = false;\n if (preexistingTrap && !preexistingTrap.paused) {\n var _preexistingTrap$_set;\n // [#1729] method MAY not exist if using `trapStack` option to share stack with older\n // versions of Focus-trap in the same DOM so use optional chaining here just in case\n // since this is a trap we may not have created from this instance of the library\n (_preexistingTrap$_set = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set === void 0 || _preexistingTrap$_set.call(preexistingTrap, false);\n revertState = true;\n }\n try {\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = _getActiveElement(doc);\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n if (config.isolateSubtrees) {\n trap._setSubtreeIsolation(true);\n }\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n } catch (error) {\n // If our activation throws an exception and the stack hasn't changed,\n // we need to re-enable the prior trap's subtree isolation.\n if (preexistingTrap === activeFocusTraps.getActiveTrap(trapStack) && revertState) {\n var _preexistingTrap$_set2;\n // [#1729] method MAY not exist if using `trapStack` option to share stack with older\n // versions of Focus-trap in the same DOM so use optional chaining here just in case\n // since this is a trap we may not have created from this instance of the library\n (_preexistingTrap$_set2 = preexistingTrap._setSubtreeIsolation) === null || _preexistingTrap$_set2 === void 0 || _preexistingTrap$_set2.call(preexistingTrap, true);\n }\n throw error;\n }\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer); // noop if undefined\n state.delayInitialFocusTimer = undefined;\n\n // Prior to removing this trap from the trapStack, we need to remove any applications of `inert`.\n // This allows the next trap down to update its tabbable nodes properly.\n //\n // If this trap is not top of the stack, don't change any current isolation.\n if (!state.paused) {\n trap._setSubtreeIsolation(false);\n }\n state.alreadySilent.clear();\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, 'onDeactivate');\n var onPostDeactivate = getOption(options, 'onPostDeactivate');\n var checkCanReturnFocus = getOption(options, 'checkCanReturnFocus');\n var returnFocus = getOption(options, 'returnFocus', 'returnFocusOnDeactivate');\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation() {\n delay(function () {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = true;\n return this._setPausedState(true, pauseOptions);\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.active) {\n return this;\n }\n state.manuallyPaused = false;\n if (trapStack[trapStack.length - 1] !== this) {\n return this;\n }\n return this._setPausedState(false, unpauseOptions);\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function (element) {\n return typeof element === 'string' ? doc.querySelector(element) : element;\n });\n if (config.isolateSubtrees) {\n collectAdjacentElements(state.containers);\n }\n if (state.active) {\n updateTabbableNodes();\n if (config.isolateSubtrees && !state.paused) {\n trap._setSubtreeIsolation(true);\n }\n }\n updateObservedNodes();\n return this;\n }\n };\n Object.defineProperties(trap, {\n _isManuallyPaused: {\n value: function value() {\n return state.manuallyPaused;\n }\n },\n _setPausedState: {\n value: function value(paused, options) {\n if (state.paused === paused) {\n return this;\n }\n state.paused = paused;\n if (paused) {\n var onPause = getOption(options, 'onPause');\n var onPostPause = getOption(options, 'onPostPause');\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n trap._setSubtreeIsolation(false);\n onPostPause === null || onPostPause === void 0 || onPostPause();\n } else {\n var onUnpause = getOption(options, 'onUnpause');\n var onPostUnpause = getOption(options, 'onPostUnpause');\n onUnpause === null || onUnpause === void 0 || onUnpause();\n trap._setSubtreeIsolation(true);\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n }\n return this;\n }\n },\n _setSubtreeIsolation: {\n value: function value(isEnabled) {\n if (config.isolateSubtrees) {\n state.adjacentElements.forEach(function (el) {\n var _el$getAttribute;\n if (isEnabled) {\n switch (config.isolateSubtrees) {\n case 'aria-hidden':\n // check both attribute and property to ensure initial state is captured\n // correctly across different browsers and test environments (like JSDOM)\n if (el.ariaHidden === 'true' || ((_el$getAttribute = el.getAttribute('aria-hidden')) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.toLowerCase()) === 'true') {\n state.alreadySilent.add(el);\n }\n el.setAttribute('aria-hidden', 'true');\n break;\n default:\n // check both attribute and property to ensure initial state is captured\n // correctly across different browsers and test environments (like JSDOM)\n if (el.inert || el.hasAttribute('inert')) {\n state.alreadySilent.add(el);\n }\n el.setAttribute('inert', true);\n break;\n }\n } else {\n if (state.alreadySilent.has(el)) ; else {\n switch (config.isolateSubtrees) {\n case 'aria-hidden':\n el.removeAttribute('aria-hidden');\n break;\n default:\n el.removeAttribute('inert');\n break;\n }\n }\n }\n });\n }\n }\n }\n });\n\n // initialize container elements\n trap.updateContainerElements(elements);\n return trap;\n};\n\nexport { createFocusTrap };\n//# sourceMappingURL=focus-trap.esm.js.map\n","import '../assets/NcPopover-nBCZ8J9Q.css';\nimport { options, Dropdown } from \"floating-vue\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { tabbable } from \"tabbable\";\nimport Vue, { defineComponent } from \"vue\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-HJQ4pqHV.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nconst _sfc_main$1 = defineComponent({\n name: \"NcPopoverTriggerProvider\",\n provide() {\n return {\n \"NcPopover:trigger:shown\": () => this.shown,\n \"NcPopover:trigger:attrs\": () => this.triggerAttrs\n };\n },\n props: {\n /**\n * Is the popover currently shown\n */\n shown: {\n type: Boolean,\n required: true\n },\n /**\n * ARIA Role of the popup\n */\n popupRole: {\n type: String,\n default: void 0\n }\n },\n computed: {\n triggerAttrs() {\n return {\n \"aria-haspopup\": this.popupRole,\n \"aria-expanded\": this.shown.toString()\n };\n }\n },\n render() {\n return this.$scopedSlots.default?.({\n attrs: this.triggerAttrs\n });\n }\n});\nconst _sfc_render$1 = null;\nconst _sfc_staticRenderFns$1 = null;\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst NcPopoverTriggerProvider = __component__$1.exports;\nconst ncPopover = \"_ncPopover_2xQGD\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_S8GUm\",\n ncPopover\n};\nconst THEME = \"nc-popover-8\";\noptions.themes[THEME] = structuredClone(options.themes.dropdown);\nconst _sfc_main = {\n name: \"NcPopover\",\n components: {\n Dropdown,\n NcPopoverTriggerProvider\n },\n inheritAttrs: false,\n props: {\n /**\n * Show or hide the popper\n *\n * @see https://floating-vue.starpad.dev/api/#shown\n */\n shown: {\n type: Boolean,\n default: false\n },\n /**\n * Popup role\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#values\n */\n popupRole: {\n type: String,\n default: void 0,\n validator: (value) => [\"menu\", \"listbox\", \"tree\", \"grid\", \"dialog\", \"true\"].includes(value)\n },\n /**\n * Class to be applied to the popover base\n */\n popoverBaseClass: {\n type: String,\n default: \"\"\n },\n /**\n * Enable popover focus trap\n *\n * @deprecated use noFocusTrap instead\n */\n focusTrap: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Disable the popover focus trap.\n */\n noFocusTrap: {\n type: Boolean,\n default: false\n },\n /**\n * Set element to return focus to after focus trap deactivation\n *\n * @type {SetReturnFocus}\n */\n setReturnFocus: {\n default: void 0,\n type: [Boolean, HTMLElement, SVGElement, String, Function]\n },\n /**\n * When there is no setReturnFocus, NcPopover will try to return focus to the trigger button.\n * Use this prop to disable this behavior.\n */\n noAutoReturnFocus: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"after-show\",\n \"after-hide\",\n /**\n * @see https://floating-vue.starpad.dev/api/#update-shown\n */\n \"update:shown\"\n ],\n setup() {\n return {\n THEME\n };\n },\n data() {\n return {\n internalShown: this.shown\n };\n },\n watch: {\n shown(value) {\n this.internalShown = value;\n if (this.internalShown) {\n this.checkTriggerA11y();\n }\n },\n internalShown(value) {\n this.$emit(\"update:shown\", value);\n }\n },\n beforeDestroy() {\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n },\n methods: {\n /**\n * Check if the trigger has all required a11y attributes.\n * Important to check custom trigger button.\n */\n checkTriggerA11y() {\n if (window.OC?.debug) {\n const triggerButton = this.getPopoverTriggerButtonElement();\n if (!triggerButton || !triggerButton.hasAttributes(\"aria-expanded\", \"aria-haspopup\")) {\n Vue.util.warn(\"It looks like you are using a custom button as a or other popover #trigger. If you are not using as a trigger, you need to bind attrs from the #trigger slot props to your custom button. See docs for an example.\");\n }\n }\n },\n /**\n * Remove incorrect aria-describedby attribute from the trigger.\n *\n * @see https://github.com/Akryum/floating-vue/blob/8d4f7125aae0e3ea00ba4093d6d2001ab15058f1/packages/floating-vue/src/components/Popper.ts#L734\n */\n removeFloatingVueAriaDescribedBy() {\n const triggerContainer = this.getPopoverTriggerElement();\n const triggerElements = triggerContainer.querySelectorAll(\"[data-popper-shown]\");\n for (const el of triggerElements) {\n el.removeAttribute(\"aria-describedby\");\n }\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverContentElement() {\n return this.$refs.popover?.$refs.popperContent?.$el;\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverTriggerElement() {\n return this.$refs.popover.$refs.reference;\n },\n /**\n * @return {HTMLElement|undefined}\n */\n getPopoverTriggerButtonElement() {\n const triggerContainer = this.getPopoverTriggerElement();\n return triggerContainer && tabbable(triggerContainer)[0];\n },\n /**\n * Add focus trap for accessibility.\n */\n async useFocusTrap() {\n await this.$nextTick();\n if (this.noFocusTrap || !this.focusTrap) {\n return;\n }\n const el = this.getPopoverContentElement();\n el.tabIndex = -1;\n if (!el) {\n return;\n }\n this.$focusTrap = createFocusTrap(el, {\n // Prevents to lose focus using esc key\n // Focus will be release when popover be hide\n escapeDeactivates: false,\n allowOutsideClick: true,\n setReturnFocus: this.setReturnFocus || !this.noAutoReturnFocus && this.getPopoverTriggerButtonElement(),\n trapStack: getTrapStack(),\n fallBackFocus: el\n });\n this.$focusTrap.activate();\n },\n /**\n * Remove focus trap\n *\n * @param {object} options The configuration options for focusTrap\n */\n clearFocusTrap(options2 = {}) {\n try {\n this.$focusTrap?.deactivate(options2);\n this.$focusTrap = null;\n } catch (error) {\n logger.warn(\"Could not clear focus trap\", { error });\n }\n },\n /**\n * Add stopPropagation for Escape.\n * It prevents global Escape handling after closing popover.\n *\n * Manual event handling is used here instead of v-on because there is no direct access to the node.\n * Alternative - wrap in a div wrapper.\n */\n addEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.addEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * Remove stop Escape handler\n */\n clearEscapeStopPropagation() {\n const el = this.getPopoverContentElement();\n el?.removeEventListener(\"keydown\", this.stopKeydownEscapeHandler);\n },\n /**\n * @param {KeyboardEvent} event - native keydown event\n */\n stopKeydownEscapeHandler(event) {\n if (event.type === \"keydown\" && event.key === \"Escape\") {\n event.stopPropagation();\n }\n },\n async afterShow() {\n this.getPopoverContentElement().addEventListener(\"transitionend\", () => {\n this.$emit(\"after-show\");\n }, { once: true, passive: true });\n this.removeFloatingVueAriaDescribedBy();\n await this.$nextTick();\n await this.useFocusTrap();\n this.addEscapeStopPropagation();\n },\n afterHide() {\n this.getPopoverContentElement().addEventListener(\"transitionend\", () => {\n this.$emit(\"after-hide\");\n }, { once: true, passive: true });\n this.clearFocusTrap();\n this.clearEscapeStopPropagation();\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"Dropdown\", _vm._g(_vm._b({ ref: \"popover\", attrs: { \"distance\": 10, \"arrow-padding\": 10, \"no-auto-focus\": true, \"popper-class\": [_vm.$style.ncPopover, _vm.popoverBaseClass], \"theme\": _vm.THEME, \"shown\": _vm.internalShown }, on: { \"update:shown\": function($event) {\n _vm.internalShown = $event;\n }, \"apply-show\": _vm.afterShow, \"apply-hide\": _vm.afterHide }, scopedSlots: _vm._u([{ key: \"popper\", fn: function(slotProps) {\n return [_vm._t(\"default\", null, null, slotProps)];\n } }], null, true) }, \"Dropdown\", _vm.$attrs, false), _vm.$listeners), [_c(\"NcPopoverTriggerProvider\", { attrs: { \"shown\": _vm.internalShown, \"popup-role\": _vm.popupRole }, scopedSlots: _vm._u([{ key: \"default\", fn: function(slotProps) {\n return [_vm._t(\"trigger\", null, null, slotProps)];\n } }], null, true) })], 1);\n};\nvar _sfc_staticRenderFns = [];\nconst __cssModules = {\n \"$style\": style0\n};\nfunction _sfc_injectStyles(ctx) {\n for (var key in __cssModules) {\n this[key] = __cssModules[key];\n }\n}\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n _sfc_injectStyles,\n null\n);\nconst NcPopover = __component__.exports;\nexport {\n NcPopover as N\n};\n//# sourceMappingURL=NcPopover-BaHX3QSG.mjs.map\n","import '../assets/NcActions-CuFJSslC.css';\nimport Vue, { computed } from \"vue\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { u as useTrapStackControl } from \"./useTrapStackControl-BnLfCgGU.mjs\";\nimport { r as register, F as t5, a as t } from \"./_l10n-CAnZaLWU.mjs\";\nimport { G as GenRandomId } from \"./GenRandomId-F5ebeBB_.mjs\";\nimport { N as NcButton } from \"./NcButton-DAGirW_B.mjs\";\nimport { N as NcPopover } from \"./NcPopover-BaHX3QSG.mjs\";\nconst _sfc_main$1 = {\n name: \"DotsHorizontalIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon dots-horizontal-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst DotsHorizontalIcon = __component__$1.exports;\nregister(t5);\nconst focusableSelector = \".focusable\";\nconst _sfc_main = {\n name: \"NcActions\",\n components: {\n NcButton,\n NcPopover\n },\n provide() {\n return {\n /**\n * NcActions can be used as:\n * - Application menu (has menu role)\n * - Expanded block (has no specific role, should be used an element with expanded role)\n * - Popover with plain text or text inputs (has no specific role)\n * Depending on the usage (used items), the menu and its items should have different roles for a11y.\n * Provide the role for NcAction* components in the NcActions content.\n *\n * @type {import('vue').ComputedRef}\n */\n \"NcActions:isSemanticMenu\": computed(() => this.actionsMenuSemanticType === \"menu\")\n };\n },\n props: {\n /**\n * Specify the open state of the popover menu\n */\n open: {\n type: Boolean,\n default: false\n },\n /**\n * This disables the internal open management,\n * so the actions menu only respects the `open` prop.\n * This is e.g. necessary for the NcAvatar component\n * to only open the actions menu after loading it's entries has finished.\n */\n manualOpen: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Force the name to show for single actions\n */\n forceName: {\n type: Boolean,\n default: false\n },\n /**\n * Specify the menu name\n */\n menuName: {\n type: String,\n default: null\n },\n /**\n * NcActions can be used as:\n *\n * - Application menu (has menu role)\n * - Navigation (has no specific role, should be used an element with expanded role)\n * - Popover with plain text or text inputs (has no specific role)\n *\n * By default the used type is automatically detected by components used in the default slot.#\n *\n * With Vue this is limited to direct children of the NcActions component.\n * So if you use a wrapper, you have to provide the semantic type yourself (see Example)\n *\n * Choose:\n *\n * - 'dialog' if you use any of these components: NcActionInput', 'NcActionTextEditable'\n * - 'menu' if you use any of these components: 'NcActionButton', 'NcActionButtonGroup', 'NcActionCheckbox', 'NcActionRadio'\n * - 'expanded' if using one of these: 'NcActionLink', 'NcActionRouter'. This represents an expanded block.\n * - 'tooltip' only to be used when a text without any interactive elements is used.\n * - Leave this property unset otherwise\n */\n forceSemanticType: {\n type: String,\n default: null,\n validator(value) {\n return [\"dialog\", \"menu\", \"expanded\", \"tooltip\"].includes(value);\n }\n },\n /**\n * Apply primary styling for this menu\n */\n primary: {\n type: Boolean,\n default: false\n },\n /**\n * Specifies the button variant used for trigger and single actions buttons.\n *\n * Accepted values: primary, secondary, tertiary, tertiary-no-background, tertiary-on-primary, error, warning, success. If left empty,\n * the default button style will be applied.\n *\n * @deprecated use `variant` instead - will be removed with v9\n */\n type: {\n type: String,\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\", \"tertiary-no-background\", \"tertiary-on-primary\", \"error\", \"warning\", \"success\"].includes(value);\n },\n default: null\n },\n /**\n * Icon to show for the toggle menu button\n * when more than one action is inside the actions component.\n * Only replace the default three-dot icon if really necessary.\n */\n defaultIcon: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions menu.\n *\n * If `menuName` is defined this will not be used to prevent\n * any accessible name conflicts. This ensures that the\n * element can be activated via voice input.\n */\n ariaLabel: {\n type: String,\n default: t(\"Actions\")\n },\n /**\n * @deprecated To be removed in @nextcloud/vue 9. Migration guide: remove ariaHidden prop from NcAction* components.\n * @todo Add a check in @nextcloud/vue 9 that this prop is not provided,\n * otherwise root element will inherit incorrect aria-hidden.\n */\n ariaHidden: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: null\n },\n /**\n * Wanted direction of the menu\n */\n placement: {\n type: String,\n default: \"bottom\"\n },\n /**\n * DOM element for the actions' popover boundaries\n */\n boundariesElement: {\n type: Element,\n default: () => document.querySelector(\"#content-vue\") ?? document.querySelector(\"body\")\n },\n /**\n * Selector for the actions' popover container\n */\n container: {\n type: [Boolean, String, Object, Element],\n default: \"body\"\n },\n /**\n * Disabled state of the main button (single action or menu toggle)\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Display x items inline out of the dropdown menu\n * Will be ignored if `forceMenu` is set\n */\n inline: {\n type: Number,\n default: 0\n },\n /**\n * Specifies the button variant used for trigger and single actions buttons.\n *\n * If left empty, the default button style will be applied.\n *\n * @since 8.24.0\n */\n variant: {\n type: String,\n validator(value) {\n return [\"primary\", \"secondary\", \"tertiary\", \"tertiary-no-background\", \"tertiary-on-primary\", \"error\", \"warning\", \"success\"].includes(value);\n },\n default: null\n },\n /**\n * Specify the size used for trigger and single actions buttons.\n *\n * If left empty, the default button size will be applied.\n */\n size: {\n type: String,\n default: \"normal\",\n validator(value) {\n return [\"small\", \"normal\", \"large\"].includes(value);\n }\n }\n },\n emits: [\n \"click\",\n \"blur\",\n \"focus\",\n \"close\",\n \"closed\",\n \"open\",\n \"opened\",\n \"update:open\"\n ],\n setup() {\n const randomId = `menu-${GenRandomId()}`;\n const triggerRandomId = `trigger-${randomId}`;\n return {\n randomId,\n triggerRandomId\n };\n },\n data() {\n return {\n opened: this.open,\n focusIndex: 0,\n /**\n * @type {'menu'|'expanded'|'dialog'|'tooltip'|'unknown'}\n */\n actionsMenuSemanticType: \"unknown\"\n };\n },\n computed: {\n triggerButtonVariant() {\n return (this.type ?? this.variant) || (this.primary ? \"primary\" : this.menuName ? \"secondary\" : \"tertiary\");\n },\n /**\n * A11y roles and keyboard navigation configuration depending on the semantic type\n */\n config() {\n const configs = {\n menu: {\n popupRole: \"menu\",\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: false,\n triggerA11yAttr: {\n \"aria-controls\": this.opened ? this.randomId : null\n },\n popoverContainerA11yAttrs: {},\n popoverUlA11yAttrs: {\n \"aria-labelledby\": this.triggerRandomId,\n id: this.randomId,\n role: \"menu\"\n }\n },\n expanded: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: false,\n triggerA11yAttr: {},\n popoverContainerA11yAttrs: {},\n popoverUlA11yAttrs: {}\n },\n dialog: {\n popupRole: \"dialog\",\n withArrowNavigation: false,\n withTabNavigation: true,\n withFocusTrap: true,\n triggerA11yAttr: {\n \"aria-controls\": this.opened ? this.randomId : null\n },\n popoverContainerA11yAttrs: {\n id: this.randomId,\n role: \"dialog\",\n // Dialog must have a label\n \"aria-labelledby\": this.triggerRandomId,\n \"aria-modal\": \"true\"\n },\n popoverUlA11yAttrs: {}\n },\n tooltip: {\n popupRole: void 0,\n withArrowNavigation: false,\n withTabNavigation: false,\n withFocusTrap: false,\n triggerA11yAttr: {},\n popoverContainerA11yAttrs: {},\n popoverUlA11yAttrs: {}\n },\n // Due to Vue limitations, we sometimes cannot determine the true type\n // As a fallback use both arrow navigation and focus trap\n unknown: {\n popupRole: void 0,\n role: void 0,\n withArrowNavigation: true,\n withTabNavigation: false,\n withFocusTrap: true,\n triggerA11yAttr: {},\n popoverContainerA11yAttrs: {},\n popoverUlA11yAttrs: {\n // there is nothing against labelling a list, it is mostly recommended\n // so as we do not know the dialog type lets include the label\n \"aria-labelledby\": this.triggerRandomId\n }\n }\n };\n return configs[this.actionsMenuSemanticType];\n }\n },\n watch: {\n // Watch parent prop\n open(state) {\n if (state === this.opened) {\n return;\n }\n this.opened = state;\n },\n opened() {\n if (this.opened) {\n document.body.addEventListener(\"keydown\", this.handleEscapePressed);\n } else {\n document.body.removeEventListener(\"keydown\", this.handleEscapePressed);\n }\n }\n },\n created() {\n useTrapStackControl(() => this.opened, {\n disabled: () => this.config.withFocusTrap\n });\n },\n methods: {\n /**\n * Get the name of the action component\n *\n * @param {import('vue').VNode} action - a vnode with a NcAction* component instance\n * @return {string} the name of the action component\n */\n getActionName(action) {\n return action?.componentOptions?.Ctor?.extendOptions?.name ?? action?.componentOptions?.tag;\n },\n /**\n * Do we have exactly one Action and\n * is it allowed as a standalone element?\n *\n * @param {import('vue').VNode} action The action to check\n * @return {boolean}\n */\n isValidSingleAction(action) {\n return [\"NcActionButton\", \"NcActionLink\", \"NcActionRouter\"].includes(this.getActionName(action));\n },\n /**\n * Check whether a icon prop value is an URL or not\n *\n * @param {string} url The icon prop value\n */\n isIconUrl(url) {\n try {\n return !!new URL(url, url.startsWith(\"/\") ? window.location.origin : void 0);\n } catch {\n return false;\n }\n },\n // MENU STATE MANAGEMENT\n openMenu() {\n if (this.opened) {\n return;\n }\n this.opened = true;\n this.$emit(\"update:open\", true);\n this.$emit(\"open\");\n },\n async closeMenu(returnFocus = true) {\n if (!this.opened) {\n return;\n }\n await this.$nextTick();\n this.opened = false;\n this.$refs.popover?.clearFocusTrap({ returnFocus });\n this.$emit(\"update:open\", false);\n this.$emit(\"close\");\n this.focusIndex = 0;\n if (returnFocus) {\n this.$refs.triggerButton?.$el.focus();\n }\n },\n onClosed() {\n this.$emit(\"closed\");\n },\n /**\n * Called when popover is shown after the show delay\n */\n onOpened() {\n this.$nextTick(() => {\n this.focusFirstAction(null);\n this.resizePopover();\n this.$emit(\"opened\");\n });\n },\n /**\n * Handle resizing the popover to make sure users can discover there is more to scroll\n */\n resizePopover() {\n const inner = this.$refs.menu.closest(\".v-popper__inner\");\n const height = this.$refs.menu.clientHeight;\n const maxMenuHeight = this.getMaxMenuHeight();\n if (height > maxMenuHeight) {\n let currentHeight = 0;\n let actionHeight = 0;\n for (const action of this.$refs.menuList.children) {\n if (currentHeight + action.clientHeight / 2 > maxMenuHeight) {\n inner.style.height = `${currentHeight - actionHeight / 2}px`;\n break;\n }\n actionHeight = action.clientHeight;\n currentHeight += actionHeight;\n }\n } else {\n inner.style.height = \"fit-content\";\n }\n },\n getMaxMenuHeight() {\n const { top, bottom } = this.$refs.triggerButton?.$el.getBoundingClientRect() ?? { top: 0, bottom: 0 };\n const { top: boundaryTop, bottom: boundaryBottom } = this.boundariesElement?.getBoundingClientRect() ?? { top: 0, bottom: window.innerHeight };\n return Math.max(\n // Either expand to the top\n Math.min(\n // max height is the top position of the trigger minus the header height minus the wedge and the padding\n top - 84,\n // and also limited to the space in the boundary\n top - boundaryTop\n ),\n // or expand to the bottom\n Math.min(\n // the max height is the window height minus current position of the trigger minus the wedge and padding\n window.innerHeight - bottom - 34,\n // and limit to the available space in the boundary\n boundaryBottom - bottom\n )\n );\n },\n // MENU KEYS & FOCUS MANAGEMENT\n /**\n * @return {HTMLElement|null}\n */\n getCurrentActiveMenuItemElement() {\n return this.$refs.menu.querySelector(\"li.active\");\n },\n /**\n * @return {NodeList}\n */\n getFocusableMenuItemElements() {\n return this.$refs.menu.querySelectorAll(focusableSelector);\n },\n /**\n * Dispatches the keydown listener to different handlers\n *\n * @param {object} event The keydown event\n */\n onKeydown(event) {\n if (event.key === \"Tab\") {\n if (this.config.withFocusTrap) {\n return;\n }\n if (!this.config.withTabNavigation) {\n this.closeMenu(true);\n return;\n }\n event.preventDefault();\n const focusList = this.getFocusableMenuItemElements();\n const focusIndex = [...focusList].indexOf(document.activeElement);\n if (focusIndex === -1) {\n return;\n }\n const newFocusIndex = event.shiftKey ? focusIndex - 1 : focusIndex + 1;\n if (newFocusIndex < 0 || newFocusIndex === focusList.length) {\n this.closeMenu(true);\n }\n this.focusIndex = newFocusIndex;\n this.focusAction();\n return;\n }\n if (this.config.withArrowNavigation) {\n if (event.key === \"ArrowUp\") {\n this.focusPreviousAction(event);\n }\n if (event.key === \"ArrowDown\") {\n this.focusNextAction(event);\n }\n if (event.key === \"PageUp\") {\n this.focusFirstAction(event);\n }\n if (event.key === \"PageDown\") {\n this.focusLastAction(event);\n }\n }\n this.handleEscapePressed(event);\n },\n onTriggerKeydown(event) {\n if (event.key === \"Escape\") {\n if (this.actionsMenuSemanticType === \"tooltip\") {\n this.closeMenu();\n }\n }\n },\n handleEscapePressed(event) {\n if (event.key === \"Escape\") {\n this.closeMenu();\n event.preventDefault();\n }\n },\n removeCurrentActive() {\n const currentActiveElement = this.$refs.menu.querySelector(\"li.active\");\n if (currentActiveElement) {\n currentActiveElement.classList.remove(\"active\");\n }\n },\n focusAction() {\n const focusElement = this.getFocusableMenuItemElements()[this.focusIndex];\n if (focusElement) {\n this.removeCurrentActive();\n const liMenuParent = focusElement.closest(\"li.action\");\n focusElement.focus();\n if (liMenuParent) {\n liMenuParent.classList.add(\"active\");\n }\n }\n },\n focusPreviousAction(event) {\n if (this.opened) {\n if (this.focusIndex === 0) {\n this.focusLastAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex - 1;\n }\n this.focusAction();\n }\n },\n focusNextAction(event) {\n if (this.opened) {\n const indexLength = this.getFocusableMenuItemElements().length - 1;\n if (this.focusIndex === indexLength) {\n this.focusFirstAction(event);\n } else {\n this.preventIfEvent(event);\n this.focusIndex = this.focusIndex + 1;\n }\n this.focusAction();\n }\n },\n focusFirstAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n const firstCheckedIndex = [...this.getFocusableMenuItemElements()].findIndex((button) => {\n return button.getAttribute(\"aria-checked\") === \"true\" && button.getAttribute(\"role\") === \"menuitemradio\";\n });\n this.focusIndex = firstCheckedIndex > -1 ? firstCheckedIndex : 0;\n this.focusAction();\n }\n },\n focusLastAction(event) {\n if (this.opened) {\n this.preventIfEvent(event);\n this.focusIndex = this.getFocusableMenuItemElements().length - 1;\n this.focusAction();\n }\n },\n preventIfEvent(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n onFocus(event) {\n this.$emit(\"focus\", event);\n },\n onBlur(event) {\n this.$emit(\"blur\", event);\n if (this.actionsMenuSemanticType === \"tooltip\") {\n if (this.$refs.menu && this.getFocusableMenuItemElements().length === 0) {\n this.closeMenu(false);\n }\n }\n },\n onClick(event) {\n this.$emit(\"click\", event);\n }\n },\n /**\n * The render function to display the component\n *\n * @param {Function} h The function to create VNodes\n * @return {object|undefined} The created VNode\n */\n render(h) {\n const actions = (this.$slots.default || []).filter((action) => this.getActionName(action));\n if (actions.length === 0) {\n return;\n }\n let validInlineActions = actions.filter(this.isValidSingleAction);\n if (this.forceMenu && validInlineActions.length > 0 && this.inline > 0) {\n Vue.util.warn(\"Specifying forceMenu will ignore any inline actions rendering.\");\n validInlineActions = [];\n }\n const inlineActions = validInlineActions.slice(0, this.inline);\n const menuActions = actions.filter((action) => !inlineActions.includes(action));\n if (this.forceSemanticType) {\n this.actionsMenuSemanticType = this.forceSemanticType;\n } else {\n const textInputActions = [\"NcActionInput\", \"NcActionTextEditable\"];\n const menuItemsActions = [\"NcActionButton\", \"NcActionButtonGroup\", \"NcActionCheckbox\", \"NcActionRadio\"];\n const linkActions = [\"NcActionLink\", \"NcActionRouter\"];\n const hasTextInputAction = menuActions.some((action) => textInputActions.includes(this.getActionName(action)));\n const hasMenuItemAction = menuActions.some((action) => menuItemsActions.includes(this.getActionName(action)));\n const hasLinkAction = menuActions.some((action) => linkActions.includes(this.getActionName(action)));\n if (hasTextInputAction) {\n this.actionsMenuSemanticType = \"dialog\";\n } else if (hasMenuItemAction) {\n this.actionsMenuSemanticType = \"menu\";\n } else if (hasLinkAction) {\n this.actionsMenuSemanticType = \"expanded\";\n } else {\n const ncActions = actions.filter((action) => this.getActionName(action).startsWith(\"NcAction\"));\n if (ncActions.length === actions.length) {\n this.actionsMenuSemanticType = \"tooltip\";\n } else {\n this.actionsMenuSemanticType = \"unknown\";\n }\n }\n }\n const renderInlineAction = (action) => {\n const iconProp = action?.componentOptions?.propsData?.icon;\n const icon = action?.data?.scopedSlots?.icon()?.[0] ?? (this.isIconUrl(iconProp) ? h(\"img\", { class: \"action-item__menutoggle__icon\", attrs: { src: iconProp, alt: \"\" } }) : h(\"span\", { class: [\"icon\", iconProp] }));\n const attrs = action?.data?.attrs || {};\n const clickListener = action?.componentOptions?.listeners?.click;\n const text = action?.componentOptions?.children?.[0]?.text?.trim?.();\n const ariaLabel = action?.componentOptions?.propsData?.ariaLabel || text;\n const buttonText = this.forceName ? text : \"\";\n let title = action?.componentOptions?.propsData?.title;\n if (!(this.forceName || title)) {\n title = text;\n }\n const propsToForward = { ...action?.componentOptions?.propsData ?? {} };\n const nativeType = [\"submit\", \"reset\"].includes(propsToForward.type) ? propsToForward.modelValue : \"button\";\n delete propsToForward.modelValue;\n delete propsToForward.type;\n return h(\n \"NcButton\",\n {\n class: [\n \"action-item action-item--single\",\n action?.data?.staticClass,\n action?.data?.class\n ],\n attrs: {\n ...attrs,\n \"aria-label\": ariaLabel,\n title\n },\n ref: action?.data?.ref,\n props: {\n ...propsToForward,\n disabled: this.disabled || action?.componentOptions?.propsData?.disabled,\n pressed: action?.componentOptions?.propsData?.modelValue,\n size: this.size,\n type: nativeType,\n // If it has a menuName, we use a secondary button\n variant: (this.type ?? this.variant) || (buttonText ? \"secondary\" : \"tertiary\")\n },\n on: {\n focus: this.onFocus,\n blur: this.onBlur,\n // forward any pressed state from NcButton just like NcActionButton does\n \"update:pressed\": action?.componentOptions?.listeners?.[\"update:modelValue\"] ?? (() => {\n }),\n // If we have a click listener,\n // we bind it to execute on click and forward the click event\n ...!!clickListener && {\n click: (event) => {\n if (clickListener) {\n clickListener(event);\n }\n }\n }\n }\n },\n [\n h(\"template\", { slot: \"icon\" }, [icon]),\n buttonText\n ]\n );\n };\n const renderActionsPopover = (actions2) => {\n const triggerIcon = this.$slots.icon?.[0] || (this.defaultIcon ? h(\"span\", { class: [\"icon\", this.defaultIcon] }) : h(DotsHorizontalIcon, {\n props: {\n size: 20\n }\n }));\n return h(\n \"NcPopover\",\n {\n ref: \"popover\",\n props: {\n delay: 0,\n handleResize: true,\n shown: this.opened,\n placement: this.placement,\n boundary: this.boundariesElement,\n container: this.container,\n popoverBaseClass: \"action-item__popper\",\n popupRole: this.config.popupRole,\n noAutoReturnFocus: !this.withFocusTrap,\n focusTrap: this.config.withFocusTrap\n },\n // For some reason the popover component\n // does not react to props given under the 'props' key,\n // so we use both 'attrs' and 'props'\n attrs: {\n delay: 0,\n handleResize: true,\n shown: this.opened,\n placement: this.placement,\n boundary: this.boundariesElement,\n container: this.container,\n ...this.manualOpen && { triggers: [] }\n },\n on: {\n show: this.openMenu,\n \"after-show\": this.onOpened,\n hide: this.closeMenu,\n \"after-hide\": this.onClosed\n }\n },\n [\n h(\"NcButton\", {\n class: \"action-item__menutoggle\",\n props: {\n size: this.size,\n variant: this.triggerButtonVariant,\n disabled: this.disabled\n },\n slot: \"trigger\",\n ref: \"triggerButton\",\n attrs: {\n id: this.triggerRandomId,\n \"aria-label\": this.menuName ? null : this.ariaLabel,\n ...this.config.triggerA11yAttr\n },\n on: {\n focus: this.onFocus,\n blur: this.onBlur,\n click: this.onClick,\n keydown: this.onTriggerKeydown\n }\n }, [\n h(\"template\", { slot: \"icon\" }, [triggerIcon]),\n this.menuName\n ]),\n h(\"div\", {\n class: {\n open: this.opened\n },\n attrs: {\n tabindex: \"-1\",\n ...this.config.popoverContainerA11yAttrs\n },\n on: {\n keydown: this.onKeydown\n },\n ref: \"menu\"\n }, [\n h(\"ul\", {\n attrs: {\n tabindex: \"-1\",\n ...this.config.popoverUlA11yAttrs\n },\n ref: \"menuList\"\n }, [\n actions2\n ])\n ])\n ]\n );\n };\n if (actions.length === 1 && validInlineActions.length === 1 && !this.forceMenu) {\n return renderInlineAction(actions[0]);\n }\n this.$nextTick(() => {\n if (this.opened && this.$refs.menu) {\n this.resizePopover();\n const isAnyActive = this.$refs.menu.querySelector(\"li.active\") || [];\n if (isAnyActive.length === 0) {\n this.focusFirstAction();\n }\n }\n });\n if (inlineActions.length > 0 && this.inline > 0) {\n return h(\n \"div\",\n {\n class: [\n \"action-items\",\n `action-item--${this.triggerButtonVariant}`\n ]\n },\n [\n // Render inline actions\n ...inlineActions.map(renderInlineAction),\n // render the rest within the popover menu\n menuActions.length > 0 ? h(\n \"div\",\n {\n class: [\n \"action-item\",\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [\n renderActionsPopover(menuActions)\n ]\n ) : null\n ]\n );\n }\n return h(\n \"div\",\n {\n class: [\n \"action-item action-item--default-popover\",\n `action-item--${this.triggerButtonVariant}`,\n {\n \"action-item--open\": this.opened\n }\n ]\n },\n [\n renderActionsPopover(actions)\n ]\n );\n }\n};\nconst _sfc_render = null;\nconst _sfc_staticRenderFns = null;\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"38a26e61\"\n);\nconst NcActions = __component__.exports;\nexport {\n DotsHorizontalIcon as D,\n NcActions as N\n};\n//# sourceMappingURL=NcActions-CX1MSord.mjs.map\n","import { onClickOutside as onClickOutside$1, useActiveElement, useBattery, useBrowserLocation, useClipboard, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useStorage as useStorage$1, isClient as isClient$1, useDraggable, useElementBounding, useElementSize as useElementSize$1, useElementVisibility as useElementVisibility$1, useEyeDropper, useFullscreen, useGeolocation, useIdle, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark as usePreferredDark$1, usePreferredLanguages, usePreferredReducedMotion, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from '@vueuse/core';\nimport { defineComponent, ref, h, watch, computed, reactive, getCurrentInstance, onMounted, isVue2, watchEffect, shallowRef, nextTick, toRefs } from 'vue-demi';\nimport { isClient, toValue, noop, isObject, tryOnScopeDispose, isIOS, directiveHooks, pausableWatch, tryOnMounted, toRef, useToggle, notNullish, promiseTimeout, until, useDebounceFn, useThrottleFn, tryOnUnmounted } from '@vueuse/shared';\n\nconst OnClickOutside = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"OnClickOutside\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = ref();\n onClickOutside$1(target, (e) => {\n emit(\"trigger\", e);\n }, props.options);\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nconst defaultWindow = isClient ? window : void 0;\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return toValue(ignore).some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n function hasMultipleRoots(target2) {\n const vm = toValue(target2);\n return vm && vm.$.subTree.shapeFlag === 16;\n }\n function checkMultipleRoots(target2, event) {\n const vm = toValue(target2);\n const children = vm.$.subTree && vm.$.subTree.children;\n if (children == null || !Array.isArray(children))\n return false;\n return children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n }\n const listener = (event) => {\n const el = unrefElement(target);\n if (event.target == null)\n return;\n if (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event))\n return;\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n let isProcessingClick = false;\n const cleanup = [\n useEventListener(window, \"click\", (event) => {\n if (!isProcessingClick) {\n isProcessingClick = true;\n setTimeout(() => {\n isProcessingClick = false;\n }, 0);\n listener(event);\n }\n }, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nconst vOnClickOutside = {\n [directiveHooks.mounted](el, binding) {\n const capture = !binding.modifiers.bubble;\n if (typeof binding.value === \"function\") {\n el.__onClickOutside_stop = onClickOutside(el, binding.value, { capture });\n } else {\n const [handler, options] = binding.value;\n el.__onClickOutside_stop = onClickOutside(el, handler, Object.assign({ capture }, options));\n }\n },\n [directiveHooks.unmounted](el) {\n el.__onClickOutside_stop();\n }\n};\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\n\nconst vOnKeyStroke = {\n [directiveHooks.mounted](el, binding) {\n var _a, _b;\n const keys = (_b = (_a = binding.arg) == null ? void 0 : _a.split(\",\")) != null ? _b : true;\n if (typeof binding.value === \"function\") {\n onKeyStroke(keys, binding.value, {\n target: el\n });\n } else {\n const [handler, options] = binding.value;\n onKeyStroke(keys, handler, {\n target: el,\n ...options\n });\n }\n }\n};\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nconst OnLongPress = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"OnLongPress\",\n props: [\"as\", \"options\"],\n emits: [\"trigger\"],\n setup(props, { slots, emit }) {\n const target = ref();\n onLongPress(\n target,\n (e) => {\n emit(\"trigger\", e);\n },\n props.options\n );\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default());\n };\n }\n});\n\nconst vOnLongPress = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n onLongPress(el, binding.value, { modifiers: binding.modifiers });\n else\n onLongPress(el, ...binding.value);\n }\n};\n\nconst UseActiveElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseActiveElement\",\n setup(props, { slots }) {\n const data = reactive({\n element: useActiveElement()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBattery = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseBattery\",\n setup(props, { slots }) {\n const data = reactive(useBattery(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseBrowserLocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseBrowserLocation\",\n setup(props, { slots }) {\n const data = reactive(useBrowserLocation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseClipboard = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseClipboard\",\n props: [\n \"source\",\n \"read\",\n \"navigator\",\n \"copiedDuring\",\n \"legacy\"\n ],\n setup(props, { slots }) {\n const data = reactive(useClipboard(props));\n return () => {\n var _a;\n return (_a = slots.default) == null ? void 0 : _a.call(slots, data);\n };\n }\n});\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n const payload = {\n key,\n oldValue,\n newValue,\n storageArea: storage\n };\n window.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, {\n detail: payload\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nconst UseColorMode = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseColorMode\",\n props: [\"selector\", \"attribute\", \"modes\", \"onChanged\", \"storageKey\", \"storage\", \"emitAuto\"],\n setup(props, { slots }) {\n const mode = useColorMode(props);\n const data = reactive({\n mode,\n system: mode.system,\n store: mode.store\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDark\",\n props: [\"selector\", \"attribute\", \"valueDark\", \"valueLight\", \"onChanged\", \"storageKey\", \"storage\"],\n setup(props, { slots }) {\n const isDark = useDark(props);\n const data = reactive({\n isDark,\n toggleDark: useToggle(isDark)\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDeviceMotion\",\n setup(props, { slots }) {\n const data = reactive(useDeviceMotion());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDeviceOrientation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDeviceOrientation\",\n setup(props, { slots }) {\n const data = reactive(useDeviceOrientation());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicePixelRatio = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDevicePixelRatio\",\n setup(props, { slots }) {\n const data = reactive({\n pixelRatio: useDevicePixelRatio()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDevicesList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDevicesList\",\n props: [\"onUpdated\", \"requestPermissions\", \"constraints\"],\n setup(props, { slots }) {\n const data = reactive(useDevicesList(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDocumentVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDocumentVisibility\",\n setup(props, { slots }) {\n const data = reactive({\n visibility: useDocumentVisibility()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseDraggable = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseDraggable\",\n props: [\n \"storageKey\",\n \"storageType\",\n \"initialValue\",\n \"exact\",\n \"preventDefault\",\n \"stopPropagation\",\n \"pointerTypes\",\n \"as\",\n \"handle\",\n \"axis\",\n \"onStart\",\n \"onMove\",\n \"onEnd\",\n \"disabled\",\n \"buttons\",\n \"containerElement\"\n ],\n setup(props, { slots }) {\n const target = ref();\n const handle = computed(() => {\n var _a;\n return (_a = props.handle) != null ? _a : target.value;\n });\n const containerElement = computed(() => {\n var _a;\n return (_a = props.containerElement) != null ? _a : void 0;\n });\n const disabled = computed(() => !!props.disabled);\n const storageValue = props.storageKey && useStorage$1(\n props.storageKey,\n toValue(props.initialValue) || { x: 0, y: 0 },\n isClient$1 ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0\n );\n const initialValue = storageValue || props.initialValue || { x: 0, y: 0 };\n const onEnd = (position, event) => {\n var _a;\n (_a = props.onEnd) == null ? void 0 : _a.call(props, position, event);\n if (!storageValue)\n return;\n storageValue.value.x = position.x;\n storageValue.value.y = position.y;\n };\n const data = reactive(useDraggable(target, {\n ...props,\n handle,\n initialValue,\n onEnd,\n disabled,\n containerElement\n }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target, style: `touch-action:none;${data.style}` }, slots.default(data));\n };\n }\n});\n\nconst UseElementBounding = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementBounding\",\n props: [\"box\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useElementBounding(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nconst vElementHover = {\n [directiveHooks.mounted](el, binding) {\n const value = binding.value;\n if (typeof value === \"function\") {\n const isHovered = useElementHover(el);\n watch(isHovered, (v) => value(v));\n } else {\n const [handler, options] = value;\n const isHovered = useElementHover(el, options);\n watch(isHovered, (v) => handler(v));\n }\n }\n};\n\nconst UseElementSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementSize\",\n props: [\"width\", \"height\", \"box\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useElementSize$1(target, { width: props.width, height: props.height }, { box: props.box }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nconst vElementSize = {\n [directiveHooks.mounted](el, binding) {\n var _a;\n const handler = typeof binding.value === \"function\" ? binding.value : (_a = binding.value) == null ? void 0 : _a[0];\n const options = typeof binding.value === \"function\" ? [] : binding.value.slice(1);\n const { width, height } = useElementSize(el, ...options);\n watch([width, height], ([width2, height2]) => handler({ width: width2, height: height2 }));\n }\n};\n\nconst UseElementVisibility = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseElementVisibility\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive({\n isVisible: useElementVisibility$1(target)\n });\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst vElementVisibility = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const isVisible = useElementVisibility(el);\n watch(isVisible, (v) => handler(v), { immediate: true });\n } else {\n const [handler, options] = binding.value;\n const isVisible = useElementVisibility(el, options);\n watch(isVisible, (v) => handler(v), { immediate: true });\n }\n }\n};\n\nconst UseEyeDropper = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseEyeDropper\",\n props: {\n sRGBHex: String\n },\n setup(props, { slots }) {\n const data = reactive(useEyeDropper());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseFullscreen = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseFullscreen\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useFullscreen(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseGeolocation = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseGeolocation\",\n props: [\"enableHighAccuracy\", \"maximumAge\", \"timeout\", \"navigator\"],\n setup(props, { slots }) {\n const data = reactive(useGeolocation(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseIdle = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseIdle\",\n props: [\"timeout\", \"events\", \"listenForVisibilityChange\", \"initialState\"],\n setup(props, { slots }) {\n const data = reactive(useIdle(props.timeout, props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst UseImage = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseImage\",\n props: [\n \"src\",\n \"srcset\",\n \"sizes\",\n \"as\",\n \"alt\",\n \"class\",\n \"loading\",\n \"crossorigin\",\n \"referrerPolicy\"\n ],\n setup(props, { slots }) {\n const data = reactive(useImage(props));\n return () => {\n if (data.isLoading && slots.loading)\n return slots.loading(data);\n else if (data.error && slots.error)\n return slots.error(data.error);\n if (slots.default)\n return slots.default(data);\n return h(props.as || \"img\", props);\n };\n }\n});\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n const stop = watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n tryOnUnmounted(stop);\n return {\n isLoading,\n reset() {\n nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst vInfiniteScroll = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useInfiniteScroll(el, binding.value);\n else\n useInfiniteScroll(el, ...binding.value);\n }\n};\n\nconst vIntersectionObserver = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useIntersectionObserver(el, binding.value);\n else\n useIntersectionObserver(el, ...binding.value);\n }\n};\n\nconst UseMouse = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMouse\",\n props: [\"touch\", \"resetOnTouchEnds\", \"initialValue\"],\n setup(props, { slots }) {\n const data = reactive(useMouse(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseMouseInElement = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMouseElement\",\n props: [\"handleOutside\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useMouseInElement(target, props));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseMousePressed = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseMousePressed\",\n props: [\"touch\", \"initialValue\", \"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(useMousePressed({ ...props, target }));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UseNetwork = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseNetwork\",\n setup(props, { slots }) {\n const data = reactive(useNetwork());\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseNow = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseNow\",\n props: [\"interval\"],\n setup(props, { slots }) {\n const data = reactive(useNow({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseObjectUrl = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseObjectUrl\",\n props: [\n \"object\"\n ],\n setup(props, { slots }) {\n const object = toRef(props, \"object\");\n const url = useObjectUrl(object);\n return () => {\n if (slots.default && url.value)\n return slots.default(url);\n };\n }\n});\n\nconst UseOffsetPagination = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseOffsetPagination\",\n props: [\n \"total\",\n \"page\",\n \"pageSize\",\n \"onPageChange\",\n \"onPageSizeChange\",\n \"onPageCountChange\"\n ],\n emits: [\n \"page-change\",\n \"page-size-change\",\n \"page-count-change\"\n ],\n setup(props, { slots, emit }) {\n const data = reactive(useOffsetPagination({\n ...props,\n onPageChange(...args) {\n var _a;\n (_a = props.onPageChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-change\", ...args);\n },\n onPageSizeChange(...args) {\n var _a;\n (_a = props.onPageSizeChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-size-change\", ...args);\n },\n onPageCountChange(...args) {\n var _a;\n (_a = props.onPageCountChange) == null ? void 0 : _a.call(props, ...args);\n emit(\"page-count-change\", ...args);\n }\n }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseOnline = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseOnline\",\n setup(props, { slots }) {\n const data = reactive({\n isOnline: useOnline()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePageLeave = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePageLeave\",\n setup(props, { slots }) {\n const data = reactive({\n isLeft: usePageLeave()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePointer = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePointer\",\n props: [\n \"pointerTypes\",\n \"initialValue\",\n \"target\"\n ],\n setup(props, { slots }) {\n const el = ref(null);\n const data = reactive(usePointer({\n ...props,\n target: props.target === \"self\" ? el : defaultWindow\n }));\n return () => {\n if (slots.default)\n return slots.default(data, { ref: el });\n };\n }\n});\n\nconst UsePointerLock = /* #__PURE__ */ defineComponent({\n name: \"UsePointerLock\",\n props: [\"as\"],\n setup(props, { slots }) {\n const target = ref();\n const data = reactive(usePointerLock(target));\n return () => {\n if (slots.default)\n return h(props.as || \"div\", { ref: target }, slots.default(data));\n };\n }\n});\n\nconst UsePreferredColorScheme = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredColorScheme\",\n setup(props, { slots }) {\n const data = reactive({\n colorScheme: usePreferredColorScheme()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredContrast = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredContrast\",\n setup(props, { slots }) {\n const data = reactive({\n contrast: usePreferredContrast()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredDark = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredDark\",\n setup(props, { slots }) {\n const data = reactive({\n prefersDark: usePreferredDark$1()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredLanguages = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredLanguages\",\n setup(props, { slots }) {\n const data = reactive({\n languages: usePreferredLanguages()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UsePreferredReducedMotion = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UsePreferredReducedMotion\",\n setup(props, { slots }) {\n const data = reactive({\n motion: usePreferredReducedMotion()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst vResizeObserver = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\")\n useResizeObserver(el, binding.value);\n else\n useResizeObserver(el, ...binding.value);\n }\n};\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n (_, old) => {\n if (old[0] && old[1])\n old[0].style.removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nconst UseScreenSafeArea = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseScreenSafeArea\",\n props: {\n top: Boolean,\n right: Boolean,\n bottom: Boolean,\n left: Boolean\n },\n setup(props, { slots }) {\n const {\n top,\n right,\n bottom,\n left\n } = useScreenSafeArea();\n return () => {\n if (slots.default) {\n return h(\"div\", {\n style: {\n paddingTop: props.top ? top.value : \"\",\n paddingRight: props.right ? right.value : \"\",\n paddingBottom: props.bottom ? bottom.value : \"\",\n paddingLeft: props.left ? left.value : \"\",\n boxSizing: \"border-box\",\n maxHeight: \"100vh\",\n maxWidth: \"100vw\",\n overflow: \"auto\"\n }\n }, slots.default());\n }\n };\n }\n});\n\nconst vScroll = {\n [directiveHooks.mounted](el, binding) {\n if (typeof binding.value === \"function\") {\n const handler = binding.value;\n const state = useScroll(el, {\n onScroll() {\n handler(state);\n },\n onStop() {\n handler(state);\n }\n });\n } else {\n const [handler, options] = binding.value;\n const state = useScroll(el, {\n ...options,\n onScroll(e) {\n var _a;\n (_a = options.onScroll) == null ? void 0 : _a.call(options, e);\n handler(state);\n },\n onStop(e) {\n var _a;\n (_a = options.onStop) == null ? void 0 : _a.call(options, e);\n handler(state);\n }\n });\n }\n }\n};\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction onScrollLock() {\n let isMounted = false;\n const state = ref(false);\n return (el, binding) => {\n state.value = binding.value;\n if (isMounted)\n return;\n isMounted = true;\n const isLocked = useScrollLock(el, binding.value);\n watch(state, (v) => isLocked.value = v);\n };\n}\nconst vScrollLock = onScrollLock();\n\nconst UseTimeAgo = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseTimeAgo\",\n props: [\"time\", \"updateInterval\", \"max\", \"fullDateFormatter\", \"messages\", \"showSecond\"],\n setup(props, { slots }) {\n const data = reactive(useTimeAgo(() => props.time, { ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseTimestamp = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseTimestamp\",\n props: [\"immediate\", \"interval\", \"offset\"],\n setup(props, { slots }) {\n const data = reactive(useTimestamp({ ...props, controls: true }));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseVirtualList = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseVirtualList\",\n props: [\n \"list\",\n \"options\",\n \"height\"\n ],\n setup(props, { slots, expose }) {\n const { list: listRef } = toRefs(props);\n const { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n expose({ scrollTo });\n if (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style))\n containerProps.style.height = props.height || \"300px\";\n return () => h(\"div\", { ...containerProps }, [\n h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: { overflow: \"hidden\", height: item.height } }, slots.default ? slots.default(item) : \"Please set content!\")))\n ]);\n }\n});\n\nconst UseWindowFocus = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseWindowFocus\",\n setup(props, { slots }) {\n const data = reactive({\n focused: useWindowFocus()\n });\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nconst UseWindowSize = /* @__PURE__ */ /* #__PURE__ */ defineComponent({\n name: \"UseWindowSize\",\n props: [\"initialWidth\", \"initialHeight\"],\n setup(props, { slots }) {\n const data = reactive(useWindowSize(props));\n return () => {\n if (slots.default)\n return slots.default(data);\n };\n }\n});\n\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, vOnClickOutside as VOnClickOutside, vOnLongPress as VOnLongPress, vElementHover, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };\n","function debounce(function_, wait = 100, options = {}) {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError(`Expected the first parameter to be a function, got \\`${typeof function_}\\`.`);\n\t}\n\n\tif (wait < 0) {\n\t\tthrow new RangeError('`wait` must not be negative.');\n\t}\n\n\t// TODO: Deprecate the boolean parameter at some point.\n\tconst {immediate} = typeof options === 'boolean' ? {immediate: options} : options;\n\n\tlet storedContext;\n\tlet storedArguments;\n\tlet timeoutId;\n\tlet timestamp;\n\tlet result;\n\n\tfunction run() {\n\t\tconst callContext = storedContext;\n\t\tconst callArguments = storedArguments;\n\t\tstoredContext = undefined;\n\t\tstoredArguments = undefined;\n\t\tresult = function_.apply(callContext, callArguments);\n\t\treturn result;\n\t}\n\n\tfunction later() {\n\t\tconst last = Date.now() - timestamp;\n\n\t\tif (last < wait && last >= 0) {\n\t\t\ttimeoutId = setTimeout(later, wait - last);\n\t\t} else {\n\t\t\ttimeoutId = undefined;\n\n\t\t\tif (!immediate) {\n\t\t\t\tresult = run();\n\t\t\t}\n\t\t}\n\t}\n\n\tconst debounced = function (...arguments_) {\n\t\tif (\n\t\t\tstoredContext\n\t\t\t&& this !== storedContext\n\t\t\t&& Object.getPrototypeOf(this) === Object.getPrototypeOf(storedContext)\n\t\t) {\n\t\t\tthrow new Error('Debounced method called with different contexts of the same prototype.');\n\t\t}\n\n\t\tstoredContext = this; // eslint-disable-line unicorn/no-this-assignment\n\t\tstoredArguments = arguments_;\n\t\ttimestamp = Date.now();\n\n\t\tconst callNow = immediate && !timeoutId;\n\n\t\tif (!timeoutId) {\n\t\t\ttimeoutId = setTimeout(later, wait);\n\t\t}\n\n\t\tif (callNow) {\n\t\t\tresult = run();\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tObject.defineProperty(debounced, 'isPending', {\n\t\tget() {\n\t\t\treturn timeoutId !== undefined;\n\t\t},\n\t});\n\n\tdebounced.clear = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = undefined;\n\t};\n\n\tdebounced.flush = () => {\n\t\tif (!timeoutId) {\n\t\t\treturn;\n\t\t}\n\n\t\tdebounced.trigger();\n\t};\n\n\tdebounced.trigger = () => {\n\t\tresult = run();\n\n\t\tdebounced.clear();\n\t};\n\n\treturn debounced;\n}\n\n// Adds compatibility for ES modules\nmodule.exports.debounce = debounce;\n\nmodule.exports = debounce;\n","/**\n * @typedef {import('unist').Node} Node\n */\n\n/**\n * @typedef {Array | string} ChildrenOrValue\n * List to use as `children` or value to use as `value`.\n *\n * @typedef {Record} Props\n * Other fields to add to the node.\n */\n\n/**\n * Build a node.\n *\n * @template {string} T\n * @template {Props} P\n * @template {Array} C\n *\n * @overload\n * @param {T} type\n * @returns {{type: T}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @returns {{type: T} & P}\n *\n * @overload\n * @param {T} type\n * @param {string} value\n * @returns {{type: T, value: string}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {string} value\n * @returns {{type: T, value: string} & P}\n *\n * @overload\n * @param {T} type\n * @param {C} children\n * @returns {{type: T, children: C}}\n *\n * @overload\n * @param {T} type\n * @param {P} props\n * @param {C} children\n * @returns {{type: T, children: C} & P}\n *\n * @param {string} type\n * Node type.\n * @param {ChildrenOrValue | Props | null | undefined} [props]\n * Fields assigned to node (default: `undefined`).\n * @param {ChildrenOrValue | null | undefined} [value]\n * Children of node or value of `node` (cast to string).\n * @returns {Node}\n * Built node.\n */\nexport function u(type, props, value) {\n /** @type {Node} */\n const node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n // @ts-expect-error: create a parent.\n node.children = value\n } else if (value !== undefined && value !== null) {\n // @ts-expect-error: create a literal.\n node.value = String(value)\n }\n\n return node\n}\n","/**\n * @import {Node, Parent} from 'unist'\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array | ReadonlyArray | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * ((test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (test))\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propertiesFactory(check) {\n const checkAsRecord = /** @type {Record} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate