snappymail/vendors/jua/jua.min.js
RainLoop Team 4cc2207513 Uploading and preparing the repository to the dev version.
Original unminified source code (dev folder - js, css, less) (fixes #6)
Grunt build system
Multiple identities correction (fixes #9)
Compose html editor (fixes #12)
New general settings - Loading Description
New warning about default admin password
Split general and login screen settings
2013-11-16 02:21:12 +04:00

23 lines
No EOL
9.1 KiB
JavaScript

/*! JUA v1.0 MIT */
(function(){function a(a){function l(){if(g&&d<a){var b=g,c=b[0],f=Array.prototype.slice.call(b,1),m=b.index;g===h?g=h=null:g=g.next,++d,f.push(function(a,b){--d;if(i)return;a?e&&k(i=a,e=j=g=h=null):(j[m]=b,--e?l():k(null,j))}),c.apply(null,f)}}var c={},d=0,e=0,f=-1,g,h,i=null,j=[],k=b;return arguments.length<1&&(a=Infinity),c.defer=function(){if(!i){var a=arguments;a.index=++f,h?(h.next=a,h=h.next):g=h=a,++e,l()}return c},c.await=function(a){return k=a,e||k(i,j),c},c}function b(){}typeof module=="undefined"?self.queue=a:module.exports=a,a.version="0.0.2"})();var e=!0,f=null,g=!1,j,k=jQuery,l=window,m=queue;function n(a){return"undefined"===typeof a}function r(a){0<a&&clearTimeout(a)}function u(a){a=a&&(a.originalEvent?a.originalEvent:a)||l.event;return a.dataTransfer?a:f}function v(a,b,c){return!a||!b||n(a[b])?c:a[b]}function y(){for(var a=16,b="",a=n(a)?32:parseInt(a||0,10);b.length<a;)b+="0123456789abcdefghijklmnopqrstuvwxyz".substr(Math.round(36*Math.random()),1);return"jua-uid-"+b+"-"+(new Date).getTime().toString()}
function z(a,b){return{FileName:n(a.fileName)?n(a.name)?f:a.name:a.fileName,Size:n(a.fileSize)?n(a.size)?f:a.size:a.fileSize,Type:n(a.type)?f:a.type,Folder:n(b)?"":b,File:a}}
function A(a,b,c,h,d,i){function o(a,b,s,c){if(a&&!n(a.name))if(b=b||"",a.isFile)a.file(function(a){!w||0<=--d?s(z(a,b)):w&&!x&&(0>d&&i)&&(x=e,i(t))});else if(h&&a.isDirectory&&a.createReader){var q=a.createReader(),p=0,C=0;q&&q.readEntries&&q.readEntries(function(d){if(d&&d&&d.length&&0<d.length){p=0;for(C=d.length;p<C;p++)o(d[p],b+a.name+"/",s,c)}})}}var t=0,s=0,q=0,p=f,p=f,w=g,x=g,h=n(h)?e:!!h,c=n(c)?g:!!c,t=d=n(d)?B.m:parseInt(d||0,10),w=0<d;if(a=a&&0<a.length?a:f){q=0;for(s=a.length;q<s;q++)if(p=
a[q])c?"file"===p.kind&&p.webkitGetAsEntry&&(p=p.webkitGetAsEntry())&&o(p,"",b,i):!w||0<=--d?b(z(p)):w&&!x&&(0>d&&i)&&(x=e,i(t))}}function D(a,b,c,h){var d=a&&a.files&&0<a.files.length?a.files:f;d?A(d,b,g,g,c,h):b({FileName:a.value.split("\\").pop().split("/").pop(),Size:f,Type:f,Folder:"",File:f})}
function E(a){if(a){if(!n(a.__memEventContainsFiles))return a.__memEventContainsFiles;var b=g;if(a&&a.dataTransfer&&a.dataTransfer.types&&a.dataTransfer.types.length)for(var c=0,h=a.dataTransfer.types.length;c<h;c++)if("files"===a.dataTransfer.types[c].toLowerCase()){b=e;break}a.__memEventContainsFiles=b}return a?a.__memEventContainsFiles:g}
function F(){return k('<label style="position: absolute; background-color:#fff; right: 0px; top: 0px; left: 0px; bottom: 0px; margin: 0px; padding: 0px; cursor: pointer;"></label>').css({opacity:0})}function G(a,b){var a=n(a)?"":a.toString(),c=k('<input type="file" tabindex="-1" hidefocus="hidefocus" style="position: absolute; left: -9999px;" />');0<a.length&&c.attr("name",a);(n(b)||b)&&c.prop("multiple",e);return c}
function H(a,b){return k.isFunction(a)?a.apply(f,k.isArray(b)?b:[]).toString():a.toString()}function I(a,b){this.g={};this.e={};this.k=a;this.a=b}function J(a,b){this.e={};this.h={};this.k=a;this.a=b}
function B(a){var a=n(a)?{}:a,b=this;b.c=e;var c={action:"",name:"",hidden:{},clickElement:g,dragAndDropElement:g,dragAndDropBodyElement:g,queueSize:10,onDialog:f,onSelect:f,onStart:f,onComplete:f,onCompleteAll:f,onProgress:f,onDragEnter:B.b,onDragLeave:B.b,onDrop:B.b,onBodyDragEnter:B.b,onBodyDragLeave:B.b,onLimitReached:B.b,disableAjaxUpload:g,disableFolderDragAndDrop:e,disableDragAndDrop:g,disableMultiple:g,multipleSizeLimit:50};if(a)for(var h in a)a.hasOwnProperty(h)&&(c[h]=a[h]);b.a=c;b.o=m(parseInt(v(b.a,
"queueSize",10)||0,10));v(b.a,"onCompleteAll",f)&&b.o.await(function(){v(b.a,"onCompleteAll",B.b)()});b.d=b.n()&&!v(b.a,"disableAjaxUpload",g)?new I(b,b.a):new J(b,b.a);b.j=v(b.a,"clickElement",f);b.j&&(k(b.j).css({position:"relative",overflow:"hidden"}),"inline"===k(this.j).css("display")&&k(this.j).css("display","inline-block"),this.d.l(this.j));if(this.d.i()&&v(this.a,"dragAndDropElement",g)&&!v(this.a,"disableAjaxUpload",g)){h=k(document);var d=k(v(b.a,"dragAndDropBodyElement",g)||h),i=v(b.a,
"dragAndDropElement",g),a=function(a){if(b.c&&a)if((a=u(a))&&E(a)){r(b.f);var c=a.dataTransfer.effectAllowed;a.dataTransfer.dropEffect=c==="move"||c==="linkMove"?"move":"copy";a.stopPropagation();a.preventDefault();d.trigger("dragover",a)}},c=function(a){if(b.c&&a)if(a=u(a)){a.preventDefault();var c,d=function(c){if(c){v(b.a,"onDrop",B.b)(c,a);b.q(c);r(b.f)}},h=v(b.a,"multipleSizeLimit",B.m),i=v(b.a,"onLimitReached",B.b),o=f;c=f;if(c=u(a))if((o=(c.dataTransfer?v(c.dataTransfer,"items",f):f)||v(c,
"items",f))&&0<o.length&&o[0]&&o[0].webkitGetAsEntry)A(o,d,e,!v(b.a,"disableFolderDragAndDrop",e),h,i);else if(E(c))(c=v(c,"files",f)||(c.dataTransfer?v(c.dataTransfer,"files",f):f))&&0<c.length&&A(c,d,g,g,h,i)}v(b.a,"onDragLeave",B.b)(a)},o=function(a){if(b.c&&a)if((a=u(a))&&E(a)){r(b.f);a.preventDefault();v(b.a,"onDragEnter",B.b)(i,a)}},t=function(a){if(b.c&&a)if(a=u(a)){var c=document.elementFromPoint?document.elementFromPoint(a.clientX,a.clientY):f,d;if(!(d=!c)){d=g;this&&c&&(d=this===c?e:this.contains?
this.contains(c):c.compareDocumentPosition?!!(c.compareDocumentPosition(this)&8):g);d=!d}if(d){r(b.f);v(b.a,"onDragLeave",B.b)(i,a)}}};if(i){h.on("dragover",function(a){if(b.c&&a)if(a=u(a)){a.dataTransfer.dropEffect="none";a.preventDefault()}});if(d&&d[0])d.on("dragover",function(a){b.c&&a&&r(b.f)}).on("dragenter",function(a){if(b.c&&a)if((a=u(a))&&E(a)){r(b.f);a.preventDefault();v(b.a,"onBodyDragEnter",B.b)(a)}}).on("dragleave",function(a){if(b.c&&a)if(a=u(a)){r(b.f);b.f=setTimeout(function(){v(b.a,
"onBodyDragLeave",B.b)(a)},200)}}).on("drop",function(a){if(b.c&&a)if(a=u(a)){a.preventDefault();v(b.a,"onBodyDragLeave",B.b)(a)}return g});k(i).bind("dragenter",o).bind("dragover",a).bind("dragleave",t).bind("drop",c)}}else b.c=g;b.cancel=b.cancel;b.isDragAndDropSupported=b.i;b.isAjaxUploaderSupported=b.n;b.setDragAndDropEnabledStatus=b.t}j=I.prototype;j.g={};j.e={};j.k=f;j.a={};j.i=function(){return e};j.r=function(a){this.e[a]=e};
j.s=function(a,b,c){if(g===this.e[a]||!b||!b.File)return c(f,a),g;try{var h=this,d=new XMLHttpRequest,i=new FormData,o=v(this.a,"hidden",{}),t=v(this.a,"onStart",f),s=v(this.a,"onComplete",f),q=v(this.a,"onProgress",f);d.open("POST",v(this.a,"action",""),e);q&&d.upload&&(d.upload.onprogress=function(b){b&&(b.lengthComputable&&!n(b.loaded)&&!n(b.total))&&q(a,b.loaded,b.total)});d.onreadystatechange=function(){if(4===d.readyState&&200===d.status){if(s){var b=g,i=f;try{i=k.parseJSON(d.responseText);
b=e}catch(o){i=f}s(a,b,i)}n(h.g[a])||(h.g[a]=f);c(f,a)}else if(4===d.readyState){s(a,g,f);c(f,a)}};t&&t(a);i.append("jua-post-type","ajax");i.append(v(this.a,"name","juaFile"),b.File);k.each(o,function(a,c){i.append(a,H(c,[b]))});d.send(i);this.g[a]=d;return e}catch(p){}c(f,a);return g};
j.l=function(a){var b=this,c=f,h=f;a&&(h=G("",!v(this.a,"disableMultiple",g)),c=F(),c.append(h),k(a).append(c),h.on("click",function(){var a=v(b.a,"onDialog",f);a&&a()}).on("change",function(){D(this,function(d){b.k.q(d);b.l(a);setTimeout(function(){c.remove()},10)},v(b.a,"multipleSizeLimit",B.m),v(b.a,"onLimitReached",B.b))}))};j.cancel=function(a){this.e[a]=g;if(this.g[a]){try{this.g[a].abort&&this.g[a].abort()}catch(b){}this.g[a]=f}};j=J.prototype;j.e={};j.h={};j.k=f;j.a={};j.i=function(){return g};
j.r=function(a){this.e[a]=e};
j.s=function(a,b,c){if(g===this.e[a])return c(f,a),g;var h=this.h[a],d=v(this.a,"hidden",{}),i=v(this.a,"onStart",f),o=v(this.a,"onComplete",f);h?(h.append(k('<input type="hidden" />').attr("name","jua-post-type").val("iframe")),k.each(d,function(a,c){h.append(k('<input type="hidden" />').attr("name",a).val(H(c,[b])))}),h.trigger("submit"),i&&i(a),h.find("iframe").on("load",function(){var b=g,d=f,i={};if(o){try{d=this.contentDocument?this.contentDocument:this.contentWindow.document,i=k.parseJSON(d.body.innerHTML),
b=e}catch(p){i={}}o(a,b,i)}c(f,a);l.setTimeout(function(){h.remove()},100)})):c(f,a);return e};
j.l=function(a){var b=this,c="",h=f,d=f,d=v(this.a,"action",""),i=f;a&&(c=y(),h=G(v(this.a,"name","juaFile"),!v(this.a,"disableMultiple",g)),i=k('<form action="'+d+'" target="iframe-'+c+'" method="POST" enctype="multipart/form-data" style="display: block; cursor: pointer;"></form>'),d=k('<iframe name="iframe-'+c+'" tabindex="-1" src="javascript:void(0);" style="position: absolute; top: -1000px; left: -1000px; cursor: pointer;" />').css({opacity:0}),i.append(F().append(h)).append(d),k(a).append(i),
this.h[c]=i,h.on("click",function(){var a=v(b.a,"onDialog",f);a&&a()}).on("change",function(){D(this,function(d){d&&(i.css({position:"absolute",top:-1E3,left:-1E3}),b.k.p(c,d),b.l(a))},v(b.a,"multipleSizeLimit",B.m),v(b.a,"onLimitReached",B.b))}))};j.cancel=function(a){this.e[a]=g;this.h[a]&&(this.h[a].remove(),this.h[a]=g)};B.b=function(){};B.m=20;var K=B,L=document.createElement("input");L.type="file";K.n=!!("XMLHttpRequest"in l&&"multiple"in L&&"FormData"in l&&(new XMLHttpRequest).upload);j=B.prototype;
j.c=e;j.f=0;j.a={};j.o=f;j.d=f;j.cancel=function(a){this.d.cancel(a)};j.n=function(){return B.n};j.t=function(a){this.c=!!a};j.i=function(){return this.d.i()};j.q=function(a){this.p(y(),a)};j.p=function(a,b){var c=v(this.a,"onSelect",f);if(b&&(!c||g!==c(a,b))){this.d.r(a);var h=this.d.s,d=this.d;this.o.defer(function(){return h.apply(n(d)?f:d,Array.prototype.slice.call(arguments))},a,b)}else this.d.cancel(a)};l.Jua=B;