UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

2 lines (1 loc) 9.19 kB
import{DomHandler as t}from"primevue/utils";import e from"primevue/basecomponent";import n from"primevue/slider/style";import{openBlock as i,createElementBlock as a,mergeProps as r,createElementVNode as o,createCommentVNode as s}from"vue";function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(t,e){if(t){if("string"==typeof t)return m(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(t,e):void 0}}function h(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function d(t){if(Array.isArray(t))return m(t)}function m(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}var g={name:"Slider",extends:{name:"BaseSlider",extends:e,props:{modelValue:[Number,Array],min:{type:Number,default:0},max:{type:Number,default:100},orientation:{type:String,default:"horizontal"},step:{type:Number,default:null},range:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},tabindex:{type:Number,default:0},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:n,provide:function(){return{$parentInstance:this}}},emits:["update:modelValue","change","slideend"],dragging:!1,handleIndex:null,initX:null,initY:null,barWidth:null,barHeight:null,dragListener:null,dragEndListener:null,beforeUnmount:function(){this.unbindDragListeners()},methods:{updateDomData:function(){var e=this.$el.getBoundingClientRect();this.initX=e.left+t.getWindowScrollLeft(),this.initY=e.top+t.getWindowScrollTop(),this.barWidth=this.$el.offsetWidth,this.barHeight=this.$el.offsetHeight},setValue:function(t){var e=("horizontal"===this.orientation?100*((t.touches?t.touches[0].pageX:t.pageX)-this.initX)/this.barWidth:100*(this.initY+this.barHeight-(t.touches?t.touches[0].pageY:t.pageY))/this.barHeight)/100*(this.max-this.min)+this.min;if(this.step){var n=this.range?this.value[this.handleIndex]:this.value,i=e-n;i<0?e=n+Math.ceil(e/this.step-n/this.step)*this.step:i>0&&(e=n+Math.floor(e/this.step-n/this.step)*this.step)}else e=Math.floor(e);this.updateModel(t,e)},updateModel:function(t,e){var n,i,a=parseFloat(e.toFixed(10));this.range?(n=this.value?d(i=this.value)||h(i)||u(i)||l():[],0==this.handleIndex?(a<this.min?a=this.min:a>=this.max&&(a=this.max),n[0]=a):(a>this.max?a=this.max:a<=this.min&&(a=this.min),n[1]=a)):(a<this.min?a=this.min:a>this.max&&(a=this.max),n=a),this.$emit("update:modelValue",n),this.$emit("change",n)},onDragStart:function(t,e){this.disabled||(this.$el.setAttribute("data-p-sliding",!0),this.dragging=!0,this.updateDomData(),this.handleIndex=this.range&&this.value[0]===this.max?0:e,t.currentTarget.focus(),t.preventDefault())},onDrag:function(t){this.dragging&&(this.setValue(t),t.preventDefault())},onDragEnd:function(t){this.dragging&&(this.dragging=!1,this.$el.setAttribute("data-p-sliding",!1),this.$emit("slideend",{originalEvent:t,value:this.value}))},onBarClick:function(e){this.disabled||"handle"!==t.getAttribute(e.target,"data-pc-section")&&(this.updateDomData(),this.setValue(e))},onMouseDown:function(t,e){this.bindDragListeners(),this.onDragStart(t,e)},onKeyDown:function(t,e){switch(this.handleIndex=e,t.code){case"ArrowDown":case"ArrowLeft":this.decrementValue(t,e),t.preventDefault();break;case"ArrowUp":case"ArrowRight":this.incrementValue(t,e),t.preventDefault();break;case"PageDown":this.decrementValue(t,e,!0),t.preventDefault();break;case"PageUp":this.incrementValue(t,e,!0),t.preventDefault();break;case"Home":this.updateModel(t,this.min),t.preventDefault();break;case"End":this.updateModel(t,this.max),t.preventDefault()}},decrementValue:function(t,e){this.updateModel(t,this.range?this.step?this.value[e]-this.step:this.value[e]-1:this.step?this.value-this.step:!this.step&&(arguments.length>2&&void 0!==arguments[2]&&arguments[2])?this.value-10:this.value-1),t.preventDefault()},incrementValue:function(t,e){this.updateModel(t,this.range?this.step?this.value[e]+this.step:this.value[e]+1:this.step?this.value+this.step:!this.step&&(arguments.length>2&&void 0!==arguments[2]&&arguments[2])?this.value+10:this.value+1),t.preventDefault()},bindDragListeners:function(){this.dragListener||(this.dragListener=this.onDrag.bind(this),document.addEventListener("mousemove",this.dragListener)),this.dragEndListener||(this.dragEndListener=this.onDragEnd.bind(this),document.addEventListener("mouseup",this.dragEndListener))},unbindDragListeners:function(){this.dragListener&&(document.removeEventListener("mousemove",this.dragListener),this.dragListener=null),this.dragEndListener&&(document.removeEventListener("mouseup",this.dragEndListener),this.dragEndListener=null)}},computed:{value:function(){var t,e,n,i,a;return this.range?[null!==(e=null===(n=this.modelValue)||void 0===n?void 0:n[0])&&void 0!==e?e:this.min,null!==(i=null===(a=this.modelValue)||void 0===a?void 0:a[1])&&void 0!==i?i:this.max]:null!==(t=this.modelValue)&&void 0!==t?t:this.min},horizontal:function(){return"horizontal"===this.orientation},vertical:function(){return"vertical"===this.orientation},rangeStyle:function(){if(this.range){var t=this.rangeEndPosition>this.rangeStartPosition?this.rangeEndPosition-this.rangeStartPosition:this.rangeStartPosition-this.rangeEndPosition,e=this.rangeEndPosition>this.rangeStartPosition?this.rangeStartPosition:this.rangeEndPosition;return this.horizontal?{left:e+"%",width:t+"%"}:{bottom:e+"%",height:t+"%"}}return this.horizontal?{width:this.handlePosition+"%"}:{height:this.handlePosition+"%"}},handleStyle:function(){return this.horizontal?{left:this.handlePosition+"%"}:{bottom:this.handlePosition+"%"}},handlePosition:function(){return this.value<this.min?0:this.value>this.max?100:100*(this.value-this.min)/(this.max-this.min)},rangeStartPosition:function(){return this.value&&this.value[0]?100*(this.value[0]<this.min?0:this.value[0]-this.min)/(this.max-this.min):0},rangeEndPosition:function(){return this.value&&2===this.value.length?100*(this.value[1]>this.max?100:this.value[1]-this.min)/(this.max-this.min):100},rangeStartHandleStyle:function(){return this.horizontal?{left:this.rangeStartPosition+"%"}:{bottom:this.rangeStartPosition+"%"}},rangeEndHandleStyle:function(){return this.horizontal?{left:this.rangeEndPosition+"%"}:{bottom:this.rangeEndPosition+"%"}}}},c=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],f=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],p=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"];g.render=function(t,e,n,l,u,h){return i(),a("div",r({class:t.cx("root"),onClick:e[15]||(e[15]=function(){return h.onBarClick&&h.onBarClick.apply(h,arguments)})},t.ptm("root"),{"data-p-sliding":!1,"data-pc-name":"slider"}),[o("span",r({class:t.cx("range"),style:[t.sx("range"),h.rangeStyle]},t.ptm("range")),null,16),t.range?s("",!0):(i(),a("span",r({key:0,class:t.cx("handle"),style:[t.sx("handle"),h.handleStyle],onTouchstart:e[0]||(e[0]=function(t){return h.onDragStart(t)}),onTouchmove:e[1]||(e[1]=function(t){return h.onDrag(t)}),onTouchend:e[2]||(e[2]=function(t){return h.onDragEnd(t)}),onMousedown:e[3]||(e[3]=function(t){return h.onMouseDown(t)}),onKeydown:e[4]||(e[4]=function(t){return h.onKeyDown(t)}),tabindex:t.tabindex,role:"slider","aria-valuemin":t.min,"aria-valuenow":t.modelValue,"aria-valuemax":t.max,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-orientation":t.orientation},t.ptm("handle")),null,16,c)),t.range?(i(),a("span",r({key:1,class:t.cx("handle"),style:[t.sx("handle"),h.rangeStartHandleStyle],onTouchstart:e[5]||(e[5]=function(t){return h.onDragStart(t,0)}),onTouchmove:e[6]||(e[6]=function(t){return h.onDrag(t)}),onTouchend:e[7]||(e[7]=function(t){return h.onDragEnd(t)}),onMousedown:e[8]||(e[8]=function(t){return h.onMouseDown(t,0)}),onKeydown:e[9]||(e[9]=function(t){return h.onKeyDown(t,0)}),tabindex:t.tabindex,role:"slider","aria-valuemin":t.min,"aria-valuenow":t.modelValue?t.modelValue[0]:null,"aria-valuemax":t.max,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-orientation":t.orientation},t.ptm("startHandler")),null,16,f)):s("",!0),t.range?(i(),a("span",r({key:2,class:t.cx("handle"),style:[t.sx("handle"),h.rangeEndHandleStyle],onTouchstart:e[10]||(e[10]=function(t){return h.onDragStart(t,1)}),onTouchmove:e[11]||(e[11]=function(t){return h.onDrag(t)}),onTouchend:e[12]||(e[12]=function(t){return h.onDragEnd(t)}),onMousedown:e[13]||(e[13]=function(t){return h.onMouseDown(t,1)}),onKeydown:e[14]||(e[14]=function(t){return h.onKeyDown(t,1)}),tabindex:t.tabindex,role:"slider","aria-valuemin":t.min,"aria-valuenow":t.modelValue?t.modelValue[1]:null,"aria-valuemax":t.max,"aria-labelledby":t.ariaLabelledby,"aria-label":t.ariaLabel,"aria-orientation":t.orientation},t.ptm("endHandler")),null,16,p)):s("",!0)],16)};export{g as default};