/*! * Name: vue-upload-component * Version: 2.8.10 * Author: LianYue */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.VueUploadComponent=t()}(this,function(){"use strict";var r=function(t){var n=new XMLHttpRequest;return n.open(t.method||"GET",t.url),n.responseType="json",t.headers&&Object.keys(t.headers).forEach(function(e){n.setRequestHeader(e,t.headers[e])}),n};function e(e){var i,t,n=r(e);return i=n,t=e.body,new Promise(function(e,n){i.onload=function(){if(200<=i.status&&i.status<300){var t;try{t=JSON.parse(i.response)}catch(e){t=i.response}e(t)}else n(i.response)},i.onerror=function(){return n(i.response)},i.send(JSON.stringify(t))})}var t=function(){function i(e,t){for(var n=0;n=this.maximum)break;if(r.push(s),1===this.maximum)break}}if(!r.length)return!1;1===this.maximum&&this.clear();var u=void 0;!0===t||0===t?u=r.concat(this.files):t?(u=r.concat([])).splice(t,0,r):u=this.files.concat(r),this.files=u;for(var c=0;c=r.maximum)return i(r.add(o));r.getEntry(e).then(function(e){o.push.apply(o,l(e)),t(n+1)})}(0)})}if(e.files.length){for(var i=0;i=this.maximum));i++);return Promise.resolve(this.add(o))}return Promise.resolve([])},getEntry:function(s){var a=this,u=1=a.maximum?r(o):e[n]?void a.getEntry(e[n],u+s.name+"/").then(function(e){o.push.apply(o,l(e)),t(n+1)}):i()}(0)})}()}else r([])})},replace:function(e,t){var n=this.get(e),i=this.get(t);if(!n||!i||n===i)return!1;var r=this.files.concat([]),o=r.indexOf(n),s=r.indexOf(i);return-1!==o&&-1!==s&&(r[o]=i,r[s]=n,this.files=r,this.emitInput(),!0)},remove:function(e){var t=this.get(e);if(t){if(this.emitFilter(void 0,t))return!1;var n=this.files.concat([]),i=n.indexOf(t);if(-1===i)return console.error("remove",t),!1;n.splice(i,1),this.files=n,delete this.maps[t.id],this.emitInput(),this.emitFile(void 0,t)}return t},update:function(e,t){var n=this.get(e);if(n){var i=f({},n,t);if(!n.fileObject||!n.active||i.active||i.error||i.success||(i.error="abort"),this.emitFilter(i,n))return!1;var r=this.files.concat([]),o=r.indexOf(n);return-1===o?(console.error("update",n),!1):(r.splice(o,1,i),this.files=r,delete this.maps[n.id],this.maps[i.id]=i,this.emitInput(),this.emitFile(i,n),i)}return!1},emitFilter:function(e,t){var n=!1;return this.$emit("input-filter",e,t,function(){return n=!0}),n},emitFile:function(n,e){this.$emit("input-file",n,e),!(n&&n.fileObject&&n.active)||e&&e.active?n&&n.fileObject&&n.active||!e||!e.fileObject||!e.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var t=this;setTimeout(function(){t.upload(n).then(function(){(n=t.get(n))&&n.fileObject&&t.update(n,{active:!1,success:!n.error})}).catch(function(e){t.update(n,{active:!1,success:!1,error:e.code||e.error||e.message||e})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(n)===Boolean(e)&&n.active===e.active||this.watchActive(!0)},emitInput:function(){this.$emit("input",this.files)},upload:function(e){var t=this.get(e);if(!t)return Promise.reject("not_exists");if(!t.fileObject)return Promise.reject("file_object");if(t.error)return Promise.reject(t.error);if(t.success)return Promise.resolve(t);var n=this.extensions;if(n&&(n.length||void 0===n.length)&&("object"===(void 0===n?"undefined":d(n))&&n instanceof RegExp||("string"==typeof n&&(n=n.split(",").map(function(e){return e.trim()}).filter(function(e){return e})),n=new RegExp("\\.("+n.join("|").replace(/\./g,"\\.")+")$","i")),-1===t.name.search(n)))return Promise.reject("extension");if(0this.size)return Promise.reject("size");if(this.customAction)return this.customAction(t,this);if(this.features.html5){if(this.shouldUseChunkUpload(t))return this.uploadChunk(t);if(t.putAction)return this.uploadPut(t);if(t.postAction)return this.uploadHtml5(t)}return t.postAction?this.uploadHtml4(t):Promise.reject("No action configured")},shouldUseChunkUpload:function(e){return this.chunkEnabled&&!!this.chunkOptions.handler&&e.size>this.chunkOptions.minSize},uploadChunk:function(e){var t=this.chunkOptions.handler;return e.chunk=new t(e,this.chunkOptions),e.chunk.upload()},uploadPut:function(e){var t=[],n=void 0;for(var i in e.data)null!=(n=e.data[i])&&t.push(encodeURIComponent(i)+"="+encodeURIComponent(n));var r=t.length?(-1===e.putAction.indexOf("?")?"?":"&")+t.join("&"):"",o=new XMLHttpRequest;return o.open("PUT",e.putAction+r),this.uploadXhr(o,e,e.file)},uploadHtml5:function(e){var t=new window.FormData,n=void 0;for(var i in e.data)(n=e.data[i])&&"object"===(void 0===n?"undefined":d(n))&&"function"!=typeof n.toString?n instanceof File?t.append(i,n,n.name):t.append(i,JSON.stringify(n)):null!=n&&t.append(i,n);t.append(this.name,e.file,e.file.filename||e.name);var r=new XMLHttpRequest;return r.open("POST",e.postAction),this.uploadXhr(r,e,t)},uploadXhr:function(s,e,n){var a=this,u=e,i=0,r=0;s.upload.onprogress=function(e){if(u=a.get(u),e.lengthComputable&&u&&u.fileObject&&u.active){var t=Math.round(Date.now()/1e3);t!==i&&(i=t,u=a.update(u,{progress:(e.loaded/e.total*100).toFixed(2),speed:e.loaded-r}),r=e.loaded)}};var c=setInterval(function(){if(!(u=a.get(u))||!u.fileObject||u.success||u.error||!u.active){c&&(clearInterval(c),c=!1);try{s.abort(),s.timeout=1}catch(e){}}},100);return new Promise(function(i,r){var o=void 0,e=function(e){if(!o){if(o=!0,c&&(clearInterval(c),c=!1),!(u=a.get(u)))return r("not_exists");if(!u.fileObject)return r("file_object");if(u.error)return r(u.error);if(!u.active)return r("abort");if(u.success)return i(u);var t={};switch(e.type){case"timeout":case"abort":t.error=e.type;break;case"error":s.status?500<=s.status?t.error="server":400<=s.status&&(t.error="denied"):t.error="network";break;default:500<=s.status?t.error="server":400<=s.status?t.error="denied":t.progress="100.00"}if(s.responseText){var n=s.getResponseHeader("Content-Type");n&&-1!==n.indexOf("/json")?t.response=JSON.parse(s.responseText):t.response=s.responseText}return(u=a.update(u,t)).error?r(u.error):i(u)}};for(var t in s.onload=e,s.onerror=e,s.onabort=e,s.ontimeout=e,u.timeout&&(s.timeout=u.timeout),u.headers)s.setRequestHeader(t,u.headers[t]);u=a.update(u,{xhr:s}),s.send(n)})},uploadHtml4:function(e){var a=this,u=e,c=function(e){27===e.keyCode&&e.preventDefault()},l=document.createElement("iframe");l.id="upload-iframe-"+u.id,l.name="upload-iframe-"+u.id,l.src="about:blank",l.setAttribute("style","width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;");var t=document.createElement("form");t.action=u.postAction,t.name="upload-form-"+u.id,t.setAttribute("method","POST"),t.setAttribute("target","upload-iframe-"+u.id),t.setAttribute("enctype","multipart/form-data");var n=void 0,i=void 0;for(var r in u.data)(n=u.data[r])&&"object"===(void 0===n?"undefined":d(n))&&"function"!=typeof n.toString&&(n=JSON.stringify(n)),null!=n&&((i=document.createElement("input")).type="hidden",i.name=r,i.value=n,t.appendChild(i));t.appendChild(u.el),document.body.appendChild(l).appendChild(t);return new Promise(function(o,s){setTimeout(function(){if(!(u=a.update(u,{iframe:l})))return s("not_exists");var i=setInterval(function(){(u=a.get(u))&&u.fileObject&&!u.success&&!u.error&&u.active||(i&&(clearInterval(i),i=!1),l.onabort({type:u?"abort":"not_exists"}))},100),r=void 0,e=function(e){if(!r){if(r=!0,i&&(clearInterval(i),i=!1),document.body.removeEventListener("keydown",c),!(u=a.get(u)))return s("not_exists");if(!u.fileObject)return s("file_object");if(u.error)return s(u.error);if(!u.active)return s("abort");if(u.success)return o(u);var t=function(){var t=void 0;try{l.contentWindow&&(t=l.contentWindow.document)}catch(e){}if(!t)try{t=l.contentDocument?l.contentDocument:l.document}catch(e){t=l.document}return t&&t.body?t.body.innerHTML:null}(),n={};switch(e.type){case"abort":n.error="abort";break;case"error":u.error?n.error=u.error:n.error=null===t?"network":"denied";break;default:u.error?n.error=u.error:null===n?n.error="network":n.progress="100.00"}if(null!==t){if(t&&"{"===t.substr(0,1)&&"}"===t.substr(t.length-1,1))try{t=JSON.parse(t)}catch(e){}n.response=t}return(u=a.update(u,n)).error?s(u.error):o(u)}};l.onload=e,l.onerror=e,l.onabort=e,document.body.addEventListener("keydown",c),t.submit()},50)}).then(function(e){return l.parentNode&&l.parentNode.removeChild(l),e}).catch(function(e){return l.parentNode&&l.parentNode.removeChild(l),e})},watchActive:function(e){for(var t=void 0,n=0;t=this.files[n];)if(n++,t.fileObject)if(e&&!this.destroy){if(this.uploading>=this.thread||this.uploading&&!this.features.html5)break;t.active||t.error||t.success||this.update(t,{active:!0})}else t.active&&this.update(t,{active:!1});else;0===this.uploading&&(this.active=!1)},watchDrop:function(e){var t=e;if(this.features.drop){if(this.dropElement)try{document.removeEventListener("dragenter",this.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(e){}t?"string"==typeof t?t=document.querySelector(t)||this.$root.$el.querySelector(t):!0===t&&(t=this.$parent.$el):t=!1,this.dropElement=t,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(e){e.preventDefault(),this.dropActive||(this.dropActive=!0)},onDragleave:function(e){e.preventDefault(),("HTML"===e.target.nodeName||e.target===e.explicitOriginalTarget||0===e.screenX&&0===e.screenY&&!e.fromElement&&e.offsetX<=0)&&(this.dropActive=!1)},onDragover:function(e){e.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(e){e.preventDefault(),this.addDataTransfer(e.dataTransfer)}}},void 0,!1,0,function e(){var c=document.head||document.getElementsByTagName("head")[0],l=e.styles||(e.styles={}),d="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(e,t){if(!document.querySelector('style[data-vue-ssr-id~="'+e+'"]')){var n=d?t.media||"default":e,i=l[n]||(l[n]={ids:[],parts:[],element:void 0});if(!i.ids.includes(e)){var r=t.source,o=i.ids.length;if(i.ids.push(e),t.map&&(r+="\n/*# sourceURL="+t.map.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),d&&(i.element=i.element||document.querySelector("style[data-group="+n+"]")),!i.element){var s=i.element=document.createElement("style");s.type="text/css",t.media&&s.setAttribute("media",t.media),d&&(s.setAttribute("data-group",n),s.setAttribute("data-next-index","0")),c.appendChild(s)}if(d&&(o=parseInt(i.element.getAttribute("data-next-index")),i.element.setAttribute("data-next-index",o+1)),i.element.styleSheet)i.parts.push(r),i.element.styleSheet.cssText=i.parts.filter(Boolean).join("\n");else{var a=document.createTextNode(r),u=i.element.childNodes;u[o]&&i.element.removeChild(u[o]),u.length?i.element.insertBefore(a,u[o]):i.element.appendChild(a)}}}}}),m=Object.freeze({default:p});return m&&p||m}); //# sourceMappingURL=vue-upload-component.min.js.map