1 |
- !function(h,t,p,n){"use strict";h.fn.range=function(u){var t=h(this),m=u,g="string"==typeof m,v=[].slice.call(arguments,1);return t.each(function(){var c,n,e,s,d,f=h.isPlainObject(u)?h.extend(!0,{},h.fn.range.settings,u):h.extend({},h.fn.range.settings),t=f.namespace,r=(f.min,f.max,f.step),i=(f.start,f.input,"module-"+t),o=h(this),l=this,a=o.data(i);d={initialize:function(){d.instantiate(),d.sanitize()},instantiate:function(){a=d,o.data(i,d),h(l).html("<div class='inner'><div class='track'></div><div class='track-fill'></div><div class='thumb'></div></div>"),c=h(l).children(".inner")[0],n=h(l).find(".thumb")[0],e=h(l).find(".track-fill")[0],d.determinePrecision(),d.setValuePosition(f.start),h(l).find(".track, .thumb, .inner").on("mousedown",function(t){t.stopImmediatePropagation(),t.preventDefault(),h(this).closest(".range").trigger("mousedown",t)}),h(l).find(".track, .thumb, .inner").on("touchstart",function(t){t.stopImmediatePropagation(),t.preventDefault(),h(this).closest(".range").trigger("touchstart",t)}),h(l).on("mousedown",function(t,n){d.rangeMousedown(t,!1,n)}),h(l).on("touchstart",function(t,n){d.rangeMousedown(t,!0,n)}),d.addVisibilityListener(l)},sanitize:function(){"number"!=typeof f.min&&(f.min=parseInt(f.min)||0),"number"!=typeof f.max&&(f.max=parseInt(f.max)||!1),"number"!=typeof f.start&&(f.start=parseInt(f.start)||0)},determinePrecision:function(){var t,n=String(f.step).split(".");t=2==n.length?n[1].length:0,s=Math.pow(10,t)},determineValue:function(t,n,e){var i=(e-t)/(n-t),o=f.max-f.min,a=Math.round(i*o/r)*r;return(a=Math.round(a*s)/s)+f.min},determinePosition:function(t){var n=(t-f.min)/(f.max-f.min);return Math.round(n*h(c).width())+h(e).position().left-10},setValue:function(t,n){void 0===n&&(n=!0),f.input&&h(f.input).val(t),f.onChange&&f.onChange(t,{triggeredByUser:n})},setPosition:function(t){h(n).css({left:String(t)+"px"}),h(e).css({width:String(t+10)+"px"})},rangeMousedown:function(t,n,e){if(!h(l).hasClass("disabled")){t.preventDefault();var i,o=h(c).offset().left,a=o+h(c).width();i=n?e.originalEvent.touches[0].pageX:void 0!==t.pageX?t.pageX:e.pageX;var s=d.determineValue(o,a,i);o<=i&&i<=a&&(d.setPosition(i-o-10),d.setValue(s));var r=function(t){t.preventDefault(),i=n?t.originalEvent.touches[0].pageX:t.pageX,s=d.determineValue(o,a,i),o<=i&&i<=a&&s>=f.min&&s<=f.max&&(d.setPosition(i-o-10),d.setValue(s))},u=function(t){n?(h(p).off("touchmove",r),h(p).off("touchend",u)):(h(p).off("mousemove",r),h(p).off("mouseup",u))};n?(h(p).on("touchmove",r),h(p).on("touchend",u)):(h(p).on("mousemove",r),h(p).on("mouseup",u))}},setValuePosition:function(t,n){void 0===n&&(n=!0);var e=d.determinePosition(t);d.setPosition(e),d.setValue(t,n)},invoke:function(t){switch(t){case"set value":0<v.length&&a.setValuePosition(v[0],!1)}},addVisibilityListener:function(n){var e=new MutationObserver(function(t){h(n).is(":visible")&&(e.disconnect(),d.setValuePosition(f.start))}),t=h(n).parentsUntil(":visible");0!=t.length&&e.observe(t[t.length-1],{attributes:!0})}},g?(void 0===a&&d.initialize(),d.invoke(m)):d.initialize()}),this},h.fn.range.settings={name:"Range",namespace:"range",min:0,max:!1,step:1,start:0,input:!1,onChange:function(t){}}}(jQuery,window,document);
|