// Generated by CoffeeScript 1.12.7
/**
* Mouse drag for the spreadsheet create highlight
* @module
*/
'use strict';
app.directive('mouseDragRegion', [
function() {
return {
restrict: 'A',
controller: [
'$element', function($element) {
this.region = $element;
}
]
};
}
]);
app.directive('mouseDrag', [
'$parse', function($parse) {
return {
restrict: 'A',
require: '?^mouseDragRegion',
compile: function($element, $attrs) {
var action;
action = $parse($attrs.mouseDrag);
return function($scope, $element, $attrs, region) {
region = region ? region.region : $element;
$element.on('mousedown', function(down) {
var mouseup, startTime;
startTime = down.timeStamp;
mouseup = function(up) {
var final;
final = up.type !== 'mousemove';
if (final) {
region.off('mouseleave mouseup mousemove', mouseup);
}
if (startTime !== void 0) {
if (final || up.timeStamp - startTime < 250) {
return;
}
startTime = void 0;
}
$scope.$apply(function() {
if (action($scope, {
$down: down,
$up: up
}) === false) {
if (!final) {
return region.off('mouseleave mouseup mousemove', mouseup);
}
}
});
return false;
};
region.on('mouseleave mouseup mousemove', mouseup);
return false;
});
};
}
};
}
]);
//# sourceMappingURL=mousedrag.js.map