diff --git a/app/scripts/app.coffee b/app/scripts/app.coffee index 9f913ca..a6ece4b 100644 --- a/app/scripts/app.coffee +++ b/app/scripts/app.coffee @@ -7,6 +7,7 @@ angular.module('nouislider', []) start: "@" step: "@" end: "@" + range: '=' callback: "@" margin: "@" ngModel: "=" @@ -22,15 +23,20 @@ angular.module('nouislider', []) fromParsed = null toParsed = null - slider.noUiSlider + options = start: [scope.ngFrom or scope.start, scope.ngTo or scope.end] step: parseFloat(scope.step or 1) connect: true - margin: parseFloat(scope.margin or 0) - range: + + if scope.range + options.range = scope.range + else + options.margin = parseFloat(scope.margin or 0) + options.range = min: [parseFloat scope.start] max: [parseFloat scope.end] + slider.noUiSlider options slider.on callback, -> [from, to] = slider.val() @@ -58,9 +64,10 @@ angular.module('nouislider', []) slider.noUiSlider start: [scope.ngModel or scope.start], step: parseFloat(scope.step or 1) - range: + range: scope.range || { min: [parseFloat scope.start] max: [parseFloat scope.end] + } slider.on callback, -> parsedValue = parseFloat slider.val() diff --git a/src/nouislider.js b/src/nouislider.js index d9afa6c..1239dc0 100644 --- a/src/nouislider.js +++ b/src/nouislider.js @@ -6,6 +6,7 @@ angular.module('nouislider', []).directive('slider', function () { start: '@', step: '@', end: '@', + range: '=', callback: '@', margin: '@', ngModel: '=', @@ -13,25 +14,30 @@ angular.module('nouislider', []).directive('slider', function () { ngTo: '=' }, link: function (scope, element, attrs) { - var callback, fromParsed, parsedValue, slider, toParsed; + var callback, fromParsed, options, parsedValue, slider, toParsed; slider = $(element); callback = scope.callback ? scope.callback : 'slide'; if (scope.ngFrom != null && scope.ngTo != null) { fromParsed = null; toParsed = null; - slider.noUiSlider({ + options = { start: [ scope.ngFrom || scope.start, scope.ngTo || scope.end ], step: parseFloat(scope.step || 1), - connect: true, - margin: parseFloat(scope.margin || 0), - range: { + connect: true + }; + if (scope.range) { + options.range = scope.range; + } else { + options.margin = parseFloat(scope.margin || 0); + options.range = { min: [parseFloat(scope.start)], max: [parseFloat(scope.end)] - } - }); + }; + } + slider.noUiSlider(options); slider.on(callback, function () { var from, to, _ref; _ref = slider.val(), from = _ref[0], to = _ref[1]; @@ -63,7 +69,7 @@ angular.module('nouislider', []).directive('slider', function () { slider.noUiSlider({ start: [scope.ngModel || scope.start], step: parseFloat(scope.step || 1), - range: { + range: scope.range || { min: [parseFloat(scope.start)], max: [parseFloat(scope.end)] } @@ -82,4 +88,6 @@ angular.module('nouislider', []).directive('slider', function () { } } }; -}); \ No newline at end of file +}); /* +//@ sourceMappingURL=app.js.map +*/ \ No newline at end of file diff --git a/src/nouislider.min.js b/src/nouislider.min.js index 19db5ca..f5c0751 100644 --- a/src/nouislider.min.js +++ b/src/nouislider.min.js @@ -1 +1 @@ -"use strict";angular.module("nouislider",[]).directive("slider",function(){return{restrict:"A",scope:{start:"@",step:"@",end:"@",callback:"@",margin:"@",ngModel:"=",ngFrom:"=",ngTo:"="},link:function(a,b){var c,d,e,f,g;return f=$(b),c=a.callback?a.callback:"slide",null!=a.ngFrom&&null!=a.ngTo?(d=null,g=null,f.noUiSlider({start:[a.ngFrom||a.start,a.ngTo||a.end],step:parseFloat(a.step||1),connect:!0,margin:parseFloat(a.margin||0),range:{min:[parseFloat(a.start)],max:[parseFloat(a.end)]}}),f.on(c,function(){var b,c,e;return e=f.val(),b=e[0],c=e[1],d=parseFloat(b),g=parseFloat(c),a.$apply(function(){return a.ngFrom=d,a.ngTo=g})}),a.$watch("ngFrom",function(a){return a!==d?f.val([a,null]):void 0}),a.$watch("ngTo",function(a){return a!==g?f.val([null,a]):void 0})):(e=null,f.noUiSlider({start:[a.ngModel||a.start],step:parseFloat(a.step||1),range:{min:[parseFloat(a.start)],max:[parseFloat(a.end)]}}),f.on(c,function(){return e=parseFloat(f.val()),a.$apply(function(){return a.ngModel=e})}),a.$watch("ngModel",function(a){return a!==e?f.val(a):void 0}))}}}); \ No newline at end of file +"use strict";angular.module("nouislider",[]).directive("slider",function(){return{restrict:"A",scope:{start:"@",step:"@",end:"@",range:"=",callback:"@",margin:"@",ngModel:"=",ngFrom:"=",ngTo:"="},link:function(a,b,c){var d,e,f,g,h,i;return h=$(b),d=a.callback?a.callback:"slide",null!=a.ngFrom&&null!=a.ngTo?(e=null,i=null,f={start:[a.ngFrom||a.start,a.ngTo||a.end],step:parseFloat(a.step||1),connect:!0},a.range?f.range=a.range:(f.margin=parseFloat(a.margin||0),f.range={min:[parseFloat(a.start)],max:[parseFloat(a.end)]}),h.noUiSlider(f),h.on(d,function(){var b,c,d;return d=h.val(),b=d[0],c=d[1],e=parseFloat(b),i=parseFloat(c),a.$apply(function(){return a.ngFrom=e,a.ngTo=i})}),a.$watch("ngFrom",function(a,b){return a!==e?h.val([a,null]):void 0}),a.$watch("ngTo",function(a,b){return a!==i?h.val([null,a]):void 0})):(g=null,h.noUiSlider({start:[a.ngModel||a.start],step:parseFloat(a.step||1),range:a.range||{min:[parseFloat(a.start)],max:[parseFloat(a.end)]}}),h.on(d,function(){return g=parseFloat(h.val()),a.$apply(function(){return a.ngModel=g})}),a.$watch("ngModel",function(a,b){return a!==g?h.val(a):void 0}))}}}); \ No newline at end of file