magix-components
Version:
1 lines • 4.18 kB
JavaScript
define("mx-slider/index",["magix","$","../mx-dragdrop/index","./style"],function(e,t,a){var i=e("magix"),_=e("$");e("./style");var s=e("../mx-dragdrop/index");a.exports=i.View.extend({tmpl:{html:'<div mx-guid="g0" class="eu<%if($$.vertical){%> ew<%}else{%> ev<%}%>" mx-contextmenu="__D()" style="<%if($$.vertical){%>height:<%=$$.height%><%}else{%>width:<%=$$.width%><%}%>px"><div mx-guid="g1" class="ex<%if($$.vertical){%> ez<%}else{%> ey<%}%>"></div><div mx-guid="g2" class="eA<%if($$.vertical){%> eC<%}else{%> eB<%}%>" mx-mousedown="__dr()"></div><div mx-guid="g3" class="eD<%if($$.vertical){%> eJ<%}else{%> eI<%}%>"></div><div mx-guid="g4" class="<%if($$.vertical){%>eG<%}else{%>eE<%}%>">5</div><div mx-guid="g5" class="<%if($$.vertical){%>eH<%}else{%>eF<%}%>">6</div></div>',subs:[{keys:["vertical","height","width"],path:'div[mx-guid="g0"]',attr:'class="eu<%if($$.vertical){%> ew<%}else{%> ev<%}%>" mx-contextmenu="__D()" style="<%if($$.vertical){%>height:<%=$$.height%><%}else{%>width:<%=$$.width%><%}%>px"',attrs:[{n:"class",p:1,f:"className"},{n:"mx-contextmenu"},{n:"style"}]},{keys:["vertical"],path:'div[mx-guid="g1"]',attr:'class="ex<%if($$.vertical){%> ez<%}else{%> ey<%}%>"',attrs:[{n:"class",p:1,f:"className"}]},{keys:["vertical"],path:'div[mx-guid="g2"]',attr:'class="eA<%if($$.vertical){%> eC<%}else{%> eB<%}%>"',attrs:[{n:"class",p:1,f:"className"}]},{keys:["vertical"],path:'div[mx-guid="g3"]',attr:'class="eD<%if($$.vertical){%> eJ<%}else{%> eI<%}%>"',attrs:[{n:"class",p:1,f:"className"}]},{keys:["vertical","min"],path:'div[mx-guid="g4"]',tmpl:"<%=$$.min%>",s:"5",attr:'class="<%if($$.vertical){%>eG<%}else{%>eE<%}%>"',attrs:[{n:"class",p:1,f:"className"}],mask:"21"},{keys:["vertical","max"],path:'div[mx-guid="g5"]',tmpl:"<%=$$.max%>",s:"6",attr:'class="<%if($$.vertical){%>eH<%}else{%>eF<%}%>"',attrs:[{n:"class",p:1,f:"className"}],mask:"21"}]},init:function(e){var t=this,a=_("#"+t.id);a.addClass("et"),t.assign(e);var i=function(e){if(!t.__dm&&!t.__bB){var i=a.offset(),_=t.__dn(),s=-1,r=((s=t.__do?_.rMax-e.pageY+i.top:e.pageX-i.left)-_.half)/_.max,l=t.__dp(r);t.val(l)}};a.on("click",i),t.on("destroy",function(){a.off("click",i)}),t.__h=a},assign:function(e){var t=this;t.__cW=+e.width||340,t.__dq=+e.height||340,t.__E=+e.min||0,t.__F=+e.max||100,t.__cy=+e.step||1,t.__bB=e.disabled+""=="true",t.__do=e.vertical+""=="true";var a=t.__cy+"",i=a.indexOf(".");return i=i>=0?a.slice(i+1).length:0,t.__cA=i,t.__bN=+e.value||0,!0},render:function(){var e=this;e.updater.digest({min:e.__E.toFixed(e.__cA),max:e.__F.toFixed(e.__cA),width:e.__cW,height:e.__dq,vertical:e.__do}),e.__h[e.__bB?"addClass":"removeClass"]("eK"),e.val(e.__bN)},__dn:function(){var e=this,t=e.__h.find(".eu"),a=e.__h.find(".ex"),i=e.__h.find(".eA"),_=e.__h.find(".eD"),s=i.outerWidth()/2,r=e.__do?t.height():t.width();return{rail:t,pLabel:_,tracker:a,indicator:i,rMax:r,max:r-2*s,half:s}},val:function(e,t){var a=this,i=+e;if(i||0===i){a.__h.prop("value",i);var _=a.__F,s=a.__E;i>_?i=_:i<s&&(i=s);var r=(i-s)/(_-s),l=a.__dn(),d=r*l.max;a.__do?l.indicator.css({bottom:d}):l.indicator.css({left:d}),e=a.__dp(r);var c=l.pLabel;c.html(e);var n=d+l.half;if(a.__do)n-=v=c.height()/2,c.css({bottom:n});else{var v=c.width()/2;n<v?n=0:n+v>l.rMax?n=l.rMax-2*v:n-=v,c.css({left:n})}a.__do?l.tracker.height(d+l.half):l.tracker.width(d+l.half),t||(a.__bN!=e&&a.__u(e),a.__bN=e)}return+a.__bN},__dp:function(e){var t,a=this,i=a.__F,_=a.__E,s=a.__cy;return 0===e?t=_:1===e?t=i:(t=_+(i-_)*e,t=Math.round(t/s)*s),t=t.toFixed(a.__cA)},__u:function(e){this.__h.prop("value",+e).trigger({type:"change",value:+e})},"__dr<mousedown>":function(e){e.stopPropagation(),e.preventDefault();var t=this;if(!t.__bB){var a=_(e.eventTarget),i=a.outerWidth(),r=-1;r=t.__do?a.parent().height()-i:a.parent().width()-i;var l=parseInt(a.css(t.__do?"bottom":"left"),10),d=t.__bN;s.begin(e.eventTarget,function(a){s.clear();var i=-1;(i=t.__do?l+e.pageY-a.pageY:l+a.pageX-e.pageX)<0?i=0:i>r&&(i=r);var _=i/r;t.val(d=t.__dp(_),!0)},function(){t.__bN!=d&&(t.__bN=d,t.__u(d)),t.__dm=!0,setTimeout(t.wrapAsync(function(){delete t.__dm}),20)})}},"__D<contextmenu>":function(e){e.preventDefault()}})});