angular-files-drop
Version:
Easily drag files to element and drop them using html5 api.
3 lines (2 loc) • 1.52 kB
JavaScript
;!function(e,n){if("function"==typeof define&&define.amd)define(["angular"],n);else if("undefined"!=typeof exports)n(require("angular"));else{var r={exports:{}};n(e.angular),e.index=r.exports}}(this,function(e){function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,n){function r(r,a,i){function o(a){a.stopPropagation(),a.preventDefault();var o=a.dataTransfer,s=o&&o.files||null;if(!s)return n(i.filesDrop)(r,{$files:[],$event:a}),void d(a);var f=[].reduce.call(s,function(e,n){var r=t(n).then(function(e){return n.dataURL=e});return e.push(r),e},[]);e.all(f).then(function(){n(i.filesDrop)(r,{$files:s,$event:a}),d(a)})}function s(e){e.stopPropagation(),e.preventDefault(),a.addClass("filesDrop--dragover")}function d(){a.removeClass("filesDrop--dragover")}t=t.bind({$q:e}),a.addClass("filesDrop"),a[0].addEventListener("dragleave",d),a[0].addEventListener("dragover",s),a[0].addEventListener("drop",o),r.$on("$destroy",function(){a[0].removeEventListener("dragleave",d),a[0].removeEventListener("dragover",s),a[0].removeEventListener("drop",o)})}return{restrict:"A",scope:!1,link:r}}function t(e){return new this.$q(function(n,r){if(e instanceof File||e instanceof Blob){var t=new FileReader;t.onloadend=function(e){return n(e.target.result)},t.readAsDataURL(e)}else r(new Error("Expected image.readAsDataURL(arg1): arg1 to be File instance, but got "+e))})}var a=n(e),i=a["default"].module("angular-files-drop",[]);i.directive("filesDrop",["$q","$parse",r])});
//# sourceMappingURL=index.js.map