Sha256: 6cbcda825cc97b339010041b1f2b0acc47d4f8ede6c6f58dea58390352c80bd5
Contents?: true
Size: 1.57 KB
Versions: 6
Compression:
Stored size: 1.57 KB
Contents
angular.module('flow.dragEvents', ['flow.init']) /** * @name flowPreventDrop * Prevent loading files then dropped on element */ .directive('flowPreventDrop', function() { return { 'scope': false, 'link': function(scope, element, attrs) { element.bind('drop dragover', function (event) { event.preventDefault(); }); } }; }) /** * @name flowDragEnter * executes `flowDragEnter` and `flowDragLeave` events */ .directive('flowDragEnter', ['$timeout', function($timeout) { return { 'scope': false, 'link': function(scope, element, attrs) { var promise; var enter = false; element.bind('dragover', function (event) { if (!isFileDrag(event)) { return ; } if (!enter) { scope.$apply(attrs.flowDragEnter); enter = true; } $timeout.cancel(promise); event.preventDefault(); }); element.bind('dragleave drop', function (event) { promise = $timeout(function () { scope.$eval(attrs.flowDragLeave); promise = null; enter = false; }, 100); }); function isFileDrag(dragEvent) { var fileDrag = false; var dataTransfer = dragEvent.dataTransfer || dragEvent.originalEvent.dataTransfer; angular.forEach(dataTransfer && dataTransfer.types, function(val) { if (val === 'Files') { fileDrag = true; } }); return fileDrag; } } }; }]);
Version data entries
6 entries across 6 versions & 1 rubygems