2023-11-15 15:57:04 +08:00

2 lines
14 KiB
JavaScript

import{E as Pe}from"./index-dbeb412e.js";import{a as Ee,E as Te}from"./index-4d8f36c6.js";import{b as ve,d as le,_ as ye,a as me,r as ze,a6 as Me,v as pe}from"./index-cf9a2dd7.js";import{G as Ie,r as Q,o as Fe,E as se,c as f,s as Xe,I as Ye,w as re,d as te,b as fe,O as Be,Z as ce,e as L,f as K,y as xe,x as Ve,g as q,B as Ke,u as t,n as R,j as Z,_ as Ce,m as we,U as Re,J as Ae,v as ue,H as ae,F as oe,z as ie,l as $e}from"./plugin-vue_export-helper-85a4d40b.js";import{U as ne,I as ge,C as Ne,t as Ue,d as he}from"./event-f85d77b0.js";import{E as We,u as Oe}from"./index-1ad115d7.js";import{d as Se}from"./debounce-6c3123a6.js";import{c as je}from"./index-bcd7a424.js";const Le=Symbol("sliderContextKey"),He=ve({modelValue:{type:le([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:ye,inputSize:ye,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:le(Function),default:void 0},disabled:Boolean,range:Boolean,vertical:Boolean,height:String,debounce:{type:Number,default:300},label:{type:String,default:void 0},rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:le(Function),default:void 0},tooltipClass:{type:String,default:void 0},placement:{type:String,values:Ee,default:"top"},marks:{type:le(Object)},validateEvent:{type:Boolean,default:!0}}),de=e=>me(e)||Ie(e)&&e.every(me),_e={[ne]:de,[ge]:de,[Ne]:de},Ge=(e,l,i)=>{const n=Q();return Fe(async()=>{e.range?(Array.isArray(e.modelValue)?(l.firstValue=Math.max(e.min,e.modelValue[0]),l.secondValue=Math.min(e.max,e.modelValue[1])):(l.firstValue=e.min,l.secondValue=e.max),l.oldValue=[l.firstValue,l.secondValue]):(typeof e.modelValue!="number"||Number.isNaN(e.modelValue)?l.firstValue=e.min:l.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),l.oldValue=l.firstValue),je(window,"resize",i),await se(),i()}),{sliderWrapper:n}},Je=e=>f(()=>e.marks?Object.keys(e.marks).map(Number.parseFloat).sort((i,n)=>i-n).filter(i=>i<=e.max&&i>=e.min).map(i=>({point:i,position:(i-e.min)*100/(e.max-e.min),mark:e.marks[i]})):[]),Ze=(e,l,i)=>{const{form:n,formItem:s}=ze(),c=Xe(),u=Q(),V=Q(),w={firstButton:u,secondButton:V},d=f(()=>e.disabled||(n==null?void 0:n.disabled)||!1),v=f(()=>Math.min(l.firstValue,l.secondValue)),o=f(()=>Math.max(l.firstValue,l.secondValue)),x=f(()=>e.range?`${100*(o.value-v.value)/(e.max-e.min)}%`:`${100*(l.firstValue-e.min)/(e.max-e.min)}%`),C=f(()=>e.range?`${100*(v.value-e.min)/(e.max-e.min)}%`:"0%"),P=f(()=>e.vertical?{height:e.height}:{}),T=f(()=>e.vertical?{height:x.value,bottom:C.value}:{width:x.value,left:C.value}),z=()=>{c.value&&(l.sliderSize=c.value[`client${e.vertical?"Height":"Width"}`])},p=m=>{const h=e.min+m*(e.max-e.min)/100;if(!e.range)return u;let E;return Math.abs(v.value-h)<Math.abs(o.value-h)?E=l.firstValue<l.secondValue?"firstButton":"secondButton":E=l.firstValue>l.secondValue?"firstButton":"secondButton",w[E]},S=m=>{const h=p(m);return h.value.setPosition(m),h},I=m=>{l.firstValue=m,g(e.range?[v.value,o.value]:m)},k=m=>{l.secondValue=m,e.range&&g([v.value,o.value])},g=m=>{i(ne,m),i(ge,m)},y=async()=>{await se(),i(Ne,e.range?[v.value,o.value]:e.modelValue)},j=m=>{var h,E,_,G,J,O;if(d.value||l.dragging)return;z();let Y=0;if(e.vertical){const N=(_=(E=(h=m.touches)==null?void 0:h.item(0))==null?void 0:E.clientY)!=null?_:m.clientY;Y=(c.value.getBoundingClientRect().bottom-N)/l.sliderSize*100}else{const N=(O=(J=(G=m.touches)==null?void 0:G.item(0))==null?void 0:J.clientX)!=null?O:m.clientX,M=c.value.getBoundingClientRect().left;Y=(N-M)/l.sliderSize*100}if(!(Y<0||Y>100))return S(Y)};return{elFormItem:s,slider:c,firstButton:u,secondButton:V,sliderDisabled:d,minValue:v,maxValue:o,runwayStyle:P,barStyle:T,resetSize:z,setPosition:S,emitChange:y,onSliderWrapperPrevent:m=>{var h,E;((h=w.firstButton.value)!=null&&h.dragging||(E=w.secondButton.value)!=null&&E.dragging)&&m.preventDefault()},onSliderClick:m=>{j(m)&&y()},onSliderDown:async m=>{const h=j(m);h&&(await se(),h.value.onButtonDown(m))},setFirstValue:I,setSecondValue:k}},{left:qe,down:Qe,right:De,up:el,home:ll,end:tl,pageUp:nl,pageDown:al}=We,ol=(e,l,i)=>{const n=Q(),s=Q(!1),c=f(()=>l.value instanceof Function),u=f(()=>c.value&&l.value(e.modelValue)||e.modelValue),V=Se(()=>{i.value&&(s.value=!0)},50),w=Se(()=>{i.value&&(s.value=!1)},50);return{tooltip:n,tooltipVisible:s,formatValue:u,displayTooltip:V,hideTooltip:w}},rl=(e,l,i)=>{const{disabled:n,min:s,max:c,step:u,showTooltip:V,precision:w,sliderSize:d,formatTooltip:v,emitChange:o,resetSize:x,updateDragging:C}=Ye(Le),{tooltip:P,tooltipVisible:T,formatValue:z,displayTooltip:p,hideTooltip:S}=ol(e,v,V),I=Q(),k=f(()=>`${(e.modelValue-s.value)/(c.value-s.value)*100}%`),g=f(()=>e.vertical?{bottom:k.value}:{left:k.value}),y=()=>{l.hovering=!0,p()},j=()=>{l.hovering=!1,l.dragging||S()},H=a=>{n.value||(a.preventDefault(),Y(a),window.addEventListener("mousemove",N),window.addEventListener("touchmove",N),window.addEventListener("mouseup",M),window.addEventListener("touchend",M),window.addEventListener("contextmenu",M),I.value.focus())},A=a=>{n.value||(l.newPosition=Number.parseFloat(k.value)+a/(c.value-s.value)*100,$(l.newPosition),o())},W=()=>{A(-u.value)},m=()=>{A(u.value)},h=()=>{A(-u.value*4)},E=()=>{A(u.value*4)},_=()=>{n.value||($(0),o())},G=()=>{n.value||($(100),o())},J=a=>{let b=!0;[qe,Qe].includes(a.key)?W():[De,el].includes(a.key)?m():a.key===ll?_():a.key===tl?G():a.key===al?h():a.key===nl?E():b=!1,b&&a.preventDefault()},O=a=>{let b,F;return a.type.startsWith("touch")?(F=a.touches[0].clientY,b=a.touches[0].clientX):(F=a.clientY,b=a.clientX),{clientX:b,clientY:F}},Y=a=>{l.dragging=!0,l.isClick=!0;const{clientX:b,clientY:F}=O(a);e.vertical?l.startY=F:l.startX=b,l.startPosition=Number.parseFloat(k.value),l.newPosition=l.startPosition},N=a=>{if(l.dragging){l.isClick=!1,p(),x();let b;const{clientX:F,clientY:U}=O(a);e.vertical?(l.currentY=U,b=(l.startY-l.currentY)/d.value*100):(l.currentX=F,b=(l.currentX-l.startX)/d.value*100),l.newPosition=l.startPosition+b,$(l.newPosition)}},M=()=>{l.dragging&&(setTimeout(()=>{l.dragging=!1,l.hovering||S(),l.isClick||$(l.newPosition),o()},0),window.removeEventListener("mousemove",N),window.removeEventListener("touchmove",N),window.removeEventListener("mouseup",M),window.removeEventListener("touchend",M),window.removeEventListener("contextmenu",M))},$=async a=>{if(a===null||Number.isNaN(+a))return;a<0?a=0:a>100&&(a=100);const b=100/((c.value-s.value)/u.value);let U=Math.round(a/b)*b*(c.value-s.value)*.01+s.value;U=Number.parseFloat(U.toFixed(w.value)),U!==e.modelValue&&i(ne,U),!l.dragging&&e.modelValue!==l.oldValue&&(l.oldValue=e.modelValue),await se(),l.dragging&&p(),P.value.updatePopper()};return re(()=>l.dragging,a=>{C(a)}),{disabled:n,button:I,tooltip:P,tooltipVisible:T,showTooltip:V,wrapperStyle:g,formatValue:z,handleMouseEnter:y,handleMouseLeave:j,onButtonDown:H,onKeyDown:J,setPosition:$}},sl=(e,l,i,n)=>({stops:f(()=>{if(!e.showStops||e.min>e.max)return[];if(e.step===0)return[];const u=(e.max-e.min)/e.step,V=100*e.step/(e.max-e.min),w=Array.from({length:u-1}).map((d,v)=>(v+1)*V);return e.range?w.filter(d=>d<100*(i.value-e.min)/(e.max-e.min)||d>100*(n.value-e.min)/(e.max-e.min)):w.filter(d=>d>100*(l.firstValue-e.min)/(e.max-e.min))}),getStopStyle:u=>e.vertical?{bottom:`${u}%`}:{left:`${u}%`}}),ul=(e,l,i,n,s,c)=>{const u=d=>{s(ne,d),s(ge,d)},V=()=>e.range?![i.value,n.value].every((d,v)=>d===l.oldValue[v]):e.modelValue!==l.oldValue,w=()=>{var d,v;if(e.min>e.max){Ue("Slider","min should not be greater than max.");return}const o=e.modelValue;e.range&&Array.isArray(o)?o[1]<e.min?u([e.min,e.min]):o[0]>e.max?u([e.max,e.max]):o[0]<e.min?u([e.min,o[1]]):o[1]>e.max?u([o[0],e.max]):(l.firstValue=o[0],l.secondValue=o[1],V()&&(e.validateEvent&&((d=c==null?void 0:c.validate)==null||d.call(c,"change").catch(x=>he())),l.oldValue=o.slice())):!e.range&&typeof o=="number"&&!Number.isNaN(o)&&(o<e.min?u(e.min):o>e.max?u(e.max):(l.firstValue=o,V()&&(e.validateEvent&&((v=c==null?void 0:c.validate)==null||v.call(c,"change").catch(x=>he())),l.oldValue=o)))};w(),re(()=>l.dragging,d=>{d||w()}),re(()=>e.modelValue,(d,v)=>{l.dragging||Array.isArray(d)&&Array.isArray(v)&&d.every((o,x)=>o===v[x])&&l.firstValue===d[0]&&l.secondValue===d[1]||w()},{deep:!0}),re(()=>[e.min,e.max],()=>{w()})},il=ve({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:Ee,default:"top"}}),dl={[ne]:e=>me(e)},ml=["tabindex"],cl=te({name:"ElSliderButton"}),vl=te({...cl,props:il,emits:dl,setup(e,{expose:l,emit:i}){const n=e,s=fe("slider"),c=Be({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:n.modelValue}),{disabled:u,button:V,tooltip:w,showTooltip:d,tooltipVisible:v,wrapperStyle:o,formatValue:x,handleMouseEnter:C,handleMouseLeave:P,onButtonDown:T,onKeyDown:z,setPosition:p}=rl(n,c,i),{hovering:S,dragging:I}=ce(c);return l({onButtonDown:T,onKeyDown:z,setPosition:p,hovering:S,dragging:I}),(k,g)=>(L(),K("div",{ref_key:"button",ref:V,class:R([t(s).e("button-wrapper"),{hover:t(S),dragging:t(I)}]),style:Z(t(o)),tabindex:t(u)?-1:0,onMouseenter:g[0]||(g[0]=(...y)=>t(C)&&t(C)(...y)),onMouseleave:g[1]||(g[1]=(...y)=>t(P)&&t(P)(...y)),onMousedown:g[2]||(g[2]=(...y)=>t(T)&&t(T)(...y)),onTouchstart:g[3]||(g[3]=(...y)=>t(T)&&t(T)(...y)),onFocus:g[4]||(g[4]=(...y)=>t(C)&&t(C)(...y)),onBlur:g[5]||(g[5]=(...y)=>t(P)&&t(P)(...y)),onKeydown:g[6]||(g[6]=(...y)=>t(z)&&t(z)(...y))},[xe(t(Te),{ref_key:"tooltip",ref:w,visible:t(v),placement:k.placement,"fallback-placements":["top","bottom","right","left"],"stop-popper-mouse-event":!1,"popper-class":k.tooltipClass,disabled:!t(d),persistent:""},{content:Ve(()=>[q("span",null,Ke(t(x)),1)]),default:Ve(()=>[q("div",{class:R([t(s).e("button"),{hover:t(S),dragging:t(I)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled"])],46,ml))}});var ke=Ce(vl,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/button.vue"]]);const fl=ve({mark:{type:le([String,Object]),default:void 0}});var gl=te({name:"ElSliderMarker",props:fl,setup(e){const l=fe("slider"),i=f(()=>we(e.mark)?e.mark:e.mark.label),n=f(()=>we(e.mark)?void 0:e.mark.style);return()=>Re("div",{class:l.e("marks-text"),style:n.value},i.value)}});const bl=["id","role","aria-label","aria-labelledby"],yl={key:1},Vl=te({name:"ElSlider"}),wl=te({...Vl,props:He,emits:_e,setup(e,{expose:l,emit:i}){const n=e,s=fe("slider"),{t:c}=Oe(),u=Be({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:V,slider:w,firstButton:d,secondButton:v,sliderDisabled:o,minValue:x,maxValue:C,runwayStyle:P,barStyle:T,resetSize:z,emitChange:p,onSliderWrapperPrevent:S,onSliderClick:I,onSliderDown:k,setFirstValue:g,setSecondValue:y}=Ze(n,u,i),{stops:j,getStopStyle:H}=sl(n,u,x,C),{inputId:A,isLabeledByFormItem:W}=Me(n,{formItemContext:V}),m=pe(),h=f(()=>n.inputSize||m.value),E=f(()=>n.label||c("el.slider.defaultLabel",{min:n.min,max:n.max})),_=f(()=>n.range?n.rangeStartLabel||c("el.slider.defaultRangeStartLabel"):E.value),G=f(()=>n.formatValueText?n.formatValueText(a.value):`${a.value}`),J=f(()=>n.rangeEndLabel||c("el.slider.defaultRangeEndLabel")),O=f(()=>n.formatValueText?n.formatValueText(b.value):`${b.value}`),Y=f(()=>[s.b(),s.m(m.value),s.is("vertical",n.vertical),{[s.m("with-input")]:n.showInput}]),N=Je(n);ul(n,u,x,C,i,V);const M=f(()=>{const r=[n.min,n.max,n.step].map(X=>{const D=`${X}`.split(".")[1];return D?D.length:0});return Math.max.apply(null,r)}),{sliderWrapper:$}=Ge(n,u,z),{firstValue:a,secondValue:b,sliderSize:F}=ce(u),U=r=>{u.dragging=r};return Ae(Le,{...ce(n),sliderSize:F,disabled:o,precision:M,emitChange:p,resetSize:z,updateDragging:U}),l({onSliderClick:I}),(r,X)=>{var D,be;return L(),K("div",{id:r.range?t(A):void 0,ref_key:"sliderWrapper",ref:$,class:R(t(Y)),role:r.range?"group":void 0,"aria-label":r.range&&!t(W)?t(E):void 0,"aria-labelledby":r.range&&t(W)?(D=t(V))==null?void 0:D.labelId:void 0,onTouchstart:X[2]||(X[2]=(...B)=>t(S)&&t(S)(...B)),onTouchmove:X[3]||(X[3]=(...B)=>t(S)&&t(S)(...B))},[q("div",{ref_key:"slider",ref:w,class:R([t(s).e("runway"),{"show-input":r.showInput&&!r.range},t(s).is("disabled",t(o))]),style:Z(t(P)),onMousedown:X[0]||(X[0]=(...B)=>t(k)&&t(k)(...B)),onTouchstart:X[1]||(X[1]=(...B)=>t(k)&&t(k)(...B))},[q("div",{class:R(t(s).e("bar")),style:Z(t(T))},null,6),xe(ke,{id:r.range?void 0:t(A),ref_key:"firstButton",ref:d,"model-value":t(a),vertical:r.vertical,"tooltip-class":r.tooltipClass,placement:r.placement,role:"slider","aria-label":r.range||!t(W)?t(_):void 0,"aria-labelledby":!r.range&&t(W)?(be=t(V))==null?void 0:be.labelId:void 0,"aria-valuemin":r.min,"aria-valuemax":r.range?t(b):r.max,"aria-valuenow":t(a),"aria-valuetext":t(G),"aria-orientation":r.vertical?"vertical":"horizontal","aria-disabled":t(o),"onUpdate:modelValue":t(g)},null,8,["id","model-value","vertical","tooltip-class","placement","aria-label","aria-labelledby","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"]),r.range?(L(),ue(ke,{key:0,ref_key:"secondButton",ref:v,"model-value":t(b),vertical:r.vertical,"tooltip-class":r.tooltipClass,placement:r.placement,role:"slider","aria-label":t(J),"aria-valuemin":t(a),"aria-valuemax":r.max,"aria-valuenow":t(b),"aria-valuetext":t(O),"aria-orientation":r.vertical?"vertical":"horizontal","aria-disabled":t(o),"onUpdate:modelValue":t(y)},null,8,["model-value","vertical","tooltip-class","placement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):ae("v-if",!0),r.showStops?(L(),K("div",yl,[(L(!0),K(oe,null,ie(t(j),(B,ee)=>(L(),K("div",{key:ee,class:R(t(s).e("stop")),style:Z(t(H)(B))},null,6))),128))])):ae("v-if",!0),t(N).length>0?(L(),K(oe,{key:2},[q("div",null,[(L(!0),K(oe,null,ie(t(N),(B,ee)=>(L(),K("div",{key:ee,style:Z(t(H)(B.position)),class:R([t(s).e("stop"),t(s).e("marks-stop")])},null,6))),128))]),q("div",{class:R(t(s).e("marks"))},[(L(!0),K(oe,null,ie(t(N),(B,ee)=>(L(),ue(t(gl),{key:ee,mark:B.mark,style:Z(t(H)(B.position))},null,8,["mark","style"]))),128))],2)],64)):ae("v-if",!0)],38),r.showInput&&!r.range?(L(),ue(t(Pe),{key:0,ref:"input","model-value":t(a),class:R(t(s).e("input")),step:r.step,disabled:t(o),controls:r.showInputControls,min:r.min,max:r.max,debounce:r.debounce,size:t(h),"onUpdate:modelValue":t(g),onChange:t(p)},null,8,["model-value","class","step","disabled","controls","min","max","debounce","size","onUpdate:modelValue","onChange"])):ae("v-if",!0)],42,bl)}}});var hl=Ce(wl,[["__file","/home/runner/work/element-plus/element-plus/packages/components/slider/src/slider.vue"]]);const Pl=$e(hl);export{Pl as E};