2 lines
45 KiB
JavaScript
2 lines
45 KiB
JavaScript
var dragEnter=dragOver=dragLeave=dragDrop=function(){};(function(e,t){var n=function(e,t){var n={},r=function(e,t){var n,r,i;if(typeof e=="string")return o(e);n=[];for(r=e.length,i=0;i<r;i++)n.push(o(e[i]));return t.apply(null,n)},i=function(e,t,n){arguments.length===2&&(n=t,t=null);if(typeof e!="string"||!n)throw new Error("Define Error");r(t||[],function(){s(e,n,arguments)})},s=function(e,i,s){var o={exports:i},u;typeof i=="function"&&(s.length||(s=[r,o.exports,o]),u=i.apply(null,s),u!==t&&(o.exports=u)),n[e]=o.exports},o=function(t){var r=n[t]||e[t];if(!r)throw new Error("`"+t+"` is undefined");return r};return{define:i,require:r,modules:n}}(e),r=n.require,i=n.define;i("base",["jQuery"],function(t){function i(e){return function(){return r.apply(e,arguments)}}function s(e,t){return function(){return e.apply(t,arguments)}}function o(e){var t;return Object.create?Object.create(e):(t=function(){},t.prototype=e,new t)}var n=function(){},r=Function.call;return{version:"0.1.0",$:t,Deferred:t.Deferred,isPromise:function(e){return e&&typeof e.then=="function"},when:t.when,browser:function(e){var t={},n=e.match(/WebKit\/([\d.]+)/),r=e.match(/Chrome\/([\d.]+)/)||e.match(/CriOS\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/),s=e.match(/Firefox\/([\d.]+)/),o=e.match(/Safari\/([\d.]+)/),u=e.match(/OPR\/([\d.]+)/);return n&&(t.webkit=parseFloat(n[1])),r&&(t.chrome=parseFloat(r[1])),i&&(t.ie=parseFloat(i[1])),s&&(t.firefox=parseFloat(s[1])),o&&(t.safari=parseFloat(o[1])),u&&(t.opera=parseFloat(u[1])),t}(navigator.userAgent),inherits:function(e,n,r){var i;return typeof n=="function"?(i=n,n=null):n&&n.hasOwnProperty("constructor")?i=n.constructor:i=function(){return e.apply(this,arguments)},t.extend(!0,i,e,r||{}),i.__super__=e.prototype,i.prototype=o(e.prototype),n&&t.extend(!0,i.prototype,n),i},noop:n,bindFn:s,log:function(){return e.console?s(console.log,console):n}(),nextTick:function(){return function(e){setTimeout(e,1)}}(),slice:i([].slice),guid:function(){var e=0;return function(t){var n=(+(new Date)).toString(32),r=0;for(;r<5;r++)n+=Math.floor(Math.random()*65535).toString(32);return(t||"wu_")+n+(e++).toString(32)}}(),formatSize:function(e,t,n){var r;n=n||["B","K","M","G","TB"];while((r=n.shift())&&e>1024)e/=1024;return(r==="B"?e:e.toFixed(t||2))+r}}}),i("mediator",["base"],function(e){function s(e,n,r,i){return t.grep(e,function(e){return e&&(!n||e.e===n)&&(!r||e.cb===r||e.cb._cb===r)&&(!i||e.ctx===i)})}function o(e,n,i){t.each((e||"").split(r),function(e,t){i(t,n)})}function u(e,t){var n=!1,r=-1,i=e.length,s;while(++r<i){s=e[r];if(s.cb.apply(s.ctx2,t)===!1){n=!0;break}}return!n}var t=e.$,n=[].slice,r=/\s+/,i;return i={on:function(e,t,n){var r=this,i;return t?(i=this._events||(this._events=[]),o(e,t,function(e,t){var s={e:e};s.cb=t,s.ctx=n,s.ctx2=n||r,s.id=i.length,i.push(s)}),this):this},once:function(e,t,n){var r=this;return t?(o(e,t,function(e,t){var i=function(){return r.off(e,i),t.apply(n||r,arguments)};i._cb=t,r.on(e,i,n)}),r):r},off:function(e,n,r){var i=this._events;return i?!e&&!n&&!r?(this._events=[],this):(o(e,n,function(e,n){t.each(s(i,e,n,r),function(){delete i[this.id]})}),this):this},trigger:function(e){var t,r,i;return!this._events||!e?this:(t=n.call(arguments,1),r=s(this._events,e),i=s(this._events,"all"),u(r,t)&&u(i,arguments))}},t.extend({installTo:function(e){return t.extend(e,i)}},i)}),i("uploader",["base","mediator"],function(e,t){function r(e){this.options=n.extend(!0,{},r.options,e),this._init(this.options)}var n=e.$;return r.options={},t.installTo(r.prototype),n.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable"},function(e,t){r.prototype[e]=function(){return this.request(t,arguments)}}),n.extend(r.prototype,{state:"pending",_init:function(e){var t=this;t.request("init",e,function(){t.state="ready",t.trigger("ready")})},option:function(e,t){var r=this.options;if(!(arguments.length>1))return e?r[e]:r;n.isPlainObject(t)&&n.isPlainObject(r[e])?n.extend(r[e],t):r[e]=t},getStats:function(){var e=this.request("get-stats");return{successNum:e.numOfSuccess,cancelNum:e.numOfCancel,invalidNum:e.numOfInvalid,uploadFailNum:e.numOfUploadFailed,queueNum:e.numOfQueue}},trigger:function(e){var r=[].slice.call(arguments,1),i=this.options,s="on"+e.substring(0,1).toUpperCase()+e.substring(1);return t.trigger.apply(this,arguments)===!1?!1:n.isFunction(i[s])&&i[s].apply(this,r)===!1?!1:n.isFunction(this[s])&&this[s].apply(this,r)===!1?!1:!0},request:e.noop,reset:function(){}}),e.create=function(e){return new r(e)},e.Uploader=r,r}),i("runtime/runtime",["base","mediator"],function(e,t){function s(t){this.options=n.extend({container:document.body},t),this.uid=e.guid("rt_")}var n=e.$,r={},i=function(e){for(var t in e)if(e.hasOwnProperty(t))return t;return null};return n.extend(s.prototype,{getContainer:function(){var e=this.options,t,r;return this._container?this._container:(t=e.container||n(document.body),r=n(document.createElement("div")),r.attr("id","rt_"+this.uid),r.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),t.append(r),t.addClass("webuploader-container"),this._container=r,r)},init:e.noop,exec:e.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),s.orders="html5,flash",s.addRuntime=function(e,t){r[e]=t},s.hasRuntime=function(e){return e?!!r[e]:!!i(r)},s.create=function(e,t){var o,u;t=t||s.orders,n.each(t.split(/\s*,\s*/g),function(){if(r[this])return o=this,!1}),o=o||i(r);if(!o)throw new Error("Runtime Error");return u=new r[o](e),u},t.installTo(s.prototype),s}),i("runtime/client",["base","mediator","runtime/runtime"],function(e,t,n){function i(t,i){var s=e.Deferred(),o;this.uid=e.guid("client_"),this.runtimeReady=function(e){return s.done(e)},this.connectRuntime=function(e,t){if(o)return;return s.done(t),typeof e=="string"&&r.get(e)?o=r.get(e):!i&&r.has()&&(o=r.get()),o?(o.promise.then(s.resolve),o.client++,o):(o=n.create(e,e.runtimeOrder),r.add(o),o.promise=s.promise(),o.once("ready",s.resolve),o.init(),o.client=1,o)},this.getRuntime=function(){return o},this.disconnectRuntime=function(){if(!o)return;o.client--,o.client<=0&&(r.remove(o),delete o.promise,o.destroy()),o=null},this.exec=function(){if(!o)return;var n=e.slice(arguments);return t&&n.unshift(t),o.exec.apply(this,n)},this.getRuid=function(){return o&&o.uid},this.destroy=function(e){return function(){e&&e.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var r=function(){var e={};return{add:function(t){e[t.uid]=t},get:function(t){var n;if(t)return e[t];for(n in e)return e[n];return null},remove:function(t){delete e[t.uid]},has:function(){return!!this.get.apply(this,arguments)}}}();return t.installTo(i.prototype),i}),i("lib/blob",["base","runtime/client"],function(e,t){function n(e,n){var r=this;r.source=n,r.ruid=e,t.call(r,"Blob"),this.uid=n.uid||this.uid,this.type=n.type||"",this.size=n.size||0,e&&r.connectRuntime(e)}return e.inherits(t,{constructor:n,slice:function(e,t){return this.exec("slice",e,t)},getSource:function(){return this.source}}),n}),i("lib/file",["base","lib/blob"],function(e,t){function i(e,i){var s;t.apply(this,arguments),this.name=i.name||"untitled"+n++,s=r.exec(i.name)?RegExp.$1.toLowerCase():"",!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(s)&&(this.type="image/"+s),this.ext=s,this.lastModifiedDate=i.lastModifiedDate||(new Date).toLocaleString()}var n=0,r=/\.([^.]+)$/;return e.inherits(t,i)}),i("lib/filepicker",["base","runtime/client","lib/file"],function(t,n,r){function s(e){e=this.options=i.extend({},s.options,e),e.container=i(e.id);if(!e.container.length)throw new Error("按钮指定错误");e.label=e.label||e.container.text()||"选择文件",e.button=i(e.button||document.createElement("div")),e.button.text(e.label),e.container.html(e.button),n.call(this,"FilePicker",!0)}var i=t.$;return s.options={button:null,container:null,label:null,multiple:!0,accept:null},t.inherits(n,{constructor:s,init:function(){var t=this,n=t.options,s=n.button;s.addClass("webuploader-pick"),t.on("all",function(e){var n;switch(e){case"mouseenter":s.addClass("webuploader-pick-hover");break;case"mouseleave":s.removeClass("webuploader-pick-hover");break;case"change":n=t.exec("getFiles"),t.trigger("select",i.map(n,function(e){return new r(t.getRuid(),e)}))}}),t.connectRuntime(n,function(){t.refresh(),t.exec("init",n)}),i(e).on("resize",function(){t.refresh()})},refresh:function(){var e=this.getRuntime().getContainer(),t=this.options.button,n=t.outerWidth(),r=t.outerHeight(),i=t.offset();n&&e.css({width:n+"px",height:r+"px"}).offset(i)},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),s}),i("widgets/widget",["base","uploader"],function(e,t){function o(e){if(!e)return!1;var t=e.length,r=n.type(e);return e.nodeType===1&&t?!0:r==="array"||r!=="function"&&r!=="string"&&(t===0||typeof t=="number"&&t>0&&t-1 in e)}function u(e){this.owner=e,this.options=e.options}var n=e.$,r=t.prototype._init,i={},s=[];return n.extend(u.prototype,{init:e.noop,invoke:function(e,t){var r=this.responseMap;return!!r&&e in r&&r[e]in this&&!!n.isFunction(this[r[e]])?this[r[e]].apply(this,t):i},request:function(){return this.owner.request.apply(this.owner,arguments)}}),n.extend(t.prototype,{_init:function(){var e=this,t=e._widgets=[];return n.each(s,function(n,r){t.push(new r(e))}),r.apply(e,arguments)},request:function(t,n,r){var s=0,u=this._widgets,a=u.length,f=[],l=[],c,h;n=o(n)?n:[n];for(;s<a;s++)c=u[s],h=c.invoke(t,n),h!==i&&(e.isPromise(h)?l.push(h):f.push(h));return r||l.length?e.when.apply(e,l).then(function(){var t=e.Deferred(),n=arguments;return setTimeout(function(){t.resolve.apply(t,n)},1),t.promise()}).then(r||e.noop):f[0]}}),t.register=u.register=function(t,r){var i={init:"init"},o;return arguments.length===1?(r=t,r.responseMap=i):r.responseMap=n.extend(i,t),o=e.inherits(u,r),s.push(o),o},u}),i("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(e,t,n){return e.$.extend(t.options,{pick:null,accept:null}),t.register({"add-btn":"addButton",refresh:"refresh"},{init:function(e){return this.pickers=[],e.pick&&this.addButton(e.pick)},refresh:function(){$.each(this.pickers,function(){this.refresh()})},addButton:function(t){var r=this,i=r.options,s=i.accept,o,u,a;if(!t)return;return a=e.Deferred(),typeof t=="string"&&(t={id:t}),o=$.extend({},t,{accept:$.isPlainObject(s)?[s]:s,swf:i.swf,runtimeOrder:i.runtimeOrder}),u=new n(o),u.once("ready",a.resolve),u.on("select",function(e){r.owner.request("add-file",[e])}),u.init(),this.pickers.push(u),a.promise()}})}),i("file",["base","mediator"],function(e,t){function u(){return r+i++}function a(e){this.name=e.name||"Untitled",this.size=e.size||0;var t;try{t=e.source.fullPath}catch(n){}this.fullPath=t,this.type=e.type||"image/png",this.lastModifiedDate=e.lastModifiedDate||new Date*1,this.id=u(),this.ext=s.exec(this.name)?RegExp.$1:"",this.statusText="",o[this.id]=a.Status.INITED,this.source=e,this.loaded=0,this.on("error",function(e){this.setStatus(a.Status.ERROR,e)})}var n=e.$,r="WU_FILE_",i=0,s=/\.([^.]+)$/,o={};return n.extend(a.prototype,{setStatus:function(e,t){var n=o[this.id];typeof t!="undefined"&&(this.statusText=t),e!==n&&(o[this.id]=e,this.trigger("statuschange",e,n))},getStatus:function(){return o[this.id]},getSource:function(){return this.source},destory:function(){delete o[this.id]}}),t.installTo(a.prototype),a.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},a}),i("lib/dnd",["base","mediator","runtime/client"],function(e,t,n){function i(e){e=this.options=r.extend({},i.options,e),e.container=r(e.container);if(!e.container.length)return;n.call(this,"DragAndDrop")}var r=e.$;return i.options={accept:null,disableGlobalDnd:!0},e.inherits(n,{constructor:i,init:function(){var e=this;e.connectRuntime(e.options,function(){e.exec("init")})},destroy:function(){this.disconnectRuntime()}}),t.installTo(i.prototype),i}),i("lib/filepaste",["base","mediator","runtime/client"],function(e,t,n){function i(e){e=this.options=r.extend({},e),e.container=r(e.container||document.body),n.call(this,"FilePaste")}var r=e.$;return e.inherits(n,{constructor:i,init:function(){var e=this;e.connectRuntime(e.options,function(){e.exec("init")})},destroy:function(){this.exec("destroy"),this.disconnectRuntime(),this.off()}}),t.installTo(i.prototype),i}),i("lib/image",["base","runtime/client","lib/blob"],function(e,t,n){function i(e){this.options=r.extend({},i.options,e),t.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var r=e.$;return i.options={quality:90,crop:!1,preserveHeaders:!0,allowMagnify:!0},e.inherits(t,{constructor:i,info:function(e){return e?(this._info=e,this):this._info},meta:function(e){return e?(this._meta=e,this):this._meta},loadFromBlob:function(e){var t=this,n=e.getRuid();this.connectRuntime(n,function(){t.exec("init",t.options),t.exec("loadFromBlob",e)})},resize:function(){var t=e.slice(arguments);return this.exec.apply(this,["resize"].concat(t))},getAsDataUrl:function(e){return this.exec("getAsDataUrl",e)},getAsBlob:function(e){var t=this.exec("getAsBlob",e);return new n(this.getRuid(),t)}}),i}),i("lib/transport",["base","runtime/client","mediator"],function(e,t,n){function i(e){var n=this;e=n.options=r.extend(!0,{},i.options,e||{}),t.call(this,"Transport"),this._blob=null,this._formData=e.formData||{},this._headers=e.headers||{},this.on("progress",this._timeout),this.on("load error",function(){n.trigger("progress",1),clearTimeout(n._timer)})}var r=e.$;return i.options={server:"",method:"POST",withCredentials:!1,fileVar:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},r.extend(i.prototype,{appendBlob:function(e,t,n){var r=this,i=r.options;r.getRuid()&&r.disconnectRuntime(),r.connectRuntime(t.ruid,function(){r.exec("init")}),r._blob=t,i.fileVar=e||i.fileVar,i.filename=n||i.filename},append:function(e,t){typeof e=="object"?r.extend(this._formData,e):this._formData[e]=t},setRequestHeader:function(e,t){typeof e=="object"?r.extend(this._headers,e):this._headers[e]=t},send:function(e){this.exec("send",e),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var e=this,t=e.options.timeout;if(!t)return;clearTimeout(e._timer),e._timer=setTimeout(function(){e.abort(),e.trigger("error","timeout")},t)}}),n.installTo(i.prototype),i}),i("queue",["base","mediator","file"],function(e,t,n){function s(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var r=e.$,i=n.Status;return r.extend(s.prototype,{append:function(e){return this._queue.push(e),this._fileAdded(e),this},prepend:function(e){return this._queue.unshift(e),this._fileAdded(e),this},getFile:function(e){return typeof e!="string"?e:this._map[e]},fetch:function(e){var t=this._queue.length,n,r;e=e||i.QUEUED;for(n=0;n<t;n++){r=this._queue[n];if(e===r.getStatus())return r}return null},getFiles:function(){var e=[].slice.call(arguments,0),t=[],n=0,i=this._queue.length,s;for(;n<i;n++){s=this._queue[n];if(e.length&&!~r.inArray(s.getStatus(),e))continue;t.push(s)}return t},_fileAdded:function(e){var t=this,n=this._map[e.id];n||(this._map[e.id]=e,e.on("statuschange",function(e,n){t._onFileStatusChange(e,n)})),e.setStatus(i.QUEUED)},_onFileStatusChange:function(e,t){var n=this.stats;switch(t){case i.PROGRESS:n.numOfProgress--;break;case i.QUEUED:n.numOfQueue--;break;case i.ERROR:n.numOfUploadFailed--;break;case i.INVALID:n.numOfInvalid--}switch(e){case i.QUEUED:n.numOfQueue++;break;case i.PROGRESS:n.numOfProgress++;break;case i.ERROR:n.numOfUploadFailed++;break;case i.COMPLETE:n.numOfSuccess++;break;case i.CANCELLED:n.numOfCancel++;break;case i.INVALID:n.numOfInvalid++}}}),t.installTo(s.prototype),s}),i("runtime/compbase",function(){function e(e,t){this.owner=e,this.options=e.options,this.getRuntime=function(){return t},this.getRuid=function(){return t.uid},this.trigger=function(){return e.trigger.apply(e,arguments)}}return e}),i("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(t,n,r){function u(){var e;try{e=navigator.plugins["Shockwave Flash"],e=e.description}catch(t){try{e=(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")}catch(n){e="0.0"}}return e=e.match(/\d+/g),parseFloat(e[0]+"."+e[1],10)}function a(){function l(e,t){var n=e.type||e,r,s;r=n.split("::"),s=r[0],n=r[1],n==="Ready"&&s===a.uid?a.trigger("ready"):i[s]&&i[s].trigger(n.toLowerCase(),e,t)}var r={},i={},u=this.destory,a=this,f=t.guid("webuploader_");n.apply(a,arguments),a.type=s,a.exec=function(e,n){var s=this,u=s.uid,f=t.slice(arguments,2),l;i[u]=s;if(o[e]){r[u]||(r[u]=new o[e](s,a)),l=r[u];if(l[n])return l[n].apply(l,f)}return a.flashExec.apply(s,arguments)},e[f]=function(){var e=arguments;setTimeout(function(){l.apply(null,e)},1)},this.jsreciver=f,this.destory=function(){return u&&u.apply(this,arguments)},this.flashExec=function(e,n){var r=a.getFlash(),i=t.slice(arguments,2);return r.exec(this.uid,e,n,i)}}var i=t.$,s="flash",o={};return t.inherits(n,{constructor:a,init:function(){var e=this.getContainer(),n=this.options,r;e.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),r='<object id="'+this.uid+'" type="application/'+'x-shockwave-flash" data="'+n.swf+'" ',t.isIE&&(r+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),r+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+n.swf+'" />'+'<param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" />'+'<param name="wmode" value="transparent" />'+'<param name="allowscriptaccess" value="always" />'+"</object>",e.html(r)},getFlash:function(){return this._flash?this._flash:(this._flash=i("#"+this.uid).get(0),this._flash)}}),a.register=function(e,n){return n=o[e]=t.inherits(r,i.extend({flashExec:function(){var e=this.owner,t=this.getRuntime();return t.flashExec.apply(e,arguments)}},n)),n},u()>=11.3&&n.addRuntime(s,a),a}),i("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(e,t){var n=e.$;return t.register("FilePicker",{init:function(e){var t=n.extend({},e);delete t.button,delete t.container,this.flashExec("FilePicker","init",t)},destroy:function(){}})}),i("runtime/flash/image",["runtime/flash/runtime"],function(e){return e.register("Image",{loadFromBlob:function(e){var t=this.owner;t.info()&&this.flashExec("Image","info",t.info()),t.meta()&&this.flashExec("Image","meta",t.meta()),this.flashExec("Image","loadFromBlob",e.uid)}})}),i("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(e,t,n){return t.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var e=this.owner,t=this.options,n=this._initAjax(),r=e._blob,i=t.server,s;n.connectRuntime(r.ruid),t.sendAsBinary?(i+=(/\?/.test(i)?"&":"?")+$.param(e._formData),s=r.uid):($.each(e._formData,function(e,t){n.exec("append",e,t)}),n.exec("appendBlob",t.fileVar,r.uid,t.filename||e._formData.name||"")),this._setRequestHeader(n,t.headers),n.exec("send",{method:t.method,url:i},s)},getStatus:function(){return this._status},getResponse:function(){return this._response},getResponseAsJson:function(){return this._responseJson},abort:function(){var e=this._xhr;e&&(e.exec("abort"),e.destroy(),this._xhr=e=null)},destroy:function(){this.abort()},_initAjax:function(){var e=this,t=new n("XMLHttpRequest");return t.on("uploadprogress progress",function(t){return e.trigger("progress",t.loaded/t.total)}),t.on("load",function(){var n=t.exec("getStatus");return t.off(),e._xhr=null,n===200?(e._response=t.exec("getResponse"),e._responseJson=t.exec("getResponseAsJson"),e.trigger("load")):(e._status=n,t.destroy(),t=null,e.trigger("error","http"))}),t.on("error",function(){t.off(),e._xhr=null,e.trigger("error","http")}),e._xhr=t,t},_setRequestHeader:function(e,t){$.each(t,function(t,n){e.exec("setRequestHeader",t,n)})}})}),i("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(t,n,r){function o(){var e={},r=this,o=this.destory;n.apply(r,arguments),r.type=i,r.exec=function(n,i){var o=this,u=o.uid,a=t.slice(arguments,2),f;if(s[n]){f=e[u]=e[u]||new s[n](o,r);if(f[i])return f[i].apply(f,a)}},r.destory=function(){return o&&o.apply(this,arguments)}}var i="html5",s={};return t.inherits(n,{constructor:o,init:function(){var e=this;setTimeout(function(){e.trigger("ready")},1)}}),o.register=function(e,n){var i=s[e]=t.inherits(r,n);return i},e.Blob&&e.FileReader&&e.DataView&&n.addRuntime(i,o),o}),i("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(e,t){return e.register("Blob",{slice:function(e,n){var r=this.owner.source,i=r.slice||r.webkitSlice||r.mozSlice;return r=i.call(r,e,n),new t(this.getRuid(),r)}})}),i("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(e,n,r){var i=e.$;return n.register("DragAndDrop",{init:function(){var t=this.elem=this.options.container;this.dragEnterHandler=e.bindFn(this._dragEnterHandler,this),this.dragOverHandler=e.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=e.bindFn(this._dragLeaveHandler,this),this.dropHandler=e.bindFn(this._dropHandler,this),t.on("dragenter",this.dragEnterHandler),t.on("dragover",this.dragOverHandler),t.on("dragleave",this.dragLeaveHandler),t.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(i(document).on("dragover",this.dragOverHandler),i(document).on("drop",this.dropHandler))},_dragEnterHandler:function(e){return dragEnter(e),this.elem.addClass("webuploader-dnd-over"),e=e.originalEvent||e,e.dataTransfer.dropEffect="copy",!1},_dragOverHandler:function(e){return dragOver(e),i.contains(this.elem.parent().get(0),e.target)?(this._dragEnterHandler.call(this,e),!1):!1},_dragLeaveHandler:function(){return dragLeave(),this.elem.removeClass("webuploader-dnd-over"),!1},_dropHandler:function(n){dragDrop(n);var s=[],o=[],u=this,a=u.getRuid(),f,l,c,h,p,d,v;if(!i.contains(u.elem.parent().get(0),n.target))return!1;n=n.originalEvent||n,c=n.dataTransfer,f=c.items,l=c.files;if(l.length==0)return;v=!!f&&!!f[0].webkitGetAsEntry;for(p=0,d=l.length;p<d;p++)h=l[p],f!=t&&f[p].webkitGetAsEntry()!=null&&f[p].webkitGetAsEntry().isDirectory?v&&o.push(this._traverseDirectoryTree(f[p].webkitGetAsEntry(),s)):s.push(h);return e.when.apply(e,o).done(function(){u.trigger("drop",i.map(s,function(e){return new r(a,e)}))}),this.elem.removeClass("webuploader-dnd-over"),!1},_traverseDirectoryTree:function(t,n){var r=e.Deferred(),i=this;return t.isFile?t.file(function(e){e.fullPath=t.fullPath,n.push(e),r.resolve(!0)}):t.isDirectory&&t.createReader().readEntries(function(t){var s=t.length,o=[],u=[],a;for(a=0;a<s;a++)o.push(i._traverseDirectoryTree(t[a],u));e.when.apply(e,o).then(function(){n.push.apply(n,u),r.resolve(!0)},r.reject)}),r.promise()},destroy:function(){var e=this.elem;e.off("dragenter",this.dragEnterHandler),e.off("dragover",this.dragEnterHandler),e.off("dragleave",this.dragLeaveHandler),e.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(i(document).off("dragover",this.dragOverHandler),i(document).off("drop",this.dropHandler))}})}),i("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(e,t,n){return t.register("FilePaste",{init:function(){var t=this.options,n=this.elem=t.container,r=".*",i,s,o,u;if(t.accept){i=[];for(s=0,o=t.accept.length;s<o;s++)u=t.accept[s].mimeTypes,u&&i.push(u);i.length&&(r=i.join(","),r=r.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=r=new RegExp(r,"i"),this.hander=e.bindFn(this._pasteHander,this),n.on("paste",this.hander)},_pasteHander:function(e){var t=[],r=this.getRuid(),i,s,o,u,a;e=e.originalEvent||e,e.preventDefault(),e.stopPropagation(),i=e.clipboardData.items;for(u=0,a=i.length;u<a;u++){s=i[u];if(!s.type||!(o=s.getAsFile())||o.size<6)continue;t.push(new n(r,o))}t.length&&this.trigger("paste",t)},destroy:function(){this.elem.off("paste",this.hander)}})}),i("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(e,t){var n=e.$;return t.register("FilePicker",{init:function(){var e=this.getRuntime().getContainer(),t=this,r=t.owner,i=t.options,s=n(document.createElement("label")),o=n(document.createElement("input")),u,a,f,l;o.attr("type","file"),o.css({position:"absolute",clip:"rect(1px,1px,1px,1px)"}),s.on("click",function(){o.trigger("click")}),s.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&o.attr("multiple","multiple");if(i.accept&&i.accept.length>0){u=[];for(a=0,f=i.accept.length;a<f;a++)u.push(i.accept[a].mimeTypes);o.attr("accept",u.join(","))}e.append(o),e.append(s),l=function(e){r.trigger(e.type)},o.on("change",function(e){var i=arguments.callee,s;t.files=e.target.files,s=this.cloneNode(!0),this.parentNode.replaceChild(s,this),o.off(),o=n(s).on("change",i).on("mouseenter mouseleave",l),r.trigger("change")}),s.on("mouseenter mouseleave",l)},getFiles:function(){return this.files},destroy:function(){}})}),i("runtime/html5/util",function(){var t=e.createObjectURL&&e||e.URL&&URL.revokeObjectURL&&URL||e.webkitURL;return{createObjectURL:t&&t.createObjectURL,revokeObjectURL:t&&t.revokeObjectURL,dataURL2Blob:function(e){var t,n,r,i,s,o;o=e.split(","),~o[0].indexOf("base64")?t=atob(o[1]):t=decodeURIComponent(o[1]),r=new ArrayBuffer(t.length),n=new Uint8Array(r);for(i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return s=o[0].split(":")[1].split(";")[0],new Blob([r],{type:s})},dataURL2ArrayBuffer:function(e){var t,n,r,i;i=e.split(","),~i[0].indexOf("base64")?t=atob(i[1]):t=decodeURIComponent(i[1]),n=new Uint8Array(t.length);for(r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n.buffer},arrayBufferToBlob:function(e,t){return new Blob([e],t?{type:t}:{})}}}),i("runtime/html5/imagemeta",function(){var e;return e={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(e,t){var n=this,r=new FileReader;r.onload=function(){t(!1,n._parse(this.result)),r=r.onload=r.onerror=null},r.onerror=function(e){t(e.message),r=r.onload=r.onerror=null},e=e.slice(0,n.maxMetaDataSize),r.readAsArrayBuffer(e.getSource())},_parse:function(t,n){if(t.byteLength<6)return;var r=new DataView(t),i=2,s=r.byteLength-4,o=i,u={},a,f,l,c;if(r.getUint16(0)===65496){while(i<s){a=r.getUint16(i);if(!(a>=65504&&a<=65519||a===65534))break;f=r.getUint16(i+2)+2;if(i+f>r.byteLength)break;l=e.parsers[a];if(!n&&l)for(c=0;c<l.length;c+=1)l[c].call(e,r,i,f,u);i+=f,o=i}o>6&&(t.slice?u.imageHead=t.slice(2,o):u.imageHead=(new Uint8Array(t)).subarray(2,o))}return u},updateImageHead:function(e,t){var n=this._parse(e,!0),r,i,s;return s=2,n.imageHead&&(s=2+n.imageHead.byteLength),e.slice?i=e.slice(s):i=(new Uint8Array(e)).subarray(s),r=new Uint8Array(t.byteLength+2+i.byteLength),r[0]=255,r[1]=216,r.set(new Uint8Array(t),2),r.set(new Uint8Array(i),t.byteLength+2),r.buffer}},e}),i("runtime/html5/image",["runtime/html5/runtime","runtime/html5/util","runtime/html5/imagemeta"],function(e,t,n){var r="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return e.register("Image",{modified:!1,init:function(){var e=this,t=new Image;t.onload=function(){e._info={type:e.type,width:this.width,height:this.height},!e._metas&&~"image/jpegimage/jpg".indexOf(e.type)?n.parse(e._blob,function(t,n){e._metas=n,e.owner.trigger("load")}):e.owner.trigger("load")},t.onerror=function(){e.owner.trigger("error")},e._img=t},loadFromBlob:function(e){var n=this,r=n._img;n._blob=e,n.type=e.type,r.src=t.createObjectURL(e.getSource()),n.owner.once("load",function(){t.revokeObjectURL(r.src)})},resize:function(e,t){var n=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,n,e,t),this._blob=null,this.modified=!0,this.owner.trigger("complete")},getAsBlob:function(e){var r=this._blob,i=this.options,s;e=e||this.type;if(this.modified||this.type!==e){s=this._canvas;if(e==="image/jpeg"){r=s.toDataURL("image/jpeg",i.quality/100);if(i.preserveHeaders&&this._metas&&this._metas.imageHead)return r=t.dataURL2ArrayBuffer(r),r=n.updateImageHead(r,this._metas.imageHead),r=t.arrayBufferToBlob(r,e),r}else r=s.toDataURL(e);r=t.dataURL2Blob(r)}return r},getAsDataUrl:function(e){var t=this.options;return e=e||this.type,e==="image/jpeg"?this._canvas.toDataURL(e,t.quality/100):this._canvas.toDataURL(e)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(e){return e?(this._info=e,this):this._info},meta:function(e){return e?(this._meta=e,this):this._meta},destroy:function(){var e=this._canvas;this._img.onload=null,e&&(e.getContext("2d").clearRect(0,0,e.width,e.height),e.width=e.height=0,this._canvas=null),this._img.src=r,this._img=this._blob=null},_resize:function(e,t,n,r){var i=this.options,s=e.width,o=e.height,u=this.getOrientation(),a,f,l,c,h;~[5,6,7,8].indexOf(u)&&(n^=r,r^=n,n^=r),a=Math[i.crop?"max":"min"](n/s,r/o),i.allowMagnify||(a=Math.min(1,a)),f=s*a,l=o*a,i.crop?(t.width=n,t.height=r):(t.width=f,t.height=l),c=(t.width-f)/2,h=(t.height-l)/2,i.preserveHeaders||this._rotate2Orientaion(t,u),this._renderImageToCanvas(t,e,c,h,f,l)},_rotate2Orientaion:function(e,t){var n=e.width,r=e.height,i=e.getContext("2d");switch(t){case 5:case 6:case 7:case 8:e.width=r,e.height=n}switch(t){case 2:i.translate(n,0),i.scale(-1,1);break;case 3:i.translate(n,r),i.rotate(Math.PI);break;case 4:i.translate(0,r),i.scale(1,-1);break;case 5:i.rotate(.5*Math.PI),i.scale(1,-1);break;case 6:i.rotate(.5*Math.PI),i.translate(0,-r);break;case 7:i.rotate(.5*Math.PI),i.translate(n,-r),i.scale(-1,1);break;case 8:i.rotate(-0.5*Math.PI),i.translate(-n,0)}},_renderImageToCanvas:function(e,t,n,r,i,s){e.getContext("2d").drawImage(t,n,r,i,s)}})}),i("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(e,t){var n={};return n.ExifMap=function(){return this},n.ExifMap.prototype.map={Orientation:274},n.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},n.exifTagTypes={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,n){return e.getUint16(t,n)},size:2},4:{getValue:function(e,t,n){return e.getUint32(t,n)},size:4},5:{getValue:function(e,t,n){return e.getUint32(t,n)/e.getUint32(t+4,n)},size:8},9:{getValue:function(e,t,n){return e.getInt32(t,n)},size:4},10:{getValue:function(e,t,n){return e.getInt32(t,n)/e.getInt32(t+4,n)},size:8}},n.exifTagTypes[7]=n.exifTagTypes[1],n.getExifValue=function(t,r,i,s,o,u){var a=n.exifTagTypes[s],f,l,c,h,p,d;if(!a){e.log("Invalid Exif data: Invalid tag type.");return}f=a.size*o,l=f>4?r+t.getUint32(i+8,u):i+8;if(l+f>t.byteLength){e.log("Invalid Exif data: Invalid data offset.");return}if(o===1)return a.getValue(t,l,u);c=[];for(h=0;h<o;h+=1)c[h]=a.getValue(t,l+h*a.size,u);if(a.ascii){p="";for(h=0;h<c.length;h+=1){d=c[h];if(d==="\0")break;p+=d}return p}return c},n.parseExifTag=function(e,t,r,i,s){var o=e.getUint16(r,i);s.exif[o]=n.getExifValue(e,t,r,e.getUint16(r+2,i),e.getUint32(r+4,i),i)},n.parseExifTags=function(t,n,r,i,s){var o,u,a;if(r+6>t.byteLength){e.log("Invalid Exif data: Invalid directory offset.");return}o=t.getUint16(r,i),u=r+2+12*o;if(u+4>t.byteLength){e.log("Invalid Exif data: Invalid directory size.");return}for(a=0;a<o;a+=1)this.parseExifTag(t,n,r+2+12*a,i,s);return t.getUint32(u,i)},n.parseExifData=function(t,r,i,s){var o=r+10,u,a;if(t.getUint32(r+4)!==1165519206)return;if(o+8>t.byteLength){e.log("Invalid Exif data: Invalid segment size.");return}if(t.getUint16(r+8)!==0){e.log("Invalid Exif data: Missing byte alignment offset.");return}switch(t.getUint16(o)){case 18761:u=!0;break;case 19789:u=!1;break;default:e.log("Invalid Exif data: Invalid byte alignment marker.");return}if(t.getUint16(o+2,u)!==42){e.log("Invalid Exif data: Missing TIFF marker.");return}a=t.getUint32(o+4,u),s.exif=new n.ExifMap,a=n.parseExifTags(t,o,o+a,u,s)},t.parsers[65505].push(n.parseExifData),n}),i("runtime/html5/transport",["base","runtime/html5/runtime"],function(e,t){var n=e.noop,r=e.$;return t.register("Transport",{init:function(){this
|
|
._status=0,this._response=null},send:function(){var e=this.owner,t=this.options,n=this._initAjax(),i=e._blob,s=t.server,o,u;t.sendAsBinary?(s+=(/\?/.test(s)?"&":"?")+r.param(e._formData),u=i.getSource()):(o=new FormData,r.each(e._formData,function(e,t){o.append(e,t)}),o.append(t.fileVar,i.getSource(),t.filename||e._formData.name||"")),t.withCredentials&&"withCredentials"in n?(n.open(t.method,s,!0),n.withCredentials=!0):n.open(t.method,s),this._setRequestHeader(n,t.headers),u&&n.overrideMimeType("application/octet-stream"),n.send(u||o)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var e=this._xhr;e&&(e.upload.onprogress=n,e.onreadystatechange=n,e.abort(),this._xhr=e=null)},destroy:function(){this.abort()},_initAjax:function(){var e=this,t=new XMLHttpRequest,r=this.options;return r.withCredentials&&!("withCredentials"in t)&&typeof XDomainRequest!="undefined"&&(t=new XDomainRequest),t.upload.onprogress=function(t){var n=0;return t.lengthComputable&&(n=t.loaded/t.total),e.trigger("progress",n)},t.onreadystatechange=function(){if(t.readyState!==4)return;return t.upload.onprogress=n,t.onreadystatechange=n,e._xhr=null,t.status===200?(e._response=t.responseText,e.trigger("load")):(e._status=t.status,t=null,e.trigger("error",e._status?"http":"abort"))},e._xhr=t,t},_setRequestHeader:function(e,t){r.each(t,function(t,n){e.setRequestHeader(t,n)})},_parseJson:function(e){var t;try{t=JSON.parse(e)}catch(n){t={}}return t}})}),i("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(e,t,n){return t.options.dnd="",t.register({init:function(t){if(!t.dnd||this.request("predict-runtime-type")!=="html5")return;var r=this,i=e.Deferred(),s=$.extend({},{container:t.dnd,accept:t.accept}),o;return o=new n(s),o.once("ready",i.resolve),o.on("drop",function(e){r.request("add-file",[e])}),o.init(),i.promise()}})}),i("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(e,t,n){return t.register({init:function(t){if(!t.paste||this.request("predict-runtime-type")!=="html5")return;var r=this,i=e.Deferred(),s=$.extend({},{container:t.paste,accept:t.accept}),o;return o=new n(s),o.once("ready",i.resolve),o.on("paste",function(e){r.owner.request("add-file",[e])}),o.init(),i.promise()}})}),i("widgets/image",["base","uploader","lib/image","widgets/widget"],function(e,t,n){var r=e.$,i;return i=function(e){var t=0,n=[],r=function(){var r;while(n.length&&t<e)r=n.shift(),t+=r[0],r[1]()};return function(e,i,s){n.push([i,s]),e.once("destroy",function(){t-=i,setTimeout(r,1)}),setTimeout(r,1)}}(5242880),r.extend(t.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),t.register({"make-thumb":"makeThumb","before-send-file":"compressImage"},{makeThumb:function(e,t,s,o){var u,a;e=this.request("get-file",e);if(!e.type.match(/^image/)){t(!0);return}u=r.extend({},this.options.thumb),r.isPlainObject(s)&&(u=r.extend(u,s),s=null),s=s||u.width,o=o||u.height,a=new n(u),a.once("load",function(){e._info=e._info||a.info(),e._meta=e._meta||a.meta(),a.resize(s,o)}),a.once("complete",function(){t(!1,a.getAsDataUrl(u.type)),a.destroy()}),a.once("error",function(){t(!0),a.destroy()}),i(a,e.source.size,function(){e._info&&a.info(e._info),e._meta&&a.meta(e._meta),a.loadFromBlob(e.source)})},compressImage:function(t){var i=this.options.compress||this.options.resize,s=i&&i.compressSize||307200,o,u;t=this.request("get-file",t);if(!i||!~"image/jpeg,image/jpg".indexOf(t.type)||t.size<s||t._compressed)return;return i=r.extend({},i),u=e.Deferred(),o=new n(i),u.always(function(){o.destroy(),o=null}),o.once("error",u.reject),o.once("load",function(){t._info=t._info||o.info(),t._meta=t._meta||o.meta(),o.resize(i.width,i.height)}),o.once("complete",function(){var e,n;e=o.getAsBlob(i.type),n=t.size,e.size<n&&(t.source=e,t.size=e.size,t.trigger("resize",e.size,n)),t._compressed=!0,u.resolve(!0)}),t._info&&o.info(t._info),t._meta&&o.meta(t._meta),o.loadFromBlob(t.source),u.promise()}})}),i("widgets/queue",["base","uploader","queue","file","widgets/widget"],function(e,t,n,r){var i=e.$,s=/\.\w+$/,o=r.Status;return t.register({"add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry"},{init:function(e){var t,r,s,o,u;i.isPlainObject(e.accept)&&(e.accept=[e.accept]);if(e.accept){o=[];for(r=0,t=e.accept.length;r<t;r++)s=e.accept[r].extensions,s&&o.push(s);o.length&&(u="\\."+o.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),this.accept=new RegExp(u,"i")}this.queue=new n,this.stats=this.queue.stats},_addFile:function(e){var t=this;if(!e||e.size<6||t.accept&&s.exec(e.name)&&!t.accept.test(e.name))return;e instanceof r||(e=new r(e));if(!t.owner.trigger("beforeFileQueued",e))return;return t.queue.append(e),t.owner.trigger("fileQueued",e),e},getFile:function(e){return this.queue.getFile(e)},addFiles:function(e){var t=this;e.length||(e=[e]),e=i.map(e,function(e){return t._addFile(e)}),t.owner.trigger("filesQueued",e),t.options.auto&&t.request("start-upload")},getStats:function(){return this.stats},removeFile:function(e){var t=this;e=e.id?e:t.queue.getFile(e),e.setStatus(o.CANCELLED),t.owner.trigger("fileDequeued",e)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(e,t){var n=this,r,i,s;if(e){e=e.id?e:n.queue.getFile(e),e.setStatus(o.QUEUED),t||n.request("start-upload");return}r=n.queue.getFiles(o.ERROR),i=0,s=r.length;for(;i<s;i++)e=r[i],e.setStatus(o.QUEUED);n.request("start-upload")}})}),i("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(e,t){return e.support=function(){return t.hasRuntime.apply(t,arguments)},e.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var e=this.options.runtimeOrder||t.orders,n=this.type,r,i;if(!n){e=e.split(/\s*,\s*/g);for(r=0,i=e.length;r<i;r++)if(t.hasRuntime(e[r])){this.type=n=e[r];break}}return n}})}),i("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(e,t,n,r){function u(e,t){var n=[],r=e.source,i=r.size,s=t?Math.ceil(i/t):1,o=0,u=0,a;while(u<s)a=Math.min(t,i-o),n.push({file:e,start:o,end:o+a,total:i,chunks:s,chunk:u++}),o+=a;return e.blocks=n.concat(),e.remaning=n.length,{file:e,has:function(){return!!n.length},fetch:function(){return n.shift()}}}var i=e.$,s=e.isPromise,o=n.Status;i.extend(t.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formdata:null}),t.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var t=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=e.bindFn(this._tick,this),t.on("uploadComplete",function(e){e.blocks&&i.each(e.blocks,function(e,t){t.transport&&(t.transport.abort(),t.transport.destroy()),delete t.transport}),delete e.blocks,delete e.remaning})},start:function(){var t=this;i.each(t.request("get-files",o.INVALID),function(){t.request("remove-file",this)});if(t.runing)return;t.runing=!0,i.each(t.pool,function(e,n){var r=n.file;r.getStatus()===o.INTERRUPT&&(r.setStatus(o.PROGRESS),t._trigged=!1,n.transport&&n.transport.send())}),t._trigged=!1,t.owner.trigger("startUpload"),e.nextTick(t.__tick)},stop:function(e){var t=this;if(t.runing===!1)return;t.runing=!1,e&&i.each(t.pool,function(e,t){t.transport&&t.transport.abort(),t.file.setStatus(o.INTERRUPT)}),t.owner.trigger("stopUpload")},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(e,t){e=this.request("get-file",e),e.setStatus(t||o.COMPLETE),e.skipped=!0,e.blocks&&i.each(e.blocks,function(e,t){var n=t.transport;n&&(n.abort(),n.destroy(),delete t.transport)}),this.owner.trigger("uploadSkip",e)},_tick:function(){var t=this,n=t.options,r,i;if(t._promise)return t._promise.always(t.__tick);t.pool.length<n.threads&&(i=t._nextBlock())?(t._trigged=!1,r=function(n){t._promise=null,n&&n.file&&t._startSend(n),e.nextTick(t.__tick)},t._promise=s(i)?i.always(r):r(i)):!t.remaning&&!t.getStats().numOfQueue&&(t.runing=!1,t._trigged||e.nextTick(function(){t.owner.trigger("uploadFinished")}),t._trigged=!0)},_nextBlock:function(){var e=this,t=e._act,n=e.options,r,i;if(t&&t.has()&&t.file.getStatus()===o.PROGRESS)return n.prepareNextFile&&!e.pending.length&&e._prepareNextFile(),t.fetch();if(e.runing)return!e.pending.length&&e.getStats().numOfQueue&&e._prepareNextFile(),r=e.pending.shift(),i=function(r){return r?(t=u(r,n.chunked?n.chunkSize:0),e._act=t,t.fetch()):null},s(r)?r.then(i):i(r)},_prepareNextFile:function(){var e=this,t=e.request("fetch-file"),n=e.pending,r;t&&(r=e.request("before-send-file",t,function(){return t.getStatus()===o.QUEUED?(e.owner.trigger("uploadStart",t),t.setStatus(o.PROGRESS),t):e._finishFile(t)}),r.done(function(){var e=i.inArray(r,n);~e&&n.splice(e,1,t)}),r.fail(function(n){t.setStatus(o.ERROR,n),e.owner.trigger("uploadError",t,n),e.owner.trigger("uploadComplete",t)}),n.push(r))},_popBlock:function(e){var t=i.inArray(e,this.pool);this.pool.splice(t,1),e.file.remaning--,this.remaning--},_startSend:function(t){var n=this,r=t.file,i;n.pool.push(t),n.remaning++,t.blob=t.chunks===1?r.source:r.source.slice(t.start,t.end),i=n.request("before-send",t,function(){r.getStatus()===o.PROGRESS?n._doSend(t):(n._popBlock(t),e.nextTick(n.__tick))}),i.fail(function(){r.remaning===1?n._finishFile(r).always(function(){t.percentage=1,n._popBlock(t),n.owner.trigger("uploadComplete",r),e.nextTick(n.__tick)}):(t.percentage=1,n._popBlock(t),e.nextTick(n.__tick))})},_doSend:function(t){var n=this,s=n.owner,u=n.options,a=t.file,f=new r(u),l=i.extend({},u.formData),c=i.extend({},u.headers);t.transport=f,f.on("destroy",function(){delete t.transport,n._popBlock(t),e.nextTick(n.__tick)}),f.on("progress",function(e){var n=0,r=0;n=t.percentage=e,t.chunks>1&&(i.each(a.blocks,function(e,t){r+=(t.percentage||0)*(t.end-t.start)}),n=r/a.size),s.trigger("uploadProgress",a,n||0)}),f.on("error",function(e){t.retried=t.retried||0,t.chunks>1&&~"http,abort".indexOf(e)&&t.retried<u.chunkRetry?(t.retried++,f.send()):(a.setStatus(o.ERROR,e),s.trigger("uploadError",a,e),s.trigger("uploadComplete",a))}),f.on("load",function(){var e=f.getResponseAsJson()||{},r,i;e._raw=f.getResponse(),i=function(e){r=e},s.trigger("uploadAccept",t,e,i)||(r=r||"server");if(r){f.trigger("error",r);return}a.remaning===1?n._finishFile(a,e):f.destroy()}),l=i.extend(l,{id:a.id,name:a.name,type:a.type,lastModifiedDate:a.lastModifiedDate,size:a.size}),t.chunks>1&&i.extend(l,{chunks:t.chunks,chunk:t.chunk}),s.trigger("uploadBeforeSend",t,l,c),f.appendBlob(u.fileVal,t.blob,a.name),f.append(l),f.setRequestHeader(c),f.send()},_finishFile:function(e,t,n){var r=this.owner;return r.request("after-send-file",arguments,function(){e.setStatus(o.COMPLETE),r.trigger("uploadSuccess",e,t,n)}).fail(function(t){e.getStatus()===o.PROGRESS&&e.setStatus(o.ERROR,t),r.trigger("uploadError",e,t)}).always(function(){r.trigger("uploadComplete",e)})}})}),i("widgets/validator",["base","uploader","file","widgets/widget"],function(e,t,n){var r=e.$,i={},s;return s={addValidator:function(e,t){i[e]=t},removeValidator:function(e){delete i[e]}},t.register({init:function(){var e=this;r.each(i,function(){this.call(e.owner)})}}),s.addValidator("fileNumLimit",function(){var e=this,t=e.options,n=0,r=t.fileNumLimit>>0,i=!0;if(!r)return;e.on("beforeFileQueued",function(){return n>=r&&i&&(i=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",r),setTimeout(function(){i=!0},1)),n>=r?!1:!0}),e.on("fileQueued",function(){n++}),e.on("fileDequeued",function(){n--})}),s.addValidator("fileSizeLimit",function(){var e=this,t=e.options,n=0,r=t.fileSizeLimit>>0,i=!0;if(!r)return;e.on("beforeFileQueued",function(e){var t=n+e.size>r;return t&&i&&(i=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",r),setTimeout(function(){i=!0},1)),t?!1:!0}),e.on("fileQueued",function(e){n+=e.size}),e.on("fileDequeued",function(e){n-=e.size})}),s.addValidator("fileSingleSizeLimit",function(){var e=this,t=e.options,r=t.fileSingleSizeLimit;if(!r)return;e.on("fileQueued",function(e){e.size>r&&e.setStatus(n.Status.INVALID,"exceed_size")})}),s.addValidator("duplicate",function(){function r(e){var t=0,n=0,r=e.length,i;for(;n<r;n++)i=e.charCodeAt(n),t=i+(t<<6)+(t<<16)-t;return t}var e=this,t=e.options,n={};if(t.duplicate)return;e.on("beforeFileQueued",function(e){var t=r(e.name+e.size+e.lastModifiedDate);if(n[t])return!1}),e.on("fileQueued",function(e){var t=r(e.name+e.size+e.lastModifiedDate);n[t]=!0}),e.on("fileDequeued",function(e){var t=r(e.name+e.size+e.lastModifiedDate);delete n[t]})}),s}),function(t){var n=function(e){return e&&e.charAt(0).toUpperCase()+e.substr(1)},r="WebUploader",i=t.base,s,o,u,a,f,l;for(s in t){o=i;if(!t.hasOwnProperty(s))continue;u=s.split("/"),f=n(u.pop());while(a=n(u.shift()))o[a]=o[a]||{},o=o[a];o[f]=t[s]}typeof module=="object"&&typeof module.exports=="object"?module.exports=i:e.define&&e.define.amd?e.define(function(){return i}):(l=e[r],e[r]=i,e[r].noConflict=function(){e[r]=l})}(n.modules)})(this) |