diff --git a/dist/slider.js b/dist/slider.js
index 904b199..38cf694 100644
--- a/dist/slider.js
+++ b/dist/slider.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.7.1
+// Generated by CoffeeScript 1.10.0
(function() {
var MODULE_NAME, SLIDER_TAG, angularize, contain, events, gap, halfWidth, hide, module, offset, offsetLeft, pixelize, qualifiedDirectiveDefinition, roundStep, show, sliderDirective, width;
@@ -11,7 +11,7 @@
};
pixelize = function(position) {
- return "" + position + "px";
+ return position + "px";
};
hide = function(element) {
@@ -98,6 +98,7 @@
ngModel: '=?',
ngModelLow: '=?',
ngModelHigh: '=?',
+ ngSlideStop: '&ngSlideStop',
change: '&'
},
template: '
\n\n{{ values.length ? values[floor || 0] : floor }}
\n{{ values.length ? values[ceiling || values.length - 1] : ceiling }}
\n{{ values.length ? values[local.ngModelLow || local.ngModel || 0] : local.ngModelLow || local.ngModel || 0 }}
\n{{ values.length ? values[local.ngModelHigh] : local.ngModelHigh }}
',
@@ -112,22 +113,22 @@
}
return {
post: function(scope, element, attributes) {
- var bar, barWidth, bound, ceilBub, dimensions, e, flrBub, handleHalfWidth, highBub, lowBub, maxOffset, maxPtr, maxValue, minOffset, minPtr, minValue, ngDocument, offsetRange, selection, updateDOM, upper, valueRange, w, _i, _j, _len, _len1, _ref, _ref1;
- _ref = (function() {
- var _i, _len, _ref, _results;
- _ref = element.children();
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- e = _ref[_i];
- _results.push(angularize(e));
+ var bar, barWidth, bound, ceilBub, dimensions, e, flrBub, handleHalfWidth, highBub, i, j, len, len1, lowBub, maxOffset, maxPtr, maxValue, minOffset, minPtr, minValue, ngDocument, offsetRange, ref1, ref2, selection, updateDOM, upper, valueRange, w;
+ ref1 = (function() {
+ var i, len, ref1, results;
+ ref1 = element.children();
+ results = [];
+ for (i = 0, len = ref1.length; i < len; i++) {
+ e = ref1[i];
+ results.push(angularize(e));
}
- return _results;
- })(), bar = _ref[0], minPtr = _ref[1], maxPtr = _ref[2], flrBub = _ref[3], ceilBub = _ref[4], lowBub = _ref[5], highBub = _ref[6];
+ return results;
+ })(), bar = ref1[0], minPtr = ref1[1], maxPtr = ref1[2], flrBub = ref1[3], ceilBub = ref1[4], lowBub = ref1[5], highBub = ref1[6];
selection = angularize(bar.children()[0]);
if (!range) {
- _ref1 = [maxPtr, highBub];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- upper = _ref1[_i];
+ ref2 = [maxPtr, highBub];
+ for (i = 0, len = ref2.length; i < len; i++) {
+ upper = ref2[i];
upper.remove();
}
if (!attributes.highlight) {
@@ -141,7 +142,7 @@
ngDocument = angularize(document);
handleHalfWidth = barWidth = minOffset = maxOffset = minValue = maxValue = valueRange = offsetRange = void 0;
dimensions = function() {
- var value, _j, _len1, _ref2;
+ var j, len1, ref3, value;
if (scope.step == null) {
scope.step = 1;
}
@@ -154,15 +155,15 @@
if (!range) {
scope.ngModelLow = scope.ngModel;
}
- if ((_ref2 = scope.values) != null ? _ref2.length : void 0) {
+ if ((ref3 = scope.values) != null ? ref3.length : void 0) {
if (scope.ceiling == null) {
scope.ceiling = scope.values.length - 1;
}
}
scope.local[low] = scope[low];
scope.local[high] = scope[high];
- for (_j = 0, _len1 = watchables.length; _j < _len1; _j++) {
- value = watchables[_j];
+ for (j = 0, len1 = watchables.length; j < len1; j++) {
+ value = watchables[j];
if (typeof value === 'number') {
scope[value] = roundStep(parseFloat(scope[value]), parseInt(scope.precision), parseFloat(scope.step), parseFloat(scope.floor));
}
@@ -234,8 +235,8 @@
}
};
onMove = function(event) {
- var eventX, newOffset, newPercent, newValue, _ref2, _ref3, _ref4;
- eventX = event.clientX || ((_ref2 = event.touches) != null ? _ref2[0].clientX : void 0) || ((_ref3 = event.originalEvent) != null ? (_ref4 = _ref3.changedTouches) != null ? _ref4[0].clientX : void 0 : void 0) || 0;
+ var eventX, newOffset, newPercent, newValue, ref3, ref4, ref5;
+ eventX = event.clientX || ((ref3 = event.touches) != null ? ref3[0].clientX : void 0) || ((ref4 = event.originalEvent) != null ? (ref5 = ref4.changedTouches) != null ? ref5[0].clientX : void 0 : void 0) || 0;
newOffset = eventX - element[0].getBoundingClientRect().left - handleHalfWidth;
newOffset = Math.max(Math.min(newOffset, maxOffset), minOffset);
newPercent = percentOffset(newOffset);
@@ -286,16 +287,19 @@
setPointers();
event.stopPropagation();
event.preventDefault();
+ ngDocument.bind(events.end, function() {
+ return scope.ngSlideStop();
+ });
ngDocument.bind(events.move, onMove);
return ngDocument.bind(events.end, onEnd);
};
return handle.bind(events.start, onStart);
};
setBindings = function() {
- var method, _j, _len1, _ref2;
- _ref2 = ['touch', 'mouse'];
- for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
- method = _ref2[_j];
+ var j, len1, method, ref3;
+ ref3 = ['touch', 'mouse'];
+ for (j = 0, len1 = ref3.length; j < len1; j++) {
+ method = ref3[j];
bind(minPtr, lowBub, low, events[method]);
bind(maxPtr, highBub, high, events[method]);
}
@@ -307,8 +311,8 @@
return setPointers();
};
$timeout(updateDOM);
- for (_j = 0, _len1 = watchables.length; _j < _len1; _j++) {
- w = watchables[_j];
+ for (j = 0, len1 = watchables.length; j < len1; j++) {
+ w = watchables[j];
scope.$watch(w, updateDOM, true);
}
return window.addEventListener('resize', updateDOM);
diff --git a/slider.coffee b/slider.coffee
index afd66a1..0a2c86f 100644
--- a/slider.coffee
+++ b/slider.coffee
@@ -56,6 +56,7 @@ sliderDirective = ($timeout) ->
ngModel: '=?'
ngModelLow: '=?'
ngModelHigh: '=?'
+ ngSlideStop: '&ngSlideStop'
change: '&'
template: '''
@@ -216,6 +217,8 @@ sliderDirective = ($timeout) ->
setPointers()
event.stopPropagation()
event.preventDefault()
+ ngDocument.bind events.end, ->
+ scope.ngSlideStop();
ngDocument.bind events.move, onMove
ngDocument.bind events.end, onEnd
handle.bind events.start, onStart