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

AltStyle によって変換されたページ (->オリジナル) /