diff --git a/css/notifications-admin-settings.css b/css/notifications-admin-settings.css index 6728dd7fd..62d4afb0f 100644 --- a/css/notifications-admin-settings.css +++ b/css/notifications-admin-settings.css @@ -1,4 +1,4 @@ /* extracted by css-entry-points-plugin */ -@import './style-BY2itO4j.chunk.css'; +@import './style-Dt0oxveS.chunk.css'; @import './_plugin-vue2_normalizer-EYSLPReO.chunk.css'; @import './NcSettingsSection-ZV3KIsxm-BIJ64yJW.chunk.css'; \ No newline at end of file diff --git a/css/notifications-main.css b/css/notifications-main.css index 6c9a986dc..92cdec38e 100644 --- a/css/notifications-main.css +++ b/css/notifications-main.css @@ -1,3 +1,3 @@ /* extracted by css-entry-points-plugin */ @import './main-D1MVrAjl.chunk.css'; -@import './style-BY2itO4j.chunk.css'; \ No newline at end of file +@import './style-Dt0oxveS.chunk.css'; \ No newline at end of file diff --git a/css/notifications-settings.css b/css/notifications-settings.css index da626951e..d6ccc1b0e 100644 --- a/css/notifications-settings.css +++ b/css/notifications-settings.css @@ -1,6 +1,6 @@ /* extracted by css-entry-points-plugin */ @import './settings-ia6c5FHm.chunk.css'; -@import './style-BY2itO4j.chunk.css'; +@import './style-Dt0oxveS.chunk.css'; @import './_plugin-vue2_normalizer-EYSLPReO.chunk.css'; @import './BrowserStorage-jF09mp25.chunk.css'; @import './NcSettingsSection-ZV3KIsxm-BIJ64yJW.chunk.css'; \ No newline at end of file diff --git a/css/style-BY2itO4j.chunk.css b/css/style-Dt0oxveS.chunk.css similarity index 87% rename from css/style-BY2itO4j.chunk.css rename to css/style-Dt0oxveS.chunk.css index a647c1970..e5e32570d 100644 --- a/css/style-BY2itO4j.chunk.css +++ b/css/style-Dt0oxveS.chunk.css @@ -7,4 +7,4 @@ */._file-picker__file-icon_3v9zx_9{position:relative;width:32px;height:32px;min-width:32px;min-height:32px;background-repeat:no-repeat;background-size:contain;display:flex;justify-content:center}._file-picker__file-icon--primary_3v9zx_21{color:var(--color-primary-element)}._file-picker__file-icon-overlay_3v9zx_25{color:var(--color-primary-element-text);position:absolute;inset-block-start:10px}tr.file-picker__row[data-v-15187afc]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-15187afc]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-15187afc]{padding:0 2px}tr.file-picker__row td[data-v-15187afc]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-15187afc]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-15187afc]{padding-inline:2px 0}@keyframes gradient-15187afc{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.loading-row .row-checkbox[data-v-15187afc]{text-align:center!important}.loading-row span[data-v-15187afc]{display:inline-block;height:24px;background:linear-gradient(to right,var(--color-background-darker),var(--color-text-maxcontrast),var(--color-background-darker));background-size:600px 100%;border-radius:var(--border-radius);animation:gradient-15187afc 12s ease infinite}.loading-row .row-wrapper[data-v-15187afc]{display:inline-flex;align-items:center}.loading-row .row-checkbox span[data-v-15187afc]{width:24px}.loading-row .row-name span[data-v-15187afc]:last-of-type{margin-inline-start:6px;width:130px}.loading-row .row-size span[data-v-15187afc]{width:80px}.loading-row .row-modified span[data-v-15187afc]{width:90px}/*! * SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later -*/tr.file-picker__row[data-v-ba4db9f8]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-ba4db9f8]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-ba4db9f8]{padding:0 2px}tr.file-picker__row td[data-v-ba4db9f8]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-ba4db9f8]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-ba4db9f8]{padding-inline:2px 0}.file-picker__row *[data-v-ba4db9f8]{cursor:pointer}.file-picker__row--selected[data-v-ba4db9f8]{background-color:var(--color-background-dark)}.file-picker__row--not-navigatable[data-v-ba4db9f8]{filter:saturate(.7);opacity:.7}.file-picker__row--not-navigatable *[data-v-ba4db9f8],.file-picker__row--not-pickable *[data-v-ba4db9f8]{cursor:default!important}.file-picker__row[data-v-ba4db9f8]:hover{background-color:var(--color-background-hover)}.file-picker__name-container[data-v-ba4db9f8]{display:flex;justify-content:start;align-items:center;height:100%}.file-picker__file-name[data-v-ba4db9f8]{padding-inline-start:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.file-picker__file-extension[data-v-ba4db9f8]{color:var(--color-text-maxcontrast);min-width:fit-content}.file-picker__header-preview[data-v-6503afab]{width:22px;height:32px;flex:0 0 auto}.file-picker__files[data-v-6503afab]{margin:2px;margin-inline-start:12px;overflow:scroll auto}.file-picker__files table[data-v-6503afab]{width:100%;max-height:100%;table-layout:fixed}.file-picker__files th[data-v-6503afab]{position:sticky;z-index:1;top:0;background-color:var(--color-main-background);padding:2px}.file-picker__files th .header-wrapper[data-v-6503afab]{display:flex}.file-picker__files th.row-checkbox[data-v-6503afab]{width:44px}.file-picker__files th.row-name[data-v-6503afab]{width:230px}.file-picker__files th.row-size[data-v-6503afab]{width:100px}.file-picker__files th.row-modified[data-v-6503afab]{width:120px}.file-picker__files th[data-v-6503afab]:not(.row-size) .button-vue__wrapper{justify-content:start;flex-direction:row-reverse}.file-picker__files th[data-v-6503afab]:not(.row-size) .button-vue{padding-inline:16px 4px}.file-picker__files th.row-size[data-v-6503afab] .button-vue__wrapper{justify-content:end}.file-picker__files th[data-v-6503afab] .button-vue__wrapper{color:var(--color-text-maxcontrast)}.file-picker__files th[data-v-6503afab] .button-vue__wrapper .button-vue__text{font-weight:400}.file-picker__breadcrumbs[data-v-ec4d392b]{flex-grow:0!important}.file-picker__side[data-v-f5975252]{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-width:200px;padding:2px;margin-block-start:7px;overflow:auto}.file-picker__side[data-v-f5975252] .button-vue__wrapper{justify-content:start}.file-picker__filter-input[data-v-f5975252]{margin-block:7px;max-width:260px}@media (max-width: 736px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}}@media (max-width: 512px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}.file-picker__filter-input[data-v-f5975252]{max-width:unset}}.file-picker__navigation{padding-inline:8px 2px}.file-picker__navigation,.file-picker__navigation *{box-sizing:border-box}.file-picker__navigation .v-select.select{min-width:220px}@media (min-width: 513px) and (max-width: 736px){.file-picker__navigation{gap:11px}}@media (max-width: 512px){.file-picker__navigation{flex-direction:column-reverse!important}}.file-picker__view[data-v-dda9b42b]{height:50px;display:flex;justify-content:start;align-items:center}.file-picker__view h3[data-v-dda9b42b]{font-weight:700;height:fit-content;margin:0}.file-picker__main[data-v-dda9b42b]{box-sizing:border-box;width:100%;display:flex;flex-direction:column;min-height:0;flex:1;padding-inline:2px}.file-picker__main *[data-v-dda9b42b]{box-sizing:border-box}[data-v-dda9b42b] .file-picker{height:min(80vh,800px)!important}@media (max-width: 512px){[data-v-dda9b42b] .file-picker{height:calc(100% - 16px - var(--default-clickable-area))!important}}[data-v-dda9b42b] .file-picker__content{display:flex;flex-direction:column;overflow:hidden}.public-auth-prompt__text[data-v-414f7090]{font-size:1.25em;margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-414f7090]{margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-414f7090]:first-child{margin-top:0}.public-auth-prompt__input[data-v-414f7090]{margin-block:calc(4 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline))} +*/tr.file-picker__row[data-v-82f380c9]{height:var(--row-height, 50px)}tr.file-picker__row td[data-v-82f380c9]{cursor:pointer;overflow:hidden;text-overflow:ellipsis;border-bottom:none}tr.file-picker__row td.row-checkbox[data-v-82f380c9]{padding:0 2px}tr.file-picker__row td[data-v-82f380c9]:not(.row-checkbox){padding-inline:14px 0}tr.file-picker__row td.row-size[data-v-82f380c9]{text-align:end;padding-inline:0 14px}tr.file-picker__row td.row-name[data-v-82f380c9]{padding-inline:2px 0}.file-picker__row *[data-v-82f380c9]{cursor:pointer}.file-picker__row--selected[data-v-82f380c9]{background-color:var(--color-background-dark)}.file-picker__row--not-navigatable[data-v-82f380c9]{filter:saturate(.7);opacity:.7}.file-picker__row--not-navigatable *[data-v-82f380c9],.file-picker__row--not-pickable *[data-v-82f380c9]{cursor:default!important}.file-picker__row[data-v-82f380c9]:hover{background-color:var(--color-background-hover)}.file-picker__name-container[data-v-82f380c9]{display:flex;justify-content:start;align-items:center;height:100%}.file-picker__file-name[data-v-82f380c9]{padding-inline-start:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.file-picker__file-extension[data-v-82f380c9]{color:var(--color-text-maxcontrast);min-width:fit-content}.file-picker__header-preview[data-v-6503afab]{width:22px;height:32px;flex:0 0 auto}.file-picker__files[data-v-6503afab]{margin:2px;margin-inline-start:12px;overflow:scroll auto}.file-picker__files table[data-v-6503afab]{width:100%;max-height:100%;table-layout:fixed}.file-picker__files th[data-v-6503afab]{position:sticky;z-index:1;top:0;background-color:var(--color-main-background);padding:2px}.file-picker__files th .header-wrapper[data-v-6503afab]{display:flex}.file-picker__files th.row-checkbox[data-v-6503afab]{width:44px}.file-picker__files th.row-name[data-v-6503afab]{width:230px}.file-picker__files th.row-size[data-v-6503afab]{width:100px}.file-picker__files th.row-modified[data-v-6503afab]{width:120px}.file-picker__files th[data-v-6503afab]:not(.row-size) .button-vue__wrapper{justify-content:start;flex-direction:row-reverse}.file-picker__files th[data-v-6503afab]:not(.row-size) .button-vue{padding-inline:16px 4px}.file-picker__files th.row-size[data-v-6503afab] .button-vue__wrapper{justify-content:end}.file-picker__files th[data-v-6503afab] .button-vue__wrapper{color:var(--color-text-maxcontrast)}.file-picker__files th[data-v-6503afab] .button-vue__wrapper .button-vue__text{font-weight:400}.file-picker__breadcrumbs[data-v-1a8cb0b2]{flex-grow:0!important}.file-picker__side[data-v-f5975252]{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;min-width:200px;padding:2px;margin-block-start:7px;overflow:auto}.file-picker__side[data-v-f5975252] .button-vue__wrapper{justify-content:start}.file-picker__filter-input[data-v-f5975252]{margin-block:7px;max-width:260px}@media (max-width: 736px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}}@media (max-width: 512px){.file-picker__side[data-v-f5975252]{flex-direction:row;min-width:unset}.file-picker__filter-input[data-v-f5975252]{max-width:unset}}.file-picker__navigation{padding-inline:8px 2px}.file-picker__navigation,.file-picker__navigation *{box-sizing:border-box}.file-picker__navigation .v-select.select{min-width:220px}@media (min-width: 513px) and (max-width: 736px){.file-picker__navigation{gap:11px}}@media (max-width: 512px){.file-picker__navigation{flex-direction:column-reverse!important}}.file-picker__view[data-v-dda9b42b]{height:50px;display:flex;justify-content:start;align-items:center}.file-picker__view h3[data-v-dda9b42b]{font-weight:700;height:fit-content;margin:0}.file-picker__main[data-v-dda9b42b]{box-sizing:border-box;width:100%;display:flex;flex-direction:column;min-height:0;flex:1;padding-inline:2px}.file-picker__main *[data-v-dda9b42b]{box-sizing:border-box}[data-v-dda9b42b] .file-picker{height:min(80vh,800px)!important}@media (max-width: 512px){[data-v-dda9b42b] .file-picker{height:calc(100% - 16px - var(--default-clickable-area))!important}}[data-v-dda9b42b] .file-picker__content{display:flex;flex-direction:column;overflow:hidden}.public-auth-prompt__text[data-v-a2f36bdb]{font-size:1.25em;margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-a2f36bdb]{margin-block:0 calc(3 * var(--default-grid-baseline))}.public-auth-prompt__header[data-v-a2f36bdb]:first-child{margin-top:0}.public-auth-prompt__input[data-v-a2f36bdb]{margin-block:calc(4 * var(--default-grid-baseline)) calc(2 * var(--default-grid-baseline))} diff --git a/js/BrowserStorage-BnOkYuQ2.chunk.mjs b/js/BrowserStorage-BKI4wjcl.chunk.mjs similarity index 99% rename from js/BrowserStorage-BnOkYuQ2.chunk.mjs rename to js/BrowserStorage-BKI4wjcl.chunk.mjs index d467c688c..49626f426 100644 --- a/js/BrowserStorage-BnOkYuQ2.chunk.mjs +++ b/js/BrowserStorage-BKI4wjcl.chunk.mjs @@ -1,5 +1,5 @@ /*! third party licenses: js/vendor.LICENSE.txt */ -import{a as it,b as Kt,c as Gt,i as vn,w as lt,V as Ft}from"./style-DPuY9j_m.chunk.mjs";import{b as U,a0 as bn,F as Q,a1 as wn,a2 as Sn,a3 as ne,a4 as dt,a5 as jt,a6 as xn,a7 as _n,a8 as Cn,a9 as Ue,aa as ie,ab as On,f as gt,e as Ln,r as ct,ac as An,d as k,ad as Fe,ae as kn,af as Tn,c as Xt,g as je,i as X,J as Zt,ag as In,D as Bn,ah as Mn,I as Rt,ai as Re,h as Pn,aj as Nn,ak as Dn,_ as Bt,$ as Mt,al as En,am as $n,G as se,u as Vn,an as Un}from"./_plugin-vue2_normalizer-wSru7mT6.chunk.mjs";const mt=Math.min,Z=Math.max,yt=Math.round,pt=Math.floor,F=t=>({x:t,y:t}),Fn={left:"right",right:"left",bottom:"top",top:"bottom"},jn={start:"end",end:"start"};function oe(t,e,n){return Z(t,mt(e,n))}function et(t,e){return typeof t=="function"?t(e):t}function W(t){return t.split("-")[0]}function _t(t){return t.split("-")[1]}function Yt(t){return t==="x"?"y":"x"}function qe(t){return t==="y"?"height":"width"}const Rn=new Set(["top","bottom"]);function q(t){return Rn.has(W(t))?"y":"x"}function ze(t){return Yt(q(t))}function qn(t,e,n){n===void 0&&(n=!1);const i=_t(t),r=ze(t),a=qe(r);let l=r==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[a]>e.floating[a]&&(l=vt(l)),[l,vt(l)]}function zn(t){const e=vt(t);return[qt(t),e,qt(e)]}function qt(t){return t.replace(/start|end/g,e=>jn[e])}const re=["left","right"],ae=["right","left"],Wn=["top","bottom"],Hn=["bottom","top"];function Kn(t,e,n){switch(t){case"top":case"bottom":return n?e?ae:re:e?re:ae;case"left":case"right":return e?Wn:Hn;default:return[]}}function Gn(t,e,n,i){const r=_t(t);let a=Kn(W(t),n==="start",i);return r&&(a=a.map(l=>l+"-"+r),e&&(a=a.concat(a.map(qt)))),a}function vt(t){return t.replace(/left|right|bottom|top/g,e=>Fn[e])}function Xn(t){return{top:0,right:0,bottom:0,left:0,...t}}function Zn(t){return typeof t!="number"?Xn(t):{top:t,right:t,bottom:t,left:t}}function bt(t){const{x:e,y:n,width:i,height:r}=t;return{width:i,height:r,top:n,left:e,right:e+i,bottom:n+r,x:e,y:n}}function le(t,e,n){let{reference:i,floating:r}=t;const a=q(e),l=ze(e),o=qe(l),d=W(e),c=a==="y",u=i.x+i.width/2-r.width/2,h=i.y+i.height/2-r.height/2,p=i[o]/2-r[o]/2;let f;switch(d){case"top":f={x:u,y:i.y-r.height};break;case"bottom":f={x:u,y:i.y+i.height};break;case"right":f={x:i.x+i.width,y:h};break;case"left":f={x:i.x-r.width,y:h};break;default:f={x:i.x,y:i.y}}switch(_t(e)){case"start":f[l]-=p*(n&&c?-1:1);break;case"end":f[l]+=p*(n&&c?-1:1);break}return f}const Yn=async(t,e,n)=>{const{placement:i="bottom",strategy:r="absolute",middleware:a=[],platform:l}=n,o=a.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(e));let c=await l.getElementRects({reference:t,floating:e,strategy:r}),{x:u,y:h}=le(c,i,d),p=i,f={},m=0;for(let y=0;yC<=0)){var g,v;const C=(((g=a.flip)==null?void 0:g.index)||0)+1,O=z[C];if(O&&(!(h==="alignment"&&_!==q(O))||s.every(D=>q(D.placement)===_?D.overflows[0]>0:!0)))return{data:{index:C,overflows:s},reset:{placement:O}};let P=(v=s.filter(D=>D.overflows[0]<=0).sort((D,E)=>D.overflows[1]-E.overflows[1])[0])==null?void 0:v.placement;if(!P)switch(f){case"bestFit":{var b;const D=(b=s.filter(E=>{if(T){const B=q(E.placement);return B===_||B==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(B=>B>0).reduce((B,It)=>B+It,0)]).sort((E,B)=>E[1]-B[1])[0])==null?void 0:b[0];D&&(P=D);break}case"initialPlacement":P=o;break}if(r!==P)return{reset:{placement:P}}}return{}}}},He=new Set(["left","top"]);async function Qn(t,e){const{placement:n,platform:i,elements:r}=t,a=await(i.isRTL==null?void 0:i.isRTL(r.floating)),l=W(n),o=_t(n),d=q(n)==="y",c=He.has(l)?-1:1,u=a&&d?-1:1,h=et(e,t);let{mainAxis:p,crossAxis:f,alignmentAxis:m}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return o&&typeof m=="number"&&(f=o==="end"?m*-1:m),d?{x:f*u,y:p*c}:{x:p*c,y:f*u}}const ti=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:r,y:a,placement:l,middlewareData:o}=e,d=await Qn(e,t);return l===((n=o.offset)==null?void 0:n.placement)&&(i=o.arrow)!=null&&i.alignmentOffset?{}:{x:r+d.x,y:a+d.y,data:{...d,placement:l}}}}},ei=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:r}=e,{mainAxis:a=!0,crossAxis:l=!1,limiter:o={fn:w=>{let{x:S,y:_}=w;return{x:S,y:_}}},...d}=et(t,e),c={x:n,y:i},u=await We(e,d),h=q(W(r)),p=Yt(h);let f=c[p],m=c[h];if(a){const w=p==="y"?"top":"left",S=p==="y"?"bottom":"right",_=f+u[w],x=f-u[S];f=oe(_,f,x)}if(l){const w=h==="y"?"top":"left",S=h==="y"?"bottom":"right",_=m+u[w],x=m-u[S];m=oe(_,m,x)}const y=o.fn({...e,[p]:f,[h]:m});return{...y,data:{x:y.x-n,y:y.y-i,enabled:{[p]:a,[h]:l}}}}}},ni=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:i,placement:r,rects:a,middlewareData:l}=e,{offset:o=0,mainAxis:d=!0,crossAxis:c=!0}=et(t,e),u={x:n,y:i},h=q(r),p=Yt(h);let f=u[p],m=u[h];const y=et(o,e),w=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(d){const x=p==="y"?"height":"width",A=a.reference[p]-a.floating[x]+w.mainAxis,L=a.reference[p]+a.reference[x]-w.mainAxis;fL&&(f=L)}if(c){var S,_;const x=p==="y"?"width":"height",A=He.has(W(r)),L=a.reference[h]-a.floating[x]+(A&&((S=l.offset)==null?void 0:S[h])||0)+(A?0:w.crossAxis),T=a.reference[h]+a.reference[x]+(A?0:((_=l.offset)==null?void 0:_[h])||0)-(A?w.crossAxis:0);mT&&(m=T)}return{[p]:f,[h]:m}}}};function Ct(){return typeof window<"u"}function st(t){return Ke(t)?(t.nodeName||"").toLowerCase():"#document"}function N(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function R(t){var e;return(e=(Ke(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Ke(t){return Ct()?t instanceof Node||t instanceof N(t).Node:!1}function $(t){return Ct()?t instanceof Element||t instanceof N(t).Element:!1}function j(t){return Ct()?t instanceof HTMLElement||t instanceof N(t).HTMLElement:!1}function ce(t){return!Ct()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof N(t).ShadowRoot}const ii=new Set(["inline","contents"]);function ht(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=V(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!ii.has(r)}const si=new Set(["table","td","th"]);function oi(t){return si.has(st(t))}const ri=[":popover-open",":modal"];function Ot(t){return ri.some(e=>{try{return t.matches(e)}catch{return!1}})}const ai=["transform","translate","scale","rotate","perspective"],li=["transform","translate","scale","rotate","perspective","filter"],ci=["paint","layout","strict","content"];function Jt(t){const e=Qt(),n=$(t)?V(t):t;return ai.some(i=>n[i]?n[i]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||li.some(i=>(n.willChange||"").includes(i))||ci.some(i=>(n.contain||"").includes(i))}function ui(t){let e=H(t);for(;j(e)&&!nt(e);){if(Jt(e))return e;if(Ot(e))return null;e=H(e)}return null}function Qt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const hi=new Set(["html","body","#document"]);function nt(t){return hi.has(st(t))}function V(t){return N(t).getComputedStyle(t)}function Lt(t){return $(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function H(t){if(st(t)==="html")return t;const e=t.assignedSlot||t.parentNode||ce(t)&&t.host||R(t);return ce(e)?e.host:e}function Ge(t){const e=H(t);return nt(e)?t.ownerDocument?t.ownerDocument.body:t.body:j(e)&&ht(e)?e:Ge(e)}function ut(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Ge(t),a=r===((i=t.ownerDocument)==null?void 0:i.body),l=N(r);if(a){const o=zt(l);return e.concat(l,l.visualViewport||[],ht(r)?r:[],o&&n?ut(o):[])}return e.concat(r,ut(r,[],n))}function zt(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Xe(t){const e=V(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const r=j(t),a=r?t.offsetWidth:n,l=r?t.offsetHeight:i,o=yt(n)!==a||yt(i)!==l;return o&&(n=a,i=l),{width:n,height:i,$:o}}function te(t){return $(t)?t:t.contextElement}function tt(t){const e=te(t);if(!j(e))return F(1);const n=e.getBoundingClientRect(),{width:i,height:r,$:a}=Xe(e);let l=(a?yt(n.width):n.width)/i,o=(a?yt(n.height):n.height)/r;return(!l||!Number.isFinite(l))&&(l=1),(!o||!Number.isFinite(o))&&(o=1),{x:l,y:o}}const pi=F(0);function Ze(t){const e=N(t);return!Qt()||!e.visualViewport?pi:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function di(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==N(t)?!1:e}function Y(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=te(t);let l=F(1);e&&(i?$(i)&&(l=tt(i)):l=tt(t));const o=di(a,n,i)?Ze(a):F(0);let d=(r.left+o.x)/l.x,c=(r.top+o.y)/l.y,u=r.width/l.x,h=r.height/l.y;if(a){const p=N(a),f=i&&$(i)?N(i):i;let m=p,y=zt(m);for(;y&&i&&f!==m;){const w=tt(y),S=y.getBoundingClientRect(),_=V(y),x=S.left+(y.clientLeft+parseFloat(_.paddingLeft))*w.x,A=S.top+(y.clientTop+parseFloat(_.paddingTop))*w.y;d*=w.x,c*=w.y,u*=w.x,h*=w.y,d+=x,c+=A,m=N(y),y=zt(m)}}return bt({width:u,height:h,x:d,y:c})}function At(t,e){const n=Lt(t).scrollLeft;return e?e.left+n:Y(R(t)).left+n}function Ye(t,e){const n=t.getBoundingClientRect(),i=n.left+e.scrollLeft-At(t,n),r=n.top+e.scrollTop;return{x:i,y:r}}function fi(t){let{elements:e,rect:n,offsetParent:i,strategy:r}=t;const a=r==="fixed",l=R(i),o=e?Ot(e.floating):!1;if(i===l||o&&a)return n;let d={scrollLeft:0,scrollTop:0},c=F(1);const u=F(0),h=j(i);if((h||!h&&!a)&&((st(i)!=="body"||ht(l))&&(d=Lt(i)),j(i))){const f=Y(i);c=tt(i),u.x=f.x+i.clientLeft,u.y=f.y+i.clientTop}const p=l&&!h&&!a?Ye(l,d):F(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-d.scrollLeft*c.x+u.x+p.x,y:n.y*c.y-d.scrollTop*c.y+u.y+p.y}}function gi(t){return Array.from(t.getClientRects())}function mi(t){const e=R(t),n=Lt(t),i=t.ownerDocument.body,r=Z(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),a=Z(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let l=-n.scrollLeft+At(t);const o=-n.scrollTop;return V(i).direction==="rtl"&&(l+=Z(e.clientWidth,i.clientWidth)-r),{width:r,height:a,x:l,y:o}}const ue=25;function yi(t,e){const n=N(t),i=R(t),r=n.visualViewport;let a=i.clientWidth,l=i.clientHeight,o=0,d=0;if(r){a=r.width,l=r.height;const u=Qt();(!u||u&&e==="fixed")&&(o=r.offsetLeft,d=r.offsetTop)}const c=At(i);if(c<=0){const u=i.ownerDocument,h=u.body,p=getComputedStyle(h),f=u.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,m=Math.abs(i.clientWidth-h.clientWidth-f);m<=ue&&(a-=m)}else c<=ue&&(a+=c);return{width:a,height:l,x:o,y:d}}const vi=new Set(["absolute","fixed"]);function bi(t,e){const n=Y(t,!0,e==="fixed"),i=n.top+t.clientTop,r=n.left+t.clientLeft,a=j(t)?tt(t):F(1),l=t.clientWidth*a.x,o=t.clientHeight*a.y,d=r*a.x,c=i*a.y;return{width:l,height:o,x:d,y:c}}function he(t,e,n){let i;if(e==="viewport")i=yi(t,n);else if(e==="document")i=mi(R(t));else if($(e))i=bi(e,n);else{const r=Ze(t);i={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return bt(i)}function Je(t,e){const n=H(t);return n===e||!$(n)||nt(n)?!1:V(n).position==="fixed"||Je(n,e)}function wi(t,e){const n=e.get(t);if(n)return n;let i=ut(t,[],!1).filter(o=>$(o)&&st(o)!=="body"),r=null;const a=V(t).position==="fixed";let l=a?H(t):t;for(;$(l)&&!nt(l);){const o=V(l),d=Jt(l);!d&&o.position==="fixed"&&(r=null),(a?!d&&!r:!d&&o.position==="static"&&r&&vi.has(r.position)||ht(l)&&!d&&Je(t,l))?i=i.filter(c=>c!==l):r=o,l=H(l)}return e.set(t,i),i}function Si(t){let{element:e,boundary:n,rootBoundary:i,strategy:r}=t;const a=[...n==="clippingAncestors"?Ot(e)?[]:wi(e,this._c):[].concat(n),i],l=a[0],o=a.reduce((d,c)=>{const u=he(e,c,r);return d.top=Z(u.top,d.top),d.right=mt(u.right,d.right),d.bottom=mt(u.bottom,d.bottom),d.left=Z(u.left,d.left),d},he(e,l,r));return{width:o.right-o.left,height:o.bottom-o.top,x:o.left,y:o.top}}function xi(t){const{width:e,height:n}=Xe(t);return{width:e,height:n}}function _i(t,e,n){const i=j(e),r=R(e),a=n==="fixed",l=Y(t,!0,a,e);let o={scrollLeft:0,scrollTop:0};const d=F(0);function c(){d.x=At(r)}if(i||!i&&!a)if((st(e)!=="body"||ht(r))&&(o=Lt(e)),i){const f=Y(e,!0,a,e);d.x=f.x+e.clientLeft,d.y=f.y+e.clientTop}else r&&c();a&&!i&&r&&c();const u=r&&!i&&!a?Ye(r,o):F(0),h=l.left+o.scrollLeft-d.x-u.x,p=l.top+o.scrollTop-d.y-u.y;return{x:h,y:p,width:l.width,height:l.height}}function Pt(t){return V(t).position==="static"}function pe(t,e){if(!j(t)||V(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return R(t)===n&&(n=n.ownerDocument.body),n}function Qe(t,e){const n=N(t);if(Ot(t))return n;if(!j(t)){let r=H(t);for(;r&&!nt(r);){if($(r)&&!Pt(r))return r;r=H(r)}return n}let i=pe(t,e);for(;i&&oi(i)&&Pt(i);)i=pe(i,e);return i&&nt(i)&&Pt(i)&&!Jt(i)?n:i||ui(t)||n}const Ci=async function(t){const e=this.getOffsetParent||Qe,n=this.getDimensions,i=await n(t.floating);return{reference:_i(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function Oi(t){return V(t).direction==="rtl"}const Li={convertOffsetParentRelativeRectToViewportRelativeRect:fi,getDocumentElement:R,getClippingRect:Si,getOffsetParent:Qe,getElementRects:Ci,getClientRects:gi,getDimensions:xi,getScale:tt,isElement:$,isRTL:Oi};function tn(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function Ai(t,e){let n=null,i;const r=R(t);function a(){var o;clearTimeout(i),(o=n)==null||o.disconnect(),n=null}function l(o,d){o===void 0&&(o=!1),d===void 0&&(d=1),a();const c=t.getBoundingClientRect(),{left:u,top:h,width:p,height:f}=c;if(o||e(),!p||!f)return;const m=pt(h),y=pt(r.clientWidth-(u+p)),w=pt(r.clientHeight-(h+f)),S=pt(u),_={rootMargin:-m+"px "+-y+"px "+-w+"px "+-S+"px",threshold:Z(0,mt(1,d))||1};let x=!0;function A(L){const T=L[0].intersectionRatio;if(T!==d){if(!x)return l();T?l(!1,T):i=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tn(c,t.getBoundingClientRect())&&l(),x=!1}try{n=new IntersectionObserver(A,{..._,root:r.ownerDocument})}catch{n=new IntersectionObserver(A,_)}n.observe(t)}return l(!0),a}function ki(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:o=typeof IntersectionObserver=="function",animationFrame:d=!1}=i,c=te(t),u=r||a?[...c?ut(c):[],...ut(e)]:[];u.forEach(S=>{r&&S.addEventListener("scroll",n,{passive:!0}),a&&S.addEventListener("resize",n)});const h=c&&o?Ai(c,n):null;let p=-1,f=null;l&&(f=new ResizeObserver(S=>{let[_]=S;_&&_.target===c&&f&&(f.unobserve(e),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var x;(x=f)==null||x.observe(e)})),n()}),c&&!d&&f.observe(c),f.observe(e));let m,y=d?Y(t):null;d&&w();function w(){const S=Y(t);y&&!tn(y,S)&&n(),y=S,m=requestAnimationFrame(w)}return n(),()=>{var S;u.forEach(_=>{r&&_.removeEventListener("scroll",n),a&&_.removeEventListener("resize",n)}),h?.(),(S=f)==null||S.disconnect(),f=null,d&&cancelAnimationFrame(m)}}const Ti=ti,Ii=ei,Bi=Jn,Mi=ni,Pi=(t,e,n)=>{const i=new Map,r={platform:Li,...n},a={...r.platform,_c:i};return Yn(t,e,{...r,platform:a})};var Wt={exports:{}},Ni=Wt.exports,de;function Di(){return de||(de=1,function(t,e){(function(n,i){t.exports=i()})(typeof self<"u"?self:Ni,function(){return(()=>{var n={646:l=>{l.exports=function(o){if(Array.isArray(o)){for(var d=0,c=new Array(o.length);d{l.exports=function(o,d,c){return d in o?Object.defineProperty(o,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[d]=c,o}},860:l=>{l.exports=function(o){if(Symbol.iterator in Object(o)||Object.prototype.toString.call(o)==="[object Arguments]")return Array.from(o)}},206:l=>{l.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},319:(l,o,d)=>{var c=d(646),u=d(860),h=d(206);l.exports=function(p){return c(p)||u(p)||h()}},8:l=>{function o(d){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?l.exports=o=function(c){return typeof c}:l.exports=o=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},o(d)}l.exports=o}},i={};function r(l){var o=i[l];if(o!==void 0)return o.exports;var d=i[l]={exports:{}};return n[l](d,d.exports,r),d.exports}r.n=l=>{var o=l&&l.__esModule?()=>l.default:()=>l;return r.d(o,{a:o}),o},r.d=(l,o)=>{for(var d in o)r.o(o,d)&&!r.o(l,d)&&Object.defineProperty(l,d,{enumerable:!0,get:o[d]})},r.o=(l,o)=>Object.prototype.hasOwnProperty.call(l,o),r.r=l=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})};var a={};return(()=>{r.r(a),r.d(a,{VueSelect:()=>z,default:()=>I,mixins:()=>K});var l=r(319),o=r.n(l),d=r(8),c=r.n(d),u=r(713),h=r.n(u);const p={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(s){var g=this;this.autoscroll&&s&&this.$nextTick(function(){return g.maybeAdjustScroll()})}},methods:{maybeAdjustScroll:function(){var s,g=((s=this.$refs.dropdownMenu)===null||s===void 0?void 0:s.children[this.typeAheadPointer])||!1;if(g){var v=this.getDropdownViewport(),b=g.getBoundingClientRect(),C=b.top,O=b.bottom,P=b.height;if(Cv.bottom)return this.$refs.dropdownMenu.scrollTop=g.offsetTop-(v.height-P)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},f={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){if(this.resetFocusOnOptionsChange){for(var s=0;s=0;s--)if(this.selectable(this.filteredOptions[s])){this.typeAheadPointer=s;break}},typeAheadDown:function(){for(var s=this.typeAheadPointer+1;s0&&arguments[0]!==void 0?arguments[0]:null;return this.mutableLoading=s??!this.mutableLoading}}};function y(s,g,v,b,C,O,P,D){var E,B=typeof s=="function"?s.options:s;return g&&(B.render=g,B.staticRenderFns=v,B._compiled=!0),{exports:s,options:B}}const w={Deselect:y({},function(){var s=this.$createElement,g=this._self._c||s;return g("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"}},[g("path",{attrs:{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"}})])},[]).exports,OpenIndicator:y({},function(){var s=this.$createElement,g=this._self._c||s;return g("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"}},[g("path",{attrs:{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"}})])},[]).exports},S={inserted:function(s,g,v){var b=v.context;if(b.appendToBody){document.body.appendChild(s);var C=b.$refs.toggle.getBoundingClientRect(),O=C.height,P=C.top,D=C.left,E=C.width,B=window.scrollX||window.pageXOffset,It=window.scrollY||window.pageYOffset;s.unbindPosition=b.calculatePosition(s,b,{width:E+"px",left:B+D+"px",top:It+P+O+"px"})}},unbind:function(s,g,v){v.context.appendToBody&&(s.unbindPosition&&typeof s.unbindPosition=="function"&&s.unbindPosition(),s.parentNode&&s.parentNode.removeChild(s))}},_=function(s){var g={};return Object.keys(s).sort().forEach(function(v){g[v]=s[v]}),JSON.stringify(g)};var x=0;const A=function(){return++x};function L(s,g){var v=Object.keys(s);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(s);g&&(b=b.filter(function(C){return Object.getOwnPropertyDescriptor(s,C).enumerable})),v.push.apply(v,b)}return v}function T(s){for(var g=1;g({x:t,y:t}),Fn={left:"right",right:"left",bottom:"top",top:"bottom"},jn={start:"end",end:"start"};function oe(t,e,n){return Z(t,mt(e,n))}function et(t,e){return typeof t=="function"?t(e):t}function W(t){return t.split("-")[0]}function _t(t){return t.split("-")[1]}function Yt(t){return t==="x"?"y":"x"}function qe(t){return t==="y"?"height":"width"}const Rn=new Set(["top","bottom"]);function q(t){return Rn.has(W(t))?"y":"x"}function ze(t){return Yt(q(t))}function qn(t,e,n){n===void 0&&(n=!1);const i=_t(t),r=ze(t),a=qe(r);let l=r==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[a]>e.floating[a]&&(l=vt(l)),[l,vt(l)]}function zn(t){const e=vt(t);return[qt(t),e,qt(e)]}function qt(t){return t.replace(/start|end/g,e=>jn[e])}const re=["left","right"],ae=["right","left"],Wn=["top","bottom"],Hn=["bottom","top"];function Kn(t,e,n){switch(t){case"top":case"bottom":return n?e?ae:re:e?re:ae;case"left":case"right":return e?Wn:Hn;default:return[]}}function Gn(t,e,n,i){const r=_t(t);let a=Kn(W(t),n==="start",i);return r&&(a=a.map(l=>l+"-"+r),e&&(a=a.concat(a.map(qt)))),a}function vt(t){return t.replace(/left|right|bottom|top/g,e=>Fn[e])}function Xn(t){return{top:0,right:0,bottom:0,left:0,...t}}function Zn(t){return typeof t!="number"?Xn(t):{top:t,right:t,bottom:t,left:t}}function bt(t){const{x:e,y:n,width:i,height:r}=t;return{width:i,height:r,top:n,left:e,right:e+i,bottom:n+r,x:e,y:n}}function le(t,e,n){let{reference:i,floating:r}=t;const a=q(e),l=ze(e),o=qe(l),d=W(e),c=a==="y",u=i.x+i.width/2-r.width/2,h=i.y+i.height/2-r.height/2,p=i[o]/2-r[o]/2;let f;switch(d){case"top":f={x:u,y:i.y-r.height};break;case"bottom":f={x:u,y:i.y+i.height};break;case"right":f={x:i.x+i.width,y:h};break;case"left":f={x:i.x-r.width,y:h};break;default:f={x:i.x,y:i.y}}switch(_t(e)){case"start":f[l]-=p*(n&&c?-1:1);break;case"end":f[l]+=p*(n&&c?-1:1);break}return f}const Yn=async(t,e,n)=>{const{placement:i="bottom",strategy:r="absolute",middleware:a=[],platform:l}=n,o=a.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(e));let c=await l.getElementRects({reference:t,floating:e,strategy:r}),{x:u,y:h}=le(c,i,d),p=i,f={},m=0;for(let y=0;yC<=0)){var g,v;const C=(((g=a.flip)==null?void 0:g.index)||0)+1,O=z[C];if(O&&(!(h==="alignment"&&_!==q(O))||s.every(D=>q(D.placement)===_?D.overflows[0]>0:!0)))return{data:{index:C,overflows:s},reset:{placement:O}};let P=(v=s.filter(D=>D.overflows[0]<=0).sort((D,E)=>D.overflows[1]-E.overflows[1])[0])==null?void 0:v.placement;if(!P)switch(f){case"bestFit":{var b;const D=(b=s.filter(E=>{if(T){const B=q(E.placement);return B===_||B==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(B=>B>0).reduce((B,It)=>B+It,0)]).sort((E,B)=>E[1]-B[1])[0])==null?void 0:b[0];D&&(P=D);break}case"initialPlacement":P=o;break}if(r!==P)return{reset:{placement:P}}}return{}}}},He=new Set(["left","top"]);async function Qn(t,e){const{placement:n,platform:i,elements:r}=t,a=await(i.isRTL==null?void 0:i.isRTL(r.floating)),l=W(n),o=_t(n),d=q(n)==="y",c=He.has(l)?-1:1,u=a&&d?-1:1,h=et(e,t);let{mainAxis:p,crossAxis:f,alignmentAxis:m}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return o&&typeof m=="number"&&(f=o==="end"?m*-1:m),d?{x:f*u,y:p*c}:{x:p*c,y:f*u}}const ti=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:r,y:a,placement:l,middlewareData:o}=e,d=await Qn(e,t);return l===((n=o.offset)==null?void 0:n.placement)&&(i=o.arrow)!=null&&i.alignmentOffset?{}:{x:r+d.x,y:a+d.y,data:{...d,placement:l}}}}},ei=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:r}=e,{mainAxis:a=!0,crossAxis:l=!1,limiter:o={fn:w=>{let{x:S,y:_}=w;return{x:S,y:_}}},...d}=et(t,e),c={x:n,y:i},u=await We(e,d),h=q(W(r)),p=Yt(h);let f=c[p],m=c[h];if(a){const w=p==="y"?"top":"left",S=p==="y"?"bottom":"right",_=f+u[w],x=f-u[S];f=oe(_,f,x)}if(l){const w=h==="y"?"top":"left",S=h==="y"?"bottom":"right",_=m+u[w],x=m-u[S];m=oe(_,m,x)}const y=o.fn({...e,[p]:f,[h]:m});return{...y,data:{x:y.x-n,y:y.y-i,enabled:{[p]:a,[h]:l}}}}}},ni=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:i,placement:r,rects:a,middlewareData:l}=e,{offset:o=0,mainAxis:d=!0,crossAxis:c=!0}=et(t,e),u={x:n,y:i},h=q(r),p=Yt(h);let f=u[p],m=u[h];const y=et(o,e),w=typeof y=="number"?{mainAxis:y,crossAxis:0}:{mainAxis:0,crossAxis:0,...y};if(d){const x=p==="y"?"height":"width",A=a.reference[p]-a.floating[x]+w.mainAxis,L=a.reference[p]+a.reference[x]-w.mainAxis;fL&&(f=L)}if(c){var S,_;const x=p==="y"?"width":"height",A=He.has(W(r)),L=a.reference[h]-a.floating[x]+(A&&((S=l.offset)==null?void 0:S[h])||0)+(A?0:w.crossAxis),T=a.reference[h]+a.reference[x]+(A?0:((_=l.offset)==null?void 0:_[h])||0)-(A?w.crossAxis:0);mT&&(m=T)}return{[p]:f,[h]:m}}}};function Ct(){return typeof window<"u"}function st(t){return Ke(t)?(t.nodeName||"").toLowerCase():"#document"}function N(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function R(t){var e;return(e=(Ke(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function Ke(t){return Ct()?t instanceof Node||t instanceof N(t).Node:!1}function $(t){return Ct()?t instanceof Element||t instanceof N(t).Element:!1}function j(t){return Ct()?t instanceof HTMLElement||t instanceof N(t).HTMLElement:!1}function ce(t){return!Ct()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof N(t).ShadowRoot}const ii=new Set(["inline","contents"]);function ht(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=V(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!ii.has(r)}const si=new Set(["table","td","th"]);function oi(t){return si.has(st(t))}const ri=[":popover-open",":modal"];function Ot(t){return ri.some(e=>{try{return t.matches(e)}catch{return!1}})}const ai=["transform","translate","scale","rotate","perspective"],li=["transform","translate","scale","rotate","perspective","filter"],ci=["paint","layout","strict","content"];function Jt(t){const e=Qt(),n=$(t)?V(t):t;return ai.some(i=>n[i]?n[i]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||li.some(i=>(n.willChange||"").includes(i))||ci.some(i=>(n.contain||"").includes(i))}function ui(t){let e=H(t);for(;j(e)&&!nt(e);){if(Jt(e))return e;if(Ot(e))return null;e=H(e)}return null}function Qt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const hi=new Set(["html","body","#document"]);function nt(t){return hi.has(st(t))}function V(t){return N(t).getComputedStyle(t)}function Lt(t){return $(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function H(t){if(st(t)==="html")return t;const e=t.assignedSlot||t.parentNode||ce(t)&&t.host||R(t);return ce(e)?e.host:e}function Ge(t){const e=H(t);return nt(e)?t.ownerDocument?t.ownerDocument.body:t.body:j(e)&&ht(e)?e:Ge(e)}function ut(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=Ge(t),a=r===((i=t.ownerDocument)==null?void 0:i.body),l=N(r);if(a){const o=zt(l);return e.concat(l,l.visualViewport||[],ht(r)?r:[],o&&n?ut(o):[])}return e.concat(r,ut(r,[],n))}function zt(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function Xe(t){const e=V(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const r=j(t),a=r?t.offsetWidth:n,l=r?t.offsetHeight:i,o=yt(n)!==a||yt(i)!==l;return o&&(n=a,i=l),{width:n,height:i,$:o}}function te(t){return $(t)?t:t.contextElement}function tt(t){const e=te(t);if(!j(e))return F(1);const n=e.getBoundingClientRect(),{width:i,height:r,$:a}=Xe(e);let l=(a?yt(n.width):n.width)/i,o=(a?yt(n.height):n.height)/r;return(!l||!Number.isFinite(l))&&(l=1),(!o||!Number.isFinite(o))&&(o=1),{x:l,y:o}}const pi=F(0);function Ze(t){const e=N(t);return!Qt()||!e.visualViewport?pi:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function di(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==N(t)?!1:e}function Y(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),a=te(t);let l=F(1);e&&(i?$(i)&&(l=tt(i)):l=tt(t));const o=di(a,n,i)?Ze(a):F(0);let d=(r.left+o.x)/l.x,c=(r.top+o.y)/l.y,u=r.width/l.x,h=r.height/l.y;if(a){const p=N(a),f=i&&$(i)?N(i):i;let m=p,y=zt(m);for(;y&&i&&f!==m;){const w=tt(y),S=y.getBoundingClientRect(),_=V(y),x=S.left+(y.clientLeft+parseFloat(_.paddingLeft))*w.x,A=S.top+(y.clientTop+parseFloat(_.paddingTop))*w.y;d*=w.x,c*=w.y,u*=w.x,h*=w.y,d+=x,c+=A,m=N(y),y=zt(m)}}return bt({width:u,height:h,x:d,y:c})}function At(t,e){const n=Lt(t).scrollLeft;return e?e.left+n:Y(R(t)).left+n}function Ye(t,e){const n=t.getBoundingClientRect(),i=n.left+e.scrollLeft-At(t,n),r=n.top+e.scrollTop;return{x:i,y:r}}function fi(t){let{elements:e,rect:n,offsetParent:i,strategy:r}=t;const a=r==="fixed",l=R(i),o=e?Ot(e.floating):!1;if(i===l||o&&a)return n;let d={scrollLeft:0,scrollTop:0},c=F(1);const u=F(0),h=j(i);if((h||!h&&!a)&&((st(i)!=="body"||ht(l))&&(d=Lt(i)),j(i))){const f=Y(i);c=tt(i),u.x=f.x+i.clientLeft,u.y=f.y+i.clientTop}const p=l&&!h&&!a?Ye(l,d):F(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-d.scrollLeft*c.x+u.x+p.x,y:n.y*c.y-d.scrollTop*c.y+u.y+p.y}}function gi(t){return Array.from(t.getClientRects())}function mi(t){const e=R(t),n=Lt(t),i=t.ownerDocument.body,r=Z(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),a=Z(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let l=-n.scrollLeft+At(t);const o=-n.scrollTop;return V(i).direction==="rtl"&&(l+=Z(e.clientWidth,i.clientWidth)-r),{width:r,height:a,x:l,y:o}}const ue=25;function yi(t,e){const n=N(t),i=R(t),r=n.visualViewport;let a=i.clientWidth,l=i.clientHeight,o=0,d=0;if(r){a=r.width,l=r.height;const u=Qt();(!u||u&&e==="fixed")&&(o=r.offsetLeft,d=r.offsetTop)}const c=At(i);if(c<=0){const u=i.ownerDocument,h=u.body,p=getComputedStyle(h),f=u.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,m=Math.abs(i.clientWidth-h.clientWidth-f);m<=ue&&(a-=m)}else c<=ue&&(a+=c);return{width:a,height:l,x:o,y:d}}const vi=new Set(["absolute","fixed"]);function bi(t,e){const n=Y(t,!0,e==="fixed"),i=n.top+t.clientTop,r=n.left+t.clientLeft,a=j(t)?tt(t):F(1),l=t.clientWidth*a.x,o=t.clientHeight*a.y,d=r*a.x,c=i*a.y;return{width:l,height:o,x:d,y:c}}function he(t,e,n){let i;if(e==="viewport")i=yi(t,n);else if(e==="document")i=mi(R(t));else if($(e))i=bi(e,n);else{const r=Ze(t);i={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return bt(i)}function Je(t,e){const n=H(t);return n===e||!$(n)||nt(n)?!1:V(n).position==="fixed"||Je(n,e)}function wi(t,e){const n=e.get(t);if(n)return n;let i=ut(t,[],!1).filter(o=>$(o)&&st(o)!=="body"),r=null;const a=V(t).position==="fixed";let l=a?H(t):t;for(;$(l)&&!nt(l);){const o=V(l),d=Jt(l);!d&&o.position==="fixed"&&(r=null),(a?!d&&!r:!d&&o.position==="static"&&r&&vi.has(r.position)||ht(l)&&!d&&Je(t,l))?i=i.filter(c=>c!==l):r=o,l=H(l)}return e.set(t,i),i}function Si(t){let{element:e,boundary:n,rootBoundary:i,strategy:r}=t;const a=[...n==="clippingAncestors"?Ot(e)?[]:wi(e,this._c):[].concat(n),i],l=a[0],o=a.reduce((d,c)=>{const u=he(e,c,r);return d.top=Z(u.top,d.top),d.right=mt(u.right,d.right),d.bottom=mt(u.bottom,d.bottom),d.left=Z(u.left,d.left),d},he(e,l,r));return{width:o.right-o.left,height:o.bottom-o.top,x:o.left,y:o.top}}function xi(t){const{width:e,height:n}=Xe(t);return{width:e,height:n}}function _i(t,e,n){const i=j(e),r=R(e),a=n==="fixed",l=Y(t,!0,a,e);let o={scrollLeft:0,scrollTop:0};const d=F(0);function c(){d.x=At(r)}if(i||!i&&!a)if((st(e)!=="body"||ht(r))&&(o=Lt(e)),i){const f=Y(e,!0,a,e);d.x=f.x+e.clientLeft,d.y=f.y+e.clientTop}else r&&c();a&&!i&&r&&c();const u=r&&!i&&!a?Ye(r,o):F(0),h=l.left+o.scrollLeft-d.x-u.x,p=l.top+o.scrollTop-d.y-u.y;return{x:h,y:p,width:l.width,height:l.height}}function Pt(t){return V(t).position==="static"}function pe(t,e){if(!j(t)||V(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return R(t)===n&&(n=n.ownerDocument.body),n}function Qe(t,e){const n=N(t);if(Ot(t))return n;if(!j(t)){let r=H(t);for(;r&&!nt(r);){if($(r)&&!Pt(r))return r;r=H(r)}return n}let i=pe(t,e);for(;i&&oi(i)&&Pt(i);)i=pe(i,e);return i&&nt(i)&&Pt(i)&&!Jt(i)?n:i||ui(t)||n}const Ci=async function(t){const e=this.getOffsetParent||Qe,n=this.getDimensions,i=await n(t.floating);return{reference:_i(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function Oi(t){return V(t).direction==="rtl"}const Li={convertOffsetParentRelativeRectToViewportRelativeRect:fi,getDocumentElement:R,getClippingRect:Si,getOffsetParent:Qe,getElementRects:Ci,getClientRects:gi,getDimensions:xi,getScale:tt,isElement:$,isRTL:Oi};function tn(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function Ai(t,e){let n=null,i;const r=R(t);function a(){var o;clearTimeout(i),(o=n)==null||o.disconnect(),n=null}function l(o,d){o===void 0&&(o=!1),d===void 0&&(d=1),a();const c=t.getBoundingClientRect(),{left:u,top:h,width:p,height:f}=c;if(o||e(),!p||!f)return;const m=pt(h),y=pt(r.clientWidth-(u+p)),w=pt(r.clientHeight-(h+f)),S=pt(u),_={rootMargin:-m+"px "+-y+"px "+-w+"px "+-S+"px",threshold:Z(0,mt(1,d))||1};let x=!0;function A(L){const T=L[0].intersectionRatio;if(T!==d){if(!x)return l();T?l(!1,T):i=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tn(c,t.getBoundingClientRect())&&l(),x=!1}try{n=new IntersectionObserver(A,{..._,root:r.ownerDocument})}catch{n=new IntersectionObserver(A,_)}n.observe(t)}return l(!0),a}function ki(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:r=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:o=typeof IntersectionObserver=="function",animationFrame:d=!1}=i,c=te(t),u=r||a?[...c?ut(c):[],...ut(e)]:[];u.forEach(S=>{r&&S.addEventListener("scroll",n,{passive:!0}),a&&S.addEventListener("resize",n)});const h=c&&o?Ai(c,n):null;let p=-1,f=null;l&&(f=new ResizeObserver(S=>{let[_]=S;_&&_.target===c&&f&&(f.unobserve(e),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var x;(x=f)==null||x.observe(e)})),n()}),c&&!d&&f.observe(c),f.observe(e));let m,y=d?Y(t):null;d&&w();function w(){const S=Y(t);y&&!tn(y,S)&&n(),y=S,m=requestAnimationFrame(w)}return n(),()=>{var S;u.forEach(_=>{r&&_.removeEventListener("scroll",n),a&&_.removeEventListener("resize",n)}),h?.(),(S=f)==null||S.disconnect(),f=null,d&&cancelAnimationFrame(m)}}const Ti=ti,Ii=ei,Bi=Jn,Mi=ni,Pi=(t,e,n)=>{const i=new Map,r={platform:Li,...n},a={...r.platform,_c:i};return Yn(t,e,{...r,platform:a})};var Wt={exports:{}},Ni=Wt.exports,de;function Di(){return de||(de=1,function(t,e){(function(n,i){t.exports=i()})(typeof self<"u"?self:Ni,function(){return(()=>{var n={646:l=>{l.exports=function(o){if(Array.isArray(o)){for(var d=0,c=new Array(o.length);d{l.exports=function(o,d,c){return d in o?Object.defineProperty(o,d,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[d]=c,o}},860:l=>{l.exports=function(o){if(Symbol.iterator in Object(o)||Object.prototype.toString.call(o)==="[object Arguments]")return Array.from(o)}},206:l=>{l.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},319:(l,o,d)=>{var c=d(646),u=d(860),h=d(206);l.exports=function(p){return c(p)||u(p)||h()}},8:l=>{function o(d){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?l.exports=o=function(c){return typeof c}:l.exports=o=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},o(d)}l.exports=o}},i={};function r(l){var o=i[l];if(o!==void 0)return o.exports;var d=i[l]={exports:{}};return n[l](d,d.exports,r),d.exports}r.n=l=>{var o=l&&l.__esModule?()=>l.default:()=>l;return r.d(o,{a:o}),o},r.d=(l,o)=>{for(var d in o)r.o(o,d)&&!r.o(l,d)&&Object.defineProperty(l,d,{enumerable:!0,get:o[d]})},r.o=(l,o)=>Object.prototype.hasOwnProperty.call(l,o),r.r=l=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(l,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(l,"__esModule",{value:!0})};var a={};return(()=>{r.r(a),r.d(a,{VueSelect:()=>z,default:()=>I,mixins:()=>K});var l=r(319),o=r.n(l),d=r(8),c=r.n(d),u=r(713),h=r.n(u);const p={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer:function(){this.autoscroll&&this.maybeAdjustScroll()},open:function(s){var g=this;this.autoscroll&&s&&this.$nextTick(function(){return g.maybeAdjustScroll()})}},methods:{maybeAdjustScroll:function(){var s,g=((s=this.$refs.dropdownMenu)===null||s===void 0?void 0:s.children[this.typeAheadPointer])||!1;if(g){var v=this.getDropdownViewport(),b=g.getBoundingClientRect(),C=b.top,O=b.bottom,P=b.height;if(Cv.bottom)return this.$refs.dropdownMenu.scrollTop=g.offsetTop-(v.height-P)}},getDropdownViewport:function(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},f={data:function(){return{typeAheadPointer:-1}},watch:{filteredOptions:function(){if(this.resetFocusOnOptionsChange){for(var s=0;s=0;s--)if(this.selectable(this.filteredOptions[s])){this.typeAheadPointer=s;break}},typeAheadDown:function(){for(var s=this.typeAheadPointer+1;s0&&arguments[0]!==void 0?arguments[0]:null;return this.mutableLoading=s??!this.mutableLoading}}};function y(s,g,v,b,C,O,P,D){var E,B=typeof s=="function"?s.options:s;return g&&(B.render=g,B.staticRenderFns=v,B._compiled=!0),{exports:s,options:B}}const w={Deselect:y({},function(){var s=this.$createElement,g=this._self._c||s;return g("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"}},[g("path",{attrs:{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"}})])},[]).exports,OpenIndicator:y({},function(){var s=this.$createElement,g=this._self._c||s;return g("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"}},[g("path",{attrs:{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"}})])},[]).exports},S={inserted:function(s,g,v){var b=v.context;if(b.appendToBody){document.body.appendChild(s);var C=b.$refs.toggle.getBoundingClientRect(),O=C.height,P=C.top,D=C.left,E=C.width,B=window.scrollX||window.pageXOffset,It=window.scrollY||window.pageYOffset;s.unbindPosition=b.calculatePosition(s,b,{width:E+"px",left:B+D+"px",top:It+P+O+"px"})}},unbind:function(s,g,v){v.context.appendToBody&&(s.unbindPosition&&typeof s.unbindPosition=="function"&&s.unbindPosition(),s.parentNode&&s.parentNode.removeChild(s))}},_=function(s){var g={};return Object.keys(s).sort().forEach(function(v){g[v]=s[v]}),JSON.stringify(g)};var x=0;const A=function(){return++x};function L(s,g){var v=Object.keys(s);if(Object.getOwnPropertySymbols){var b=Object.getOwnPropertySymbols(s);g&&(b=b.filter(function(C){return Object.getOwnPropertyDescriptor(s,C).enumerable})),v.push.apply(v,b)}return v}function T(s){for(var g=1;g-1}},filter:{type:Function,default:function(s,g){var v=this;return s.filter(function(b){var C=v.getOptionLabel(b);return typeof C=="number"&&(C=C.toString()),v.filterBy(b,C,g)})}},createOption:{type:Function,default:function(s){return c()(this.optionList[0])==="object"?h()({},this.label,s):s}},resetFocusOnOptionsChange:{type:Boolean,default:!0},resetOnOptionsChange:{default:!1,validator:function(s){return["function","boolean"].includes(c()(s))}},clearSearchOnBlur:{type:Function,default:function(s){var g=s.clearSearchOnSelect,v=s.multiple;return g&&!v}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:function(){return[13]}},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:function(s,g){return s}},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default:function(s,g,v){var b=v.width,C=v.top,O=v.left;s.style.top=C,s.style.left=O,s.style.width=b}},dropdownShouldOpen:{type:Function,default:function(s){var g=s.noDrop,v=s.open,b=s.mutableLoading;return!g&&v&&!b}},keyboardFocusBorder:{type:Boolean,default:!1},uid:{type:[String,Number],default:function(){return A()}}},data:function(){return{search:"",open:!1,isComposing:!1,isKeyboardNavigation:!1,pushedTags:[],_value:[]}},computed:{isTrackingValues:function(){return this.value===void 0||this.$options.propsData.hasOwnProperty("reduce")},selectedValue:function(){var s=this.value;return this.isTrackingValues&&(s=this.$data._value),s!=null&&s!==""?[].concat(s):[]},optionList:function(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl:function(){return this.$scopedSlots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope:function(){var s=this,g={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:T({id:this.inputId,disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,role:"combobox","aria-autocomplete":"list","aria-label":this.ariaLabelCombobox,"aria-controls":"vs-".concat(this.uid,"__listbox"),"aria-owns":"vs-".concat(this.uid,"__listbox"),"aria-expanded":this.dropdownOpen.toString(),ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":"vs-".concat(this.uid,"__option-").concat(this.typeAheadPointer)}:{}),events:{compositionstart:function(){return s.isComposing=!0},compositionend:function(){return s.isComposing=!1},keydown:this.onSearchKeyDown,keypress:this.onSearchKeyPress,blur:this.onSearchBlur,focus:this.onSearchFocus,input:function(v){return s.search=v.target.value}}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:g,listFooter:g,header:T({},g,{deselect:this.deselect}),footer:T({},g,{deselect:this.deselect})}},childComponents:function(){return T({},w,{},this.components)},stateClasses:function(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching:function(){return!!this.search},dropdownOpen:function(){return this.dropdownShouldOpen(this)},searchPlaceholder:function(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions:function(){var s=this,g=function(O){return s.limit!==null?O.slice(0,s.limit):O},v=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return g(v);var b=this.search.length?this.filter(v,this.search,this):v;if(this.taggable&&this.search.length)try{var C=this.createOption(this.search);this.optionExists(C)||b.unshift(C)}catch{}return g(b)},isValueEmpty:function(){return this.selectedValue.length===0},showClearButton:function(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options:function(s,g){var v=this;!this.taggable&&(typeof v.resetOnOptionsChange=="function"?v.resetOnOptionsChange(s,g,v.selectedValue):v.resetOnOptionsChange)&&this.clearSelection(),this.value&&this.isTrackingValues&&this.setInternalValueFromOptions(this.value)},value:{immediate:!0,handler:function(s){this.isTrackingValues&&this.setInternalValueFromOptions(s)}},multiple:function(){this.clearSelection()},open:function(s){this.$emit(s?"open":"close")},search:function(s){s.length&&(this.open=!0)}},created:function(){this.mutableLoading=this.loading,this.$on("option:created",this.pushTag)},methods:{setInternalValueFromOptions:function(s){var g=this;Array.isArray(s)?this.$data._value=s.map(function(v){return g.findOptionFromReducedValue(v)}):this.$data._value=this.findOptionFromReducedValue(s)},select:function(s){this.$emit("option:selecting",s),this.isOptionSelected(s)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(s):(this.taggable&&!this.optionExists(s)&&this.$emit("option:created",s),this.multiple&&(s=this.selectedValue.concat(s)),this.updateValue(s),this.$emit("option:selected",s)),this.onAfterSelect(s)},deselect:function(s){var g=this;this.$emit("option:deselecting",s),this.updateValue(this.selectedValue.filter(function(v){return!g.optionComparator(v,s)})),this.$emit("option:deselected",s)},keyboardDeselect:function(s,g){var v,b;this.deselect(s);var C=(v=this.$refs.deselectButtons)===null||v===void 0?void 0:v[g+1],O=(b=this.$refs.deselectButtons)===null||b===void 0?void 0:b[g-1],P=C??O;P?P.focus():this.searchEl.focus()},clearSelection:function(){this.updateValue(this.multiple?[]:null),this.searchEl.focus()},onAfterSelect:function(s){var g=this;this.closeOnSelect&&(this.open=!this.open),this.clearSearchOnSelect&&(this.search=""),this.noDrop&&this.multiple&&this.$nextTick(function(){return g.$refs.search.focus()})},updateValue:function(s){var g=this;this.value===void 0&&(this.$data._value=s),s!==null&&(s=Array.isArray(s)?s.map(function(v){return g.reduce(v)}):this.reduce(s)),this.$emit("input",s)},toggleDropdown:function(s){var g=s.target!==this.searchEl;g&&s.preventDefault();var v=[].concat(o()(this.$refs.deselectButtons||[]),o()([this.$refs.clearButton]));this.searchEl===void 0||v.filter(Boolean).some(function(b){return b.contains(s.target)||b===s.target})?s.preventDefault():this.open&&g?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected:function(s){var g=this;return this.selectedValue.some(function(v){return g.optionComparator(v,s)})},isOptionDeselectable:function(s){return this.isOptionSelected(s)&&this.deselectFromDropdown},hasKeyboardFocusBorder:function(s){return!(!this.keyboardFocusBorder||!this.isKeyboardNavigation)&&s===this.typeAheadPointer},optionComparator:function(s,g){return this.getOptionKey(s)===this.getOptionKey(g)},findOptionFromReducedValue:function(s){var g=this,v=[].concat(o()(this.options),o()(this.pushedTags)).filter(function(b){return JSON.stringify(g.reduce(b))===JSON.stringify(s)});return v.length===1?v[0]:v.find(function(b){return g.optionComparator(b,g.$data._value)})||s},closeSearchOptions:function(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue:function(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){var s=null;this.multiple&&(s=o()(this.selectedValue.slice(0,this.selectedValue.length-1))),this.updateValue(s)}},optionExists:function(s){var g=this;return this.optionList.some(function(v){return g.optionComparator(v,s)})},optionAriaSelected:function(s){return this.selectable(s)?String(this.isOptionSelected(s)):null},normalizeOptionForSlot:function(s){return c()(s)==="object"?s:h()({},this.label,s)},pushTag:function(s){this.pushedTags.push(s)},onEscape:function(){this.search.length?this.search="":this.open=!1},onSearchBlur:function(){if(!this.mousedown||this.searching){var s=this.clearSearchOnSelect,g=this.multiple;return this.clearSearchOnBlur({clearSearchOnSelect:s,multiple:g})&&(this.search=""),void this.closeSearchOptions()}this.mousedown=!1,this.search.length!==0||this.options.length!==0||this.closeSearchOptions()},onSearchFocus:function(){this.open=!0,this.$emit("search:focus")},onMousedown:function(){this.mousedown=!0},onMouseUp:function(){this.mousedown=!1},onMouseMove:function(s,g){this.isKeyboardNavigation=!1,this.selectable(s)&&(this.typeAheadPointer=g)},onSearchKeyDown:function(s){var g=this,v=function(O){if(O.preventDefault(),g.open)return!g.isComposing&&g.typeAheadSelect();g.open=!0},b={8:function(O){return g.maybeDeleteValue()},9:function(O){return g.onTab()},27:function(O){return g.onEscape()},38:function(O){if(O.preventDefault(),g.isKeyboardNavigation=!0,g.open)return g.typeAheadUp();g.open=!0},40:function(O){if(O.preventDefault(),g.isKeyboardNavigation=!0,g.open)return g.typeAheadDown();g.open=!0}};this.selectOnKeyCodes.forEach(function(O){return b[O]=v});var C=this.mapKeydown(b,this);if(typeof C[s.keyCode]=="function")return C[s.keyCode](s)},onSearchKeyPress:function(s){this.open||s.keyCode!==32||(s.preventDefault(),this.open=!0)}}},function(){var s=this,g=s.$createElement,v=s._self._c||g;return v("div",{staticClass:"v-select",class:s.stateClasses,attrs:{id:"v-select-"+s.uid,dir:s.dir}},[s._t("header",null,null,s.scope.header),s._v(" "),v("div",{ref:"toggle",staticClass:"vs__dropdown-toggle"},[v("div",{ref:"selectedOptions",staticClass:"vs__selected-options",on:{mousedown:s.toggleDropdown}},[s._l(s.selectedValue,function(b,C){return s._t("selected-option-container",[v("span",{key:s.getOptionKey(b),staticClass:"vs__selected"},[s._t("selected-option",[s._v(` `+s._s(s.getOptionLabel(b))+` @@ -88,4 +88,4 @@ https://vue-select.org/api/props.html#getoptionkey`,s,g)}}},onTab:{type:Function `;ct(kn),ct(Tn);function fn(t){switch(t){case"away":return k("away");case"busy":return k("busy");case"dnd":return k("do not disturb");case"online":return k("online");case"invisible":return k("invisible");case"offline":return k("offline");default:return t}}const Es={online:X?Ns:Ds,away:X?Be:Is,busy:X?Be:Bs,dnd:X?Ms:Ps,invisible:X?Me:Pe,offline:X?Me:Pe},$s={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 Es[this.activeStatus]??null},ariaLabel(){return this.ariaHidden==="true"?null:k("User status: {status}",{status:fn(this.activeStatus)})}},watch:{user:{immediate:!0,async handler(t){if(!t||!dn()?.user_status?.enabled){this.fetchedUserStatus=null;return}try{const{data:e}=await Xt.get(je("/apps/user_status/api/v1/statuses/{user}",{user:t}));this.fetchedUserStatus=e.ocs?.data?.status}catch{this.fetchedUserStatus=null}}}}};var Vs=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()},Us=[],Fs=U($s,Vs,Us,!1,null,"86b73d39");const js=Fs.exports,Rs={beforeUpdate(){this.text=this.getText()},data(){return{text:this.getText()}},computed:{isLongText(){return this.text&&this.text.trim().length>20}},methods:{getText(){return this.$slots.default?this.$slots.default[0].text.trim():""}}};function qs(t,e){let n=t.$parent;for(;n;){if(n.$options.name===e)return n;n=n.$parent}}const Tt={mixins:[Rs],props:{icon:{type:String,default:""},name:{type:String,default:""},title:{type:String,default:""},closeAfterClick:{type:Boolean,default:!1},ariaLabel:{type:String,default:null},ariaHidden:{type:Boolean,default:null}},emits:["click"],computed:{isIconUrl(){try{return!!new URL(this.icon,this.icon.startsWith("/")?window.location.origin:void 0)}catch{return!1}}},methods:{onClick(t){if(this.$emit("click",t),this.closeAfterClick){const e=qs(this,"NcActions");e&&e.closeMenu&&e.closeMenu(!1)}}}},zs={name:"NcActionButton",components:{NcIconSvgWrapper:Zt},mixins:[Tt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{ariaHidden:{type:Boolean,default:null},disabled:{type:Boolean,default:!1},isMenu:{type:Boolean,default:!1},type:{type:String,default:"button",validator:t=>["button","checkbox","radio","reset","submit"].includes(t)},modelValue:{type:[Boolean,String],default:null},value:{type:String,default:null},description:{type:String,default:""}},setup(){return{mdiCheck:Bn,mdiChevronRight:In}},computed:{isFocusable(){return!this.disabled},isChecked(){return this.type==="radio"&&typeof this.modelValue!="boolean"?this.modelValue===this.value:this.modelValue},nativeType(){return this.type==="submit"||this.type==="reset"?this.type:"button"},buttonAttributes(){const t={};return this.isInSemanticMenu?(t.role="menuitem",this.type==="radio"?(t.role="menuitemradio",t["aria-checked"]=this.isChecked?"true":"false"):(this.type==="checkbox"||this.nativeType==="button"&&this.modelValue!==null)&&(t.role="menuitemcheckbox",t["aria-checked"]=this.modelValue===null?"mixed":this.modelValue?"true":"false")):this.modelValue!==null&&this.nativeType==="button"&&(t["aria-pressed"]=this.modelValue?"true":"false"),t}},methods:{handleClick(t){this.onClick(t),(this.modelValue!==null||this.type!=="button")&&(this.type==="radio"?typeof this.modelValue!="boolean"?this.isChecked||this.$emit("update:modelValue",this.value):this.$emit("update:modelValue",!this.isChecked):this.$emit("update:modelValue",!this.isChecked))}}};var Ws=function(){var t=this,e=t._self._c;return e("li",{staticClass:"action",class:{"action--disabled":t.disabled},attrs:{role:t.isInSemanticMenu&&"presentation"}},[e("button",t._b({staticClass:"action-button button-vue",class:{"action-button--active":t.isChecked,focusable:t.isFocusable},attrs:{"aria-label":t.ariaLabel,disabled:t.disabled,title:t.title,type:t.nativeType},on:{click:t.handleClick}},"button",t.buttonAttributes,!1),[t._t("icon",function(){return[e("span",{staticClass:"action-button__icon",class:[t.isIconUrl?"action-button__icon--url":t.icon],style:{backgroundImage:t.isIconUrl?`url(${t.icon})`:null},attrs:{"aria-hidden":"true"}})]}),e("span",{staticClass:"action-button__longtext-wrapper"},[t.name?e("strong",{staticClass:"action-button__name"},[t._v(" "+t._s(t.name)+" ")]):t._e(),t.isLongText?e("span",{staticClass:"action-button__longtext",domProps:{textContent:t._s(t.text)}}):e("span",{staticClass:"action-button__text"},[t._v(" "+t._s(t.text)+" ")]),t.description?e("span",{staticClass:"action-button__description",domProps:{textContent:t._s(t.description)}}):t._e()]),t.isMenu?e("NcIconSvgWrapper",{staticClass:"action-button__menu-icon",attrs:{directional:"",path:t.mdiChevronRight}}):t.isChecked?e("NcIconSvgWrapper",{staticClass:"action-button__pressed-icon",attrs:{path:t.mdiCheck}}):t.isChecked===!1?e("span",{staticClass:"action-button__pressed-icon material-design-icon"}):t._e(),t._e()],2)])},Hs=[],Ks=U(zs,Ws,Hs,!1,null,"5b4c6c71");const Gs=Ks.exports,Xs={name:"NcActionLink",mixins:[Tt],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 Zs=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)])},Ys=[],Js=U(Xs,Zs,Ys,!1,null,"86e09254");const Qs=Js.exports,to={name:"NcActionRouter",mixins:[Tt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}},props:{to:{type:[String,Object],required:!0},exact:{type:Boolean,default:!1}}};var eo=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)},no=[],io=U(to,eo,no,!1,null,"4dae1ff7");const so=io.exports,oo={name:"NcActionText",mixins:[Tt],inject:{isInSemanticMenu:{from:"NcActions:isSemanticMenu",default:!1}}};var ro=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)])},ao=[],lo=U(oo,ro,ao,!1,null,"2fe7eb92");const co=lo.exports;ct(Mn);const gn={data(){return{hasStatus:!1,userStatus:{status:null,message:null,icon:null}}},methods:{async fetchUserStatus(t){if(!t)return;const e=dn();if(!(!Object.hasOwn(e,"user_status")||!e.user_status.enabled)&&Rt())try{const{data:n}=await Xt.get(je("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;gt.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}}},mn=ss("nextcloud").persist().build();function uo(t){const e=mn.getItem("user-has-avatar."+t);return typeof e=="string"?!!e:null}function Ne(t,e){t&&mn.setItem("user-has-avatar."+t,e)}const ho={name:"NcAvatar",directives:{ClickOutside:os},components:{IconDotsHorizontal:Dn,NcActions:Nn,NcButton:Pn,NcIconSvgWrapper:Zt,NcLoadingIcon:Re,NcUserStatusIcon:js},mixins:[gn],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:ns()}},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?k("Avatar of {displayName}, {status}",{displayName:this.displayName??this.user,status:fn(this.userStatus.status)}):k("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.isMenuLoaded?this.menu.length>0:!(this.user===Rt()?.uid||this.userDoesNotExist||this.url)},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}=Ie(this.userIdentifier);return{backgroundColor:`rgba(${t}, ${e}, ${n}, 0.1)`}},initialsStyle(){const{r:t,g:e,b:n}=Ie(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 i=n.join(""),r=i.lastIndexOf(" ");t=String.fromCodePoint(i.codePointAt(0)),r!==-1&&(t=t.concat(String.fromCodePoint(i.codePointAt(r+1))))}return t.toLocaleUpperCase()},menu(){const t=this.contactsMenuActions.map(n=>{const i=ws(this.$router,n.hyperlink);return{ncActionComponent:i?so:Qs,ncActionComponentProps:i?{to:i,icon:n.icon}:{href:n.hyperlink,icon:n.icon},text:n.title}});for(const n of Ss(this.contactsMenuData))try{t.push({ncActionComponent:Gs,ncActionComponentProps:{},ncActionComponentHandlers:{click:()=>n.callback(this.contactsMenuData)},text:n.displayName(this.contactsMenuData),iconSvg:n.iconSvg(this.contactsMenuData)})}catch(i){gt.error(`Failed to render ContactsMenu action ${n.id}`,{error:i,action:n})}function e(n){const i=document.createTextNode(n),r=document.createElement("p");return r.appendChild(i),r.innerHTML}if(!this.hideStatus&&this.showUserStatus&&(this.userStatus.icon||this.userStatus.message)){const n=` ${e(this.userStatus.icon)} `;return[{ncActionComponent:co,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()}},mounted(){this.loadAvatarUrl(),Mt("settings:avatar:updated",this.loadAvatarUrl),Mt("settings:display-name:updated",this.loadAvatarUrl),!this.hideStatus&&this.showUserStatus&&this.user&&!this.isNoUser?(this.preloadedUserStatus?this.setUserStatus(this.preloadedUserStatus):this.fetchUserStatus(this.user),Mt("user_status:status.updated",this.handleUserStatusUpdated)):!this.hideStatus&&this.preloadedUserStatus&&this.setUserStatus(this.preloadedUserStatus)},beforeDestroy(){Bt("settings:avatar:updated",this.loadAvatarUrl),Bt("settings:display-name:updated",this.loadAvatarUrl),Bt("user_status:status.updated",this.handleUserStatusUpdated)},methods:{t:k,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.contactsMenuOpenState=!1},async fetchContactsMenu(){this.contactsMenuLoading=!0;try{const t=encodeURIComponent(this.user),{data:e}=await Xt.post(Fe("contactsmenu/findOne"),`shareType=0&shareWith=${t}`);this.contactsMenuData=e,this.contactsMenuActions=e.topAction?[e.topAction].concat(e.actions):e.actions}catch{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=Ts(t,{size:e,isDarkTheme:this.isDarkTheme,isGuest:this.isGuest});return t===Rt()?.uid&&typeof window.oc_userconfig<"u"&&(n+="?v="+window.oc_userconfig.avatar.version),n},updateImageIfValid(t,e=null){const n=uo(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 i=new Image;i.onload=()=>{this.avatarUrlLoaded=t,e&&(this.avatarSrcSetLoaded=e),this.isAvatarLoaded=!0,Ne(this.user,!0)},i.onerror=r=>{gt.debug("Invalid avatar url",{error:r,url:t}),this.avatarUrlLoaded=null,this.avatarSrcSetLoaded=null,this.userDoesNotExist=!0,this.isAvatarLoaded=!1,Ne(this.user,!1)},e&&(i.srcset=e),i.src=t}}};var po=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-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.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)}):t.hasMenu?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,i){return e(n.ncActionComponent,t._g(t._b({key:i,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._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)},fo=[],go=U(ho,po,fo,!1,null,"a4de1e87");const mo=go.exports,yo=8,De=32,vo={name:"NcListItemIcon",components:{NcAvatar:mo,NcHighlight:nn,NcIconSvgWrapper:Zt},mixins:[gn],props:{name:{type:String,required:!0},subname:{type:String,default:""},icon:{type:String,default:""},iconSvg:{type:String,default:""},iconName:{type:String,default:""},search:{type:String,default:""},avatarSize:{type:Number,default:De},noMargin:{type:Boolean,default:!1},displayName:{type:String,default:null},isNoUser:{type:Boolean,default:!1},id:{type:String,default:null}},setup(){return{margin:yo,defaultSize:De}},computed:{hasIcon(){return this.icon!==""},hasIconSvg(){return this.iconSvg!==""},isValidSubname(){return this.subname?.trim?.()!==""},isSizeBigEnough(){return this.avatarSize>=26},cssVars(){const t=this.noMargin?0:this.margin;return{"--height":this.avatarSize+2*t+"px","--margin":this.margin+"px"}},searchParts(){const t=/^([^<]*)<([^>]+)>?$/,e=this.search.match(t);return this.isNoUser||!e?[this.search,this.search]:[e[1].trim(),e[2]]}},beforeMount(){!this.isNoUser&&!this.subname&&this.fetchUserStatus(this.user)}};var bo=function(){var t=this,e=t._self._c;return e("span",t._g({staticClass:"option",class:{"option--compact":t.avatarSize({...t,...e.props}),{}),ariaLabelClearSelected:{type:String,default:k("Clear selected")},ariaLabelCombobox:{type:String,default:null},ariaLabelListbox:{type:String,default:k("Options")},ariaLabelDeselectOption:{type:Function,default:t=>k("Deselect {option}",{option:t})},appendToBody:{type:Boolean,default:!0},calculatePosition:{type:Function,default:null},closeOnSelect:{type:Boolean,default:!0},keepOpen:{type:Boolean,default:!1},components:{type:Object,default:()=>({Deselect:{render:t=>t(Un,{props:{size:20,fillColor:"var(--vs-controls-color)"},style:{cursor:"pointer"}})}})},limit:{type:Number,default:null},disabled:{type:Boolean,default:!1},dropdownShouldOpen:{type:Function,default:({noDrop:t,open:e})=>t?!1:e},filterBy:{type:Function,default:null},inputClass:{type:[String,Object],default:null},inputId:{type:String,default:()=>`select-input-${se()}`},inputLabel:{type:String,default:null},labelOutside:{type:Boolean,default:!1},keyboardFocusBorder:{type:Boolean,default:!0},label:{type:String,default:null},loading:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},options:{type:Array,default:()=>[]},placeholder:{type:String,default:""},mapKeydown:{type:Function,default(t,e){return{...t,27:n=>{e.open&&n.stopPropagation(),t[27](n)}}}},uid:{type:String,default:()=>se()},placement:{type:String,default:"bottom"},resetFocusOnOptionsChange:{type:Boolean,default:!0},userSelect:{type:Boolean,default:!1},value:{type:[String,Number,Object,Array],default:void 0},modelValue:{type:[String,Number,Object,Array],default:null},required:{type:Boolean,default:!1}," ":{}},emits:[" ","input","update:modelValue","update:model-value"],setup(){const t=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-clickable-area")),e=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("--default-grid-baseline")),n=t-2*e,i=Vn("value","input");return{avatarSize:n,model:i,isLegacy:X}},data(){return{search:""}},computed:{inputRequired(){return this.required?this.model===null||Array.isArray(this.model)&&this.model.length===0:null},localCalculatePosition(){return this.calculatePosition!==null?this.calculatePosition:(t,e,{width:n})=>{t.style.width=n;const i={name:"addClass",fn(){return t.classList.add("vs__dropdown-menu--floating"),{}}},r={name:"togglePlacementClass",fn({placement:l}){return e.$el.classList.toggle("select--drop-up",l==="top"),t.classList.toggle("vs__dropdown-menu--floating-placement-top",l==="top"),{}}},a=()=>{Pi(e.$refs.toggle,t,{placement:this.placement,middleware:[Ti(-1),i,r,Bi(),Ii({limiter:Mi()})]}).then(({x:l,y:o})=>{Object.assign(t.style,{left:`${l}px`,top:`${o}px`,width:`${e.$refs.toggle.getBoundingClientRect().width}px`})})};return ki(e.$refs.toggle,t,a)}},localFilterBy(){const t=/[^<]*<([^>]+)/;return this.filterBy!==null?this.filterBy:this.userSelect?(e,n,i)=>{const r=i.match(t);return r&&e.subname?.toLocaleLowerCase?.()?.indexOf(r[1].toLocaleLowerCase())>-1||`${n} ${e.subname}`.toLocaleLowerCase().indexOf(i.toLocaleLowerCase())>-1}:G.VueSelect.props.filterBy.default},localLabel(){return this.label!==null?this.label:this.userSelect?"displayName":G.VueSelect.props.label.default},propsToForward(){const t=[...Object.keys(G.VueSelect.props),...G.VueSelect.mixins.flatMap(e=>Object.keys(e.props??{}))];return{...Object.fromEntries(Object.entries(this.$props).filter(([e])=>t.includes(e))),value:this.model,calculatePosition:this.localCalculatePosition,closeOnSelect:this.closeOnSelect&&!this.keepOpen,filterBy:this.localFilterBy,label:this.localLabel}},listenersToForward(){return{...this.$listeners,input:t=>{this.model=t}}}},mounted(){!this.labelOutside&&!this.inputLabel&&!this.ariaLabelCombobox&&Ft.util.warn("[NcSelect] An `inputLabel` or `ariaLabelCombobox` should be set. If an external label is used, `labelOutside` should be set to `true`."),this.inputLabel&&this.ariaLabelCombobox&&Ft.util.warn("[NcSelect] Only one of `inputLabel` or `ariaLabelCombobox` should to be set.")},methods:{t:k}};var Co=function(){var t=this,e=t._self._c;return e("VueSelect",t._g(t._b({staticClass:"select",class:{"select--legacy":t.isLegacy,"select--no-wrap":t.noWrap,"user-select":t.userSelect},on:{search:n=>t.search=n},scopedSlots:t._u([!t.labelOutside&&t.inputLabel?{key:"header",fn:function(){return[e("label",{staticClass:"select__label",attrs:{for:t.inputId}},[t._v(" "+t._s(t.inputLabel)+" ")])]},proxy:!0}:null,{key:"search",fn:function({attributes:n,events:i}){return[e("input",t._g(t._b({staticClass:"vs__search",class:t.inputClass,attrs:{required:t.inputRequired,dir:"auto"}},"input",n,!1),i))]}},{key:"open-indicator",fn:function({attributes:n}){return[e("ChevronDown",t._b({style:{cursor:t.disabled?null:"pointer"},attrs:{"fill-color":"var(--vs-controls-color)",size:26}},"ChevronDown",n,!1))]}},{key:"option",fn:function(n){return[t._t("option",function(){return[t.userSelect?e("NcListItemIcon",t._b({attrs:{"avatar-size":32,name:n[t.localLabel],search:t.search}},"NcListItemIcon",n,!1)):e("NcEllipsisedOption",{attrs:{name:String(n[t.localLabel]),search:t.search}})]},null,n)]}},{key:"selected-option",fn:function(n){return[t._t("selected-option",function(){return[t.userSelect?e("NcListItemIcon",t._b({attrs:{"avatar-size":t.avatarSize,name:n[t.localLabel],"no-margin":"",search:t.search}},"NcListItemIcon",n,!1)):e("NcEllipsisedOption",{attrs:{name:String(n[t.localLabel]),search:t.search}})]},{vBind:n})]}},{key:"spinner",fn:function(n){return[n.loading?e("NcLoadingIcon"):t._e()]}},{key:"no-options",fn:function(){return[t._v(" "+t._s(t.t("No results"))+" ")]},proxy:!0},t._l(t.$scopedSlots,function(n,i){return{key:i,fn:function(r){return[t._t(i,null,null,r)]}}})],null,!0)},"VueSelect",t.propsToForward,!1),t.listenersToForward))},Oo=[],Lo=U(_o,Co,Oo,!1,null,null);const Do=Lo.exports;var J={},ot={},rt={},Ee;function yn(){if(Ee)return rt;Ee=1,Object.defineProperty(rt,"__esModule",{value:!0}),rt.default=void 0;function t(r,a,l){return a=e(a),a in r?Object.defineProperty(r,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[a]=l,r}function e(r){var a=n(r,"string");return typeof a=="symbol"?a:a+""}function n(r,a){if(typeof r!="object"||!r)return r;var l=r[Symbol.toPrimitive];if(l!==void 0){var o=l.call(r,a);if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(a==="string"?String:Number)(r)}class i{constructor(a,l,o){t(this,"scope",void 0),t(this,"wrapped",void 0),this.scope="".concat(o?i.GLOBAL_SCOPE_PERSISTENT:i.GLOBAL_SCOPE_VOLATILE,"_").concat(btoa(a),"_"),this.wrapped=l}scopeKey(a){return"".concat(this.scope).concat(a)}setItem(a,l){this.wrapped.setItem(this.scopeKey(a),l)}getItem(a){return this.wrapped.getItem(this.scopeKey(a))}removeItem(a){this.wrapped.removeItem(this.scopeKey(a))}clear(){Object.keys(this.wrapped).filter(a=>a.startsWith(this.scope)).map(this.wrapped.removeItem.bind(this.wrapped))}}return rt.default=i,t(i,"GLOBAL_SCOPE_VOLATILE","nextcloud_vol"),t(i,"GLOBAL_SCOPE_PERSISTENT","nextcloud_per"),rt}var $e;function Ao(){if($e)return ot;$e=1,Object.defineProperty(ot,"__esModule",{value:!0}),ot.default=void 0;var t=e(yn());function e(l){return l&&l.__esModule?l:{default:l}}function n(l,o,d){return o=i(o),o in l?Object.defineProperty(l,o,{value:d,enumerable:!0,configurable:!0,writable:!0}):l[o]=d,l}function i(l){var o=r(l,"string");return typeof o=="symbol"?o:o+""}function r(l,o){if(typeof l!="object"||!l)return l;var d=l[Symbol.toPrimitive];if(d!==void 0){var c=d.call(l,o);if(typeof c!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(o==="string"?String:Number)(l)}class a{constructor(o){n(this,"appId",void 0),n(this,"persisted",!1),n(this,"clearedOnLogout",!1),this.appId=o}persist(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this.persisted=o,this}clearOnLogout(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this.clearedOnLogout=o,this}build(){return new t.default(this.appId,this.persisted?window.localStorage:window.sessionStorage,!this.clearedOnLogout)}}return ot.default=a,ot}var Ve;function ko(){if(Ve)return J;Ve=1,Object.defineProperty(J,"__esModule",{value:!0}),J.clearAll=a,J.clearNonPersistent=l,J.getBuilder=i;var t=n(Ao()),e=n(yn());function n(o){return o&&o.__esModule?o:{default:o}}function i(o){return new t.default(o)}function r(o,d){Object.keys(o).filter(c=>d?d(c):!0).map(o.removeItem.bind(o))}function a(){[window.sessionStorage,window.localStorage].map(o=>r(o))}function l(){[window.sessionStorage,window.localStorage].map(o=>r(o,d=>!d.startsWith(e.default.GLOBAL_SCOPE_PERSISTENT)))}return J}var To=ko();const Eo=To.getBuilder("notifications").clearOnLogout().persist().build();export{Eo as B,ve as E,Do as N,hn as S,Mo as U,gs as a,ws as b,cn as c,mo as d,No as e,os as f,dn as g,bs as p,Po as r,Et as u,ys as v}; -//# sourceMappingURL=BrowserStorage-BnOkYuQ2.chunk.mjs.map +//# sourceMappingURL=BrowserStorage-BKI4wjcl.chunk.mjs.map diff --git a/js/BrowserStorage-BnOkYuQ2.chunk.mjs.license b/js/BrowserStorage-BKI4wjcl.chunk.mjs.license similarity index 100% rename from js/BrowserStorage-BnOkYuQ2.chunk.mjs.license rename to js/BrowserStorage-BKI4wjcl.chunk.mjs.license diff --git a/js/BrowserStorage-BnOkYuQ2.chunk.mjs.map b/js/BrowserStorage-BKI4wjcl.chunk.mjs.map similarity index 99% rename from js/BrowserStorage-BnOkYuQ2.chunk.mjs.map rename to js/BrowserStorage-BKI4wjcl.chunk.mjs.map index 6e7f2eded..9b0e013b6 100644 --- a/js/BrowserStorage-BnOkYuQ2.chunk.mjs.map +++ b/js/BrowserStorage-BKI4wjcl.chunk.mjs.map @@ -1 +1 @@ -{"version":3,"file":"BrowserStorage-BnOkYuQ2.chunk.mjs","sources":["../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@nextcloud/vue-select/dist/vue-select.js","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-DFQfzh63.mjs","../node_modules/@nextcloud/vue/dist/chunks/index-CxTT94_h.mjs","../node_modules/@nextcloud/vue/dist/Components/NcEllipsisedOption.mjs","../node_modules/@nextcloud/vue/dist/Composables/useIsFullscreen.mjs","../node_modules/@nextcloud/vue/dist/Composables/useIsMobile.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/Functions/isDarkTheme.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants-Bls5liKo.mjs","../node_modules/@nextcloud/vue/dist/Composables/useIsDarkTheme.mjs","../node_modules/@nextcloud/vue/node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/vue/node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/vue/node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@vueuse/components/node_modules/vue-demi/lib/index.mjs","../node_modules/@vueuse/components/index.mjs","../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/unist-util-visit/lib/index.js","../node_modules/@nextcloud/vue/dist/chunks/autolink-D2pIbi92.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-DYuPlOca.mjs","../node_modules/@nextcloud/vue/dist/Functions/usernameToColor.mjs","../node_modules/@nextcloud/vue/dist/chunks/getAvatarUrl-IhLacDEr.mjs","../node_modules/@nextcloud/capabilities/node_modules/@nextcloud/initial-state/dist/index.js","../node_modules/@nextcloud/capabilities/dist/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserStatusIcon-Dfd_lPCI.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-CECxOkhK.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-4h0wo9uv.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-D41xabRp.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelect-CkB50N9T.mjs","../node_modules/@nextcloud/browser-storage/dist/scopedstorage.js","../node_modules/@nextcloud/browser-storage/dist/storagebuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../src/services/BrowserStorage.js"],"sourcesContent":["/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[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 = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\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 x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\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 == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\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 => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\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\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\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}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // 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 const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\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 // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(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 const isLeftSide = getSide(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 => isLeftSide ? 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 return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\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 } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\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 = clamp(min, mainAxisCoord, max);\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 = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\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 if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\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 if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\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 if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\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 }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle