niucloud-admin/niucloud/public/web/_nuxt/el-scrollbar.691cd720.js
全栈小学生 0e47055ccb v1.0.0-beta.1
2023-04-15 17:12:49 +08:00

2 lines
6.3 KiB
JavaScript

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