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