import{ag as P,b2 as A,bW as Z,r as f,v as z,ah as W,Y as N,ae as q,ai as G,s as ee,ak as D,j as B,o as H,d as I,S as te,b as M,B as k,u as y,n as x,T as ae,ay as le,aE as se,c as J,a as j,F as oe,ap as L,aL as re,aM as F,y as Y,z as ne,g as ie,h as ue,A as K,q as ce,k as ve,l as fe,a$ as me,aU as de,ao as pe}from"./m6uXH7i0.js";import{c as V,b as he}from"./_syGKIn2.js";import{t as be}from"./Cq9Fpw4b.js";import{u as ye}from"./BoDc7dET.js";const ge=["",void 0,null],Se=void 0,We=P({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:o=>A(o)?!o():!o}}),Ue=(o,i)=>{let a=Z();a.value||(a=f({}));const l=z(()=>o.emptyValues||a.value.emptyValues||ge),r=z(()=>A(o.valueOnClear)?o.valueOnClear():o.valueOnClear!==void 0?o.valueOnClear:A(a.value.valueOnClear)?a.value.valueOnClear():a.value.valueOnClear!==void 0?a.value.valueOnClear:i!==void 0?i:Se),u=m=>l.value.includes(m);return l.value.includes(r.value),{emptyValues:l,valueOnClear:r,isEmptyValue:u}},O=4,we={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},ze=({move:o,size:i,bar:a})=>({[a.size]:i,transform:`translate${a.axis}(${o}%)`}),U=Symbol("scrollbarContextKey"),Ee=P({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),_e="Thumb",Ce=N({__name:"thumb",props:Ee,setup(o){const i=o,a=q(U),l=G("scrollbar");a||be(_e,"can not inject scrollbar context");const r=f(),u=f(),m=f({}),h=f(!1);let s=!1,b=!1,g=se?document.onselectstart:null;const t=z(()=>we[i.vertical?"vertical":"horizontal"]),n=z(()=>ze({size:i.size,move:i.move,bar:t.value})),d=z(()=>r.value[t.value.offset]**2/a.wrapElement[t.value.scrollSize]/i.ratio/u.value[t.value.offset]),p=v=>{var w;if(v.stopPropagation(),v.ctrlKey||[1,2].includes(v.button))return;(w=window.getSelection())==null||w.removeAllRanges(),_(v);const C=v.currentTarget;C&&(m.value[t.value.axis]=C[t.value.offset]-(v[t.value.client]-C.getBoundingClientRect()[t.value.direction]))},E=v=>{if(!u.value||!r.value||!a.wrapElement)return;const w=Math.abs(v.target.getBoundingClientRect()[t.value.direction]-v[t.value.client]),C=u.value[t.value.offset]/2,R=(w-C)*100*d.value/r.value[t.value.offset];a.wrapElement[t.value.scroll]=R*a.wrapElement[t.value.scrollSize]/100},_=v=>{v.stopImmediatePropagation(),s=!0,document.addEventListener("mousemove",S),document.addEventListener("mouseup",c),g=document.onselectstart,document.onselectstart=()=>!1},S=v=>{if(!r.value||!u.value||s===!1)return;const w=m.value[t.value.axis];if(!w)return;const C=(r.value.getBoundingClientRect()[t.value.direction]-v[t.value.client])*-1,R=u.value[t.value.offset]-w,Q=(C-R)*100*d.value/r.value[t.value.offset];a.wrapElement[t.value.scroll]=Q*a.wrapElement[t.value.scrollSize]/100},c=()=>{s=!1,m.value[t.value.axis]=0,document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",c),$(),b&&(h.value=!1)},e=()=>{b=!1,h.value=!!i.size},T=()=>{b=!0,h.value=s};ee(()=>{$(),document.removeEventListener("mouseup",c)});const $=()=>{document.onselectstart!==g&&(document.onselectstart=g)};return V(D(a,"scrollbarElement"),"mousemove",e),V(D(a,"scrollbarElement"),"mouseleave",T),(v,w)=>(H(),B(le,{name:y(l).b("fade"),persisted:""},{default:I(()=>[te(M("div",{ref_key:"instance",ref:r,class:k([y(l).e("bar"),y(l).is(y(t).key)]),onMousedown:E},[M("div",{ref_key:"thumb",ref:u,class:k(y(l).e("thumb")),style:x(y(n)),onMousedown:p},null,38)],34),[[ae,v.always||h.value]])]),_:1},8,["name"]))}});var X=W(Ce,[["__file","thumb.vue"]]);const Oe=P({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),Te=N({__name:"bar",props:Oe,setup(o,{expose:i}){const a=o,l=q(U),r=f(0),u=f(0),m=f(""),h=f(""),s=f(1),b=f(1);return i({handleScroll:n=>{if(n){const d=n.offsetHeight-O,p=n.offsetWidth-O;u.value=n.scrollTop*100/d*s.value,r.value=n.scrollLeft*100/p*b.value}},update:()=>{const n=l==null?void 0:l.wrapElement;if(!n)return;const d=n.offsetHeight-O,p=n.offsetWidth-O,E=d**2/n.scrollHeight,_=p**2/n.scrollWidth,S=Math.max(E,a.minSize),c=Math.max(_,a.minSize);s.value=E/(d-E)/(S/(d-S)),b.value=_/(p-_)/(c/(p-c)),h.value=S+O<d?`${S}px`:"",m.value=c+O<p?`${c}px`:""}}),(n,d)=>(H(),J(oe,null,[j(X,{move:r.value,ratio:b.value,size:m.value,always:n.always},null,8,["move","ratio","size","always"]),j(X,{move:u.value,ratio:s.value,size:h.value,vertical:"",always:n.always},null,8,["move","ratio","size","always"])],64))}});var Le=W(Te,[["__file","bar.vue"]]);const He=P({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:re([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,...ye(["ariaLabel","ariaOrientation"])}),ke={scroll:({scrollTop:o,scrollLeft:i})=>[o,i].every(L)},Pe="ElScrollbar",Ne=N({name:Pe}),Re=N({...Ne,props:He,emits:ke,setup(o,{expose:i,emit:a}){const l=o,r=G("scrollbar");let u,m;const h=f(),s=f(),b=f(),g=f(),t=z(()=>{const e={};return l.height&&(e.height=F(l.height)),l.maxHeight&&(e.maxHeight=F(l.maxHeight)),[l.wrapStyle,e]}),n=z(()=>[l.wrapClass,r.e("wrap"),{[r.em("wrap","hidden-default")]:!l.native}]),d=z(()=>[r.e("view"),l.viewClass]),p=()=>{var e;s.value&&((e=g.value)==null||e.handleScroll(s.value),a("scroll",{scrollTop:s.value.scrollTop,scrollLeft:s.value.scrollLeft}))};function E(e,T){de(e)?s.value.scrollTo(e):L(e)&&L(T)&&s.value.scrollTo(e,T)}const _=e=>{L(e)&&(s.value.scrollTop=e)},S=e=>{L(e)&&(s.value.scrollLeft=e)},c=()=>{var e;(e=g.value)==null||e.update()};return Y(()=>l.noresize,e=>{e?(u==null||u(),m==null||m()):({stop:u}=he(b,c),m=V("resize",c))},{immediate:!0}),Y(()=>[l.maxHeight,l.height],()=>{l.native||K(()=>{var e;c(),s.value&&((e=g.value)==null||e.handleScroll(s.value))})}),ne(U,ie({scrollbarElement:h,wrapElement:s})),ue(()=>{l.native||K(()=>{c()})}),ce(()=>c()),i({wrapRef:s,update:c,scrollTo:E,setScrollTop:_,setScrollLeft:S,handleScroll:p}),(e,T)=>(H(),J("div",{ref_key:"scrollbarRef",ref:h,class:k(y(r).b())},[M("div",{ref_key:"wrapRef",ref:s,class:k(y(n)),style:x(y(t)),onScroll:p},[(H(),B(me(e.tag),{id:e.id,ref_key:"resizeRef",ref:b,class:k(y(d)),style:x(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:I(()=>[fe(e.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),e.native?ve("v-if",!0):(H(),B(Le,{key:0,ref_key:"barRef",ref:g,always:e.always,"min-size":e.minSize},null,8,["always","min-size"]))],2))}});var Ae=W(Re,[["__file","scrollbar.vue"]]);const $e=pe(Ae);export{$e as E,We as a,Ue as u};
