!function(e){"use strict";angular.module("evaporate",[]).provider("eva",function(){var t;this.config=function(e){t=e},this.$get=[function(){return{_:new e(t),urlBase:"http://"+t.bucket+".s3.amazonaws.com/"}}]}).directive("evaporate",["eva",function(e){function t(t,r){function n(){}function a(e,t){for(var r=e.length,n=0;r>n;n++)if(angular.equals(e[n],t))return n;return-1}t.data||(t.data={});var o=t.data,i=o.dir?o.dir+"/":"",s=o.timestampSeparator||"$",p=o.headersCommon||{},u=o.headersSigned||{},l="function"==typeof o.onFileProgress?o.onFileProgress:n,c="function"==typeof o.onFileComplete?o.onFileComplete:n,f="function"==typeof o.onFileError?o.onFileError:n;o.ready=!1,e._.supported&&(r.bind("change",function(r){o.files=[],angular.forEach(r.target.files,function(r){r.started=Date.now(),r.path_=i+r.started+s+r.name,r.url=e.urlBase+r.path_,e._.add({name:r.path_,file:r,contentType:r.type||"binary/octet-stream",notSignedHeadersAtInitiate:p,xAmzHeadersAtInitiate:u,complete:function(){r.completed=!0,c(r),t.$apply()},progress:function(e){r.progress=Math.round(1e4*e)/100,r.timeLeft=Math.round((100-r.progress)/r.progress*(Date.now()-r.started)/1e3),l(r),t.$apply()},error:function(e){var n=a(o.files,r);-1!==n&&o.files.splice(n,1),f(r,e),t.$apply()}}),o.files.push(r)}),t.$apply()}),o.ready=!0)}return{restrict:"A",link:t,scope:{data:"=evaModel"}}}])}(Evaporate);
!function(e){"use strict";angular.module("evaporate",[]).provider("eva",function(){var t;this.config=function(e){t=e},this.$get=[function(){return{_:new e(t),urlBase:"http://"+t.bucket+".s3.amazonaws.com/"}}]}).directive("evaporate",["eva",function(e){function t(t,n){function a(){}function r(e,t){for(var n=e.length,a=0;n>a;a++)if(angular.equals(e[a],t))return a;return-1}t.data||(t.data={});var o=t.data,i=o.dir?o.dir+"/":"",l=o.timestampSeparator||"$",c=o.headersCommon||{},s=o.headersSigned||{},p="function"==typeof o.onFileProgress?o.onFileProgress:a,u="function"==typeof o.onFileComplete?o.onFileComplete:a,f="function"==typeof o.onFileError?o.onFileError:a,d="function"==typeof o.onFileCancelled?o.onFileCancelled:a;o.ready=!1,e._.supported&&(n.bind("change",function(a){o.files=[],angular.forEach(a.target.files,function(n){n.started=Date.now(),n.path_=i+n.started+l+n.name,n.url=e.urlBase+n.path_;var a=e._.add({name:n.path_,file:n,contentType:n.type||"binary/octet-stream",notSignedHeadersAtInitiate:c,xAmzHeadersAtInitiate:s,complete:function(){n.completed=!0,u(n),t.$apply()},progress:function(e){n.progress=Math.round(1e4*e)/100,n.timeLeft=Math.round((100-n.progress)/n.progress*(Date.now()-n.started)/1e3),p(n),t.$apply()},error:function(e){var a=r(o.files,n);-1!==a&&o.files.splice(a,1),f(n,e),t.$apply()},cancelled:function(){n.cancelled=!0,d(n),t.$apply()}});n.cancel=function(){e._.cancel(a)},o.files.push(n)}),n.wrap("<form>").closest("form").get(0).reset(),n.unwrap(),t.$apply()}),o.ready=!0)}return{restrict:"A",link:t,scope:{data:"=evaModel"}}}])}(Evaporate);
Update minified version.