UNPKG

dk-plus

Version:
2 lines (1 loc) 5.23 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("vue"),Z=require("./index3.js"),p=require("./index4.js"),i=require("./index5.js"),ee=c.defineComponent({name:"DkSlider",props:Z.dkSliderProps,emits:p.sliderEmits,setup(t,{emit:w}){const M=c.ref(),u=c.reactive({inner:i.normalizeSliderValue(t.modelValue,t.min,t.max,t.range),dragging:!1,draggingIndex:0,hoverIndex:null,activeIndex:0});let I;const L=()=>{I&&window.clearTimeout(I),I=void 0},E=e=>{w("update:modelValue",e),w("input",e)},y=e=>{w("update:modelValue",e),w("change",e)};c.watch(()=>[t.modelValue,t.min,t.max,t.range],()=>{u.inner=i.normalizeSliderValue(t.modelValue,t.min,t.max,t.range)},{immediate:!0}),c.onBeforeUnmount(()=>{L(),V()});const d=c.computed(()=>Math.min(t.min,t.max)),m=c.computed(()=>Math.max(t.min,t.max)),v=c.computed(()=>i.normalizeSliderValue(u.inner,d.value,m.value,t.range)),f=c.computed(()=>i.isRangeValue(v.value)?v.value[0]:v.value),T=c.computed(()=>i.isRangeValue(v.value)?v.value[1]:v.value),b=c.computed(()=>t.range?Math.min(f.value,T.value):f.value),x=c.computed(()=>t.range?Math.max(f.value,T.value):f.value),j=c.computed(()=>t.vertical?{height:t.height||"200px"}:{}),z=c.computed(()=>{const e=i.valueToPercent(b.value,d.value,m.value),a=i.valueToPercent(x.value,d.value,m.value),n=Math.max(0,a-e);return t.vertical?{height:`${n}%`,bottom:`${e}%`}:{width:`${n}%`,left:`${e}%`}}),B=e=>{const a=e===0?t.range?b.value:f.value:x.value,n=i.clamp(i.valueToPercent(a,d.value,m.value),0,100);return t.vertical?{bottom:`${n}%`}:{left:`${n}%`}},C=e=>t.formatTooltip?String(t.formatTooltip(e)):String(e),N=e=>t.showTooltip?!!(u.dragging&&u.draggingIndex===e||u.hoverIndex===e):!1,q=c.computed(()=>{const e=t.marks;if(!e)return[];const a=[];for(const n of Object.keys(e)){const o=Number(n);if(!Number.isFinite(o))continue;const r=e[o];typeof r=="string"?a.push({value:o,label:r}):r&&typeof r=="object"&&a.push({value:o,label:r.label,style:r.style?r.style:void 0})}return a.filter(n=>n.value>=d.value&&n.value<=m.value).sort((n,o)=>n.value-o.value)}),F=c.computed(()=>{if(!t.showStops)return[];const e=d.value,a=m.value,n=t.step;if(!Number.isFinite(n)||n<=0)return[];const o=Math.floor((a-e)/n);if(o<=1)return[];const r=[];for(let l=1;l<o;l++){const g=e+l*n,s=i.clamp(i.valueToPercent(g,e,a),0,100);r.push(s)}return r}),U=e=>t.vertical?{bottom:`${e}%`}:{left:`${e}%`},_=e=>{const a=i.clamp(i.valueToPercent(e,d.value,m.value),0,100);return t.vertical?{bottom:`${a}%`}:{left:`${a}%`}},S=(e,a)=>{const n=M.value;if(!n)return d.value;const o=n.getBoundingClientRect(),r=d.value,l=m.value,g=l-r;if(g<=0)return r;let s=0;if(t.vertical){const D=o.height||1;s=(o.bottom-a)/D}else{const D=o.width||1;s=(e-o.left)/D}s=i.clamp(s,0,1);const Q=r+s*g,W=i.roundToStep(Q,t.step,r);return i.clamp(W,r,l)},h=(e,a,n)=>{if(t.disabled)return;const o=d.value,r=m.value,l=i.clamp(i.roundToStep(a,t.step,o),o,r);if(!t.range){u.inner=l,n==="input"?E(u.inner):y(u.inner);return}const g=i.isRangeValue(v.value)?[...v.value]:[o,r];g[e]=l;let s=[g[0],g[1]];s[0]>s[1]&&(s=[s[1],s[0]],u.activeIndex=e===0?1:0,u.draggingIndex=u.activeIndex),u.inner=s,n==="input"?E(u.inner):y(u.inner)},H=e=>{if(!t.range)return 0;const a=b.value,n=x.value;return Math.abs(e-a)<=Math.abs(e-n)?0:1},X=e=>{if(t.disabled||e.button!==0)return;const a=S(e.clientX,e.clientY),n=H(a);u.activeIndex=n,h(n,a,"change")},k=()=>{document.addEventListener("mousemove",P),document.addEventListener("mouseup",$),document.addEventListener("touchmove",R,{passive:!1}),document.addEventListener("touchend",A)},V=()=>{document.removeEventListener("mousemove",P),document.removeEventListener("mouseup",$),document.removeEventListener("touchmove",R),document.removeEventListener("touchend",A)},Y=(e,a)=>{t.disabled||a.button===0&&(u.dragging=!0,u.draggingIndex=e,u.activeIndex=e,k())},O=e=>{t.disabled||(u.dragging=!0,u.draggingIndex=e,u.activeIndex=e,k())},P=e=>{if(!u.dragging)return;const a=S(e.clientX,e.clientY);h(u.draggingIndex,a,"input")},$=()=>{!u.dragging||(u.dragging=!1,V(),y(u.inner))},R=e=>{if(!u.dragging)return;e.preventDefault();const a=e.touches[0];if(!a)return;const n=S(a.clientX,a.clientY);h(u.draggingIndex,n,"input")},A=()=>{!u.dragging||(u.dragging=!1,V(),y(u.inner))},G=(e,a)=>{if(t.disabled)return;const n=t.step;if(!Number.isFinite(n)||n<=0)return;const o=a.key;if(o!=="ArrowLeft"&&o!=="ArrowRight"&&o!=="ArrowUp"&&o!=="ArrowDown"&&o!=="Home"&&o!=="End")return;a.preventDefault();const r=e===0?t.range?b.value:f.value:x.value;let l=r;(o==="ArrowLeft"||o==="ArrowDown")&&(l=r-n),(o==="ArrowRight"||o==="ArrowUp")&&(l=r+n),o==="Home"&&(l=d.value),o==="End"&&(l=m.value),u.activeIndex=e,h(e,l,"change")},J=(e,a)=>{if(t.disabled)return;L();const n=t.debounce||0;if(!n){u.activeIndex=e,h(e,a,"change");return}I=window.setTimeout(()=>{u.activeIndex=e,h(e,a,"change")},n)},K=c.computed(()=>!!t.range);return{runwayRef:M,state:u,normalized:v,firstValue:f,secondValue:T,minValue:b,maxValue:x,isRange:K,runwayStyle:j,barStyle:z,buttonStyle:B,tooltipVisible:N,formatTooltipText:C,marksList:q,stops:F,stopStyle:U,markStyle:_,onRunwayMouseDown:X,onButtonDown:Y,onButtonTouchStart:O,onKeydown:G,onInputNumberChange:J}}});exports.default=ee;