1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.slider.js

1 line
19 KiB
JavaScript
Raw Normal View History

2017-01-27 22:16:59 -05:00
define(["jqmwidget"],function(){function getPopup(){return popup||(popup=$("<div></div>",{class:"ui-slider-popup ui-shadow ui-corner-all"})),popup.clone()}var rbrace=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/;$.extend($.mobile,{getAttribute:function(element,key){var data;element=element.jquery?element[0]:element,element&&element.getAttribute&&(data=element.getAttribute("data-"+key));try{data="true"===data||"false"!==data&&("null"===data?null:+data+""===data?+data:rbrace.test(data)?JSON.parse(data):data)}catch(err){}return data}}),function($,undefined){$.ui=$.ui||{},$.extend($.ui,{version:"c0ab71056b936627e8a7821f03c044aec6280a40",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),$.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())}(jQuery),$.widget("mobile.slider",$.extend({initSelector:"input[type='range']:not([data-role='none'])",widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,corners:!0,mini:!1,highlight:!1},_create:function(){var options,wrapper,j,length,i,optionsCount,origTabIndex,side,activeClass,sliderImg,self=this,control=this.element,trackTheme=this.options.trackTheme||$.mobile.getAttribute(control[0],"theme"),trackThemeClass=trackTheme?" ui-bar-"+trackTheme:" ui-bar-inherit",cornerClass=this.options.corners||control.data("corners")?" ui-corner-all":"",miniClass=this.options.mini||control.data("mini")?" ui-mini":"",cType=control[0].nodeName.toLowerCase(),isToggleSwitch="select"===cType,isRangeslider=control.parent().is("[data-role='rangeslider']"),selectClass=isToggleSwitch?"ui-slider-switch":"",controlID=control.attr("id"),$label=$("[for='"+controlID+"']"),labelID=$label.attr("id")||controlID+"-label",min=isToggleSwitch?0:parseFloat(control.attr("min")),max=isToggleSwitch?control.find("option").length-1:parseFloat(control.attr("max")),step=window.parseFloat(control.attr("step")||1),domHandle=document.createElement("a"),handle=$(domHandle),domSlider=document.createElement("div"),slider=$(domSlider),valuebg=!(!this.options.highlight||isToggleSwitch)&&function(){var bg=document.createElement("div");return bg.className="ui-slider-bg "+$.mobile.activeBtnClass,$(bg).prependTo(slider)}();if($label.attr("id",labelID),this.isToggleSwitch=isToggleSwitch,domHandle.setAttribute("href","#"),domSlider.setAttribute("role","application"),domSlider.className=[this.isToggleSwitch?"ui-slider ui-slider-track ui-shadow-inset ":"ui-slider-track ui-shadow-inset ",selectClass,trackThemeClass,cornerClass,miniClass].join(""),domHandle.className="ui-slider-handle",domSlider.appendChild(domHandle),handle.attr({role:"slider","aria-valuemin":min,"aria-valuemax":max,"aria-valuenow":this._value(),"aria-valuetext":this._value(),title:this._value(),"aria-labelledby":labelID}),$.extend(this,{slider:slider,handle:handle,control:control,type:cType,step:step,max:max,min:min,valuebg:valuebg,isRangeslider:isRangeslider,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1}),isToggleSwitch){for(origTabIndex=control.attr("tabindex"),origTabIndex&&handle.attr("tabindex",origTabIndex),control.attr("tabindex","-1").focus(function(){$(this).blur(),handle.focus()}),wrapper=document.createElement("div"),wrapper.className="ui-slider-inneroffset",j=0,length=domSlider.childNodes.length;j<length;j++)wrapper.appendChild(domSlider.childNodes[j]);for(domSlider.appendChild(wrapper),handle.addClass("ui-slider-handle-snapping"),options=control.find("option"),i=0,optionsCount=options.length;i<optionsCount;i++)side=i?"a":"b",activeClass=i?" "+$.mobile.activeBtnClass:"",sliderImg=document.createElement("span"),sliderImg.className=["ui-slider-label ui-slider-label-",side,activeClass].join(""),sliderImg.setAttribute("role","img"),sliderImg.appendChild(document.createTextNode(options[i].innerHTML)),$(sliderImg).prependTo(slider);self._labels=$(".ui-slider-label",slider)}control.addClass(isToggleSwitch?"ui-slider-switch":"ui-slider-input"),this._on(control,{change:"_controlChange",keyup:"_controlKeyup",blur:"_controlBlur",mouseup:"_controlVMouseUp"}