Source: directive/mousedrag.js

// 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