diff --git a/dist/vue-upload-component.js b/dist/vue-upload-component.js index f1781fb..00116d1 100644 --- a/dist/vue-upload-component.js +++ b/dist/vue-upload-component.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.8.22 + * Version: 2.8.23 * Author: LianYue */ (function (global, factory) { @@ -833,6 +833,11 @@ default: false }, + dropAutoHideTime: { + type: Number, + default: 1000 + }, + dropDirectory: { type: Boolean, default: true @@ -1980,6 +1985,10 @@ } }, watchDropActive: function watchDropActive(newDropActive, oldDropActive) { + if (this.dropAutoHideTime === 0) { + return; + } + if (newDropActive === oldDropActive) { return; } @@ -1988,7 +1997,7 @@ this.dropTimeout = null; } if (newDropActive) { - this.dropTimeout = setTimeout(this.onDocumentDrop, 1000); + this.dropTimeout = setTimeout(this.onDocumentDrop, this.dropAutoHide); } }, onDocumentDragenter: function onDocumentDragenter(e) { @@ -2100,7 +2109,7 @@ /* style */ var __vue_inject_styles__$1 = function __vue_inject_styles__(inject) { if (!inject) return; - inject("data-v-939ffe40_0", { source: ".file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block}.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%}.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0}", map: undefined, media: undefined }); + inject("data-v-03c451a0_0", { source: ".file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block}.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%}.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0}", map: undefined, media: undefined }); }; /* scoped */ var __vue_scope_id__$1 = undefined; diff --git a/dist/vue-upload-component.js.map b/dist/vue-upload-component.js.map index 10b97c8..dbe2dfa 100644 --- a/dist/vue-upload-component.js.map +++ b/dist/vue-upload-component.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-upload-component.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../src/InputFile.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../node_modules/vue-runtime-helpers/dist/inject-style/browser.js","../src/index.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","\n\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","'use strict';\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nmodule.exports = createInjector;\n//# sourceMappingURL=browser.js.map\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","Object","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","data","FormData","name","append","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","stopSpeedCalc","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","speed","lastUploadedBytes","window","setInterval","uploadedBytes","clearInterval","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","renderWithStyleInjection","h","existing","beforeCreate","concat","isOldIE","navigator","test","userAgent","toLowerCase","id","addStyle","HEAD","document","head","getElementsByTagName","styles","css","group","media","ids","Set","has","code","source","map","sources","btoa","unescape","encodeURIComponent","element","createElement","setAttribute","appendChild","styleSheet","cssText","Boolean","join","index","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","require$$0"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-upload-component.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../src/InputFile.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../node_modules/vue-runtime-helpers/dist/inject-style/browser.js","../src/index.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","\n\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","'use strict';\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nmodule.exports = createInjector;\n//# sourceMappingURL=browser.js.map\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","Object","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","data","FormData","name","append","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","stopSpeedCalc","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","speed","lastUploadedBytes","window","setInterval","uploadedBytes","clearInterval","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","renderWithStyleInjection","h","existing","beforeCreate","concat","isOldIE","navigator","test","userAgent","toLowerCase","id","addStyle","HEAD","document","head","getElementsByTagName","styles","css","group","media","ids","Set","has","code","source","map","sources","btoa","unescape","encodeURIComponent","element","createElement","setAttribute","appendChild","styleSheet","cssText","Boolean","join","index","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","require$$0"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-upload-component.min.js b/dist/vue-upload-component.min.js index 8339f01..abe8e08 100644 --- a/dist/vue-upload-component.min.js +++ b/dist/vue-upload-component.min.js @@ -1,7 +1,7 @@ /*! * Name: vue-upload-component - * Version: 2.8.22 + * Version: 2.8.23 * 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 i=new XMLHttpRequest;return i.open(t.method||"GET",t.url),i.responseType="json",t.headers&&Object.keys(t.headers).forEach(function(e){i.setRequestHeader(e,t.headers[e])}),i};function e(e){var n,t,i=r(e);return n=i,t=e.body,new Promise(function(e,i){n.onload=function(){if(200<=n.status&&n.status<300){var t;try{t=JSON.parse(n.response)}catch(e){t=n.response}e(t)}else i(n.response)},n.onerror=function(){return i(n.response)},n.send(JSON.stringify(t))})}var t=function(){function n(e,t){for(var i=0;i=this.maximum)break;if(r.push(o),1===this.maximum)break}}if(!r.length)return!1;1===this.maximum&&this.clear();var u=void 0;if(!0===t||0===t)u=r.concat(this.files);else if(t){var c;(c=u=this.files.concat([])).splice.apply(c,[t,0].concat(r))}else u=this.files.concat(r);this.files=u;for(var l=0;l=r.maximum)return n(r.add(s));r.getEntry(e).then(function(e){s.push.apply(s,c(e)),t(i+1)})}(0)})}if(e.files.length){for(var n=0;n=this.maximum));n++);return Promise.resolve(this.add(s))}return Promise.resolve([])},getEntry:function(o){var a=this,u=1=a.maximum?r(s):e[i]?void a.getEntry(e[i],u+o.name+"/").then(function(e){s.push.apply(s,c(e)),t(i+1)}):n()}(0)})}()}else r([])})},replace:function(e,t){var i=this.get(e),n=this.get(t);if(!i||!n||i===n)return!1;var r=this.files.concat([]),s=r.indexOf(i),o=r.indexOf(n);return-1!==s&&-1!==o&&(r[s]=n,r[o]=i,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 i=this.files.concat([]),n=i.indexOf(t);if(-1===n)return console.error("remove",t),!1;i.splice(n,1),this.files=i,delete this.maps[t.id],this.emitInput(),this.emitFile(void 0,t)}return t},update:function(e,t){var i=this.get(e);if(i){var n=f({},i,t);if(!i.fileObject||!i.active||n.active||n.error||n.success||(n.error="abort"),this.emitFilter(n,i))return!1;var r=this.files.concat([]),s=r.indexOf(i);return-1===s?(console.error("update",i),!1):(r.splice(s,1,n),this.files=r,delete this.maps[i.id],this.maps[n.id]=n,this.emitInput(),this.emitFile(n,i),n)}return!1},emitFilter:function(e,t){var i=!1;return this.$emit("input-filter",e,t,function(){return i=!0}),i},emitFile:function(i,e){this.$emit("input-file",i,e),!(i&&i.fileObject&&i.active)||e&&e.active?i&&i.fileObject&&i.active||!e||!e.fileObject||!e.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var t=this;setTimeout(function(){t.upload(i).then(function(){(i=t.get(i))&&i.fileObject&&t.update(i,{active:!1,success:!i.error})}).catch(function(e){t.update(i,{active:!1,success:!1,error:e.code||e.error||e.message||e})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(i)===Boolean(e)&&i.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 i=this.extensions;if(i&&(i.length||void 0===i.length)&&("object"===(void 0===i?"undefined":o(i))&&i instanceof RegExp||("string"==typeof i&&(i=i.split(",").map(function(e){return e.trim()}).filter(function(e){return e})),i=new RegExp("\\.("+i.join("|").replace(/\./g,"\\.")+")$","i")),-1===t.name.search(i)))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=[],i=void 0;for(var n in e.data)null!=(i=e.data[n])&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));var r=t.length?(-1===e.putAction.indexOf("?")?"?":"&")+t.join("&"):"",s=new XMLHttpRequest;return s.open("PUT",e.putAction+r),this.uploadXhr(s,e,e.file)},uploadHtml5:function(e){var t=new window.FormData,i=void 0;for(var n in e.data)(i=e.data[n])&&"object"===(void 0===i?"undefined":o(i))&&"function"!=typeof i.toString?i instanceof File?t.append(n,i,i.name):t.append(n,JSON.stringify(i)):null!=i&&t.append(n,i);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(o,e,i){var a=this,u=e,n=0,r=0;o.upload.onprogress=function(e){if(u=a.get(u),e.lengthComputable&&u&&u.fileObject&&u.active){var t=Math.round(Date.now()/1e3);t!==n&&(n=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{o.abort(),o.timeout=1}catch(e){}}},100);return new Promise(function(n,r){var s=void 0,e=function(e){if(!s){if(s=!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 n(u);var t={};switch(e.type){case"timeout":case"abort":t.error=e.type;break;case"error":o.status?500<=o.status?t.error="server":400<=o.status&&(t.error="denied"):t.error="network";break;default:500<=o.status?t.error="server":400<=o.status?t.error="denied":t.progress="100.00"}if(o.responseText){var i=o.getResponseHeader("Content-Type");i&&-1!==i.indexOf("/json")?t.response=JSON.parse(o.responseText):t.response=o.responseText}return(u=a.update(u,t)).error?r(u.error):n(u)}};for(var t in o.onload=e,o.onerror=e,o.onabort=e,o.ontimeout=e,u.timeout&&(o.timeout=u.timeout),u.headers)o.setRequestHeader(t,u.headers[t]);u=a.update(u,{xhr:o}),o.send(i)})},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 i=void 0,n=void 0;for(var r in u.data)(i=u.data[r])&&"object"===(void 0===i?"undefined":o(i))&&"function"!=typeof i.toString&&(i=JSON.stringify(i)),null!=i&&((n=document.createElement("input")).type="hidden",n.name=r,n.value=i,t.appendChild(n));t.appendChild(u.el),document.body.appendChild(l).appendChild(t);return new Promise(function(s,o){setTimeout(function(){if(!(u=a.update(u,{iframe:l})))return o("not_exists");var n=setInterval(function(){(u=a.get(u))&&u.fileObject&&!u.success&&!u.error&&u.active||(n&&(clearInterval(n),n=!1),l.onabort({type:u?"abort":"not_exists"}))},100),r=void 0,e=function(e){if(!r){if(r=!0,n&&(clearInterval(n),n=!1),document.body.removeEventListener("keydown",c),!(u=a.get(u)))return o("not_exists");if(!u.fileObject)return o("file_object");if(u.error)return o(u.error);if(!u.active)return o("abort");if(u.success)return s(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}(),i={};switch(e.type){case"abort":i.error="abort";break;case"error":u.error?i.error=u.error:i.error=null===t?"network":"denied";break;default:u.error?i.error=u.error:null===i?i.error="network":i.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){}i.response=t}return(u=a.update(u,i)).error?o(u.error):s(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,i=0;t=this.files[i];)if(i++,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.onDocumentDragenter,!1),document.removeEventListener("dragleave",this.onDocumentDragleave,!1),document.removeEventListener("dragover",this.onDocumentDragover,!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.onDocumentDragenter,!1),document.addEventListener("dragleave",this.onDocumentDragleave,!1),document.addEventListener("dragover",this.onDocumentDragover,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},watchDropActive:function(e,t){e!==t&&(this.dropTimeout&&(clearTimeout(this.dropTimeout),this.dropTimeout=null),e&&(this.dropTimeout=setTimeout(this.onDocumentDrop,1e3)))},onDocumentDragenter:function(e){if(!this.dropActive&&e.dataTransfer){var t=e.dataTransfer;t.files&&t.files.length?this.dropActive=!0:t.types?t.types.indexOf&&-1!==t.types.indexOf("Files")?this.dropActive=!0:t.types.contains&&t.types.contains("Files")&&(this.dropActive=!0):this.dropActive=!0,this.dropActive&&this.watchDropActive(!0)}},onDocumentDragleave:function(e){this.dropActive&&(e.target===e.explicitOriginalTarget||!e.fromElement&&(e.clientX<=0||e.clientY<=0||e.clientX>=window.innerWidth||e.clientY>=window.innerHeight))&&(this.dropActive=!1,this.watchDropActive(!1))},onDocumentDragover:function(){this.watchDropActive(!0)},onDocumentDrop:function(){this.dropActive=!1,this.watchDropActive(!1)},onDragover:function(e){e.preventDefault()},onDrop:function(e){e.preventDefault(),e.dataTransfer&&this.addDataTransfer(e.dataTransfer)}}},l="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var d=document.head||document.getElementsByTagName("head")[0],h={};var p,m=n({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",{class:e.className},[e._t("default"),e._v(" "),i("label",{attrs:{for:e.inputId||e.name}}),e._v(" "),i("input-file")],2)},staticRenderFns:[]},function(e){e&&e("data-v-939ffe40_0",{source:".file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block}.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%}.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0}",map:void 0,media:void 0})},u,void 0,!1,void 0,function(e){return function(e,t){return function(e,t){var i=l?t.media||"default":e,n=h[i]||(h[i]={ids:new Set,styles:[]});if(!n.ids.has(e)){n.ids.add(e);var r=t.source;if(t.map&&(r+="\n/*# sourceURL="+t.map.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),n.element||(n.element=document.createElement("style"),n.element.type="text/css",t.media&&n.element.setAttribute("media",t.media),d.appendChild(n.element)),"styleSheet"in n.element)n.styles.push(r),n.element.styleSheet.cssText=n.styles.filter(Boolean).join("\n");else{var s=n.ids.size-1,o=document.createTextNode(r),a=n.element.childNodes;a[s]&&n.element.removeChild(a[s]),a.length?n.element.insertBefore(o,a[s]):n.element.appendChild(o)}}}(e,t)}},void 0);return(p=Object.freeze({default:m}))&&p.default||p}); +!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 i=new XMLHttpRequest;return i.open(t.method||"GET",t.url),i.responseType="json",t.headers&&Object.keys(t.headers).forEach(function(e){i.setRequestHeader(e,t.headers[e])}),i};function e(e){var n,t,i=r(e);return n=i,t=e.body,new Promise(function(e,i){n.onload=function(){if(200<=n.status&&n.status<300){var t;try{t=JSON.parse(n.response)}catch(e){t=n.response}e(t)}else i(n.response)},n.onerror=function(){return i(n.response)},n.send(JSON.stringify(t))})}var t=function(){function n(e,t){for(var i=0;i=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;if(!0===t||0===t)u=r.concat(this.files);else if(t){var c;(c=u=this.files.concat([])).splice.apply(c,[t,0].concat(r))}else u=this.files.concat(r);this.files=u;for(var l=0;l=r.maximum)return n(r.add(o));r.getEntry(e).then(function(e){o.push.apply(o,c(e)),t(i+1)})}(0)})}if(e.files.length){for(var n=0;n=this.maximum));n++);return Promise.resolve(this.add(o))}return Promise.resolve([])},getEntry:function(s){var a=this,u=1=a.maximum?r(o):e[i]?void a.getEntry(e[i],u+s.name+"/").then(function(e){o.push.apply(o,c(e)),t(i+1)}):n()}(0)})}()}else r([])})},replace:function(e,t){var i=this.get(e),n=this.get(t);if(!i||!n||i===n)return!1;var r=this.files.concat([]),o=r.indexOf(i),s=r.indexOf(n);return-1!==o&&-1!==s&&(r[o]=n,r[s]=i,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 i=this.files.concat([]),n=i.indexOf(t);if(-1===n)return console.error("remove",t),!1;i.splice(n,1),this.files=i,delete this.maps[t.id],this.emitInput(),this.emitFile(void 0,t)}return t},update:function(e,t){var i=this.get(e);if(i){var n=f({},i,t);if(!i.fileObject||!i.active||n.active||n.error||n.success||(n.error="abort"),this.emitFilter(n,i))return!1;var r=this.files.concat([]),o=r.indexOf(i);return-1===o?(console.error("update",i),!1):(r.splice(o,1,n),this.files=r,delete this.maps[i.id],this.maps[n.id]=n,this.emitInput(),this.emitFile(n,i),n)}return!1},emitFilter:function(e,t){var i=!1;return this.$emit("input-filter",e,t,function(){return i=!0}),i},emitFile:function(i,e){this.$emit("input-file",i,e),!(i&&i.fileObject&&i.active)||e&&e.active?i&&i.fileObject&&i.active||!e||!e.fileObject||!e.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var t=this;setTimeout(function(){t.upload(i).then(function(){(i=t.get(i))&&i.fileObject&&t.update(i,{active:!1,success:!i.error})}).catch(function(e){t.update(i,{active:!1,success:!1,error:e.code||e.error||e.message||e})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(i)===Boolean(e)&&i.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 i=this.extensions;if(i&&(i.length||void 0===i.length)&&("object"===(void 0===i?"undefined":s(i))&&i instanceof RegExp||("string"==typeof i&&(i=i.split(",").map(function(e){return e.trim()}).filter(function(e){return e})),i=new RegExp("\\.("+i.join("|").replace(/\./g,"\\.")+")$","i")),-1===t.name.search(i)))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=[],i=void 0;for(var n in e.data)null!=(i=e.data[n])&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));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,i=void 0;for(var n in e.data)(i=e.data[n])&&"object"===(void 0===i?"undefined":s(i))&&"function"!=typeof i.toString?i instanceof File?t.append(n,i,i.name):t.append(n,JSON.stringify(i)):null!=i&&t.append(n,i);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,i){var a=this,u=e,n=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!==n&&(n=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(n,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 n(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 i=s.getResponseHeader("Content-Type");i&&-1!==i.indexOf("/json")?t.response=JSON.parse(s.responseText):t.response=s.responseText}return(u=a.update(u,t)).error?r(u.error):n(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(i)})},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 i=void 0,n=void 0;for(var r in u.data)(i=u.data[r])&&"object"===(void 0===i?"undefined":s(i))&&"function"!=typeof i.toString&&(i=JSON.stringify(i)),null!=i&&((n=document.createElement("input")).type="hidden",n.name=r,n.value=i,t.appendChild(n));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 n=setInterval(function(){(u=a.get(u))&&u.fileObject&&!u.success&&!u.error&&u.active||(n&&(clearInterval(n),n=!1),l.onabort({type:u?"abort":"not_exists"}))},100),r=void 0,e=function(e){if(!r){if(r=!0,n&&(clearInterval(n),n=!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}(),i={};switch(e.type){case"abort":i.error="abort";break;case"error":u.error?i.error=u.error:i.error=null===t?"network":"denied";break;default:u.error?i.error=u.error:null===i?i.error="network":i.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){}i.response=t}return(u=a.update(u,i)).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,i=0;t=this.files[i];)if(i++,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.onDocumentDragenter,!1),document.removeEventListener("dragleave",this.onDocumentDragleave,!1),document.removeEventListener("dragover",this.onDocumentDragover,!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.onDocumentDragenter,!1),document.addEventListener("dragleave",this.onDocumentDragleave,!1),document.addEventListener("dragover",this.onDocumentDragover,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},watchDropActive:function(e,t){0!==this.dropAutoHideTime&&e!==t&&(this.dropTimeout&&(clearTimeout(this.dropTimeout),this.dropTimeout=null),e&&(this.dropTimeout=setTimeout(this.onDocumentDrop,this.dropAutoHide)))},onDocumentDragenter:function(e){if(!this.dropActive&&e.dataTransfer){var t=e.dataTransfer;t.files&&t.files.length?this.dropActive=!0:t.types?t.types.indexOf&&-1!==t.types.indexOf("Files")?this.dropActive=!0:t.types.contains&&t.types.contains("Files")&&(this.dropActive=!0):this.dropActive=!0,this.dropActive&&this.watchDropActive(!0)}},onDocumentDragleave:function(e){this.dropActive&&(e.target===e.explicitOriginalTarget||!e.fromElement&&(e.clientX<=0||e.clientY<=0||e.clientX>=window.innerWidth||e.clientY>=window.innerHeight))&&(this.dropActive=!1,this.watchDropActive(!1))},onDocumentDragover:function(){this.watchDropActive(!0)},onDocumentDrop:function(){this.dropActive=!1,this.watchDropActive(!1)},onDragover:function(e){e.preventDefault()},onDrop:function(e){e.preventDefault(),e.dataTransfer&&this.addDataTransfer(e.dataTransfer)}}},l="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var d=document.head||document.getElementsByTagName("head")[0],h={};var p,m=n({render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",{class:e.className},[e._t("default"),e._v(" "),i("label",{attrs:{for:e.inputId||e.name}}),e._v(" "),i("input-file")],2)},staticRenderFns:[]},function(e){e&&e("data-v-03c451a0_0",{source:".file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block}.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%}.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0}",map:void 0,media:void 0})},u,void 0,!1,void 0,function(e){return function(e,t){return function(e,t){var i=l?t.media||"default":e,n=h[i]||(h[i]={ids:new Set,styles:[]});if(!n.ids.has(e)){n.ids.add(e);var r=t.source;if(t.map&&(r+="\n/*# sourceURL="+t.map.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),n.element||(n.element=document.createElement("style"),n.element.type="text/css",t.media&&n.element.setAttribute("media",t.media),d.appendChild(n.element)),"styleSheet"in n.element)n.styles.push(r),n.element.styleSheet.cssText=n.styles.filter(Boolean).join("\n");else{var o=n.ids.size-1,s=document.createTextNode(r),a=n.element.childNodes;a[o]&&n.element.removeChild(a[o]),a.length?n.element.insertBefore(s,a[o]):n.element.appendChild(s)}}}(e,t)}},void 0);return(p=Object.freeze({default:m}))&&p.default||p}); //# sourceMappingURL=vue-upload-component.min.js.map diff --git a/dist/vue-upload-component.min.js.map b/dist/vue-upload-component.min.js.map index 3b908a7..10c6765 100644 --- a/dist/vue-upload-component.min.js.map +++ b/dist/vue-upload-component.min.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-upload-component.min.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../node_modules/vue-runtime-helpers/dist/inject-style/browser.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","'use strict';\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nmodule.exports = createInjector;\n//# sourceMappingURL=browser.js.map\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","keys","forEach","setRequestHeader","key","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","this","fileSize","push","slice","maxRetries","progress","active","stopChunks","chunksUploading","abort","stopSpeedCalc","startChunking","promise","Object","assign","action","startBody","fileType","fileName","then","res","_this2","data","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","name","append","uploadBody","startOffset","blob","uploaded","retries","_this3","finishBody","_this4","lastUploadedBytes","speed","window","setInterval","uploadedBytes","_this5","clearInterval","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","_this6","min","filter","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","isOldIE","navigator","test","userAgent","toLowerCase","HEAD","document","head","getElementsByTagName","styles","id","css","group","media","Set","ids","has","code","source","map","sources","btoa","unescape","encodeURIComponent","element","createElement","setAttribute","appendChild","styleSheet","cssText","Boolean","join","index","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","addStyle"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-upload-component.min.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../node_modules/vue-runtime-helpers/dist/inject-style/browser.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","'use strict';\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\nvar HEAD = document.head || document.getElementsByTagName('head')[0];\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nmodule.exports = createInjector;\n//# sourceMappingURL=browser.js.map\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","keys","forEach","setRequestHeader","key","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","this","fileSize","push","slice","maxRetries","progress","active","stopChunks","chunksUploading","abort","stopSpeedCalc","startChunking","promise","Object","assign","action","startBody","fileType","fileName","then","res","_this2","data","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","name","append","uploadBody","startOffset","blob","uploaded","retries","_this3","finishBody","_this4","lastUploadedBytes","speed","window","setInterval","uploadedBytes","_this5","clearInterval","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","_this6","min","filter","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","isOldIE","navigator","test","userAgent","toLowerCase","HEAD","document","head","getElementsByTagName","styles","id","css","group","media","Set","ids","has","code","source","map","sources","btoa","unescape","encodeURIComponent","element","createElement","setAttribute","appendChild","styleSheet","cssText","Boolean","join","index","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","addStyle"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-upload-component.part.js b/dist/vue-upload-component.part.js index 517e71c..579a75a 100644 --- a/dist/vue-upload-component.part.js +++ b/dist/vue-upload-component.part.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.8.22 + * Version: 2.8.23 * Author: LianYue */ (function (global, factory) { @@ -833,6 +833,11 @@ default: false }, + dropAutoHideTime: { + type: Number, + default: 1000 + }, + dropDirectory: { type: Boolean, default: true @@ -1980,6 +1985,10 @@ } }, watchDropActive: function watchDropActive(newDropActive, oldDropActive) { + if (this.dropAutoHideTime === 0) { + return; + } + if (newDropActive === oldDropActive) { return; } @@ -1988,7 +1997,7 @@ this.dropTimeout = null; } if (newDropActive) { - this.dropTimeout = setTimeout(this.onDocumentDrop, 1000); + this.dropTimeout = setTimeout(this.onDocumentDrop, this.dropAutoHide); } }, onDocumentDragenter: function onDocumentDragenter(e) { diff --git a/dist/vue-upload-component.part.js.map b/dist/vue-upload-component.part.js.map index c72d4c2..05f80bb 100644 --- a/dist/vue-upload-component.part.js.map +++ b/dist/vue-upload-component.part.js.map @@ -1 +1 @@ -{"version":3,"file":"vue-upload-component.part.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../src/InputFile.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","\n\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","Object","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","data","FormData","name","append","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","stopSpeedCalc","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","speed","lastUploadedBytes","window","setInterval","uploadedBytes","clearInterval","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","renderWithStyleInjection","h","existing","beforeCreate","concat","require$$0"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-upload-component.part.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../src/InputFile.vue","../node_modules/vue-runtime-helpers/dist/normalize-component.js","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","\n\n","'use strict';\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nmodule.exports = normalizeComponent;\n//# sourceMappingURL=normalize-component.js.map\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","Object","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","data","FormData","name","append","ChunkUploadHandler","file","chunks","sessionId","chunkSize","speedInterval","start","end","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","stopSpeedCalc","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","startSpeedCalc","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","speed","lastUploadedBytes","window","setInterval","uploadedBytes","clearInterval","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","normalizeComponent","template","style","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","renderWithStyleInjection","h","existing","beforeCreate","concat","require$$0"],"mappings":";;;;;;;;;;;EAAA;;;;;AAKA,EAAO,IAAMA,gBAAgB,SAAhBA,aAAgB,CAACC,OAAD,EAAa;EACxC,MAAMC,MAAM,IAAIC,cAAJ,EAAZ;EACAD,MAAIE,IAAJ,CAASH,QAAQI,MAAR,IAAkB,KAA3B,EAAkCJ,QAAQK,GAA1C;EACAJ,MAAIK,YAAJ,GAAmB,MAAnB;EACA,MAAIN,QAAQO,OAAZ,EAAqB;EACnBC,WAAOC,IAAP,CAAYT,QAAQO,OAApB,EAA6BG,OAA7B,CAAqC,eAAO;EAC1CT,UAAIU,gBAAJ,CAAqBC,GAArB,EAA0BZ,QAAQO,OAAR,CAAgBK,GAAhB,CAA1B;EACD,KAFD;EAGD;;EAED,SAAOX,GAAP;EACD,CAXM;;EAaP;;;;;;AAMA,EAAO,IAAMY,cAAc,SAAdA,WAAc,CAACZ,GAAD,EAAMa,IAAN,EAAe;EACxC,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EACtChB,QAAIiB,MAAJ,GAAa,YAAM;EACjB,UAAIjB,IAAIkB,MAAJ,IAAc,GAAd,IAAqBlB,IAAIkB,MAAJ,GAAa,GAAtC,EAA2C;EACzC,YAAIC,QAAJ;EACA,YAAI;EACFA,qBAAWC,KAAKC,KAAL,CAAWrB,IAAImB,QAAf,CAAX;EACD,SAFD,CAEE,OAAOG,GAAP,EAAY;EACZH,qBAAWnB,IAAImB,QAAf;EACD;EACDJ,gBAAQI,QAAR;EACD,OARD,MAQO;EACLH,eAAOhB,IAAImB,QAAX;EACD;EACF,KAZD;EAaAnB,QAAIuB,OAAJ,GAAc;EAAA,aAAMP,OAAOhB,IAAImB,QAAX,CAAN;EAAA,KAAd;EACAnB,QAAIwB,IAAJ,CAASJ,KAAKK,SAAL,CAAeZ,IAAf,CAAT;EACD,GAhBM,CAAP;EAiBD,CAlBM;;EAoBP;;;;;;AAMA,EAAO,IAAMa,kBAAkB,SAAlBA,eAAkB,CAAC1B,GAAD,EAAM2B,IAAN,EAAe;EAC5C,MAAMd,OAAO,IAAIe,QAAJ,EAAb;EACA,OAAK,IAAIC,IAAT,IAAiBF,IAAjB,EAAuB;EACrBd,SAAKiB,MAAL,CAAYD,IAAZ,EAAkBF,KAAKE,IAAL,CAAlB;EACD;;EAED,SAAO,IAAIf,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EACtChB,QAAIiB,MAAJ,GAAa,YAAM;EACjB,UAAIjB,IAAIkB,MAAJ,IAAc,GAAd,IAAqBlB,IAAIkB,MAAJ,GAAa,GAAtC,EAA2C;EACzC,YAAIC,QAAJ;EACA,YAAI;EACFA,qBAAWC,KAAKC,KAAL,CAAWrB,IAAImB,QAAf,CAAX;EACD,SAFD,CAEE,OAAOG,GAAP,EAAY;EACZH,qBAAWnB,IAAImB,QAAf;EACD;EACDJ,gBAAQI,QAAR;EACD,OARD,MAQO;EACLH,eAAOhB,IAAImB,QAAX;EACD;EACF,KAZD;EAaAnB,QAAIuB,OAAJ,GAAc;EAAA,aAAMP,OAAOhB,IAAImB,QAAX,CAAN;EAAA,KAAd;EACAnB,QAAIwB,IAAJ,CAASX,IAAT;EACD,GAhBM,CAAP;EAiBD,CAvBM;;EAyBP;;;;;;;AAOA,EAAe,kBAAUd,OAAV,EAAmB;EAChC,MAAMC,MAAMF,cAAcC,OAAd,CAAZ;;EAEA,SAAOa,YAAYZ,GAAZ,EAAiBD,QAAQc,IAAzB,CAAP;EACD;;;;;;MChFoBkB;EACnB;;;;;;EAMA,8BAAYC,IAAZ,EAAkBjC,OAAlB,EAA2B;EAAA;;EACzB,SAAKiC,IAAL,GAAYA,IAAZ;EACA,SAAKjC,OAAL,GAAeA,OAAf;EACA,SAAKkC,MAAL,GAAc,EAAd;EACA,SAAKC,SAAL,GAAiB,IAAjB;EACA,SAAKC,SAAL,GAAiB,IAAjB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACD;;EAED;;;;;;;;;EA6HA;;;qCAGe;EACb,WAAKH,MAAL,GAAc,EAAd;;EAEA,UAAII,QAAQ,CAAZ;EACA,UAAIC,MAAM,KAAKH,SAAf;EACA,aAAOE,QAAQ,KAAKE,QAApB,EAA8B;EAC5B,aAAKN,MAAL,CAAYO,IAAZ,CAAiB;EACfC,gBAAM,KAAKT,IAAL,CAAUA,IAAV,CAAeU,KAAf,CAAqBL,KAArB,EAA4BC,GAA5B,CADS;EAEfK,uBAAaN,KAFE;EAGfO,kBAAQ,KAHO;EAIfC,mBAAS,KAAKC;EAJC,SAAjB;EAMAT,gBAAQC,GAAR;EACAA,cAAMD,QAAQ,KAAKF,SAAnB;EACD;EACF;;EAED;;;;;;2CAGqB;EACnB,WAAKH,IAAL,CAAUe,QAAV,GAAqB,KAAKA,QAA1B;EACD;;EAED;;;;;;;;8BAKQ;EACN,WAAKf,IAAL,CAAUY,MAAV,GAAmB,KAAnB;EACA,WAAKI,UAAL;EACD;;EAED;;;;;;mCAGa;EACX,WAAKC,eAAL,CAAqBxC,OAArB,CAA6B,iBAAS;EACpCyC,cAAMlD,GAAN,CAAUmD,KAAV;EACAD,cAAMN,MAAN,GAAe,KAAf;EACD,OAHD;;EAKA,WAAKQ,aAAL;EACD;;EAED;;;;;;;;+BAKS;EACP,WAAKpB,IAAL,CAAUY,MAAV,GAAmB,IAAnB;EACA,WAAKS,aAAL;EACD;;EAED;;;;;;;;;;+BAOS;EAAA;;EACP,WAAKC,OAAL,GAAe,IAAIxC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EAC9C,cAAKD,OAAL,GAAeA,OAAf;EACA,cAAKC,MAAL,GAAcA,MAAd;EACD,OAHc,CAAf;EAIA,WAAKqB,KAAL;;EAEA,aAAO,KAAKiB,OAAZ;EACD;;EAED;;;;;;;8BAIQ;EAAA;;EACNC,cAAQ;EACNpD,gBAAQ,MADF;EAENG,iBAASC,OAAOiD,MAAP,CAAc,EAAd,EAAkB,KAAKlD,OAAvB,EAAgC;EACvC,0BAAgB;EADuB,SAAhC,CAFH;EAKNF,aAAK,KAAKqD,MALJ;EAMN5C,cAAMN,OAAOiD,MAAP,CAAc,KAAKE,SAAnB,EAA8B;EAClCC,iBAAO,OAD2B;EAElCC,qBAAW,KAAKC,QAFkB;EAGlCC,gBAAM,KAAKvB,QAHuB;EAIlCV,gBAAM,KAAKkC;EAJuB,SAA9B;EANA,OAAR,EAYGC,IAZH,CAYQ,eAAO;EACb,YAAIC,IAAI/C,MAAJ,KAAe,SAAnB,EAA8B;EAC5B,iBAAKc,IAAL,CAAUb,QAAV,GAAqB8C,GAArB;EACA,iBAAO,OAAKjD,MAAL,CAAY,QAAZ,CAAP;EACD;;EAED,eAAKkB,SAAL,GAAiB+B,IAAItC,IAAJ,CAASuC,UAA1B;EACA,eAAK/B,SAAL,GAAiB8B,IAAItC,IAAJ,CAASwC,UAA1B;;EAEA,eAAKC,YAAL;EACA,eAAKf,aAAL;EACD,OAvBD,EAuBGgB,KAvBH,CAuBS,eAAO;EACd,eAAKrC,IAAL,CAAUb,QAAV,GAAqB8C,GAArB;EACA,eAAKjD,MAAL,CAAY,QAAZ;EACD,OA1BD;EA2BD;;EAED;;;;;;sCAGgB;EACd,WAAK,IAAIsD,IAAI,CAAb,EAAgBA,IAAI,KAAKC,eAAzB,EAA0CD,GAA1C,EAA+C;EAC7C,aAAKE,eAAL;EACD;;EAED,WAAKC,cAAL;EACD;;EAED;;;;;;;;wCAKkB;EAChB,UAAI,KAAKzC,IAAL,CAAUY,MAAd,EAAsB;EACpB,YAAI,KAAK8B,iBAAT,EAA4B;EAC1B,iBAAO,KAAKC,WAAL,CAAiB,KAAKC,cAAL,CAAoB,CAApB,CAAjB,CAAP;EACD;;EAED,YAAI,KAAK3B,eAAL,CAAqB4B,MAArB,KAAgC,CAApC,EAAuC;EACrC,iBAAO,KAAKC,MAAL,EAAP;EACD;EACF;EACF;;EAED;;;;;;;;;;;;kCASY5B,OAAO;EAAA;;EACjBA,YAAMH,QAAN,GAAiB,CAAjB;EACAG,YAAMN,MAAN,GAAe,IAAf;EACA,WAAKmC,kBAAL;EACA7B,YAAMlD,GAAN,GAAYF,cAAc;EACxBK,gBAAQ,MADgB;EAExBG,iBAAS,KAAKA,OAFU;EAGxBF,aAAK,KAAKqD;EAHc,OAAd,CAAZ;;EAMAP,YAAMlD,GAAN,CAAUgF,MAAV,CAAiBC,gBAAjB,CAAkC,UAAlC,EAA8C,UAAUC,GAAV,EAAe;EAC3D,YAAIA,IAAIC,gBAAR,EAA0B;EACxBjC,gBAAMH,QAAN,GAAiBqC,KAAKC,KAAL,CAAWH,IAAII,MAAJ,GAAaJ,IAAIK,KAAjB,GAAyB,GAApC,CAAjB;EACD;EACF,OAJD,EAIG,KAJH;;EAMA7D,sBAAgBwB,MAAMlD,GAAtB,EAA2BO,OAAOiD,MAAP,CAAc,KAAKgC,UAAnB,EAA+B;EACxD7B,eAAO,QADiD;EAExDO,oBAAY,KAAKhC,SAFuC;EAGxDuD,sBAAcvC,MAAMP,WAHoC;EAIxDO,eAAOA,MAAMT;EAJ2C,OAA/B,CAA3B,EAKIuB,IALJ,CAKS,eAAO;EACdd,cAAMN,MAAN,GAAe,KAAf;EACA,YAAIqB,IAAI/C,MAAJ,KAAe,SAAnB,EAA8B;EAC5BgC,gBAAMwC,QAAN,GAAiB,IAAjB;EACD,SAFD,MAEO;EACL,cAAIxC,MAAML,OAAN,MAAmB,CAAvB,EAA0B;EACxB,mBAAKG,UAAL;EACA,mBAAO,OAAKhC,MAAL,CAAY,QAAZ,CAAP;EACD;EACF;;EAED,eAAKwD,eAAL;EACD,OAjBD,EAiBGH,KAjBH,CAiBS,YAAM;EACbnB,cAAMN,MAAN,GAAe,KAAf;EACA,YAAIM,MAAML,OAAN,MAAmB,CAAvB,EAA0B;EACxB,iBAAKG,UAAL;EACA,iBAAO,OAAKhC,MAAL,CAAY,QAAZ,CAAP;EACD;;EAED,eAAKwD,eAAL;EACD,OAzBD;EA0BD;;EAED;;;;;;;+BAIS;EAAA;;EACP,WAAKO,kBAAL;EACA,WAAK3B,aAAL;;EAEAG,cAAQ;EACNpD,gBAAQ,MADF;EAENG,iBAASC,OAAOiD,MAAP,CAAc,EAAd,EAAkB,KAAKlD,OAAvB,EAAgC;EACvC,0BAAgB;EADuB,SAAhC,CAFH;EAKNF,aAAK,KAAKqD,MALJ;EAMN5C,cAAMN,OAAOiD,MAAP,CAAc,KAAKmC,UAAnB,EAA+B;EACnChC,iBAAO,QAD4B;EAEnCO,sBAAY,KAAKhC;EAFkB,SAA/B;EANA,OAAR,EAUG8B,IAVH,CAUQ,eAAO;EACb,eAAKhC,IAAL,CAAUb,QAAV,GAAqB8C,GAArB;EACA,YAAIA,IAAI/C,MAAJ,KAAe,SAAnB,EAA8B;EAC5B,iBAAO,OAAKF,MAAL,CAAY,QAAZ,CAAP;EACD;;EAED,eAAKD,OAAL,CAAakD,GAAb;EACD,OAjBD,EAiBGI,KAjBH,CAiBS,eAAO;EACd,eAAKrC,IAAL,CAAUb,QAAV,GAAqB8C,GAArB;EACA,eAAKjD,MAAL,CAAY,QAAZ;EACD,OApBD;EAqBD;;EAGD;;;;;;;uCAIiB;EAAA;;EACf,WAAKgB,IAAL,CAAU4D,KAAV,GAAkB,CAAlB;EACA,UAAIC,oBAAoB,CAAxB;EACA,UAAI,CAAC,KAAKzD,aAAV,EAAyB;EACvB,aAAKA,aAAL,GAAqB0D,OAAOC,WAAP,CAAmB,YAAM;EAC5C,cAAIC,gBAAiB,OAAKjD,QAAL,GAAgB,GAAjB,GAAwB,OAAKR,QAAjD;EACA,iBAAKP,IAAL,CAAU4D,KAAV,GAAmBI,gBAAgBH,iBAAnC;EACAA,8BAAoBG,aAApB;EACD,SAJoB,EAIlB,IAJkB,CAArB;EAKD;EACF;;EAED;;;;;;sCAGgB;EACd,WAAK5D,aAAL,IAAsB0D,OAAOG,aAAP,CAAqB,KAAK7D,aAA1B,CAAtB;EACA,WAAKA,aAAL,GAAqB,IAArB;EACA,WAAKJ,IAAL,CAAU4D,KAAV,GAAkB,CAAlB;EACD;;;0BAhXgB;EACf,aAAOM,SAAS,KAAKnG,OAAL,CAAa+C,UAAtB,EAAkC,EAAlC,CAAP;EACD;;EAED;;;;;;0BAGsB;EACpB,aAAOoD,SAAS,KAAKnG,OAAL,CAAaoG,SAAtB,EAAiC,EAAjC,CAAP;EACD;;EAED;;;;;;0BAGe;EACb,aAAO,KAAKnE,IAAL,CAAUoE,IAAjB;EACD;;EAED;;;;;;0BAGe;EACb,aAAO,KAAKpE,IAAL,CAAU8B,IAAjB;EACD;;EAED;;;;;;0BAGe;EACb,aAAO,KAAK9B,IAAL,CAAUH,IAAjB;EACD;;EAED;;;;;;0BAGa;EACX,aAAO,KAAK9B,OAAL,CAAa0D,MAAb,IAAuB,IAA9B;EACD;;EAED;;;;;;0BAGgB;EACd,aAAO,KAAK1D,OAAL,CAAa2D,SAAb,IAA0B,EAAjC;EACD;;EAED;;;;;;0BAGiB;EACf,aAAO,KAAK3D,OAAL,CAAayF,UAAb,IAA2B,EAAlC;EACD;;EAED;;;;;;0BAGiB;EACf,aAAO,KAAKzF,OAAL,CAAa4F,UAAb,IAA2B,EAAlC;EACD;;EAED;;;;;;0BAGc;EACZ,aAAO,KAAK5F,OAAL,CAAaO,OAAb,IAAwB,EAA/B;EACD;;EAED;;;;;;0BAGoB;EAClB,aAAO,CAAC,CAAC,KAAK2B,MAAd;EACD;;EAED;;;;;;;;0BAKe;EAAA;;EACb,UAAMoE,oBAAqB,KAAKC,cAAL,CAAoBzB,MAApB,GAA6B,KAAK5C,MAAL,CAAY4C,MAA1C,GAAoD,GAA9E;EACA,UAAM0B,oBAAoB,KAAKtD,eAAL,CAAqBuD,MAArB,CAA4B,UAACzD,QAAD,EAAWG,KAAX,EAAqB;EACzE,eAAOH,WAAY,CAACG,MAAMH,QAAN,GAAiB,CAAlB,IAAuB,OAAKd,MAAL,CAAY4C,MAAtD;EACD,OAFyB,EAEvB,CAFuB,CAA1B;;EAIA,aAAOO,KAAKqB,GAAL,CAASJ,oBAAoBE,iBAA7B,EAAgD,GAAhD,CAAP;EACD;;EAED;;;;;;0BAGqB;EACnB,aAAO,KAAKtE,MAAL,CAAYyE,MAAZ,CAAmB,iBAAS;EACjC,eAAO,CAACxD,MAAMN,MAAP,IAAiB,CAACM,MAAMwC,QAA/B;EACD,OAFM,CAAP;EAGD;;EAED;;;;;;0BAGwB;EACtB,aAAO,KAAKd,cAAL,CAAoBC,MAApB,GAA6B,CAApC;EACD;;EAED;;;;;;0BAGsB;EACpB,aAAO,KAAK5C,MAAL,CAAYyE,MAAZ,CAAmB,iBAAS;EACjC,eAAO,CAAC,CAACxD,MAAMlD,GAAR,IAAe,CAAC,CAACkD,MAAMN,MAA9B;EACD,OAFM,CAAP;EAGD;;EAED;;;;;;0BAGqB;EACnB,aAAO,KAAKX,MAAL,CAAYyE,MAAZ,CAAmB,iBAAS;EACjC,eAAO,CAAC,CAACxD,MAAMwC,QAAf;EACD,OAFM,CAAP;EAGD;;;;;;;;;;;;;;;;;;;;;AClIH;;;;;;;;;;;;;;;;;;;;;GAAA;;ECbA,SAASiB,kBAAT,CAA4BC,QAA5B,EAAsCC,KAAtC,EAA6CC,MAA7C,EAAqDC,OAArD,EAA8DC,oBAA9D,EAAoFC;EACpF;EADA,EAEEC,UAFF,EAEcC,cAFd,EAE8BC,iBAF9B,EAEiDC,oBAFjD,EAEuE;EACrE,MAAI,OAAOH,UAAP,KAAsB,SAA1B,EAAqC;EACnCE,wBAAoBD,cAApB;EACAA,qBAAiBD,UAAjB;EACAA,iBAAa,KAAb;EACD,GALoE;;;EAQrE,MAAInH,UAAU,OAAO+G,MAAP,KAAkB,UAAlB,GAA+BA,OAAO/G,OAAtC,GAAgD+G,MAA9D,CARqE;;EAUrE,MAAIF,YAAYA,SAASU,MAAzB,EAAiC;EAC/BvH,YAAQuH,MAAR,GAAiBV,SAASU,MAA1B;EACAvH,YAAQwH,eAAR,GAA0BX,SAASW,eAAnC;EACAxH,YAAQyH,SAAR,GAAoB,IAApB,CAH+B;;EAK/B,QAAIR,oBAAJ,EAA0B;EACxBjH,cAAQ0H,UAAR,GAAqB,IAArB;EACD;EACF,GAlBoE;;;EAqBrE,MAAIV,OAAJ,EAAa;EACXhH,YAAQ2H,QAAR,GAAmBX,OAAnB;EACD;;EAED,MAAIY,IAAJ;;EAEA,MAAIV,gBAAJ,EAAsB;;EAEpBU,WAAO,SAASA,IAAT,CAAcC,OAAd,EAAuB;;EAE5BA,gBAAUA;EACV,WAAKC,MAAL,IAAe,KAAKA,MAAL,CAAYC,UADjB;EAEV,WAAKC,MAAL,IAAe,KAAKA,MAAL,CAAYF,MAA3B,IAAqC,KAAKE,MAAL,CAAYF,MAAZ,CAAmBC,UAFxD,CAF4B;;;EAO5B,UAAI,CAACF,OAAD,IAAY,OAAOI,mBAAP,KAA+B,WAA/C,EAA4D;EAC1DJ,kBAAUI,mBAAV;EACD,OAT2B;;;EAY5B,UAAInB,KAAJ,EAAW;EACTA,cAAMoB,IAAN,CAAW,IAAX,EAAiBb,kBAAkBQ,OAAlB,CAAjB;EACD,OAd2B;;;EAiB5B,UAAIA,WAAWA,QAAQM,qBAAvB,EAA8C;EAC5CN,gBAAQM,qBAAR,CAA8BC,GAA9B,CAAkClB,gBAAlC;EACD;EACF,KApBD,CAFoB;;;;EA0BpBlH,YAAQqI,YAAR,GAAuBT,IAAvB;EACD,GA3BD,MA2BO,IAAId,KAAJ,EAAW;EAChBc,WAAOT,aAAa,YAAY;EAC9BL,YAAMoB,IAAN,CAAW,IAAX,EAAiBZ,qBAAqB,KAAKgB,KAAL,CAAWC,QAAX,CAAoBC,UAAzC,CAAjB;EACD,KAFM,GAEH,UAAUX,OAAV,EAAmB;EACrBf,YAAMoB,IAAN,CAAW,IAAX,EAAiBd,eAAeS,OAAf,CAAjB;EACD,KAJD;EAKD;;EAED,MAAID,IAAJ,EAAU;EACR,QAAI5H,QAAQ0H,UAAZ,EAAwB;;EAEtB,UAAIe,iBAAiBzI,QAAQuH,MAA7B;;EAEAvH,cAAQuH,MAAR,GAAiB,SAASmB,wBAAT,CAAkCC,CAAlC,EAAqCd,OAArC,EAA8C;EAC7DD,aAAKM,IAAL,CAAUL,OAAV;EACA,eAAOY,eAAeE,CAAf,EAAkBd,OAAlB,CAAP;EACD,OAHD;EAID,KARD,MAQO;;EAEL,UAAIe,WAAW5I,QAAQ6I,YAAvB;EACA7I,cAAQ6I,YAAR,GAAuBD,WAAW,GAAGE,MAAH,CAAUF,QAAV,EAAoBhB,IAApB,CAAX,GAAuC,CAACA,IAAD,CAA9D;EACD;EACF;;EAED,SAAOb,MAAP;EACD;;EAED,2BAAiBH,kBAAjB;;;ADrFA,EAEA,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;EEyCA;;;;;;;;GAAA;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA;;;AArDA,EAEA,+BAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECHA,UAAiBmC,UAAjB;;;;;;;;"} \ No newline at end of file diff --git a/docs/dist/index.js b/docs/dist/index.js index 490c2b1..fe10976 100644 --- a/docs/dist/index.js +++ b/docs/dist/index.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.8.22 + * Version: 2.8.23 * Author: LianYue - */!function(e){var n={};function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:i})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var a in e)t.d(i,a,function(n){return e[n]}.bind(null,a));return i},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/dist",t(t.s=26)}([function(e,n,t){"use strict";function i(e,n,t,i,a,o,s,r){var l,u="function"==typeof e?e.options:e;if(n&&(u.render=n,u.staticRenderFns=t,u._compiled=!0),i&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),s?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),a&&a.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=l):a&&(l=r?function(){a.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(e,n){return l.call(n),d(e,n)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:u}}t.d(n,"a",(function(){return i}))},function(e,n,t){e.exports=t(51)},function(e,n){e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t=function(e,n){var t=e[1]||"",i=e[3];if(!i)return t;if(n&&"function"==typeof btoa){var a=(s=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */"),o=i.sources.map((function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"}));return[t].concat(o).concat([a]).join("\n")}var s;return[t].join("\n")}(n,e);return n[2]?"@media "+n[2]+"{"+t+"}":t})).join("")},n.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},a=0;at.parts.length&&(i.parts.length=t.parts.length)}else{var o=[];for(a=0;a<\/script>\n\\n\\n\\n```\\n\\njsDelivr\\n\\n``` html\\n\\n\\n\\n```\\n\\n\\n### Simple example\\n\\n\\n\\n```html\\n\\n\\n\\n \\n Vue-upload-component Test\\n \\n \\n\\n\\n
\\n
    \\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\n
\\n \\n Upload file\\n \\n \\n \\n
\\n\\n\\n\\n```\\n\\n### Chunk Upload\\n\\nThis package allows chunk uploads, which means you can upload a file in different parts.\\n\\nThis process is divided in three phases: start, upload,finish

\\n\\n#### start\\n\\nThis is the first phase of the process. We'll tell the backend that we are going to upload a file, with certain `size`, `name` and `mime_type`.\\n\\nUse the option `startBody` to add more parameters to the body of this request.\\n\\nThe backend should provide a `session_id` (to identify the upload) and a `end_offset` which is the size of every chunk\\n\\n##### HTTP start phase example\\n\\nRequest body example:\\n```\\n{\\n \\\"phase\\\": \\\"start\\\",\\n \\\"mime_type\\\": \\\"image/png\\\",\\n \\\"size\\\": 12669430,\\n \\\"name\\\":\\\"hubbleimage1stscihp1809af6400x4800.png\\\"\\n}\\n```\\n\\nResponse body example:\\n```\\n{\\n  \\\"data\\\": {\\n    \\\"end_offset\\\": 6291456,\\n    \\\"session_id\\\": \\\"61db8102-fca6-44ae-81e2-a499d438e7a5\\\"\\n  },\\n  \\\"status\\\": \\\"success\\\"\\n}\\n\\n```\\n\\n#### upload\\n\\nIn this phase we'll upload every chunk until all of them are uploaded. This step allows some failures in the backend, and will retry up to `maxRetries` times.\\n\\nWe'll send the `session_id`, `start_offset` and `chunk` (the sliced blob - part of file we are uploading). We expect the backend to return `{ status: 'success' }`, we'll retry otherwise.\\n\\nUse the option `uploadBody` to add more parameters to the body of this request.\\n\\n##### HTTP upload phase example with 3 chunks\\n\\nRequest body example - chunk 1 from 3:\\n```\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\nContent-Disposition: form-data; name=\\\"phase\\\"\\n\\nupload\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\n\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\n\\n0\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\nContent-Type: application/octet-stream\\n\\n\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx--\\n```\\n\\nResponse body example - chunk 1 from 3:\\n```\\n{\\n  \\\"status\\\": \\\"success\\\"\\n}\\n```\\n\\nRequest body example - chunk 2 from 3:\\n```\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\nContent-Disposition: form-data; name=\\\"phase\\\"\\n\\nupload\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\n\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\n\\n6291456\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\nContent-Type: application/octet-stream\\n\\n\\n------WebKitFormBoundary4cjBupFqrx1SrHoR-\\n```\\n\\nResponse body example - chunk 2 from 3:\\n```\\n{\\n  \\\"status\\\": \\\"success\\\"\\n}\\n```\\n\\nRequest body example - chunk 3 from 3:\\n```\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\nContent-Disposition: form-data; name=\\\"phase\\\"\\n\\nupload\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\n\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\n\\n12582912\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\nContent-Type: application/octet-stream\\n\\n\\n------WebKitFormBoundarypWxg4xnB5QBDoFys--\\n```\\n\\nResponse body example - chunk 1 from 3:\\n```\\n{\\n  \\\"status\\\": \\\"success\\\"\\n}\\n```\\n\\n#### finish\\n\\nIn this phase we tell the backend that there are no more chunks to upload, so it can wrap everything. We send the `session_id` in this phase.\\n\\nUse the option `finishBody` to add more parameters to the body of this request.\\n\\n##### HTTP finish phase example\\n\\nRequest body example:\\n```\\n{\\n \\\"phase\\\": \\\"finish\\\",\\n \\\"session_id\\\": \\\"61db8102-fca6-44ae-81e2-a499d438e7a5\\\"\\n}\\n```\\n\\nResponse body example:\\n```\\n{\\n  \\\"status\\\": \\\"success\\\"\\n}\\n```\\n\\n#### Example\\n\\nIn the following example we are going to add `Chunk Upload Functionality`. This component will use `Chunk Upload` when the size of the file is > `1MB`, it will behave as the `Simple example` when the size of the file is lower.\\n\\n```html\\n \\n Upload file\\n \\n```\\n\\n#### Extending the handler\\n\\nWe are using the class `src/chunk/ChunkUploadHandler` class to implement this protocol. You can extend this class (or even create a different one from scratch) to implement your own way to communicat with the backend.\\n\\nThis class must implement a method called `upload` which **must** return a promise. This promise will be used by the `FileUpload` component to determinate whether the file was uploaded or failed.\\n\\nUse the `handler` parameter to use a different Handler\\n\\n```html\\n :chunk=\\\"{\\n action: '/upload/chunk',\\n minSize: 1048576,\\n maxActive: 3,\\n maxRetries: 5,\\n\\n handler: MyHandlerClass\\n }\\n```\\n\\n### SSR (Server isomorphism)\\n\\n\\n```html\\n\\n\\n\\n```\\n\\n\\n** OR **\\n\\n\\n```js\\nimport FileUpload from 'vue-upload-component/src'\\n```\\n\\n\\nwebpack.config.js\\n\\n```js\\nconst nodeExternals = require('webpack-node-externals');\\n{\\n //.....\\n externals: [\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\n ]\\n //.....\\n}\\n```\\n\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals)\\n\\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/)\\n\\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\n\\n\\n\\n\\n## Options / Props\\n\\n\\n### input-id\\n\\nThe `id` attribute of the input tag\\n\\n* **Type:** `String`\\n\\n* **Default:** `this.name`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### name\\n\\nThe `name` attribute of the input tag\\n\\n* **Type:** `String`\\n\\n* **Default:** `file`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### post-action\\n\\n`POST` Request upload URL\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### put-action\\n\\n`PUT` Request upload URL\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n `put-action` is not empty Please give priority to` PUT` request\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### custom-action\\n\\nCustom upload method\\n\\n* **Type:** `async Function`\\n\\n* **Default:** `undefined`\\n\\n* **Details:** \\n\\n `custom-action` priority than `put-action, post-action`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n ```js\\n async function customAction(file, component) {\\n // return await component.uploadPut(file)\\n return await component.uploadHtml4(file)\\n }\\n ```\\n\\n\\n\\n\\n\\n### headers\\n\\nAttach `header` data\\n\\n* **Type:** `Object`\\n\\n* **Default:** `{}`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### data\\n\\n`POST request`: Append request `body`\\n`PUT request`: Append request `query`\\n\\n* **Type:** `Object`\\n\\n* **Default:** `{}`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### value, v-model\\n\\nFile List\\n\\n* **Type:** `Array`\\n\\n* **Default:** `[]`\\n\\n* **Details:**\\n\\n View **[`File`](#file)** details\\n > In order to prevent unpredictable errors, can not directly modify the `files`, please use [`add`](#instance-methods-add), [`update`](#instance-methods-update), [`remove`](#instance-methods-remove) method to modify\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### accept\\n\\nThe `accept` attribute of the input tag, MIME type\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### multiple\\n\\nThe `multiple` attribute of the input tag\\nWhether to allow multiple files to be selected\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Details:**\\n\\n If it is `false` file inside only one file will be automatically deleted\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### directory\\n\\nThe `directory` attribute of the input tag\\nWhether it is a upload folder\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Browser:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### extensions\\n\\nAllow upload file extensions\\n\\n* **Type:** `Array | String | RegExp`\\n\\n* **Default:** `undefined`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n \\n \\n ```\\n\\n\\n\\n\\n### size\\n\\nAllow the maximum byte to upload\\n\\n* **Type:** `Number`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n `0` is equal to not limit\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### timeout\\n\\nUpload timeout time in milliseconds\\n\\n* **Type:** `Number`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n### maximum\\n\\nList the maximum number of files\\n\\n* **Type:** `Number`\\n\\n* **Default:** `props.multiple ? 0 : 1`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### thread\\n\\nAlso upload the number of files at the same time (number of threads)\\n\\n* **Type:** `Number`\\n\\n* **Default:** `1`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n### chunk-enabled\\n\\nWhether chunk uploads is enabled or not\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### chunk\\n\\nAll the options to handle chunk uploads\\n\\n* **Type:** `Object`\\n\\n* **Default:**\\n```js\\n{\\n headers: {\\n 'Content-Type': 'application/json'\\n },\\n action: '',\\n minSize: 1048576,\\n maxActive: 3,\\n maxRetries: 5,\\n\\n // This is the default Handler implemented in this package\\n // you can use your own handler if your protocol is different\\n handler: ChunkUploadDefaultHandler\\n}\\n```\\n\\n### drop\\n\\nDrag and drop upload\\n\\n* **Type:** `Boolean | Element | CSS selector`\\n\\n* **Default:** `false`\\n\\n* **Browser:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\n\\n* **Details:**\\n\\n If set to `true`, read the parent component as a container\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### drop-directory\\n\\nWhether to open the drag directory\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `true`\\n\\n* **Details:**\\n\\n If set to `false` filter out the directory\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### add-index\\n\\n* **Type:** `Boolean, Number`\\n\\n* **Default:** `undefined`\\n\\n* **Version:** : `>=2.6.1`\\n\\n* **Details:**\\n\\n The default value of the `index` parameter for the [`add()`](#instance-methods-add) method\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n## Options / Events\\n\\nThe files is changed to trigger the method\\nDefault for `v-model` binding\\n\\n### @input\\n* **Arguments:**\\n\\n * `files: Array`\\n\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n### @input-filter\\n\\nAdd, update, remove pre-filter\\n\\n* **Arguments:**\\n\\n * `newFile: File | Object | undefined` `Read and write`\\n * `oldFile: File | Object | undefined` `Read only`\\n * `prevent: Function` Call this function to prevent modification\\n\\n\\n* **Details:**\\n\\n If the `newFile` value is `undefined` 'is deleted\\n If the `oldFile` value is `undefined` 'is added\\n If `newFile`, `oldFile` is exist, it is updated\\n\\n > Synchronization modify `newFile`\\n > Asynchronous Please use `update`,` add`, `remove`,` clear` method\\n > Asynchronous Please set an error first to prevent being uploaded\\n\\n > Synchronization can not use `update`,` add`, `remove`,` clear` methods\\n > Asynchronous can not modify `newFile`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### @input-file\\n\\nAdd, update, remove after\\n\\n* **Arguments:**\\n\\n * `newFile: File | Object | undefined` `Read only`\\n * `oldFile: File | Object | undefined` `Read only`\\n\\n\\n* **Details:**\\n\\n If the `newFile` value is `undefined` 'is deleted\\n If the `oldFile` value is `undefined` 'is added\\n If `newFile`, `oldFile` is exist, it is updated\\n\\n\\n >You can use `update`,` add`, `remove`,` clear` methods in the event\\n >You can not modify the `newFile` object in the event\\n >You can not modify the `oldFile` object in the event\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n## Instance / Data\\n\\n### features\\n\\nUsed to determine the browser support features\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `{ html5: true, directory: false, drop: false }`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Support drag and drop upload\\n Support folder upload\\n Support for HTML5\\n \\n ```\\n\\n\\n\\n### active\\n\\nActivation or abort upload\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Start upload\\n Stop upload\\n \\n ```\\n\\n\\n\\n### dropActive\\n\\nIs dragging\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Drag and drop here for upload\\n \\n ```\\n\\n\\n\\n\\n\\n### uploaded\\n\\nAll uploaded\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `true`\\n\\n* **Usage:**\\n ```html\\n \\n \\n All files have been uploaded\\n \\n ```\\n\\n\\n\\n\\n\\n## Instance / Methods\\n\\n\\n\\n### get()\\n\\nUse `id` to get a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **Result:** `File | Object | Boolean` There is a return file, object that otherwise returns `false`\\n\\n\\n\\n### add()\\n\\nAdd one or more files\\n\\n* **Arguments:**\\n\\n * `files: Array | File | window.File | Object` If it is an array of responses will be an array\\n * `index: Number | Boolean` = [`props.add-index`](#options-props-add-index) `true = ` Start, `false = ` End, `Number = ` Index\\n\\n\\n* **Result:** `Object | Array | Boolean` The incoming array is returned to the array otherwise the object or `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n### addInputFile()\\n\\nAdd the file selected by `` to the upload list\\n\\n* **Arguments:**\\n\\n * `el: HTMLInputElement` File element\\n\\n\\n* **Result:** `Array` Added list of files\\n\\n* **Version:** : `>=2.5.1`\\n\\n\\n\\n### addDataTransfer()\\n\\nAdd files that are dragged or pasted into the upload list\\n\\n* **Arguments:**\\n\\n * `dataTransfer: DataTransfer` Drag or paste data\\n\\n\\n* **Result:** `Promise>` Added list of files\\n\\n\\n* **Version:** : `>=2.5.1`\\n\\n\\n\\n### update()\\n\\nUpdate a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n * `data: Object` Updated data object\\n\\n\\n* **Result:** `Object | Boolean` Successfully returned `newFile` failed to return` false`\\n\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### remove()\\n\\nRemove a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **Result:** `Object | Boolean` Successfully returned `oldFile` failed to return` false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### replace()\\n Replace the location of the two files\\n\\n* **Arguments:**\\n\\n * `id1: File | Object | String`\\n * `id2: File | Object | String`\\n\\n\\n* **Result:** `Boolean`\\n\\n\\n### clear()\\n\\nEmpty the file list\\n\\n* **Result:** `Boolean` Always return `true`\\n\\n\\n\\n## Instance / File\\n\\n\\n\\n> **File object in the `@input-filter` event outside the use of [`update`](#instance-methods-update) method**\\n\\n\\n\\n\\n### fileObject\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Required:** `true`\\n\\n* **Default:** `true`\\n\\n* **Version:** : `>=2.6.0`\\n\\n* **Details:**\\n\\n If the attribute does not exist, the object will not be processed internally\\n If the attribute does not exist, it is not `File` but `Object`\\n\\n\\n\\n\\n### id\\n\\nFile ID\\n\\n* **Type:** `String | Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `Math.random().toString(36).substr(2)`\\n\\n* **Details:**\\n\\n >`id` can not be repeated\\n >Upload can not modify `id`\\n\\n\\n### size\\n\\nFile size\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `-1`\\n\\n* **Browser:** `> IE9`\\n\\n\\n### name\\n\\nFilename\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Details:**\\n\\n Format: `directory/filename.gif` `filename.gif`\\n\\n\\n\\n### type\\n\\nMIME type\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n Format: `image/gif` `image/png` `text/html`\\n\\n\\n\\n\\n### active\\n\\nActivation or abort upload\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n* **Details:**\\n\\n `true` = Upload\\n `false` = Abort\\n\\n\\n\\n\\n\\n\\n### error\\n\\nUpload failed error code\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Details:**\\n\\n Built-in\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\n\\n\\n\\n\\n### success\\n\\nWhether the upload was successful\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n\\n### putAction\\n\\nCustomize the current file `PUT` URL\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.putAction`\\n\\n\\n\\n### postAction\\n\\nCustomize the current file `POST` URL\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.postAction`\\n\\n\\n\\n\\n### headers\\n\\nCustomize the current file `HTTP` Header\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.headers`\\n\\n\\n### data\\n\\nCustomize the current file `body` or` query` to attach content\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.data`\\n\\n\\n### timeout\\n\\nCustomize the upload timeout for a current single file\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.timeout`\\n\\n\\n### response\\n\\nResponse data\\n\\n* **Type:** `Object | String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `{}`\\n\\n\\n\\n\\n### progress\\n\\nUpload progress\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `0.00`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n### speed\\n\\nPer second upload speed\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n\\n### xhr\\n\\n`HTML5` upload` XMLHttpRequest` object\\n\\n* **Type:** `XMLHttpRequest`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n\\n### iframe\\n\\n`HTML4` upload` iframe` element\\n\\n* **Type:** `Element`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `= IE9`\\n\"","module.exports = \"## 入门开始\\n\\n### NPM\\n\\n``` bash\\nnpm install vue-upload-component --save\\n```\\n\\n``` js\\nconst VueUploadComponent = require('vue-upload-component')\\nVue.component('file-upload', VueUploadComponent)\\n```\\n\\n### Curated\\n\\n**No data**\\n\\n\\n### 直接使用\\n\\n\\nunpkg\\n\\n``` html\\n\\n\\n\\n```\\n\\njsDelivr\\n\\n``` html\\n\\n\\n\\n```\\n\\n\\n### 简单的例子\\n\\n\\n\\n```html\\n\\n\\n\\n \\n Vue-upload-component Test\\n \\n \\n\\n\\n
\\n
    \\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\n
\\n \\n 上传文件\\n \\n \\n \\n
\\n\\n\\n\\n```\\n\\n\\n\\n### SSR (服务器同构)\\n\\n\\n```html\\n\\n\\n\\n```\\n\\n\\n** 或者 **\\n\\n\\n```js\\nimport FileUpload from 'vue-upload-component/src'\\n```\\n\\nwebpack.config.js\\n\\n```js\\nconst nodeExternals = require('webpack-node-externals');\\n{\\n //...\\n externals: [\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\n ]\\n //...\\n}\\n```\\n\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \\n\\n* [**`vue-hackernews` 演示**](https://github.com/lian-yue/vue-hackernews-2.0/) \\n\\n* [**浏览修改文件**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\n\\n\\n\\n\\n## 选项 / 属性\\n\\n\\n### input-id\\n\\ninput 标签的 `id` 属性\\n\\n* **类型:** `String`\\n\\n* **默认值:** `this.name`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### name\\n\\ninput标签的 `name` 属性\\n\\n* **类型:** `String`\\n\\n* **默认值:** `file`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### post-action\\n\\n`POST` 请求的上传URL\\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### put-action\\n\\n`PUT` 请求的上传URL\\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:** \\n\\n `put-action` 不为空请优先 `PUT` 请求 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n### custom-action\\n\\n自定义上传方法\\n\\n* **类型:** `async Function`\\n\\n* **默认值:** `undefined`\\n\\n* **详细:** \\n\\n `custom-action` 优先级高于 `put-action, post-action`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n ```js\\n async function customAction(file, component) {\\n // return await component.uploadPut(file)\\n return await component.uploadHtml4(file)\\n }\\n ```\\n\\n\\n\\n### headers\\n\\n自定义上传请求 `header` 数据\\n\\n* **类型:** `Object`\\n\\n* **默认值:** `{}`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### data\\n\\n`POST 请求`: 附加请求的 body \\n`PUT 请求`: 附加请求的 query \\n\\n* **类型:** `Object`\\n\\n* **默认值:** `{}`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### value, v-model\\n\\n文件列表\\n\\n* **类型:** `Array`\\n\\n* **默认值:** `[]`\\n\\n* **详细:** \\n\\n 浏览 **[`File`](#file)** 详细信息 \\n > 为了防止不可预知的错误,不可直接修改 `files`,请使用 [`add`](#实例-方法-add), [`update`](#实例-方法-update), [`remove`](#实例-方法-remove) 方法修改\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### accept\\n\\n表单的`accept`属性, MIME type \\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### multiple\\n\\n文件表单的 `multiple` 属性 \\n是否允许选择多个文件 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `false`\\n\\n* **详细:** \\n\\n 如果是 `false` `files` 里面最多只有一个文件 多的会自动删除 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n### directory\\n\\n文件表单的 `directory` 属性 \\n是否是上传文件夹 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `false`\\n\\n* **浏览器:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### extensions\\n\\n允许上传的文件后缀\\n\\n* **类型:** `Array | String | RegExp`\\n\\n* **默认值:** `undefined`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n \\n \\n ```\\n\\n\\n\\n\\n### size\\n\\n允许上传的最大字节\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:**\\n\\n `0` 等于不限制\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### timeout\\n\\n上传超时时间毫秒\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n### maximum\\n\\n列表最大文件数\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `props.multiple ? 0 : 1`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### thread\\n\\n同时并发上传的文件数量 线程数 \\n\\n* **类型:** `Number`\\n\\n* **默认值:** `1`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### drop\\n\\n拖拽上传 \\n\\n* **类型:** `Boolean | Element | CSS selector`\\n\\n* **默认值:** `false`\\n\\n* **浏览器:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\n\\n* **详细:**\\n\\n 如果设置成 `true` 则读取父组件作为容器 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### drop-directory\\n\\n是否开启拖拽目录 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `true`\\n\\n* **详细:**\\n\\n 如果设置成 `false` 则过滤掉目录\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n### add-index\\n\\n* **类型:** `Boolean, Number`\\n\\n* **默认值:** `undefined`\\n\\n* **版本:** `>= 2.6.1`\\n\\n* **详细:**\\n\\n [`add()`](#实例-方法-add) 方法 `index` 参数的默认值\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n## 选项 / 事件\\n\\n文件被改变触发的方法 \\n默认用于`v-model`绑定\\n\\n### @input\\n* **参数:**\\n\\n * `files: Array`\\n\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n### @input-filter\\n\\nAdd, update, remove pre-filter \\n\\n* **参数:**\\n\\n * `newFile: File | Object | undefined` `读写`\\n * `oldFile: File | Object | undefined` `只读`\\n * `prevent: Function` 调用该方法 阻止修改\\n\\n\\n* **详细:**\\n\\n 如果 `newFile` 值为 `undefined` 则是删除 \\n 如果 `oldFile` 值为 `undefined` 则是添加 \\n 如果 `newFile`, `oldFile` 都存在则是更新\\n\\n > 事件内同步处理请直接修改 `newFile` \\n > 事件内异步处理请使用 `update`, `add`, `remove`, `clear` 方法 \\n > 异步请先设置一个错误以防止被上传\\n\\n > 同步不能使用 `update`, `add`, `remove`, `clear` 方法 \\n > 异步不能修改 `newFile`\\n\\n\\n* **示例:** \\n ```html\\n \\n \\n ```\\n\\n### @input-file\\n\\n添加,更新,移除 后\\n\\n* **参数:**\\n\\n * `newFile: File | Object | undefined` `只读`\\n * `oldFile: File | Object | undefined` `只读`\\n\\n\\n* **详细:**\\n\\n 如果 `newFile` 值为 `undefined` 则是删除 \\n 如果 `oldFile` 值为 `undefined` 则是添加 \\n 如果 `newFile`, `oldFile` 都存在则是更新\\n\\n >事件内可使用 `update`, `add`, `remove`, `clear` 方法 \\n >事件内不可修改 `newFile` 对象 \\n >事件内不可修改 `oldFile` 对象\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n## 实例 / 数据\\n\\n### features\\n\\n用于判断浏览器支持的特性\\n\\n* **类型:** `Object`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `{ html5: true, directory: false, drop: false }`\\n\\n* **示例:**\\n ```html\\n \\n \\n 支持拖拽上传\\n 支持文件夹上传\\n 支持HTML5\\n \\n ```\\n\\n\\n\\n### active\\n\\n激活或停止上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n 开始上传\\n 停止上传\\n \\n ```\\n\\n\\n\\n### dropActive\\n\\n是否正在拖拽\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n 拖拽到这里上传\\n \\n ```\\n\\n\\n\\n\\n\\n### uploaded\\n\\n是否全部已上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `true`\\n\\n* **示例:**\\n ```html\\n \\n \\n 全部文件已上传完毕\\n \\n ```\\n\\n\\n\\n\\n\\n## 实例 / 方法\\n\\n\\n\\n### get()\\n\\n使用`id`获得某个对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **结果:** `File | Object | Boolean` 存在返回文件对象否则返回 `false`\\n\\n\\n\\n### add()\\n\\n添加一个或多个文件\\n\\n* **参数:**\\n\\n * `files: Array | File | window.File | Object` 如果它是一个数组的响应将是一个数组\\n * `index: Number | Boolean` = [`props.add-index`](#选项-属性-add-index) `true = ` 开始位置, `false = ` 结束位置, `Number = ` 下标位置\\n\\n\\n* **结果:** `Object | Array | Boolean` 传入的是数组返回数组否则对象或`false`\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n### addInputFile()\\n\\n把``选择的文件添加进上传列表 \\n\\n* **参数:**\\n\\n * `el: HTMLInputElement` 文件元素\\n\\n\\n* **结果:** `Array` 返回已添加的文件列表\\n\\n* **版本:** : `>=2.5.1`\\n\\n\\n\\n### addDataTransfer()\\n\\n把拖拽或者粘贴的数据的文件添加进上传列表 \\n\\n* **参数:**\\n\\n * `dataTransfer: DataTransfer` 拖拽或者粘贴的数据\\n\\n\\n* **结果:** `Promise>` 返回已添加的文件列表\\n\\n\\n* **版本:** : `>=2.5.1`\\n\\n\\n\\n### update()\\n\\n更新某个对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n * `data: Object` 更新的数据对象\\n\\n\\n* **结果:** `Object | Boolean` 成功返回 `newFile` 失败返回 `false`\\n\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n### remove()\\n\\n移除某个文件对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **结果:** `Object | Boolean` 成功返回 `oldFile` 失败返回 `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n### replace()\\n 替换两个文件的位置\\n\\n* **参数:**\\n\\n * `id1: File | Object | String`\\n * `id2: File | Object | String`\\n\\n\\n* **结果:** `Boolean`\\n\\n\\n\\n### clear()\\n\\n清空文件列表\\n\\n* **结果:** `Boolean` 总是返回 `true`\\n\\n\\n\\n## 实例 / File\\n\\n\\n> **文件对象在`input-filter`事件外修改请使用 [`update`](#实例-方法-update) 方法**\\n\\n\\n### fileObject\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **Required:** `true`\\n\\n* **默认值:** `true`\\n\\n* **版本:** : `>=2.6.0`\\n\\n* **详细:**\\n\\n 如果属性不存在,则不会在内部处理该对象 \\n 如果属性不存在,它不是 `File` 而是 `Object`\\n\\n\\n\\n### id\\n\\n文件id\\n\\n* **类型:** `String | Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `Math.random().toString(36).substr(2)`\\n\\n* **详细:**\\n\\n >`id` can not be repeated \\n >Upload can not modify `id`\\n\\n\\n### size\\n\\n文件大小\\n\\n* **类型:** `Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `-1`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n### name\\n\\n文件名 \\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **详细:**\\n\\n 格式: `directory/filename.gif` `filename.gif` \\n\\n\\n\\n### type\\n\\nMIME类型\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:**\\n\\n 格式: `image/gif` `image/png` `text/html`\\n\\n\\n\\n\\n### active\\n\\n激活或终止上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n* **详细:**\\n\\n `true` = 上传 \\n `false` = 停止 \\n\\n\\n\\n\\n\\n\\n### error\\n\\n上传失败错误代码\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **详细:**\\n\\n 内置\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\n\\n\\n\\n\\n### success\\n\\n是否上传成功\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n\\n### putAction\\n\\n自定义当前文件 `PUT` 地址\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.putAction`\\n\\n\\n\\n### postAction\\n\\n自定义当前文件 `POST` 地址\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.postAction`\\n\\n\\n\\n\\n### headers\\n\\n自定义当前文件 `HTTP` Header\\n\\n* **类型:** `Object`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.headers`\\n\\n\\n### data\\n\\n自定义当前文件 `body` 或 `query` 附加内容\\n\\n* **类型:** `Object`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.data`\\n\\n\\n### timeout\\n\\n自定义当前单个文件的上传超时时间\\n\\n* **类型:** `Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.timeout`\\n\\n\\n### response\\n\\n响应的数据\\n\\n* **类型:** `Object | String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `{}`\\n\\n\\n\\n\\n### progress\\n\\n上传进度\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `0.00`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n### speed\\n\\n每秒的上传速度\\n\\n* **类型:** `Number`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n\\n### xhr\\n\\n`HTML5` 上传 `XMLHttpRequest` 对象\\n\\n* **类型:** `XMLHttpRequest`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n\\n### iframe\\n\\n`HTML4` 上传 `iframe` 元素\\n\\n* **类型:** `Element`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `= IE9`\\n\"","// style-loader: Adds some css to the DOM by adding a \n\n","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=61209807&\"\nimport script from \"./Document.vue?vue&type=script&lang=js&\"\nexport * from \"./Document.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Document.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row flex-xl-nowrap\"},[_c('div',{staticClass:\"col-12 col-md-3 col-xl-2\",attrs:{\"id\":\"sidebar\"}},[_c('nav',{staticClass:\"collapse show\",attrs:{\"id\":\"sidebar-nav\"}},[_c('ul',{staticClass:\"nav\"},_vm._l((_vm.navs),function(group,index){return _c('li',{class:{'nav-item': true, active: (!_vm.$route.hash && !index) || _vm.$route.hash.indexOf(group.hash) === 1}},[_c('router-link',{class:{'nav-link': true, active: _vm.$route.hash.indexOf(group.hash) === 1},attrs:{\"active-class\":\"active\",\"to\":'#' + group.hash}},[_vm._v(_vm._s(group.name))]),_vm._v(\" \"),(group.children.length)?_c('ul',{staticClass:\"nav\"},_vm._l((group.children),function(child){return _c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":'#' + group.hash + '-' + child.hash}},[_vm._v(_vm._s(child.name))])],1)}),0):_vm._e()],1)}),0)])]),_vm._v(\" \"),_c('main',{staticClass:\"col-12 col-md-9 col-xl-10 py-md-3 pr-md-5 pl-md-5\",attrs:{\"id\":\"main\",\"role\":\"main\"}},[_c('h1',{staticClass:\"document-title\",attrs:{\"id\":\"document-title\"}},[_vm._v(_vm._s(_vm.$t('document.title')))]),_vm._v(\" \"),_c('div',{directives:[{name:\"markdown\",rawName:\"v-markdown\"}],staticClass:\"document-content\"},[_vm._v(_vm._s(_vm.document))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Example.vue?vue&type=template&id=02498012&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row flex-xl-nowrap\"},[_c('div',{staticClass:\"col-12 col-md-3 col-xl-2\",attrs:{\"id\":\"sidebar\"}},[_c('nav',{staticClass:\"collapse show\",attrs:{\"id\":\"sidebar-nav\"}},[_c('ul',{staticClass:\"nav\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/full')}},[_vm._v(_vm._s(_vm.$t('example.full')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/simple')}},[_vm._v(_vm._s(_vm.$t('example.simple')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/avatar')}},[_vm._v(_vm._s(_vm.$t('example.avatar')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/drag')}},[_vm._v(_vm._s(_vm.$t('example.drag')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/multiple')}},[_vm._v(_vm._s(_vm.$t('example.multiple')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/chunk')}},[_vm._v(_vm._s(_vm.$t('example.chunk')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/vuex')}},[_vm._v(_vm._s(_vm.$t('example.vuex')))])],1)])])]),_vm._v(\" \"),_c('main',{staticClass:\"col-12 col-md-9 col-xl-10 py-md-3 pr-md-5 pl-md-5\",attrs:{\"id\":\"main\",\"role\":\"main\"}},[_c('router-view')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Full.vue?vue&type=template&id=8736bb40&\"\nimport script from \"./Full.vue?vue&type=script&lang=js&\"\nexport * from \"./Full.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Full.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-full\"},[_c('button',{staticClass:\"btn btn-danger float-right btn-is-option\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.isOption = !_vm.isOption}}},[_c('i',{staticClass:\"fa fa-cog\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Options\\n \")]),_vm._v(\" \"),_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Full Example\")]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isOption),expression:\"!isOption\"}],staticClass:\"upload\"},[_c('div',{staticClass:\"table-responsive\"},[_c('table',{staticClass:\"table table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[(!_vm.files.length)?_c('tr',[_c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"text-center p-5\"},[_vm._m(1),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-lg btn-primary\",attrs:{\"for\":_vm.name}},[_vm._v(\"Select Files\")])])])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.files),function(file,index){return _c('tr',{key:file.id},[_c('td',[_vm._v(_vm._s(index))]),_vm._v(\" \"),_c('td',[(file.thumb)?_c('img',{attrs:{\"src\":file.thumb,\"width\":\"40\",\"height\":\"auto\"}}):_c('span',[_vm._v(\"No Image\")])]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"filename\"},[_vm._v(\"\\n \"+_vm._s(file.name)+\"\\n \")]),_vm._v(\" \"),(file.active || file.progress !== '0.00')?_c('div',{staticClass:\"progress\"},[_c('div',{class:{'progress-bar': true, 'progress-bar-striped': true, 'bg-danger': file.error, 'progress-bar-animated': file.active},style:({width: file.progress + '%'}),attrs:{\"role\":\"progressbar\"}},[_vm._v(_vm._s(file.progress)+\"%\")])]):_vm._e()]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.speed)))]),_vm._v(\" \"),(file.error)?_c('td',[_vm._v(_vm._s(file.error))]):(file.success)?_c('td',[_vm._v(\"success\")]):(file.active)?_c('td',[_vm._v(\"active\")]):_c('td'),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"btn-group\"},[_c('button',{staticClass:\"btn btn-secondary btn-sm dropdown-toggle\",attrs:{\"type\":\"button\"}},[_vm._v(\"\\n Action\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\"},[_c('a',{class:{'dropdown-item': true, disabled: file.active || file.success || file.error === 'compressing'},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.active || file.success || file.error === 'compressing' ? false : _vm.onEditFileShow(file)}}},[_vm._v(\"Edit\")]),_vm._v(\" \"),_c('a',{class:{'dropdown-item': true, disabled: !file.active},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.active ? _vm.$refs.upload.update(file, {error: 'cancel'}) : false}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),(file.active)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: false})}}},[_vm._v(\"Abort\")]):(file.error && file.error !== 'compressing' && _vm.$refs.upload.features.html5)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: true, error: '', progress: '0.00'})}}},[_vm._v(\"Retry upload\")]):_c('a',{class:{'dropdown-item': true, disabled: file.success || file.error === 'compressing'},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.success || file.error === 'compressing' ? false : _vm.$refs.upload.update(file, {active: true})}}},[_vm._v(\"Upload\")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\"}),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.remove(file)}}},[_vm._v(\"Remove\")])])])])])})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"example-foorer\"},[_c('div',{staticClass:\"footer-status float-right\"},[_vm._v(\"\\n Drop: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.drop : false)+\",\\n Active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.active : false)+\",\\n Uploaded: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.uploaded : true)+\",\\n Drop active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.dropActive : false)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary dropdown-toggle\",attrs:{\"post-action\":_vm.postAction,\"put-action\":_vm.putAction,\"extensions\":_vm.extensions,\"accept\":_vm.accept,\"multiple\":_vm.multiple,\"directory\":_vm.directory,\"size\":_vm.size || 0,\"thread\":_vm.thread < 1 ? 1 : (_vm.thread > 5 ? 5 : _vm.thread),\"headers\":_vm.headers,\"data\":_vm.data,\"drop\":_vm.drop,\"drop-directory\":_vm.dropDirectory,\"add-index\":_vm.addIndex},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\"},[_c('label',{staticClass:\"dropdown-item\",attrs:{\"for\":_vm.name}},[_vm._v(\"Add files\")]),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.onAddFolder}},[_vm._v(\"Add folder\")]),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = true}}},[_vm._v(\"Add data\")])])],1),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOption),expression:\"isOption\"}],staticClass:\"option\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"accept\"}},[_vm._v(\"Accept:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.accept),expression:\"accept\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"accept\"},domProps:{\"value\":(_vm.accept)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.accept=$event.target.value}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload mime type\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"extensions\"}},[_vm._v(\"Extensions:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.extensions),expression:\"extensions\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"extensions\"},domProps:{\"value\":(_vm.extensions)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.extensions=$event.target.value}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload file extension\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"PUT Upload:\")]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.putAction),expression:\"putAction\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"name\":\"put-action\",\"id\":\"put-action\",\"value\":\"\"},domProps:{\"checked\":_vm._q(_vm.putAction,\"\")},on:{\"change\":function($event){_vm.putAction=\"\"}}}),_vm._v(\" Off\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.putAction),expression:\"putAction\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"name\":\"put-action\",\"id\":\"put-action\",\"value\":\"/upload/put\"},domProps:{\"checked\":_vm._q(_vm.putAction,\"/upload/put\")},on:{\"change\":function($event){_vm.putAction=\"/upload/put\"}}}),_vm._v(\" On\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"After the shutdown, use the POST method to upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"thread\"}},[_vm._v(\"Thread:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.thread),expression:\"thread\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"max\":\"5\",\"min\":\"1\",\"id\":\"thread\"},domProps:{\"value\":(_vm.thread)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.thread=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Also upload the number of files at the same time (number of threads)\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"size\"}},[_vm._v(\"Max size:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.size),expression:\"size\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"size\"},domProps:{\"value\":(_vm.size)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.size=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"minSize\"}},[_vm._v(\"Min size:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.minSize),expression:\"minSize\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"minSize\"},domProps:{\"value\":(_vm.minSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.minSize=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"autoCompress\"}},[_vm._v(\"Automatically compress:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.autoCompress),expression:\"autoCompress\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"autoCompress\"},domProps:{\"value\":(_vm.autoCompress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.autoCompress=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"),(_vm.autoCompress > 0)?_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"More than \"+_vm._s(_vm._f(\"formatSize\")(_vm.autoCompress))+\" files are automatically compressed\")]):_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Set up automatic compression\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addIndex),expression:\"addIndex\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"add-index\"},domProps:{\"checked\":Array.isArray(_vm.addIndex)?_vm._i(_vm.addIndex,null)>-1:(_vm.addIndex)},on:{\"change\":function($event){var $$a=_vm.addIndex,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.addIndex=$$a.concat([$$v]))}else{$$i>-1&&(_vm.addIndex=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.addIndex=$$c}}}}),_vm._v(\" Start position to add\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Add a file list to start the location to add\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.drop),expression:\"drop\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"drop\"},domProps:{\"checked\":Array.isArray(_vm.drop)?_vm._i(_vm.drop,null)>-1:(_vm.drop)},on:{\"change\":function($event){var $$a=_vm.drop,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.drop=$$a.concat([$$v]))}else{$$i>-1&&(_vm.drop=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.drop=$$c}}}}),_vm._v(\" Drop\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Drag and drop upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dropDirectory),expression:\"dropDirectory\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"drop-directory\"},domProps:{\"checked\":Array.isArray(_vm.dropDirectory)?_vm._i(_vm.dropDirectory,null)>-1:(_vm.dropDirectory)},on:{\"change\":function($event){var $$a=_vm.dropDirectory,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.dropDirectory=$$a.concat([$$v]))}else{$$i>-1&&(_vm.dropDirectory=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.dropDirectory=$$c}}}}),_vm._v(\" Drop directory\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Not checked, filter the dragged folder\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.uploadAuto),expression:\"uploadAuto\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"upload-auto\"},domProps:{\"checked\":Array.isArray(_vm.uploadAuto)?_vm._i(_vm.uploadAuto,null)>-1:(_vm.uploadAuto)},on:{\"change\":function($event){var $$a=_vm.uploadAuto,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.uploadAuto=$$a.concat([$$v]))}else{$$i>-1&&(_vm.uploadAuto=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.uploadAuto=$$c}}}}),_vm._v(\" Auto start\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Automatically activate upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-primary btn-lg btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.isOption = !_vm.isOption}}},[_vm._v(\"Confirm\")])])]),_vm._v(\" \"),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.addData.show}}),_vm._v(\" \"),_c('div',{class:{modal: true, fade: true, show: _vm.addData.show},attrs:{\"id\":\"modal-add-data\",\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\"Add data\")]),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onAddData($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.name),expression:\"addData.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"name\",\"placeholder\":\"Please enter a file name\"},domProps:{\"value\":(_vm.addData.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"name\", $event.target.value)}}}),_vm._v(\" \"),_vm._m(2)]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"type\"}},[_vm._v(\"Type:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.type),expression:\"addData.type\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"type\",\"placeholder\":\"Please enter the MIME type\"},domProps:{\"value\":(_vm.addData.type)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"type\", $event.target.value)}}}),_vm._v(\" \"),_vm._m(3)]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"content\"}},[_vm._v(\"Content:\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.content),expression:\"addData.content\"}],staticClass:\"form-control\",attrs:{\"required\":\"\",\"id\":\"content\",\"rows\":\"3\",\"placeholder\":\"Please enter the file contents\"},domProps:{\"value\":(_vm.addData.content)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"content\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = false}}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_vm._v(\" \"),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.editFile.show}}),_vm._v(\" \"),_c('div',{class:{modal: true, fade: true, show: _vm.editFile.show},attrs:{\"id\":\"modal-edit-file\",\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog modal-lg\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\"Edit file\")]),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.editFile.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onEditorFile($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editFile.name),expression:\"editFile.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"name\",\"placeholder\":\"Please enter a file name\"},domProps:{\"value\":(_vm.editFile.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.editFile, \"name\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.editFile.show && _vm.editFile.blob && _vm.editFile.type && _vm.editFile.type.substr(0, 6) === 'image/')?_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"Image: \")]),_vm._v(\" \"),_c('div',{staticClass:\"edit-image\"},[_c('img',{ref:\"editImage\",attrs:{\"src\":_vm.editFile.blob}})]),_vm._v(\" \"),_c('div',{staticClass:\"edit-image-tool\"},[_c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.rotate(-90)\"},on:{\"click\":function($event){return _vm.editFile.cropper.rotate(-90)}}},[_c('i',{staticClass:\"fa fa-undo\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.rotate(90)\"},on:{\"click\":function($event){return _vm.editFile.cropper.rotate(90)}}},[_c('i',{staticClass:\"fa fa-repeat\",attrs:{\"aria-hidden\":\"true\"}})])]),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.crop()\"},on:{\"click\":function($event){return _vm.editFile.cropper.crop()}}},[_c('i',{staticClass:\"fa fa-check\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.clear()\"},on:{\"click\":function($event){return _vm.editFile.cropper.clear()}}},[_c('i',{staticClass:\"fa fa-remove\",attrs:{\"aria-hidden\":\"true\"}})])])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.editFile.show = false}}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_vm._v(\" \"),_vm._m(4)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"#\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Thumb\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Name\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Size\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Speed\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Status\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Action\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_vm._v(\"Drop files anywhere to upload\"),_c('br'),_vm._v(\"or\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Such as \"),_c('code',[_vm._v(\"filename.txt\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Such as \"),_c('code',[_vm._v(\"text/plain\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Full.vue\"}},[_vm._v(\"/docs/views/examples/Full.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Simple.vue?vue&type=template&id=3576474f&\"\nimport script from \"./Simple.vue?vue&type=script&lang=js&\"\nexport * from \"./Simple.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Simple.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-simple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Simple Example\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Simple.vue\"}},[_vm._v(\"/docs/views/examples/Simple.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=7343c9e0&\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js&\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Avatar.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-avatar\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.edit),expression:\"!edit\"}],staticClass:\"avatar-upload\"},[_c('div',{staticClass:\"text-center p-2\"},[_c('label',{attrs:{\"for\":\"avatar\"}},[_c('img',{staticClass:\"rounded-circle\",attrs:{\"src\":_vm.files.length ? _vm.files[0].url : 'https://www.gravatar.com/avatar/default?s=200&r=pg&d=mm'}}),_vm._v(\" \"),_vm._m(0)])]),_vm._v(\" \"),_c('div',{staticClass:\"text-center p-2\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"name\":\"avatar\",\"post-action\":\"/upload/post\",\"drop\":!_vm.edit},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_vm._v(\"\\n Upload avatar\\n \")])],1)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.files.length && _vm.edit),expression:\"files.length && edit\"}],staticClass:\"avatar-edit\"},[(_vm.files.length)?_c('div',{staticClass:\"avatar-edit-image\"},[_c('img',{ref:\"editImage\",attrs:{\"src\":_vm.files[0].url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text-center p-4\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.clear($event)}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editSave($event)}}},[_vm._v(\"Save\")])])]),_vm._v(\" \"),_vm._m(1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"pt-2\"},[_vm._v(\"or\"),_c('br'),_vm._v(\"Drop files anywhere to upload\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Avatar.vue\"}},[_vm._v(\"/docs/views/examples/Avatar.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Drag.vue?vue&type=template&id=6899f793&\"\nimport script from \"./Drag.vue?vue&type=script&lang=js&\"\nexport * from \"./Drag.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Drag.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-drag\"},[_c('div',{staticClass:\"upload\"},[(_vm.files.length)?_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0):_c('ul',[_vm._m(0)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"multiple\":true,\"drop\":true,\"drop-directory\":true},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"text-center p-5\"},[_c('h4',[_vm._v(\"Drop files anywhere to upload\"),_c('br'),_vm._v(\"or\")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-lg btn-primary\",attrs:{\"for\":\"file\"}},[_vm._v(\"Select Files\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Drag.vue\"}},[_vm._v(\"/docs/views/examples/Drag.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Multiple.vue?vue&type=template&id=3d82a174&\"\nimport script from \"./Multiple.vue?vue&type=script&lang=js&\"\nexport * from \"./Multiple.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Multiple.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-multiple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Multiple instances\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files1),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload1\",staticClass:\"btn btn-primary\",attrs:{\"input-id\":\"file1\",\"post-action\":\"/upload/post\"},model:{value:(_vm.files1),callback:function ($$v) {_vm.files1=$$v},expression:\"files1\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file1\"}},[_vm._v(\"Label Select files\")]),_vm._v(\" \"),(!_vm.$refs.upload1 || !_vm.$refs.upload1.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload1.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload1.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files2),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload2\",staticClass:\"btn btn-primary\",attrs:{\"input-id\":\"file2\",\"post-action\":\"/upload/post\"},model:{value:(_vm.files2),callback:function ($$v) {_vm.files2=$$v},expression:\"files2\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file2\"}},[_vm._v(\"Label Select files\")]),_vm._v(\" \"),(!_vm.$refs.upload2 || !_vm.$refs.upload2.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload2.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload2.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Multiple.vue\"}},[_vm._v(\"/docs/views/examples/Multiple.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./Chunk.vue?vue&type=template&id=c205936e&scoped=true&\"\nimport script from \"./Chunk.vue?vue&type=script&lang=js&\"\nexport * from \"./Chunk.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Chunk.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./Chunk.vue?vue&type=style&index=1&id=c205936e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c205936e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-simple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Chunk Upload Example\")]),_vm._v(\" \"),_c('p',[_vm._v(\"When using chunk uploads, the file will be uploaded in different parts (or chunks). All the files with a size higher than the set in the input will be uploaded using this method.\")]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('p',[_vm._v(\"You can also pause / resume the upload process.\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('div',{staticClass:\"form-horizontal\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"col-sm-offset-2 col-sm-10\"},[_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkEnabled),expression:\"chunkEnabled\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.chunkEnabled)?_vm._i(_vm.chunkEnabled,null)>-1:(_vm.chunkEnabled)},on:{\"change\":function($event){var $$a=_vm.chunkEnabled,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.chunkEnabled=$$a.concat([$$v]))}else{$$i>-1&&(_vm.chunkEnabled=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.chunkEnabled=$$c}}}}),_vm._v(\" Use chunk upload\\n \")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMinSize\"}},[_vm._v(\"Min Size\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMinSize),expression:\"chunkMinSize\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMinSize\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMinSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMinSize=$event.target.value}}}),_vm._v(\" \"),_c('span',{staticClass:\"input-group-addon\"},[_vm._v(\"MB\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMaxActive\"}},[_vm._v(\"Max Active Chunks\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMaxActive),expression:\"chunkMaxActive\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMaxActive\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMaxActive)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMaxActive=$event.target.value}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMaxRetries\"}},[_vm._v(\"Max Chunk Retries\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMaxRetries),expression:\"chunkMaxRetries\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMaxRetries\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMaxRetries)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMaxRetries=$event.target.value}}})])])]),_vm._v(\" \"),_c('table',{staticClass:\"table table-striped table-condensed\"},[_vm._m(1),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.files),function(file){return [_c('tr',{key:file.id + '-info'},[_c('td',[_vm._v(_vm._s(file.name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.progress)+\"%\")]),_vm._v(\" \"),(file.error)?_c('td',[_vm._v(_vm._s(file.error))]):(file.success)?_c('td',[_vm._v(\"Success\")]):(file.active)?_c('td',[_vm._v(\"Active\")]):_c('td',[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',[(file.chunk)?[(file.active)?_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return file.chunk.pause()}}},[_c('i',{staticClass:\"fa fa-pause\"})]):_vm._e(),_vm._v(\" \"),(!file.active && file.chunk.hasChunksToUpload)?_c('button',{staticClass:\"btn btn-sm btn-primary\",on:{\"click\":function($event){return file.chunk.resume()}}},[_c('i',{staticClass:\"fa fa-play\"})]):_vm._e()]:_vm._e()],2),_vm._v(\" \"),(file.chunk)?[_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunks.length))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunksUploading.length))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunksUploaded.length))])]:[_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")])]],2),_vm._v(\" \"),_c('tr',{key:file.id + '-loading'},[_c('td',{attrs:{\"colspan\":\"8\"}},[(file.chunk)?_c('div',{staticClass:\"chunk-loading\"},_vm._l((file.chunk.chunks),function(chunk,index){return _c('span',{key:index,staticClass:\"chunk-loading-part\",class:{'chunk-loading-part__uploaded': chunk.uploaded}},[(chunk.retries != file.chunk.maxRetries)?[_vm._v(\"\\n \"+_vm._s(file.chunk.maxRetries - chunk.retries)+\" error(s)\\n \")]:_vm._e()],2)}),0):_vm._e()])])]})],2)]),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"chunk-enabled\":_vm.chunkEnabled,\"chunk\":{\n action: '/upload/chunk',\n minSize: _vm.chunkMinSize * 1048576,\n maxActive: _vm.chunkMaxActive,\n maxRetries: _vm.chunkMaxRetries\n },\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")])],1)]),_vm._v(\" \"),_vm._m(2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"You will be able to see the different parts being uploaded individually. Some parts might fail, and the package is prepared to \"),_c('em',[_vm._v(\"retry\")]),_vm._v(\" up to a certain amount of times.\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark\"},[_c('tr',[_c('th',[_vm._v(\"Name\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Size\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Progress\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Status\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Pause\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-center\",attrs:{\"colspan\":\"3\"}},[_vm._v(\"Chunks\")])]),_vm._v(\" \"),_c('tr',[_c('th',{attrs:{\"colspan\":\"5\"}}),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Total\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Active\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Completed\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Chunk.vue\"}},[_vm._v(\"/docs/views/examples/Chunk.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=script&lang=js&\"","\n\n\n\n","// import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nimport i18n from './i18n'\nimport RouterComponent from './views/Router'\nimport DocumentComponent from './views/Document'\nimport ExampleComponent from './views/Example'\n\nimport FullExampleComponent from './views/examples/Full'\nimport SimpleExampleComponent from './views/examples/Simple'\nimport AvatarExampleComponent from './views/examples/Avatar'\nimport DragExampleComponent from './views/examples/Drag'\nimport MultipleExampleComponent from './views/examples/Multiple'\nimport ChunkExampleComponent from './views/examples/Chunk'\nimport VuexExampleComponent from './views/examples/Vuex'\n\n\n\n// Vue.use(VueRouter)\n\n\nlet examples = [\n {\n path: '',\n component: FullExampleComponent,\n },\n {\n path: 'full',\n component: FullExampleComponent,\n },\n {\n path: 'simple',\n component: SimpleExampleComponent,\n },\n {\n path: 'avatar',\n component: AvatarExampleComponent,\n },\n {\n path: 'drag',\n component: DragExampleComponent,\n },\n {\n path: 'multiple',\n component: MultipleExampleComponent,\n },\n {\n path: 'chunk',\n component: ChunkExampleComponent,\n },\n {\n path: 'vuex',\n component: VuexExampleComponent,\n },\n]\n\n\n\nconst router = new VueRouter({\n mode: 'hash',\n fallback: false,\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition\n } else if (to.hash) {\n let el = document.querySelector(to.hash)\n return { x: 0, y: el ? el.offsetTop : 0 }\n } else {\n return { x: 0, y: 0 }\n }\n },\n routes: [\n {\n path: '/:locale(' + Object.keys(i18n.messages).join('|') + ')?',\n component: RouterComponent,\n children: [\n {\n path: 'documents',\n component: DocumentComponent,\n },\n {\n path: 'examples',\n component: ExampleComponent,\n children: examples,\n },\n {\n path: '',\n component: ExampleComponent,\n children: examples,\n },\n ]\n },\n ]\n})\nexport default router\n","import { render, staticRenderFns } from \"./Vuex.vue?vue&type=template&id=765a8e49&\"\nimport script from \"./Vuex.vue?vue&type=script&lang=js&\"\nexport * from \"./Vuex.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Vuex.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-vuex\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Vuex Example\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10,\"value\":_vm.files},on:{\"input\":_vm.inputUpdate}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Vuex.vue\"}},[_vm._v(\"/docs/views/examples/Vuex.vue\")]),_vm._v(\", \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/store.js\"}},[_vm._v(\"/docs/store.js\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=521aa91e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('header',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-dark\",attrs:{\"id\":\"header\"}},[_c('router-link',{staticClass:\"navbar-brand\",attrs:{\"exact\":true,\"to\":_vm._f(\"toLocale\")('/')}},[_vm._v(_vm._s(_vm.$t('header.logo')))]),_vm._v(\" \"),_c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.showNav = !_vm.showNav}}},[_c('span',{staticClass:\"navbar-toggler-icon\"})]),_vm._v(\" \"),_c('nav',{class:{collapse: true, 'navbar-collapse': true, show: _vm.showNav},attrs:{\"id\":\"navbar\"}},[_c('ul',{staticClass:\"navbar-nav\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{class:'nav-link' + (_vm.$route.path === '/' ? ' active' : ''),attrs:{\"active-class\":\"active\",\"exact\":true,\"to\":_vm._f(\"toLocale\")('/')}},[_vm._v(_vm._s(_vm.$t('header.home')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/documents')}},[_vm._v(_vm._s(_vm.$t('header.documents')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples')}},[_vm._v(_vm._s(_vm.$t('header.examples')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"rel\":\"license noopener\",\"href\":\"https://www.lianyue.org\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('header.blog')))])])]),_vm._v(\" \"),_c('ul',{staticClass:\"navbar-nav ml-md-auto\"},[_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onLocale(true)},\"focus\":function($event){return _vm.onLocale(true)},\"blur\":function($event){return _vm.onLocale(false)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.locale'))+\"\\n \")]),_vm._v(\" \"),_c('div',{class:{'dropdown-menu': true, show: _vm.showLocale},on:{\"blur\":function($event){return _vm.onLocale(false)}}},_vm._l((_vm.locale),function(value,name){return _c('router-link',{key:name,staticClass:\"dropdown-item\",attrs:{\"to\":'/' + name + (_vm.$route.params.locale ? _vm.$route.fullPath.substr(_vm.$route.params.locale.length + 1) : _vm.$route.fullPath)}},[_vm._v(_vm._s(value))])}),1)]),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/issues\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.issues'))+\"\\n \")])]),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.github'))+\"\\n \")])])])])],1),_vm._v(\" \"),_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport marked from 'marked'\nimport highlightjs from 'highlight.js'\nimport store from './store'\nimport router from './router'\nimport i18n from './i18n'\nimport App from './views/App'\n\nVue.config.silent = false\nVue.config.devtools = true\n\n\nclass Renderer extends marked.Renderer {\n heading(text, level, raw) {\n let rawName = raw.toLowerCase().replace(/([\\u0000-\\u002F\\u003A-\\u0060\\u007B-\\u007F]+)/g, '-').replace(/^\\-+|\\-+$/, '')\n\n if (!this.options.headers) {\n this.options.headers = []\n }\n while (this.options.headers.length >= level) {\n this.options.headers.pop()\n }\n let parent = this.options.headers.filter(value => !!value).join('-')\n if (parent) {\n parent = parent + '-'\n }\n while (this.options.headers.length < (level - 1)) {\n this.options.headers.push('')\n }\n this.options.headers.push(rawName)\n return ''\n + text\n + '\\n'\n }\n}\n\nmarked.setOptions({\n renderer: new Renderer(),\n gfm: true,\n tables: true,\n breaks: false,\n pedantic: false,\n sanitize: false,\n smartLists: true,\n smartypants: false,\n highlight(code, lang) {\n if (lang) {\n return highlightjs.highlight(lang, code).value\n } else {\n return highlightjs.highlightAuto(code).value\n }\n }\n})\n\nVue.directive('markdown', function (el, binding, vnode) {\n if (!el.className || !/vue-markdown/.test(el.className)) {\n el.className += ' vue-markdown'\n }\n let text = ''\n for (let i = 0; i < vnode.children.length; i++) {\n text += vnode.children[i].text || ''\n }\n if (el.markdown === text) {\n return\n }\n\n el.markdown = text\n\n el.innerHTML = marked(text)\n let selectorList = el.querySelectorAll('a')\n for (let i = 0; i < selectorList.length; i++) {\n selectorList[i].onclick = function (e) {\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n if (e.button !== undefined && e.button !== 0) {\n return\n }\n\n if (this.host !== window.location.host) {\n return\n }\n\n let href = this.getAttribute('href')\n if (!href) {\n return\n }\n\n if (href.charAt(0) !== '#') {\n return\n }\n\n e.preventDefault()\n router.push(href)\n }\n }\n})\n\n\n\nVue.filter('formatSize', function (size) {\n if (size > 1024 * 1024 * 1024 * 1024) {\n return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'\n } else if (size > 1024 * 1024 * 1024) {\n return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'\n } else if (size > 1024 * 1024) {\n return (size / 1024 / 1024).toFixed(2) + ' MB'\n } else if (size > 1024) {\n return (size / 1024).toFixed(2) + ' KB'\n }\n return size.toString() + ' B'\n})\n\nVue.filter('toLocale', function (to) {\n return '/' + i18n.locale + to\n})\n\n\n\nnew Vue({\n store,\n router,\n i18n,\n ...App\n}).$mount('#app')\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:_vm.className},[_vm._t(\"default\"),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.inputId || _vm.name}}),_vm._v(\" \"),_c('input-file')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFile.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./InputFile.vue?vue&type=template&id=4cbbf1c0&\"\nimport script from \"./InputFile.vue?vue&type=script&lang=js&\"\nexport * from \"./InputFile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{attrs:{\"type\":\"file\",\"name\":_vm.$parent.name,\"id\":_vm.$parent.inputId || _vm.$parent.name,\"accept\":_vm.$parent.accept,\"capture\":_vm.$parent.capture,\"disabled\":_vm.$parent.disabled,\"webkitdirectory\":_vm.$parent.directory && _vm.$parent.features.directory ? true : undefined,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory ? true : undefined,\"multiple\":_vm.$parent.multiple && _vm.$parent.features.html5},on:{\"change\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=08064f6e&\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileUpload.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./src/index.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///external \"Vue\"","webpack:///external \"marked\"","webpack:///external \"Vuex\"","webpack:///external \"Cropper\"","webpack:///external \"hljs\"","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./docs/docs/en.md","webpack:///./docs/docs/zh-cn.md","webpack:///./docs/views/Document.vue?d8b8","webpack:///./src/FileUpload.vue?8809","webpack:///./docs/views/examples/Full.vue?e893","webpack:///./docs/views/examples/Simple.vue?6b74","webpack:///./docs/views/examples/Avatar.vue?2202","webpack:///./docs/views/examples/Drag.vue?fa34","webpack:///./docs/views/examples/Multiple.vue?2d25","webpack:///./docs/views/examples/Chunk.vue?7f0a","webpack:///./docs/views/examples/Chunk.vue?9b50","webpack:///./docs/views/examples/Vuex.vue?098c","webpack:///./docs/views/App.vue?1892","webpack:///external \"VueRouter\"","webpack:///external \"VueI18n\"","webpack:///external \"ImageCompressor\"","webpack:///./docs/docs sync ^\\.\\/.*$","webpack:///./docs/views/Document.vue?e319","webpack:///./docs/views/Document.vue?5311","webpack:///./src/FileUpload.vue?7ff8","webpack:///./src/FileUpload.vue?7bf3","webpack:///./docs/views/examples/Full.vue?87cf","webpack:///./docs/views/examples/Full.vue?773e","webpack:///./docs/views/examples/Simple.vue?b2e2","webpack:///./docs/views/examples/Simple.vue?a75d","webpack:///./docs/views/examples/Avatar.vue?5c0e","webpack:///./docs/views/examples/Avatar.vue?6096","webpack:///./docs/views/examples/Drag.vue?7c76","webpack:///./docs/views/examples/Drag.vue?b103","webpack:///./docs/views/examples/Multiple.vue?0ed7","webpack:///./docs/views/examples/Multiple.vue?a355","webpack:///./docs/views/examples/Chunk.vue?f294","webpack:///./docs/views/examples/Chunk.vue?202d","webpack:///./docs/views/examples/Chunk.vue?e406","webpack:///./docs/views/examples/Chunk.vue?b919","webpack:///./docs/views/examples/Vuex.vue?bc35","webpack:///./docs/views/examples/Vuex.vue?e2ab","webpack:///./docs/views/App.vue?ee32","webpack:///./docs/views/App.vue?4f5a","webpack:///./docs/store.js","webpack:///./docs/i18n/index.js","webpack:///./docs/i18n/zh-cn.js","webpack:///./docs/i18n/en.js","webpack:///./docs/views/Router.vue","webpack:///./docs/views/Router.vue?a2e3","webpack:///./docs/views/Document.vue?561e","webpack:///docs/views/Document.vue","webpack:///./docs/views/Document.vue","webpack:///./docs/views/Document.vue?59fe","webpack:///./docs/views/Example.vue","webpack:///./docs/views/Example.vue?d2c8","webpack:///./docs/views/examples/Full.vue?d782","webpack:///docs/views/examples/Full.vue","webpack:///./docs/views/examples/Full.vue","webpack:///./docs/views/examples/Full.vue?28ef","webpack:///./docs/views/examples/Simple.vue?5bb5","webpack:///docs/views/examples/Simple.vue","webpack:///./docs/views/examples/Simple.vue","webpack:///./docs/views/examples/Simple.vue?8717","webpack:///./docs/views/examples/Avatar.vue?17d6","webpack:///docs/views/examples/Avatar.vue","webpack:///./docs/views/examples/Avatar.vue","webpack:///./docs/views/examples/Avatar.vue?9dac","webpack:///./docs/views/examples/Drag.vue?11b0","webpack:///docs/views/examples/Drag.vue","webpack:///./docs/views/examples/Drag.vue","webpack:///./docs/views/examples/Drag.vue?3ccc","webpack:///./docs/views/examples/Multiple.vue?9b18","webpack:///docs/views/examples/Multiple.vue","webpack:///./docs/views/examples/Multiple.vue","webpack:///./docs/views/examples/Multiple.vue?a83d","webpack:///./docs/views/examples/Chunk.vue?856c","webpack:///docs/views/examples/Chunk.vue","webpack:///./docs/views/examples/Chunk.vue","webpack:///./docs/views/examples/Chunk.vue?a29c","webpack:///./docs/views/examples/Vuex.vue?25d4","webpack:///docs/views/examples/Vuex.vue","webpack:///./docs/router.js","webpack:///./docs/views/examples/Vuex.vue","webpack:///./docs/views/examples/Vuex.vue?d009","webpack:///./docs/views/App.vue?38a5","webpack:///docs/views/App.vue","webpack:///./docs/views/App.vue","webpack:///./docs/views/App.vue?7c21","webpack:///./docs/index.js","webpack:///./src/FileUpload.vue?59f9","webpack:///./src/utils/request.js","webpack:///./src/chunk/ChunkUploadHandler.js","webpack:///./src/InputFile.vue?72d5","webpack:///src/InputFile.vue","webpack:///./src/InputFile.vue","webpack:///./src/InputFile.vue?316b","webpack:///src/FileUpload.vue","webpack:///./src/FileUpload.vue?b00f","webpack:///./src/FileUpload.vue"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","require","useSourceMap","list","toString","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","push","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","parentId","_isProduction","_options","styles","addStylesToDom","newList","mayRemove","domStyle","refs","j","parts","addStyle","createStyleElement","styleElement","createElement","type","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","css","media","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","Vue","marked","Vuex","Cropper","hljs","newStyles","part","locals","default","VueRouter","VueI18n","ImageCompressor","webpackContext","req","webpackContextResolve","e","code","keys","resolve","Store","strict","state","files","mutations","updateFiles","locale","messages","header","logo","home","examples","documents","blog","issues","github","en","title","example","full","simple","avatar","drag","multiple","vuex","chunk","_h","$createElement","_self","_c","mounted","$route","hash","el","window","scrollTo","offsetTop","computed","navs","children","level","token","text","replace","depth","navPrev","nav","rootNode","_vm","staticClass","attrs","_l","group","class","active","indexOf","_v","_s","child","_e","$t","directives","rawName","_f","components","FileUpload","data","accept","extensions","minSize","size","directory","drop","dropAutoHideTime","dropDirectory","addIndex","thread","postAction","putAction","headers","autoCompress","uploadAuto","isOption","addData","show","editFile","watch","newValue","oldValue","$refs","upload","error","$nextTick","editImage","autoCrop","cropper","methods","inputFilter","newFile","oldFile","prevent","file","substr","convertSize","Infinity","maxWidth","maxHeight","compress","blob","URL","createObjectURL","thumb","inputFile","progress","success","response","alert","message","onEditFileShow","onEditorFile","features","html5","arr","binStr","charCodeAt","File","onAddFolder","input","webkitdirectory","onclick","click","onAddData","on","$event","preventDefault","dropActive","expression","_m","style","width","speed","disabled","uploaded","ref","model","callback","$$v","domProps","target","composing","_q","modifiers","_n","$forceUpdate","Array","isArray","_i","$$a","$$el","$$c","checked","$$i","slice","modal","fade","$set","rotate","crop","clear","console","log","edit","aspectRatio","viewMode","destroy","editSave","url","files1","files2","upload1","upload2","chunkEnabled","chunkMinSize","chunkMaxActive","chunkMaxRetries","pause","hasChunksToUpload","resume","chunks","chunksUploading","chunksUploaded","retries","maxRetries","action","maxActive","inputUpdate","$store","commit","path","component","FullExampleComponent","SimpleExampleComponent","AvatarExampleComponent","DragExampleComponent","MultipleExampleComponent","ChunkExampleComponent","router","fallback","scrollBehavior","to","from","savedPosition","x","y","routes","i18n","RouterComponent","DocumentComponent","ExampleComponent","showLocale","showNav","params","$i18n","beforeUpdate","onLocale","setTimeout","collapse","fullPath","config","silent","devtools","Renderer","raw","pop","headerPrefix","setOptions","renderer","gfm","tables","breaks","pedantic","sanitize","smartLists","smartypants","highlight","lang","highlightjs","highlightAuto","directive","binding","vnode","className","markdown","innerHTML","selectorList","querySelectorAll","metaKey","ctrlKey","shiftKey","defaultPrevented","undefined","button","host","location","href","getAttribute","charAt","toFixed","store","App","$mount","createRequest","xhr","XMLHttpRequest","open","method","responseType","forEach","setRequestHeader","body","Promise","reject","onload","status","parse","err","onerror","send","sendRequest","ChunkUploadHandler","sessionId","chunkSize","speedInterval","start","end","fileSize","startOffset","stopChunks","abort","stopSpeedCalc","startChunking","promise","request","assign","startBody","phase","mime_type","fileType","fileName","then","res","session_id","end_offset","createChunks","catch","maxActiveChunks","uploadNextChunk","startSpeedCalc","uploadChunk","chunksToUpload","finish","updateFileProgress","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","append","sendFormRequest","uploadBody","start_offset","finishBody","lastUploadedBytes","setInterval","uploadedBytes","clearInterval","parseInt","completedProgress","uploadingProgress","reduce","min","change","$parent","addInputFile","$destroy","constructor","$el","inputId","capture","handler","InputFile","props","String","maximum","Number","customAction","Function","timeout","CHUNK_DEFAULT_OPTIONS","uploading","ondrop","maps","watchDrop","beforeDestroy","fileObject","chunkOptions","watchActive","watchDropActive","emitFile","oldMaps","emitInput","Blob","webkitRelativePath","relativePath","random","emitFilter","addFiles","newFiles","names","split","__vuex__","addDataTransfer","dataTransfer","items","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","entry","isFile","dirReader","readEntries","entries","file1","file2","index1","index2","splice","$emit","isPrevent","RegExp","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","HandlerClass","querys","queryString","uploadXhr","form","filename","onprogress","speedTime2","speedTime","speedLoaded","interval","complete","responseText","contentType","fn","onabort","ontimeout","keyCode","iframe","src","removeEventListener","onKeydown","contentWindow","doc","contentDocument","submit","dropElement","onDocumentDragenter","onDocumentDragleave","onDocumentDragover","onDocumentDrop","onDragover","onDrop","newDropActive","oldDropActive","dropTimeout","clearTimeout","dropAutoHide","dt","explicitOriginalTarget","_t"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 26);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","module.exports = require('./FileUpload.vue')\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \\n\\n```\\n\\n\\n** OR **\\n\\n\\n```js\\nimport FileUpload from 'vue-upload-component/src'\\n```\\n\\n\\nwebpack.config.js\\n\\n```js\\nconst nodeExternals = require('webpack-node-externals');\\n{\\n //.....\\n externals: [\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\n ]\\n //.....\\n}\\n```\\n\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals)\\n\\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/)\\n\\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\n\\n\\n\\n\\n## Options / Props\\n\\n\\n### input-id\\n\\nThe `id` attribute of the input tag\\n\\n* **Type:** `String`\\n\\n* **Default:** `this.name`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### name\\n\\nThe `name` attribute of the input tag\\n\\n* **Type:** `String`\\n\\n* **Default:** `file`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### post-action\\n\\n`POST` Request upload URL\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### put-action\\n\\n`PUT` Request upload URL\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n `put-action` is not empty Please give priority to` PUT` request\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### custom-action\\n\\nCustom upload method\\n\\n* **Type:** `async Function`\\n\\n* **Default:** `undefined`\\n\\n* **Details:**\\n\\n `custom-action` priority than `put-action, post-action`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n ```js\\n async function customAction(file, component) {\\n // return await component.uploadPut(file)\\n return await component.uploadHtml4(file)\\n }\\n ```\\n\\n\\n\\n\\n\\n### headers\\n\\nAttach `header` data\\n\\n* **Type:** `Object`\\n\\n* **Default:** `{}`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### data\\n\\n`POST request`: Append request `body`\\n`PUT request`: Append request `query`\\n\\n* **Type:** `Object`\\n\\n* **Default:** `{}`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### value, v-model\\n\\nFile List\\n\\n* **Type:** `Array`\\n\\n* **Default:** `[]`\\n\\n* **Details:**\\n\\n View **[`File`](#file)** details\\n > In order to prevent unpredictable errors, can not directly modify the `files`, please use [`add`](#instance-methods-add), [`update`](#instance-methods-update), [`remove`](#instance-methods-remove) method to modify\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### accept\\n\\nThe `accept` attribute of the input tag, MIME type\\n\\n* **Type:** `String`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### multiple\\n\\nThe `multiple` attribute of the input tag\\nWhether to allow multiple files to be selected\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Details:**\\n\\n If it is `false` file inside only one file will be automatically deleted\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### directory\\n\\nThe `directory` attribute of the input tag\\nWhether it is a upload folder\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Browser:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### extensions\\n\\nAllow upload file extensions\\n\\n* **Type:** `Array | String | RegExp`\\n\\n* **Default:** `undefined`\\n\\n* **Usage:**\\n ```html\\n \\n \\n \\n \\n \\n ```\\n\\n\\n\\n\\n### size\\n\\nAllow the maximum byte to upload\\n\\n* **Type:** `Number`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n `0` is equal to not limit\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### timeout\\n\\nUpload timeout time in milliseconds\\n\\n* **Type:** `Number`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n### maximum\\n\\nList the maximum number of files\\n\\n* **Type:** `Number`\\n\\n* **Default:** `props.multiple ? 0 : 1`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### thread\\n\\nAlso upload the number of files at the same time (number of threads)\\n\\n* **Type:** `Number`\\n\\n* **Default:** `1`\\n\\n* **Browser:** `> IE9`\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n### chunk-enabled\\n\\nWhether chunk uploads is enabled or not\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### chunk\\n\\nAll the options to handle chunk uploads\\n\\n* **Type:** `Object`\\n\\n* **Default:**\\n ```js\\n {\\n headers: {\\n 'Content-Type': 'application/json'\\n },\\n action: '',\\n minSize: 1048576,\\n maxActive: 3,\\n maxRetries: 5,\\n\\n // This is the default Handler implemented in this package\\n // you can use your own handler if your protocol is different\\n handler: ChunkUploadDefaultHandler\\n }\\n ```\\n\\n### drop\\n\\nDrag and drop upload\\n\\n* **Type:** `Boolean | Element | CSS selector`\\n\\n* **Default:** `false`\\n\\n* **Browser:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\n\\n* **Details:**\\n\\n If set to `true`, read the parent component as a container\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n### drop-auto-hide-time\\n\\nSpecify the seconds to automatically set `dropActive` to false.\\n\\n* **Type:** `Number`\\n\\n* **Default:** `1000`\\n\\n* **Details:**\\n\\n If this property is set to `0` the `dropActive` will keep `true` until the user drop the file or leave the drop area. If set to a positive number then the `dropActive` will be set to `false` after the time specified in this property in seconds.\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### drop-directory\\n\\nWhether to open the drag directory\\n\\n* **Type:** `Boolean`\\n\\n* **Default:** `true`\\n\\n* **Details:**\\n\\n If set to `false` filter out the directory\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n### add-index\\n\\n* **Type:** `Boolean, Number`\\n\\n* **Default:** `undefined`\\n\\n* **Version:** : `>=2.6.1`\\n\\n* **Details:**\\n\\n The default value of the `index` parameter for the [`add()`](#instance-methods-add) method\\n\\n* **Usage:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n## Options / Events\\n\\nThe files is changed to trigger the method\\nDefault for `v-model` binding\\n\\n### @input\\n* **Arguments:**\\n\\n * `files: Array`\\n\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n### @input-filter\\n\\nAdd, update, remove pre-filter\\n\\n* **Arguments:**\\n\\n * `newFile: File | Object | undefined` `Read and write`\\n * `oldFile: File | Object | undefined` `Read only`\\n * `prevent: Function` Call this function to prevent modification\\n\\n\\n* **Details:**\\n\\n If the `newFile` value is `undefined` 'is deleted\\n If the `oldFile` value is `undefined` 'is added\\n If `newFile`, `oldFile` is exist, it is updated\\n\\n > Synchronization modify `newFile`\\n > Asynchronous Please use `update`,` add`, `remove`,` clear` method\\n > Asynchronous Please set an error first to prevent being uploaded\\n\\n > Synchronization can not use `update`,` add`, `remove`,` clear` methods\\n > Asynchronous can not modify `newFile`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### @input-file\\n\\nAdd, update, remove after\\n\\n* **Arguments:**\\n\\n * `newFile: File | Object | undefined` `Read only`\\n * `oldFile: File | Object | undefined` `Read only`\\n\\n\\n* **Details:**\\n\\n If the `newFile` value is `undefined` 'is deleted\\n If the `oldFile` value is `undefined` 'is added\\n If `newFile`, `oldFile` is exist, it is updated\\n\\n\\n >You can use `update`,` add`, `remove`,` clear` methods in the event\\n >You can not modify the `newFile` object in the event\\n >You can not modify the `oldFile` object in the event\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n## Instance / Data\\n\\n### features\\n\\nUsed to determine the browser support features\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `{ html5: true, directory: false, drop: false }`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Support drag and drop upload\\n Support folder upload\\n Support for HTML5\\n \\n ```\\n\\n\\n\\n### active\\n\\nActivation or abort upload\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Start upload\\n Stop upload\\n \\n ```\\n\\n\\n\\n### dropActive\\n\\nIs dragging\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n Drag and drop here for upload\\n \\n ```\\n\\n\\n\\n\\n\\n### uploaded\\n\\nAll uploaded\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `true`\\n\\n* **Usage:**\\n ```html\\n \\n \\n All files have been uploaded\\n \\n ```\\n\\n\\n\\n\\n\\n## Instance / Methods\\n\\n\\n\\n### get()\\n\\nUse `id` to get a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **Result:** `File | Object | Boolean` There is a return file, object that otherwise returns `false`\\n\\n\\n\\n### add()\\n\\nAdd one or more files\\n\\n* **Arguments:**\\n\\n * `files: Array | File | window.File | Object` If it is an array of responses will be an array\\n * `index: Number | Boolean` = [`props.add-index`](#options-props-add-index) `true = ` Start, `false = ` End, `Number = ` Index\\n\\n\\n* **Result:** `Object | Array | Boolean` The incoming array is returned to the array otherwise the object or `false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n\\n### addInputFile()\\n\\nAdd the file selected by `` to the upload list\\n\\n* **Arguments:**\\n\\n * `el: HTMLInputElement` File element\\n\\n\\n* **Result:** `Array` Added list of files\\n\\n* **Version:** : `>=2.5.1`\\n\\n\\n\\n### addDataTransfer()\\n\\nAdd files that are dragged or pasted into the upload list\\n\\n* **Arguments:**\\n\\n * `dataTransfer: DataTransfer` Drag or paste data\\n\\n\\n* **Result:** `Promise>` Added list of files\\n\\n\\n* **Version:** : `>=2.5.1`\\n\\n\\n\\n### update()\\n\\nUpdate a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n * `data: Object` Updated data object\\n\\n\\n* **Result:** `Object | Boolean` Successfully returned `newFile` failed to return` false`\\n\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### remove()\\n\\nRemove a file object\\n\\n* **Arguments:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **Result:** `Object | Boolean` Successfully returned `oldFile` failed to return` false`\\n\\n* **Usage:**\\n ```html\\n \\n \\n ```\\n\\n### replace()\\n Replace the location of the two files\\n\\n* **Arguments:**\\n\\n * `id1: File | Object | String`\\n * `id2: File | Object | String`\\n\\n\\n* **Result:** `Boolean`\\n\\n\\n### clear()\\n\\nEmpty the file list\\n\\n* **Result:** `Boolean` Always return `true`\\n\\n\\n\\n## Instance / File\\n\\n\\n\\n> **File object in the `@input-filter` event outside the use of [`update`](#instance-methods-update) method**\\n\\n\\n\\n\\n### fileObject\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `true`\\n\\n* **Required:** `true`\\n\\n* **Default:** `true`\\n\\n* **Version:** : `>=2.6.0`\\n\\n* **Details:**\\n\\n If the attribute does not exist, the object will not be processed internally\\n If the attribute does not exist, it is not `File` but `Object`\\n\\n\\n\\n\\n### id\\n\\nFile ID\\n\\n* **Type:** `String | Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `Math.random().toString(36).substr(2)`\\n\\n* **Details:**\\n\\n >`id` can not be repeated\\n >Upload can not modify `id`\\n\\n\\n### size\\n\\nFile size\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `-1`\\n\\n* **Browser:** `> IE9`\\n\\n\\n### name\\n\\nFilename\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Details:**\\n\\n Format: `directory/filename.gif` `filename.gif`\\n\\n\\n\\n### type\\n\\nMIME type\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Browser:** `> IE9`\\n\\n* **Details:**\\n\\n Format: `image/gif` `image/png` `text/html`\\n\\n\\n\\n\\n### active\\n\\nActivation or abort upload\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n* **Details:**\\n\\n `true` = Upload\\n `false` = Abort\\n\\n\\n\\n\\n\\n\\n### error\\n\\nUpload failed error code\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** ` `\\n\\n* **Details:**\\n\\n Built-in\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\n\\n\\n\\n\\n### success\\n\\nWhether the upload was successful\\n\\n* **Type:** `Boolean`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `false`\\n\\n\\n### putAction\\n\\nCustomize the current file `PUT` URL\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.putAction`\\n\\n\\n\\n### postAction\\n\\nCustomize the current file `POST` URL\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.postAction`\\n\\n\\n\\n\\n### headers\\n\\nCustomize the current file `HTTP` Header\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.headers`\\n\\n\\n### data\\n\\nCustomize the current file `body` or` query` to attach content\\n\\n* **Type:** `Object`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.data`\\n\\n\\n### timeout\\n\\nCustomize the upload timeout for a current single file\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `this.timeout`\\n\\n\\n### response\\n\\nResponse data\\n\\n* **Type:** `Object | String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `{}`\\n\\n\\n\\n\\n### progress\\n\\nUpload progress\\n\\n* **Type:** `String`\\n\\n* **Read only:** `false`\\n\\n* **Default:** `0.00`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n### speed\\n\\nPer second upload speed\\n\\n* **Type:** `Number`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `0`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n\\n### xhr\\n\\n`HTML5` upload` XMLHttpRequest` object\\n\\n* **Type:** `XMLHttpRequest`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `> IE9`\\n\\n\\n\\n\\n### iframe\\n\\n`HTML4` upload` iframe` element\\n\\n* **Type:** `Element`\\n\\n* **Read only:** `true`\\n\\n* **Default:** `undefined`\\n\\n* **Browser:** `= IE9`\\n\"","module.exports = \"## 入门开始\\n\\n### NPM\\n\\n``` bash\\nnpm install vue-upload-component --save\\n```\\n\\n``` js\\nconst VueUploadComponent = require('vue-upload-component')\\nVue.component('file-upload', VueUploadComponent)\\n```\\n\\n### Curated\\n\\n**No data**\\n\\n\\n### 直接使用\\n\\n\\nunpkg\\n\\n``` html\\n\\n\\n\\n```\\n\\njsDelivr\\n\\n``` html\\n\\n\\n\\n```\\n\\n\\n### 简单的例子\\n\\n\\n\\n```html\\n\\n\\n\\n \\n Vue-upload-component Test\\n \\n \\n\\n\\n
\\n
    \\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\n
\\n \\n 上传文件\\n \\n \\n \\n
\\n\\n\\n\\n```\\n\\n\\n\\n### SSR (服务器同构)\\n\\n\\n```html\\n\\n\\n\\n```\\n\\n\\n** 或者 **\\n\\n\\n```js\\nimport FileUpload from 'vue-upload-component/src'\\n```\\n\\nwebpack.config.js\\n\\n```js\\nconst nodeExternals = require('webpack-node-externals');\\n{\\n //...\\n externals: [\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\n ]\\n //...\\n}\\n```\\n\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \\n\\n* [**`vue-hackernews` 演示**](https://github.com/lian-yue/vue-hackernews-2.0/) \\n\\n* [**浏览修改文件**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\n\\n\\n\\n\\n## 选项 / 属性\\n\\n\\n### input-id\\n\\ninput 标签的 `id` 属性\\n\\n* **类型:** `String`\\n\\n* **默认值:** `this.name`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### name\\n\\ninput标签的 `name` 属性\\n\\n* **类型:** `String`\\n\\n* **默认值:** `file`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### post-action\\n\\n`POST` 请求的上传URL\\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### put-action\\n\\n`PUT` 请求的上传URL\\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:** \\n\\n `put-action` 不为空请优先 `PUT` 请求 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n### custom-action\\n\\n自定义上传方法\\n\\n* **类型:** `async Function`\\n\\n* **默认值:** `undefined`\\n\\n* **详细:** \\n\\n `custom-action` 优先级高于 `put-action, post-action`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n ```js\\n async function customAction(file, component) {\\n // return await component.uploadPut(file)\\n return await component.uploadHtml4(file)\\n }\\n ```\\n\\n\\n\\n### headers\\n\\n自定义上传请求 `header` 数据\\n\\n* **类型:** `Object`\\n\\n* **默认值:** `{}`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### data\\n\\n`POST 请求`: 附加请求的 body \\n`PUT 请求`: 附加请求的 query \\n\\n* **类型:** `Object`\\n\\n* **默认值:** `{}`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### value, v-model\\n\\n文件列表\\n\\n* **类型:** `Array`\\n\\n* **默认值:** `[]`\\n\\n* **详细:** \\n\\n 浏览 **[`File`](#file)** 详细信息 \\n > 为了防止不可预知的错误,不可直接修改 `files`,请使用 [`add`](#实例-方法-add), [`update`](#实例-方法-update), [`remove`](#实例-方法-remove) 方法修改\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### accept\\n\\n表单的`accept`属性, MIME type \\n\\n* **类型:** `String`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n ```\\n\\n\\n\\n\\n\\n### multiple\\n\\n文件表单的 `multiple` 属性 \\n是否允许选择多个文件 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `false`\\n\\n* **详细:** \\n\\n 如果是 `false` `files` 里面最多只有一个文件 多的会自动删除 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n### directory\\n\\n文件表单的 `directory` 属性 \\n是否是上传文件夹 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `false`\\n\\n* **浏览器:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### extensions\\n\\n允许上传的文件后缀\\n\\n* **类型:** `Array | String | RegExp`\\n\\n* **默认值:** `undefined`\\n\\n* **示例:**\\n ```html\\n \\n \\n \\n \\n \\n ```\\n\\n\\n\\n\\n### size\\n\\n允许上传的最大字节\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:**\\n\\n `0` 等于不限制\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### timeout\\n\\n上传超时时间毫秒\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n### maximum\\n\\n列表最大文件数\\n\\n* **类型:** `Number`\\n\\n* **默认值:** `props.multiple ? 0 : 1`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n### thread\\n\\n同时并发上传的文件数量 线程数 \\n\\n* **类型:** `Number`\\n\\n* **默认值:** `1`\\n\\n* **浏览器:** `> IE9`\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### drop\\n\\n拖拽上传 \\n\\n* **类型:** `Boolean | Element | CSS selector`\\n\\n* **默认值:** `false`\\n\\n* **浏览器:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\n\\n* **详细:**\\n\\n 如果设置成 `true` 则读取父组件作为容器 \\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n\\n\\n### drop-directory\\n\\n是否开启拖拽目录 \\n\\n* **类型:** `Boolean`\\n\\n* **默认值:** `true`\\n\\n* **详细:**\\n\\n 如果设置成 `false` 则过滤掉目录\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n### add-index\\n\\n* **类型:** `Boolean, Number`\\n\\n* **默认值:** `undefined`\\n\\n* **版本:** `>= 2.6.1`\\n\\n* **详细:**\\n\\n [`add()`](#实例-方法-add) 方法 `index` 参数的默认值\\n\\n* **示例:**\\n ```html\\n \\n ```\\n\\n\\n\\n## 选项 / 事件\\n\\n文件被改变触发的方法 \\n默认用于`v-model`绑定\\n\\n### @input\\n* **参数:**\\n\\n * `files: Array`\\n\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n### @input-filter\\n\\nAdd, update, remove pre-filter \\n\\n* **参数:**\\n\\n * `newFile: File | Object | undefined` `读写`\\n * `oldFile: File | Object | undefined` `只读`\\n * `prevent: Function` 调用该方法 阻止修改\\n\\n\\n* **详细:**\\n\\n 如果 `newFile` 值为 `undefined` 则是删除 \\n 如果 `oldFile` 值为 `undefined` 则是添加 \\n 如果 `newFile`, `oldFile` 都存在则是更新\\n\\n > 事件内同步处理请直接修改 `newFile` \\n > 事件内异步处理请使用 `update`, `add`, `remove`, `clear` 方法 \\n > 异步请先设置一个错误以防止被上传\\n\\n > 同步不能使用 `update`, `add`, `remove`, `clear` 方法 \\n > 异步不能修改 `newFile`\\n\\n\\n* **示例:** \\n ```html\\n \\n \\n ```\\n\\n### @input-file\\n\\n添加,更新,移除 后\\n\\n* **参数:**\\n\\n * `newFile: File | Object | undefined` `只读`\\n * `oldFile: File | Object | undefined` `只读`\\n\\n\\n* **详细:**\\n\\n 如果 `newFile` 值为 `undefined` 则是删除 \\n 如果 `oldFile` 值为 `undefined` 则是添加 \\n 如果 `newFile`, `oldFile` 都存在则是更新\\n\\n >事件内可使用 `update`, `add`, `remove`, `clear` 方法 \\n >事件内不可修改 `newFile` 对象 \\n >事件内不可修改 `oldFile` 对象\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n\\n## 实例 / 数据\\n\\n### features\\n\\n用于判断浏览器支持的特性\\n\\n* **类型:** `Object`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `{ html5: true, directory: false, drop: false }`\\n\\n* **示例:**\\n ```html\\n \\n \\n 支持拖拽上传\\n 支持文件夹上传\\n 支持HTML5\\n \\n ```\\n\\n\\n\\n### active\\n\\n激活或停止上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n 开始上传\\n 停止上传\\n \\n ```\\n\\n\\n\\n### dropActive\\n\\n是否正在拖拽\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n 拖拽到这里上传\\n \\n ```\\n\\n\\n\\n\\n\\n### uploaded\\n\\n是否全部已上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `true`\\n\\n* **示例:**\\n ```html\\n \\n \\n 全部文件已上传完毕\\n \\n ```\\n\\n\\n\\n\\n\\n## 实例 / 方法\\n\\n\\n\\n### get()\\n\\n使用`id`获得某个对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **结果:** `File | Object | Boolean` 存在返回文件对象否则返回 `false`\\n\\n\\n\\n### add()\\n\\n添加一个或多个文件\\n\\n* **参数:**\\n\\n * `files: Array | File | window.File | Object` 如果它是一个数组的响应将是一个数组\\n * `index: Number | Boolean` = [`props.add-index`](#选项-属性-add-index) `true = ` 开始位置, `false = ` 结束位置, `Number = ` 下标位置\\n\\n\\n* **结果:** `Object | Array | Boolean` 传入的是数组返回数组否则对象或`false`\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n### addInputFile()\\n\\n把``选择的文件添加进上传列表 \\n\\n* **参数:**\\n\\n * `el: HTMLInputElement` 文件元素\\n\\n\\n* **结果:** `Array` 返回已添加的文件列表\\n\\n* **版本:** : `>=2.5.1`\\n\\n\\n\\n### addDataTransfer()\\n\\n把拖拽或者粘贴的数据的文件添加进上传列表 \\n\\n* **参数:**\\n\\n * `dataTransfer: DataTransfer` 拖拽或者粘贴的数据\\n\\n\\n* **结果:** `Promise>` 返回已添加的文件列表\\n\\n\\n* **版本:** : `>=2.5.1`\\n\\n\\n\\n### update()\\n\\n更新某个对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n * `data: Object` 更新的数据对象\\n\\n\\n* **结果:** `Object | Boolean` 成功返回 `newFile` 失败返回 `false`\\n\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n### remove()\\n\\n移除某个文件对象\\n\\n* **参数:**\\n\\n * `id: File | Object | String`\\n\\n\\n* **结果:** `Object | Boolean` 成功返回 `oldFile` 失败返回 `false`\\n\\n* **示例:**\\n ```html\\n \\n \\n ```\\n\\n\\n### replace()\\n 替换两个文件的位置\\n\\n* **参数:**\\n\\n * `id1: File | Object | String`\\n * `id2: File | Object | String`\\n\\n\\n* **结果:** `Boolean`\\n\\n\\n\\n### clear()\\n\\n清空文件列表\\n\\n* **结果:** `Boolean` 总是返回 `true`\\n\\n\\n\\n## 实例 / File\\n\\n\\n> **文件对象在`input-filter`事件外修改请使用 [`update`](#实例-方法-update) 方法**\\n\\n\\n### fileObject\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `true`\\n\\n* **Required:** `true`\\n\\n* **默认值:** `true`\\n\\n* **版本:** : `>=2.6.0`\\n\\n* **详细:**\\n\\n 如果属性不存在,则不会在内部处理该对象 \\n 如果属性不存在,它不是 `File` 而是 `Object`\\n\\n\\n\\n### id\\n\\n文件id\\n\\n* **类型:** `String | Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `Math.random().toString(36).substr(2)`\\n\\n* **详细:**\\n\\n >`id` can not be repeated \\n >Upload can not modify `id`\\n\\n\\n### size\\n\\n文件大小\\n\\n* **类型:** `Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `-1`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n### name\\n\\n文件名 \\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **详细:**\\n\\n 格式: `directory/filename.gif` `filename.gif` \\n\\n\\n\\n### type\\n\\nMIME类型\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **浏览器:** `> IE9`\\n\\n* **详细:**\\n\\n 格式: `image/gif` `image/png` `text/html`\\n\\n\\n\\n\\n### active\\n\\n激活或终止上传\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n* **详细:**\\n\\n `true` = 上传 \\n `false` = 停止 \\n\\n\\n\\n\\n\\n\\n### error\\n\\n上传失败错误代码\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** ` `\\n\\n* **详细:**\\n\\n 内置\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\n\\n\\n\\n\\n### success\\n\\n是否上传成功\\n\\n* **类型:** `Boolean`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `false`\\n\\n\\n### putAction\\n\\n自定义当前文件 `PUT` 地址\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.putAction`\\n\\n\\n\\n### postAction\\n\\n自定义当前文件 `POST` 地址\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.postAction`\\n\\n\\n\\n\\n### headers\\n\\n自定义当前文件 `HTTP` Header\\n\\n* **类型:** `Object`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.headers`\\n\\n\\n### data\\n\\n自定义当前文件 `body` 或 `query` 附加内容\\n\\n* **类型:** `Object`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.data`\\n\\n\\n### timeout\\n\\n自定义当前单个文件的上传超时时间\\n\\n* **类型:** `Number`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `this.timeout`\\n\\n\\n### response\\n\\n响应的数据\\n\\n* **类型:** `Object | String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `{}`\\n\\n\\n\\n\\n### progress\\n\\n上传进度\\n\\n* **类型:** `String`\\n\\n* **只读:** `false`\\n\\n* **默认值:** `0.00`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n### speed\\n\\n每秒的上传速度\\n\\n* **类型:** `Number`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `0`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n\\n### xhr\\n\\n`HTML5` 上传 `XMLHttpRequest` 对象\\n\\n* **类型:** `XMLHttpRequest`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `> IE9`\\n\\n\\n\\n\\n### iframe\\n\\n`HTML4` 上传 `iframe` 元素\\n\\n* **类型:** `Element`\\n\\n* **只读:** `true`\\n\\n* **默认值:** `undefined`\\n\\n* **浏览器:** `= IE9`\\n\"","// style-loader: Adds some css to the DOM by adding a \n\n","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=61209807&\"\nimport script from \"./Document.vue?vue&type=script&lang=js&\"\nexport * from \"./Document.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Document.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row flex-xl-nowrap\"},[_c('div',{staticClass:\"col-12 col-md-3 col-xl-2\",attrs:{\"id\":\"sidebar\"}},[_c('nav',{staticClass:\"collapse show\",attrs:{\"id\":\"sidebar-nav\"}},[_c('ul',{staticClass:\"nav\"},_vm._l((_vm.navs),function(group,index){return _c('li',{class:{'nav-item': true, active: (!_vm.$route.hash && !index) || _vm.$route.hash.indexOf(group.hash) === 1}},[_c('router-link',{class:{'nav-link': true, active: _vm.$route.hash.indexOf(group.hash) === 1},attrs:{\"active-class\":\"active\",\"to\":'#' + group.hash}},[_vm._v(_vm._s(group.name))]),_vm._v(\" \"),(group.children.length)?_c('ul',{staticClass:\"nav\"},_vm._l((group.children),function(child){return _c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":'#' + group.hash + '-' + child.hash}},[_vm._v(_vm._s(child.name))])],1)}),0):_vm._e()],1)}),0)])]),_vm._v(\" \"),_c('main',{staticClass:\"col-12 col-md-9 col-xl-10 py-md-3 pr-md-5 pl-md-5\",attrs:{\"id\":\"main\",\"role\":\"main\"}},[_c('h1',{staticClass:\"document-title\",attrs:{\"id\":\"document-title\"}},[_vm._v(_vm._s(_vm.$t('document.title')))]),_vm._v(\" \"),_c('div',{directives:[{name:\"markdown\",rawName:\"v-markdown\"}],staticClass:\"document-content\"},[_vm._v(_vm._s(_vm.document))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Example.vue?vue&type=template&id=02498012&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row flex-xl-nowrap\"},[_c('div',{staticClass:\"col-12 col-md-3 col-xl-2\",attrs:{\"id\":\"sidebar\"}},[_c('nav',{staticClass:\"collapse show\",attrs:{\"id\":\"sidebar-nav\"}},[_c('ul',{staticClass:\"nav\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/full')}},[_vm._v(_vm._s(_vm.$t('example.full')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/simple')}},[_vm._v(_vm._s(_vm.$t('example.simple')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/avatar')}},[_vm._v(_vm._s(_vm.$t('example.avatar')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/drag')}},[_vm._v(_vm._s(_vm.$t('example.drag')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/multiple')}},[_vm._v(_vm._s(_vm.$t('example.multiple')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/chunk')}},[_vm._v(_vm._s(_vm.$t('example.chunk')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples/vuex')}},[_vm._v(_vm._s(_vm.$t('example.vuex')))])],1)])])]),_vm._v(\" \"),_c('main',{staticClass:\"col-12 col-md-9 col-xl-10 py-md-3 pr-md-5 pl-md-5\",attrs:{\"id\":\"main\",\"role\":\"main\"}},[_c('router-view')],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Full.vue?vue&type=template&id=499d3bb7&\"\nimport script from \"./Full.vue?vue&type=script&lang=js&\"\nexport * from \"./Full.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Full.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-full\"},[_c('button',{staticClass:\"btn btn-danger float-right btn-is-option\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.isOption = !_vm.isOption}}},[_c('i',{staticClass:\"fa fa-cog\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Options\\n \")]),_vm._v(\" \"),_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Full Example\")]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isOption),expression:\"!isOption\"}],staticClass:\"upload\"},[_c('div',{staticClass:\"table-responsive\"},[_c('table',{staticClass:\"table table-hover\"},[_vm._m(0),_vm._v(\" \"),_c('tbody',[(!_vm.files.length)?_c('tr',[_c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"text-center p-5\"},[_vm._m(1),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-lg btn-primary\",attrs:{\"for\":_vm.name}},[_vm._v(\"Select Files\")])])])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.files),function(file,index){return _c('tr',{key:file.id},[_c('td',[_vm._v(_vm._s(index))]),_vm._v(\" \"),_c('td',[(file.thumb)?_c('img',{attrs:{\"src\":file.thumb,\"width\":\"40\",\"height\":\"auto\"}}):_c('span',[_vm._v(\"No Image\")])]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"filename\"},[_vm._v(\"\\n \"+_vm._s(file.name)+\"\\n \")]),_vm._v(\" \"),(file.active || file.progress !== '0.00')?_c('div',{staticClass:\"progress\"},[_c('div',{class:{'progress-bar': true, 'progress-bar-striped': true, 'bg-danger': file.error, 'progress-bar-animated': file.active},style:({width: file.progress + '%'}),attrs:{\"role\":\"progressbar\"}},[_vm._v(_vm._s(file.progress)+\"%\")])]):_vm._e()]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.speed)))]),_vm._v(\" \"),(file.error)?_c('td',[_vm._v(_vm._s(file.error))]):(file.success)?_c('td',[_vm._v(\"success\")]):(file.active)?_c('td',[_vm._v(\"active\")]):_c('td'),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"btn-group\"},[_c('button',{staticClass:\"btn btn-secondary btn-sm dropdown-toggle\",attrs:{\"type\":\"button\"}},[_vm._v(\"\\n Action\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\"},[_c('a',{class:{'dropdown-item': true, disabled: file.active || file.success || file.error === 'compressing'},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.active || file.success || file.error === 'compressing' ? false : _vm.onEditFileShow(file)}}},[_vm._v(\"Edit\")]),_vm._v(\" \"),_c('a',{class:{'dropdown-item': true, disabled: !file.active},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.active ? _vm.$refs.upload.update(file, {error: 'cancel'}) : false}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),(file.active)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: false})}}},[_vm._v(\"Abort\")]):(file.error && file.error !== 'compressing' && _vm.$refs.upload.features.html5)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.update(file, {active: true, error: '', progress: '0.00'})}}},[_vm._v(\"Retry upload\")]):_c('a',{class:{'dropdown-item': true, disabled: file.success || file.error === 'compressing'},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();file.success || file.error === 'compressing' ? false : _vm.$refs.upload.update(file, {active: true})}}},[_vm._v(\"Upload\")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\"}),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.remove(file)}}},[_vm._v(\"Remove\")])])])])])})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"example-foorer\"},[_c('div',{staticClass:\"footer-status float-right\"},[_vm._v(\"\\n Drop: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.drop : false)+\",\\n Active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.active : false)+\",\\n Uploaded: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.uploaded : true)+\",\\n Drop active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.dropActive : false)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary dropdown-toggle\",attrs:{\"post-action\":_vm.postAction,\"put-action\":_vm.putAction,\"extensions\":_vm.extensions,\"accept\":_vm.accept,\"multiple\":_vm.multiple,\"directory\":_vm.directory,\"size\":_vm.size || 0,\"thread\":_vm.thread < 1 ? 1 : (_vm.thread > 5 ? 5 : _vm.thread),\"headers\":_vm.headers,\"data\":_vm.data,\"drop\":_vm.drop,\"drop-auto-hide-time\":_vm.dropAutoHideTime,\"drop-directory\":_vm.dropDirectory,\"add-index\":_vm.addIndex},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\"},[_c('label',{staticClass:\"dropdown-item\",attrs:{\"for\":_vm.name}},[_vm._v(\"Add files\")]),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.onAddFolder}},[_vm._v(\"Add folder\")]),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = true}}},[_vm._v(\"Add data\")])])],1),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOption),expression:\"isOption\"}],staticClass:\"option\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"accept\"}},[_vm._v(\"Accept:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.accept),expression:\"accept\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"accept\"},domProps:{\"value\":(_vm.accept)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.accept=$event.target.value}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload mime type\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"extensions\"}},[_vm._v(\"Extensions:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.extensions),expression:\"extensions\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"extensions\"},domProps:{\"value\":(_vm.extensions)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.extensions=$event.target.value}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload file extension\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"PUT Upload:\")]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.putAction),expression:\"putAction\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"name\":\"put-action\",\"id\":\"put-action\",\"value\":\"\"},domProps:{\"checked\":_vm._q(_vm.putAction,\"\")},on:{\"change\":function($event){_vm.putAction=\"\"}}}),_vm._v(\" Off\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.putAction),expression:\"putAction\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"name\":\"put-action\",\"id\":\"put-action\",\"value\":\"/upload/put\"},domProps:{\"checked\":_vm._q(_vm.putAction,\"/upload/put\")},on:{\"change\":function($event){_vm.putAction=\"/upload/put\"}}}),_vm._v(\" On\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"After the shutdown, use the POST method to upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"thread\"}},[_vm._v(\"Thread:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.thread),expression:\"thread\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"max\":\"5\",\"min\":\"1\",\"id\":\"thread\"},domProps:{\"value\":(_vm.thread)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.thread=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Also upload the number of files at the same time (number of threads)\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"size\"}},[_vm._v(\"Max size:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.size),expression:\"size\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"size\"},domProps:{\"value\":(_vm.size)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.size=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"minSize\"}},[_vm._v(\"Min size:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.minSize),expression:\"minSize\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"minSize\"},domProps:{\"value\":(_vm.minSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.minSize=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"autoCompress\"}},[_vm._v(\"Automatically compress:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.autoCompress),expression:\"autoCompress\",modifiers:{\"number\":true}}],staticClass:\"form-control\",attrs:{\"type\":\"number\",\"min\":\"0\",\"id\":\"autoCompress\"},domProps:{\"value\":(_vm.autoCompress)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.autoCompress=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_vm._v(\" \"),(_vm.autoCompress > 0)?_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"More than \"+_vm._s(_vm._f(\"formatSize\")(_vm.autoCompress))+\" files are automatically compressed\")]):_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Set up automatic compression\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addIndex),expression:\"addIndex\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"add-index\"},domProps:{\"checked\":Array.isArray(_vm.addIndex)?_vm._i(_vm.addIndex,null)>-1:(_vm.addIndex)},on:{\"change\":function($event){var $$a=_vm.addIndex,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.addIndex=$$a.concat([$$v]))}else{$$i>-1&&(_vm.addIndex=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.addIndex=$$c}}}}),_vm._v(\" Start position to add\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Add a file list to start the location to add\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.drop),expression:\"drop\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"drop\"},domProps:{\"checked\":Array.isArray(_vm.drop)?_vm._i(_vm.drop,null)>-1:(_vm.drop)},on:{\"change\":function($event){var $$a=_vm.drop,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.drop=$$a.concat([$$v]))}else{$$i>-1&&(_vm.drop=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.drop=$$c}}}}),_vm._v(\" Drop\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Drag and drop upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dropDirectory),expression:\"dropDirectory\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"drop-directory\"},domProps:{\"checked\":Array.isArray(_vm.dropDirectory)?_vm._i(_vm.dropDirectory,null)>-1:(_vm.dropDirectory)},on:{\"change\":function($event){var $$a=_vm.dropDirectory,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.dropDirectory=$$a.concat([$$v]))}else{$$i>-1&&(_vm.dropDirectory=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.dropDirectory=$$c}}}}),_vm._v(\" Drop directory\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Not checked, filter the dragged folder\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-check\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.uploadAuto),expression:\"uploadAuto\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"id\":\"upload-auto\"},domProps:{\"checked\":Array.isArray(_vm.uploadAuto)?_vm._i(_vm.uploadAuto,null)>-1:(_vm.uploadAuto)},on:{\"change\":function($event){var $$a=_vm.uploadAuto,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.uploadAuto=$$a.concat([$$v]))}else{$$i>-1&&(_vm.uploadAuto=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.uploadAuto=$$c}}}}),_vm._v(\" Auto start\\n \")])]),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Automatically activate upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-primary btn-lg btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.isOption = !_vm.isOption}}},[_vm._v(\"Confirm\")])])]),_vm._v(\" \"),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.addData.show}}),_vm._v(\" \"),_c('div',{class:{modal: true, fade: true, show: _vm.addData.show},attrs:{\"id\":\"modal-add-data\",\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\"Add data\")]),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onAddData($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.name),expression:\"addData.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"name\",\"placeholder\":\"Please enter a file name\"},domProps:{\"value\":(_vm.addData.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"name\", $event.target.value)}}}),_vm._v(\" \"),_vm._m(2)]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"type\"}},[_vm._v(\"Type:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.type),expression:\"addData.type\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"type\",\"placeholder\":\"Please enter the MIME type\"},domProps:{\"value\":(_vm.addData.type)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"type\", $event.target.value)}}}),_vm._v(\" \"),_vm._m(3)]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"content\"}},[_vm._v(\"Content:\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.addData.content),expression:\"addData.content\"}],staticClass:\"form-control\",attrs:{\"required\":\"\",\"id\":\"content\",\"rows\":\"3\",\"placeholder\":\"Please enter the file contents\"},domProps:{\"value\":(_vm.addData.content)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.addData, \"content\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = false}}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_vm._v(\" \"),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.editFile.show}}),_vm._v(\" \"),_c('div',{class:{modal: true, fade: true, show: _vm.editFile.show},attrs:{\"id\":\"modal-edit-file\",\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog modal-lg\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\"Edit file\")]),_vm._v(\" \"),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.editFile.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onEditorFile($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editFile.name),expression:\"editFile.name\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"required\":\"\",\"id\":\"name\",\"placeholder\":\"Please enter a file name\"},domProps:{\"value\":(_vm.editFile.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.editFile, \"name\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.editFile.show && _vm.editFile.blob && _vm.editFile.type && _vm.editFile.type.substr(0, 6) === 'image/')?_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"Image: \")]),_vm._v(\" \"),_c('div',{staticClass:\"edit-image\"},[_c('img',{ref:\"editImage\",attrs:{\"src\":_vm.editFile.blob}})]),_vm._v(\" \"),_c('div',{staticClass:\"edit-image-tool\"},[_c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.rotate(-90)\"},on:{\"click\":function($event){return _vm.editFile.cropper.rotate(-90)}}},[_c('i',{staticClass:\"fa fa-undo\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.rotate(90)\"},on:{\"click\":function($event){return _vm.editFile.cropper.rotate(90)}}},[_c('i',{staticClass:\"fa fa-repeat\",attrs:{\"aria-hidden\":\"true\"}})])]),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.crop()\"},on:{\"click\":function($event){return _vm.editFile.cropper.crop()}}},[_c('i',{staticClass:\"fa fa-check\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"title\":\"cropper.clear()\"},on:{\"click\":function($event){return _vm.editFile.cropper.clear()}}},[_c('i',{staticClass:\"fa fa-remove\",attrs:{\"aria-hidden\":\"true\"}})])])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.editFile.show = false}}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_vm._v(\" \"),_vm._m(4)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"#\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Thumb\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Name\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Size\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Speed\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Status\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Action\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',[_vm._v(\"Drop files anywhere to upload\"),_c('br'),_vm._v(\"or\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Such as \"),_c('code',[_vm._v(\"filename.txt\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Such as \"),_c('code',[_vm._v(\"text/plain\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Full.vue\"}},[_vm._v(\"/docs/views/examples/Full.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Simple.vue?vue&type=template&id=3576474f&\"\nimport script from \"./Simple.vue?vue&type=script&lang=js&\"\nexport * from \"./Simple.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Simple.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-simple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Simple Example\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Simple.vue\"}},[_vm._v(\"/docs/views/examples/Simple.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=7343c9e0&\"\nimport script from \"./Avatar.vue?vue&type=script&lang=js&\"\nexport * from \"./Avatar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Avatar.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-avatar\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.edit),expression:\"!edit\"}],staticClass:\"avatar-upload\"},[_c('div',{staticClass:\"text-center p-2\"},[_c('label',{attrs:{\"for\":\"avatar\"}},[_c('img',{staticClass:\"rounded-circle\",attrs:{\"src\":_vm.files.length ? _vm.files[0].url : 'https://www.gravatar.com/avatar/default?s=200&r=pg&d=mm'}}),_vm._v(\" \"),_vm._m(0)])]),_vm._v(\" \"),_c('div',{staticClass:\"text-center p-2\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"name\":\"avatar\",\"post-action\":\"/upload/post\",\"drop\":!_vm.edit},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_vm._v(\"\\n Upload avatar\\n \")])],1)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.files.length && _vm.edit),expression:\"files.length && edit\"}],staticClass:\"avatar-edit\"},[(_vm.files.length)?_c('div',{staticClass:\"avatar-edit-image\"},[_c('img',{ref:\"editImage\",attrs:{\"src\":_vm.files[0].url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text-center p-4\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$refs.upload.clear($event)}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editSave($event)}}},[_vm._v(\"Save\")])])]),_vm._v(\" \"),_vm._m(1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h4',{staticClass:\"pt-2\"},[_vm._v(\"or\"),_c('br'),_vm._v(\"Drop files anywhere to upload\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Avatar.vue\"}},[_vm._v(\"/docs/views/examples/Avatar.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Drag.vue?vue&type=template&id=6899f793&\"\nimport script from \"./Drag.vue?vue&type=script&lang=js&\"\nexport * from \"./Drag.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Drag.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-drag\"},[_c('div',{staticClass:\"upload\"},[(_vm.files.length)?_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0):_c('ul',[_vm._m(0)]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.$refs.upload && _vm.$refs.upload.dropActive),expression:\"$refs.upload && $refs.upload.dropActive\"}],staticClass:\"drop-active\"},[_c('h3',[_vm._v(\"Drop files to upload\")])]),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"multiple\":true,\"drop\":true,\"drop-directory\":true},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"text-center p-5\"},[_c('h4',[_vm._v(\"Drop files anywhere to upload\"),_c('br'),_vm._v(\"or\")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-lg btn-primary\",attrs:{\"for\":\"file\"}},[_vm._v(\"Select Files\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Drag.vue\"}},[_vm._v(\"/docs/views/examples/Drag.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=script&lang=js&\"","\n\n\n\n","import { render, staticRenderFns } from \"./Multiple.vue?vue&type=template&id=3d82a174&\"\nimport script from \"./Multiple.vue?vue&type=script&lang=js&\"\nexport * from \"./Multiple.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Multiple.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-multiple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Multiple instances\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files1),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload1\",staticClass:\"btn btn-primary\",attrs:{\"input-id\":\"file1\",\"post-action\":\"/upload/post\"},model:{value:(_vm.files1),callback:function ($$v) {_vm.files1=$$v},expression:\"files1\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file1\"}},[_vm._v(\"Label Select files\")]),_vm._v(\" \"),(!_vm.$refs.upload1 || !_vm.$refs.upload1.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload1.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload1.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files2),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload2\",staticClass:\"btn btn-primary\",attrs:{\"input-id\":\"file2\",\"post-action\":\"/upload/post\"},model:{value:(_vm.files2),callback:function ($$v) {_vm.files2=$$v},expression:\"files2\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file2\"}},[_vm._v(\"Label Select files\")]),_vm._v(\" \"),(!_vm.$refs.upload2 || !_vm.$refs.upload2.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload2.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload2.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Multiple.vue\"}},[_vm._v(\"/docs/views/examples/Multiple.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./Chunk.vue?vue&type=template&id=c205936e&scoped=true&\"\nimport script from \"./Chunk.vue?vue&type=script&lang=js&\"\nexport * from \"./Chunk.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Chunk.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./Chunk.vue?vue&type=style&index=1&id=c205936e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c205936e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-simple\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Chunk Upload Example\")]),_vm._v(\" \"),_c('p',[_vm._v(\"When using chunk uploads, the file will be uploaded in different parts (or chunks). All the files with a size higher than the set in the input will be uploaded using this method.\")]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('p',[_vm._v(\"You can also pause / resume the upload process.\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('div',{staticClass:\"form-horizontal\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"col-sm-offset-2 col-sm-10\"},[_c('div',{staticClass:\"checkbox\"},[_c('label',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkEnabled),expression:\"chunkEnabled\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.chunkEnabled)?_vm._i(_vm.chunkEnabled,null)>-1:(_vm.chunkEnabled)},on:{\"change\":function($event){var $$a=_vm.chunkEnabled,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.chunkEnabled=$$a.concat([$$v]))}else{$$i>-1&&(_vm.chunkEnabled=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.chunkEnabled=$$c}}}}),_vm._v(\" Use chunk upload\\n \")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMinSize\"}},[_vm._v(\"Min Size\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMinSize),expression:\"chunkMinSize\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMinSize\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMinSize)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMinSize=$event.target.value}}}),_vm._v(\" \"),_c('span',{staticClass:\"input-group-addon\"},[_vm._v(\"MB\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMaxActive\"}},[_vm._v(\"Max Active Chunks\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMaxActive),expression:\"chunkMaxActive\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMaxActive\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMaxActive)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMaxActive=$event.target.value}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"col-sm-2 control-label\",attrs:{\"for\":\"inputMaxRetries\"}},[_vm._v(\"Max Chunk Retries\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-10\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.chunkMaxRetries),expression:\"chunkMaxRetries\"}],staticClass:\"form-control\",attrs:{\"id\":\"inputMaxRetries\",\"type\":\"number\"},domProps:{\"value\":(_vm.chunkMaxRetries)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.chunkMaxRetries=$event.target.value}}})])])]),_vm._v(\" \"),_c('table',{staticClass:\"table table-striped table-condensed\"},[_vm._m(1),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.files),function(file){return [_c('tr',{key:file.id + '-info'},[_c('td',[_vm._v(_vm._s(file.name))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.progress)+\"%\")]),_vm._v(\" \"),(file.error)?_c('td',[_vm._v(_vm._s(file.error))]):(file.success)?_c('td',[_vm._v(\"Success\")]):(file.active)?_c('td',[_vm._v(\"Active\")]):_c('td',[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',[(file.chunk)?[(file.active)?_c('button',{staticClass:\"btn btn-sm btn-danger\",on:{\"click\":function($event){return file.chunk.pause()}}},[_c('i',{staticClass:\"fa fa-pause\"})]):_vm._e(),_vm._v(\" \"),(!file.active && file.chunk.hasChunksToUpload)?_c('button',{staticClass:\"btn btn-sm btn-primary\",on:{\"click\":function($event){return file.chunk.resume()}}},[_c('i',{staticClass:\"fa fa-play\"})]):_vm._e()]:_vm._e()],2),_vm._v(\" \"),(file.chunk)?[_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunks.length))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunksUploading.length))]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(_vm._s(file.chunk.chunksUploaded.length))])]:[_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")]),_vm._v(\" \"),_c('td',{staticClass:\"text-right\"},[_vm._v(\" - \")])]],2),_vm._v(\" \"),_c('tr',{key:file.id + '-loading'},[_c('td',{attrs:{\"colspan\":\"8\"}},[(file.chunk)?_c('div',{staticClass:\"chunk-loading\"},_vm._l((file.chunk.chunks),function(chunk,index){return _c('span',{key:index,staticClass:\"chunk-loading-part\",class:{'chunk-loading-part__uploaded': chunk.uploaded}},[(chunk.retries != file.chunk.maxRetries)?[_vm._v(\"\\n \"+_vm._s(file.chunk.maxRetries - chunk.retries)+\" error(s)\\n \")]:_vm._e()],2)}),0):_vm._e()])])]})],2)]),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"chunk-enabled\":_vm.chunkEnabled,\"chunk\":{\n action: '/upload/chunk',\n minSize: _vm.chunkMinSize * 1048576,\n maxActive: _vm.chunkMaxActive,\n maxRetries: _vm.chunkMaxRetries\n },\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10},on:{\"input-filter\":_vm.inputFilter,\"input-file\":_vm.inputFile},model:{value:(_vm.files),callback:function ($$v) {_vm.files=$$v},expression:\"files\"}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")])],1)]),_vm._v(\" \"),_vm._m(2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',[_vm._v(\"You will be able to see the different parts being uploaded individually. Some parts might fail, and the package is prepared to \"),_c('em',[_vm._v(\"retry\")]),_vm._v(\" up to a certain amount of times.\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',{staticClass:\"thead-dark\"},[_c('tr',[_c('th',[_vm._v(\"Name\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Size\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Progress\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Status\")]),_vm._v(\" \"),_c('th',[_vm._v(\"Pause\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-center\",attrs:{\"colspan\":\"3\"}},[_vm._v(\"Chunks\")])]),_vm._v(\" \"),_c('tr',[_c('th',{attrs:{\"colspan\":\"5\"}}),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Total\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Active\")]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\"},[_vm._v(\"Completed\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Chunk.vue\"}},[_vm._v(\"/docs/views/examples/Chunk.vue\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=script&lang=js&\"","\n\n\n\n","// import Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nimport i18n from './i18n'\nimport RouterComponent from './views/Router'\nimport DocumentComponent from './views/Document'\nimport ExampleComponent from './views/Example'\n\nimport FullExampleComponent from './views/examples/Full'\nimport SimpleExampleComponent from './views/examples/Simple'\nimport AvatarExampleComponent from './views/examples/Avatar'\nimport DragExampleComponent from './views/examples/Drag'\nimport MultipleExampleComponent from './views/examples/Multiple'\nimport ChunkExampleComponent from './views/examples/Chunk'\nimport VuexExampleComponent from './views/examples/Vuex'\n\n\n\n// Vue.use(VueRouter)\n\n\nlet examples = [\n {\n path: '',\n component: FullExampleComponent,\n },\n {\n path: 'full',\n component: FullExampleComponent,\n },\n {\n path: 'simple',\n component: SimpleExampleComponent,\n },\n {\n path: 'avatar',\n component: AvatarExampleComponent,\n },\n {\n path: 'drag',\n component: DragExampleComponent,\n },\n {\n path: 'multiple',\n component: MultipleExampleComponent,\n },\n {\n path: 'chunk',\n component: ChunkExampleComponent,\n },\n {\n path: 'vuex',\n component: VuexExampleComponent,\n },\n]\n\n\n\nconst router = new VueRouter({\n mode: 'hash',\n fallback: false,\n scrollBehavior(to, from, savedPosition) {\n if (savedPosition) {\n return savedPosition\n } else if (to.hash) {\n let el = document.querySelector(to.hash)\n return { x: 0, y: el ? el.offsetTop : 0 }\n } else {\n return { x: 0, y: 0 }\n }\n },\n routes: [\n {\n path: '/:locale(' + Object.keys(i18n.messages).join('|') + ')?',\n component: RouterComponent,\n children: [\n {\n path: 'documents',\n component: DocumentComponent,\n },\n {\n path: 'examples',\n component: ExampleComponent,\n children: examples,\n },\n {\n path: '',\n component: ExampleComponent,\n children: examples,\n },\n ]\n },\n ]\n})\nexport default router\n","import { render, staticRenderFns } from \"./Vuex.vue?vue&type=template&id=765a8e49&\"\nimport script from \"./Vuex.vue?vue&type=script&lang=js&\"\nexport * from \"./Vuex.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Vuex.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"example-vuex\"},[_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Vuex Example\")]),_vm._v(\" \"),_c('div',{staticClass:\"upload\"},[_c('ul',_vm._l((_vm.files),function(file,index){return _c('li',{key:file.id},[_c('span',[_vm._v(_vm._s(file.name))]),_vm._v(\" -\\n \"),_c('span',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_vm._v(\" -\\n \"),(file.error)?_c('span',[_vm._v(_vm._s(file.error))]):(file.success)?_c('span',[_vm._v(\"success\")]):(file.active)?_c('span',[_vm._v(\"active\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])}),0),_vm._v(\" \"),_c('div',{staticClass:\"example-btn\"},[_c('file-upload',{ref:\"upload\",staticClass:\"btn btn-primary\",attrs:{\"post-action\":\"/upload/post\",\"extensions\":\"gif,jpg,jpeg,png,webp\",\"accept\":\"image/png,image/gif,image/jpeg,image/webp\",\"multiple\":true,\"size\":1024 * 1024 * 10,\"value\":_vm.files},on:{\"input\":_vm.inputUpdate}},[_c('i',{staticClass:\"fa fa-plus\"}),_vm._v(\"\\n Select files\\n \")]),_vm._v(\" \"),(!_vm.$refs.upload || !_vm.$refs.upload.active)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = true}}},[_c('i',{staticClass:\"fa fa-arrow-up\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Start Upload\\n \")]):_c('button',{staticClass:\"btn btn-danger\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.active = false}}},[_c('i',{staticClass:\"fa fa-stop\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\"\\n Stop Upload\\n \")])],1)]),_vm._v(\" \"),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pt-5\"},[_vm._v(\"\\n Source code: \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/views/examples/Vuex.vue\"}},[_vm._v(\"/docs/views/examples/Vuex.vue\")]),_vm._v(\", \"),_c('a',{attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/blob/master/docs/store.js\"}},[_vm._v(\"/docs/store.js\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=521aa91e&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('header',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-dark\",attrs:{\"id\":\"header\"}},[_c('router-link',{staticClass:\"navbar-brand\",attrs:{\"exact\":true,\"to\":_vm._f(\"toLocale\")('/')}},[_vm._v(_vm._s(_vm.$t('header.logo')))]),_vm._v(\" \"),_c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.showNav = !_vm.showNav}}},[_c('span',{staticClass:\"navbar-toggler-icon\"})]),_vm._v(\" \"),_c('nav',{class:{collapse: true, 'navbar-collapse': true, show: _vm.showNav},attrs:{\"id\":\"navbar\"}},[_c('ul',{staticClass:\"navbar-nav\"},[_c('li',{staticClass:\"nav-item\"},[_c('router-link',{class:'nav-link' + (_vm.$route.path === '/' ? ' active' : ''),attrs:{\"active-class\":\"active\",\"exact\":true,\"to\":_vm._f(\"toLocale\")('/')}},[_vm._v(_vm._s(_vm.$t('header.home')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/documents')}},[_vm._v(_vm._s(_vm.$t('header.documents')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('router-link',{staticClass:\"nav-link\",attrs:{\"active-class\":\"active\",\"to\":_vm._f(\"toLocale\")('/examples')}},[_vm._v(_vm._s(_vm.$t('header.examples')))])],1),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"rel\":\"license noopener\",\"href\":\"https://www.lianyue.org\",\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('header.blog')))])])]),_vm._v(\" \"),_c('ul',{staticClass:\"navbar-nav ml-md-auto\"},[_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onLocale(true)},\"focus\":function($event){return _vm.onLocale(true)},\"blur\":function($event){return _vm.onLocale(false)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.locale'))+\"\\n \")]),_vm._v(\" \"),_c('div',{class:{'dropdown-menu': true, show: _vm.showLocale},on:{\"blur\":function($event){return _vm.onLocale(false)}}},_vm._l((_vm.locale),function(value,name){return _c('router-link',{key:name,staticClass:\"dropdown-item\",attrs:{\"to\":'/' + name + (_vm.$route.params.locale ? _vm.$route.fullPath.substr(_vm.$route.params.locale.length + 1) : _vm.$route.fullPath)}},[_vm._v(_vm._s(value))])}),1)]),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component/issues\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.issues'))+\"\\n \")])]),_vm._v(\" \"),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://github.com/lian-yue/vue-upload-component\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('header.github'))+\"\\n \")])])])])],1),_vm._v(\" \"),_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport marked from 'marked'\nimport highlightjs from 'highlight.js'\nimport store from './store'\nimport router from './router'\nimport i18n from './i18n'\nimport App from './views/App'\n\nVue.config.silent = false\nVue.config.devtools = true\n\n\nclass Renderer extends marked.Renderer {\n heading(text, level, raw) {\n let rawName = raw.toLowerCase().replace(/([\\u0000-\\u002F\\u003A-\\u0060\\u007B-\\u007F]+)/g, '-').replace(/^\\-+|\\-+$/, '')\n\n if (!this.options.headers) {\n this.options.headers = []\n }\n while (this.options.headers.length >= level) {\n this.options.headers.pop()\n }\n let parent = this.options.headers.filter(value => !!value).join('-')\n if (parent) {\n parent = parent + '-'\n }\n while (this.options.headers.length < (level - 1)) {\n this.options.headers.push('')\n }\n this.options.headers.push(rawName)\n return ''\n + text\n + '\\n'\n }\n}\n\nmarked.setOptions({\n renderer: new Renderer(),\n gfm: true,\n tables: true,\n breaks: false,\n pedantic: false,\n sanitize: false,\n smartLists: true,\n smartypants: false,\n highlight(code, lang) {\n if (lang) {\n return highlightjs.highlight(lang, code).value\n } else {\n return highlightjs.highlightAuto(code).value\n }\n }\n})\n\nVue.directive('markdown', function (el, binding, vnode) {\n if (!el.className || !/vue-markdown/.test(el.className)) {\n el.className += ' vue-markdown'\n }\n let text = ''\n for (let i = 0; i < vnode.children.length; i++) {\n text += vnode.children[i].text || ''\n }\n if (el.markdown === text) {\n return\n }\n\n el.markdown = text\n\n el.innerHTML = marked(text)\n let selectorList = el.querySelectorAll('a')\n for (let i = 0; i < selectorList.length; i++) {\n selectorList[i].onclick = function (e) {\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n if (e.button !== undefined && e.button !== 0) {\n return\n }\n\n if (this.host !== window.location.host) {\n return\n }\n\n let href = this.getAttribute('href')\n if (!href) {\n return\n }\n\n if (href.charAt(0) !== '#') {\n return\n }\n\n e.preventDefault()\n router.push(href)\n }\n }\n})\n\n\n\nVue.filter('formatSize', function (size) {\n if (size > 1024 * 1024 * 1024 * 1024) {\n return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'\n } else if (size > 1024 * 1024 * 1024) {\n return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'\n } else if (size > 1024 * 1024) {\n return (size / 1024 / 1024).toFixed(2) + ' MB'\n } else if (size > 1024) {\n return (size / 1024).toFixed(2) + ' KB'\n }\n return size.toString() + ' B'\n})\n\nVue.filter('toLocale', function (to) {\n return '/' + i18n.locale + to\n})\n\n\n\nnew Vue({\n store,\n router,\n i18n,\n ...App\n}).$mount('#app')\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:_vm.className},[_vm._t(\"default\"),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.inputId || _vm.name}}),_vm._v(\" \"),_c('input-file')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.open(options.method || 'GET', options.url)\n xhr.responseType = 'json'\n if (options.headers) {\n Object.keys(options.headers).forEach(key => {\n xhr.setRequestHeader(key, options.headers[key])\n })\n }\n\n return xhr\n}\n\n/**\n * Sends a XHR request with certain body\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} body\n */\nexport const sendRequest = (xhr, body) => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(JSON.stringify(body))\n })\n}\n\n/**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\nexport const sendFormRequest = (xhr, data) => {\n const body = new FormData()\n for (var name in data) {\n body.append(name, data[name])\n }\n\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response\n try {\n response = JSON.parse(xhr.response)\n } catch (err) {\n response = xhr.response\n }\n resolve(response)\n } else {\n reject(xhr.response)\n }\n }\n xhr.onerror = () => reject(xhr.response)\n xhr.send(body)\n })\n}\n\n/**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\nexport default function (options) {\n const xhr = createRequest(options)\n\n return sendRequest(xhr, options.body)\n}\n","import {\n default as request,\n createRequest,\n sendFormRequest\n} from '../utils/request'\n\nexport default class ChunkUploadHandler {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n constructor(file, options) {\n this.file = file\n this.options = options\n this.chunks = []\n this.sessionId = null\n this.chunkSize = null\n this.speedInterval = null\n }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries() {\n return parseInt(this.options.maxRetries, 10)\n }\n\n /**\n * Gets the max number of active chunks being uploaded at once from options\n */\n get maxActiveChunks() {\n return parseInt(this.options.maxActive, 10)\n }\n\n /**\n * Gets the file type\n */\n get fileType() {\n return this.file.type\n }\n\n /**\n * Gets the file size\n */\n get fileSize() {\n return this.file.size\n }\n\n /**\n * Gets the file name\n */\n get fileName() {\n return this.file.name\n }\n\n /**\n * Gets action (url) to upload the file\n */\n get action() {\n return this.options.action || null\n }\n\n /**\n * Gets the body to be merged when sending the request in start phase\n */\n get startBody() {\n return this.options.startBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n get uploadBody() {\n return this.options.uploadBody || {}\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n get finishBody() {\n return this.options.finishBody || {}\n }\n\n /**\n * Gets the headers of the requests from options\n */\n get headers() {\n return this.options.headers || {}\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n get readyToUpload() {\n return !!this.chunks\n }\n\n /**\n * Gets the progress of the chunk upload\n * - Gets all the completed chunks\n * - Gets the progress of all the chunks that are being uploaded\n */\n get progress() {\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\n return progress + ((chunk.progress | 0) / this.chunks.length)\n }, 0)\n\n return Math.min(completedProgress + uploadingProgress, 100)\n }\n\n /**\n * Gets all the chunks that are pending to be uploaded\n */\n get chunksToUpload() {\n return this.chunks.filter(chunk => {\n return !chunk.active && !chunk.uploaded\n })\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n get hasChunksToUpload() {\n return this.chunksToUpload.length > 0\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n get chunksUploading() {\n return this.chunks.filter(chunk => {\n return !!chunk.xhr && !!chunk.active\n })\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n get chunksUploaded() {\n return this.chunks.filter(chunk => {\n return !!chunk.uploaded\n })\n }\n\n /**\n * Creates all the chunks in the initial state\n */\n createChunks() {\n this.chunks = []\n\n let start = 0\n let end = this.chunkSize\n while (start < this.fileSize) {\n this.chunks.push({\n blob: this.file.file.slice(start, end),\n startOffset: start,\n active: false,\n retries: this.maxRetries\n })\n start = end\n end = start + this.chunkSize\n }\n }\n\n /**\n * Updates the progress of the file with the handler's progress\n */\n updateFileProgress() {\n this.file.progress = this.progress\n }\n\n /**\n * Paues the upload process\n * - Stops all active requests\n * - Sets the file not active\n */\n pause() {\n this.file.active = false\n this.stopChunks()\n }\n\n /**\n * Stops all the current chunks\n */\n stopChunks() {\n this.chunksUploading.forEach(chunk => {\n chunk.xhr.abort()\n chunk.active = false\n })\n\n this.stopSpeedCalc()\n }\n\n /**\n * Resumes the file upload\n * - Sets the file active\n * - Starts the following chunks\n */\n resume() {\n this.file.active = true\n this.startChunking()\n }\n\n /**\n * Starts the file upload\n *\n * @returns Promise\n * - resolve The file was uploaded\n * - reject The file upload failed\n */\n upload() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve\n this.reject = reject\n })\n this.start()\n\n return this.promise\n }\n\n /**\n * Start phase\n * Sends a request to the backend to initialise the chunks\n */\n start() {\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(res => {\n if (res.status !== 'success') {\n this.file.response = res\n return this.reject('server')\n }\n\n this.sessionId = res.data.session_id\n this.chunkSize = res.data.end_offset\n\n this.createChunks()\n this.startChunking()\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n /**\n * Starts to upload chunks\n */\n startChunking() {\n for (let i = 0; i < this.maxActiveChunks; i++) {\n this.uploadNextChunk()\n }\n\n this.startSpeedCalc()\n }\n\n /**\n * Uploads the next chunk\n * - Won't do anything if the process is paused\n * - Will start finish phase if there are no more chunks to upload\n */\n uploadNextChunk() {\n if (this.file.active) {\n if (this.hasChunksToUpload) {\n return this.uploadChunk(this.chunksToUpload[0])\n }\n\n if (this.chunksUploading.length === 0) {\n return this.finish()\n }\n }\n }\n\n /**\n * Uploads a chunk\n * - Sends the chunk to the backend\n * - Sets the chunk as uploaded if everything went well\n * - Decreases the number of retries if anything went wrong\n * - Fails if there are no more retries\n *\n * @param {Object} chunk\n */\n uploadChunk(chunk) {\n chunk.progress = 0\n chunk.active = true\n this.updateFileProgress()\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n })\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\n }\n }, false)\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(res => {\n chunk.active = false\n if (res.status === 'success') {\n chunk.uploaded = true\n } else {\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.stopChunks()\n return this.reject('upload')\n }\n\n this.uploadNextChunk()\n })\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n finish() {\n this.updateFileProgress()\n this.stopSpeedCalc()\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n this.file.response = res\n if (res.status !== 'success') {\n return this.reject('server')\n }\n\n this.resolve(res)\n }).catch(res => {\n this.file.response = res\n this.reject('server')\n })\n }\n\n\n /**\n * Sets an interval to calculate and\n * set upload speed every 3 seconds\n */\n startSpeedCalc() {\n this.file.speed = 0\n let lastUploadedBytes = 0\n if (!this.speedInterval) {\n this.speedInterval = window.setInterval(() => {\n let uploadedBytes = (this.progress / 100) * this.fileSize\n this.file.speed = (uploadedBytes - lastUploadedBytes)\n lastUploadedBytes = uploadedBytes\n }, 1000)\n }\n }\n\n /**\n * Removes the upload speed interval\n */\n stopSpeedCalc() {\n this.speedInterval && window.clearInterval(this.speedInterval)\n this.speedInterval = null\n this.file.speed = 0\n }\n}\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFile.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFile.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./InputFile.vue?vue&type=template&id=4cbbf1c0&\"\nimport script from \"./InputFile.vue?vue&type=script&lang=js&\"\nexport * from \"./InputFile.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',{attrs:{\"type\":\"file\",\"name\":_vm.$parent.name,\"id\":_vm.$parent.inputId || _vm.$parent.name,\"accept\":_vm.$parent.accept,\"capture\":_vm.$parent.capture,\"disabled\":_vm.$parent.disabled,\"webkitdirectory\":_vm.$parent.directory && _vm.$parent.features.directory ? true : undefined,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory ? true : undefined,\"multiple\":_vm.$parent.multiple && _vm.$parent.features.html5},on:{\"change\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=4ec5a232&\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileUpload.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/docs/en.md b/docs/docs/en.md index 730c61d..2fd6bc0 100644 --- a/docs/docs/en.md +++ b/docs/docs/en.md @@ -516,7 +516,7 @@ Custom upload method * **Default:** `undefined` -* **Details:** +* **Details:** `custom-action` priority than `put-action, post-action` @@ -764,21 +764,21 @@ All the options to handle chunk uploads * **Type:** `Object` * **Default:** -```js -{ - headers: { - 'Content-Type': 'application/json' - }, - action: '', - minSize: 1048576, - maxActive: 3, - maxRetries: 5, - - // This is the default Handler implemented in this package - // you can use your own handler if your protocol is different - handler: ChunkUploadDefaultHandler -} -``` + ```js + { + headers: { + 'Content-Type': 'application/json' + }, + action: '', + minSize: 1048576, + maxActive: 3, + maxRetries: 5, + + // This is the default Handler implemented in this package + // you can use your own handler if your protocol is different + handler: ChunkUploadDefaultHandler + } + ``` ### drop @@ -799,7 +799,22 @@ Drag and drop upload ``` +### drop-auto-hide-time + +Specify the seconds to automatically set `dropActive` to false. + +* **Type:** `Number` + +* **Default:** `1000` +* **Details:** + + If this property is set to `0` the `dropActive` will keep `true` until the user drop the file or leave the drop area. If set to a positive number then the `dropActive` will be set to `false` after the time specified in this property in seconds. + +* **Usage:** + ```html + + ``` diff --git a/docs/views/examples/Full.vue b/docs/views/examples/Full.vue index 3252211..c3a6d5f 100644 --- a/docs/views/examples/Full.vue +++ b/docs/views/examples/Full.vue @@ -96,6 +96,7 @@ :headers="headers" :data="data" :drop="drop" + :drop-auto-hide-time="dropAutoHideTime" :drop-directory="dropDirectory" :add-index="addIndex" v-model="files" @@ -401,6 +402,7 @@ export default { multiple: true, directory: false, drop: true, + dropAutoHideTime: 2000, dropDirectory: true, addIndex: false, thread: 3, diff --git a/src/FileUpload.vue b/src/FileUpload.vue index 53d7592..73b292b 100644 --- a/src/FileUpload.vue +++ b/src/FileUpload.vue @@ -126,6 +126,11 @@ export default { default: false, }, + dropAutoHideTime: { + type: Number, + default: 1000 + }, + dropDirectory: { type: Boolean, default: true, @@ -297,7 +302,7 @@ export default { this.$parent.$forceUpdate() } }, - + drop(value) { this.watchDrop(value) @@ -1308,6 +1313,10 @@ export default { }, watchDropActive(newDropActive, oldDropActive) { + if (this.dropAutoHideTime === 0) { + return + } + if (newDropActive === oldDropActive) { return } @@ -1316,7 +1325,7 @@ export default { this.dropTimeout = null } if (newDropActive) { - this.dropTimeout = setTimeout(this.onDocumentDrop, 1000); + this.dropTimeout = setTimeout(this.onDocumentDrop, this.dropAutoHide) } },