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.45 kB
JavaScript
"use strict";var e=require("primevue/utils"),t=require("primevue/basecomponent"),n=require("primevue/slider/style"),i=require("vue");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function r(){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 o(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function s(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function l(e){if(Array.isArray(e))return u(e)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}var h={name:"Slider",extends:{name:"BaseSlider",extends:a(t).default,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:a(n).default,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 t=this.$el.getBoundingClientRect();this.initX=t.left+e.DomHandler.getWindowScrollLeft(),this.initY=t.top+e.DomHandler.getWindowScrollTop(),this.barWidth=this.$el.offsetWidth,this.barHeight=this.$el.offsetHeight},setValue:function(e){var t=("horizontal"===this.orientation?100*((e.touches?e.touches[0].pageX:e.pageX)-this.initX)/this.barWidth:100*(this.initY+this.barHeight-(e.touches?e.touches[0].pageY:e.pageY))/this.barHeight)/100*(this.max-this.min)+this.min;if(this.step){var n=this.range?this.value[this.handleIndex]:this.value,i=t-n;i<0?t=n+Math.ceil(t/this.step-n/this.step)*this.step:i>0&&(t=n+Math.floor(t/this.step-n/this.step)*this.step)}else t=Math.floor(t);this.updateModel(e,t)},updateModel:function(e,t){var n,i,a=parseFloat(t.toFixed(10));this.range?(n=this.value?l(i=this.value)||s(i)||o(i)||r():[],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(e,t){this.disabled||(this.$el.setAttribute("data-p-sliding",!0),this.dragging=!0,this.updateDomData(),this.handleIndex=this.range&&this.value[0]===this.max?0:t,e.currentTarget.focus(),e.preventDefault())},onDrag:function(e){this.dragging&&(this.setValue(e),e.preventDefault())},onDragEnd:function(e){this.dragging&&(this.dragging=!1,this.$el.setAttribute("data-p-sliding",!1),this.$emit("slideend",{originalEvent:e,value:this.value}))},onBarClick:function(t){this.disabled||"handle"!==e.DomHandler.getAttribute(t.target,"data-pc-section")&&(this.updateDomData(),this.setValue(t))},onMouseDown:function(e,t){this.bindDragListeners(),this.onDragStart(e,t)},onKeyDown:function(e,t){switch(this.handleIndex=t,e.code){case"ArrowDown":case"ArrowLeft":this.decrementValue(e,t),e.preventDefault();break;case"ArrowUp":case"ArrowRight":this.incrementValue(e,t),e.preventDefault();break;case"PageDown":this.decrementValue(e,t,!0),e.preventDefault();break;case"PageUp":this.incrementValue(e,t,!0),e.preventDefault();break;case"Home":this.updateModel(e,this.min),e.preventDefault();break;case"End":this.updateModel(e,this.max),e.preventDefault()}},decrementValue:function(e,t){this.updateModel(e,this.range?this.step?this.value[t]-this.step:this.value[t]-1:this.step?this.value-this.step:!this.step&&(arguments.length>2&&void 0!==arguments[2]&&arguments[2])?this.value-10:this.value-1),e.preventDefault()},incrementValue:function(e,t){this.updateModel(e,this.range?this.step?this.value[t]+this.step:this.value[t]+1:this.step?this.value+this.step:!this.step&&(arguments.length>2&&void 0!==arguments[2]&&arguments[2])?this.value+10:this.value+1),e.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 e,t,n,i,a;return this.range?[null!==(t=null===(n=this.modelValue)||void 0===n?void 0:n[0])&&void 0!==t?t:this.min,null!==(i=null===(a=this.modelValue)||void 0===a?void 0:a[1])&&void 0!==i?i:this.max]:null!==(e=this.modelValue)&&void 0!==e?e:this.min},horizontal:function(){return"horizontal"===this.orientation},vertical:function(){return"vertical"===this.orientation},rangeStyle:function(){if(this.range){var e=this.rangeEndPosition>this.rangeStartPosition?this.rangeEndPosition-this.rangeStartPosition:this.rangeStartPosition-this.rangeEndPosition,t=this.rangeEndPosition>this.rangeStartPosition?this.rangeStartPosition:this.rangeEndPosition;return this.horizontal?{left:t+"%",width:e+"%"}:{bottom:t+"%",height:e+"%"}}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+"%"}}}},d=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],m=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"],c=["tabindex","aria-valuemin","aria-valuenow","aria-valuemax","aria-labelledby","aria-label","aria-orientation"];h.render=function(e,t,n,a,r,o){return i.openBlock(),i.createElementBlock("div",i.mergeProps({class:e.cx("root"),onClick:t[15]||(t[15]=function(){return o.onBarClick&&o.onBarClick.apply(o,arguments)})},e.ptm("root"),{"data-p-sliding":!1,"data-pc-name":"slider"}),[i.createElementVNode("span",i.mergeProps({class:e.cx("range"),style:[e.sx("range"),o.rangeStyle]},e.ptm("range")),null,16),e.range?i.createCommentVNode("",!0):(i.openBlock(),i.createElementBlock("span",i.mergeProps({key:0,class:e.cx("handle"),style:[e.sx("handle"),o.handleStyle],onTouchstart:t[0]||(t[0]=function(e){return o.onDragStart(e)}),onTouchmove:t[1]||(t[1]=function(e){return o.onDrag(e)}),onTouchend:t[2]||(t[2]=function(e){return o.onDragEnd(e)}),onMousedown:t[3]||(t[3]=function(e){return o.onMouseDown(e)}),onKeydown:t[4]||(t[4]=function(e){return o.onKeyDown(e)}),tabindex:e.tabindex,role:"slider","aria-valuemin":e.min,"aria-valuenow":e.modelValue,"aria-valuemax":e.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":e.orientation},e.ptm("handle")),null,16,d)),e.range?(i.openBlock(),i.createElementBlock("span",i.mergeProps({key:1,class:e.cx("handle"),style:[e.sx("handle"),o.rangeStartHandleStyle],onTouchstart:t[5]||(t[5]=function(e){return o.onDragStart(e,0)}),onTouchmove:t[6]||(t[6]=function(e){return o.onDrag(e)}),onTouchend:t[7]||(t[7]=function(e){return o.onDragEnd(e)}),onMousedown:t[8]||(t[8]=function(e){return o.onMouseDown(e,0)}),onKeydown:t[9]||(t[9]=function(e){return o.onKeyDown(e,0)}),tabindex:e.tabindex,role:"slider","aria-valuemin":e.min,"aria-valuenow":e.modelValue?e.modelValue[0]:null,"aria-valuemax":e.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":e.orientation},e.ptm("startHandler")),null,16,m)):i.createCommentVNode("",!0),e.range?(i.openBlock(),i.createElementBlock("span",i.mergeProps({key:2,class:e.cx("handle"),style:[e.sx("handle"),o.rangeEndHandleStyle],onTouchstart:t[10]||(t[10]=function(e){return o.onDragStart(e,1)}),onTouchmove:t[11]||(t[11]=function(e){return o.onDrag(e)}),onTouchend:t[12]||(t[12]=function(e){return o.onDragEnd(e)}),onMousedown:t[13]||(t[13]=function(e){return o.onMouseDown(e,1)}),onKeydown:t[14]||(t[14]=function(e){return o.onKeyDown(e,1)}),tabindex:e.tabindex,role:"slider","aria-valuemin":e.min,"aria-valuenow":e.modelValue?e.modelValue[1]:null,"aria-valuemax":e.max,"aria-labelledby":e.ariaLabelledby,"aria-label":e.ariaLabel,"aria-orientation":e.orientation},e.ptm("endHandler")),null,16,c)):i.createCommentVNode("",!0)],16)},module.exports=h;