From 6608aaf19813bc5ae783c107f199364df2590020 Mon Sep 17 00:00:00 2001 From: Andrew Evans Date: Thu, 9 May 2019 11:59:52 +0100 Subject: [PATCH 1/3] Adding options for specifying a startAction, an uploadAction and a finishAction --- dist/vue-upload-component.js | 87 +++++++++++++++++---------- dist/vue-upload-component.js.map | 2 +- dist/vue-upload-component.min.js | 2 +- dist/vue-upload-component.min.js.map | 2 +- dist/vue-upload-component.part.js | 85 ++++++++++++++++---------- dist/vue-upload-component.part.js.map | 2 +- docs/dist/index.js | 2 +- docs/dist/index.js.map | 2 +- src/chunk/ChunkUploadHandler.js | 18 +++++- 9 files changed, 130 insertions(+), 72 deletions(-) diff --git a/dist/vue-upload-component.js b/dist/vue-upload-component.js index a3ba5e7..d4309c2 100644 --- a/dist/vue-upload-component.js +++ b/dist/vue-upload-component.js @@ -234,7 +234,7 @@ headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.startAction, body: Object.assign(this.startBody, { phase: 'start', mime_type: this.fileType, @@ -311,7 +311,7 @@ chunk.xhr = createRequest({ method: 'POST', headers: this.headers, - url: this.action + url: this.uploadAction }); chunk.xhr.upload.addEventListener('progress', function (evt) { @@ -365,7 +365,7 @@ headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.finishAction, body: Object.assign(this.finishBody, { phase: 'finish', session_id: this.sessionId @@ -437,6 +437,21 @@ get: function get() { return this.options.action || null; } + }, { + key: 'startAction', + get: function get() { + return this.options.startAction || this.action; + } + }, { + key: 'uploadAction', + get: function get() { + return this.options.uploadAction || this.action; + } + }, { + key: 'finishAction', + get: function get() { + return this.options.finishAction || this.action; + } /** * Gets the body to be merged when sending the request in start phase @@ -872,14 +887,19 @@ } this.$nextTick(function () { + var _this = this; // 更新下父级 if (this.$parent) { this.$parent.$forceUpdate(); + // 拖拽渲染 + this.$parent.$nextTick(function () { + _this.watchDrop(_this.drop); + }); + } else { + // 拖拽渲染 + this.watchDrop(this.drop); } - - // 拖拽渲染 - this.watchDrop(this.drop); }); }, @@ -894,6 +914,9 @@ // 设置成不激活 this.active = false; + + // 销毁拖拽事件 + this.watchDrop(false); }, @@ -1153,7 +1176,7 @@ // 添加 DataTransfer addDataTransfer: function addDataTransfer(dataTransfer) { - var _this = this; + var _this2 = this; var files = []; if (dataTransfer.items && dataTransfer.items.length) { @@ -1176,10 +1199,10 @@ var forEach = function forEach(i) { var item = items[i]; // 结束 文件数量大于 最大数量 - if (!item || _this.maximum > 0 && files.length >= _this.maximum) { - return resolve(_this.add(files)); + if (!item || _this2.maximum > 0 && files.length >= _this2.maximum) { + return resolve(_this2.add(files)); } - _this.getEntry(item).then(function (results) { + _this2.getEntry(item).then(function (results) { files.push.apply(files, _toConsumableArray(results)); forEach(i + 1); }); @@ -1204,7 +1227,7 @@ // 获得 entry getEntry: function getEntry(entry) { - var _this2 = this; + var _this3 = this; var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; @@ -1218,19 +1241,19 @@ file: file }]); }); - } else if (entry.isDirectory && _this2.dropDirectory) { + } else if (entry.isDirectory && _this3.dropDirectory) { var files = []; var dirReader = entry.createReader(); var readEntries = function readEntries() { dirReader.readEntries(function (entries) { var forEach = function forEach(i) { - if (!entries[i] && i === 0 || _this2.maximum > 0 && files.length >= _this2.maximum) { + if (!entries[i] && i === 0 || _this3.maximum > 0 && files.length >= _this3.maximum) { return resolve(files); } if (!entries[i]) { return readEntries(); } - _this2.getEntry(entries[i], path + entry.name + '/').then(function (results) { + _this3.getEntry(entries[i], path + entry.name + '/').then(function (results) { files.push.apply(files, _toConsumableArray(results)); forEach(i + 1); }); @@ -1345,20 +1368,20 @@ this.uploading++; // 激活 this.$nextTick(function () { - var _this3 = this; + var _this4 = this; setTimeout(function () { - _this3.upload(newFile).then(function () { + _this4.upload(newFile).then(function () { // eslint-disable-next-line - newFile = _this3.get(newFile); + newFile = _this4.get(newFile); if (newFile && newFile.fileObject) { - _this3.update(newFile, { + _this4.update(newFile, { active: false, success: !newFile.error }); } }).catch(function (e) { - _this3.update(newFile, { + _this4.update(newFile, { active: false, success: false, error: e.code || e.error || e.message || e @@ -1506,7 +1529,7 @@ return this.uploadXhr(xhr, file, form); }, uploadXhr: function uploadXhr(xhr, _file, body) { - var _this4 = this; + var _this5 = this; var file = _file; var speedTime = 0; @@ -1515,7 +1538,7 @@ // 进度条 xhr.upload.onprogress = function (e) { // 还未开始上传 已删除 未激活 - file = _this4.get(file); + file = _this5.get(file); if (!e.lengthComputable || !file || !file.fileObject || !file.active) { return; } @@ -1527,7 +1550,7 @@ } speedTime = speedTime2; - file = _this4.update(file, { + file = _this5.update(file, { progress: (e.loaded / e.total * 100).toFixed(2), speed: e.loaded - speedLoaded }); @@ -1536,7 +1559,7 @@ // 检查激活状态 var interval = setInterval(function () { - file = _this4.get(file); + file = _this5.get(file); if (file && file.fileObject && !file.success && !file.error && file.active) { return; } @@ -1565,7 +1588,7 @@ interval = false; } - file = _this4.get(file); + file = _this5.get(file); // 不存在直接响应 if (!file) { @@ -1628,7 +1651,7 @@ } // 更新 - file = _this4.update(file, data); + file = _this5.update(file, data); // 相应错误 if (file.error) { @@ -1656,14 +1679,14 @@ } // 更新 xhr - file = _this4.update(file, { xhr: xhr }); + file = _this5.update(file, { xhr: xhr }); // 开始上传 xhr.send(body); }); }, uploadHtml4: function uploadHtml4(_file) { - var _this5 = this; + var _this6 = this; var file = _file; var onKeydown = function onKeydown(e) { @@ -1729,7 +1752,7 @@ return new Promise(function (resolve, reject) { setTimeout(function () { - file = _this5.update(file, { iframe: iframe }); + file = _this6.update(file, { iframe: iframe }); // 不存在 if (!file) { @@ -1738,7 +1761,7 @@ // 定时检查 var interval = setInterval(function () { - file = _this5.get(file); + file = _this6.get(file); if (file && file.fileObject && !file.success && !file.error && file.active) { return; } @@ -1767,7 +1790,7 @@ // 关闭 esc 事件 document.body.removeEventListener('keydown', onKeydown); - file = _this5.get(file); + file = _this6.get(file); // 不存在直接响应 if (!file) { @@ -1829,7 +1852,7 @@ } // 更新 - file = _this5.update(file, data); + file = _this6.update(file, data); if (file.error) { return reject(file.error); @@ -1968,7 +1991,7 @@ /* style */ var __vue_inject_styles__$1 = function (inject) { if (!inject) return; - inject("data-v-595958af_0", { source: "\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\n}\n.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%\n}\n.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\n}", map: undefined, media: undefined }); + inject("data-v-3f071172_0", { source: "\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\n}\n.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%\n}\n.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\n}", 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 d9f3f09..640a6c0 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","../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 }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries () {\n return parseInt(this.options.maxRetries)\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)\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\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\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\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","\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","start","end","chunkSize","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","sessionId","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","require$$0"],"mappings":"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AAP;EAGD;;;;;;;;;;;;;;;;;;;;;AC9HH;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAZY,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECwCZ;;;;;;;;GAAA;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAlDY,+BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECHZ,UAAiBW,UAAjB;;;;;;;;"} \ 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","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\n","\r\n\r\n","\r\n\r\n\r\n","module.exports = require('./FileUpload.vue')\r\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","start","end","chunkSize","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","startChunking","promise","request","assign","startAction","startBody","phase","mime_type","fileType","size","fileName","then","res","sessionId","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","uploadAction","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishAction","finishBody","parseInt","maxActive","type","action","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","require$$0"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAlDY,+BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECHZ,UAAiBa,UAAjB;;;;;;;;"} \ No newline at end of file diff --git a/dist/vue-upload-component.min.js b/dist/vue-upload-component.min.js index 4f84a83..6a580cf 100644 --- a/dist/vue-upload-component.min.js +++ b/dist/vue-upload-component.min.js @@ -3,5 +3,5 @@ * Version: 2.8.20 * 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,l(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,l(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=h({},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":d(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":d(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":d(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.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(e){}t?"string"==typeof t?t=document.querySelector(t)||this.$root.$el.querySelector(t):!0===t&&(t=this.$parent.$el):t=!1,this.dropElement=t,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(e){if(e.preventDefault(),!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}},onDragleave:function(e){e.preventDefault(),this.dropActive&&("HTML"===e.target.nodeName||e.target===e.explicitOriginalTarget||!e.fromElement&&(e.clientX<=0||e.clientY<=0||e.clientX>=window.innerWidth||e.clientY>=window.innerHeight))&&(this.dropActive=!1)},onDragover:function(e){e.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(e){e.preventDefault(),this.addDataTransfer(e.dataTransfer)}}},void 0,!1,0,function e(){var c=document.head||document.getElementsByTagName("head")[0],l=e.styles||(e.styles={}),d="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(e,t){if(!document.querySelector('style[data-vue-ssr-id~="'+e+'"]')){var i=d?t.media||"default":e,n=l[i]||(l[i]={ids:[],parts:[],element:void 0});if(!n.ids.includes(e)){var r=t.source,s=n.ids.length;if(n.ids.push(e),t.map&&(r+="\n/*# sourceURL="+t.map.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),d&&(n.element=n.element||document.querySelector("style[data-group="+i+"]")),!n.element){var o=n.element=document.createElement("style");o.type="text/css",t.media&&o.setAttribute("media",t.media),d&&(o.setAttribute("data-group",i),o.setAttribute("data-next-index","0")),c.appendChild(o)}if(d&&(s=parseInt(n.element.getAttribute("data-next-index")),n.element.setAttribute("data-next-index",s+1)),n.element.styleSheet)n.parts.push(r),n.element.styleSheet.cssText=n.parts.filter(Boolean).join("\n");else{var a=document.createTextNode(r),u=n.element.childNodes;u[s]&&n.element.removeChild(u[s]),u.length?n.element.insertBefore(a,u[s]):n.element.appendChild(a)}}}}}),m=Object.freeze({default:p});return m&&p||m}); +!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,l(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,l(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=h({},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":d(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":d(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":d(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.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(e){}t?"string"==typeof t?t=document.querySelector(t)||this.$root.$el.querySelector(t):!0===t&&(t=this.$parent.$el):t=!1,this.dropElement=t,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(e){if(e.preventDefault(),!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}},onDragleave:function(e){e.preventDefault(),this.dropActive&&("HTML"===e.target.nodeName||e.target===e.explicitOriginalTarget||!e.fromElement&&(e.clientX<=0||e.clientY<=0||e.clientX>=window.innerWidth||e.clientY>=window.innerHeight))&&(this.dropActive=!1)},onDragover:function(e){e.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(e){e.preventDefault(),this.addDataTransfer(e.dataTransfer)}}},void 0,!1,0,function e(){var c=document.head||document.getElementsByTagName("head")[0],l=e.styles||(e.styles={}),d="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());return function(e,t){if(!document.querySelector('style[data-vue-ssr-id~="'+e+'"]')){var i=d?t.media||"default":e,n=l[i]||(l[i]={ids:[],parts:[],element:void 0});if(!n.ids.includes(e)){var r=t.source,s=n.ids.length;if(n.ids.push(e),t.map&&(r+="\n/*# sourceURL="+t.map.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),d&&(n.element=n.element||document.querySelector("style[data-group="+i+"]")),!n.element){var o=n.element=document.createElement("style");o.type="text/css",t.media&&o.setAttribute("media",t.media),d&&(o.setAttribute("data-group",i),o.setAttribute("data-next-index","0")),c.appendChild(o)}if(d&&(s=parseInt(n.element.getAttribute("data-next-index")),n.element.setAttribute("data-next-index",s+1)),n.element.styleSheet)n.parts.push(r),n.element.styleSheet.cssText=n.parts.filter(Boolean).join("\n");else{var a=document.createTextNode(r),u=n.element.childNodes;u[s]&&n.element.removeChild(u[s]),u.length?n.element.insertBefore(a,u[s]):n.element.appendChild(a)}}}}}),m=Object.freeze({default:p});return m&&p||m}); //# 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 9f7d1a8..a5292a5 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","../src/FileUpload.vue"],"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 }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries () {\n return parseInt(this.options.maxRetries)\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)\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\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\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\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\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","start","end","this","chunkSize","fileSize","push","slice","maxRetries","progress","active","stopChunks","chunksUploading","abort","startChunking","promise","Object","assign","action","startBody","fileType","fileName","then","res","_this2","sessionId","data","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","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","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","_this5","min","filter"],"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","../src/FileUpload.vue"],"sourcesContent":["/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\n","\r\n\r\n\r\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","start","end","this","chunkSize","fileSize","push","slice","maxRetries","progress","active","stopChunks","chunksUploading","abort","startChunking","promise","Object","assign","startAction","startBody","fileType","fileName","then","res","_this2","sessionId","data","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","uploadAction","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","name","append","uploadBody","startOffset","blob","uploaded","retries","_this3","finishAction","finishBody","_this4","parseInt","maxActive","type","size","action","completedProgress","chunksUploaded","uploadingProgress","reduce","_this5","min","filter"],"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 41af91f..9142aa0 100644 --- a/dist/vue-upload-component.part.js +++ b/dist/vue-upload-component.part.js @@ -234,7 +234,7 @@ headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.startAction, body: Object.assign(this.startBody, { phase: 'start', mime_type: this.fileType, @@ -311,7 +311,7 @@ chunk.xhr = createRequest({ method: 'POST', headers: this.headers, - url: this.action + url: this.uploadAction }); chunk.xhr.upload.addEventListener('progress', function (evt) { @@ -365,7 +365,7 @@ headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.finishAction, body: Object.assign(this.finishBody, { phase: 'finish', session_id: this.sessionId @@ -437,6 +437,21 @@ get: function get() { return this.options.action || null; } + }, { + key: 'startAction', + get: function get() { + return this.options.startAction || this.action; + } + }, { + key: 'uploadAction', + get: function get() { + return this.options.uploadAction || this.action; + } + }, { + key: 'finishAction', + get: function get() { + return this.options.finishAction || this.action; + } /** * Gets the body to be merged when sending the request in start phase @@ -872,14 +887,19 @@ } this.$nextTick(function () { + var _this = this; // 更新下父级 if (this.$parent) { this.$parent.$forceUpdate(); + // 拖拽渲染 + this.$parent.$nextTick(function () { + _this.watchDrop(_this.drop); + }); + } else { + // 拖拽渲染 + this.watchDrop(this.drop); } - - // 拖拽渲染 - this.watchDrop(this.drop); }); }, @@ -894,6 +914,9 @@ // 设置成不激活 this.active = false; + + // 销毁拖拽事件 + this.watchDrop(false); }, @@ -1153,7 +1176,7 @@ // 添加 DataTransfer addDataTransfer: function addDataTransfer(dataTransfer) { - var _this = this; + var _this2 = this; var files = []; if (dataTransfer.items && dataTransfer.items.length) { @@ -1176,10 +1199,10 @@ var forEach = function forEach(i) { var item = items[i]; // 结束 文件数量大于 最大数量 - if (!item || _this.maximum > 0 && files.length >= _this.maximum) { - return resolve(_this.add(files)); + if (!item || _this2.maximum > 0 && files.length >= _this2.maximum) { + return resolve(_this2.add(files)); } - _this.getEntry(item).then(function (results) { + _this2.getEntry(item).then(function (results) { files.push.apply(files, _toConsumableArray(results)); forEach(i + 1); }); @@ -1204,7 +1227,7 @@ // 获得 entry getEntry: function getEntry(entry) { - var _this2 = this; + var _this3 = this; var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; @@ -1218,19 +1241,19 @@ file: file }]); }); - } else if (entry.isDirectory && _this2.dropDirectory) { + } else if (entry.isDirectory && _this3.dropDirectory) { var files = []; var dirReader = entry.createReader(); var readEntries = function readEntries() { dirReader.readEntries(function (entries) { var forEach = function forEach(i) { - if (!entries[i] && i === 0 || _this2.maximum > 0 && files.length >= _this2.maximum) { + if (!entries[i] && i === 0 || _this3.maximum > 0 && files.length >= _this3.maximum) { return resolve(files); } if (!entries[i]) { return readEntries(); } - _this2.getEntry(entries[i], path + entry.name + '/').then(function (results) { + _this3.getEntry(entries[i], path + entry.name + '/').then(function (results) { files.push.apply(files, _toConsumableArray(results)); forEach(i + 1); }); @@ -1345,20 +1368,20 @@ this.uploading++; // 激活 this.$nextTick(function () { - var _this3 = this; + var _this4 = this; setTimeout(function () { - _this3.upload(newFile).then(function () { + _this4.upload(newFile).then(function () { // eslint-disable-next-line - newFile = _this3.get(newFile); + newFile = _this4.get(newFile); if (newFile && newFile.fileObject) { - _this3.update(newFile, { + _this4.update(newFile, { active: false, success: !newFile.error }); } }).catch(function (e) { - _this3.update(newFile, { + _this4.update(newFile, { active: false, success: false, error: e.code || e.error || e.message || e @@ -1506,7 +1529,7 @@ return this.uploadXhr(xhr, file, form); }, uploadXhr: function uploadXhr(xhr, _file, body) { - var _this4 = this; + var _this5 = this; var file = _file; var speedTime = 0; @@ -1515,7 +1538,7 @@ // 进度条 xhr.upload.onprogress = function (e) { // 还未开始上传 已删除 未激活 - file = _this4.get(file); + file = _this5.get(file); if (!e.lengthComputable || !file || !file.fileObject || !file.active) { return; } @@ -1527,7 +1550,7 @@ } speedTime = speedTime2; - file = _this4.update(file, { + file = _this5.update(file, { progress: (e.loaded / e.total * 100).toFixed(2), speed: e.loaded - speedLoaded }); @@ -1536,7 +1559,7 @@ // 检查激活状态 var interval = setInterval(function () { - file = _this4.get(file); + file = _this5.get(file); if (file && file.fileObject && !file.success && !file.error && file.active) { return; } @@ -1565,7 +1588,7 @@ interval = false; } - file = _this4.get(file); + file = _this5.get(file); // 不存在直接响应 if (!file) { @@ -1628,7 +1651,7 @@ } // 更新 - file = _this4.update(file, data); + file = _this5.update(file, data); // 相应错误 if (file.error) { @@ -1656,14 +1679,14 @@ } // 更新 xhr - file = _this4.update(file, { xhr: xhr }); + file = _this5.update(file, { xhr: xhr }); // 开始上传 xhr.send(body); }); }, uploadHtml4: function uploadHtml4(_file) { - var _this5 = this; + var _this6 = this; var file = _file; var onKeydown = function onKeydown(e) { @@ -1729,7 +1752,7 @@ return new Promise(function (resolve, reject) { setTimeout(function () { - file = _this5.update(file, { iframe: iframe }); + file = _this6.update(file, { iframe: iframe }); // 不存在 if (!file) { @@ -1738,7 +1761,7 @@ // 定时检查 var interval = setInterval(function () { - file = _this5.get(file); + file = _this6.get(file); if (file && file.fileObject && !file.success && !file.error && file.active) { return; } @@ -1767,7 +1790,7 @@ // 关闭 esc 事件 document.body.removeEventListener('keydown', onKeydown); - file = _this5.get(file); + file = _this6.get(file); // 不存在直接响应 if (!file) { @@ -1829,7 +1852,7 @@ } // 更新 - file = _this5.update(file, data); + file = _this6.update(file, data); if (file.error) { return reject(file.error); diff --git a/dist/vue-upload-component.part.js.map b/dist/vue-upload-component.part.js.map index 9fa64b8..805c155 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","../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 }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries () {\n return parseInt(this.options.maxRetries)\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)\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\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\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\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","\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","start","end","chunkSize","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","startChunking","promise","request","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","sessionId","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishBody","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","require$$0"],"mappings":"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AAP;EAGD;;;;;;;;;;;;;;;;;;;;;AC9HH;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAZY,2BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECwCZ;;;;;;;;GAAA;;AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAlDY,+BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECHZ,UAAiBW,UAAjB;;;;;;;;"} \ 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","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\n","\r\n\r\n","\r\n\r\n\r\n","module.exports = require('./FileUpload.vue')\r\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","start","end","chunkSize","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","startChunking","promise","request","assign","startAction","startBody","phase","mime_type","fileType","size","fileName","then","res","sessionId","session_id","end_offset","createChunks","catch","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","updateFileProgress","uploadAction","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","finishAction","finishBody","parseInt","maxActive","type","action","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","require$$0"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAA;;;EAlDY,+BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECHZ,UAAiBa,UAAjB;;;;;;;;"} \ No newline at end of file diff --git a/docs/dist/index.js b/docs/dist/index.js index 4e69234..0b2daab 100644 --- a/docs/dist/index.js +++ b/docs/dist/index.js @@ -2,5 +2,5 @@ * Name: vue-upload-component * Version: 2.8.20 * 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,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=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(i),o=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[t].concat(o).concat([a]).join("\n")}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, drag: 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, drag: 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\"","module.exports = VueRouter;","module.exports = VueI18n;","module.exports = ImageCompressor;","var map = {\n\t\"./en\": 21,\n\t\"./en.md\": 21,\n\t\"./zh-cn\": 22,\n\t\"./zh-cn.md\": 22\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 27;","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.document-title {\\n margin-bottom: 2rem;\\n padding-bottom: 1rem;\\n border-bottom: 1px solid #ddd;\\n}\\n.document-content h2 {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n margin-top: 4rem;\\n border-bottom: 1px solid #eaecef;\\n}\\n.document-content h2:first-child {\\n margin-top: 0;\\n}\\n.document-content h2 + h3 {\\n margin-top: 0rem;\\n}\\n.document-content h3 {\\n margin-top: 1.5rem;\\n padding-top: 1rem;\\n margin-bottom: 1rem;\\n}\\n\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.file-uploads {\\n overflow: hidden;\\n position: relative;\\n text-align: center;\\n display: inline-block;\\n}\\n.file-uploads.file-uploads-html4 input, .file-uploads.file-uploads-html5 label {\\n /* background fix ie click */\\n background: #fff;\\n opacity: 0;\\n font-size: 20em;\\n z-index: 1;\\n top: 0;\\n left: 0;\\n right: 0;\\n bottom: 0;\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n}\\n.file-uploads.file-uploads-html5 input, .file-uploads.file-uploads-html4 label {\\n /* background fix ie click */\\n background: rgba(255, 255, 255, 0);\\n overflow: hidden;\\n position: fixed;\\n width: 1px;\\n height: 1px;\\n z-index: -1;\\n opacity: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-full .btn-group .dropdown-menu {\\n display: block;\\n visibility: hidden;\\n transition: all .2s\\n}\\n.example-full .btn-group:hover > .dropdown-menu {\\n visibility: visible;\\n}\\n.example-full label.dropdown-item {\\n margin-bottom: 0;\\n}\\n.example-full .btn-group .dropdown-toggle {\\n margin-right: .6rem\\n}\\n.example-full .filename {\\n margin-bottom: .3rem\\n}\\n.example-full .btn-is-option {\\n margin-top: 0.25rem;\\n}\\n.example-full .example-foorer {\\n padding: .5rem 0;\\n border-top: 1px solid #e9ecef;\\n border-bottom: 1px solid #e9ecef;\\n}\\n.example-full .edit-image img {\\n max-width: 100%;\\n}\\n.example-full .edit-image-tool {\\n margin-top: .6rem;\\n}\\n.example-full .edit-image-tool .btn-group{\\n margin-right: .6rem;\\n}\\n.example-full .footer-status {\\n padding-top: .4rem;\\n}\\n.example-full .drop-active {\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n position: fixed;\\n z-index: 9999;\\n opacity: .6;\\n text-align: center;\\n background: #000;\\n}\\n.example-full .drop-active h3 {\\n margin: -.5em 0 0;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n right: 0;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n font-size: 40px;\\n color: #fff;\\n padding: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\n margin-bottom: 0;\\n margin-right: 1rem;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-avatar .avatar-upload .rounded-circle {\\n width: 200px;\\n height: 200px;\\n}\\n.example-avatar .text-center .btn {\\n margin: 0 .5rem\\n}\\n.example-avatar .avatar-edit-image {\\n max-width: 100%\\n}\\n.example-avatar .drop-active {\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n position: fixed;\\n z-index: 9999;\\n opacity: .6;\\n text-align: center;\\n background: #000;\\n}\\n.example-avatar .drop-active h3 {\\n margin: -.5em 0 0;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n right: 0;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n font-size: 40px;\\n color: #fff;\\n padding: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-drag label.btn {\\n margin-bottom: 0;\\n margin-right: 1rem;\\n}\\n.example-drag .drop-active {\\n top: 0;\\n bottom: 0;\\n right: 0;\\n left: 0;\\n position: fixed;\\n z-index: 9999;\\n opacity: .6;\\n text-align: center;\\n background: #000;\\n}\\n.example-drag .drop-active h3 {\\n margin: -.5em 0 0;\\n position: absolute;\\n top: 50%;\\n left: 0;\\n right: 0;\\n -webkit-transform: translateY(-50%);\\n -ms-transform: translateY(-50%);\\n transform: translateY(-50%);\\n font-size: 40px;\\n color: #fff;\\n padding: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-multiple label.btn {\\n margin-bottom: 0;\\n margin-right: 1rem;\\n}\\n.example-multiple .upload {\\n margin-bottom: 1rem;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\n margin-bottom: 0;\\n margin-right: 1rem;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=c205936e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=c205936e&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.chunk-loading[data-v-c205936e] {\\n margin: -12px;\\n display: flex;\\n width: calc(100% + 24px);\\n}\\n.chunk-loading .chunk-loading-part[data-v-c205936e] {\\n height: 25px;\\n line-height: 25px;\\n flex: 1;\\n background: #ccc;\\n font-size: 14px;\\n color: white;\\n text-align: center;\\n}\\n.chunk-loading .chunk-loading-part.chunk-loading-part__uploaded[data-v-c205936e] {\\n background: #28A745;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-vuex label.btn {\\n margin-bottom: 0;\\n margin-right: 1rem;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#header {\\n position: -webkit-sticky;\\n position: sticky;\\n top: 0;\\n z-index: 1071;\\n}\\n#sidebar {\\n background: #fff;\\n border-right: 1px solid #e5e5e5;\\n border-bottom: 1px solid #e5e5e5;\\n}\\n@media (min-width: 768px) {\\n#sidebar {\\n position: -webkit-sticky;\\n position: sticky;\\n top: 3.5rem;\\n z-index: 1000;\\n max-height: calc(100vh - 3.5rem);\\n border-right: 1px solid #e5e5e5;\\n border-bottom: 1px solid #e5e5e5;\\n}\\n}\\n#sidebar-nav {\\n padding-top: 1rem;\\n padding-bottom: 1rem;\\n margin-right: -15px;\\n margin-left: -15px;\\n max-height: 100%;\\n overflow-y: auto;\\n}\\n#sidebar-nav .nav {\\n display: block;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\n display: none;\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\n display: none;\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item.active .nav, #sidebar-nav .nav .active + .nav {\\n display: block;\\n}\\n@media (min-width: 768px) {\\n#sidebar-nav .nav .nav-item .nav {\\n display: block;\\n}\\n}\\n#sidebar-nav .nav .nav-link.active, #sidebar-nav .nav .active > .nav-link{\\n color: #262626;\\n font-weight: 500;\\n}\\n#sidebar-nav .nav-item .nav-link {\\n padding: .25rem 1rem;\\n font-weight: 500;\\n color: #666\\n}\\n#sidebar-nav .nav-item .nav-item .nav-link {\\n font-weight: 400;\\n font-size: 85%;\\n margin-left: 1rem\\n}\\n#main {\\n padding-top: 1rem;\\n margin-bottom: 2rem\\n}\\nblockquote {\\n margin-bottom: 1rem;\\n font-size: 1.25rem;\\n padding: 0 1em;\\n color: #6a737d;\\n border-left: 0.25em solid #dfe2e5;\\n}\\npre {\\n padding: 16px;\\n overflow: auto;\\n font-size: 85%;\\n line-height: 1.45;\\n background-color: #f6f8fa;\\n border-radius: 3px;\\n}\\n.modal-backdrop.fade {\\n visibility: hidden;\\n}\\n.modal-backdrop.fade.show {\\n visibility: visible;\\n}\\n.fade.show {\\n display: block;\\n z-index: 1072;\\n}\\n\", \"\"]);\n\n// exports\n","// import Vue from 'vue'\nimport Vuex from 'vuex'\n//\n// Vue.use(Vuex)\n\n\nconst state = {\n files: [],\n}\n\nconst mutations = {\n updateFiles(state, files) {\n state.files = files\n }\n}\nexport default new Vuex.Store({\n strict: true,\n state,\n mutations\n})\n","// import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport en from './en'\nimport zhCN from './zh-cn'\n\n// Vue.use(VueI18n)\n\nexport default new VueI18n({\n locale: 'en',\n messages: {\n 'zh-cn': zhCN,\n en,\n }\n})\n","export default {\n header: {\n logo: 'Vuejs',\n home: '首页',\n examples: '演示',\n documents: '文档',\n blog: 'Blog',\n locale: 'Language(语言)',\n issues: 'Issues',\n github: 'Github',\n },\n\n locale: {\n en: 'English',\n 'zh-cn': '中文(简体)',\n },\n\n document: {\n title: '文档',\n },\n\n\n example: {\n full: '完整例子',\n simple: '简单例子',\n avatar: '上传头像',\n drag: '拖拽上传',\n multiple: '多个实例',\n vuex: 'Vuex',\n }\n}\n","export default {\n header: {\n logo: 'Vuejs',\n home: 'Home',\n examples: 'Examples',\n documents: 'Documentation',\n blog: 'Blog',\n locale: 'Language(语言)',\n issues: 'Issues',\n github: 'Github',\n },\n\n locale: {\n en: 'English',\n 'zh-cn': '中文(简体)',\n },\n\n document: {\n title: 'Documentation',\n },\n\n example: {\n full: 'Full Example',\n simple: 'Simple',\n avatar: 'Upload avatar',\n drag: 'Drag and drop',\n multiple: 'Multiple instances',\n chunk: 'Chunk upload',\n vuex: 'Vuex',\n }\n}\n","import { render, staticRenderFns } from \"./Router.vue?vue&type=template&id=3075fd62&\"\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('router-view')}\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!./Document.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!./Document.vue?vue&type=script&lang=js&\"","\n\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)})):_vm._e()],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('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=c2419f2a&\"\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();_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();_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();_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.onAddFolader}},[_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){_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){_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){_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){_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){_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){_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){_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){_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')])})),_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')])})):_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')])})),_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')])})),_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){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){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)})):_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')])})),_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();_vm.onLocale(true)},\"focus\":function($event){_vm.onLocale(true)},\"blur\":function($event){_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){_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))])}))]),_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 }\n\n /**\n * Gets the max retries from options\n */\n get maxRetries () {\n return parseInt(this.options.maxRetries)\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)\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\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\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\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","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=3a975480&\"\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,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory,\"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=5dd5f1e6&\"\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:///./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?b069","webpack:///./docs/views/examples/Vuex.vue?098c","webpack:///./docs/views/App.vue?1892","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:///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?d988","webpack:///./docs/views/examples/Chunk.vue?429c","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?2579","webpack:///./docs/views/Document.vue?561e","webpack:///docs/views/Document.vue","webpack:///./docs/views/Document.vue","webpack:///./docs/views/Document.vue?181f","webpack:///./docs/views/Example.vue","webpack:///./docs/views/Example.vue?2da1","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?d6da","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?22cb","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?9d04","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?6c28","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?3a5f","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?4003","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?ecd6","webpack:///./docs/views/App.vue?38a5","webpack:///docs/views/App.vue","webpack:///./docs/views/App.vue","webpack:///./docs/views/App.vue?720b","webpack:///./docs/index.js","webpack:///./src/FileUpload.vue?205b","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?3e23","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","__webpack_exports__","useSourceMap","list","toString","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","toComment","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","push","_listToStyles__WEBPACK_IMPORTED_MODULE_0__","_listToStyles__WEBPACK_IMPORTED_MODULE_0___default","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","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","css","media","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","replaceText","textStore","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","Vue","marked","locals","default","Vuex","Cropper","hljs","newStyles","part","VueRouter","VueI18n","ImageCompressor","./en","./en.md","./zh-cn","./zh-cn.md","webpackContext","req","webpackContextResolve","e","code","keys","resolve","store","a","Store","strict","state","files","mutations","updateFiles","i18n","locale","messages","zh-cn","header","logo","home","examples","documents","blog","issues","github","en","title","example","full","simple","avatar","drag","multiple","vuex","chunk","Router","componentNormalizer","_h","$createElement","_self","_c","views_Documentvue_type_script_lang_js_","mounted","$route","hash","el","decodeURIComponent","window","scrollTo","offsetTop","computed","$i18n","navs","tokens","external_marked_default","lexer","rootNode","children","level","navPrev","token","nav","text","replace","depth","Document","_vm","staticClass","attrs","_l","group","class","nav-item","active","indexOf","nav-link","active-class","to","_v","_s","child","_e","role","$t","directives","rawName","Example","_f","examples_Fullvue_type_script_lang_js_","components","FileUpload","src_default","data","accept","extensions","minSize","size","directory","drop","dropDirectory","addIndex","thread","postAction","putAction","headers","X-Csrf-Token","_csrf_token","autoCompress","uploadAuto","isOption","addData","show","editFile","watch","editFile.show","newValue","oldValue","$refs","upload","error","$nextTick","editImage","cropper","external_Cropper_default","autoCrop","_extends","addData.show","methods","inputFilter","newFile","oldFile","prevent","_this","file","substr","external_ImageCompressor_default","convertSize","Infinity","maxWidth","maxHeight","compress","then","catch","err","message","blob","URL","webkitURL","createObjectURL","thumb","inputFile","progress","success","response","alert","_alert","_x","apply","arguments","onEditFileShow","onEditorFile","features","html5","binStr","atob","getCroppedCanvas","toDataURL","split","arr","Uint8Array","charCodeAt","File","onAddFolader","_this2","input","$el","webkitdirectory","onclick","click","onAddData","Full","on","$event","preventDefault","aria-hidden","dropActive","expression","_m","colspan","for","src","width","height","progress-bar","progress-bar-striped","bg-danger","progress-bar-animated","style","speed","dropdown-item","disabled","href","uploaded","ref","post-action","put-action","drop-directory","add-index","input-filter","input-file","model","callback","$$v","domProps","target","composing","checked","_q","change","modifiers","number","max","min","_n","blur","$forceUpdate","Array","isArray","_i","$$a","$$el","$$c","$$i","slice","modal-backdrop","fade","modal","tabindex","submit","required","placeholder","$set","rows","rotate","crop","clear","examples_Simplevue_type_script_lang_js_","console","log","Simple","examples_Avatarvue_type_script_lang_js_","edit","aspectRatio","viewMode","destroy","editSave","url","Avatar","examples_Dragvue_type_script_lang_js_","Drag","examples_Multiplevue_type_script_lang_js_","files1","files2","Multiple","input-id","upload1","upload2","examples_Chunkvue_type_script_lang_js_","chunkEnabled","chunkMinSize","chunkMaxActive","chunkMaxRetries","Chunk","pause","hasChunksToUpload","resume","chunks","chunksUploading","chunksUploaded","chunk-loading-part__uploaded","retries","maxRetries","chunk-enabled","action","maxActive","examples_Vuexvue_type_script_lang_js_","Vuexvue_type_script_lang_js_extends","external_Vuex_","inputUpdate","$store","commit","path","component","docs_router","external_VueRouter_default","fallback","scrollBehavior","from","savedPosition","x","y","routes","views_Appvue_type_script_lang_js_","showLocale","showNav","params","beforeUpdate","onLocale","setTimeout","App","exact","collapse","navbar-collapse","rel","focus","dropdown-menu","fullPath","external_Vue_default","config","silent","devtools","Renderer","raw","pop","headerPrefix","setOptions","renderer","gfm","tables","breaks","pedantic","sanitize","smartLists","smartypants","highlight","lang","external_hljs_default","highlightAuto","directive","binding","vnode","className","markdown","innerHTML","selectorList","querySelectorAll","metaKey","ctrlKey","shiftKey","defaultPrevented","undefined","button","host","location","getAttribute","charAt","toFixed","docs_extends","router","$mount","createRequest","xhr","XMLHttpRequest","open","method","responseType","forEach","setRequestHeader","request","body","Promise","reject","onload","status","parse","onerror","send","sendRequest","ChunkUploadHandler","_classCallCheck","start","end","chunkSize","fileSize","startOffset","stopChunks","abort","startChunking","promise","assign","Content-Type","startAction","startBody","phase","mime_type","fileType","fileName","res","sessionId","session_id","end_offset","createChunks","maxActiveChunks","uploadNextChunk","uploadChunk","chunksToUpload","finish","_this3","updateFileProgress","uploadAction","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","append","sendFormRequest","uploadBody","start_offset","_this4","finishAction","finishBody","parseInt","_this5","completedProgress","uploadingProgress","reduce","src_InputFilevue_type_script_lang_js_","$parent","addInputFile","$destroy","constructor","InputFile","inputId","capture","CHUNK_DEFAULT_OPTIONS","handler","chunk_ChunkUploadHandler","src_FileUploadvue_type_script_lang_js_","props","String","maximum","Number","customAction","Function","timeout","uploading","ondrop","maps","watchDrop","beforeDestroy","fileObject","chunkOptions","_active","watchActive","oldMaps","emitFile","_key","emitInput","_typeof","_files","addFiles","Blob","webkitRelativePath","relativePath","Element","random","emitFilter","newFiles","_newFiles","splice","_file2","_i2","names","__vuex__","addDataTransfer","dataTransfer","items","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","_toConsumableArray","_i3","entry","isFile","isDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","file2","index1","index2","isPrevent","$emit","RegExp","trim","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","HandlerClass","querys","queryString","uploadXhr","form","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","interval","setInterval","clearInterval","complete","fn","responseText","contentType","getResponseHeader","onabort","ontimeout","_this6","onKeydown","keyCode","iframe","removeEventListener","doc","contentWindow","contentDocument","getResponseData","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","dt","types","contains","nodeName","explicitOriginalTarget","fromElement","clientX","clientY","innerWidth","innerHeight","FileUpload_component","_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 () { injectStyles.call(this, this.$root.$options.shadowRoot) }\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 functioal 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')\r\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 \\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** OR **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //.....\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //.....\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals)\\r\\n\\r\\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/)\\r\\n\\r\\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Props\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\nThe `id` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `this.name`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nThe `name` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `file`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `put-action` is not empty Please give priority to` PUT` request\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\nCustom upload method\\r\\n\\r\\n* **Type:** `async Function`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Details:** \\r\\n\\r\\n `custom-action` priority than `put-action, post-action`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nAttach `header` data\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST request`: Append request `body`\\r\\n`PUT request`: Append request `query`\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\nFile List\\r\\n\\r\\n* **Type:** `Array`\\r\\n\\r\\n* **Default:** `[]`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n View **[`File`](#file)** details\\r\\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\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\nThe `accept` attribute of the input tag, MIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\nThe `multiple` attribute of the input tag\\r\\nWhether to allow multiple files to be selected\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If it is `false` file inside only one file will be automatically deleted\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\nThe `directory` attribute of the input tag\\r\\nWhether it is a upload folder\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\nAllow upload file extensions\\r\\n\\r\\n* **Type:** `Array | String | RegExp`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nAllow the maximum byte to upload\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `0` is equal to not limit\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nUpload timeout time in milliseconds\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### maximum\\r\\n\\r\\nList the maximum number of files\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\nAlso upload the number of files at the same time (number of threads)\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### chunk-enabled\\r\\n\\r\\nWhether chunk uploads is enabled or not\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### chunk\\r\\n\\r\\nAll the options to handle chunk uploads\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:**\\r\\n```js\\r\\n{\\r\\n headers: {\\r\\n 'Content-Type': 'application/json'\\r\\n },\\r\\n action: '',\\r\\n minSize: 1048576,\\r\\n maxActive: 3,\\r\\n maxRetries: 5,\\r\\n\\r\\n // This is the default Handler implemented in this package\\r\\n // you can use your own handler if your protocol is different\\r\\n handler: ChunkUploadDefaultHandler\\r\\n}\\r\\n```\\r\\n\\r\\n### drop\\r\\n\\r\\nDrag and drop upload\\r\\n\\r\\n* **Type:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `true`, read the parent component as a container\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\nWhether to open the drag directory\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `false` filter out the directory\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **Type:** `Boolean, Number`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Version:** : `>=2.6.1`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n The default value of the `index` parameter for the [`add()`](#instance-methods-add) method\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Events\\r\\n\\r\\nThe files is changed to trigger the method\\r\\nDefault for `v-model` binding\\r\\n\\r\\n### @input\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read and write`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n * `prevent: Function` Call this function to prevent modification\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n > Synchronization modify `newFile`\\r\\n > Asynchronous Please use `update`,` add`, `remove`,` clear` method\\r\\n > Asynchronous Please set an error first to prevent being uploaded\\r\\n\\r\\n > Synchronization can not use `update`,` add`, `remove`,` clear` methods\\r\\n > Asynchronous can not modify `newFile`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\nAdd, update, remove after\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read only`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n\\r\\n >You can use `update`,` add`, `remove`,` clear` methods in the event\\r\\n >You can not modify the `newFile` object in the event\\r\\n >You can not modify the `oldFile` object in the event\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Data\\r\\n\\r\\n### features\\r\\n\\r\\nUsed to determine the browser support features\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Support drag and drop upload\\r\\n Support folder upload\\r\\n Support for HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Start upload\\r\\n Stop upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\nIs dragging\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Drag and drop here for upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\nAll uploaded\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n All files have been uploaded\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Methods\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\nUse `id` to get a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `File | Object | Boolean` There is a return file, object that otherwise returns `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\nAdd one or more files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` If it is an array of responses will be an array\\r\\n * `index: Number | Boolean` = [`props.add-index`](#options-props-add-index) `true = ` Start, `false = ` End, `Number = ` Index\\r\\n\\r\\n\\r\\n* **Result:** `Object | Array | Boolean` The incoming array is returned to the array otherwise the object or `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\nAdd the file selected by `` to the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `el: HTMLInputElement` File element\\r\\n\\r\\n\\r\\n* **Result:** `Array` Added list of files\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\nAdd files that are dragged or pasted into the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` Drag or paste data\\r\\n\\r\\n\\r\\n* **Result:** `Promise>` Added list of files\\r\\n\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\nUpdate a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` Updated data object\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `newFile` failed to return` false`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\nRemove a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `oldFile` failed to return` false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### replace()\\r\\n Replace the location of the two files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Boolean`\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\nEmpty the file list\\r\\n\\r\\n* **Result:** `Boolean` Always return `true`\\r\\n\\r\\n\\r\\n\\r\\n## Instance / File\\r\\n\\r\\n\\r\\n\\r\\n> **File object in the `@input-filter` event outside the use of [`update`](#instance-methods-update) method**\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Version:** : `>=2.6.0`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the attribute does not exist, the object will not be processed internally\\r\\n If the attribute does not exist, it is not `File` but `Object`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\nFile ID\\r\\n\\r\\n* **Type:** `String | Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n >`id` can not be repeated\\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nFile size\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `-1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nFilename\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `directory/filename.gif` `filename.gif`\\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `true` = Upload\\r\\n `false` = Abort\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\nUpload failed error code\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Built-in\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\nWhether the upload was successful\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\nCustomize the current file `PUT` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\nCustomize the current file `POST` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nCustomize the current file `HTTP` Header\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\nCustomize the current file `body` or` query` to attach content\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nCustomize the upload timeout for a current single file\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\nResponse data\\r\\n\\r\\n* **Type:** `Object | String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\nUpload progress\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `0.00`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\nPer second upload speed\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` upload` XMLHttpRequest` object\\r\\n\\r\\n* **Type:** `XMLHttpRequest`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` upload` iframe` element\\r\\n\\r\\n* **Type:** `Element`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `= IE9`\\r\\n\"","module.exports = \"## 入门开始\\r\\n\\r\\n### NPM\\r\\n\\r\\n``` bash\\r\\nnpm install vue-upload-component --save\\r\\n```\\r\\n\\r\\n``` js\\r\\nconst VueUploadComponent = require('vue-upload-component')\\r\\nVue.component('file-upload', VueUploadComponent)\\r\\n```\\r\\n\\r\\n### Curated\\r\\n\\r\\n**No data**\\r\\n\\r\\n\\r\\n### 直接使用\\r\\n\\r\\n\\r\\nunpkg\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\njsDelivr\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n### 简单的例子\\r\\n\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n Vue-upload-component Test\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\r\\n
\\r\\n \\r\\n 上传文件\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n\\r\\n### SSR (服务器同构)\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** 或者 **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //...\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //...\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \\r\\n\\r\\n* [**`vue-hackernews` 演示**](https://github.com/lian-yue/vue-hackernews-2.0/) \\r\\n\\r\\n* [**浏览修改文件**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 属性\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\ninput 标签的 `id` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `this.name`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\ninput标签的 `name` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `file`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `put-action` 不为空请优先 `PUT` 请求 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\n自定义上传方法\\r\\n\\r\\n* **类型:** `async Function`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `custom-action` 优先级高于 `put-action, post-action`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义上传请求 `header` 数据\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST 请求`: 附加请求的 body \\r\\n`PUT 请求`: 附加请求的 query \\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\n文件列表\\r\\n\\r\\n* **类型:** `Array`\\r\\n\\r\\n* **默认值:** `[]`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 浏览 **[`File`](#file)** 详细信息 \\r\\n > 为了防止不可预知的错误,不可直接修改 `files`,请使用 [`add`](#实例-方法-add), [`update`](#实例-方法-update), [`remove`](#实例-方法-remove) 方法修改\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\n表单的`accept`属性, MIME type \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\n文件表单的 `multiple` 属性 \\r\\n是否允许选择多个文件 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 如果是 `false` `files` 里面最多只有一个文件 多的会自动删除 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\n文件表单的 `directory` 属性 \\r\\n是否是上传文件夹 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\n允许上传的文件后缀\\r\\n\\r\\n* **类型:** `Array | String | RegExp`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n允许上传的最大字节\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `0` 等于不限制\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n上传超时时间毫秒\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### maximum\\r\\n\\r\\n列表最大文件数\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\n同时并发上传的文件数量 线程数 \\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop\\r\\n\\r\\n拖拽上传 \\r\\n\\r\\n* **类型:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `true` 则读取父组件作为容器 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\n是否开启拖拽目录 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `false` 则过滤掉目录\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **类型:** `Boolean, Number`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **版本:** `>= 2.6.1`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n [`add()`](#实例-方法-add) 方法 `index` 参数的默认值\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 事件\\r\\n\\r\\n文件被改变触发的方法 \\r\\n默认用于`v-model`绑定\\r\\n\\r\\n### @input\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `读写`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n * `prevent: Function` 调用该方法 阻止修改\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n > 事件内同步处理请直接修改 `newFile` \\r\\n > 事件内异步处理请使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步请先设置一个错误以防止被上传\\r\\n\\r\\n > 同步不能使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步不能修改 `newFile`\\r\\n\\r\\n\\r\\n* **示例:** \\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\n添加,更新,移除 后\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `只读`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n >事件内可使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n >事件内不可修改 `newFile` 对象 \\r\\n >事件内不可修改 `oldFile` 对象\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 数据\\r\\n\\r\\n### features\\r\\n\\r\\n用于判断浏览器支持的特性\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 支持拖拽上传\\r\\n 支持文件夹上传\\r\\n 支持HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或停止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 开始上传\\r\\n 停止上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\n是否正在拖拽\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 拖拽到这里上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\n是否全部已上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 全部文件已上传完毕\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 方法\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\n使用`id`获得某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `File | Object | Boolean` 存在返回文件对象否则返回 `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\n添加一个或多个文件\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` 如果它是一个数组的响应将是一个数组\\r\\n * `index: Number | Boolean` = [`props.add-index`](#选项-属性-add-index) `true = ` 开始位置, `false = ` 结束位置, `Number = ` 下标位置\\r\\n\\r\\n\\r\\n* **结果:** `Object | Array | Boolean` 传入的是数组返回数组否则对象或`false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\n把``选择的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `el: HTMLInputElement` 文件元素\\r\\n\\r\\n\\r\\n* **结果:** `Array` 返回已添加的文件列表\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\n把拖拽或者粘贴的数据的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` 拖拽或者粘贴的数据\\r\\n\\r\\n\\r\\n* **结果:** `Promise>` 返回已添加的文件列表\\r\\n\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\n更新某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` 更新的数据对象\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `newFile` 失败返回 `false`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\n移除某个文件对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `oldFile` 失败返回 `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### replace()\\r\\n 替换两个文件的位置\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Boolean`\\r\\n\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\n清空文件列表\\r\\n\\r\\n* **结果:** `Boolean` 总是返回 `true`\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / File\\r\\n\\r\\n\\r\\n> **文件对象在`input-filter`事件外修改请使用 [`update`](#实例-方法-update) 方法**\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **版本:** : `>=2.6.0`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果属性不存在,则不会在内部处理该对象 \\r\\n 如果属性不存在,它不是 `File` 而是 `Object`\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\n文件id\\r\\n\\r\\n* **类型:** `String | Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n >`id` can not be repeated \\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n文件大小\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `-1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\n文件名 \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `directory/filename.gif` `filename.gif` \\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME类型\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或终止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `true` = 上传 \\r\\n `false` = 停止 \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\n上传失败错误代码\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 内置\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\n是否上传成功\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\n自定义当前文件 `PUT` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\n自定义当前文件 `POST` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义当前文件 `HTTP` Header\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n自定义当前文件 `body` 或 `query` 附加内容\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n自定义当前单个文件的上传超时时间\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\n响应的数据\\r\\n\\r\\n* **类型:** `Object | String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\n上传进度\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `0.00`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\n每秒的上传速度\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` 上传 `XMLHttpRequest` 对象\\r\\n\\r\\n* **类型:** `XMLHttpRequest`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` 上传 `iframe` 元素\\r\\n\\r\\n* **类型:** `Element`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `= IE9`\\r\\n\"","module.exports = VueRouter;","module.exports = VueI18n;","module.exports = ImageCompressor;","var map = {\n\t\"./en\": 21,\n\t\"./en.md\": 21,\n\t\"./zh-cn\": 22,\n\t\"./zh-cn.md\": 22\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 27;","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.document-title {\\r\\n margin-bottom: 2rem;\\r\\n padding-bottom: 1rem;\\r\\n border-bottom: 1px solid #ddd;\\n}\\n.document-content h2 {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-top: 4rem;\\r\\n border-bottom: 1px solid #eaecef;\\n}\\n.document-content h2:first-child {\\r\\n margin-top: 0;\\n}\\n.document-content h2 + h3 {\\r\\n margin-top: 0rem;\\n}\\n.document-content h3 {\\r\\n margin-top: 1.5rem;\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 1rem;\\n}\\r\\n\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.file-uploads {\\r\\n overflow: hidden;\\r\\n position: relative;\\r\\n text-align: center;\\r\\n display: inline-block;\\n}\\n.file-uploads.file-uploads-html4 input, .file-uploads.file-uploads-html5 label {\\r\\n /* background fix ie click */\\r\\n background: #fff;\\r\\n opacity: 0;\\r\\n font-size: 20em;\\r\\n z-index: 1;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\n}\\n.file-uploads.file-uploads-html5 input, .file-uploads.file-uploads-html4 label {\\r\\n /* background fix ie click */\\r\\n background: rgba(255, 255, 255, 0);\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n width: 1px;\\r\\n height: 1px;\\r\\n z-index: -1;\\r\\n opacity: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-full .btn-group .dropdown-menu {\\r\\n display: block;\\r\\n visibility: hidden;\\r\\n transition: all .2s\\n}\\n.example-full .btn-group:hover > .dropdown-menu {\\r\\n visibility: visible;\\n}\\n.example-full label.dropdown-item {\\r\\n margin-bottom: 0;\\n}\\n.example-full .btn-group .dropdown-toggle {\\r\\n margin-right: .6rem\\n}\\n.example-full .filename {\\r\\n margin-bottom: .3rem\\n}\\n.example-full .btn-is-option {\\r\\n margin-top: 0.25rem;\\n}\\n.example-full .example-foorer {\\r\\n padding: .5rem 0;\\r\\n border-top: 1px solid #e9ecef;\\r\\n border-bottom: 1px solid #e9ecef;\\n}\\n.example-full .edit-image img {\\r\\n max-width: 100%;\\n}\\n.example-full .edit-image-tool {\\r\\n margin-top: .6rem;\\n}\\n.example-full .edit-image-tool .btn-group{\\r\\n margin-right: .6rem;\\n}\\n.example-full .footer-status {\\r\\n padding-top: .4rem;\\n}\\n.example-full .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-full .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-avatar .avatar-upload .rounded-circle {\\r\\n width: 200px;\\r\\n height: 200px;\\n}\\n.example-avatar .text-center .btn {\\r\\n margin: 0 .5rem\\n}\\n.example-avatar .avatar-edit-image {\\r\\n max-width: 100%\\n}\\n.example-avatar .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-avatar .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-drag label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-drag .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-drag .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-multiple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-multiple .upload {\\r\\n margin-bottom: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.chunk-loading[data-v-2e13353d] {\\n margin: -12px;\\n display: flex;\\n width: calc(100% + 24px);\\n}\\n.chunk-loading .chunk-loading-part[data-v-2e13353d] {\\n height: 25px;\\n line-height: 25px;\\n flex: 1;\\n background: #ccc;\\n font-size: 14px;\\n color: white;\\n text-align: center;\\n}\\n.chunk-loading .chunk-loading-part.chunk-loading-part__uploaded[data-v-2e13353d] {\\n background: #28A745;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-vuex label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#header {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 0;\\r\\n z-index: 1071;\\n}\\n#sidebar {\\r\\n background: #fff;\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n@media (min-width: 768px) {\\n#sidebar {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 3.5rem;\\r\\n z-index: 1000;\\r\\n max-height: calc(100vh - 3.5rem);\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n}\\n#sidebar-nav {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-right: -15px;\\r\\n margin-left: -15px;\\r\\n max-height: 100%;\\r\\n overflow-y: auto;\\n}\\n#sidebar-nav .nav {\\r\\n display: block;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item.active .nav, #sidebar-nav .nav .active + .nav {\\r\\n display: block;\\n}\\n@media (min-width: 768px) {\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: block;\\n}\\n}\\n#sidebar-nav .nav .nav-link.active, #sidebar-nav .nav .active > .nav-link{\\r\\n color: #262626;\\r\\n font-weight: 500;\\n}\\n#sidebar-nav .nav-item .nav-link {\\r\\n padding: .25rem 1rem;\\r\\n font-weight: 500;\\r\\n color: #666\\n}\\n#sidebar-nav .nav-item .nav-item .nav-link {\\r\\n font-weight: 400;\\r\\n font-size: 85%;\\r\\n margin-left: 1rem\\n}\\n#main {\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 2rem\\n}\\nblockquote {\\r\\n margin-bottom: 1rem;\\r\\n font-size: 1.25rem;\\r\\n padding: 0 1em;\\r\\n color: #6a737d;\\r\\n border-left: 0.25em solid #dfe2e5;\\n}\\npre {\\r\\n padding: 16px;\\r\\n overflow: auto;\\r\\n font-size: 85%;\\r\\n line-height: 1.45;\\r\\n background-color: #f6f8fa;\\r\\n border-radius: 3px;\\n}\\n.modal-backdrop.fade {\\r\\n visibility: hidden;\\n}\\n.modal-backdrop.fade.show {\\r\\n visibility: visible;\\n}\\n.fade.show {\\r\\n display: block;\\r\\n z-index: 1072;\\n}\\r\\n\", \"\"]);\n\n// exports\n","// import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n//\r\n// Vue.use(Vuex)\r\n\r\n\r\nconst state = {\r\n files: [],\r\n}\r\n\r\nconst mutations = {\r\n updateFiles(state, files) {\r\n state.files = files\r\n }\r\n}\r\nexport default new Vuex.Store({\r\n strict: true,\r\n state,\r\n mutations\r\n})\r\n","// import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\nimport en from './en'\r\nimport zhCN from './zh-cn'\r\n\r\n// Vue.use(VueI18n)\r\n\r\nexport default new VueI18n({\r\n locale: 'en',\r\n messages: {\r\n 'zh-cn': zhCN,\r\n en,\r\n }\r\n})\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: '首页',\r\n examples: '演示',\r\n documents: '文档',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: '文档',\r\n },\r\n\r\n\r\n example: {\r\n full: '完整例子',\r\n simple: '简单例子',\r\n avatar: '上传头像',\r\n drag: '拖拽上传',\r\n multiple: '多个实例',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: 'Home',\r\n examples: 'Examples',\r\n documents: 'Documentation',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: 'Documentation',\r\n },\r\n\r\n example: {\r\n full: 'Full Example',\r\n simple: 'Simple',\r\n avatar: 'Upload avatar',\r\n drag: 'Drag and drop',\r\n multiple: 'Multiple instances',\r\n chunk: 'Chunk upload',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./Router.vue?vue&type=template&id=aa322866&\"\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('router-view')}\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!./Document.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!./Document.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=3c2a08e8&\"\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)})):_vm._e()],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('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=8abae946&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Full.vue?vue&type=template&id=635f372c&\"\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(\"\\r\\n Options\\r\\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(\"\\r\\n \"+_vm._s(file.name)+\"\\r\\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(\"\\r\\n Action\\r\\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();_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();_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();_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(\"\\r\\n Drop: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.drop : false)+\",\\r\\n Active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.active : false)+\",\\r\\n Uploaded: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.uploaded : true)+\",\\r\\n Drop active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.dropActive : false)+\"\\r\\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(\"\\r\\n Select\\r\\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.onAddFolader}},[_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(\"\\r\\n Start Upload\\r\\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(\"\\r\\n Stop Upload\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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\\r\\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\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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(\"\\r\\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Simple.vue?vue&type=template&id=17eaeea2&\"\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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=1c6ae484&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Drag.vue?vue&type=template&id=2868a160&\"\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')])})):_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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Multiple.vue?vue&type=template&id=d796f814&\"\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')])})),_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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Chunk.vue?vue&type=template&id=2e13353d&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=2e13353d&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 \"2e13353d\",\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){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){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)})):_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&\"","\r\n\r\n\r\n\r\n","// import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\n\r\nimport i18n from './i18n'\r\nimport RouterComponent from './views/Router'\r\nimport DocumentComponent from './views/Document'\r\nimport ExampleComponent from './views/Example'\r\n\r\nimport FullExampleComponent from './views/examples/Full'\r\nimport SimpleExampleComponent from './views/examples/Simple'\r\nimport AvatarExampleComponent from './views/examples/Avatar'\r\nimport DragExampleComponent from './views/examples/Drag'\r\nimport MultipleExampleComponent from './views/examples/Multiple'\r\nimport ChunkExampleComponent from './views/examples/Chunk'\r\nimport VuexExampleComponent from './views/examples/Vuex'\r\n\r\n\r\n\r\n// Vue.use(VueRouter)\r\n\r\n\r\nlet examples = [\r\n {\r\n path: '',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'full',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'simple',\r\n component: SimpleExampleComponent,\r\n },\r\n {\r\n path: 'avatar',\r\n component: AvatarExampleComponent,\r\n },\r\n {\r\n path: 'drag',\r\n component: DragExampleComponent,\r\n },\r\n {\r\n path: 'multiple',\r\n component: MultipleExampleComponent,\r\n },\r\n {\r\n path: 'chunk',\r\n component: ChunkExampleComponent,\r\n },\r\n {\r\n path: 'vuex',\r\n component: VuexExampleComponent,\r\n },\r\n]\r\n\r\n\r\n\r\nconst router = new VueRouter({\r\n mode: 'hash',\r\n fallback: false,\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n return savedPosition\r\n } else if (to.hash) {\r\n let el = document.querySelector(to.hash)\r\n return { x: 0, y: el ? el.offsetTop : 0 }\r\n } else {\r\n return { x: 0, y: 0 }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/:locale(' + Object.keys(i18n.messages).join('|') + ')?',\r\n component: RouterComponent,\r\n children: [\r\n {\r\n path: 'documents',\r\n component: DocumentComponent,\r\n },\r\n {\r\n path: 'examples',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n {\r\n path: '',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n ]\r\n },\r\n ]\r\n})\r\nexport default router\r\n","import { render, staticRenderFns } from \"./Vuex.vue?vue&type=template&id=df415d08&\"\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')])})),_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&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=95eafede&\"\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();_vm.onLocale(true)},\"focus\":function($event){_vm.onLocale(true)},\"blur\":function($event){_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){_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))])}))]),_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'\r\nimport marked from 'marked'\r\nimport highlightjs from 'highlight.js'\r\nimport store from './store'\r\nimport router from './router'\r\nimport i18n from './i18n'\r\nimport App from './views/App'\r\n\r\nVue.config.silent = false\r\nVue.config.devtools = true\r\n\r\n\r\nclass Renderer extends marked.Renderer {\r\n heading(text, level, raw) {\r\n let rawName = raw.toLowerCase().replace(/([\\u0000-\\u002F\\u003A-\\u0060\\u007B-\\u007F]+)/g, '-').replace(/^\\-+|\\-+$/, '')\r\n\r\n if (!this.options.headers) {\r\n this.options.headers = []\r\n }\r\n while (this.options.headers.length >= level) {\r\n this.options.headers.pop()\r\n }\r\n let parent = this.options.headers.filter(value => !!value).join('-')\r\n if (parent) {\r\n parent = parent + '-'\r\n }\r\n while (this.options.headers.length < (level - 1)) {\r\n this.options.headers.push('')\r\n }\r\n this.options.headers.push(rawName)\r\n return ''\r\n + text\r\n + '\\n'\r\n }\r\n}\r\n\r\nmarked.setOptions({\r\n renderer: new Renderer(),\r\n gfm: true,\r\n tables: true,\r\n breaks: false,\r\n pedantic: false,\r\n sanitize: false,\r\n smartLists: true,\r\n smartypants: false,\r\n highlight(code, lang) {\r\n if (lang) {\r\n return highlightjs.highlight(lang, code).value\r\n } else {\r\n return highlightjs.highlightAuto(code).value\r\n }\r\n }\r\n})\r\n\r\nVue.directive('markdown', function (el, binding, vnode) {\r\n if (!el.className || !/vue-markdown/.test(el.className)) {\r\n el.className += ' vue-markdown'\r\n }\r\n let text = ''\r\n for (let i = 0; i < vnode.children.length; i++) {\r\n text += vnode.children[i].text || ''\r\n }\r\n if (el.markdown === text) {\r\n return\r\n }\r\n\r\n el.markdown = text\r\n\r\n el.innerHTML = marked(text)\r\n let selectorList = el.querySelectorAll('a')\r\n for (let i = 0; i < selectorList.length; i++) {\r\n selectorList[i].onclick = function (e) {\r\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\r\n return\r\n }\r\n if (e.defaultPrevented) {\r\n return\r\n }\r\n if (e.button !== undefined && e.button !== 0) {\r\n return\r\n }\r\n\r\n if (this.host !== window.location.host) {\r\n return\r\n }\r\n\r\n let href = this.getAttribute('href')\r\n if (!href) {\r\n return\r\n }\r\n\r\n if (href.charAt(0) !== '#') {\r\n return\r\n }\r\n\r\n e.preventDefault()\r\n router.push(href)\r\n }\r\n }\r\n})\r\n\r\n\r\n\r\nVue.filter('formatSize', function (size) {\r\n if (size > 1024 * 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'\r\n } else if (size > 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'\r\n } else if (size > 1024 * 1024) {\r\n return (size / 1024 / 1024).toFixed(2) + ' MB'\r\n } else if (size > 1024) {\r\n return (size / 1024).toFixed(2) + ' KB'\r\n }\r\n return size.toString() + ' B'\r\n})\r\n\r\nVue.filter('toLocale', function (to) {\r\n return '/' + i18n.locale + to\r\n})\r\n\r\n\r\n\r\nnew Vue({\r\n store,\r\n router,\r\n i18n,\r\n ...App\r\n}).$mount('#app')\r\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 }","/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\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&\"","\r\n\r\n","import { render, staticRenderFns } from \"./InputFile.vue?vue&type=template&id=7a2ca5a3&\"\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,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory,\"multiple\":_vm.$parent.multiple && _vm.$parent.features.html5},on:{\"change\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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=a6971c2a&\"\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/src/chunk/ChunkUploadHandler.js b/src/chunk/ChunkUploadHandler.js index 13cc192..962e562 100644 --- a/src/chunk/ChunkUploadHandler.js +++ b/src/chunk/ChunkUploadHandler.js @@ -58,6 +58,18 @@ export default class ChunkUploadHandler { return this.options.action || null } + get startAction() { + return this.options.startAction || this.action + } + + get uploadAction() { + return this.options.uploadAction || this.action + } + + get finishAction() { + return this.options.finishAction || this.action + } + /** * Gets the body to be merged when sending the request in start phase */ @@ -225,7 +237,7 @@ export default class ChunkUploadHandler { headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.startAction, body: Object.assign(this.startBody, { phase: 'start', mime_type: this.fileType, @@ -291,7 +303,7 @@ export default class ChunkUploadHandler { chunk.xhr = createRequest({ method: 'POST', headers: this.headers, - url: this.action + url: this.uploadAction }) chunk.xhr.upload.addEventListener('progress', function (evt) { @@ -340,7 +352,7 @@ export default class ChunkUploadHandler { headers: Object.assign({}, this.headers, { 'Content-Type': 'application/json' }), - url: this.action, + url: this.finishAction, body: Object.assign(this.finishBody, { phase: 'finish', session_id: this.sessionId From ffcfc798835e2be21bdc2d8c53f8083073b45785 Mon Sep 17 00:00:00 2001 From: Andrew Evans Date: Thu, 9 May 2019 12:07:00 +0100 Subject: [PATCH 2/3] Updating documentation --- docs/docs/en.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/docs/en.md b/docs/docs/en.md index 1f502fc..ebce318 100644 --- a/docs/docs/en.md +++ b/docs/docs/en.md @@ -302,7 +302,9 @@ In the following example we are going to add `Chunk Upload Functionality`. This chunk-enabled :chunk="{ - action: '/upload/chunk', + action: '/upload/start', + uploadAction: '/upload/chunk', + finishAction: '/upload/finish', minSize: 1048576, maxActive: 3, maxRetries: 5, @@ -330,7 +332,9 @@ Use the `handler` parameter to use a different Handler ```html :chunk="{ - action: '/upload/chunk', + startAction: '/upload/start', + uploadAction: '/upload/chunk', + finishAction: '/upload/finish', minSize: 1048576, maxActive: 3, maxRetries: 5, From 36d2cc3332a44072821acff259de9f8826e92b8c Mon Sep 17 00:00:00 2001 From: Andrew Evans Date: Thu, 9 May 2019 12:09:39 +0100 Subject: [PATCH 3/3] Updating documentation --- docs/dist/index.js | 2 +- docs/dist/index.js.map | 2 +- docs/docs/en.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/dist/index.js b/docs/dist/index.js index 0b2daab..ca6341e 100644 --- a/docs/dist/index.js +++ b/docs/dist/index.js @@ -2,5 +2,5 @@ * Name: vue-upload-component * Version: 2.8.20 * Author: LianYue - */!function(e){var n={};function r(t){if(n[t])return n[t].exports;var i=n[t]={i:t,l:!1,exports:{}};return e[t].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)r.d(t,i,function(n){return e[n]}.bind(null,i));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="/dist",r(r.s=26)}([function(e,n,r){"use strict";function t(e,n,r,t,i,a,o,s){var l,u="function"==typeof e?e.options:e;if(n&&(u.render=n,u.staticRenderFns=r,u._compiled=!0),t&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),o?(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__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},u._ssrRegister=l):i&&(l=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),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}}r.d(n,"a",function(){return t})},function(e,n,r){e.exports=r(51)},function(e,n){e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var r=function(e,n){var r=e[1]||"",t=e[3];if(!t)return r;if(n&&"function"==typeof btoa){var i=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(t),a=t.sources.map(function(e){return"/*# sourceURL="+t.sourceRoot+e+" */"});return[r].concat(a).concat([i]).join("\n")}return[r].join("\n")}(n,e);return n[2]?"@media "+n[2]+"{"+r+"}":r}).join("")},n.i=function(e,r){"string"==typeof e&&(e=[[null,e,""]]);for(var t={},i=0;ir.parts.length&&(t.parts.length=r.parts.length)}else{var a=[];for(i=0;i<\/script>\r\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\njsDelivr\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n### Simple example\\r\\n\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n Vue-upload-component Test\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\r\\n
\\r\\n \\r\\n Upload file\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n### Chunk Upload\\r\\n\\r\\nThis package allows chunk uploads, which means you can upload a file in different parts.\\r\\n\\r\\nThis process is divided in three phases: start, upload,finish

\\r\\n\\r\\n#### start\\r\\n\\r\\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`.\\r\\n\\r\\nUse the option `startBody` to add more parameters to the body of this request.\\r\\n\\r\\nThe backend should provide a `session_id` (to identify the upload) and a `end_offset` which is the size of every chunk\\r\\n\\r\\n##### HTTP start phase example\\r\\n\\r\\nRequest body example:\\r\\n```\\r\\n{\\r\\n \\\"phase\\\": \\\"start\\\",\\r\\n \\\"mime_type\\\": \\\"image/png\\\",\\r\\n \\\"size\\\": 12669430,\\r\\n \\\"name\\\":\\\"hubbleimage1stscihp1809af6400x4800.png\\\"\\r\\n}\\r\\n```\\r\\n\\r\\nResponse body example:\\r\\n```\\r\\n{\\r\\n  \\\"data\\\": {\\r\\n    \\\"end_offset\\\": 6291456,\\r\\n    \\\"session_id\\\": \\\"61db8102-fca6-44ae-81e2-a499d438e7a5\\\"\\r\\n  },\\r\\n  \\\"status\\\": \\\"success\\\"\\r\\n}\\r\\n\\r\\n```\\r\\n\\r\\n#### upload\\r\\n\\r\\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.\\r\\n\\r\\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.\\r\\n\\r\\nUse the option `uploadBody` to add more parameters to the body of this request.\\r\\n\\r\\n##### HTTP upload phase example with 3 chunks\\r\\n\\r\\nRequest body example - chunk 1 from 3:\\r\\n```\\r\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\r\\nContent-Disposition: form-data; name=\\\"phase\\\"\\r\\n\\r\\nupload\\r\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\r\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\r\\n\\r\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\r\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\r\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\r\\n\\r\\n0\\r\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx\\r\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\r\\nContent-Type: application/octet-stream\\r\\n\\r\\n\\r\\n------WebKitFormBoundaryuI0uiY8h7MCbcysx--\\r\\n```\\r\\n\\r\\nResponse body example - chunk 1 from 3:\\r\\n```\\r\\n{\\r\\n  \\\"status\\\": \\\"success\\\"\\r\\n}\\r\\n```\\r\\n\\r\\nRequest body example - chunk 2 from 3:\\r\\n```\\r\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\r\\nContent-Disposition: form-data; name=\\\"phase\\\"\\r\\n\\r\\nupload\\r\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\r\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\r\\n\\r\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\r\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\r\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\r\\n\\r\\n6291456\\r\\n------WebKitFormBoundary4cjBupFqrx1SrHoR\\r\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\r\\nContent-Type: application/octet-stream\\r\\n\\r\\n\\r\\n------WebKitFormBoundary4cjBupFqrx1SrHoR-\\r\\n```\\r\\n\\r\\nResponse body example - chunk 2 from 3:\\r\\n```\\r\\n{\\r\\n  \\\"status\\\": \\\"success\\\"\\r\\n}\\r\\n```\\r\\n\\r\\nRequest body example - chunk 3 from 3:\\r\\n```\\r\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\r\\nContent-Disposition: form-data; name=\\\"phase\\\"\\r\\n\\r\\nupload\\r\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\r\\nContent-Disposition: form-data; name=\\\"session_id\\\"\\r\\n\\r\\n61db8102-fca6-44ae-81e2-a499d438e7a5\\r\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\r\\nContent-Disposition: form-data; name=\\\"start_offset\\\"\\r\\n\\r\\n12582912\\r\\n------WebKitFormBoundarypWxg4xnB5QBDoFys\\r\\nContent-Disposition: form-data; name=\\\"chunk\\\"; filename=\\\"blob\\\"\\r\\nContent-Type: application/octet-stream\\r\\n\\r\\n\\r\\n------WebKitFormBoundarypWxg4xnB5QBDoFys--\\r\\n```\\r\\n\\r\\nResponse body example - chunk 1 from 3:\\r\\n```\\r\\n{\\r\\n  \\\"status\\\": \\\"success\\\"\\r\\n}\\r\\n```\\r\\n\\r\\n#### finish\\r\\n\\r\\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.\\r\\n\\r\\nUse the option `finishBody` to add more parameters to the body of this request.\\r\\n\\r\\n##### HTTP finish phase example\\r\\n\\r\\nRequest body example:\\r\\n```\\r\\n{\\r\\n \\\"phase\\\": \\\"finish\\\",\\r\\n \\\"session_id\\\": \\\"61db8102-fca6-44ae-81e2-a499d438e7a5\\\"\\r\\n}\\r\\n```\\r\\n\\r\\nResponse body example:\\r\\n```\\r\\n{\\r\\n  \\\"status\\\": \\\"success\\\"\\r\\n}\\r\\n```\\r\\n\\r\\n#### Example\\r\\n\\r\\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.\\r\\n\\r\\n```html\\r\\n \\r\\n Upload file\\r\\n \\r\\n```\\r\\n\\r\\n#### Extending the handler\\r\\n\\r\\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.\\r\\n\\r\\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.\\r\\n\\r\\nUse the `handler` parameter to use a different Handler\\r\\n\\r\\n```html\\r\\n :chunk=\\\"{\\r\\n action: '/upload/chunk',\\r\\n minSize: 1048576,\\r\\n maxActive: 3,\\r\\n maxRetries: 5,\\r\\n\\r\\n handler: MyHandlerClass\\r\\n }\\r\\n```\\r\\n\\r\\n### SSR (Server isomorphism)\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** OR **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //.....\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //.....\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals)\\r\\n\\r\\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/)\\r\\n\\r\\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Props\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\nThe `id` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `this.name`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nThe `name` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `file`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `put-action` is not empty Please give priority to` PUT` request\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\nCustom upload method\\r\\n\\r\\n* **Type:** `async Function`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Details:** \\r\\n\\r\\n `custom-action` priority than `put-action, post-action`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nAttach `header` data\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST request`: Append request `body`\\r\\n`PUT request`: Append request `query`\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\nFile List\\r\\n\\r\\n* **Type:** `Array`\\r\\n\\r\\n* **Default:** `[]`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n View **[`File`](#file)** details\\r\\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\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\nThe `accept` attribute of the input tag, MIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\nThe `multiple` attribute of the input tag\\r\\nWhether to allow multiple files to be selected\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If it is `false` file inside only one file will be automatically deleted\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\nThe `directory` attribute of the input tag\\r\\nWhether it is a upload folder\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\nAllow upload file extensions\\r\\n\\r\\n* **Type:** `Array | String | RegExp`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nAllow the maximum byte to upload\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `0` is equal to not limit\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nUpload timeout time in milliseconds\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### maximum\\r\\n\\r\\nList the maximum number of files\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\nAlso upload the number of files at the same time (number of threads)\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### chunk-enabled\\r\\n\\r\\nWhether chunk uploads is enabled or not\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### chunk\\r\\n\\r\\nAll the options to handle chunk uploads\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:**\\r\\n```js\\r\\n{\\r\\n headers: {\\r\\n 'Content-Type': 'application/json'\\r\\n },\\r\\n action: '',\\r\\n minSize: 1048576,\\r\\n maxActive: 3,\\r\\n maxRetries: 5,\\r\\n\\r\\n // This is the default Handler implemented in this package\\r\\n // you can use your own handler if your protocol is different\\r\\n handler: ChunkUploadDefaultHandler\\r\\n}\\r\\n```\\r\\n\\r\\n### drop\\r\\n\\r\\nDrag and drop upload\\r\\n\\r\\n* **Type:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `true`, read the parent component as a container\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\nWhether to open the drag directory\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `false` filter out the directory\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **Type:** `Boolean, Number`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Version:** : `>=2.6.1`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n The default value of the `index` parameter for the [`add()`](#instance-methods-add) method\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Events\\r\\n\\r\\nThe files is changed to trigger the method\\r\\nDefault for `v-model` binding\\r\\n\\r\\n### @input\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read and write`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n * `prevent: Function` Call this function to prevent modification\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n > Synchronization modify `newFile`\\r\\n > Asynchronous Please use `update`,` add`, `remove`,` clear` method\\r\\n > Asynchronous Please set an error first to prevent being uploaded\\r\\n\\r\\n > Synchronization can not use `update`,` add`, `remove`,` clear` methods\\r\\n > Asynchronous can not modify `newFile`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\nAdd, update, remove after\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read only`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n\\r\\n >You can use `update`,` add`, `remove`,` clear` methods in the event\\r\\n >You can not modify the `newFile` object in the event\\r\\n >You can not modify the `oldFile` object in the event\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Data\\r\\n\\r\\n### features\\r\\n\\r\\nUsed to determine the browser support features\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Support drag and drop upload\\r\\n Support folder upload\\r\\n Support for HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Start upload\\r\\n Stop upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\nIs dragging\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Drag and drop here for upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\nAll uploaded\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n All files have been uploaded\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Methods\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\nUse `id` to get a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `File | Object | Boolean` There is a return file, object that otherwise returns `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\nAdd one or more files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` If it is an array of responses will be an array\\r\\n * `index: Number | Boolean` = [`props.add-index`](#options-props-add-index) `true = ` Start, `false = ` End, `Number = ` Index\\r\\n\\r\\n\\r\\n* **Result:** `Object | Array | Boolean` The incoming array is returned to the array otherwise the object or `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\nAdd the file selected by `` to the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `el: HTMLInputElement` File element\\r\\n\\r\\n\\r\\n* **Result:** `Array` Added list of files\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\nAdd files that are dragged or pasted into the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` Drag or paste data\\r\\n\\r\\n\\r\\n* **Result:** `Promise>` Added list of files\\r\\n\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\nUpdate a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` Updated data object\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `newFile` failed to return` false`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\nRemove a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `oldFile` failed to return` false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### replace()\\r\\n Replace the location of the two files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Boolean`\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\nEmpty the file list\\r\\n\\r\\n* **Result:** `Boolean` Always return `true`\\r\\n\\r\\n\\r\\n\\r\\n## Instance / File\\r\\n\\r\\n\\r\\n\\r\\n> **File object in the `@input-filter` event outside the use of [`update`](#instance-methods-update) method**\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Version:** : `>=2.6.0`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the attribute does not exist, the object will not be processed internally\\r\\n If the attribute does not exist, it is not `File` but `Object`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\nFile ID\\r\\n\\r\\n* **Type:** `String | Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n >`id` can not be repeated\\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nFile size\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `-1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nFilename\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `directory/filename.gif` `filename.gif`\\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `true` = Upload\\r\\n `false` = Abort\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\nUpload failed error code\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Built-in\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\nWhether the upload was successful\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\nCustomize the current file `PUT` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\nCustomize the current file `POST` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nCustomize the current file `HTTP` Header\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\nCustomize the current file `body` or` query` to attach content\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nCustomize the upload timeout for a current single file\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\nResponse data\\r\\n\\r\\n* **Type:** `Object | String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\nUpload progress\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `0.00`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\nPer second upload speed\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` upload` XMLHttpRequest` object\\r\\n\\r\\n* **Type:** `XMLHttpRequest`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` upload` iframe` element\\r\\n\\r\\n* **Type:** `Element`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `= IE9`\\r\\n\"","module.exports = \"## 入门开始\\r\\n\\r\\n### NPM\\r\\n\\r\\n``` bash\\r\\nnpm install vue-upload-component --save\\r\\n```\\r\\n\\r\\n``` js\\r\\nconst VueUploadComponent = require('vue-upload-component')\\r\\nVue.component('file-upload', VueUploadComponent)\\r\\n```\\r\\n\\r\\n### Curated\\r\\n\\r\\n**No data**\\r\\n\\r\\n\\r\\n### 直接使用\\r\\n\\r\\n\\r\\nunpkg\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\njsDelivr\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n### 简单的例子\\r\\n\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n Vue-upload-component Test\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\r\\n
\\r\\n \\r\\n 上传文件\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n\\r\\n### SSR (服务器同构)\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** 或者 **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //...\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //...\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \\r\\n\\r\\n* [**`vue-hackernews` 演示**](https://github.com/lian-yue/vue-hackernews-2.0/) \\r\\n\\r\\n* [**浏览修改文件**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 属性\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\ninput 标签的 `id` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `this.name`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\ninput标签的 `name` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `file`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `put-action` 不为空请优先 `PUT` 请求 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\n自定义上传方法\\r\\n\\r\\n* **类型:** `async Function`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `custom-action` 优先级高于 `put-action, post-action`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义上传请求 `header` 数据\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST 请求`: 附加请求的 body \\r\\n`PUT 请求`: 附加请求的 query \\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\n文件列表\\r\\n\\r\\n* **类型:** `Array`\\r\\n\\r\\n* **默认值:** `[]`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 浏览 **[`File`](#file)** 详细信息 \\r\\n > 为了防止不可预知的错误,不可直接修改 `files`,请使用 [`add`](#实例-方法-add), [`update`](#实例-方法-update), [`remove`](#实例-方法-remove) 方法修改\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\n表单的`accept`属性, MIME type \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\n文件表单的 `multiple` 属性 \\r\\n是否允许选择多个文件 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 如果是 `false` `files` 里面最多只有一个文件 多的会自动删除 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\n文件表单的 `directory` 属性 \\r\\n是否是上传文件夹 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\n允许上传的文件后缀\\r\\n\\r\\n* **类型:** `Array | String | RegExp`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n允许上传的最大字节\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `0` 等于不限制\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n上传超时时间毫秒\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### maximum\\r\\n\\r\\n列表最大文件数\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\n同时并发上传的文件数量 线程数 \\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop\\r\\n\\r\\n拖拽上传 \\r\\n\\r\\n* **类型:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `true` 则读取父组件作为容器 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\n是否开启拖拽目录 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `false` 则过滤掉目录\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **类型:** `Boolean, Number`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **版本:** `>= 2.6.1`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n [`add()`](#实例-方法-add) 方法 `index` 参数的默认值\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 事件\\r\\n\\r\\n文件被改变触发的方法 \\r\\n默认用于`v-model`绑定\\r\\n\\r\\n### @input\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `读写`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n * `prevent: Function` 调用该方法 阻止修改\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n > 事件内同步处理请直接修改 `newFile` \\r\\n > 事件内异步处理请使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步请先设置一个错误以防止被上传\\r\\n\\r\\n > 同步不能使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步不能修改 `newFile`\\r\\n\\r\\n\\r\\n* **示例:** \\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\n添加,更新,移除 后\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `只读`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n >事件内可使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n >事件内不可修改 `newFile` 对象 \\r\\n >事件内不可修改 `oldFile` 对象\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 数据\\r\\n\\r\\n### features\\r\\n\\r\\n用于判断浏览器支持的特性\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 支持拖拽上传\\r\\n 支持文件夹上传\\r\\n 支持HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或停止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 开始上传\\r\\n 停止上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\n是否正在拖拽\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 拖拽到这里上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\n是否全部已上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 全部文件已上传完毕\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 方法\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\n使用`id`获得某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `File | Object | Boolean` 存在返回文件对象否则返回 `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\n添加一个或多个文件\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` 如果它是一个数组的响应将是一个数组\\r\\n * `index: Number | Boolean` = [`props.add-index`](#选项-属性-add-index) `true = ` 开始位置, `false = ` 结束位置, `Number = ` 下标位置\\r\\n\\r\\n\\r\\n* **结果:** `Object | Array | Boolean` 传入的是数组返回数组否则对象或`false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\n把``选择的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `el: HTMLInputElement` 文件元素\\r\\n\\r\\n\\r\\n* **结果:** `Array` 返回已添加的文件列表\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\n把拖拽或者粘贴的数据的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` 拖拽或者粘贴的数据\\r\\n\\r\\n\\r\\n* **结果:** `Promise>` 返回已添加的文件列表\\r\\n\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\n更新某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` 更新的数据对象\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `newFile` 失败返回 `false`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\n移除某个文件对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `oldFile` 失败返回 `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### replace()\\r\\n 替换两个文件的位置\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Boolean`\\r\\n\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\n清空文件列表\\r\\n\\r\\n* **结果:** `Boolean` 总是返回 `true`\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / File\\r\\n\\r\\n\\r\\n> **文件对象在`input-filter`事件外修改请使用 [`update`](#实例-方法-update) 方法**\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **版本:** : `>=2.6.0`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果属性不存在,则不会在内部处理该对象 \\r\\n 如果属性不存在,它不是 `File` 而是 `Object`\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\n文件id\\r\\n\\r\\n* **类型:** `String | Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n >`id` can not be repeated \\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n文件大小\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `-1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\n文件名 \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `directory/filename.gif` `filename.gif` \\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME类型\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或终止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `true` = 上传 \\r\\n `false` = 停止 \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\n上传失败错误代码\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 内置\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\n是否上传成功\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\n自定义当前文件 `PUT` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\n自定义当前文件 `POST` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义当前文件 `HTTP` Header\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n自定义当前文件 `body` 或 `query` 附加内容\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n自定义当前单个文件的上传超时时间\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\n响应的数据\\r\\n\\r\\n* **类型:** `Object | String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\n上传进度\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `0.00`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\n每秒的上传速度\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` 上传 `XMLHttpRequest` 对象\\r\\n\\r\\n* **类型:** `XMLHttpRequest`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` 上传 `iframe` 元素\\r\\n\\r\\n* **类型:** `Element`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `= IE9`\\r\\n\"","module.exports = VueRouter;","module.exports = VueI18n;","module.exports = ImageCompressor;","var map = {\n\t\"./en\": 21,\n\t\"./en.md\": 21,\n\t\"./zh-cn\": 22,\n\t\"./zh-cn.md\": 22\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 27;","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.document-title {\\r\\n margin-bottom: 2rem;\\r\\n padding-bottom: 1rem;\\r\\n border-bottom: 1px solid #ddd;\\n}\\n.document-content h2 {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-top: 4rem;\\r\\n border-bottom: 1px solid #eaecef;\\n}\\n.document-content h2:first-child {\\r\\n margin-top: 0;\\n}\\n.document-content h2 + h3 {\\r\\n margin-top: 0rem;\\n}\\n.document-content h3 {\\r\\n margin-top: 1.5rem;\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 1rem;\\n}\\r\\n\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.file-uploads {\\r\\n overflow: hidden;\\r\\n position: relative;\\r\\n text-align: center;\\r\\n display: inline-block;\\n}\\n.file-uploads.file-uploads-html4 input, .file-uploads.file-uploads-html5 label {\\r\\n /* background fix ie click */\\r\\n background: #fff;\\r\\n opacity: 0;\\r\\n font-size: 20em;\\r\\n z-index: 1;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\n}\\n.file-uploads.file-uploads-html5 input, .file-uploads.file-uploads-html4 label {\\r\\n /* background fix ie click */\\r\\n background: rgba(255, 255, 255, 0);\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n width: 1px;\\r\\n height: 1px;\\r\\n z-index: -1;\\r\\n opacity: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-full .btn-group .dropdown-menu {\\r\\n display: block;\\r\\n visibility: hidden;\\r\\n transition: all .2s\\n}\\n.example-full .btn-group:hover > .dropdown-menu {\\r\\n visibility: visible;\\n}\\n.example-full label.dropdown-item {\\r\\n margin-bottom: 0;\\n}\\n.example-full .btn-group .dropdown-toggle {\\r\\n margin-right: .6rem\\n}\\n.example-full .filename {\\r\\n margin-bottom: .3rem\\n}\\n.example-full .btn-is-option {\\r\\n margin-top: 0.25rem;\\n}\\n.example-full .example-foorer {\\r\\n padding: .5rem 0;\\r\\n border-top: 1px solid #e9ecef;\\r\\n border-bottom: 1px solid #e9ecef;\\n}\\n.example-full .edit-image img {\\r\\n max-width: 100%;\\n}\\n.example-full .edit-image-tool {\\r\\n margin-top: .6rem;\\n}\\n.example-full .edit-image-tool .btn-group{\\r\\n margin-right: .6rem;\\n}\\n.example-full .footer-status {\\r\\n padding-top: .4rem;\\n}\\n.example-full .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-full .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-avatar .avatar-upload .rounded-circle {\\r\\n width: 200px;\\r\\n height: 200px;\\n}\\n.example-avatar .text-center .btn {\\r\\n margin: 0 .5rem\\n}\\n.example-avatar .avatar-edit-image {\\r\\n max-width: 100%\\n}\\n.example-avatar .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-avatar .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-drag label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-drag .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-drag .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-multiple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-multiple .upload {\\r\\n margin-bottom: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.chunk-loading[data-v-2e13353d] {\\n margin: -12px;\\n display: flex;\\n width: calc(100% + 24px);\\n}\\n.chunk-loading .chunk-loading-part[data-v-2e13353d] {\\n height: 25px;\\n line-height: 25px;\\n flex: 1;\\n background: #ccc;\\n font-size: 14px;\\n color: white;\\n text-align: center;\\n}\\n.chunk-loading .chunk-loading-part.chunk-loading-part__uploaded[data-v-2e13353d] {\\n background: #28A745;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-vuex label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#header {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 0;\\r\\n z-index: 1071;\\n}\\n#sidebar {\\r\\n background: #fff;\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n@media (min-width: 768px) {\\n#sidebar {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 3.5rem;\\r\\n z-index: 1000;\\r\\n max-height: calc(100vh - 3.5rem);\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n}\\n#sidebar-nav {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-right: -15px;\\r\\n margin-left: -15px;\\r\\n max-height: 100%;\\r\\n overflow-y: auto;\\n}\\n#sidebar-nav .nav {\\r\\n display: block;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item.active .nav, #sidebar-nav .nav .active + .nav {\\r\\n display: block;\\n}\\n@media (min-width: 768px) {\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: block;\\n}\\n}\\n#sidebar-nav .nav .nav-link.active, #sidebar-nav .nav .active > .nav-link{\\r\\n color: #262626;\\r\\n font-weight: 500;\\n}\\n#sidebar-nav .nav-item .nav-link {\\r\\n padding: .25rem 1rem;\\r\\n font-weight: 500;\\r\\n color: #666\\n}\\n#sidebar-nav .nav-item .nav-item .nav-link {\\r\\n font-weight: 400;\\r\\n font-size: 85%;\\r\\n margin-left: 1rem\\n}\\n#main {\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 2rem\\n}\\nblockquote {\\r\\n margin-bottom: 1rem;\\r\\n font-size: 1.25rem;\\r\\n padding: 0 1em;\\r\\n color: #6a737d;\\r\\n border-left: 0.25em solid #dfe2e5;\\n}\\npre {\\r\\n padding: 16px;\\r\\n overflow: auto;\\r\\n font-size: 85%;\\r\\n line-height: 1.45;\\r\\n background-color: #f6f8fa;\\r\\n border-radius: 3px;\\n}\\n.modal-backdrop.fade {\\r\\n visibility: hidden;\\n}\\n.modal-backdrop.fade.show {\\r\\n visibility: visible;\\n}\\n.fade.show {\\r\\n display: block;\\r\\n z-index: 1072;\\n}\\r\\n\", \"\"]);\n\n// exports\n","// import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n//\r\n// Vue.use(Vuex)\r\n\r\n\r\nconst state = {\r\n files: [],\r\n}\r\n\r\nconst mutations = {\r\n updateFiles(state, files) {\r\n state.files = files\r\n }\r\n}\r\nexport default new Vuex.Store({\r\n strict: true,\r\n state,\r\n mutations\r\n})\r\n","// import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\nimport en from './en'\r\nimport zhCN from './zh-cn'\r\n\r\n// Vue.use(VueI18n)\r\n\r\nexport default new VueI18n({\r\n locale: 'en',\r\n messages: {\r\n 'zh-cn': zhCN,\r\n en,\r\n }\r\n})\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: '首页',\r\n examples: '演示',\r\n documents: '文档',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: '文档',\r\n },\r\n\r\n\r\n example: {\r\n full: '完整例子',\r\n simple: '简单例子',\r\n avatar: '上传头像',\r\n drag: '拖拽上传',\r\n multiple: '多个实例',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: 'Home',\r\n examples: 'Examples',\r\n documents: 'Documentation',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: 'Documentation',\r\n },\r\n\r\n example: {\r\n full: 'Full Example',\r\n simple: 'Simple',\r\n avatar: 'Upload avatar',\r\n drag: 'Drag and drop',\r\n multiple: 'Multiple instances',\r\n chunk: 'Chunk upload',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./Router.vue?vue&type=template&id=aa322866&\"\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('router-view')}\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!./Document.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!./Document.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=3c2a08e8&\"\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)})):_vm._e()],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('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=8abae946&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Full.vue?vue&type=template&id=635f372c&\"\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(\"\\r\\n Options\\r\\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(\"\\r\\n \"+_vm._s(file.name)+\"\\r\\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(\"\\r\\n Action\\r\\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();_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();_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();_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(\"\\r\\n Drop: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.drop : false)+\",\\r\\n Active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.active : false)+\",\\r\\n Uploaded: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.uploaded : true)+\",\\r\\n Drop active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.dropActive : false)+\"\\r\\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(\"\\r\\n Select\\r\\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.onAddFolader}},[_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(\"\\r\\n Start Upload\\r\\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(\"\\r\\n Stop Upload\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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\\r\\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\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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(\"\\r\\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Simple.vue?vue&type=template&id=17eaeea2&\"\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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=1c6ae484&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Drag.vue?vue&type=template&id=2868a160&\"\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')])})):_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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Multiple.vue?vue&type=template&id=d796f814&\"\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')])})),_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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Chunk.vue?vue&type=template&id=2e13353d&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=2e13353d&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 \"2e13353d\",\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){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){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)})):_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&\"","\r\n\r\n\r\n\r\n","// import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\n\r\nimport i18n from './i18n'\r\nimport RouterComponent from './views/Router'\r\nimport DocumentComponent from './views/Document'\r\nimport ExampleComponent from './views/Example'\r\n\r\nimport FullExampleComponent from './views/examples/Full'\r\nimport SimpleExampleComponent from './views/examples/Simple'\r\nimport AvatarExampleComponent from './views/examples/Avatar'\r\nimport DragExampleComponent from './views/examples/Drag'\r\nimport MultipleExampleComponent from './views/examples/Multiple'\r\nimport ChunkExampleComponent from './views/examples/Chunk'\r\nimport VuexExampleComponent from './views/examples/Vuex'\r\n\r\n\r\n\r\n// Vue.use(VueRouter)\r\n\r\n\r\nlet examples = [\r\n {\r\n path: '',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'full',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'simple',\r\n component: SimpleExampleComponent,\r\n },\r\n {\r\n path: 'avatar',\r\n component: AvatarExampleComponent,\r\n },\r\n {\r\n path: 'drag',\r\n component: DragExampleComponent,\r\n },\r\n {\r\n path: 'multiple',\r\n component: MultipleExampleComponent,\r\n },\r\n {\r\n path: 'chunk',\r\n component: ChunkExampleComponent,\r\n },\r\n {\r\n path: 'vuex',\r\n component: VuexExampleComponent,\r\n },\r\n]\r\n\r\n\r\n\r\nconst router = new VueRouter({\r\n mode: 'hash',\r\n fallback: false,\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n return savedPosition\r\n } else if (to.hash) {\r\n let el = document.querySelector(to.hash)\r\n return { x: 0, y: el ? el.offsetTop : 0 }\r\n } else {\r\n return { x: 0, y: 0 }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/:locale(' + Object.keys(i18n.messages).join('|') + ')?',\r\n component: RouterComponent,\r\n children: [\r\n {\r\n path: 'documents',\r\n component: DocumentComponent,\r\n },\r\n {\r\n path: 'examples',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n {\r\n path: '',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n ]\r\n },\r\n ]\r\n})\r\nexport default router\r\n","import { render, staticRenderFns } from \"./Vuex.vue?vue&type=template&id=df415d08&\"\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')])})),_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&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=95eafede&\"\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();_vm.onLocale(true)},\"focus\":function($event){_vm.onLocale(true)},\"blur\":function($event){_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){_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))])}))]),_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'\r\nimport marked from 'marked'\r\nimport highlightjs from 'highlight.js'\r\nimport store from './store'\r\nimport router from './router'\r\nimport i18n from './i18n'\r\nimport App from './views/App'\r\n\r\nVue.config.silent = false\r\nVue.config.devtools = true\r\n\r\n\r\nclass Renderer extends marked.Renderer {\r\n heading(text, level, raw) {\r\n let rawName = raw.toLowerCase().replace(/([\\u0000-\\u002F\\u003A-\\u0060\\u007B-\\u007F]+)/g, '-').replace(/^\\-+|\\-+$/, '')\r\n\r\n if (!this.options.headers) {\r\n this.options.headers = []\r\n }\r\n while (this.options.headers.length >= level) {\r\n this.options.headers.pop()\r\n }\r\n let parent = this.options.headers.filter(value => !!value).join('-')\r\n if (parent) {\r\n parent = parent + '-'\r\n }\r\n while (this.options.headers.length < (level - 1)) {\r\n this.options.headers.push('')\r\n }\r\n this.options.headers.push(rawName)\r\n return ''\r\n + text\r\n + '\\n'\r\n }\r\n}\r\n\r\nmarked.setOptions({\r\n renderer: new Renderer(),\r\n gfm: true,\r\n tables: true,\r\n breaks: false,\r\n pedantic: false,\r\n sanitize: false,\r\n smartLists: true,\r\n smartypants: false,\r\n highlight(code, lang) {\r\n if (lang) {\r\n return highlightjs.highlight(lang, code).value\r\n } else {\r\n return highlightjs.highlightAuto(code).value\r\n }\r\n }\r\n})\r\n\r\nVue.directive('markdown', function (el, binding, vnode) {\r\n if (!el.className || !/vue-markdown/.test(el.className)) {\r\n el.className += ' vue-markdown'\r\n }\r\n let text = ''\r\n for (let i = 0; i < vnode.children.length; i++) {\r\n text += vnode.children[i].text || ''\r\n }\r\n if (el.markdown === text) {\r\n return\r\n }\r\n\r\n el.markdown = text\r\n\r\n el.innerHTML = marked(text)\r\n let selectorList = el.querySelectorAll('a')\r\n for (let i = 0; i < selectorList.length; i++) {\r\n selectorList[i].onclick = function (e) {\r\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\r\n return\r\n }\r\n if (e.defaultPrevented) {\r\n return\r\n }\r\n if (e.button !== undefined && e.button !== 0) {\r\n return\r\n }\r\n\r\n if (this.host !== window.location.host) {\r\n return\r\n }\r\n\r\n let href = this.getAttribute('href')\r\n if (!href) {\r\n return\r\n }\r\n\r\n if (href.charAt(0) !== '#') {\r\n return\r\n }\r\n\r\n e.preventDefault()\r\n router.push(href)\r\n }\r\n }\r\n})\r\n\r\n\r\n\r\nVue.filter('formatSize', function (size) {\r\n if (size > 1024 * 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'\r\n } else if (size > 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'\r\n } else if (size > 1024 * 1024) {\r\n return (size / 1024 / 1024).toFixed(2) + ' MB'\r\n } else if (size > 1024) {\r\n return (size / 1024).toFixed(2) + ' KB'\r\n }\r\n return size.toString() + ' B'\r\n})\r\n\r\nVue.filter('toLocale', function (to) {\r\n return '/' + i18n.locale + to\r\n})\r\n\r\n\r\n\r\nnew Vue({\r\n store,\r\n router,\r\n i18n,\r\n ...App\r\n}).$mount('#app')\r\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 }","/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\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&\"","\r\n\r\n","import { render, staticRenderFns } from \"./InputFile.vue?vue&type=template&id=7a2ca5a3&\"\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,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory,\"multiple\":_vm.$parent.multiple && _vm.$parent.features.html5},on:{\"change\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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=a6971c2a&\"\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:///./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?b069","webpack:///./docs/views/examples/Vuex.vue?098c","webpack:///./docs/views/App.vue?1892","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:///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?d988","webpack:///./docs/views/examples/Chunk.vue?429c","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?2579","webpack:///./docs/views/Document.vue?561e","webpack:///docs/views/Document.vue","webpack:///./docs/views/Document.vue","webpack:///./docs/views/Document.vue?181f","webpack:///./docs/views/Example.vue","webpack:///./docs/views/Example.vue?2da1","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?d6da","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?22cb","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?9d04","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?6c28","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?3a5f","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?4003","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?ecd6","webpack:///./docs/views/App.vue?38a5","webpack:///docs/views/App.vue","webpack:///./docs/views/App.vue","webpack:///./docs/views/App.vue?720b","webpack:///./docs/index.js","webpack:///./src/FileUpload.vue?205b","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?3e23","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","__webpack_exports__","useSourceMap","list","toString","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","toComment","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","length","id","push","_listToStyles__WEBPACK_IMPORTED_MODULE_0__","_listToStyles__WEBPACK_IMPORTED_MODULE_0___default","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","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","css","media","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","replaceText","textStore","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","Vue","marked","locals","default","Vuex","Cropper","hljs","newStyles","part","VueRouter","VueI18n","ImageCompressor","./en","./en.md","./zh-cn","./zh-cn.md","webpackContext","req","webpackContextResolve","e","code","keys","resolve","store","a","Store","strict","state","files","mutations","updateFiles","i18n","locale","messages","zh-cn","header","logo","home","examples","documents","blog","issues","github","en","title","example","full","simple","avatar","drag","multiple","vuex","chunk","Router","componentNormalizer","_h","$createElement","_self","_c","views_Documentvue_type_script_lang_js_","mounted","$route","hash","el","decodeURIComponent","window","scrollTo","offsetTop","computed","$i18n","navs","tokens","external_marked_default","lexer","rootNode","children","level","navPrev","token","nav","text","replace","depth","Document","_vm","staticClass","attrs","_l","group","class","nav-item","active","indexOf","nav-link","active-class","to","_v","_s","child","_e","role","$t","directives","rawName","Example","_f","examples_Fullvue_type_script_lang_js_","components","FileUpload","src_default","data","accept","extensions","minSize","size","directory","drop","dropDirectory","addIndex","thread","postAction","putAction","headers","X-Csrf-Token","_csrf_token","autoCompress","uploadAuto","isOption","addData","show","editFile","watch","editFile.show","newValue","oldValue","$refs","upload","error","$nextTick","editImage","cropper","external_Cropper_default","autoCrop","_extends","addData.show","methods","inputFilter","newFile","oldFile","prevent","_this","file","substr","external_ImageCompressor_default","convertSize","Infinity","maxWidth","maxHeight","compress","then","catch","err","message","blob","URL","webkitURL","createObjectURL","thumb","inputFile","progress","success","response","alert","_alert","_x","apply","arguments","onEditFileShow","onEditorFile","features","html5","binStr","atob","getCroppedCanvas","toDataURL","split","arr","Uint8Array","charCodeAt","File","onAddFolader","_this2","input","$el","webkitdirectory","onclick","click","onAddData","Full","on","$event","preventDefault","aria-hidden","dropActive","expression","_m","colspan","for","src","width","height","progress-bar","progress-bar-striped","bg-danger","progress-bar-animated","style","speed","dropdown-item","disabled","href","uploaded","ref","post-action","put-action","drop-directory","add-index","input-filter","input-file","model","callback","$$v","domProps","target","composing","checked","_q","change","modifiers","number","max","min","_n","blur","$forceUpdate","Array","isArray","_i","$$a","$$el","$$c","$$i","slice","modal-backdrop","fade","modal","tabindex","submit","required","placeholder","$set","rows","rotate","crop","clear","examples_Simplevue_type_script_lang_js_","console","log","Simple","examples_Avatarvue_type_script_lang_js_","edit","aspectRatio","viewMode","destroy","editSave","url","Avatar","examples_Dragvue_type_script_lang_js_","Drag","examples_Multiplevue_type_script_lang_js_","files1","files2","Multiple","input-id","upload1","upload2","examples_Chunkvue_type_script_lang_js_","chunkEnabled","chunkMinSize","chunkMaxActive","chunkMaxRetries","Chunk","pause","hasChunksToUpload","resume","chunks","chunksUploading","chunksUploaded","chunk-loading-part__uploaded","retries","maxRetries","chunk-enabled","action","maxActive","examples_Vuexvue_type_script_lang_js_","Vuexvue_type_script_lang_js_extends","external_Vuex_","inputUpdate","$store","commit","path","component","docs_router","external_VueRouter_default","fallback","scrollBehavior","from","savedPosition","x","y","routes","views_Appvue_type_script_lang_js_","showLocale","showNav","params","beforeUpdate","onLocale","setTimeout","App","exact","collapse","navbar-collapse","rel","focus","dropdown-menu","fullPath","external_Vue_default","config","silent","devtools","Renderer","raw","pop","headerPrefix","setOptions","renderer","gfm","tables","breaks","pedantic","sanitize","smartLists","smartypants","highlight","lang","external_hljs_default","highlightAuto","directive","binding","vnode","className","markdown","innerHTML","selectorList","querySelectorAll","metaKey","ctrlKey","shiftKey","defaultPrevented","undefined","button","host","location","getAttribute","charAt","toFixed","docs_extends","router","$mount","createRequest","xhr","XMLHttpRequest","open","method","responseType","forEach","setRequestHeader","request","body","Promise","reject","onload","status","parse","onerror","send","sendRequest","ChunkUploadHandler","_classCallCheck","start","end","chunkSize","fileSize","startOffset","stopChunks","abort","startChunking","promise","assign","Content-Type","startAction","startBody","phase","mime_type","fileType","fileName","res","sessionId","session_id","end_offset","createChunks","maxActiveChunks","uploadNextChunk","uploadChunk","chunksToUpload","finish","_this3","updateFileProgress","uploadAction","addEventListener","evt","lengthComputable","Math","round","loaded","total","FormData","append","sendFormRequest","uploadBody","start_offset","_this4","finishAction","finishBody","parseInt","_this5","completedProgress","uploadingProgress","reduce","src_InputFilevue_type_script_lang_js_","$parent","addInputFile","$destroy","constructor","InputFile","inputId","capture","CHUNK_DEFAULT_OPTIONS","handler","chunk_ChunkUploadHandler","src_FileUploadvue_type_script_lang_js_","props","String","maximum","Number","customAction","Function","timeout","uploading","ondrop","maps","watchDrop","beforeDestroy","fileObject","chunkOptions","_active","watchActive","oldMaps","emitFile","_key","emitInput","_typeof","_files","addFiles","Blob","webkitRelativePath","relativePath","Element","random","emitFilter","newFiles","_newFiles","splice","_file2","_i2","names","__vuex__","addDataTransfer","dataTransfer","items","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","_toConsumableArray","_i3","entry","isFile","isDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","file2","index1","index2","isPrevent","$emit","RegExp","trim","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","HandlerClass","querys","queryString","uploadXhr","form","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","interval","setInterval","clearInterval","complete","fn","responseText","contentType","getResponseHeader","onabort","ontimeout","_this6","onKeydown","keyCode","iframe","removeEventListener","doc","contentWindow","contentDocument","getResponseData","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","dt","types","contains","nodeName","explicitOriginalTarget","fromElement","clientX","clientY","innerWidth","innerHeight","FileUpload_component","_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 () { injectStyles.call(this, this.$root.$options.shadowRoot) }\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 functioal 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')\r\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 \\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** OR **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //.....\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //.....\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals)\\r\\n\\r\\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/)\\r\\n\\r\\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Props\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\nThe `id` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `this.name`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nThe `name` attribute of the input tag\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `file`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` Request upload URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `put-action` is not empty Please give priority to` PUT` request\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\nCustom upload method\\r\\n\\r\\n* **Type:** `async Function`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Details:** \\r\\n\\r\\n `custom-action` priority than `put-action, post-action`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nAttach `header` data\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST request`: Append request `body`\\r\\n`PUT request`: Append request `query`\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\nFile List\\r\\n\\r\\n* **Type:** `Array`\\r\\n\\r\\n* **Default:** `[]`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n View **[`File`](#file)** details\\r\\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\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\nThe `accept` attribute of the input tag, MIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\nThe `multiple` attribute of the input tag\\r\\nWhether to allow multiple files to be selected\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If it is `false` file inside only one file will be automatically deleted\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\nThe `directory` attribute of the input tag\\r\\nWhether it is a upload folder\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\nAllow upload file extensions\\r\\n\\r\\n* **Type:** `Array | String | RegExp`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nAllow the maximum byte to upload\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `0` is equal to not limit\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nUpload timeout time in milliseconds\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### maximum\\r\\n\\r\\nList the maximum number of files\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\nAlso upload the number of files at the same time (number of threads)\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Default:** `1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n### chunk-enabled\\r\\n\\r\\nWhether chunk uploads is enabled or not\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### chunk\\r\\n\\r\\nAll the options to handle chunk uploads\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Default:**\\r\\n```js\\r\\n{\\r\\n headers: {\\r\\n 'Content-Type': 'application/json'\\r\\n },\\r\\n action: '',\\r\\n minSize: 1048576,\\r\\n maxActive: 3,\\r\\n maxRetries: 5,\\r\\n\\r\\n // This is the default Handler implemented in this package\\r\\n // you can use your own handler if your protocol is different\\r\\n handler: ChunkUploadDefaultHandler\\r\\n}\\r\\n```\\r\\n\\r\\n### drop\\r\\n\\r\\nDrag and drop upload\\r\\n\\r\\n* **Type:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Browser:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `true`, read the parent component as a container\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\nWhether to open the drag directory\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If set to `false` filter out the directory\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **Type:** `Boolean, Number`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Version:** : `>=2.6.1`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n The default value of the `index` parameter for the [`add()`](#instance-methods-add) method\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Options / Events\\r\\n\\r\\nThe files is changed to trigger the method\\r\\nDefault for `v-model` binding\\r\\n\\r\\n### @input\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read and write`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n * `prevent: Function` Call this function to prevent modification\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n > Synchronization modify `newFile`\\r\\n > Asynchronous Please use `update`,` add`, `remove`,` clear` method\\r\\n > Asynchronous Please set an error first to prevent being uploaded\\r\\n\\r\\n > Synchronization can not use `update`,` add`, `remove`,` clear` methods\\r\\n > Asynchronous can not modify `newFile`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\nAdd, update, remove after\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `Read only`\\r\\n * `oldFile: File | Object | undefined` `Read only`\\r\\n\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the `newFile` value is `undefined` 'is deleted\\r\\n If the `oldFile` value is `undefined` 'is added\\r\\n If `newFile`, `oldFile` is exist, it is updated\\r\\n\\r\\n\\r\\n >You can use `update`,` add`, `remove`,` clear` methods in the event\\r\\n >You can not modify the `newFile` object in the event\\r\\n >You can not modify the `oldFile` object in the event\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Data\\r\\n\\r\\n### features\\r\\n\\r\\nUsed to determine the browser support features\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Support drag and drop upload\\r\\n Support folder upload\\r\\n Support for HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Start upload\\r\\n Stop upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\nIs dragging\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n Drag and drop here for upload\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\nAll uploaded\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n All files have been uploaded\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## Instance / Methods\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\nUse `id` to get a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `File | Object | Boolean` There is a return file, object that otherwise returns `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\nAdd one or more files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` If it is an array of responses will be an array\\r\\n * `index: Number | Boolean` = [`props.add-index`](#options-props-add-index) `true = ` Start, `false = ` End, `Number = ` Index\\r\\n\\r\\n\\r\\n* **Result:** `Object | Array | Boolean` The incoming array is returned to the array otherwise the object or `false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\nAdd the file selected by `` to the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `el: HTMLInputElement` File element\\r\\n\\r\\n\\r\\n* **Result:** `Array` Added list of files\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\nAdd files that are dragged or pasted into the upload list\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` Drag or paste data\\r\\n\\r\\n\\r\\n* **Result:** `Promise>` Added list of files\\r\\n\\r\\n\\r\\n* **Version:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\nUpdate a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` Updated data object\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `newFile` failed to return` false`\\r\\n\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\nRemove a file object\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Object | Boolean` Successfully returned `oldFile` failed to return` false`\\r\\n\\r\\n* **Usage:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### replace()\\r\\n Replace the location of the two files\\r\\n\\r\\n* **Arguments:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **Result:** `Boolean`\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\nEmpty the file list\\r\\n\\r\\n* **Result:** `Boolean` Always return `true`\\r\\n\\r\\n\\r\\n\\r\\n## Instance / File\\r\\n\\r\\n\\r\\n\\r\\n> **File object in the `@input-filter` event outside the use of [`update`](#instance-methods-update) method**\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **Default:** `true`\\r\\n\\r\\n* **Version:** : `>=2.6.0`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n If the attribute does not exist, the object will not be processed internally\\r\\n If the attribute does not exist, it is not `File` but `Object`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\nFile ID\\r\\n\\r\\n* **Type:** `String | Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n >`id` can not be repeated\\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\nFile size\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `-1`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\nFilename\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `directory/filename.gif` `filename.gif`\\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME type\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Format: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\nActivation or abort upload\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n `true` = Upload\\r\\n `false` = Abort\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\nUpload failed error code\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** ` `\\r\\n\\r\\n* **Details:**\\r\\n\\r\\n Built-in\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\nWhether the upload was successful\\r\\n\\r\\n* **Type:** `Boolean`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\nCustomize the current file `PUT` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\nCustomize the current file `POST` URL\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\nCustomize the current file `HTTP` Header\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\nCustomize the current file `body` or` query` to attach content\\r\\n\\r\\n* **Type:** `Object`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\nCustomize the upload timeout for a current single file\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\nResponse data\\r\\n\\r\\n* **Type:** `Object | String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\nUpload progress\\r\\n\\r\\n* **Type:** `String`\\r\\n\\r\\n* **Read only:** `false`\\r\\n\\r\\n* **Default:** `0.00`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\nPer second upload speed\\r\\n\\r\\n* **Type:** `Number`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `0`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` upload` XMLHttpRequest` object\\r\\n\\r\\n* **Type:** `XMLHttpRequest`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` upload` iframe` element\\r\\n\\r\\n* **Type:** `Element`\\r\\n\\r\\n* **Read only:** `true`\\r\\n\\r\\n* **Default:** `undefined`\\r\\n\\r\\n* **Browser:** `= IE9`\\r\\n\"","module.exports = \"## 入门开始\\r\\n\\r\\n### NPM\\r\\n\\r\\n``` bash\\r\\nnpm install vue-upload-component --save\\r\\n```\\r\\n\\r\\n``` js\\r\\nconst VueUploadComponent = require('vue-upload-component')\\r\\nVue.component('file-upload', VueUploadComponent)\\r\\n```\\r\\n\\r\\n### Curated\\r\\n\\r\\n**No data**\\r\\n\\r\\n\\r\\n### 直接使用\\r\\n\\r\\n\\r\\nunpkg\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\njsDelivr\\r\\n\\r\\n``` html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n### 简单的例子\\r\\n\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n Vue-upload-component Test\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
    \\r\\n
  • {{file.name}} - Error: {{file.error}}, Success: {{file.success}}
  • \\r\\n
\\r\\n \\r\\n 上传文件\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n\\r\\n### SSR (服务器同构)\\r\\n\\r\\n\\r\\n```html\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n** 或者 **\\r\\n\\r\\n\\r\\n```js\\r\\nimport FileUpload from 'vue-upload-component/src'\\r\\n```\\r\\n\\r\\nwebpack.config.js\\r\\n\\r\\n```js\\r\\nconst nodeExternals = require('webpack-node-externals');\\r\\n{\\r\\n //...\\r\\n externals: [\\r\\n nodeExternals({whitelist:[/^vue-upload-component\\\\/src/]})\\r\\n ]\\r\\n //...\\r\\n}\\r\\n```\\r\\n\\r\\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \\r\\n\\r\\n* [**`vue-hackernews` 演示**](https://github.com/lian-yue/vue-hackernews-2.0/) \\r\\n\\r\\n* [**浏览修改文件**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 属性\\r\\n\\r\\n\\r\\n### input-id\\r\\n\\r\\ninput 标签的 `id` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `this.name`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\ninput标签的 `name` 属性\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `file`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### post-action\\r\\n\\r\\n`POST` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### put-action\\r\\n\\r\\n`PUT` 请求的上传URL\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `put-action` 不为空请优先 `PUT` 请求 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### custom-action\\r\\n\\r\\n自定义上传方法\\r\\n\\r\\n* **类型:** `async Function`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n `custom-action` 优先级高于 `put-action, post-action`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n ```js\\r\\n async function customAction(file, component) {\\r\\n // return await component.uploadPut(file)\\r\\n return await component.uploadHtml4(file)\\r\\n }\\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义上传请求 `header` 数据\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n`POST 请求`: 附加请求的 body \\r\\n`PUT 请求`: 附加请求的 query \\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### value, v-model\\r\\n\\r\\n文件列表\\r\\n\\r\\n* **类型:** `Array`\\r\\n\\r\\n* **默认值:** `[]`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 浏览 **[`File`](#file)** 详细信息 \\r\\n > 为了防止不可预知的错误,不可直接修改 `files`,请使用 [`add`](#实例-方法-add), [`update`](#实例-方法-update), [`remove`](#实例-方法-remove) 方法修改\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### accept\\r\\n\\r\\n表单的`accept`属性, MIME type \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### multiple\\r\\n\\r\\n文件表单的 `multiple` 属性 \\r\\n是否允许选择多个文件 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:** \\r\\n\\r\\n 如果是 `false` `files` 里面最多只有一个文件 多的会自动删除 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### directory\\r\\n\\r\\n文件表单的 `directory` 属性 \\r\\n是否是上传文件夹 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=input-file-directory](http://caniuse.com/#feat=input-file-directory)\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### extensions\\r\\n\\r\\n允许上传的文件后缀\\r\\n\\r\\n* **类型:** `Array | String | RegExp`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n允许上传的最大字节\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `0` 等于不限制\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n上传超时时间毫秒\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### maximum\\r\\n\\r\\n列表最大文件数\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `props.multiple ? 0 : 1`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### thread\\r\\n\\r\\n同时并发上传的文件数量 线程数 \\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **默认值:** `1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop\\r\\n\\r\\n拖拽上传 \\r\\n\\r\\n* **类型:** `Boolean | Element | CSS selector`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **浏览器:** [http://caniuse.com/#feat=dragndrop](http://caniuse.com/#feat=dragndrop)\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `true` 则读取父组件作为容器 \\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### drop-directory\\r\\n\\r\\n是否开启拖拽目录 \\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果设置成 `false` 则过滤掉目录\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### add-index\\r\\n\\r\\n* **类型:** `Boolean, Number`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **版本:** `>= 2.6.1`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n [`add()`](#实例-方法-add) 方法 `index` 参数的默认值\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 选项 / 事件\\r\\n\\r\\n文件被改变触发的方法 \\r\\n默认用于`v-model`绑定\\r\\n\\r\\n### @input\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### @input-filter\\r\\n\\r\\nAdd, update, remove pre-filter \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `读写`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n * `prevent: Function` 调用该方法 阻止修改\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n > 事件内同步处理请直接修改 `newFile` \\r\\n > 事件内异步处理请使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步请先设置一个错误以防止被上传\\r\\n\\r\\n > 同步不能使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n > 异步不能修改 `newFile`\\r\\n\\r\\n\\r\\n* **示例:** \\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### @input-file\\r\\n\\r\\n添加,更新,移除 后\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `newFile: File | Object | undefined` `只读`\\r\\n * `oldFile: File | Object | undefined` `只读`\\r\\n\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果 `newFile` 值为 `undefined` 则是删除 \\r\\n 如果 `oldFile` 值为 `undefined` 则是添加 \\r\\n 如果 `newFile`, `oldFile` 都存在则是更新\\r\\n\\r\\n >事件内可使用 `update`, `add`, `remove`, `clear` 方法 \\r\\n >事件内不可修改 `newFile` 对象 \\r\\n >事件内不可修改 `oldFile` 对象\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 数据\\r\\n\\r\\n### features\\r\\n\\r\\n用于判断浏览器支持的特性\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `{ html5: true, directory: false, drag: false }`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 支持拖拽上传\\r\\n 支持文件夹上传\\r\\n 支持HTML5\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或停止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 开始上传\\r\\n 停止上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n### dropActive\\r\\n\\r\\n是否正在拖拽\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 拖拽到这里上传\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### uploaded\\r\\n\\r\\n是否全部已上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n 全部文件已上传完毕\\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / 方法\\r\\n\\r\\n\\r\\n\\r\\n### get()\\r\\n\\r\\n使用`id`获得某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `File | Object | Boolean` 存在返回文件对象否则返回 `false`\\r\\n\\r\\n\\r\\n\\r\\n### add()\\r\\n\\r\\n添加一个或多个文件\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `files: Array | File | window.File | Object` 如果它是一个数组的响应将是一个数组\\r\\n * `index: Number | Boolean` = [`props.add-index`](#选项-属性-add-index) `true = ` 开始位置, `false = ` 结束位置, `Number = ` 下标位置\\r\\n\\r\\n\\r\\n* **结果:** `Object | Array | Boolean` 传入的是数组返回数组否则对象或`false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### addInputFile()\\r\\n\\r\\n把``选择的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `el: HTMLInputElement` 文件元素\\r\\n\\r\\n\\r\\n* **结果:** `Array` 返回已添加的文件列表\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### addDataTransfer()\\r\\n\\r\\n把拖拽或者粘贴的数据的文件添加进上传列表 \\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `dataTransfer: DataTransfer` 拖拽或者粘贴的数据\\r\\n\\r\\n\\r\\n* **结果:** `Promise>` 返回已添加的文件列表\\r\\n\\r\\n\\r\\n* **版本:** : `>=2.5.1`\\r\\n\\r\\n\\r\\n\\r\\n### update()\\r\\n\\r\\n更新某个对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n * `data: Object` 更新的数据对象\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `newFile` 失败返回 `false`\\r\\n\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n### remove()\\r\\n\\r\\n移除某个文件对象\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Object | Boolean` 成功返回 `oldFile` 失败返回 `false`\\r\\n\\r\\n* **示例:**\\r\\n ```html\\r\\n \\r\\n \\r\\n ```\\r\\n\\r\\n\\r\\n### replace()\\r\\n 替换两个文件的位置\\r\\n\\r\\n* **参数:**\\r\\n\\r\\n * `id1: File | Object | String`\\r\\n * `id2: File | Object | String`\\r\\n\\r\\n\\r\\n* **结果:** `Boolean`\\r\\n\\r\\n\\r\\n\\r\\n### clear()\\r\\n\\r\\n清空文件列表\\r\\n\\r\\n* **结果:** `Boolean` 总是返回 `true`\\r\\n\\r\\n\\r\\n\\r\\n## 实例 / File\\r\\n\\r\\n\\r\\n> **文件对象在`input-filter`事件外修改请使用 [`update`](#实例-方法-update) 方法**\\r\\n\\r\\n\\r\\n### fileObject\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **Required:** `true`\\r\\n\\r\\n* **默认值:** `true`\\r\\n\\r\\n* **版本:** : `>=2.6.0`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 如果属性不存在,则不会在内部处理该对象 \\r\\n 如果属性不存在,它不是 `File` 而是 `Object`\\r\\n\\r\\n\\r\\n\\r\\n### id\\r\\n\\r\\n文件id\\r\\n\\r\\n* **类型:** `String | Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `Math.random().toString(36).substr(2)`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n >`id` can not be repeated \\r\\n >Upload can not modify `id`\\r\\n\\r\\n\\r\\n### size\\r\\n\\r\\n文件大小\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `-1`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n### name\\r\\n\\r\\n文件名 \\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `directory/filename.gif` `filename.gif` \\r\\n\\r\\n\\r\\n\\r\\n### type\\r\\n\\r\\nMIME类型\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 格式: `image/gif` `image/png` `text/html`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### active\\r\\n\\r\\n激活或终止上传\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n `true` = 上传 \\r\\n `false` = 停止 \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### error\\r\\n\\r\\n上传失败错误代码\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** ` `\\r\\n\\r\\n* **详细:**\\r\\n\\r\\n 内置\\r\\n `size`, `extension`, `timeout`, `abort`, `network`, `server`, `denied`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### success\\r\\n\\r\\n是否上传成功\\r\\n\\r\\n* **类型:** `Boolean`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `false`\\r\\n\\r\\n\\r\\n### putAction\\r\\n\\r\\n自定义当前文件 `PUT` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.putAction`\\r\\n\\r\\n\\r\\n\\r\\n### postAction\\r\\n\\r\\n自定义当前文件 `POST` 地址\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.postAction`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### headers\\r\\n\\r\\n自定义当前文件 `HTTP` Header\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.headers`\\r\\n\\r\\n\\r\\n### data\\r\\n\\r\\n自定义当前文件 `body` 或 `query` 附加内容\\r\\n\\r\\n* **类型:** `Object`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.data`\\r\\n\\r\\n\\r\\n### timeout\\r\\n\\r\\n自定义当前单个文件的上传超时时间\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `this.timeout`\\r\\n\\r\\n\\r\\n### response\\r\\n\\r\\n响应的数据\\r\\n\\r\\n* **类型:** `Object | String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `{}`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### progress\\r\\n\\r\\n上传进度\\r\\n\\r\\n* **类型:** `String`\\r\\n\\r\\n* **只读:** `false`\\r\\n\\r\\n* **默认值:** `0.00`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n### speed\\r\\n\\r\\n每秒的上传速度\\r\\n\\r\\n* **类型:** `Number`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `0`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### xhr\\r\\n\\r\\n`HTML5` 上传 `XMLHttpRequest` 对象\\r\\n\\r\\n* **类型:** `XMLHttpRequest`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `> IE9`\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n### iframe\\r\\n\\r\\n`HTML4` 上传 `iframe` 元素\\r\\n\\r\\n* **类型:** `Element`\\r\\n\\r\\n* **只读:** `true`\\r\\n\\r\\n* **默认值:** `undefined`\\r\\n\\r\\n* **浏览器:** `= IE9`\\r\\n\"","module.exports = VueRouter;","module.exports = VueI18n;","module.exports = ImageCompressor;","var map = {\n\t\"./en\": 21,\n\t\"./en.md\": 21,\n\t\"./zh-cn\": 22,\n\t\"./zh-cn.md\": 22\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 27;","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Document.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.document-title {\\r\\n margin-bottom: 2rem;\\r\\n padding-bottom: 1rem;\\r\\n border-bottom: 1px solid #ddd;\\n}\\n.document-content h2 {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-top: 4rem;\\r\\n border-bottom: 1px solid #eaecef;\\n}\\n.document-content h2:first-child {\\r\\n margin-top: 0;\\n}\\n.document-content h2 + h3 {\\r\\n margin-top: 0rem;\\n}\\n.document-content h3 {\\r\\n margin-top: 1.5rem;\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 1rem;\\n}\\r\\n\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../node_modules/vue-style-loader/index.js!../node_modules/css-loader/index.js??ref--2-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.file-uploads {\\r\\n overflow: hidden;\\r\\n position: relative;\\r\\n text-align: center;\\r\\n display: inline-block;\\n}\\n.file-uploads.file-uploads-html4 input, .file-uploads.file-uploads-html5 label {\\r\\n /* background fix ie click */\\r\\n background: #fff;\\r\\n opacity: 0;\\r\\n font-size: 20em;\\r\\n z-index: 1;\\r\\n top: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n bottom: 0;\\r\\n position: absolute;\\r\\n width: 100%;\\r\\n height: 100%;\\n}\\n.file-uploads.file-uploads-html5 input, .file-uploads.file-uploads-html4 label {\\r\\n /* background fix ie click */\\r\\n background: rgba(255, 255, 255, 0);\\r\\n overflow: hidden;\\r\\n position: fixed;\\r\\n width: 1px;\\r\\n height: 1px;\\r\\n z-index: -1;\\r\\n opacity: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Full.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-full .btn-group .dropdown-menu {\\r\\n display: block;\\r\\n visibility: hidden;\\r\\n transition: all .2s\\n}\\n.example-full .btn-group:hover > .dropdown-menu {\\r\\n visibility: visible;\\n}\\n.example-full label.dropdown-item {\\r\\n margin-bottom: 0;\\n}\\n.example-full .btn-group .dropdown-toggle {\\r\\n margin-right: .6rem\\n}\\n.example-full .filename {\\r\\n margin-bottom: .3rem\\n}\\n.example-full .btn-is-option {\\r\\n margin-top: 0.25rem;\\n}\\n.example-full .example-foorer {\\r\\n padding: .5rem 0;\\r\\n border-top: 1px solid #e9ecef;\\r\\n border-bottom: 1px solid #e9ecef;\\n}\\n.example-full .edit-image img {\\r\\n max-width: 100%;\\n}\\n.example-full .edit-image-tool {\\r\\n margin-top: .6rem;\\n}\\n.example-full .edit-image-tool .btn-group{\\r\\n margin-right: .6rem;\\n}\\n.example-full .footer-status {\\r\\n padding-top: .4rem;\\n}\\n.example-full .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-full .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Simple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Avatar.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-avatar .avatar-upload .rounded-circle {\\r\\n width: 200px;\\r\\n height: 200px;\\n}\\n.example-avatar .text-center .btn {\\r\\n margin: 0 .5rem\\n}\\n.example-avatar .avatar-edit-image {\\r\\n max-width: 100%\\n}\\n.example-avatar .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-avatar .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Drag.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-drag label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-drag .drop-active {\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n right: 0;\\r\\n left: 0;\\r\\n position: fixed;\\r\\n z-index: 9999;\\r\\n opacity: .6;\\r\\n text-align: center;\\r\\n background: #000;\\n}\\n.example-drag .drop-active h3 {\\r\\n margin: -.5em 0 0;\\r\\n position: absolute;\\r\\n top: 50%;\\r\\n left: 0;\\r\\n right: 0;\\r\\n -webkit-transform: translateY(-50%);\\r\\n -ms-transform: translateY(-50%);\\r\\n transform: translateY(-50%);\\r\\n font-size: 40px;\\r\\n color: #fff;\\r\\n padding: 0;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Multiple.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-multiple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\n.example-multiple .upload {\\r\\n margin-bottom: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-simple label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chunk.vue?vue&type=style&index=1&id=2e13353d&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.chunk-loading[data-v-2e13353d] {\\n margin: -12px;\\n display: flex;\\n width: calc(100% + 24px);\\n}\\n.chunk-loading .chunk-loading-part[data-v-2e13353d] {\\n height: 25px;\\n line-height: 25px;\\n flex: 1;\\n background: #ccc;\\n font-size: 14px;\\n color: white;\\n text-align: center;\\n}\\n.chunk-loading .chunk-loading-part.chunk-loading-part__uploaded[data-v-2e13353d] {\\n background: #28A745;\\n}\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js??ref--2-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vuex.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.example-vuex label.btn {\\r\\n margin-bottom: 0;\\r\\n margin-right: 1rem;\\n}\\r\\n\", \"\"]);\n\n// exports\n","import mod from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js!../../node_modules/css-loader/index.js??ref--2-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","exports = module.exports = require(\"../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#header {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 0;\\r\\n z-index: 1071;\\n}\\n#sidebar {\\r\\n background: #fff;\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n@media (min-width: 768px) {\\n#sidebar {\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 3.5rem;\\r\\n z-index: 1000;\\r\\n max-height: calc(100vh - 3.5rem);\\r\\n border-right: 1px solid #e5e5e5;\\r\\n border-bottom: 1px solid #e5e5e5;\\n}\\n}\\n#sidebar-nav {\\r\\n padding-top: 1rem;\\r\\n padding-bottom: 1rem;\\r\\n margin-right: -15px;\\r\\n margin-left: -15px;\\r\\n max-height: 100%;\\r\\n overflow-y: auto;\\n}\\n#sidebar-nav .nav {\\r\\n display: block;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: none;\\r\\n margin-bottom: 1rem;\\n}\\n#sidebar-nav .nav .nav-item.active .nav, #sidebar-nav .nav .active + .nav {\\r\\n display: block;\\n}\\n@media (min-width: 768px) {\\n#sidebar-nav .nav .nav-item .nav {\\r\\n display: block;\\n}\\n}\\n#sidebar-nav .nav .nav-link.active, #sidebar-nav .nav .active > .nav-link{\\r\\n color: #262626;\\r\\n font-weight: 500;\\n}\\n#sidebar-nav .nav-item .nav-link {\\r\\n padding: .25rem 1rem;\\r\\n font-weight: 500;\\r\\n color: #666\\n}\\n#sidebar-nav .nav-item .nav-item .nav-link {\\r\\n font-weight: 400;\\r\\n font-size: 85%;\\r\\n margin-left: 1rem\\n}\\n#main {\\r\\n padding-top: 1rem;\\r\\n margin-bottom: 2rem\\n}\\nblockquote {\\r\\n margin-bottom: 1rem;\\r\\n font-size: 1.25rem;\\r\\n padding: 0 1em;\\r\\n color: #6a737d;\\r\\n border-left: 0.25em solid #dfe2e5;\\n}\\npre {\\r\\n padding: 16px;\\r\\n overflow: auto;\\r\\n font-size: 85%;\\r\\n line-height: 1.45;\\r\\n background-color: #f6f8fa;\\r\\n border-radius: 3px;\\n}\\n.modal-backdrop.fade {\\r\\n visibility: hidden;\\n}\\n.modal-backdrop.fade.show {\\r\\n visibility: visible;\\n}\\n.fade.show {\\r\\n display: block;\\r\\n z-index: 1072;\\n}\\r\\n\", \"\"]);\n\n// exports\n","// import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n//\r\n// Vue.use(Vuex)\r\n\r\n\r\nconst state = {\r\n files: [],\r\n}\r\n\r\nconst mutations = {\r\n updateFiles(state, files) {\r\n state.files = files\r\n }\r\n}\r\nexport default new Vuex.Store({\r\n strict: true,\r\n state,\r\n mutations\r\n})\r\n","// import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\nimport en from './en'\r\nimport zhCN from './zh-cn'\r\n\r\n// Vue.use(VueI18n)\r\n\r\nexport default new VueI18n({\r\n locale: 'en',\r\n messages: {\r\n 'zh-cn': zhCN,\r\n en,\r\n }\r\n})\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: '首页',\r\n examples: '演示',\r\n documents: '文档',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: '文档',\r\n },\r\n\r\n\r\n example: {\r\n full: '完整例子',\r\n simple: '简单例子',\r\n avatar: '上传头像',\r\n drag: '拖拽上传',\r\n multiple: '多个实例',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","export default {\r\n header: {\r\n logo: 'Vuejs',\r\n home: 'Home',\r\n examples: 'Examples',\r\n documents: 'Documentation',\r\n blog: 'Blog',\r\n locale: 'Language(语言)',\r\n issues: 'Issues',\r\n github: 'Github',\r\n },\r\n\r\n locale: {\r\n en: 'English',\r\n 'zh-cn': '中文(简体)',\r\n },\r\n\r\n document: {\r\n title: 'Documentation',\r\n },\r\n\r\n example: {\r\n full: 'Full Example',\r\n simple: 'Simple',\r\n avatar: 'Upload avatar',\r\n drag: 'Drag and drop',\r\n multiple: 'Multiple instances',\r\n chunk: 'Chunk upload',\r\n vuex: 'Vuex',\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./Router.vue?vue&type=template&id=aa322866&\"\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('router-view')}\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!./Document.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!./Document.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Document.vue?vue&type=template&id=3c2a08e8&\"\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)})):_vm._e()],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('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=8abae946&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Full.vue?vue&type=template&id=635f372c&\"\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(\"\\r\\n Options\\r\\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(\"\\r\\n \"+_vm._s(file.name)+\"\\r\\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(\"\\r\\n Action\\r\\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();_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();_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();_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(\"\\r\\n Drop: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.drop : false)+\",\\r\\n Active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.active : false)+\",\\r\\n Uploaded: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.uploaded : true)+\",\\r\\n Drop active: \"+_vm._s(_vm.$refs.upload ? _vm.$refs.upload.dropActive : false)+\"\\r\\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(\"\\r\\n Select\\r\\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.onAddFolader}},[_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(\"\\r\\n Start Upload\\r\\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(\"\\r\\n Stop Upload\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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\\r\\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\\r\\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\\r\\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\\r\\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){_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){_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){_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){_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(\"\\r\\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Simple.vue?vue&type=template&id=17eaeea2&\"\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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Avatar.vue?vue&type=template&id=1c6ae484&\"\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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Drag.vue?vue&type=template&id=2868a160&\"\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')])})):_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&\"","\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Multiple.vue?vue&type=template&id=d796f814&\"\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')])})),_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')])})),_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&\"","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { render, staticRenderFns } from \"./Chunk.vue?vue&type=template&id=2e13353d&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=2e13353d&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 \"2e13353d\",\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){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){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)})):_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&\"","\r\n\r\n\r\n\r\n","// import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\n\r\nimport i18n from './i18n'\r\nimport RouterComponent from './views/Router'\r\nimport DocumentComponent from './views/Document'\r\nimport ExampleComponent from './views/Example'\r\n\r\nimport FullExampleComponent from './views/examples/Full'\r\nimport SimpleExampleComponent from './views/examples/Simple'\r\nimport AvatarExampleComponent from './views/examples/Avatar'\r\nimport DragExampleComponent from './views/examples/Drag'\r\nimport MultipleExampleComponent from './views/examples/Multiple'\r\nimport ChunkExampleComponent from './views/examples/Chunk'\r\nimport VuexExampleComponent from './views/examples/Vuex'\r\n\r\n\r\n\r\n// Vue.use(VueRouter)\r\n\r\n\r\nlet examples = [\r\n {\r\n path: '',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'full',\r\n component: FullExampleComponent,\r\n },\r\n {\r\n path: 'simple',\r\n component: SimpleExampleComponent,\r\n },\r\n {\r\n path: 'avatar',\r\n component: AvatarExampleComponent,\r\n },\r\n {\r\n path: 'drag',\r\n component: DragExampleComponent,\r\n },\r\n {\r\n path: 'multiple',\r\n component: MultipleExampleComponent,\r\n },\r\n {\r\n path: 'chunk',\r\n component: ChunkExampleComponent,\r\n },\r\n {\r\n path: 'vuex',\r\n component: VuexExampleComponent,\r\n },\r\n]\r\n\r\n\r\n\r\nconst router = new VueRouter({\r\n mode: 'hash',\r\n fallback: false,\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n return savedPosition\r\n } else if (to.hash) {\r\n let el = document.querySelector(to.hash)\r\n return { x: 0, y: el ? el.offsetTop : 0 }\r\n } else {\r\n return { x: 0, y: 0 }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/:locale(' + Object.keys(i18n.messages).join('|') + ')?',\r\n component: RouterComponent,\r\n children: [\r\n {\r\n path: 'documents',\r\n component: DocumentComponent,\r\n },\r\n {\r\n path: 'examples',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n {\r\n path: '',\r\n component: ExampleComponent,\r\n children: examples,\r\n },\r\n ]\r\n },\r\n ]\r\n})\r\nexport default router\r\n","import { render, staticRenderFns } from \"./Vuex.vue?vue&type=template&id=df415d08&\"\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')])})),_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&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=95eafede&\"\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();_vm.onLocale(true)},\"focus\":function($event){_vm.onLocale(true)},\"blur\":function($event){_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){_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))])}))]),_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'\r\nimport marked from 'marked'\r\nimport highlightjs from 'highlight.js'\r\nimport store from './store'\r\nimport router from './router'\r\nimport i18n from './i18n'\r\nimport App from './views/App'\r\n\r\nVue.config.silent = false\r\nVue.config.devtools = true\r\n\r\n\r\nclass Renderer extends marked.Renderer {\r\n heading(text, level, raw) {\r\n let rawName = raw.toLowerCase().replace(/([\\u0000-\\u002F\\u003A-\\u0060\\u007B-\\u007F]+)/g, '-').replace(/^\\-+|\\-+$/, '')\r\n\r\n if (!this.options.headers) {\r\n this.options.headers = []\r\n }\r\n while (this.options.headers.length >= level) {\r\n this.options.headers.pop()\r\n }\r\n let parent = this.options.headers.filter(value => !!value).join('-')\r\n if (parent) {\r\n parent = parent + '-'\r\n }\r\n while (this.options.headers.length < (level - 1)) {\r\n this.options.headers.push('')\r\n }\r\n this.options.headers.push(rawName)\r\n return ''\r\n + text\r\n + '\\n'\r\n }\r\n}\r\n\r\nmarked.setOptions({\r\n renderer: new Renderer(),\r\n gfm: true,\r\n tables: true,\r\n breaks: false,\r\n pedantic: false,\r\n sanitize: false,\r\n smartLists: true,\r\n smartypants: false,\r\n highlight(code, lang) {\r\n if (lang) {\r\n return highlightjs.highlight(lang, code).value\r\n } else {\r\n return highlightjs.highlightAuto(code).value\r\n }\r\n }\r\n})\r\n\r\nVue.directive('markdown', function (el, binding, vnode) {\r\n if (!el.className || !/vue-markdown/.test(el.className)) {\r\n el.className += ' vue-markdown'\r\n }\r\n let text = ''\r\n for (let i = 0; i < vnode.children.length; i++) {\r\n text += vnode.children[i].text || ''\r\n }\r\n if (el.markdown === text) {\r\n return\r\n }\r\n\r\n el.markdown = text\r\n\r\n el.innerHTML = marked(text)\r\n let selectorList = el.querySelectorAll('a')\r\n for (let i = 0; i < selectorList.length; i++) {\r\n selectorList[i].onclick = function (e) {\r\n if (e.metaKey || e.ctrlKey || e.shiftKey) {\r\n return\r\n }\r\n if (e.defaultPrevented) {\r\n return\r\n }\r\n if (e.button !== undefined && e.button !== 0) {\r\n return\r\n }\r\n\r\n if (this.host !== window.location.host) {\r\n return\r\n }\r\n\r\n let href = this.getAttribute('href')\r\n if (!href) {\r\n return\r\n }\r\n\r\n if (href.charAt(0) !== '#') {\r\n return\r\n }\r\n\r\n e.preventDefault()\r\n router.push(href)\r\n }\r\n }\r\n})\r\n\r\n\r\n\r\nVue.filter('formatSize', function (size) {\r\n if (size > 1024 * 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'\r\n } else if (size > 1024 * 1024 * 1024) {\r\n return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'\r\n } else if (size > 1024 * 1024) {\r\n return (size / 1024 / 1024).toFixed(2) + ' MB'\r\n } else if (size > 1024) {\r\n return (size / 1024).toFixed(2) + ' KB'\r\n }\r\n return size.toString() + ' B'\r\n})\r\n\r\nVue.filter('toLocale', function (to) {\r\n return '/' + i18n.locale + to\r\n})\r\n\r\n\r\n\r\nnew Vue({\r\n store,\r\n router,\r\n i18n,\r\n ...App\r\n}).$mount('#app')\r\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 }","/**\r\n * Creates a XHR request\r\n *\r\n * @param {Object} options\r\n */\r\nexport const createRequest = (options) => {\r\n const xhr = new XMLHttpRequest()\r\n xhr.open(options.method || 'GET', options.url)\r\n xhr.responseType = 'json'\r\n if (options.headers) {\r\n Object.keys(options.headers).forEach(key => {\r\n xhr.setRequestHeader(key, options.headers[key])\r\n })\r\n }\r\n\r\n return xhr\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain body\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} body\r\n */\r\nexport const sendRequest = (xhr, body) => {\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(JSON.stringify(body))\r\n })\r\n}\r\n\r\n/**\r\n * Sends a XHR request with certain form data\r\n *\r\n * @param {XMLHttpRequest} xhr\r\n * @param {Object} data\r\n */\r\nexport const sendFormRequest = (xhr, data) => {\r\n const body = new FormData()\r\n for (var name in data) {\r\n body.append(name, data[name])\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n var response\r\n try {\r\n response = JSON.parse(xhr.response)\r\n } catch (err) {\r\n response = xhr.response\r\n }\r\n resolve(response)\r\n } else {\r\n reject(xhr.response)\r\n }\r\n }\r\n xhr.onerror = () => reject(xhr.response)\r\n xhr.send(body)\r\n })\r\n}\r\n\r\n/**\r\n * Creates and sends XHR request\r\n *\r\n * @param {Object} options\r\n *\r\n * @returns Promise\r\n */\r\nexport default function (options) {\r\n const xhr = createRequest(options)\r\n\r\n return sendRequest(xhr, options.body)\r\n}\r\n","import {\r\n default as request,\r\n createRequest,\r\n sendFormRequest\r\n} from '../utils/request'\r\n\r\nexport default class ChunkUploadHandler {\r\n /**\r\n * Constructor\r\n *\r\n * @param {File} file\r\n * @param {Object} options\r\n */\r\n constructor (file, options) {\r\n this.file = file\r\n this.options = options\r\n }\r\n\r\n /**\r\n * Gets the max retries from options\r\n */\r\n get maxRetries () {\r\n return parseInt(this.options.maxRetries)\r\n }\r\n\r\n /**\r\n * Gets the max number of active chunks being uploaded at once from options\r\n */\r\n get maxActiveChunks () {\r\n return parseInt(this.options.maxActive)\r\n }\r\n\r\n /**\r\n * Gets the file type\r\n */\r\n get fileType () {\r\n return this.file.type\r\n }\r\n\r\n /**\r\n * Gets the file size\r\n */\r\n get fileSize () {\r\n return this.file.size\r\n }\r\n\r\n /**\r\n * Gets the file name\r\n */\r\n get fileName () {\r\n return this.file.name\r\n }\r\n\r\n /**\r\n * Gets action (url) to upload the file\r\n */\r\n get action () {\r\n return this.options.action || null\r\n }\r\n\r\n get startAction() {\r\n return this.options.startAction || this.action\r\n }\r\n\r\n get uploadAction() {\r\n return this.options.uploadAction || this.action\r\n }\r\n\r\n get finishAction() {\r\n return this.options.finishAction || this.action\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in start phase\r\n */\r\n get startBody () {\r\n return this.options.startBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in upload phase\r\n */\r\n get uploadBody () {\r\n return this.options.uploadBody || {}\r\n }\r\n\r\n /**\r\n * Gets the body to be merged when sending the request in finish phase\r\n */\r\n get finishBody () {\r\n return this.options.finishBody || {}\r\n }\r\n\r\n /**\r\n * Gets the headers of the requests from options\r\n */\r\n get headers () {\r\n return this.options.headers || {}\r\n }\r\n\r\n /**\r\n * Whether it's ready to upload files or not\r\n */\r\n get readyToUpload () {\r\n return !!this.chunks\r\n }\r\n\r\n /**\r\n * Gets the progress of the chunk upload\r\n * - Gets all the completed chunks\r\n * - Gets the progress of all the chunks that are being uploaded\r\n */\r\n get progress () {\r\n const completedProgress = (this.chunksUploaded.length / this.chunks.length) * 100\r\n const uploadingProgress = this.chunksUploading.reduce((progress, chunk) => {\r\n return progress + ((chunk.progress | 0) / this.chunks.length)\r\n }, 0)\r\n\r\n return Math.min(completedProgress + uploadingProgress, 100)\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are pending to be uploaded\r\n */\r\n get chunksToUpload () {\r\n return this.chunks.filter(chunk => {\r\n return !chunk.active && !chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Whether there are chunks to upload or not\r\n */\r\n get hasChunksToUpload () {\r\n return this.chunksToUpload.length > 0\r\n }\r\n\r\n /**\r\n * Gets all the chunks that are uploading\r\n */\r\n get chunksUploading () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.xhr && !!chunk.active\r\n })\r\n }\r\n\r\n /**\r\n * Gets all the chunks that have finished uploading\r\n */\r\n get chunksUploaded () {\r\n return this.chunks.filter(chunk => {\r\n return !!chunk.uploaded\r\n })\r\n }\r\n\r\n /**\r\n * Creates all the chunks in the initial state\r\n */\r\n createChunks () {\r\n this.chunks = []\r\n\r\n let start = 0\r\n let end = this.chunkSize\r\n while (start < this.fileSize) {\r\n this.chunks.push({\r\n blob: this.file.file.slice(start, end),\r\n startOffset: start,\r\n active: false,\r\n retries: this.maxRetries\r\n })\r\n start = end\r\n end = start + this.chunkSize\r\n }\r\n }\r\n\r\n /**\r\n * Updates the progress of the file with the handler's progress\r\n */\r\n updateFileProgress () {\r\n this.file.progress = this.progress\r\n }\r\n\r\n /**\r\n * Paues the upload process\r\n * - Stops all active requests\r\n * - Sets the file not active\r\n */\r\n pause () {\r\n this.file.active = false\r\n this.stopChunks()\r\n }\r\n\r\n /**\r\n * Stops all the current chunks\r\n */\r\n stopChunks () {\r\n this.chunksUploading.forEach(chunk => {\r\n chunk.xhr.abort()\r\n chunk.active = false\r\n })\r\n }\r\n\r\n /**\r\n * Resumes the file upload\r\n * - Sets the file active\r\n * - Starts the following chunks\r\n */\r\n resume () {\r\n this.file.active = true\r\n this.startChunking()\r\n }\r\n\r\n /**\r\n * Starts the file upload\r\n *\r\n * @returns Promise\r\n * - resolve The file was uploaded\r\n * - reject The file upload failed\r\n */\r\n upload () {\r\n this.promise = new Promise((resolve, reject) => {\r\n this.resolve = resolve\r\n this.reject = reject\r\n })\r\n this.start()\r\n\r\n return this.promise\r\n }\r\n\r\n /**\r\n * Start phase\r\n * Sends a request to the backend to initialise the chunks\r\n */\r\n start () {\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.startAction,\r\n body: Object.assign(this.startBody, {\r\n phase: 'start',\r\n mime_type: this.fileType,\r\n size: this.fileSize,\r\n name: this.fileName\r\n })\r\n }).then(res => {\r\n if (res.status !== 'success') {\r\n this.file.response = res\r\n return this.reject('server')\r\n }\r\n\r\n this.sessionId = res.data.session_id\r\n this.chunkSize = res.data.end_offset\r\n\r\n this.createChunks()\r\n this.startChunking()\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n\r\n /**\r\n * Starts to upload chunks\r\n */\r\n startChunking () {\r\n for (let i = 0; i < this.maxActiveChunks; i++) {\r\n this.uploadNextChunk()\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the next chunk\r\n * - Won't do anything if the process is paused\r\n * - Will start finish phase if there are no more chunks to upload\r\n */\r\n uploadNextChunk () {\r\n if (this.file.active) {\r\n if (this.hasChunksToUpload) {\r\n return this.uploadChunk(this.chunksToUpload[0])\r\n }\r\n\r\n if (this.chunksUploading.length === 0) {\r\n return this.finish()\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Uploads a chunk\r\n * - Sends the chunk to the backend\r\n * - Sets the chunk as uploaded if everything went well\r\n * - Decreases the number of retries if anything went wrong\r\n * - Fails if there are no more retries\r\n *\r\n * @param {Object} chunk\r\n */\r\n uploadChunk (chunk) {\r\n chunk.progress = 0\r\n chunk.active = true\r\n this.updateFileProgress()\r\n chunk.xhr = createRequest({\r\n method: 'POST',\r\n headers: this.headers,\r\n url: this.uploadAction\r\n })\r\n\r\n chunk.xhr.upload.addEventListener('progress', function (evt) {\r\n if (evt.lengthComputable) {\r\n chunk.progress = Math.round(evt.loaded / evt.total * 100)\r\n }\r\n }, false)\r\n\r\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\r\n phase: 'upload',\r\n session_id: this.sessionId,\r\n start_offset: chunk.startOffset,\r\n chunk: chunk.blob\r\n })).then(res => {\r\n chunk.active = false\r\n if (res.status === 'success') {\r\n chunk.uploaded = true\r\n } else {\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n }\r\n\r\n this.uploadNextChunk()\r\n }).catch(() => {\r\n chunk.active = false\r\n if (chunk.retries-- <= 0) {\r\n this.stopChunks()\r\n return this.reject('upload')\r\n }\r\n\r\n this.uploadNextChunk()\r\n })\r\n }\r\n\r\n /**\r\n * Finish phase\r\n * Sends a request to the backend to finish the process\r\n */\r\n finish () {\r\n this.updateFileProgress()\r\n\r\n request({\r\n method: 'POST',\r\n headers: Object.assign({}, this.headers, {\r\n 'Content-Type': 'application/json'\r\n }),\r\n url: this.finishAction,\r\n body: Object.assign(this.finishBody, {\r\n phase: 'finish',\r\n session_id: this.sessionId\r\n })\r\n }).then(res => {\r\n this.file.response = res\r\n if (res.status !== 'success') {\r\n return this.reject('server')\r\n }\r\n\r\n this.resolve(res)\r\n }).catch(res => {\r\n this.file.response = res\r\n this.reject('server')\r\n })\r\n }\r\n}\r\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&\"","\r\n\r\n","import { render, staticRenderFns } from \"./InputFile.vue?vue&type=template&id=7a2ca5a3&\"\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,\"directory\":_vm.$parent.directory && _vm.$parent.features.directory,\"multiple\":_vm.$parent.multiple && _vm.$parent.features.html5},on:{\"change\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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=a6971c2a&\"\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 ebce318..a35e53f 100644 --- a/docs/docs/en.md +++ b/docs/docs/en.md @@ -302,7 +302,7 @@ In the following example we are going to add `Chunk Upload Functionality`. This chunk-enabled :chunk="{ - action: '/upload/start', + startAction: '/upload/start', uploadAction: '/upload/chunk', finishAction: '/upload/finish', minSize: 1048576,