Slider.js 4.17 KB
//>>built
define("dojo/_base/array dojo/_base/connect dojo/_base/declare dojo/_base/lang dojo/_base/window dojo/sniff dojo/dom-class dojo/dom-construct dojo/dom-geometry dojo/dom-style dojo/keys dojo/touch dijit/_WidgetBase dijit/form/_FormValueMixin ./common".split(" "),function(t,y,z,l,v,w,d,c,x,m,g,n,A,B,C){return z("dojox.mobile.Slider",[A,B],{value:0,min:0,max:100,step:1,baseClass:"mblSlider",flip:!1,orientation:"auto",halo:"8pt",buildRendering:function(){if(!this.templateString){this.focusNode=this.domNode=
c.create("div",{});this.valueNode=c.create("input",this.srcNodeRef&&this.srcNodeRef.name?{type:"hidden",name:this.srcNodeRef.name}:{type:"hidden"},this.domNode,"last");var a=c.create("div",{style:{position:"relative",height:"100%",width:"100%"}},this.domNode,"last");this.progressBar=c.create("div",{style:{position:"absolute"},"class":"mblSliderProgressBar"},a,"last");this.touchBox=c.create("div",{style:{position:"absolute"},"class":"mblSliderTouchBox"},a,"last");this.handle=c.create("div",{style:{position:"absolute"},
"class":"mblSliderHandle"},a,"last");this.handle.setAttribute("role","slider");this.handle.setAttribute("tabindex",0)}this.inherited(arguments);C._setTouchAction(this.domNode,"none")},_setMinAttr:function(a){this.handle.setAttribute("aria-valuemin",a);this._set("min",a)},_setMaxAttr:function(a){this.handle.setAttribute("aria-valuemax",a);this._set("max",a)},_setValueAttr:function(a,c){a=Math.max(Math.min(a,this.max),this.min);this.valueNode.value=a;this.inherited(arguments);if(this._started){var h=
100*(a-this.min)/(this.max-this.min);!0===c?(d.add(this.handle,"mblSliderTransition"),d.add(this.progressBar,"mblSliderTransition")):(d.remove(this.handle,"mblSliderTransition"),d.remove(this.progressBar,"mblSliderTransition"));m.set(this.handle,this._attrs.handleLeft,(this._reversed?100-h:h)+"%");m.set(this.progressBar,this._attrs.width,h+"%");this.handle.setAttribute("aria-valuenow",a)}},postCreate:function(){function a(b){function a(a){c=g?a[this._attrs.pageX]:a.touches?a.touches[0][this._attrs.pageX]:
a[this._attrs.clientX];h=c-r;h=Math.min(Math.max(h,0),p);a=this.step?(this.max-this.min)/this.step:p;if(1>=a||Infinity==a)a=p;k=(this.max-this.min)*Math.round(h*a/p)/a;k=this._reversed?this.max-k:this.min+k}b.stopPropagation();b.target.focus();b.preventDefault();var g="mousedown"==b.type,f=x.position(q,!1),d=w("ie")?1:m.get(v.body(),"zoom")||1;isNaN(d)&&(d=1);var e=w("ie")?1:m.get(q,"zoom")||1;isNaN(e)&&(e=1);var r=f[this._attrs.x]*e*d+x.docScroll()[this._attrs.x],p=f[this._attrs.w]*e*d;l.hitch(this,
a)(b);b.target==this.touchBox&&this.set("value",k,!0);t.forEach(u,y.disconnect);b=v.doc.documentElement;var u=[this.connect(b,n.move,function(b){b.preventDefault();l.hitch(this,a)(b);this.set("value",k,!1)}),this.connect(b,n.release,function(a){a.preventDefault();t.forEach(u,l.hitch(this,"disconnect"));u=[];this.set("value",this.value,!0)})]}this.inherited(arguments);var c,h,k,q=this.domNode;"auto"==this.orientation&&(this.orientation=q.offsetHeight<=q.offsetWidth?"H":"V");d.add(this.domNode,t.map(this.baseClass.split(" "),
l.hitch(this,function(a){return a+this.orientation})));var f="V"!=this.orientation,r=f?this.isLeftToRight():!1,e=!!this.flip;this._reversed=!(f&&(r&&!e||!r&&e)||!f&&e);this._attrs=f?{x:"x",w:"w",l:"l",r:"r",pageX:"pageX",clientX:"clientX",handleLeft:"left",left:this._reversed?"right":"left",width:"width"}:{x:"y",w:"h",l:"t",r:"b",pageX:"pageY",clientX:"clientY",handleLeft:"top",left:this._reversed?"bottom":"top",width:"height"};this.progressBar.style[this._attrs.left]="0px";this.connect(this.touchBox,
n.press,a);this.connect(this.handle,n.press,a);this.connect(this.domNode,"onkeypress",function(a){if(!(this.disabled||this.readOnly||a.altKey||a.ctrlKey||a.metaKey)){var b=this.step,c=1;switch(a.keyCode){case g.HOME:b=this.min;break;case g.END:b=this.max;break;case g.RIGHT_ARROW:c=-1;case g.LEFT_ARROW:b=this.value+c*(e&&f?b:-b);break;case g.DOWN_ARROW:c=-1;case g.UP_ARROW:b=this.value+c*(!e||f?b:-b);break;default:return}a.preventDefault();this._setValueAttr(b,!1)}});this.connect(this.domNode,"onkeyup",
function(a){this.disabled||this.readOnly||a.altKey||a.ctrlKey||a.metaKey||this._setValueAttr(this.value,!0)});this.startup();this.set("value",this.value)}})});