-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathjQuery.FileDrop.min.js
1 lines (1 loc) · 1.63 KB
/
jQuery.FileDrop.min.js
1
!function($){"use strict";function e(e){e.stopPropagation(),e.preventDefault()}function n(e){var n=window.atob(e);try{return decodeURIComponent(window.escape(n))}catch(a){return""}}function a(e){$.isFunction(e)&&(e={onFileRead:e});var n=$.extend({},$.fn.fileDrop.defaults,e);if(n.decodeBase64&&(n.removeDataUriScheme=!0),n.addClassTo=$(n.addClassTo),!$.isFunction(n.onFileRead))throw'The option "onFileRead" is not set to a function!';return n}function t(n,a){n.addEventListener("dragenter",function(n){$(a.addClassTo).addClass(a.overClass),e(n)},!1),n.addEventListener("dragover",function(n){clearTimeout(r),r=setTimeout(function(){$(a.addClassTo).removeClass(a.overClass)},100),e(n)},!1),n.addEventListener("drop",function(n){$(a.addClassTo).removeClass(a.overClass),e(n);for(var t=n.dataTransfer.files,r=[],s=0;s<=t.length-1;s++){var i=new FileReader,d=o(t[s],r,t.length,a);i.addEventListener?i.addEventListener("loadend",d,!1):i.onloadend=d,i.readAsDataURL(t[s])}},!1)}function o(e,a,t,o){return function(r){var s=r.target.result;o.removeDataUriScheme&&(s=$.removeUriScheme(s)),o.decodeBase64&&(s=n(s)),a.push({name:e.name,size:e.size,type:e.type,lastModified:e.lastModifiedDate,data:r.target.result}),a.length===t&&$.isFunction(o.onFileRead)&&o.onFileRead(a,o)}}var r=null;$.removeUriScheme=function(e){return e.replace(/^data:.*;base64,/,"")},$.support.fileDrop=function(){return!!window.FileList}(),$.fn.fileDrop=function(e){var n=a(e);return this.each(function(){var e=n;0===e.addClassTo.length&&(e.addClassTo=$(this)),t(this,e)})},$.fn.fileDrop.defaults={overClass:"state-over",addClassTo:null,onFileRead:null,removeDataUriScheme:!0,decodeBase64:!1}}(jQuery);