diff --git a/dist/vue-upload-component.js b/dist/vue-upload-component.js index f89b89e..5d78062 100644 --- a/dist/vue-upload-component.js +++ b/dist/vue-upload-component.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.7.3 + * Version: 2.8.0 * Author: LianYue */ (function (global, factory) { @@ -9,6 +9,486 @@ (global.VueUploadComponent = factory()); }(this, (function () { 'use strict'; +/** + * Creates a XHR request + * + * @param {Object} options + */ +var createRequest = function createRequest(options) { + var xhr = new XMLHttpRequest(); + xhr.responseType = 'json'; + xhr.open(options.method || 'GET', options.url); + if (options.headers) { + Object.keys(options.headers).forEach(function (key) { + xhr.setRequestHeader(key, options.headers[key]); + }); + } + + return xhr; +}; + +/** + * Sends a XHR request with certain body + * + * @param {XMLHttpRequest} xhr + * @param {Object} body + */ +var sendRequest = function sendRequest(xhr, body) { + return new Promise(function (resolve, reject) { + xhr.onload = function () { + if (xhr.status >= 200 && xhr.status < 300) { + resolve(xhr.response); + } else { + reject(xhr.statusText); + } + }; + xhr.onerror = function () { + return reject(xhr.statusText); + }; + xhr.send(JSON.stringify(body)); + }); +}; + +/** + * Creates and sends XHR request + * + * @param {Object} options + * + * @returns Promise + */ +var request = function (options) { + var xhr = createRequest(options); + + return sendRequest(xhr, options.body); +}; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ChunkUploadHandler = function () { + /** + * Constructor + * + * @param {File} file + * @param {Object} options + */ + function ChunkUploadHandler(file, options) { + _classCallCheck(this, ChunkUploadHandler); + + this.file = file; + this.options = options; + } + + /** + * Gets the max retries from options + */ + + + _createClass(ChunkUploadHandler, [{ + key: 'createChunks', + + + /** + * Creates all the chunks in the initial state + */ + value: function createChunks() { + this.chunks = []; + + var start = 0; + var end = this.chunkSize; + while (start < this.fileSize) { + this.chunks.push({ + blob: this.file.file.slice(start, end), + startOffset: start, + active: false, + retries: this.maxRetries + }); + start = end; + end = start + this.chunkSize; + } + } + + /** + * Updates the progress of the file with the handler's progress + */ + + }, { + key: 'updateFileProgress', + value: function updateFileProgress() { + this.file.progress = this.progress; + } + + /** + * Paues the upload process + * - Stops all active requests + * - Sets the file not active + */ + + }, { + key: 'pause', + value: function pause() { + this.file.active = false; + this.chunksUploading.forEach(function (chunk) { + chunk.xhr.abort(); + chunk.active = false; + }); + } + + /** + * Resumes the file upload + * - Sets the file active + * - Starts the following chunks + */ + + }, { + key: 'resume', + value: function resume() { + this.file.active = true; + this.startChunking(); + } + + /** + * Starts the file upload + * + * @returns Promise + * - resolve The file was uploaded + * - reject The file upload failed + */ + + }, { + key: 'upload', + value: function upload() { + var _this = this; + + this.promise = new Promise(function (resolve, reject) { + _this.resolve = resolve; + _this.reject = reject; + }); + this.start(); + + return this.promise; + } + + /** + * Start phase + * Sends a request to the backend to initialise the chunks + */ + + }, { + key: 'start', + value: function start() { + var _this2 = this; + + request({ + method: 'POST', + headers: this.headers, + url: this.action, + body: Object.assign(this.startBody, { + phase: 'start', + mime_type: this.fileType, + size: this.fileSize + }) + }).then(function (res) { + if (res.status !== 'success') { + return _this2.reject(res.message); + } + + _this2.sessionId = res.data.session_id; + _this2.chunkSize = res.data.end_offset; + + _this2.createChunks(); + _this2.startChunking(); + }).catch(function (error) { + return _this2.reject(error); + }); + } + + /** + * Starts to upload chunks + */ + + }, { + key: 'startChunking', + value: function startChunking() { + for (var i = 0; i < this.maxActiveChunks; i++) { + this.uploadNextChunk(); + } + } + + /** + * Uploads the next chunk + * - Won't do anything if the process is paused + * - Will start finish phase if there are no more chunks to upload + */ + + }, { + key: 'uploadNextChunk', + value: function uploadNextChunk() { + if (this.file.active) { + if (this.hasChunksToUpload) { + return this.uploadChunk(this.chunksToUpload[0]); + } + + if (this.chunksUploading.length === 0) { + return this.finish(); + } + } + } + + /** + * Uploads a chunk + * - Sends the chunk to the backend + * - Sets the chunk as uploaded if everything went well + * - Decreases the number of retries if anything went wrong + * - Fails if there are no more retries + * + * @param {Object} chunk + */ + + }, { + key: 'uploadChunk', + value: function uploadChunk(chunk) { + var _this3 = this; + + chunk.progress = 0; + chunk.active = true; + this.updateFileProgress(); + chunk.xhr = createRequest({ + method: 'POST', + headers: this.headers, + url: this.action + }); + + chunk.xhr.upload.addEventListener('progress', function (evt) { + if (evt.lengthComputable) { + chunk.progress = Math.round(evt.loaded / evt.total * 100); + } + }, false); + + sendRequest(chunk.xhr, Object.assign(this.uploadBody, { + phase: 'upload', + session_id: this.sessionId, + start_offset: chunk.startOffset, + chunk: chunk.blob + })).then(function (res) { + chunk.active = false; + if (res.status === 'success') { + chunk.uploaded = true; + } else { + if (chunk.retries-- <= 0) { + _this3.pause(); + return _this3.reject('File upload failed'); + } + } + + _this3.uploadNextChunk(); + }).catch(function () { + chunk.active = false; + if (chunk.retries-- <= 0) { + _this3.pause(); + return _this3.reject('File upload failed'); + } + + _this3.uploadNextChunk(); + }); + } + + /** + * Finish phase + * Sends a request to the backend to finish the process + */ + + }, { + key: 'finish', + value: function finish() { + var _this4 = this; + + this.updateFileProgress(); + + request({ + method: 'POST', + headers: this.headers, + url: this.action, + body: Object.assign(this.finishBody, { + phase: 'finish', + session_id: this.sessionId + }) + }).then(function (res) { + if (res.status !== 'success') { + return _this4.reject(res.message); + } + + _this4.resolve(res); + }).catch(function (error) { + return _this4.reject(error); + }); + } + }, { + key: 'maxRetries', + get: function get() { + return parseInt(this.options.maxRetries); + } + + /** + * Gets the max number of active chunks being uploaded at once from options + */ + + }, { + key: 'maxActiveChunks', + get: function get() { + return parseInt(this.options.maxActive); + } + + /** + * Gets the file type + */ + + }, { + key: 'fileType', + get: function get() { + return this.file.type; + } + + /** + * Gets the file size + */ + + }, { + key: 'fileSize', + get: function get() { + return this.file.size; + } + + /** + * Gets action (url) to upload the file + */ + + }, { + key: 'action', + get: function get() { + return this.options.action || null; + } + + /** + * Gets the body to be merged when sending the request in start phase + */ + + }, { + key: 'startBody', + get: function get() { + return this.options.startBody || {}; + } + + /** + * Gets the body to be merged when sending the request in upload phase + */ + + }, { + key: 'uploadBody', + get: function get() { + return this.options.uploadBody || {}; + } + + /** + * Gets the body to be merged when sending the request in finish phase + */ + + }, { + key: 'finishBody', + get: function get() { + return this.options.finishBody || {}; + } + + /** + * Gets the headers of the requests from options + */ + + }, { + key: 'headers', + get: function get() { + return this.options.headers || {}; + } + + /** + * Whether it's ready to upload files or not + */ + + }, { + key: 'readyToUpload', + get: function get() { + return !!this.chunks; + } + + /** + * Gets the progress of the chunk upload + * - Gets all the completed chunks + * - Gets the progress of all the chunks that are being uploaded + */ + + }, { + key: 'progress', + get: function get() { + var _this5 = this; + + var completedProgress = this.chunksUploaded.length / this.chunks.length * 100; + var uploadingProgress = this.chunksUploading.reduce(function (progress, chunk) { + return progress + (chunk.progress | 0) / _this5.chunks.length; + }, 0); + + return Math.min(completedProgress + uploadingProgress, 100); + } + + /** + * Gets all the chunks that are pending to be uploaded + */ + + }, { + key: 'chunksToUpload', + get: function get() { + return this.chunks.filter(function (chunk) { + return !chunk.active && !chunk.uploaded; + }); + } + + /** + * Whether there are chunks to upload or not + */ + + }, { + key: 'hasChunksToUpload', + get: function get() { + return this.chunksToUpload.length > 0; + } + + /** + * Gets all the chunks that are uploading + */ + + }, { + key: 'chunksUploading', + get: function get() { + return this.chunks.filter(function (chunk) { + return !!chunk.xhr && !!chunk.active; + }); + } + + /** + * Gets all the chunks that have finished uploading + */ + + }, { + key: 'chunksUploaded', + get: function get() { + return this.chunks.filter(function (chunk) { + return !!chunk.uploaded; + }); + } + }]); + + return ChunkUploadHandler; +}(); + (function () { if (typeof document !== 'undefined') { var head = document.head || document.getElementsByTagName('head')[0], @@ -55,6 +535,18 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr } })(); +var CHUNK_DEFAULT_OPTIONS = { + headers: { + 'Content-Type': 'application/json' + }, + action: '', + minSize: 1048576, + maxActive: 3, + maxRetries: 5, + + handler: ChunkUploadHandler +}; + var FileUpload = { render: function render() { var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { class: _vm.className }, [_vm._t("default"), _vm._v(" "), _c('input-file')], 2); }, staticRenderFns: [], @@ -143,6 +635,20 @@ var FileUpload = { render: function render() { thread: { type: Number, default: 1 + }, + + // Chunk upload enabled + chunkEnabled: { + type: Boolean, + default: false + }, + + // Chunk upload properties + chunk: { + type: Object, + default: function _default() { + return CHUNK_DEFAULT_OPTIONS; + } } }, @@ -238,6 +744,9 @@ var FileUpload = { render: function render() { } return true; }, + chunkOptions: function chunkOptions() { + return Object.assign(CHUNK_DEFAULT_OPTIONS, this.chunk); + }, className: function className() { return ['file-uploads', this.features.html5 ? 'file-uploads-html5' : 'file-uploads-html4', this.features.directory && this.directory ? 'file-uploads-directory' : undefined, this.features.drop && this.drop ? 'file-uploads-drop' : undefined]; } @@ -745,13 +1254,41 @@ var FileUpload = { render: function render() { return Promise.reject('size'); } - if (this.features.html5 && file.putAction) { - return this.uploadPut(file); - } else if (this.features.html5) { + if (this.features.html5) { + if (this.shouldUseChunkUpload(file)) { + return this.uploadChunk(file); + } + if (file.putAction) { + return this.uploadPut(file); + } + return this.uploadHtml5(file); - } else { - return this.uploadHtml4(file); } + + return this.uploadHtml4(file); + }, + + + /** + * Whether this file should be uploaded using chunk upload or not + * + * @param Object file + */ + shouldUseChunkUpload: function shouldUseChunkUpload(file) { + return this.chunkEnabled && !!this.chunkOptions.handler && file.size > this.chunkOptions.minSize; + }, + + + /** + * Upload a file using Chunk method + * + * @param File file + */ + uploadChunk: function uploadChunk(file) { + var HandlerClass = this.chunkOptions.handler; + file.chunk = new HandlerClass(file, this.chunkOptions); + + return file.chunk.upload(); }, uploadPut: function uploadPut(file) { var querys = []; diff --git a/dist/vue-upload-component.js.map b/dist/vue-upload-component.js.map index 418662f..578ccf6 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/InputFile.vue","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["\n\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["render","e","$destroy","$parent","addInputFile","target","constructor","$el","String","Boolean","Number","multiple","Object","Array","value","input","document","createElement","type","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","active","file","i","length","fileObject","error","success","undefined","watchActive","oldMaps","id","key","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","size","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","data","headers","Math","random","toString","substr","emitFilter","maximum","push","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","Promise","resolve","reject","forEach","getEntry","then","results","entry","path","isFile","isDirectory","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","upload","update","catch","code","message","parseInt","extensions","RegExp","split","map","trim","filter","join","search","uploadPut","uploadHtml5","uploadHtml4","querys","encodeURIComponent","queryString","xhr","XMLHttpRequest","open","uploadXhr","form","File","append","JSON","stringify","filename","_file","body","speedTime","speedLoaded","onprogress","lengthComputable","speedTime2","round","Date","now","loaded","total","toFixed","interval","setInterval","abort","complete","fn","status","progress","responseText","contentType","getResponseHeader","response","parse","onload","onerror","onabort","ontimeout","setRequestHeader","send","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","action","appendChild","getResponseData","doc","contentWindow","err","contentDocument","innerHTML","removeEventListener","addEventListener","submit","res","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer","require$$0"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vue-upload-component.js","sources":["../src/utils/request.js","../src/chunk/ChunkUploadHandler.js","../src/InputFile.vue","../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.responseType = 'json'\n xhr.open(options.method || 'GET', options.url)\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 resolve(xhr.response)\n } else {\n reject(xhr.statusText)\n }\n }\n xhr.onerror = () => reject(xhr.statusText)\n xhr.send(JSON.stringify(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 { default as request, createRequest, sendRequest } 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 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.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: this.headers,\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\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(error => this.reject(error))\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 sendRequest(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.pause()\n return this.reject('File upload failed')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.pause()\n return this.reject('File upload failed')\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: this.headers,\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\n }\n\n this.resolve(res)\n }).catch(error => this.reject(error))\n }\n}\n","\n\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","responseType","open","method","url","headers","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","statusText","onerror","send","JSON","stringify","ChunkUploadHandler","file","chunks","start","end","chunkSize","fileSize","push","slice","maxRetries","progress","active","chunksUploading","abort","startChunking","promise","action","Object","assign","startBody","fileType","then","res","message","sessionId","data","session_id","end_offset","createChunks","catch","error","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","startOffset","blob","uploaded","retries","pause","finishBody","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","render","e","$destroy","$parent","addInputFile","target","constructor","$el","CHUNK_DEFAULT_OPTIONS","ChunkUploadDefaultHandler","String","Boolean","Number","multiple","Array","value","input","document","createElement","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","fileObject","success","undefined","watchActive","oldMaps","id","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","random","toString","substr","emitFilter","maximum","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","entry","path","isFile","isDirectory","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","update","code","extensions","RegExp","split","map","trim","join","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","chunkEnabled","chunkOptions","handler","minSize","HandlerClass","querys","encodeURIComponent","queryString","uploadXhr","form","File","append","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","toFixed","interval","setInterval","complete","fn","responseText","contentType","getResponseHeader","parse","onabort","ontimeout","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","appendChild","getResponseData","doc","contentWindow","err","contentDocument","innerHTML","removeEventListener","submit","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer","require$$0"],"mappings":";;;;;;;;;;;AAAA;;;;;AAKA,AAAO,IAAMA,gBAAgB,SAAhBA,aAAgB,CAACC,OAAD,EAAa;MAClCC,MAAM,IAAIC,cAAJ,EAAZ;MACIC,YAAJ,GAAmB,MAAnB;MACIC,IAAJ,CAASJ,QAAQK,MAAR,IAAkB,KAA3B,EAAkCL,QAAQM,GAA1C;MACIN,QAAQO,OAAZ,EAAqB;WACZC,IAAP,CAAYR,QAAQO,OAApB,EAA6BE,OAA7B,CAAqC,eAAO;UACtCC,gBAAJ,CAAqBC,GAArB,EAA0BX,QAAQO,OAAR,CAAgBI,GAAhB,CAA1B;KADF;;;SAKKV,GAAP;CAVK;;;;;;;;AAmBP,AAAO,IAAMW,cAAc,SAAdA,WAAc,CAACX,GAAD,EAAMY,IAAN,EAAe;SACjC,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;QAClCC,MAAJ,GAAa,YAAM;UACbhB,IAAIiB,MAAJ,IAAc,GAAd,IAAqBjB,IAAIiB,MAAJ,GAAa,GAAtC,EAA2C;gBACjCjB,IAAIkB,QAAZ;OADF,MAEO;eACElB,IAAImB,UAAX;;KAJJ;QAOIC,OAAJ,GAAc;aAAML,OAAOf,IAAImB,UAAX,CAAN;KAAd;QACIE,IAAJ,CAASC,KAAKC,SAAL,CAAeX,IAAf,CAAT;GATK,CAAP;CADK;;;;;;;;;AAqBP,cAAe,UAAUb,OAAV,EAAmB;MAC1BC,MAAMF,cAAcC,OAAd,CAAZ;;SAEOY,YAAYX,GAAZ,EAAiBD,QAAQa,IAAzB,CAAP;;;;;;;AChDF,IAEqBY;;;;;;;8BAONC,IAAb,EAAmB1B,OAAnB,EAA4B;;;SACrB0B,IAAL,GAAYA,IAAZ;SACK1B,OAAL,GAAeA,OAAf;;;;;;;;;;;;;;;mCA4Hc;WACT2B,MAAL,GAAc,EAAd;;UAEIC,QAAQ,CAAZ;UACIC,MAAM,KAAKC,SAAf;aACOF,QAAQ,KAAKG,QAApB,EAA8B;aACvBJ,MAAL,CAAYK,IAAZ,CAAiB;gBACT,KAAKN,IAAL,CAAUA,IAAV,CAAeO,KAAf,CAAqBL,KAArB,EAA4BC,GAA5B,CADS;uBAEFD,KAFE;kBAGP,KAHO;mBAIN,KAAKM;SAJhB;gBAMQL,GAAR;cACMD,QAAQ,KAAKE,SAAnB;;;;;;;;;;yCAOkB;WACfJ,IAAL,CAAUS,QAAV,GAAqB,KAAKA,QAA1B;;;;;;;;;;;4BAQO;WACFT,IAAL,CAAUU,MAAV,GAAmB,KAAnB;WACKC,eAAL,CAAqB5B,OAArB,CAA6B,iBAAS;cAC9BR,GAAN,CAAUqC,KAAV;cACMF,MAAN,GAAe,KAAf;OAFF;;;;;;;;;;;6BAWQ;WACHV,IAAL,CAAUU,MAAV,GAAmB,IAAnB;WACKG,aAAL;;;;;;;;;;;;;6BAUQ;;;WACHC,OAAL,GAAe,IAAI1B,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;cACzCD,OAAL,GAAeA,OAAf;cACKC,MAAL,GAAcA,MAAd;OAFa,CAAf;WAIKY,KAAL;;aAEO,KAAKY,OAAZ;;;;;;;;;;4BAOO;;;cACC;gBACE,MADF;iBAEG,KAAKjC,OAFR;aAGD,KAAKkC,MAHJ;cAIAC,OAAOC,MAAP,CAAc,KAAKC,SAAnB,EAA8B;iBAC3B,OAD2B;qBAEvB,KAAKC,QAFkB;gBAG5B,KAAKd;SAHP;OAJR,EASGe,IATH,CASQ,eAAO;YACTC,IAAI7B,MAAJ,KAAe,SAAnB,EAA8B;iBACrB,OAAKF,MAAL,CAAY+B,IAAIC,OAAhB,CAAP;;;eAGGC,SAAL,GAAiBF,IAAIG,IAAJ,CAASC,UAA1B;eACKrB,SAAL,GAAiBiB,IAAIG,IAAJ,CAASE,UAA1B;;eAEKC,YAAL;eACKd,aAAL;OAlBF,EAmBGe,KAnBH,CAmBS;eAAS,OAAKtC,MAAL,CAAYuC,KAAZ,CAAT;OAnBT;;;;;;;;;oCAyBe;WACV,IAAIC,IAAI,CAAb,EAAgBA,IAAI,KAAKC,eAAzB,EAA0CD,GAA1C,EAA+C;aACxCE,eAAL;;;;;;;;;;;;sCASe;UACb,KAAKhC,IAAL,CAAUU,MAAd,EAAsB;YAChB,KAAKuB,iBAAT,EAA4B;iBACnB,KAAKC,WAAL,CAAiB,KAAKC,cAAL,CAAoB,CAApB,CAAjB,CAAP;;;YAGE,KAAKxB,eAAL,CAAqByB,MAArB,KAAgC,CAApC,EAAuC;iBAC9B,KAAKC,MAAL,EAAP;;;;;;;;;;;;;;;;;gCAcOC,OAAO;;;YACZ7B,QAAN,GAAiB,CAAjB;YACMC,MAAN,GAAe,IAAf;WACK6B,kBAAL;YACMhE,GAAN,GAAYF,cAAc;gBAChB,MADgB;iBAEf,KAAKQ,OAFU;aAGnB,KAAKkC;OAHA,CAAZ;;YAMMxC,GAAN,CAAUiE,MAAV,CAAiBC,gBAAjB,CAAkC,UAAlC,EAA8C,UAASC,GAAT,EAAc;YACtDA,IAAIC,gBAAR,EAA0B;gBAClBlC,QAAN,GAAiBmC,KAAKC,KAAL,CAAWH,IAAII,MAAJ,GAAaJ,IAAIK,KAAjB,GAAyB,GAApC,CAAjB;;OAFJ,EAIG,KAJH;;kBAMYT,MAAM/D,GAAlB,EAAuByC,OAAOC,MAAP,CAAc,KAAK+B,UAAnB,EAA+B;eAC7C,QAD6C;oBAExC,KAAKzB,SAFmC;sBAGtCe,MAAMW,WAHgC;eAI7CX,MAAMY;OAJQ,CAAvB,EAKI9B,IALJ,CAKS,eAAO;cACRV,MAAN,GAAe,KAAf;YACIW,IAAI7B,MAAJ,KAAe,SAAnB,EAA8B;gBACtB2D,QAAN,GAAiB,IAAjB;SADF,MAEO;cACDb,MAAMc,OAAN,MAAmB,CAAvB,EAA0B;mBACnBC,KAAL;mBACO,OAAK/D,MAAL,CAAY,oBAAZ,CAAP;;;;eAIC0C,eAAL;OAhBF,EAiBGJ,KAjBH,CAiBS,YAAM;cACPlB,MAAN,GAAe,KAAf;YACI4B,MAAMc,OAAN,MAAmB,CAAvB,EAA0B;iBACnBC,KAAL;iBACO,OAAK/D,MAAL,CAAY,oBAAZ,CAAP;;;eAGG0C,eAAL;OAxBF;;;;;;;;;;6BAgCQ;;;WACHO,kBAAL;;cAEQ;gBACE,MADF;iBAEG,KAAK1D,OAFR;aAGD,KAAKkC,MAHJ;cAIAC,OAAOC,MAAP,CAAc,KAAKqC,UAAnB,EAA+B;iBAC5B,QAD4B;sBAEvB,KAAK/B;SAFb;OAJR,EAQGH,IARH,CAQQ,eAAO;YACTC,IAAI7B,MAAJ,KAAe,SAAnB,EAA8B;iBACrB,OAAKF,MAAL,CAAY+B,IAAIC,OAAhB,CAAP;;;eAGGjC,OAAL,CAAagC,GAAb;OAbF,EAcGO,KAdH,CAcS;eAAS,OAAKtC,MAAL,CAAYuC,KAAZ,CAAT;OAdT;;;;wBAvSgB;aACT0B,SAAS,KAAKjF,OAAL,CAAakC,UAAtB,CAAP;;;;;;;;;wBAMqB;aACd+C,SAAS,KAAKjF,OAAL,CAAakF,SAAtB,CAAP;;;;;;;;;wBAMc;aACP,KAAKxD,IAAL,CAAUyD,IAAjB;;;;;;;;;wBAMc;aACP,KAAKzD,IAAL,CAAU0D,IAAjB;;;;;;;;;wBAMY;aACL,KAAKpF,OAAL,CAAayC,MAAb,IAAuB,IAA9B;;;;;;;;;wBAMe;aACR,KAAKzC,OAAL,CAAa4C,SAAb,IAA0B,EAAjC;;;;;;;;;wBAMgB;aACT,KAAK5C,OAAL,CAAa0E,UAAb,IAA2B,EAAlC;;;;;;;;;wBAMgB;aACT,KAAK1E,OAAL,CAAagF,UAAb,IAA2B,EAAlC;;;;;;;;;wBAMa;aACN,KAAKhF,OAAL,CAAaO,OAAb,IAAwB,EAA/B;;;;;;;;;wBAMmB;aACZ,CAAC,CAAC,KAAKoB,MAAd;;;;;;;;;;;wBAQc;;;UACR0D,oBAAqB,KAAKC,cAAL,CAAoBxB,MAApB,GAA6B,KAAKnC,MAAL,CAAYmC,MAA1C,GAAoD,GAA9E;UACMyB,oBAAoB,KAAKlD,eAAL,CAAqBmD,MAArB,CAA4B,UAACrD,QAAD,EAAW6B,KAAX,EAAqB;eAClE7B,WAAY,CAAC6B,MAAM7B,QAAN,GAAiB,CAAlB,IAAuB,OAAKR,MAAL,CAAYmC,MAAtD;OADwB,EAEvB,CAFuB,CAA1B;;aAIOQ,KAAKmB,GAAL,CAASJ,oBAAoBE,iBAA7B,EAAgD,GAAhD,CAAP;;;;;;;;;wBAMoB;aACb,KAAK5D,MAAL,CAAY+D,MAAZ,CAAmB,iBAAS;eAC1B,CAAC1B,MAAM5B,MAAP,IAAiB,CAAC4B,MAAMa,QAA/B;OADK,CAAP;;;;;;;;;wBAQuB;aAChB,KAAKhB,cAAL,CAAoBC,MAApB,GAA6B,CAApC;;;;;;;;;wBAMqB;aACd,KAAKnC,MAAL,CAAY+D,MAAZ,CAAmB,iBAAS;eAC1B,CAAC,CAAC1B,MAAM/D,GAAR,IAAe,CAAC,CAAC+D,MAAM5B,MAA9B;OADK,CAAP;;;;;;;;;wBAQoB;aACb,KAAKT,MAAL,CAAY+D,MAAZ,CAAmB,iBAAS;eAC1B,CAAC,CAAC1B,MAAMa,QAAf;OADK,CAAP;;;;;;;AC/HJ;;;;;;;;;;CAAA;;AAaA,gBAAe,EAACc;;GAAD,qBAAA;WACJ;UAAA,kBACAC,CADA,EACG;WACHC,QAAL;WACKC,OAAL,CAAaC,YAAb,CAA0BH,EAAEI,MAA5B;;UAEI,KAAKC,WAAT,CAAqB;gBACX,KAAKH,OADM;YAEf,KAAKI;OAFX;;;CANN;;;;;;;;ACbA;;;;;;;;;;CAAA;;AAmCA,AAGA,IAAMC,wBAAwB;WACnB;oBACS;GAFU;UAIpB,EAJoB;WAKnB,OALmB;aAMjB,CANiB;cAOhB,CAPgB;;WASnBC;CATX;;AAYA,iBAAe,EAACT;;GAAD,qBAAA;cACD;;GADC;SAIN;aACI;YACDU;KAFH;;UAKC;YACEA,MADF;eAEK;KAPN;;YAUG;YACAA;KAXH;;cAcK;YACFC;KAfH;;aAkBI;YACDC,MADC;aAAA,sBAEG;eACD,KAAKC,QAAL,GAAgB,CAAhB,GAAoB,CAA3B;;KArBC;;cAyBK;YACF,CAACF,OAAD,EAAUC,MAAV;KA1BH;;eA6BM;YACHD;KA9BH;;gBAiCO;YACJD;KAlCH;;eAqCM;YACHA;KAtCH;;aAyCI;YACD3D,MADC;eAEEA;KA3CN;;UA8CC;YACEA,MADF;eAEKA;KAhDN;;aAmDI;YACD6D,MADC;eAEE;KArDN;;UAyDC;eACK;KA1DN;;mBA6DU;YACPD,OADO;eAEJ;KA/DN;;UAkEC;YACEC,MADF;eAEK;KApEN;;gBAuEO;eACDE;KAxEN;;WA4EE;YACCA,KADD;eAEIA;KA9EN;;YAiFG;YACAF,MADA;eAEG;KAnFN;;;kBAuFS;YACND,OADM;eAEH;KAzFN;;;WA6FE;YACC5D,MADD;eAEI,oBAAM;eACNyD,qBAAP;;;GApGO;;MAAA,kBAyGN;WACE;aACE,KAAKO,KADP;gBAEK;eACD,IADC;mBAEG,KAFH;cAGF;OALH;;cAQG,KARH;kBASO,KATP;;iBAWM,CAXN;;eAaI;KAbX;GA1GW;;;;;;;SAAA,qBAgIH;QACJC,QAAQC,SAASC,aAAT,CAAuB,OAAvB,CAAZ;UACM1B,IAAN,GAAa,MAAb;UACMqB,QAAN,GAAiB,IAAjB;;;QAGIM,OAAOC,QAAP,IAAmBJ,MAAMK,KAA7B,EAAoC;;UAE9B,OAAOL,MAAMM,eAAb,KAAiC,SAAjC,IAA8C,OAAON,MAAMO,SAAb,KAA2B,SAA7E,EAAwF;aACjFC,QAAL,CAAcD,SAAd,GAA0B,IAA1B;;;;UAIE,KAAKC,QAAL,CAAcC,KAAd,IAAuB,OAAOT,MAAMU,MAAb,KAAwB,WAAnD,EAAgE;aACzDF,QAAL,CAAcG,IAAd,GAAqB,IAArB;;KARJ,MAUO;WACAH,QAAL,CAAcC,KAAd,GAAsB,KAAtB;;;;SAIGG,IAAL,GAAY,EAAZ;;SAEKC,SAAL,CAAe,YAAY;;;UAGrB,KAAK1B,OAAT,EAAkB;aACXA,OAAL,CAAa2B,YAAb;;;;WAIGC,SAAL,CAAe,KAAKJ,IAApB;KARF;GAvJW;;;;;;;eAAA,2BAuKG;;SAETK,OAAL,GAAe,IAAf;;;SAGKvF,MAAL,GAAc,KAAd;GA5KW;;;YA+KH;;;;;;;;;;YAAA,sBAUG;UACLV,aAAJ;WACK,IAAI8B,IAAI,CAAb,EAAgBA,IAAI,KAAKwD,KAAL,CAAWlD,MAA/B,EAAuCN,GAAvC,EAA4C;eACnC,KAAKwD,KAAL,CAAWxD,CAAX,CAAP;YACI9B,KAAKkG,UAAL,IAAmB,CAAClG,KAAK6B,KAAzB,IAAkC,CAAC7B,KAAKmG,OAA5C,EAAqD;iBAC5C,KAAP;;;aAGG,IAAP;KAlBM;gBAAA,0BAqBQ;aACPnF,OAAOC,MAAP,CAAcwD,qBAAd,EAAqC,KAAKnC,KAA1C,CAAP;KAtBM;aAAA,uBAyBI;aACH,CACL,cADK,EAEL,KAAKmD,QAAL,CAAcC,KAAd,GAAsB,oBAAtB,GAA6C,oBAFxC,EAGL,KAAKD,QAAL,CAAcD,SAAd,IAA2B,KAAKA,SAAhC,GAA4C,wBAA5C,GAAuEY,SAHlE,EAIL,KAAKX,QAAL,CAAcG,IAAd,IAAsB,KAAKA,IAA3B,GAAkC,mBAAlC,GAAwDQ,SAJnD,CAAP;;GAzMS;;SAmNN;UAAA,kBACE1F,OADF,EACU;WACR2F,WAAL,CAAiB3F,OAAjB;KAFG;cAAA,wBAKQ;UACP,KAAK0D,OAAT,EAAkB;aACXA,OAAL,CAAa2B,YAAb;;KAPC;QAAA,gBAWAf,KAXA,EAWO;WACLgB,SAAL,CAAehB,KAAf;KAZG;SAAA,iBAeCM,KAfD,EAeQ;UACP,KAAKA,KAAL,KAAeA,KAAnB,EAA0B;;;WAGrBA,KAAL,GAAaA,KAAb;;UAEIgB,UAAU,KAAKT,IAAnB;;;WAGKA,IAAL,GAAY,EAAZ;WACK,IAAI/D,IAAI,CAAb,EAAgBA,IAAI,KAAKwD,KAAL,CAAWlD,MAA/B,EAAuCN,GAAvC,EAA4C;YACtC9B,OAAO,KAAKsF,KAAL,CAAWxD,CAAX,CAAX;aACK+D,IAAL,CAAU7F,KAAKuG,EAAf,IAAqBvG,IAArB;;;;WAIG,IAAIf,GAAT,IAAgB,KAAK4G,IAArB,EAA2B;YACrBW,UAAU,KAAKX,IAAL,CAAU5G,GAAV,CAAd;YACIwH,UAAUH,QAAQrH,GAAR,CAAd;YACIuH,YAAYC,OAAhB,EAAyB;eAClBC,QAAL,CAAcF,OAAd,EAAuBC,OAAvB;;;;;WAKC,IAAIxH,IAAT,IAAgBqH,OAAhB,EAAyB;YACnB,CAAC,KAAKT,IAAL,CAAU5G,IAAV,CAAL,EAAqB;eACdyH,QAAL,CAAcN,SAAd,EAAyBE,QAAQrH,IAAR,CAAzB;;;;GA7PK;;WAmQJ;;;SAAA,mBAGC;UACF,KAAKqG,KAAL,CAAWlD,MAAf,EAAuB;YACjBkD,QAAQ,KAAKA,KAAjB;aACKA,KAAL,GAAa,EAAb;;;aAGKO,IAAL,GAAY,EAAZ;;;aAGKc,SAAL;aACK,IAAI7E,IAAI,CAAb,EAAgBA,IAAIwD,MAAMlD,MAA1B,EAAkCN,GAAlC,EAAuC;eAChC4E,QAAL,CAAcN,SAAd,EAAyBd,MAAMxD,CAAN,CAAzB;;;aAGG,IAAP;KAjBK;;;;OAAA,eAqBHyE,EArBG,EAqBC;UACF,CAACA,EAAL,EAAS;eACA,KAAP;;;UAGE,QAAOA,EAAP,yCAAOA,EAAP,OAAc,QAAlB,EAA4B;eACnB,KAAKV,IAAL,CAAUU,GAAGA,EAAb,KAAoB,KAA3B;;;aAGK,KAAKV,IAAL,CAAUU,EAAV,KAAiB,KAAxB;KA9BK;;;;OAAA,eAkCHK,MAlCG,EAkC4B;UAAvBC,KAAuB,uEAAf,KAAKC,QAAU;;UAC7BxB,QAAQsB,MAAZ;UACIG,UAAUzB,iBAAiBP,KAA/B;;;UAGI,CAACgC,OAAL,EAAc;gBACJ,CAACzB,KAAD,CAAR;;;;UAIE0B,WAAW,EAAf;WACK,IAAIlF,IAAI,CAAb,EAAgBA,IAAIwD,MAAMlD,MAA1B,EAAkCN,GAAlC,EAAuC;YACjC9B,OAAOsF,MAAMxD,CAAN,CAAX;YACI,KAAK2D,QAAL,CAAcC,KAAd,IAAuB1F,gBAAgBiH,IAA3C,EAAiD;iBACxC;sBAAA;kBAECjH,KAAK0D,IAFN;kBAGC1D,KAAKkH,kBAAL,IAA2BlH,KAAKmH,YAAhC,IAAgDnH,KAAKoH,IAArD,IAA6D,SAH9D;kBAICpH,KAAKyD;WAJb;;YAOEyC,aAAa,KAAjB;YACIlG,KAAKkG,UAAL,KAAoB,KAAxB,EAA+B;;SAA/B,MAEO,IAAIlG,KAAKkG,UAAT,EAAqB;uBACb,IAAb;SADK,MAEA,IAAI,OAAOmB,OAAP,KAAmB,WAAnB,IAAkCrH,KAAKsH,EAAL,YAAmBD,OAAzD,EAAkE;uBAC1D,IAAb;SADK,MAEA,IAAI,OAAOJ,IAAP,KAAgB,WAAhB,IAA+BjH,KAAKA,IAAL,YAAqBiH,IAAxD,EAA8D;uBACtD,IAAb;;YAEEf,UAAJ,EAAgB;;wBAEA,IADd;kBAEQ,CAAC,CAFT;kBAGQ,UAHR;kBAIQ,EAJR;oBAKU,KALV;mBAMS,EANT;qBAOW,KAPX;uBAQa,KAAKqB,SARlB;wBASc,KAAKC,UATnB;qBAUW,KAAKC;aACXzH,IAXL;sBAYY,EAZZ;;sBAcY,MAdZ;mBAeS,CAfT;;;;;eAoBKwB,IAAL,gBACK,KAAKA,IADV,EAEKxB,KAAKwB,IAAL,GAAYxB,KAAKwB,IAAjB,GAAwB,EAF7B;;eAKK3C,OAAL,gBACK,KAAKA,OADV,EAEKmB,KAAKnB,OAAL,GAAemB,KAAKnB,OAApB,GAA8B,EAFnC;;;;YAOE,CAACmB,KAAKuG,EAAV,EAAc;eACPA,EAAL,GAAU3D,KAAK8E,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,MAA3B,CAAkC,CAAlC,CAAV;;;YAGE,KAAKC,UAAL,CAAgB7H,IAAhB,EAAsBoG,SAAtB,CAAJ,EAAsC;;;;;YAKlC,KAAK0B,OAAL,GAAe,CAAf,IAAqBd,SAAS5E,MAAT,GAAkB,KAAKkD,KAAL,CAAWlD,MAA9B,IAAyC,KAAK0F,OAAtE,EAA+E;;;;iBAItExH,IAAT,CAAcN,IAAd;;;YAGI,KAAK8H,OAAL,KAAiB,CAArB,EAAwB;;;;;;UAMtB,CAACd,SAAS5E,MAAd,EAAsB;eACb,KAAP;;;;UAIE,KAAK0F,OAAL,KAAiB,CAArB,EAAwB;aACjBC,KAAL;;;;UAKEC,iBAAJ;UACInB,UAAU,IAAV,IAAkBA,UAAU,CAAhC,EAAmC;mBACtBG,SAASiB,MAAT,CAAgB,KAAK3C,KAArB,CAAX;OADF,MAEO,IAAIuB,KAAJ,EAAW;mBACLG,SAASiB,MAAT,CAAgB,EAAhB,CAAX;iBACSC,MAAT,CAAgBrB,KAAhB,EAAuB,CAAvB,EAA0BG,QAA1B;OAFK,MAGA;mBACM,KAAK1B,KAAL,CAAW2C,MAAX,CAAkBjB,QAAlB,CAAX;;;WAGG1B,KAAL,GAAa0C,QAAb;;;WAGK,IAAIlG,KAAI,CAAb,EAAgBA,KAAIkF,SAAS5E,MAA7B,EAAqCN,IAArC,EAA0C;YACpC9B,SAAOgH,SAASlF,EAAT,CAAX;aACK+D,IAAL,CAAU7F,OAAKuG,EAAf,IAAqBvG,MAArB;;;;WAIG2G,SAAL;WACK,IAAI7E,MAAI,CAAb,EAAgBA,MAAIkF,SAAS5E,MAA7B,EAAqCN,KAArC,EAA0C;aACnC4E,QAAL,CAAcM,SAASlF,GAAT,CAAd,EAA2BsE,SAA3B;;;aAGKW,UAAUC,QAAV,GAAqBA,SAAS,CAAT,CAA5B;KA3JK;;;;gBAAA,wBAiKMM,EAjKN,EAiKU;UACXhC,QAAQ,EAAZ;UACIgC,GAAGhC,KAAP,EAAc;aACP,IAAIxD,IAAI,CAAb,EAAgBA,IAAIwF,GAAGhC,KAAH,CAASlD,MAA7B,EAAqCN,GAArC,EAA0C;cACpC9B,OAAOsH,GAAGhC,KAAH,CAASxD,CAAT,CAAX;gBACMxB,IAAN,CAAW;kBACHN,KAAK0D,IADF;kBAEH1D,KAAKkH,kBAAL,IAA2BlH,KAAKmH,YAAhC,IAAgDnH,KAAKoH,IAFlD;kBAGHpH,KAAKyD,IAHF;sBAAA;;WAAX;;OAHJ,MAWO;cACCnD,IAAN,CAAW;gBACHgH,GAAGtC,KAAH,CAASmD,OAAT,CAAiB,qBAAjB,EAAwC,IAAxC,CADG;;SAAX;;aAKK,KAAKC,GAAL,CAAS9C,KAAT,CAAP;KApLK;;;;mBAAA,2BAyLS+C,YAzLT,EAyLuB;;;UACxB/C,QAAQ,EAAZ;UACI+C,aAAaC,KAAb,IAAsBD,aAAaC,KAAb,CAAmBlG,MAA7C,EAAqD;YAC/CkG,QAAQ,EAAZ;aACK,IAAIxG,IAAI,CAAb,EAAgBA,IAAIuG,aAAaC,KAAb,CAAmBlG,MAAvC,EAA+CN,GAA/C,EAAoD;cAC9CyG,OAAOF,aAAaC,KAAb,CAAmBxG,CAAnB,CAAX;cACIyG,KAAKC,UAAT,EAAqB;mBACZD,KAAKC,UAAL,MAAqBD,KAAKE,SAAL,EAA5B;WADF,MAEO,IAAIF,KAAKG,gBAAT,EAA2B;mBACzBH,KAAKG,gBAAL,MAA2BH,KAAKE,SAAL,EAAlC;WADK,MAEA;mBACEF,KAAKE,SAAL,EAAP;;cAEEF,IAAJ,EAAU;kBACFjI,IAAN,CAAWiI,IAAX;;;;eAIG,IAAInJ,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;cAClCP,UAAU,SAAVA,OAAU,CAAC+C,CAAD,EAAO;gBACfyG,OAAOD,MAAMxG,CAAN,CAAX;;gBAEI,CAACyG,IAAD,IAAU,MAAKT,OAAL,GAAe,CAAf,IAAoBxC,MAAMlD,MAAN,IAAgB,MAAK0F,OAAvD,EAAiE;qBACxDzI,QAAQ,MAAK+I,GAAL,CAAS9C,KAAT,CAAR,CAAP;;kBAEGqD,QAAL,CAAcJ,IAAd,EAAoBnH,IAApB,CAAyB,UAAUwH,OAAV,EAAmB;oBACpCtI,IAAN,iCAAcsI,OAAd;sBACQ9G,IAAI,CAAZ;aAFF;WANF;kBAWQ,CAAR;SAZK,CAAP;;;UAgBEuG,aAAa/C,KAAb,CAAmBlD,MAAvB,EAA+B;aACxB,IAAIN,MAAI,CAAb,EAAgBA,MAAIuG,aAAa/C,KAAb,CAAmBlD,MAAvC,EAA+CN,KAA/C,EAAoD;gBAC5CxB,IAAN,CAAW+H,aAAa/C,KAAb,CAAmBxD,GAAnB,CAAX;cACI,KAAKgG,OAAL,GAAe,CAAf,IAAoBxC,MAAMlD,MAAN,IAAgB,KAAK0F,OAA7C,EAAsD;;;;eAIjD1I,QAAQC,OAAR,CAAgB,KAAK+I,GAAL,CAAS9C,KAAT,CAAhB,CAAP;;;aAGKlG,QAAQC,OAAR,CAAgB,EAAhB,CAAP;KArOK;;;;YAAA,oBA0OEwJ,KA1OF,EA0OoB;;;UAAXC,IAAW,uEAAJ,EAAI;;aAClB,IAAI1J,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;YAClCuJ,MAAME,MAAV,EAAkB;gBACV/I,IAAN,CAAW,UAAUA,IAAV,EAAgB;oBACjB,CACN;oBACQA,KAAK0D,IADb;oBAEQoF,OAAO9I,KAAKoH,IAFpB;oBAGQpH,KAAKyD,IAHb;;aADM,CAAR;WADF;SADF,MAWO,IAAIoF,MAAMG,WAAN,IAAqB,OAAKC,aAA9B,EAA6C;cAC9C3D,QAAQ,EAAZ;cACI4D,YAAYL,MAAMM,YAAN,EAAhB;cACIC,cAAc,SAAdA,WAAc,GAAM;sBACZA,WAAV,CAAsB,UAACC,OAAD,EAAa;kBAC7BtK,UAAU,SAAVA,OAAU,CAAC+C,CAAD,EAAO;oBACd,CAACuH,QAAQvH,CAAR,CAAD,IAAeA,MAAM,CAAtB,IAA6B,OAAKgG,OAAL,GAAe,CAAf,IAAoBxC,MAAMlD,MAAN,IAAgB,OAAK0F,OAA1E,EAAoF;yBAC3EzI,QAAQiG,KAAR,CAAP;;oBAEE,CAAC+D,QAAQvH,CAAR,CAAL,EAAiB;yBACRsH,aAAP;;uBAEGT,QAAL,CAAcU,QAAQvH,CAAR,CAAd,EAA0BgH,OAAOD,MAAMzB,IAAb,GAAoB,GAA9C,EAAmDhG,IAAnD,CAAwD,UAACwH,OAAD,EAAa;wBAC7DtI,IAAN,iCAAcsI,OAAd;0BACQ9G,IAAI,CAAZ;iBAFF;eAPF;sBAYQ,CAAR;aAbF;WADF;;SAHK,MAqBA;kBACG,EAAR;;OAlCG,CAAP;KA3OK;WAAA,mBAmRCwH,GAnRD,EAmRMC,GAnRN,EAmRW;UACZC,QAAQ,KAAKC,GAAL,CAASH,GAAT,CAAZ;UACII,QAAQ,KAAKD,GAAL,CAASF,GAAT,CAAZ;UACI,CAACC,KAAD,IAAU,CAACE,KAAX,IAAoBF,UAAUE,KAAlC,EAAyC;eAChC,KAAP;;UAEEpE,QAAQ,KAAKA,KAAL,CAAW2C,MAAX,CAAkB,EAAlB,CAAZ;UACI0B,SAASrE,MAAMsE,OAAN,CAAcJ,KAAd,CAAb;UACIK,SAASvE,MAAMsE,OAAN,CAAcF,KAAd,CAAb;UACIC,WAAW,CAAC,CAAZ,IAAiBE,WAAW,CAAC,CAAjC,EAAoC;eAC3B,KAAP;;YAEIF,MAAN,IAAgBD,KAAhB;YACMG,MAAN,IAAgBL,KAAhB;WACKlE,KAAL,GAAaA,KAAb;WACKqB,SAAL;aACO,IAAP;KAnSK;;;;UAAA,kBAuSAJ,EAvSA,EAuSI;UACLvG,OAAO,KAAKyJ,GAAL,CAASlD,EAAT,CAAX;UACIvG,IAAJ,EAAU;YACJ,KAAK6H,UAAL,CAAgBzB,SAAhB,EAA2BpG,IAA3B,CAAJ,EAAsC;iBAC7B,KAAP;;YAEEsF,QAAQ,KAAKA,KAAL,CAAW2C,MAAX,CAAkB,EAAlB,CAAZ;YACIpB,QAAQvB,MAAMsE,OAAN,CAAc5J,IAAd,CAAZ;YACI6G,UAAU,CAAC,CAAf,EAAkB;kBACRhF,KAAR,CAAc,QAAd,EAAwB7B,IAAxB;iBACO,KAAP;;cAEIkI,MAAN,CAAarB,KAAb,EAAoB,CAApB;aACKvB,KAAL,GAAaA,KAAb;;;eAGO,KAAKO,IAAL,CAAU7F,KAAKuG,EAAf,CAAP;;;aAGKI,SAAL;aACKD,QAAL,CAAcN,SAAd,EAAyBpG,IAAzB;;aAEKA,IAAP;KA7TK;;;;UAAA,kBAiUAuG,EAjUA,EAiUI/E,IAjUJ,EAiUU;UACXxB,OAAO,KAAKyJ,GAAL,CAASlD,EAAT,CAAX;UACIvG,IAAJ,EAAU;YACJwG,uBACCxG,IADD,EAECwB,IAFD,CAAJ;;YAKIxB,KAAKkG,UAAL,IAAmBlG,KAAKU,MAAxB,IAAkC,CAAC8F,QAAQ9F,MAA3C,IAAqD,CAAC8F,QAAQ3E,KAA9D,IAAuE,CAAC2E,QAAQL,OAApF,EAA6F;kBACnFtE,KAAR,GAAgB,OAAhB;;;YAGE,KAAKgG,UAAL,CAAgBrB,OAAhB,EAAyBxG,IAAzB,CAAJ,EAAoC;iBAC3B,KAAP;;;YAGEsF,QAAQ,KAAKA,KAAL,CAAW2C,MAAX,CAAkB,EAAlB,CAAZ;YACIpB,QAAQvB,MAAMsE,OAAN,CAAc5J,IAAd,CAAZ;YACI6G,UAAU,CAAC,CAAf,EAAkB;kBACRhF,KAAR,CAAc,QAAd,EAAwB7B,IAAxB;iBACO,KAAP;;cAEIkI,MAAN,CAAarB,KAAb,EAAoB,CAApB,EAAuBL,OAAvB;aACKlB,KAAL,GAAaA,KAAb;;;eAGO,KAAKO,IAAL,CAAU7F,KAAKuG,EAAf,CAAP;aACKV,IAAL,CAAUW,QAAQD,EAAlB,IAAwBC,OAAxB;;;aAGKG,SAAL;aACKD,QAAL,CAAcF,OAAd,EAAuBxG,IAAvB;eACOwG,OAAP;;aAEK,KAAP;KAnWK;;;;cAAA,sBAyWIA,OAzWJ,EAyWaC,OAzWb,EAyWsB;UACvBqD,YAAY,KAAhB;WACKC,KAAL,CAAW,cAAX,EAA2BvD,OAA3B,EAAoCC,OAApC,EAA6C,YAAY;oBAC3C,IAAZ;eACOqD,SAAP;OAFF;aAIOA,SAAP;KA/WK;;;;YAAA,oBAmXEtD,OAnXF,EAmXWC,OAnXX,EAmXoB;WACpBsD,KAAL,CAAW,YAAX,EAAyBvD,OAAzB,EAAkCC,OAAlC;UACID,WAAWA,QAAQN,UAAnB,IAAiCM,QAAQ9F,MAAzC,KAAoD,CAAC+F,OAAD,IAAY,CAACA,QAAQ/F,MAAzE,CAAJ,EAAsF;aAC/EsJ,SAAL;;aAEKlE,SAAL,CAAe,YAAY;;;qBACd,YAAM;mBACVtD,MAAL,CAAYgE,OAAZ,EAAqBpF,IAArB,CAA0B,YAAM;;wBAEpB,OAAKqI,GAAL,CAASjD,OAAT,CAAV;kBACIA,WAAWA,QAAQN,UAAvB,EAAmC;uBAC5B+D,MAAL,CAAYzD,OAAZ,EAAqB;0BACX,KADW;2BAEV,CAACA,QAAQ3E;iBAFpB;;aAJJ,EASGD,KATH,CASS,UAACsC,CAAD,EAAO;qBACT+F,MAAL,CAAYzD,OAAZ,EAAqB;wBACX,KADW;yBAEV,KAFU;uBAGZtC,EAAEgG,IAAF,IAAUhG,EAAErC,KAAZ,IAAqBqC,EAAE5C,OAAvB,IAAkC4C;eAH3C;aAVF;WADF,EAiBGX,SAASX,KAAK8E,MAAL,KAAgB,EAAhB,GAAqB,EAA9B,EAAkC,EAAlC,CAjBH;SADF;OAHF,MAuBO,IAAI,CAAC,CAAClB,OAAD,IAAY,CAACA,QAAQN,UAArB,IAAmC,CAACM,QAAQ9F,MAA7C,KAAwD+F,OAAxD,IAAmEA,QAAQP,UAA3E,IAAyFO,QAAQ/F,MAArG,EAA6G;;aAE7GsJ,SAAL;;;;UAIE,KAAKtJ,MAAL,KAAgBkE,QAAQ4B,OAAR,MAAqB5B,QAAQ6B,OAAR,CAArB,IAAyCD,QAAQ9F,MAAR,KAAmB+F,QAAQ/F,MAApF,CAAJ,EAAiG;aAC1F2F,WAAL,CAAiB,IAAjB;;KAnZG;aAAA,uBAuZK;WACL0D,KAAL,CAAW,OAAX,EAAoB,KAAKzE,KAAzB;KAxZK;;;;UAAA,kBA6ZAiB,EA7ZA,EA6ZI;UACLvG,OAAO,KAAKyJ,GAAL,CAASlD,EAAT,CAAX;;;UAGI,CAACvG,IAAL,EAAW;eACFZ,QAAQE,MAAR,CAAe,YAAf,CAAP;;;;UAIE,CAACU,KAAKkG,UAAV,EAAsB;eACb9G,QAAQE,MAAR,CAAe,aAAf,CAAP;;;;UAIEU,KAAK6B,KAAT,EAAgB;eACPzC,QAAQE,MAAR,CAAeU,KAAK6B,KAApB,CAAP;;;;UAIE7B,KAAKmG,OAAT,EAAkB;eACT/G,QAAQC,OAAR,CAAgBW,IAAhB,CAAP;;;;UAIEmK,aAAa,KAAKA,UAAtB;UACIA,eAAeA,WAAW/H,MAAX,IAAqB,OAAO+H,WAAW/H,MAAlB,KAA6B,WAAjE,CAAJ,EAAmF;YAC7E,QAAO+H,UAAP,yCAAOA,UAAP,OAAsB,QAAtB,IAAkC,EAAEA,sBAAsBC,MAAxB,CAAtC,EAAuE;cACjE,OAAOD,UAAP,KAAsB,QAA1B,EAAoC;yBACrBA,WAAWE,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0B;qBAAStF,MAAMuF,IAAN,EAAT;aAA1B,EAAiDvG,MAAjD,CAAwD;qBAASgB,KAAT;aAAxD,CAAb;;uBAEW,IAAIoF,MAAJ,CAAW,SAASD,WAAWK,IAAX,CAAgB,GAAhB,EAAqBrC,OAArB,CAA6B,KAA7B,EAAoC,KAApC,CAAT,GAAsD,IAAjE,EAAuE,GAAvE,CAAb;;YAEEnI,KAAKoH,IAAL,CAAUqD,MAAV,CAAiBN,UAAjB,MAAiC,CAAC,CAAtC,EAAyC;iBAChC/K,QAAQE,MAAR,CAAe,WAAf,CAAP;;;;;UAKA,KAAKoE,IAAL,GAAY,CAAZ,IAAiB1D,KAAK0D,IAAL,IAAa,CAA9B,IAAmC1D,KAAK0D,IAAL,GAAY,KAAKA,IAAxD,EAA8D;eACrDtE,QAAQE,MAAR,CAAe,MAAf,CAAP;;;UAGE,KAAKmG,QAAL,CAAcC,KAAlB,EAAyB;YACnB,KAAKgF,oBAAL,CAA0B1K,IAA1B,CAAJ,EAAqC;iBAC5B,KAAKkC,WAAL,CAAiBlC,IAAjB,CAAP;;YAEEA,KAAKuH,SAAT,EAAoB;iBACX,KAAKoD,SAAL,CAAe3K,IAAf,CAAP;;;eAGK,KAAK4K,WAAL,CAAiB5K,IAAjB,CAAP;;;aAGK,KAAK6K,WAAL,CAAiB7K,IAAjB,CAAP;KAldK;;;;;;;;wBAAA,gCA0deA,IA1df,EA0dqB;aACnB,KAAK8K,YAAL,IACL,CAAC,CAAC,KAAKC,YAAL,CAAkBC,OADf,IAELhL,KAAK0D,IAAL,GAAY,KAAKqH,YAAL,CAAkBE,OAFhC;KA3dK;;;;;;;;eAAA,uBAqeMjL,IAreN,EAqeY;UACXkL,eAAe,KAAKH,YAAL,CAAkBC,OAAvC;WACK1I,KAAL,GAAa,IAAI4I,YAAJ,CAAiBlL,IAAjB,EAAuB,KAAK+K,YAA5B,CAAb;;aAEO/K,KAAKsC,KAAL,CAAWE,MAAX,EAAP;KAzeK;aAAA,qBA4eGxC,IA5eH,EA4eS;UACVmL,SAAS,EAAb;UACInG,cAAJ;WACK,IAAI/F,GAAT,IAAgBe,KAAKwB,IAArB,EAA2B;gBACjBxB,KAAKwB,IAAL,CAAUvC,GAAV,CAAR;YACI+F,UAAU,IAAV,IAAkBA,UAAUoB,SAAhC,EAA2C;iBAClC9F,IAAP,CAAY8K,mBAAmBnM,GAAnB,IAA0B,GAA1B,GAAgCmM,mBAAmBpG,KAAnB,CAA5C;;;UAGAqG,cAAcF,OAAO/I,MAAP,GAAgB,CAACpC,KAAKuH,SAAL,CAAeqC,OAAf,CAAuB,GAAvB,MAAgC,CAAC,CAAjC,GAAqC,GAArC,GAA2C,GAA5C,IAAmDuB,OAAOX,IAAP,CAAY,GAAZ,CAAnE,GAAsF,EAAxG;UACIjM,MAAM,IAAIC,cAAJ,EAAV;UACIE,IAAJ,CAAS,KAAT,EAAgBsB,KAAKuH,SAAL,GAAiB8D,WAAjC;aACO,KAAKC,SAAL,CAAe/M,GAAf,EAAoByB,IAApB,EAA0BA,KAAKA,IAA/B,CAAP;KAxfK;eAAA,uBA2fKA,IA3fL,EA2fW;UACZuL,OAAO,IAAInG,OAAOC,QAAX,EAAX;UACIL,cAAJ;WACK,IAAI/F,GAAT,IAAgBe,KAAKwB,IAArB,EAA2B;gBACjBxB,KAAKwB,IAAL,CAAUvC,GAAV,CAAR;YACI+F,SAAS,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAA1B,IAAsC,OAAOA,MAAM2C,QAAb,KAA0B,UAApE,EAAgF;cAC1E3C,iBAAiBwG,IAArB,EAA2B;iBACpBC,MAAL,CAAYxM,GAAZ,EAAiB+F,KAAjB,EAAwBA,MAAMoC,IAA9B;WADF,MAEO;iBACAqE,MAAL,CAAYxM,GAAZ,EAAiBY,KAAKC,SAAL,CAAekF,KAAf,CAAjB;;SAJJ,MAMO,IAAIA,UAAU,IAAV,IAAkBA,UAAUoB,SAAhC,EAA2C;eAC3CqF,MAAL,CAAYxM,GAAZ,EAAiB+F,KAAjB;;;WAGCyG,MAAL,CAAY,KAAKrE,IAAjB,EAAuBpH,KAAKA,IAA5B,EAAkCA,KAAKA,IAAL,CAAU0L,QAAV,IAAsB1L,KAAKoH,IAA7D;UACI7I,MAAM,IAAIC,cAAJ,EAAV;UACIE,IAAJ,CAAS,MAAT,EAAiBsB,KAAKwH,UAAtB;aACO,KAAK8D,SAAL,CAAe/M,GAAf,EAAoByB,IAApB,EAA0BuL,IAA1B,CAAP;KA7gBK;aAAA,qBAghBGhN,GAhhBH,EAghBQoN,KAhhBR,EAghBexM,IAhhBf,EAghBqB;;;UACtBa,OAAO2L,KAAX;UACIC,YAAY,CAAhB;UACIC,cAAc,CAAlB;;;UAGIrJ,MAAJ,CAAWsJ,UAAX,GAAwB,UAAC5H,CAAD,EAAO;;eAEtB,OAAKuF,GAAL,CAASzJ,IAAT,CAAP;YACI,CAACkE,EAAEvB,gBAAH,IAAuB,CAAC3C,IAAxB,IAAgC,CAACA,KAAKkG,UAAtC,IAAoD,CAAClG,KAAKU,MAA9D,EAAsE;;;;;YAKlEqL,aAAanJ,KAAKC,KAAL,CAAWmJ,KAAKC,GAAL,KAAa,IAAxB,CAAjB;YACIF,eAAeH,SAAnB,EAA8B;;;oBAGlBG,UAAZ;;eAEO,OAAK9B,MAAL,CAAYjK,IAAZ,EAAkB;oBACb,CAACkE,EAAEpB,MAAF,GAAWoB,EAAEnB,KAAb,GAAqB,GAAtB,EAA2BmJ,OAA3B,CAAmC,CAAnC,CADa;iBAEhBhI,EAAEpB,MAAF,GAAW+I;SAFb,CAAP;sBAIc3H,EAAEpB,MAAhB;OAlBF;;;UAsBIqJ,WAAWC,YAAY,YAAM;eACxB,OAAK3C,GAAL,CAASzJ,IAAT,CAAP;YACIA,QAAQA,KAAKkG,UAAb,IAA2B,CAAClG,KAAKmG,OAAjC,IAA4C,CAACnG,KAAK6B,KAAlD,IAA2D7B,KAAKU,MAApE,EAA4E;;;;YAIxEyL,QAAJ,EAAc;wBACEA,QAAd;qBACW,KAAX;;;YAGE;cACEvL,KAAJ;cACI6G,OAAJ,GAAc,CAAd;SAFF,CAGE,OAAOvD,CAAP,EAAU;OAdC,EAgBZ,GAhBY,CAAf;;aAkBO,IAAI9E,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;YAClC+M,iBAAJ;YACIC,KAAK,SAALA,EAAK,CAACpI,CAAD,EAAO;;cAEVmI,QAAJ,EAAc;;;qBAGH,IAAX;cACIF,QAAJ,EAAc;0BACEA,QAAd;uBACW,KAAX;;;iBAGK,OAAK1C,GAAL,CAASzJ,IAAT,CAAP;;;cAGI,CAACA,IAAL,EAAW;mBACFV,OAAO,YAAP,CAAP;;;;cAIE,CAACU,KAAKkG,UAAV,EAAsB;mBACb5G,OAAO,aAAP,CAAP;;;;cAIEU,KAAK6B,KAAT,EAAgB;mBACPvC,OAAOU,KAAK6B,KAAZ,CAAP;;;;cAIE,CAAC7B,KAAKU,MAAV,EAAkB;mBACTpB,OAAO,OAAP,CAAP;;;;cAKEU,KAAKmG,OAAT,EAAkB;mBACT9G,QAAQW,IAAR,CAAP;;;cAGEwB,OAAO,EAAX;;kBAEQ0C,EAAET,IAAV;iBACO,SAAL;iBACK,OAAL;mBACO5B,KAAL,GAAaqC,EAAET,IAAf;;iBAEG,OAAL;kBACM,CAAClF,IAAIiB,MAAT,EAAiB;qBACVqC,KAAL,GAAa,SAAb;eADF,MAEO,IAAItD,IAAIiB,MAAJ,IAAc,GAAlB,EAAuB;qBACvBqC,KAAL,GAAa,QAAb;eADK,MAEA,IAAItD,IAAIiB,MAAJ,IAAc,GAAlB,EAAuB;qBACvBqC,KAAL,GAAa,QAAb;;;;kBAIEtD,IAAIiB,MAAJ,IAAc,GAAlB,EAAuB;qBAChBqC,KAAL,GAAa,QAAb;eADF,MAEO,IAAItD,IAAIiB,MAAJ,IAAc,GAAlB,EAAuB;qBACvBqC,KAAL,GAAa,QAAb;eADK,MAEA;qBACApB,QAAL,GAAgB,QAAhB;;;;cAIFlC,IAAIgO,YAAR,EAAsB;gBAChBC,cAAcjO,IAAIkO,iBAAJ,CAAsB,cAAtB,CAAlB;gBACID,eAAeA,YAAY5C,OAAZ,CAAoB,OAApB,MAAiC,CAAC,CAArD,EAAwD;mBACjDnK,QAAL,GAAgBI,KAAK6M,KAAL,CAAWnO,IAAIgO,YAAf,CAAhB;aADF,MAEO;mBACA9M,QAAL,GAAgBlB,IAAIgO,YAApB;;;;;iBAKG,OAAKtC,MAAL,CAAYjK,IAAZ,EAAkBwB,IAAlB,CAAP;;;cAGIxB,KAAK6B,KAAT,EAAgB;mBACPvC,OAAOU,KAAK6B,KAAZ,CAAP;;;;iBAIKxC,QAAQW,IAAR,CAAP;SAnFF;;;YAuFIT,MAAJ,GAAa+M,EAAb;YACI3M,OAAJ,GAAc2M,EAAd;YACIK,OAAJ,GAAcL,EAAd;YACIM,SAAJ,GAAgBN,EAAhB;;;YAGItM,KAAKyH,OAAT,EAAkB;cACZA,OAAJ,GAAczH,KAAKyH,OAAnB;;;;aAIG,IAAIxI,GAAT,IAAgBe,KAAKnB,OAArB,EAA8B;cACxBG,gBAAJ,CAAqBC,GAArB,EAA0Be,KAAKnB,OAAL,CAAaI,GAAb,CAA1B;;;;eAIK,OAAKgL,MAAL,CAAYjK,IAAZ,EAAkB,EAAEzB,QAAF,EAAlB,CAAP;;;YAGIqB,IAAJ,CAAST,IAAT;OA5GK,CAAP;KA9jBK;eAAA,uBAirBKwM,KAjrBL,EAirBY;;;UACb3L,OAAO2L,KAAX;UACIkB,YAAY,SAAZA,SAAY,CAAU3I,CAAV,EAAa;YACvBA,EAAE4I,OAAF,KAAc,EAAlB,EAAsB;YAClBC,cAAF;;OAFJ;;UAMIC,SAAS9H,SAASC,aAAT,CAAuB,QAAvB,CAAb;aACOoB,EAAP,GAAY,mBAAmBvG,KAAKuG,EAApC;aACOa,IAAP,GAAc,mBAAmBpH,KAAKuG,EAAtC;aACO0G,GAAP,GAAa,aAAb;aACOC,YAAP,CAAoB,OAApB,EAA6B,uEAA7B;;UAGI3B,OAAOrG,SAASC,aAAT,CAAuB,MAAvB,CAAX;;WAEKpE,MAAL,GAAcf,KAAKwH,UAAnB;;WAEKJ,IAAL,GAAY,iBAAiBpH,KAAKuG,EAAlC;;WAGK2G,YAAL,CAAkB,QAAlB,EAA4B,MAA5B;WACKA,YAAL,CAAkB,QAAlB,EAA4B,mBAAmBlN,KAAKuG,EAApD;WACK2G,YAAL,CAAkB,SAAlB,EAA6B,qBAA7B;;UAEIlI,cAAJ;UACIC,cAAJ;WACK,IAAIhG,GAAT,IAAgBe,KAAKwB,IAArB,EAA2B;gBACjBxB,KAAKwB,IAAL,CAAUvC,GAAV,CAAR;YACI+F,SAAS,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAA1B,IAAsC,OAAOA,MAAM2C,QAAb,KAA0B,UAApE,EAAgF;kBACtE9H,KAAKC,SAAL,CAAekF,KAAf,CAAR;;YAEEA,UAAU,IAAV,IAAkBA,UAAUoB,SAAhC,EAA2C;kBACjClB,SAASC,aAAT,CAAuB,OAAvB,CAAR;gBACM1B,IAAN,GAAa,QAAb;gBACM2D,IAAN,GAAanI,GAAb;gBACM+F,KAAN,GAAcA,KAAd;eACKmI,WAAL,CAAiBlI,KAAjB;;;WAGCkI,WAAL,CAAiBnN,KAAKsH,EAAtB;;eAESnI,IAAT,CAAcgO,WAAd,CAA0BH,MAA1B,EAAkCG,WAAlC,CAA8C5B,IAA9C;;UAKI6B,kBAAkB,SAAlBA,eAAkB,GAAY;YAC5BC,YAAJ;YACI;cACEL,OAAOM,aAAX,EAA0B;kBAClBN,OAAOM,aAAP,CAAqBpI,QAA3B;;SAFJ,CAIE,OAAOqI,GAAP,EAAY;YAEV,CAACF,GAAL,EAAU;cACJ;kBACIL,OAAOQ,eAAP,GAAyBR,OAAOQ,eAAhC,GAAkDR,OAAO9H,QAA/D;WADF,CAEE,OAAOqI,GAAP,EAAY;kBACNP,OAAO9H,QAAb;;;YAGAmI,OAAOA,IAAIlO,IAAf,EAAqB;iBACZkO,IAAIlO,IAAJ,CAASsO,SAAhB;;eAEK,IAAP;OAlBF;;aAsBO,IAAIrO,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;mBAC3B,YAAM;iBACR,OAAK2K,MAAL,CAAYjK,IAAZ,EAAkB,EAAEgN,cAAF,EAAlB,CAAP;;;cAGI,CAAChN,IAAL,EAAW;mBACFV,OAAO,YAAP,CAAP;;;;cAIE6M,WAAWC,YAAY,YAAM;mBACxB,OAAK3C,GAAL,CAASzJ,IAAT,CAAP;gBACIA,QAAQA,KAAKkG,UAAb,IAA2B,CAAClG,KAAKmG,OAAjC,IAA4C,CAACnG,KAAK6B,KAAlD,IAA2D7B,KAAKU,MAApE,EAA4E;;;;gBAIxEyL,QAAJ,EAAc;4BACEA,QAAd;yBACW,KAAX;;;mBAGKQ,OAAP,CAAe,EAAElJ,MAAMzD,OAAO,OAAP,GAAiB,YAAzB,EAAf;WAXa,EAYZ,GAZY,CAAf;;cAeIqM,iBAAJ;cACIC,KAAK,SAALA,EAAK,CAACpI,CAAD,EAAO;;gBAEVmI,QAAJ,EAAc;;;uBAGH,IAAX;;gBAGIF,QAAJ,EAAc;4BACEA,QAAd;yBACW,KAAX;;;;qBAIOhN,IAAT,CAAcuO,mBAAd,CAAkC,SAAlC,EAA6Cb,SAA7C;;mBAEO,OAAKpD,GAAL,CAASzJ,IAAT,CAAP;;;gBAGI,CAACA,IAAL,EAAW;qBACFV,OAAO,YAAP,CAAP;;;;gBAIE,CAACU,KAAKkG,UAAV,EAAsB;qBACb5G,OAAO,aAAP,CAAP;;;;gBAIEU,KAAK6B,KAAT,EAAgB;qBACPvC,OAAOU,KAAK6B,KAAZ,CAAP;;;;gBAIE,CAAC7B,KAAKU,MAAV,EAAkB;qBACTpB,OAAO,OAAP,CAAP;;;;gBAIEU,KAAKmG,OAAT,EAAkB;qBACT9G,QAAQW,IAAR,CAAP;;;gBAGEP,WAAW2N,iBAAf;gBACI5L,OAAO,EAAX;oBACQ0C,EAAET,IAAV;mBACO,OAAL;qBACO5B,KAAL,GAAa,OAAb;;mBAEG,OAAL;oBACM7B,KAAK6B,KAAT,EAAgB;uBACTA,KAAL,GAAa7B,KAAK6B,KAAlB;iBADF,MAEO,IAAIpC,aAAa,IAAjB,EAAuB;uBACvBoC,KAAL,GAAa,SAAb;iBADK,MAEA;uBACAA,KAAL,GAAa,QAAb;;;;oBAIE7B,KAAK6B,KAAT,EAAgB;uBACTA,KAAL,GAAa7B,KAAK6B,KAAlB;iBADF,MAEO,IAAIL,SAAS,IAAb,EAAmB;uBACnBK,KAAL,GAAa,SAAb;iBADK,MAEA;uBACApB,QAAL,GAAgB,QAAhB;;;;gBAIFhB,aAAa,IAAjB,EAAuB;kBACjBA,YAAYA,SAASmI,MAAT,CAAgB,CAAhB,EAAmB,CAAnB,MAA0B,GAAtC,IAA6CnI,SAASmI,MAAT,CAAgBnI,SAAS2C,MAAT,GAAkB,CAAlC,EAAqC,CAArC,MAA4C,GAA7F,EAAkG;oBAC5F;6BACSvC,KAAK6M,KAAL,CAAWjN,QAAX,CAAX;iBADF,CAEE,OAAO8N,GAAP,EAAY;;mBAGX9N,QAAL,GAAgBA,QAAhB;;;;mBAIK,OAAKwK,MAAL,CAAYjK,IAAZ,EAAkBwB,IAAlB,CAAP;;gBAEIxB,KAAK6B,KAAT,EAAgB;qBACPvC,OAAOU,KAAK6B,KAAZ,CAAP;;;;mBAIKxC,QAAQW,IAAR,CAAP;WAtFF;;;iBA2FOT,MAAP,GAAgB+M,EAAhB;iBACO3M,OAAP,GAAiB2M,EAAjB;iBACOK,OAAP,GAAiBL,EAAjB;;;mBAISnN,IAAT,CAAcsD,gBAAd,CAA+B,SAA/B,EAA0CoK,SAA1C;;;eAGKc,MAAL;SA7HF,EA8HG,EA9HH;OADK,EAgIJvM,IAhII,CAgIC,UAAUC,GAAV,EAAe;eACduM,UAAP,IAAqBZ,OAAOY,UAAP,CAAkBC,WAAlB,CAA8Bb,MAA9B,CAArB;eACO3L,GAAP;OAlIK,EAmIJO,KAnII,CAmIE,UAAUP,GAAV,EAAe;eACfuM,UAAP,IAAqBZ,OAAOY,UAAP,CAAkBC,WAAlB,CAA8Bb,MAA9B,CAArB;eACO3L,GAAP;OArIK,CAAP;KAvvBK;eAAA,uBAk4BKX,MAl4BL,EAk4Ba;UACdV,aAAJ;UACI6G,QAAQ,CAAZ;aACQ7G,OAAO,KAAKsF,KAAL,CAAWuB,KAAX,CAAf,EAAmC;;YAE7B,CAAC7G,KAAKkG,UAAV,EAAsB;;SAAtB,MAEO,IAAIxF,UAAU,CAAC,KAAKuF,OAApB,EAA6B;cAC9B,KAAK+D,SAAL,IAAkB,KAAK8D,MAAvB,IAAkC,KAAK9D,SAAL,IAAkB,CAAC,KAAKvE,QAAL,CAAcC,KAAvE,EAA+E;;;cAG3E,CAAC1F,KAAKU,MAAN,IAAgB,CAACV,KAAK6B,KAAtB,IAA+B,CAAC7B,KAAKmG,OAAzC,EAAkD;iBAC3C8D,MAAL,CAAYjK,IAAZ,EAAkB,EAAEU,QAAQ,IAAV,EAAlB;;SALG,MAOA;cACDV,KAAKU,MAAT,EAAiB;iBACVuJ,MAAL,CAAYjK,IAAZ,EAAkB,EAAEU,QAAQ,KAAV,EAAlB;;;;UAIF,KAAKsJ,SAAL,KAAmB,CAAvB,EAA0B;aACnBtJ,MAAL,GAAc,KAAd;;KAv5BG;aAAA,qBA45BGqN,GA55BH,EA45BQ;UACTzG,KAAKyG,GAAT;UACI,CAAC,KAAKtI,QAAL,CAAcG,IAAnB,EAAyB;;;;;UAKrB,KAAKoI,WAAT,EAAsB;YAChB;mBACON,mBAAT,CAA6B,WAA7B,EAA0C,KAAKO,WAA/C,EAA4D,KAA5D;mBACSP,mBAAT,CAA6B,WAA7B,EAA0C,KAAKQ,WAA/C,EAA4D,KAA5D;mBACSR,mBAAT,CAA6B,MAA7B,EAAqC,KAAKS,cAA1C,EAA0D,KAA1D;eACKH,WAAL,CAAiBN,mBAAjB,CAAqC,UAArC,EAAiD,KAAKU,UAAtD,EAAkE,KAAlE;eACKJ,WAAL,CAAiBN,mBAAjB,CAAqC,MAArC,EAA6C,KAAKW,MAAlD,EAA0D,KAA1D;SALF,CAME,OAAOnK,CAAP,EAAU;;;UAIV,CAACoD,EAAL,EAAS;aACF,KAAL;OADF,MAEO,IAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;aAC5BpC,SAASoJ,aAAT,CAAuBhH,EAAvB,KAA8B,KAAKiH,KAAL,CAAW/J,GAAX,CAAe8J,aAAf,CAA6BhH,EAA7B,CAAnC;OADK,MAEA,IAAIA,OAAO,IAAX,EAAiB;aACjB,KAAKlD,OAAL,CAAaI,GAAlB;;;WAGGwJ,WAAL,GAAmB1G,EAAnB;;UAEI,KAAK0G,WAAT,EAAsB;iBACXvL,gBAAT,CAA0B,WAA1B,EAAuC,KAAKwL,WAA5C,EAAyD,KAAzD;iBACSxL,gBAAT,CAA0B,WAA1B,EAAuC,KAAKyL,WAA5C,EAAyD,KAAzD;iBACSzL,gBAAT,CAA0B,MAA1B,EAAkC,KAAK0L,cAAvC,EAAuD,KAAvD;aACKH,WAAL,CAAiBvL,gBAAjB,CAAkC,UAAlC,EAA8C,KAAK2L,UAAnD,EAA+D,KAA/D;aACKJ,WAAL,CAAiBvL,gBAAjB,CAAkC,MAAlC,EAA0C,KAAK4L,MAA/C,EAAuD,KAAvD;;KA77BG;eAAA,uBAk8BKnK,CAl8BL,EAk8BQ;QACX6I,cAAF;UACI,CAAC,KAAKyB,UAAV,EAAsB;aACfA,UAAL,GAAkB,IAAlB;;KAr8BG;eAAA,uBAy8BKtK,CAz8BL,EAy8BQ;QACX6I,cAAF;UACI7I,EAAEI,MAAF,CAASmK,QAAT,KAAsB,MAAtB,IAAiCvK,EAAEwK,OAAF,KAAc,CAAd,IAAmBxK,EAAEyK,OAAF,KAAc,CAAjC,IAAsC,CAACzK,EAAE0K,WAAzC,IAAwD1K,EAAE2K,OAAF,IAAa,CAA1G,EAA8G;aACvGL,UAAL,GAAkB,KAAlB;;KA58BG;cAAA,sBAg9BItK,CAh9BJ,EAg9BO;QACV6I,cAAF;KAj9BK;kBAAA,4BAo9BU;WACVyB,UAAL,GAAkB,KAAlB;KAr9BK;UAAA,kBAw9BAtK,CAx9BA,EAw9BG;QACN6I,cAAF;WACK+B,eAAL,CAAqB5K,EAAEmE,YAAvB;;;CA7tCN;;;;;;;;AClDA,UAAiB0G,UAAjB;;;;;;;;"} \ No newline at end of file diff --git a/dist/vue-upload-component.min.js b/dist/vue-upload-component.min.js index fa0c315..1389c3b 100644 --- a/dist/vue-upload-component.min.js +++ b/dist/vue-upload-component.min.js @@ -1,7 +1,7 @@ /*! * Name: vue-upload-component - * Version: 2.7.3 + * Version: 2.8.0 * 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";function e(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t1&&void 0!==arguments[1]?arguments[1]:this.addIndex,i=e,n=i instanceof Array;n||(i=[i]);for(var o=[],a=0;a1&&o.length+this.files.length>=this.maximum)break;if(o.push(s),1===this.maximum)break}}if(!o.length)return!1;1===this.maximum&&this.clear();var d=void 0;!0===t||0===t?d=o.concat(this.files):t?(d=o.concat([])).splice(t,0,o):d=this.files.concat(o),this.files=d;for(var l=0;l0&&i.length>=r.maximum)return t(r.add(i));r.getEntry(s).then(function(t){i.push.apply(i,e(t)),o(a+1)})}(0)})}if(t.files.length){for(var s=0;s0&&i.length>=this.maximum));s++);return Promise.resolve(this.add(i))}return Promise.resolve([])},getEntry:function(t){var r=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise(function(n,o){if(t.isFile)t.file(function(e){n([{size:e.size,name:i+e.name,type:e.type,file:e}])});else if(t.isDirectory&&r.dropDirectory){var a=[],s=t.createReader();!function o(){s.readEntries(function(s){!function u(d){return!s[d]&&0===d||r.maximum>0&&a.length>=r.maximum?n(a):s[d]?void r.getEntry(s[d],i+t.name+"/").then(function(t){a.push.apply(a,e(t)),u(d+1)}):o()}(0)})}()}else n([])})},replace:function(e,t){var r=this.get(e),i=this.get(t);if(!r||!i||r===i)return!1;var n=this.files.concat([]),o=n.indexOf(r),a=n.indexOf(i);return-1!==o&&-1!==a&&(n[o]=i,n[a]=r,this.files=n,this.emitInput(),!0)},remove:function(e){var t=this.get(e);if(t){if(this.emitFilter(void 0,t))return!1;var r=this.files.concat([]),i=r.indexOf(t);if(-1===i)return console.error("remove",t),!1;r.splice(i,1),this.files=r,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=r({},i,t);if(!i.fileObject||!i.active||n.active||n.error||n.success||(n.error="abort"),this.emitFilter(n,i))return!1;var o=this.files.concat([]),a=o.indexOf(i);return-1===a?(console.error("update",i),!1):(o.splice(a,1,n),this.files=o,delete this.maps[i.id],this.maps[n.id]=n,this.emitInput(),this.emitFile(n,i),n)}return!1},emitFilter:function(e,t){var r=!1;return this.$emit("input-filter",e,t,function(){return r=!0}),r},emitFile:function(e,t){this.$emit("input-file",e,t),!(e&&e.fileObject&&e.active)||t&&t.active?e&&e.fileObject&&e.active||!t||!t.fileObject||!t.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var t=this;setTimeout(function(){t.upload(e).then(function(){(e=t.get(e))&&e.fileObject&&t.update(e,{active:!1,success:!e.error})}).catch(function(r){t.update(e,{active:!1,success:!1,error:r.code||r.error||r.message||r})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(e)===Boolean(t)&&e.active===t.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 r=this.extensions;return r&&(r.length||void 0===r.length)&&("object"===(void 0===r?"undefined":i(r))&&r instanceof RegExp||("string"==typeof r&&(r=r.split(",").map(function(e){return e.trim()}).filter(function(e){return e})),r=new RegExp("\\.("+r.join("|").replace(/\./g,"\\.")+")$","i")),-1===t.name.search(r))?Promise.reject("extension"):this.size>0&&t.size>=0&&t.size>this.size?Promise.reject("size"):this.features.html5&&t.putAction?this.uploadPut(t):this.features.html5?this.uploadHtml5(t):this.uploadHtml4(t)},uploadPut:function(e){var t=[],r=void 0;for(var i in e.data)null!==(r=e.data[i])&&void 0!==r&&t.push(encodeURIComponent(i)+"="+encodeURIComponent(r));var n=t.length?(-1===e.putAction.indexOf("?")?"?":"&")+t.join("&"):"",o=new XMLHttpRequest;return o.open("PUT",e.putAction+n),this.uploadXhr(o,e,e.file)},uploadHtml5:function(e){var t=new window.FormData,r=void 0;for(var n in e.data)(r=e.data[n])&&"object"===(void 0===r?"undefined":i(r))&&"function"!=typeof r.toString?r instanceof File?t.append(n,r,r.name):t.append(n,JSON.stringify(r)):null!==r&&void 0!==r&&t.append(n,r);t.append(this.name,e.file,e.file.filename||e.name);var o=new XMLHttpRequest;return o.open("POST",e.postAction),this.uploadXhr(o,e,t)},uploadXhr:function(e,t,r){var i=this,n=t,o=0,a=0;e.upload.onprogress=function(e){if(n=i.get(n),e.lengthComputable&&n&&n.fileObject&&n.active){var t=Math.round(Date.now()/1e3);t!==o&&(o=t,n=i.update(n,{progress:(e.loaded/e.total*100).toFixed(2),speed:e.loaded-a}),a=e.loaded)}};var s=setInterval(function(){if(!(n=i.get(n))||!n.fileObject||n.success||n.error||!n.active){s&&(clearInterval(s),s=!1);try{e.abort(),e.timeout=1}catch(e){}}},100);return new Promise(function(t,o){var a=void 0,u=function(r){if(!a){if(a=!0,s&&(clearInterval(s),s=!1),!(n=i.get(n)))return o("not_exists");if(!n.fileObject)return o("file_object");if(n.error)return o(n.error);if(!n.active)return o("abort");if(n.success)return t(n);var u={};switch(r.type){case"timeout":case"abort":u.error=r.type;break;case"error":e.status?e.status>=500?u.error="server":e.status>=400&&(u.error="denied"):u.error="network";break;default:e.status>=500?u.error="server":e.status>=400?u.error="denied":u.progress="100.00"}if(e.responseText){var d=e.getResponseHeader("Content-Type");d&&-1!==d.indexOf("/json")?u.response=JSON.parse(e.responseText):u.response=e.responseText}return(n=i.update(n,u)).error?o(n.error):t(n)}};e.onload=u,e.onerror=u,e.onabort=u,e.ontimeout=u,n.timeout&&(e.timeout=n.timeout);for(var d in n.headers)e.setRequestHeader(d,n.headers[d]);n=i.update(n,{xhr:e}),e.send(r)})},uploadHtml4:function(e){var t=this,r=e,n=function(e){27===e.keyCode&&e.preventDefault()},o=document.createElement("iframe");o.id="upload-iframe-"+r.id,o.name="upload-iframe-"+r.id,o.src="about:blank",o.setAttribute("style","width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;");var a=document.createElement("form");a.action=r.postAction,a.name="upload-form-"+r.id,a.setAttribute("method","POST"),a.setAttribute("target","upload-iframe-"+r.id),a.setAttribute("enctype","multipart/form-data");var s=void 0,u=void 0;for(var d in r.data)(s=r.data[d])&&"object"===(void 0===s?"undefined":i(s))&&"function"!=typeof s.toString&&(s=JSON.stringify(s)),null!==s&&void 0!==s&&((u=document.createElement("input")).type="hidden",u.name=d,u.value=s,a.appendChild(u));a.appendChild(r.el),document.body.appendChild(o).appendChild(a);var l=function(){var e=void 0;try{o.contentWindow&&(e=o.contentWindow.document)}catch(e){}if(!e)try{e=o.contentDocument?o.contentDocument:o.document}catch(t){e=o.document}return e&&e.body?e.body.innerHTML:null};return new Promise(function(e,i){setTimeout(function(){if(!(r=t.update(r,{iframe:o})))return i("not_exists");var s=setInterval(function(){(r=t.get(r))&&r.fileObject&&!r.success&&!r.error&&r.active||(s&&(clearInterval(s),s=!1),o.onabort({type:r?"abort":"not_exists"}))},100),u=void 0,d=function(o){if(!u){if(u=!0,s&&(clearInterval(s),s=!1),document.body.removeEventListener("keydown",n),!(r=t.get(r)))return i("not_exists");if(!r.fileObject)return i("file_object");if(r.error)return i(r.error);if(!r.active)return i("abort");if(r.success)return e(r);var a=l(),d={};switch(o.type){case"abort":d.error="abort";break;case"error":r.error?d.error=r.error:d.error=null===a?"network":"denied";break;default:r.error?d.error=r.error:null===d?d.error="network":d.progress="100.00"}if(null!==a){if(a&&"{"===a.substr(0,1)&&"}"===a.substr(a.length-1,1))try{a=JSON.parse(a)}catch(e){}d.response=a}return(r=t.update(r,d)).error?i(r.error):e(r)}};o.onload=d,o.onerror=d,o.onabort=d,document.body.addEventListener("keydown",n),a.submit()},50)}).then(function(e){return o.parentNode&&o.parentNode.removeChild(o),e}).catch(function(e){return o.parentNode&&o.parentNode.removeChild(o),e})},watchActive:function(e){for(var t=void 0,r=0;t=this.files[r];)if(r++,t.fileObject)if(e&&!this.destroy){if(this.uploading>=this.thread||this.uploading&&!this.features.html5)break;t.active||t.error||t.success||this.update(t,{active:!0})}else t.active&&this.update(t,{active:!1});else;0===this.uploading&&(this.active=!1)},watchDrop:function(e){var t=e;if(this.features.drop){if(this.dropElement)try{document.removeEventListener("dragenter",this.onDragenter,!1),document.removeEventListener("dragleave",this.onDragleave,!1),document.removeEventListener("drop",this.onDocumentDrop,!1),this.dropElement.removeEventListener("dragover",this.onDragover,!1),this.dropElement.removeEventListener("drop",this.onDrop,!1)}catch(e){}t?"string"==typeof t?t=document.querySelector(t)||this.$root.$el.querySelector(t):!0===t&&(t=this.$parent.$el):t=!1,this.dropElement=t,this.dropElement&&(document.addEventListener("dragenter",this.onDragenter,!1),document.addEventListener("dragleave",this.onDragleave,!1),document.addEventListener("drop",this.onDocumentDrop,!1),this.dropElement.addEventListener("dragover",this.onDragover,!1),this.dropElement.addEventListener("drop",this.onDrop,!1))}},onDragenter:function(e){e.preventDefault(),this.dropActive||(this.dropActive=!0)},onDragleave:function(e){e.preventDefault(),("HTML"===e.target.nodeName||0===e.screenX&&0===e.screenY&&!e.fromElement&&e.offsetX<=0)&&(this.dropActive=!1)},onDragover:function(e){e.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(e){e.preventDefault(),this.addDataTransfer(e.dataTransfer)}}},o=Object.freeze({default:n});return o&&n||o}); +!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 e=function(e){var t=new XMLHttpRequest;return t.responseType="json",t.open(e.method||"GET",e.url),e.headers&&Object.keys(e.headers).forEach(function(i){t.setRequestHeader(i,e.headers[i])}),t},t=function(e,t){return new Promise(function(i,n){e.onload=function(){e.status>=200&&e.status<300?i(e.response):n(e.statusText)},e.onerror=function(){return n(e.statusText)},e.send(JSON.stringify(t))})},i=function(i){var n=e(i);return t(n,i.body)},n=function(){function e(e,t){for(var i=0;i0}},{key:"chunksUploading",get:function(){return this.chunks.filter(function(e){return!!e.xhr&&!!e.active})}},{key:"chunksUploaded",get:function(){return this.chunks.filter(function(e){return!!e.uploaded})}}]),r}();!function(){if("undefined"!=typeof document){var e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css",t.styleSheet?t.styleSheet.cssText="":t.appendChild(document.createTextNode("")),e.appendChild(t)}}();var o=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:this.addIndex,i=e,n=i instanceof Array;n||(i=[i]);for(var r=[],s=0;s1&&r.length+this.files.length>=this.maximum)break;if(r.push(a),1===this.maximum)break}}if(!r.length)return!1;1===this.maximum&&this.clear();var c=void 0;!0===t||0===t?c=r.concat(this.files):t?(c=r.concat([])).splice(t,0,r):c=this.files.concat(r),this.files=c;for(var d=0;d0&&i.length>=t.maximum)return e(t.add(i));t.getEntry(s).then(function(e){i.push.apply(i,a(e)),r(o+1)})}(0)})}if(e.files.length){for(var s=0;s0&&i.length>=this.maximum));s++);return Promise.resolve(this.add(i))}return Promise.resolve([])},getEntry:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return new Promise(function(n,r){if(e.isFile)e.file(function(e){n([{size:e.size,name:i+e.name,type:e.type,file:e}])});else if(e.isDirectory&&t.dropDirectory){var o=[],s=e.createReader();!function r(){s.readEntries(function(s){!function u(c){return!s[c]&&0===c||t.maximum>0&&o.length>=t.maximum?n(o):s[c]?void t.getEntry(s[c],i+e.name+"/").then(function(e){o.push.apply(o,a(e)),u(c+1)}):r()}(0)})}()}else n([])})},replace:function(e,t){var i=this.get(e),n=this.get(t);if(!i||!n||i===n)return!1;var r=this.files.concat([]),o=r.indexOf(i),s=r.indexOf(n);return-1!==o&&-1!==s&&(r[o]=n,r[s]=i,this.files=r,this.emitInput(),!0)},remove:function(e){var t=this.get(e);if(t){if(this.emitFilter(void 0,t))return!1;var i=this.files.concat([]),n=i.indexOf(t);if(-1===n)return console.error("remove",t),!1;i.splice(n,1),this.files=i,delete this.maps[t.id],this.emitInput(),this.emitFile(void 0,t)}return t},update:function(e,t){var i=this.get(e);if(i){var n=o({},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(e,t){this.$emit("input-file",e,t),!(e&&e.fileObject&&e.active)||t&&t.active?e&&e.fileObject&&e.active||!t||!t.fileObject||!t.active||this.uploading--:(this.uploading++,this.$nextTick(function(){var t=this;setTimeout(function(){t.upload(e).then(function(){(e=t.get(e))&&e.fileObject&&t.update(e,{active:!1,success:!e.error})}).catch(function(i){t.update(e,{active:!1,success:!1,error:i.code||i.error||i.message||i})})},parseInt(50*Math.random()+50,10))})),!this.active||Boolean(e)===Boolean(t)&&e.active===t.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;return i&&(i.length||void 0===i.length)&&("object"===(void 0===i?"undefined":s(i))&&i instanceof RegExp||("string"==typeof i&&(i=i.split(",").map(function(e){return e.trim()}).filter(function(e){return e})),i=new RegExp("\\.("+i.join("|").replace(/\./g,"\\.")+")$","i")),-1===t.name.search(i))?Promise.reject("extension"):this.size>0&&t.size>=0&&t.size>this.size?Promise.reject("size"):this.features.html5?this.shouldUseChunkUpload(t)?this.uploadChunk(t):t.putAction?this.uploadPut(t):this.uploadHtml5(t):this.uploadHtml4(t)},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])&&void 0!==i&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));var r=t.length?(-1===e.putAction.indexOf("?")?"?":"&")+t.join("&"):"",o=new XMLHttpRequest;return o.open("PUT",e.putAction+r),this.uploadXhr(o,e,e.file)},uploadHtml5:function(e){var t=new window.FormData,i=void 0;for(var n in e.data)(i=e.data[n])&&"object"===(void 0===i?"undefined":s(i))&&"function"!=typeof i.toString?i instanceof File?t.append(n,i,i.name):t.append(n,JSON.stringify(i)):null!==i&&void 0!==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(e,t,i){var n=this,r=t,o=0,s=0;e.upload.onprogress=function(e){if(r=n.get(r),e.lengthComputable&&r&&r.fileObject&&r.active){var t=Math.round(Date.now()/1e3);t!==o&&(o=t,r=n.update(r,{progress:(e.loaded/e.total*100).toFixed(2),speed:e.loaded-s}),s=e.loaded)}};var a=setInterval(function(){if(!(r=n.get(r))||!r.fileObject||r.success||r.error||!r.active){a&&(clearInterval(a),a=!1);try{e.abort(),e.timeout=1}catch(e){}}},100);return new Promise(function(t,o){var s=void 0,u=function(i){if(!s){if(s=!0,a&&(clearInterval(a),a=!1),!(r=n.get(r)))return o("not_exists");if(!r.fileObject)return o("file_object");if(r.error)return o(r.error);if(!r.active)return o("abort");if(r.success)return t(r);var u={};switch(i.type){case"timeout":case"abort":u.error=i.type;break;case"error":e.status?e.status>=500?u.error="server":e.status>=400&&(u.error="denied"):u.error="network";break;default:e.status>=500?u.error="server":e.status>=400?u.error="denied":u.progress="100.00"}if(e.responseText){var c=e.getResponseHeader("Content-Type");c&&-1!==c.indexOf("/json")?u.response=JSON.parse(e.responseText):u.response=e.responseText}return(r=n.update(r,u)).error?o(r.error):t(r)}};for(var c in e.onload=u,e.onerror=u,e.onabort=u,e.ontimeout=u,r.timeout&&(e.timeout=r.timeout),r.headers)e.setRequestHeader(c,r.headers[c]);r=n.update(r,{xhr:e}),e.send(i)})},uploadHtml4:function(e){var t=this,i=e,n=function(e){27===e.keyCode&&e.preventDefault()},r=document.createElement("iframe");r.id="upload-iframe-"+i.id,r.name="upload-iframe-"+i.id,r.src="about:blank",r.setAttribute("style","width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;");var o=document.createElement("form");o.action=i.postAction,o.name="upload-form-"+i.id,o.setAttribute("method","POST"),o.setAttribute("target","upload-iframe-"+i.id),o.setAttribute("enctype","multipart/form-data");var a=void 0,u=void 0;for(var c in i.data)(a=i.data[c])&&"object"===(void 0===a?"undefined":s(a))&&"function"!=typeof a.toString&&(a=JSON.stringify(a)),null!==a&&void 0!==a&&((u=document.createElement("input")).type="hidden",u.name=c,u.value=a,o.appendChild(u));o.appendChild(i.el),document.body.appendChild(r).appendChild(o);return new Promise(function(e,s){setTimeout(function(){if(!(i=t.update(i,{iframe:r})))return s("not_exists");var a=setInterval(function(){(i=t.get(i))&&i.fileObject&&!i.success&&!i.error&&i.active||(a&&(clearInterval(a),a=!1),r.onabort({type:i?"abort":"not_exists"}))},100),u=void 0,c=function(o){if(!u){if(u=!0,a&&(clearInterval(a),a=!1),document.body.removeEventListener("keydown",n),!(i=t.get(i)))return s("not_exists");if(!i.fileObject)return s("file_object");if(i.error)return s(i.error);if(!i.active)return s("abort");if(i.success)return e(i);var c=function(){var e=void 0;try{r.contentWindow&&(e=r.contentWindow.document)}catch(e){}if(!e)try{e=r.contentDocument?r.contentDocument:r.document}catch(t){e=r.document}return e&&e.body?e.body.innerHTML:null}(),d={};switch(o.type){case"abort":d.error="abort";break;case"error":i.error?d.error=i.error:d.error=null===c?"network":"denied";break;default:i.error?d.error=i.error:null===d?d.error="network":d.progress="100.00"}if(null!==c){if(c&&"{"===c.substr(0,1)&&"}"===c.substr(c.length-1,1))try{c=JSON.parse(c)}catch(e){}d.response=c}return(i=t.update(i,d)).error?s(i.error):e(i)}};r.onload=c,r.onerror=c,r.onabort=c,document.body.addEventListener("keydown",n),o.submit()},50)}).then(function(e){return r.parentNode&&r.parentNode.removeChild(r),e}).catch(function(e){return r.parentNode&&r.parentNode.removeChild(r),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){e.preventDefault(),this.dropActive||(this.dropActive=!0)},onDragleave:function(e){e.preventDefault(),("HTML"===e.target.nodeName||0===e.screenX&&0===e.screenY&&!e.fromElement&&e.offsetX<=0)&&(this.dropActive=!1)},onDragover:function(e){e.preventDefault()},onDocumentDrop:function(){this.dropActive=!1},onDrop:function(e){e.preventDefault(),this.addDataTransfer(e.dataTransfer)}}},d=Object.freeze({default:c});return d&&c||d}); //# 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 e090885..677622a 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/InputFile.vue","../src/FileUpload.vue"],"sourcesContent":["\n\n","\n\n\n"],"names":["render","e","$destroy","$parent","addInputFile","target","this","constructor","$el","String","Boolean","Number","multiple","Object","Array","value","input","document","createElement","type","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","active","file","i","length","fileObject","error","success","undefined","watchActive","oldMaps","id","key","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","size","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","data","headers","Math","random","toString","substr","emitFilter","maximum","push","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","Promise","resolve","reject","forEach","_this","getEntry","then","results","entry","path","isFile","isDirectory","_this2","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","upload","_this3","update","catch","code","message","parseInt","extensions","RegExp","split","map","trim","filter","join","search","uploadPut","uploadHtml5","uploadHtml4","querys","encodeURIComponent","queryString","xhr","XMLHttpRequest","open","uploadXhr","form","File","append","JSON","stringify","filename","_file","body","speedTime","speedLoaded","onprogress","_this4","lengthComputable","speedTime2","round","Date","now","loaded","total","toFixed","interval","setInterval","abort","complete","fn","status","progress","responseText","contentType","getResponseHeader","response","parse","onload","onerror","onabort","ontimeout","setRequestHeader","send","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","action","appendChild","getResponseData","doc","contentWindow","err","contentDocument","innerHTML","_this5","removeEventListener","addEventListener","submit","res","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer"],"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/InputFile.vue","../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.responseType = 'json'\n xhr.open(options.method || 'GET', options.url)\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 resolve(xhr.response)\n } else {\n reject(xhr.statusText)\n }\n }\n xhr.onerror = () => reject(xhr.statusText)\n xhr.send(JSON.stringify(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 { default as request, createRequest, sendRequest } 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 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.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: this.headers,\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\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(error => this.reject(error))\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 sendRequest(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.pause()\n return this.reject('File upload failed')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.pause()\n return this.reject('File upload failed')\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: this.headers,\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\n }\n\n this.resolve(res)\n }).catch(error => this.reject(error))\n }\n}\n","\n\n","\n\n\n"],"names":["createRequest","options","xhr","XMLHttpRequest","responseType","open","method","url","headers","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","statusText","onerror","send","JSON","stringify","ChunkUploadHandler","file","chunks","start","end","this","chunkSize","fileSize","push","slice","maxRetries","progress","active","chunksUploading","abort","startChunking","promise","action","Object","assign","startBody","fileType","then","res","_this2","message","sessionId","data","session_id","end_offset","createChunks","catch","error","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","startOffset","blob","uploaded","retries","pause","_this3","finishBody","_this4","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","_this5","min","filter","CHUNK_DEFAULT_OPTIONS","ChunkUploadDefaultHandler","render","e","$destroy","$parent","addInputFile","target","constructor","$el","String","Boolean","Number","multiple","Array","value","input","document","createElement","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","fileObject","success","undefined","watchActive","oldMaps","id","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","random","toString","substr","emitFilter","maximum","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","_this","getEntry","results","entry","path","isFile","isDirectory","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","update","code","extensions","RegExp","split","map","trim","join","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","chunkEnabled","chunkOptions","handler","minSize","HandlerClass","querys","encodeURIComponent","queryString","uploadXhr","form","File","append","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","toFixed","interval","setInterval","complete","fn","responseText","contentType","getResponseHeader","parse","onabort","ontimeout","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","appendChild","removeEventListener","doc","contentWindow","err","contentDocument","innerHTML","getResponseData","submit","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer"],"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 4dd17b9..2e3225b 100644 --- a/dist/vue-upload-component.part.js +++ b/dist/vue-upload-component.part.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.7.3 + * Version: 2.8.0 * Author: LianYue */ (function (global, factory) { @@ -9,6 +9,486 @@ (global.VueUploadComponent = factory()); }(this, (function () { 'use strict'; +/** + * Creates a XHR request + * + * @param {Object} options + */ +var createRequest = function createRequest(options) { + var xhr = new XMLHttpRequest(); + xhr.responseType = 'json'; + xhr.open(options.method || 'GET', options.url); + if (options.headers) { + Object.keys(options.headers).forEach(function (key) { + xhr.setRequestHeader(key, options.headers[key]); + }); + } + + return xhr; +}; + +/** + * Sends a XHR request with certain body + * + * @param {XMLHttpRequest} xhr + * @param {Object} body + */ +var sendRequest = function sendRequest(xhr, body) { + return new Promise(function (resolve, reject) { + xhr.onload = function () { + if (xhr.status >= 200 && xhr.status < 300) { + resolve(xhr.response); + } else { + reject(xhr.statusText); + } + }; + xhr.onerror = function () { + return reject(xhr.statusText); + }; + xhr.send(JSON.stringify(body)); + }); +}; + +/** + * Creates and sends XHR request + * + * @param {Object} options + * + * @returns Promise + */ +var request = function (options) { + var xhr = createRequest(options); + + return sendRequest(xhr, options.body); +}; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var ChunkUploadHandler = function () { + /** + * Constructor + * + * @param {File} file + * @param {Object} options + */ + function ChunkUploadHandler(file, options) { + _classCallCheck(this, ChunkUploadHandler); + + this.file = file; + this.options = options; + } + + /** + * Gets the max retries from options + */ + + + _createClass(ChunkUploadHandler, [{ + key: 'createChunks', + + + /** + * Creates all the chunks in the initial state + */ + value: function createChunks() { + this.chunks = []; + + var start = 0; + var end = this.chunkSize; + while (start < this.fileSize) { + this.chunks.push({ + blob: this.file.file.slice(start, end), + startOffset: start, + active: false, + retries: this.maxRetries + }); + start = end; + end = start + this.chunkSize; + } + } + + /** + * Updates the progress of the file with the handler's progress + */ + + }, { + key: 'updateFileProgress', + value: function updateFileProgress() { + this.file.progress = this.progress; + } + + /** + * Paues the upload process + * - Stops all active requests + * - Sets the file not active + */ + + }, { + key: 'pause', + value: function pause() { + this.file.active = false; + this.chunksUploading.forEach(function (chunk) { + chunk.xhr.abort(); + chunk.active = false; + }); + } + + /** + * Resumes the file upload + * - Sets the file active + * - Starts the following chunks + */ + + }, { + key: 'resume', + value: function resume() { + this.file.active = true; + this.startChunking(); + } + + /** + * Starts the file upload + * + * @returns Promise + * - resolve The file was uploaded + * - reject The file upload failed + */ + + }, { + key: 'upload', + value: function upload() { + var _this = this; + + this.promise = new Promise(function (resolve, reject) { + _this.resolve = resolve; + _this.reject = reject; + }); + this.start(); + + return this.promise; + } + + /** + * Start phase + * Sends a request to the backend to initialise the chunks + */ + + }, { + key: 'start', + value: function start() { + var _this2 = this; + + request({ + method: 'POST', + headers: this.headers, + url: this.action, + body: Object.assign(this.startBody, { + phase: 'start', + mime_type: this.fileType, + size: this.fileSize + }) + }).then(function (res) { + if (res.status !== 'success') { + return _this2.reject(res.message); + } + + _this2.sessionId = res.data.session_id; + _this2.chunkSize = res.data.end_offset; + + _this2.createChunks(); + _this2.startChunking(); + }).catch(function (error) { + return _this2.reject(error); + }); + } + + /** + * Starts to upload chunks + */ + + }, { + key: 'startChunking', + value: function startChunking() { + for (var i = 0; i < this.maxActiveChunks; i++) { + this.uploadNextChunk(); + } + } + + /** + * Uploads the next chunk + * - Won't do anything if the process is paused + * - Will start finish phase if there are no more chunks to upload + */ + + }, { + key: 'uploadNextChunk', + value: function uploadNextChunk() { + if (this.file.active) { + if (this.hasChunksToUpload) { + return this.uploadChunk(this.chunksToUpload[0]); + } + + if (this.chunksUploading.length === 0) { + return this.finish(); + } + } + } + + /** + * Uploads a chunk + * - Sends the chunk to the backend + * - Sets the chunk as uploaded if everything went well + * - Decreases the number of retries if anything went wrong + * - Fails if there are no more retries + * + * @param {Object} chunk + */ + + }, { + key: 'uploadChunk', + value: function uploadChunk(chunk) { + var _this3 = this; + + chunk.progress = 0; + chunk.active = true; + this.updateFileProgress(); + chunk.xhr = createRequest({ + method: 'POST', + headers: this.headers, + url: this.action + }); + + chunk.xhr.upload.addEventListener('progress', function (evt) { + if (evt.lengthComputable) { + chunk.progress = Math.round(evt.loaded / evt.total * 100); + } + }, false); + + sendRequest(chunk.xhr, Object.assign(this.uploadBody, { + phase: 'upload', + session_id: this.sessionId, + start_offset: chunk.startOffset, + chunk: chunk.blob + })).then(function (res) { + chunk.active = false; + if (res.status === 'success') { + chunk.uploaded = true; + } else { + if (chunk.retries-- <= 0) { + _this3.pause(); + return _this3.reject('File upload failed'); + } + } + + _this3.uploadNextChunk(); + }).catch(function () { + chunk.active = false; + if (chunk.retries-- <= 0) { + _this3.pause(); + return _this3.reject('File upload failed'); + } + + _this3.uploadNextChunk(); + }); + } + + /** + * Finish phase + * Sends a request to the backend to finish the process + */ + + }, { + key: 'finish', + value: function finish() { + var _this4 = this; + + this.updateFileProgress(); + + request({ + method: 'POST', + headers: this.headers, + url: this.action, + body: Object.assign(this.finishBody, { + phase: 'finish', + session_id: this.sessionId + }) + }).then(function (res) { + if (res.status !== 'success') { + return _this4.reject(res.message); + } + + _this4.resolve(res); + }).catch(function (error) { + return _this4.reject(error); + }); + } + }, { + key: 'maxRetries', + get: function get() { + return parseInt(this.options.maxRetries); + } + + /** + * Gets the max number of active chunks being uploaded at once from options + */ + + }, { + key: 'maxActiveChunks', + get: function get() { + return parseInt(this.options.maxActive); + } + + /** + * Gets the file type + */ + + }, { + key: 'fileType', + get: function get() { + return this.file.type; + } + + /** + * Gets the file size + */ + + }, { + key: 'fileSize', + get: function get() { + return this.file.size; + } + + /** + * Gets action (url) to upload the file + */ + + }, { + key: 'action', + get: function get() { + return this.options.action || null; + } + + /** + * Gets the body to be merged when sending the request in start phase + */ + + }, { + key: 'startBody', + get: function get() { + return this.options.startBody || {}; + } + + /** + * Gets the body to be merged when sending the request in upload phase + */ + + }, { + key: 'uploadBody', + get: function get() { + return this.options.uploadBody || {}; + } + + /** + * Gets the body to be merged when sending the request in finish phase + */ + + }, { + key: 'finishBody', + get: function get() { + return this.options.finishBody || {}; + } + + /** + * Gets the headers of the requests from options + */ + + }, { + key: 'headers', + get: function get() { + return this.options.headers || {}; + } + + /** + * Whether it's ready to upload files or not + */ + + }, { + key: 'readyToUpload', + get: function get() { + return !!this.chunks; + } + + /** + * Gets the progress of the chunk upload + * - Gets all the completed chunks + * - Gets the progress of all the chunks that are being uploaded + */ + + }, { + key: 'progress', + get: function get() { + var _this5 = this; + + var completedProgress = this.chunksUploaded.length / this.chunks.length * 100; + var uploadingProgress = this.chunksUploading.reduce(function (progress, chunk) { + return progress + (chunk.progress | 0) / _this5.chunks.length; + }, 0); + + return Math.min(completedProgress + uploadingProgress, 100); + } + + /** + * Gets all the chunks that are pending to be uploaded + */ + + }, { + key: 'chunksToUpload', + get: function get() { + return this.chunks.filter(function (chunk) { + return !chunk.active && !chunk.uploaded; + }); + } + + /** + * Whether there are chunks to upload or not + */ + + }, { + key: 'hasChunksToUpload', + get: function get() { + return this.chunksToUpload.length > 0; + } + + /** + * Gets all the chunks that are uploading + */ + + }, { + key: 'chunksUploading', + get: function get() { + return this.chunks.filter(function (chunk) { + return !!chunk.xhr && !!chunk.active; + }); + } + + /** + * Gets all the chunks that have finished uploading + */ + + }, { + key: 'chunksUploaded', + get: function get() { + return this.chunks.filter(function (chunk) { + return !!chunk.uploaded; + }); + } + }]); + + return ChunkUploadHandler; +}(); + var InputFile = { render: function render() { 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, "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 } }); }, staticRenderFns: [], @@ -31,6 +511,18 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } +var CHUNK_DEFAULT_OPTIONS = { + headers: { + 'Content-Type': 'application/json' + }, + action: '', + minSize: 1048576, + maxActive: 3, + maxRetries: 5, + + handler: ChunkUploadHandler +}; + var FileUpload = { render: function render() { var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('label', { class: _vm.className }, [_vm._t("default"), _vm._v(" "), _c('input-file')], 2); }, staticRenderFns: [], @@ -119,6 +611,20 @@ var FileUpload = { render: function render() { thread: { type: Number, default: 1 + }, + + // Chunk upload enabled + chunkEnabled: { + type: Boolean, + default: false + }, + + // Chunk upload properties + chunk: { + type: Object, + default: function _default() { + return CHUNK_DEFAULT_OPTIONS; + } } }, @@ -214,6 +720,9 @@ var FileUpload = { render: function render() { } return true; }, + chunkOptions: function chunkOptions() { + return Object.assign(CHUNK_DEFAULT_OPTIONS, this.chunk); + }, className: function className() { return ['file-uploads', this.features.html5 ? 'file-uploads-html5' : 'file-uploads-html4', this.features.directory && this.directory ? 'file-uploads-directory' : undefined, this.features.drop && this.drop ? 'file-uploads-drop' : undefined]; } @@ -721,13 +1230,41 @@ var FileUpload = { render: function render() { return Promise.reject('size'); } - if (this.features.html5 && file.putAction) { - return this.uploadPut(file); - } else if (this.features.html5) { + if (this.features.html5) { + if (this.shouldUseChunkUpload(file)) { + return this.uploadChunk(file); + } + if (file.putAction) { + return this.uploadPut(file); + } + return this.uploadHtml5(file); - } else { - return this.uploadHtml4(file); } + + return this.uploadHtml4(file); + }, + + + /** + * Whether this file should be uploaded using chunk upload or not + * + * @param Object file + */ + shouldUseChunkUpload: function shouldUseChunkUpload(file) { + return this.chunkEnabled && !!this.chunkOptions.handler && file.size > this.chunkOptions.minSize; + }, + + + /** + * Upload a file using Chunk method + * + * @param File file + */ + uploadChunk: function uploadChunk(file) { + var HandlerClass = this.chunkOptions.handler; + file.chunk = new HandlerClass(file, this.chunkOptions); + + return file.chunk.upload(); }, uploadPut: function uploadPut(file) { var querys = []; diff --git a/dist/vue-upload-component.part.js.map b/dist/vue-upload-component.part.js.map index a976b41..abfa106 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/InputFile.vue","../src/FileUpload.vue","../src/index.js"],"sourcesContent":["\n\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["render","e","$destroy","$parent","addInputFile","target","constructor","$el","String","Boolean","Number","multiple","Object","Array","value","input","document","createElement","type","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","active","file","i","length","fileObject","error","success","undefined","watchActive","oldMaps","id","key","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","size","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","data","headers","Math","random","toString","substr","emitFilter","maximum","push","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","Promise","resolve","reject","forEach","getEntry","then","results","entry","path","isFile","isDirectory","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","upload","update","catch","code","message","parseInt","extensions","RegExp","split","map","trim","filter","join","search","uploadPut","uploadHtml5","uploadHtml4","querys","encodeURIComponent","queryString","xhr","XMLHttpRequest","open","uploadXhr","form","File","append","JSON","stringify","filename","_file","body","speedTime","speedLoaded","onprogress","lengthComputable","speedTime2","round","Date","now","loaded","total","toFixed","interval","setInterval","abort","complete","fn","status","progress","responseText","contentType","getResponseHeader","response","parse","onload","onerror","onabort","ontimeout","setRequestHeader","send","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","action","appendChild","getResponseData","doc","contentWindow","err","contentDocument","innerHTML","removeEventListener","addEventListener","submit","res","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer","require$$0"],"mappings":";;;;;;;;;;;AAaA,gBAAe,EAACA;;GAAD,qBAAA;WACJ;UAAA,kBACAC,CADA,EACG;WACHC,QAAL;WACKC,OAAL,CAAaC,YAAb,CAA0BH,EAAEI,MAA5B;;UAEI,KAAKC,WAAT,CAAqB;gBACX,KAAKH,OADM;YAEf,KAAKI;OAFX;;;CANN;;;;;;;;ACsBA,AACA,iBAAe,EAACP;;GAAD,qBAAA;cACD;;GADC;SAIN;aACI;YACDQ;KAFH;;UAKC;YACEA,MADF;eAEK;KAPN;;YAUG;YACAA;KAXH;;cAcK;YACFC;KAfH;;aAkBI;YACDC,MADC;aAAA,sBAEG;eACD,KAAKC,QAAL,GAAgB,CAAhB,GAAoB,CAA3B;;KArBC;;cAyBK;YACF,CAACF,OAAD,EAAUC,MAAV;KA1BH;;eA6BM;YACHD;KA9BH;;gBAiCO;YACJD;KAlCH;;eAqCM;YACHA;KAtCH;;aAyCI;YACDI,MADC;eAEEA;KA3CN;;UA8CC;YACEA,MADF;eAEKA;KAhDN;;aAmDI;YACDF,MADC;eAEE;KArDN;;UAyDC;eACK;KA1DN;;mBA6DU;YACPD,OADO;eAEJ;KA/DN;;UAkEC;YACEC,MADF;eAEK;KApEN;;gBAuEO;eACDG;KAxEN;;WA4EE;YACCA,KADD;eAEIA;KA9EN;;YAiFG;YACAH,MADA;eAEG;;GAvFA;;MAAA,kBA2FN;WACE;aACE,KAAKI,KADP;gBAEK;eACD,IADC;mBAEG,KAFH;cAGF;OALH;;cAQG,KARH;kBASO,KATP;;iBAWM,CAXN;;eAaI;KAbX;GA5FW;;;;;;;SAAA,qBAkHH;QACJC,QAAQC,SAASC,aAAT,CAAuB,OAAvB,CAAZ;UACMC,IAAN,GAAa,MAAb;UACMP,QAAN,GAAiB,IAAjB;;;QAGIQ,OAAOC,QAAP,IAAmBL,MAAMM,KAA7B,EAAoC;;UAE9B,OAAON,MAAMO,eAAb,KAAiC,SAAjC,IAA8C,OAAOP,MAAMQ,SAAb,KAA2B,SAA7E,EAAwF;aACjFC,QAAL,CAAcD,SAAd,GAA0B,IAA1B;;;;UAIE,KAAKC,QAAL,CAAcC,KAAd,IAAuB,OAAOV,MAAMW,MAAb,KAAwB,WAAnD,EAAgE;aACzDF,QAAL,CAAcG,IAAd,GAAqB,IAArB;;KARJ,MAUO;WACAH,QAAL,CAAcC,KAAd,GAAsB,KAAtB;;;;SAIGG,IAAL,GAAY,EAAZ;;SAEKC,SAAL,CAAe,YAAY;;;UAGrB,KAAK1B,OAAT,EAAkB;aACXA,OAAL,CAAa2B,YAAb;;;;WAIGC,SAAL,CAAe,KAAKJ,IAApB;KARF;GAzIW;;;;;;;eAAA,2BAyJG;;SAETK,OAAL,GAAe,IAAf;;;SAGKC,MAAL,GAAc,KAAd;GA9JW;;;YAiKH;;;;;;;;;;YAAA,sBAUG;UACLC,aAAJ;WACK,IAAIC,IAAI,CAAb,EAAgBA,IAAI,KAAKd,KAAL,CAAWe,MAA/B,EAAuCD,GAAvC,EAA4C;eACnC,KAAKd,KAAL,CAAWc,CAAX,CAAP;YACID,KAAKG,UAAL,IAAmB,CAACH,KAAKI,KAAzB,IAAkC,CAACJ,KAAKK,OAA5C,EAAqD;iBAC5C,KAAP;;;aAGG,IAAP;KAlBM;aAAA,uBAsBI;aACH,CACL,cADK,EAEL,KAAKf,QAAL,CAAcC,KAAd,GAAsB,oBAAtB,GAA6C,oBAFxC,EAGL,KAAKD,QAAL,CAAcD,SAAd,IAA2B,KAAKA,SAAhC,GAA4C,wBAA5C,GAAuEiB,SAHlE,EAIL,KAAKhB,QAAL,CAAcG,IAAd,IAAsB,KAAKA,IAA3B,GAAkC,mBAAlC,GAAwDa,SAJnD,CAAP;;GAxLS;;SAkMN;UAAA,kBACEP,OADF,EACU;WACRQ,WAAL,CAAiBR,OAAjB;KAFG;cAAA,wBAKQ;UACP,KAAK9B,OAAT,EAAkB;aACXA,OAAL,CAAa2B,YAAb;;KAPC;QAAA,gBAWAhB,KAXA,EAWO;WACLiB,SAAL,CAAejB,KAAf;KAZG;SAAA,iBAeCO,KAfD,EAeQ;UACP,KAAKA,KAAL,KAAeA,KAAnB,EAA0B;;;WAGrBA,KAAL,GAAaA,KAAb;;UAEIqB,UAAU,KAAKd,IAAnB;;;WAGKA,IAAL,GAAY,EAAZ;WACK,IAAIO,IAAI,CAAb,EAAgBA,IAAI,KAAKd,KAAL,CAAWe,MAA/B,EAAuCD,GAAvC,EAA4C;YACtCD,OAAO,KAAKb,KAAL,CAAWc,CAAX,CAAX;aACKP,IAAL,CAAUM,KAAKS,EAAf,IAAqBT,IAArB;;;;WAIG,IAAIU,GAAT,IAAgB,KAAKhB,IAArB,EAA2B;YACrBiB,UAAU,KAAKjB,IAAL,CAAUgB,GAAV,CAAd;YACIE,UAAUJ,QAAQE,GAAR,CAAd;YACIC,YAAYC,OAAhB,EAAyB;eAClBC,QAAL,CAAcF,OAAd,EAAuBC,OAAvB;;;;;WAKC,IAAIF,IAAT,IAAgBF,OAAhB,EAAyB;YACnB,CAAC,KAAKd,IAAL,CAAUgB,IAAV,CAAL,EAAqB;eACdG,QAAL,CAAcP,SAAd,EAAyBE,QAAQE,IAAR,CAAzB;;;;GA5OK;;WAkPJ;;;SAAA,mBAGC;UACF,KAAKvB,KAAL,CAAWe,MAAf,EAAuB;YACjBf,QAAQ,KAAKA,KAAjB;aACKA,KAAL,GAAa,EAAb;;;aAGKO,IAAL,GAAY,EAAZ;;;aAGKoB,SAAL;aACK,IAAIb,IAAI,CAAb,EAAgBA,IAAId,MAAMe,MAA1B,EAAkCD,GAAlC,EAAuC;eAChCY,QAAL,CAAcP,SAAd,EAAyBnB,MAAMc,CAAN,CAAzB;;;aAGG,IAAP;KAjBK;;;;OAAA,eAqBHQ,EArBG,EAqBC;UACF,CAACA,EAAL,EAAS;eACA,KAAP;;;UAGE,QAAOA,EAAP,yCAAOA,EAAP,OAAc,QAAlB,EAA4B;eACnB,KAAKf,IAAL,CAAUe,GAAGA,EAAb,KAAoB,KAA3B;;;aAGK,KAAKf,IAAL,CAAUe,EAAV,KAAiB,KAAxB;KA9BK;;;;OAAA,eAkCHM,MAlCG,EAkC4B;UAAvBC,KAAuB,uEAAf,KAAKC,QAAU;;UAC7B9B,QAAQ4B,MAAZ;UACIG,UAAU/B,iBAAiBR,KAA/B;;;UAGI,CAACuC,OAAL,EAAc;gBACJ,CAAC/B,KAAD,CAAR;;;;UAIEgC,WAAW,EAAf;WACK,IAAIlB,IAAI,CAAb,EAAgBA,IAAId,MAAMe,MAA1B,EAAkCD,GAAlC,EAAuC;YACjCD,OAAOb,MAAMc,CAAN,CAAX;YACI,KAAKX,QAAL,CAAcC,KAAd,IAAuBS,gBAAgBoB,IAA3C,EAAiD;iBACxC;sBAAA;kBAECpB,KAAKqB,IAFN;kBAGCrB,KAAKsB,kBAAL,IAA2BtB,KAAKuB,YAAhC,IAAgDvB,KAAKwB,IAArD,IAA6D,SAH9D;kBAICxB,KAAKhB;WAJb;;YAOEmB,aAAa,KAAjB;YACIH,KAAKG,UAAL,KAAoB,KAAxB,EAA+B;;SAA/B,MAEO,IAAIH,KAAKG,UAAT,EAAqB;uBACb,IAAb;SADK,MAEA,IAAI,OAAOsB,OAAP,KAAmB,WAAnB,IAAkCzB,KAAK0B,EAAL,YAAmBD,OAAzD,EAAkE;uBAC1D,IAAb;SADK,MAEA,IAAI,OAAOL,IAAP,KAAgB,WAAhB,IAA+BpB,KAAKA,IAAL,YAAqBoB,IAAxD,EAA8D;uBACtD,IAAb;;YAEEjB,UAAJ,EAAgB;;wBAEA,IADd;kBAEQ,CAAC,CAFT;kBAGQ,UAHR;kBAIQ,EAJR;oBAKU,KALV;mBAMS,EANT;qBAOW,KAPX;uBAQa,KAAKwB,SARlB;wBASc,KAAKC,UATnB;qBAUW,KAAKC;aACX7B,IAXL;sBAYY,EAZZ;;sBAcY,MAdZ;mBAeS,CAfT;;;;;eAoBK8B,IAAL,gBACK,KAAKA,IADV,EAEK9B,KAAK8B,IAAL,GAAY9B,KAAK8B,IAAjB,GAAwB,EAF7B;;eAKKC,OAAL,gBACK,KAAKA,OADV,EAEK/B,KAAK+B,OAAL,GAAe/B,KAAK+B,OAApB,GAA8B,EAFnC;;;;YAOE,CAAC/B,KAAKS,EAAV,EAAc;eACPA,EAAL,GAAUuB,KAAKC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,MAA3B,CAAkC,CAAlC,CAAV;;;YAGE,KAAKC,UAAL,CAAgBpC,IAAhB,EAAsBM,SAAtB,CAAJ,EAAsC;;;;;YAKlC,KAAK+B,OAAL,GAAe,CAAf,IAAqBlB,SAASjB,MAAT,GAAkB,KAAKf,KAAL,CAAWe,MAA9B,IAAyC,KAAKmC,OAAtE,EAA+E;;;;iBAItEC,IAAT,CAActC,IAAd;;;YAGI,KAAKqC,OAAL,KAAiB,CAArB,EAAwB;;;;;;UAMtB,CAAClB,SAASjB,MAAd,EAAsB;eACb,KAAP;;;;UAIE,KAAKmC,OAAL,KAAiB,CAArB,EAAwB;aACjBE,KAAL;;;;UAKEC,iBAAJ;UACIxB,UAAU,IAAV,IAAkBA,UAAU,CAAhC,EAAmC;mBACtBG,SAASsB,MAAT,CAAgB,KAAKtD,KAArB,CAAX;OADF,MAEO,IAAI6B,KAAJ,EAAW;mBACLG,SAASsB,MAAT,CAAgB,EAAhB,CAAX;iBACSC,MAAT,CAAgB1B,KAAhB,EAAuB,CAAvB,EAA0BG,QAA1B;OAFK,MAGA;mBACM,KAAKhC,KAAL,CAAWsD,MAAX,CAAkBtB,QAAlB,CAAX;;;WAGGhC,KAAL,GAAaqD,QAAb;;;WAGK,IAAIvC,KAAI,CAAb,EAAgBA,KAAIkB,SAASjB,MAA7B,EAAqCD,IAArC,EAA0C;YACpCD,SAAOmB,SAASlB,EAAT,CAAX;aACKP,IAAL,CAAUM,OAAKS,EAAf,IAAqBT,MAArB;;;;WAIGc,SAAL;WACK,IAAIb,MAAI,CAAb,EAAgBA,MAAIkB,SAASjB,MAA7B,EAAqCD,KAArC,EAA0C;aACnCY,QAAL,CAAcM,SAASlB,GAAT,CAAd,EAA2BK,SAA3B;;;aAGKY,UAAUC,QAAV,GAAqBA,SAAS,CAAT,CAA5B;KA3JK;;;;gBAAA,wBAiKMO,EAjKN,EAiKU;UACXvC,QAAQ,EAAZ;UACIuC,GAAGvC,KAAP,EAAc;aACP,IAAIc,IAAI,CAAb,EAAgBA,IAAIyB,GAAGvC,KAAH,CAASe,MAA7B,EAAqCD,GAArC,EAA0C;cACpCD,OAAO0B,GAAGvC,KAAH,CAASc,CAAT,CAAX;gBACMqC,IAAN,CAAW;kBACHtC,KAAKqB,IADF;kBAEHrB,KAAKsB,kBAAL,IAA2BtB,KAAKuB,YAAhC,IAAgDvB,KAAKwB,IAFlD;kBAGHxB,KAAKhB,IAHF;sBAAA;;WAAX;;OAHJ,MAWO;cACCsD,IAAN,CAAW;gBACHZ,GAAG9C,KAAH,CAAS+D,OAAT,CAAiB,qBAAjB,EAAwC,IAAxC,CADG;;SAAX;;aAKK,KAAKC,GAAL,CAASzD,KAAT,CAAP;KApLK;;;;mBAAA,2BAyLS0D,YAzLT,EAyLuB;;;UACxB1D,QAAQ,EAAZ;UACI0D,aAAaC,KAAb,IAAsBD,aAAaC,KAAb,CAAmB5C,MAA7C,EAAqD;YAC/C4C,QAAQ,EAAZ;aACK,IAAI7C,IAAI,CAAb,EAAgBA,IAAI4C,aAAaC,KAAb,CAAmB5C,MAAvC,EAA+CD,GAA/C,EAAoD;cAC9C8C,OAAOF,aAAaC,KAAb,CAAmB7C,CAAnB,CAAX;cACI8C,KAAKC,UAAT,EAAqB;mBACZD,KAAKC,UAAL,MAAqBD,KAAKE,SAAL,EAA5B;WADF,MAEO,IAAIF,KAAKG,gBAAT,EAA2B;mBACzBH,KAAKG,gBAAL,MAA2BH,KAAKE,SAAL,EAAlC;WADK,MAEA;mBACEF,KAAKE,SAAL,EAAP;;cAEEF,IAAJ,EAAU;kBACFT,IAAN,CAAWS,IAAX;;;;eAIG,IAAII,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;cAClCC,UAAU,SAAVA,OAAU,CAACrD,CAAD,EAAO;gBACf8C,OAAOD,MAAM7C,CAAN,CAAX;;gBAEI,CAAC8C,IAAD,IAAU,MAAKV,OAAL,GAAe,CAAf,IAAoBlD,MAAMe,MAAN,IAAgB,MAAKmC,OAAvD,EAAiE;qBACxDe,QAAQ,MAAKR,GAAL,CAASzD,KAAT,CAAR,CAAP;;kBAEGoE,QAAL,CAAcR,IAAd,EAAoBS,IAApB,CAAyB,UAAUC,OAAV,EAAmB;oBACpCnB,IAAN,iCAAcmB,OAAd;sBACQxD,IAAI,CAAZ;aAFF;WANF;kBAWQ,CAAR;SAZK,CAAP;;;UAgBE4C,aAAa1D,KAAb,CAAmBe,MAAvB,EAA+B;aACxB,IAAID,MAAI,CAAb,EAAgBA,MAAI4C,aAAa1D,KAAb,CAAmBe,MAAvC,EAA+CD,KAA/C,EAAoD;gBAC5CqC,IAAN,CAAWO,aAAa1D,KAAb,CAAmBc,GAAnB,CAAX;cACI,KAAKoC,OAAL,GAAe,CAAf,IAAoBlD,MAAMe,MAAN,IAAgB,KAAKmC,OAA7C,EAAsD;;;;eAIjDc,QAAQC,OAAR,CAAgB,KAAKR,GAAL,CAASzD,KAAT,CAAhB,CAAP;;;aAGKgE,QAAQC,OAAR,CAAgB,EAAhB,CAAP;KArOK;;;;YAAA,oBA0OEM,KA1OF,EA0OoB;;;UAAXC,IAAW,uEAAJ,EAAI;;aAClB,IAAIR,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;YAClCK,MAAME,MAAV,EAAkB;gBACV5D,IAAN,CAAW,UAAUA,IAAV,EAAgB;oBACjB,CACN;oBACQA,KAAKqB,IADb;oBAEQsC,OAAO3D,KAAKwB,IAFpB;oBAGQxB,KAAKhB,IAHb;;aADM,CAAR;WADF;SADF,MAWO,IAAI0E,MAAMG,WAAN,IAAqB,OAAKC,aAA9B,EAA6C;cAC9C3E,QAAQ,EAAZ;cACI4E,YAAYL,MAAMM,YAAN,EAAhB;cACIC,cAAc,SAAdA,WAAc,GAAM;sBACZA,WAAV,CAAsB,UAACC,OAAD,EAAa;kBAC7BZ,UAAU,SAAVA,OAAU,CAACrD,CAAD,EAAO;oBACd,CAACiE,QAAQjE,CAAR,CAAD,IAAeA,MAAM,CAAtB,IAA6B,OAAKoC,OAAL,GAAe,CAAf,IAAoBlD,MAAMe,MAAN,IAAgB,OAAKmC,OAA1E,EAAoF;yBAC3Ee,QAAQjE,KAAR,CAAP;;oBAEE,CAAC+E,QAAQjE,CAAR,CAAL,EAAiB;yBACRgE,aAAP;;uBAEGV,QAAL,CAAcW,QAAQjE,CAAR,CAAd,EAA0B0D,OAAOD,MAAMlC,IAAb,GAAoB,GAA9C,EAAmDgC,IAAnD,CAAwD,UAACC,OAAD,EAAa;wBAC7DnB,IAAN,iCAAcmB,OAAd;0BACQxD,IAAI,CAAZ;iBAFF;eAPF;sBAYQ,CAAR;aAbF;WADF;;SAHK,MAqBA;kBACG,EAAR;;OAlCG,CAAP;KA3OK;WAAA,mBAmRCkE,GAnRD,EAmRMC,GAnRN,EAmRW;UACZC,QAAQ,KAAKC,GAAL,CAASH,GAAT,CAAZ;UACII,QAAQ,KAAKD,GAAL,CAASF,GAAT,CAAZ;UACI,CAACC,KAAD,IAAU,CAACE,KAAX,IAAoBF,UAAUE,KAAlC,EAAyC;eAChC,KAAP;;UAEEpF,QAAQ,KAAKA,KAAL,CAAWsD,MAAX,CAAkB,EAAlB,CAAZ;UACI+B,SAASrF,MAAMsF,OAAN,CAAcJ,KAAd,CAAb;UACIK,SAASvF,MAAMsF,OAAN,CAAcF,KAAd,CAAb;UACIC,WAAW,CAAC,CAAZ,IAAiBE,WAAW,CAAC,CAAjC,EAAoC;eAC3B,KAAP;;YAEIF,MAAN,IAAgBD,KAAhB;YACMG,MAAN,IAAgBL,KAAhB;WACKlF,KAAL,GAAaA,KAAb;WACK2B,SAAL;aACO,IAAP;KAnSK;;;;UAAA,kBAuSAL,EAvSA,EAuSI;UACLT,OAAO,KAAKsE,GAAL,CAAS7D,EAAT,CAAX;UACIT,IAAJ,EAAU;YACJ,KAAKoC,UAAL,CAAgB9B,SAAhB,EAA2BN,IAA3B,CAAJ,EAAsC;iBAC7B,KAAP;;YAEEb,QAAQ,KAAKA,KAAL,CAAWsD,MAAX,CAAkB,EAAlB,CAAZ;YACIzB,QAAQ7B,MAAMsF,OAAN,CAAczE,IAAd,CAAZ;YACIgB,UAAU,CAAC,CAAf,EAAkB;kBACRZ,KAAR,CAAc,QAAd,EAAwBJ,IAAxB;iBACO,KAAP;;cAEI0C,MAAN,CAAa1B,KAAb,EAAoB,CAApB;aACK7B,KAAL,GAAaA,KAAb;;;eAGO,KAAKO,IAAL,CAAUM,KAAKS,EAAf,CAAP;;;aAGKK,SAAL;aACKD,QAAL,CAAcP,SAAd,EAAyBN,IAAzB;;aAEKA,IAAP;KA7TK;;;;UAAA,kBAiUAS,EAjUA,EAiUIqB,IAjUJ,EAiUU;UACX9B,OAAO,KAAKsE,GAAL,CAAS7D,EAAT,CAAX;UACIT,IAAJ,EAAU;YACJW,uBACCX,IADD,EAEC8B,IAFD,CAAJ;;YAKI9B,KAAKG,UAAL,IAAmBH,KAAKD,MAAxB,IAAkC,CAACY,QAAQZ,MAA3C,IAAqD,CAACY,QAAQP,KAA9D,IAAuE,CAACO,QAAQN,OAApF,EAA6F;kBACnFD,KAAR,GAAgB,OAAhB;;;YAGE,KAAKgC,UAAL,CAAgBzB,OAAhB,EAAyBX,IAAzB,CAAJ,EAAoC;iBAC3B,KAAP;;;YAGEb,QAAQ,KAAKA,KAAL,CAAWsD,MAAX,CAAkB,EAAlB,CAAZ;YACIzB,QAAQ7B,MAAMsF,OAAN,CAAczE,IAAd,CAAZ;YACIgB,UAAU,CAAC,CAAf,EAAkB;kBACRZ,KAAR,CAAc,QAAd,EAAwBJ,IAAxB;iBACO,KAAP;;cAEI0C,MAAN,CAAa1B,KAAb,EAAoB,CAApB,EAAuBL,OAAvB;aACKxB,KAAL,GAAaA,KAAb;;;eAGO,KAAKO,IAAL,CAAUM,KAAKS,EAAf,CAAP;aACKf,IAAL,CAAUiB,QAAQF,EAAlB,IAAwBE,OAAxB;;;aAGKG,SAAL;aACKD,QAAL,CAAcF,OAAd,EAAuBX,IAAvB;eACOW,OAAP;;aAEK,KAAP;KAnWK;;;;cAAA,sBAyWIA,OAzWJ,EAyWaC,OAzWb,EAyWsB;UACvB+D,YAAY,KAAhB;WACKC,KAAL,CAAW,cAAX,EAA2BjE,OAA3B,EAAoCC,OAApC,EAA6C,YAAY;oBAC3C,IAAZ;eACO+D,SAAP;OAFF;aAIOA,SAAP;KA/WK;;;;YAAA,oBAmXEhE,OAnXF,EAmXWC,OAnXX,EAmXoB;WACpBgE,KAAL,CAAW,YAAX,EAAyBjE,OAAzB,EAAkCC,OAAlC;UACID,WAAWA,QAAQR,UAAnB,IAAiCQ,QAAQZ,MAAzC,KAAoD,CAACa,OAAD,IAAY,CAACA,QAAQb,MAAzE,CAAJ,EAAsF;aAC/E8E,SAAL;;aAEKlF,SAAL,CAAe,YAAY;;;qBACd,YAAM;mBACVmF,MAAL,CAAYnE,OAAZ,EAAqB6C,IAArB,CAA0B,YAAM;;wBAEpB,OAAKc,GAAL,CAAS3D,OAAT,CAAV;kBACIA,WAAWA,QAAQR,UAAvB,EAAmC;uBAC5B4E,MAAL,CAAYpE,OAAZ,EAAqB;0BACX,KADW;2BAEV,CAACA,QAAQP;iBAFpB;;aAJJ,EASG4E,KATH,CASS,UAACjH,CAAD,EAAO;qBACTgH,MAAL,CAAYpE,OAAZ,EAAqB;wBACX,KADW;yBAEV,KAFU;uBAGZ5C,EAAEkH,IAAF,IAAUlH,EAAEqC,KAAZ,IAAqBrC,EAAEmH,OAAvB,IAAkCnH;eAH3C;aAVF;WADF,EAiBGoH,SAASnD,KAAKC,MAAL,KAAgB,EAAhB,GAAqB,EAA9B,EAAkC,EAAlC,CAjBH;SADF;OAHF,MAuBO,IAAI,CAAC,CAACtB,OAAD,IAAY,CAACA,QAAQR,UAArB,IAAmC,CAACQ,QAAQZ,MAA7C,KAAwDa,OAAxD,IAAmEA,QAAQT,UAA3E,IAAyFS,QAAQb,MAArG,EAA6G;;aAE7G8E,SAAL;;;;UAIE,KAAK9E,MAAL,KAAgBxB,QAAQoC,OAAR,MAAqBpC,QAAQqC,OAAR,CAArB,IAAyCD,QAAQZ,MAAR,KAAmBa,QAAQb,MAApF,CAAJ,EAAiG;aAC1FQ,WAAL,CAAiB,IAAjB;;KAnZG;aAAA,uBAuZK;WACLqE,KAAL,CAAW,OAAX,EAAoB,KAAKzF,KAAzB;KAxZK;;;;UAAA,kBA6ZAsB,EA7ZA,EA6ZI;UACLT,OAAO,KAAKsE,GAAL,CAAS7D,EAAT,CAAX;;;UAGI,CAACT,IAAL,EAAW;eACFmD,QAAQE,MAAR,CAAe,YAAf,CAAP;;;;UAIE,CAACrD,KAAKG,UAAV,EAAsB;eACbgD,QAAQE,MAAR,CAAe,aAAf,CAAP;;;;UAIErD,KAAKI,KAAT,EAAgB;eACP+C,QAAQE,MAAR,CAAerD,KAAKI,KAApB,CAAP;;;;UAIEJ,KAAKK,OAAT,EAAkB;eACT8C,QAAQC,OAAR,CAAgBpD,IAAhB,CAAP;;;;UAIEoF,aAAa,KAAKA,UAAtB;UACIA,eAAeA,WAAWlF,MAAX,IAAqB,OAAOkF,WAAWlF,MAAlB,KAA6B,WAAjE,CAAJ,EAAmF;YAC7E,QAAOkF,UAAP,yCAAOA,UAAP,OAAsB,QAAtB,IAAkC,EAAEA,sBAAsBC,MAAxB,CAAtC,EAAuE;cACjE,OAAOD,UAAP,KAAsB,QAA1B,EAAoC;yBACrBA,WAAWE,KAAX,CAAiB,GAAjB,EAAsBC,GAAtB,CAA0B;qBAAS3G,MAAM4G,IAAN,EAAT;aAA1B,EAAiDC,MAAjD,CAAwD;qBAAS7G,KAAT;aAAxD,CAAb;;uBAEW,IAAIyG,MAAJ,CAAW,SAASD,WAAWM,IAAX,CAAgB,GAAhB,EAAqB/C,OAArB,CAA6B,KAA7B,EAAoC,KAApC,CAAT,GAAsD,IAAjE,EAAuE,GAAvE,CAAb;;YAEE3C,KAAKwB,IAAL,CAAUmE,MAAV,CAAiBP,UAAjB,MAAiC,CAAC,CAAtC,EAAyC;iBAChCjC,QAAQE,MAAR,CAAe,WAAf,CAAP;;;;;UAKA,KAAKhC,IAAL,GAAY,CAAZ,IAAiBrB,KAAKqB,IAAL,IAAa,CAA9B,IAAmCrB,KAAKqB,IAAL,GAAY,KAAKA,IAAxD,EAA8D;eACrD8B,QAAQE,MAAR,CAAe,MAAf,CAAP;;;UAIE,KAAK/D,QAAL,CAAcC,KAAd,IAAuBS,KAAK2B,SAAhC,EAA2C;eAClC,KAAKiE,SAAL,CAAe5F,IAAf,CAAP;OADF,MAEO,IAAI,KAAKV,QAAL,CAAcC,KAAlB,EAAyB;eACvB,KAAKsG,WAAL,CAAiB7F,IAAjB,CAAP;OADK,MAEA;eACE,KAAK8F,WAAL,CAAiB9F,IAAjB,CAAP;;KA7cG;aAAA,qBAidGA,IAjdH,EAidS;UACV+F,SAAS,EAAb;UACInH,cAAJ;WACK,IAAI8B,GAAT,IAAgBV,KAAK8B,IAArB,EAA2B;gBACjB9B,KAAK8B,IAAL,CAAUpB,GAAV,CAAR;YACI9B,UAAU,IAAV,IAAkBA,UAAU0B,SAAhC,EAA2C;iBAClCgC,IAAP,CAAY0D,mBAAmBtF,GAAnB,IAA0B,GAA1B,GAAgCsF,mBAAmBpH,KAAnB,CAA5C;;;UAGAqH,cAAcF,OAAO7F,MAAP,GAAgB,CAACF,KAAK2B,SAAL,CAAe8C,OAAf,CAAuB,GAAvB,MAAgC,CAAC,CAAjC,GAAqC,GAArC,GAA2C,GAA5C,IAAmDsB,OAAOL,IAAP,CAAY,GAAZ,CAAnE,GAAsF,EAAxG;UACIQ,MAAM,IAAIC,cAAJ,EAAV;UACIC,IAAJ,CAAS,KAAT,EAAgBpG,KAAK2B,SAAL,GAAiBsE,WAAjC;aACO,KAAKI,SAAL,CAAeH,GAAf,EAAoBlG,IAApB,EAA0BA,KAAKA,IAA/B,CAAP;KA7dK;eAAA,uBAgeKA,IAheL,EAgeW;UACZsG,OAAO,IAAIrH,OAAOC,QAAX,EAAX;UACIN,cAAJ;WACK,IAAI8B,GAAT,IAAgBV,KAAK8B,IAArB,EAA2B;gBACjB9B,KAAK8B,IAAL,CAAUpB,GAAV,CAAR;YACI9B,SAAS,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAA1B,IAAsC,OAAOA,MAAMsD,QAAb,KAA0B,UAApE,EAAgF;cAC1EtD,iBAAiB2H,IAArB,EAA2B;iBACpBC,MAAL,CAAY9F,GAAZ,EAAiB9B,KAAjB,EAAwBA,MAAM4C,IAA9B;WADF,MAEO;iBACAgF,MAAL,CAAY9F,GAAZ,EAAiB+F,KAAKC,SAAL,CAAe9H,KAAf,CAAjB;;SAJJ,MAMO,IAAIA,UAAU,IAAV,IAAkBA,UAAU0B,SAAhC,EAA2C;eAC3CkG,MAAL,CAAY9F,GAAZ,EAAiB9B,KAAjB;;;WAGC4H,MAAL,CAAY,KAAKhF,IAAjB,EAAuBxB,KAAKA,IAA5B,EAAkCA,KAAKA,IAAL,CAAU2G,QAAV,IAAsB3G,KAAKwB,IAA7D;UACI0E,MAAM,IAAIC,cAAJ,EAAV;UACIC,IAAJ,CAAS,MAAT,EAAiBpG,KAAK4B,UAAtB;aACO,KAAKyE,SAAL,CAAeH,GAAf,EAAoBlG,IAApB,EAA0BsG,IAA1B,CAAP;KAlfK;aAAA,qBAqfGJ,GArfH,EAqfQU,KArfR,EAqfeC,IArff,EAqfqB;;;UACtB7G,OAAO4G,KAAX;UACIE,YAAY,CAAhB;UACIC,cAAc,CAAlB;;;UAGIjC,MAAJ,CAAWkC,UAAX,GAAwB,UAACjJ,CAAD,EAAO;;eAEtB,OAAKuG,GAAL,CAAStE,IAAT,CAAP;YACI,CAACjC,EAAEkJ,gBAAH,IAAuB,CAACjH,IAAxB,IAAgC,CAACA,KAAKG,UAAtC,IAAoD,CAACH,KAAKD,MAA9D,EAAsE;;;;;YAKlEmH,aAAalF,KAAKmF,KAAL,CAAWC,KAAKC,GAAL,KAAa,IAAxB,CAAjB;YACIH,eAAeJ,SAAnB,EAA8B;;;oBAGlBI,UAAZ;;eAEO,OAAKnC,MAAL,CAAY/E,IAAZ,EAAkB;oBACb,CAACjC,EAAEuJ,MAAF,GAAWvJ,EAAEwJ,KAAb,GAAqB,GAAtB,EAA2BC,OAA3B,CAAmC,CAAnC,CADa;iBAEhBzJ,EAAEuJ,MAAF,GAAWP;SAFb,CAAP;sBAIchJ,EAAEuJ,MAAhB;OAlBF;;;UAsBIG,WAAWC,YAAY,YAAM;eACxB,OAAKpD,GAAL,CAAStE,IAAT,CAAP;YACIA,QAAQA,KAAKG,UAAb,IAA2B,CAACH,KAAKK,OAAjC,IAA4C,CAACL,KAAKI,KAAlD,IAA2DJ,KAAKD,MAApE,EAA4E;;;;YAIxE0H,QAAJ,EAAc;wBACEA,QAAd;qBACW,KAAX;;;YAGE;cACEE,KAAJ;cACI9F,OAAJ,GAAc,CAAd;SAFF,CAGE,OAAO9D,CAAP,EAAU;OAdC,EAgBZ,GAhBY,CAAf;;aAkBO,IAAIoF,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;YAClCuE,iBAAJ;YACIC,KAAK,SAALA,EAAK,CAAC9J,CAAD,EAAO;;cAEV6J,QAAJ,EAAc;;;qBAGH,IAAX;cACIH,QAAJ,EAAc;0BACEA,QAAd;uBACW,KAAX;;;iBAGK,OAAKnD,GAAL,CAAStE,IAAT,CAAP;;;cAGI,CAACA,IAAL,EAAW;mBACFqD,OAAO,YAAP,CAAP;;;;cAIE,CAACrD,KAAKG,UAAV,EAAsB;mBACbkD,OAAO,aAAP,CAAP;;;;cAIErD,KAAKI,KAAT,EAAgB;mBACPiD,OAAOrD,KAAKI,KAAZ,CAAP;;;;cAIE,CAACJ,KAAKD,MAAV,EAAkB;mBACTsD,OAAO,OAAP,CAAP;;;;cAKErD,KAAKK,OAAT,EAAkB;mBACT+C,QAAQpD,IAAR,CAAP;;;cAGE8B,OAAO,EAAX;;kBAEQ/D,EAAEiB,IAAV;iBACO,SAAL;iBACK,OAAL;mBACOoB,KAAL,GAAarC,EAAEiB,IAAf;;iBAEG,OAAL;kBACM,CAACkH,IAAI4B,MAAT,EAAiB;qBACV1H,KAAL,GAAa,SAAb;eADF,MAEO,IAAI8F,IAAI4B,MAAJ,IAAc,GAAlB,EAAuB;qBACvB1H,KAAL,GAAa,QAAb;eADK,MAEA,IAAI8F,IAAI4B,MAAJ,IAAc,GAAlB,EAAuB;qBACvB1H,KAAL,GAAa,QAAb;;;;kBAIE8F,IAAI4B,MAAJ,IAAc,GAAlB,EAAuB;qBAChB1H,KAAL,GAAa,QAAb;eADF,MAEO,IAAI8F,IAAI4B,MAAJ,IAAc,GAAlB,EAAuB;qBACvB1H,KAAL,GAAa,QAAb;eADK,MAEA;qBACA2H,QAAL,GAAgB,QAAhB;;;;cAIF7B,IAAI8B,YAAR,EAAsB;gBAChBC,cAAc/B,IAAIgC,iBAAJ,CAAsB,cAAtB,CAAlB;gBACID,eAAeA,YAAYxD,OAAZ,CAAoB,OAApB,MAAiC,CAAC,CAArD,EAAwD;mBACjD0D,QAAL,GAAgB1B,KAAK2B,KAAL,CAAWlC,IAAI8B,YAAf,CAAhB;aADF,MAEO;mBACAG,QAAL,GAAgBjC,IAAI8B,YAApB;;;;;iBAKG,OAAKjD,MAAL,CAAY/E,IAAZ,EAAkB8B,IAAlB,CAAP;;;cAGI9B,KAAKI,KAAT,EAAgB;mBACPiD,OAAOrD,KAAKI,KAAZ,CAAP;;;;iBAIKgD,QAAQpD,IAAR,CAAP;SAnFF;;;YAuFIqI,MAAJ,GAAaR,EAAb;YACIS,OAAJ,GAAcT,EAAd;YACIU,OAAJ,GAAcV,EAAd;YACIW,SAAJ,GAAgBX,EAAhB;;;YAGI7H,KAAK6B,OAAT,EAAkB;cACZA,OAAJ,GAAc7B,KAAK6B,OAAnB;;;;aAIG,IAAInB,GAAT,IAAgBV,KAAK+B,OAArB,EAA8B;cACxB0G,gBAAJ,CAAqB/H,GAArB,EAA0BV,KAAK+B,OAAL,CAAarB,GAAb,CAA1B;;;;eAIK,OAAKqE,MAAL,CAAY/E,IAAZ,EAAkB,EAAEkG,QAAF,EAAlB,CAAP;;;YAGIwC,IAAJ,CAAS7B,IAAT;OA5GK,CAAP;KAniBK;eAAA,uBAspBKD,KAtpBL,EAspBY;;;UACb5G,OAAO4G,KAAX;UACI+B,YAAY,SAAZA,SAAY,CAAU5K,CAAV,EAAa;YACvBA,EAAE6K,OAAF,KAAc,EAAlB,EAAsB;YAClBC,cAAF;;OAFJ;;UAMIC,SAAShK,SAASC,aAAT,CAAuB,QAAvB,CAAb;aACO0B,EAAP,GAAY,mBAAmBT,KAAKS,EAApC;aACOe,IAAP,GAAc,mBAAmBxB,KAAKS,EAAtC;aACOsI,GAAP,GAAa,aAAb;aACOC,YAAP,CAAoB,OAApB,EAA6B,uEAA7B;;UAGI1C,OAAOxH,SAASC,aAAT,CAAuB,MAAvB,CAAX;;WAEKkK,MAAL,GAAcjJ,KAAK4B,UAAnB;;WAEKJ,IAAL,GAAY,iBAAiBxB,KAAKS,EAAlC;;WAGKuI,YAAL,CAAkB,QAAlB,EAA4B,MAA5B;WACKA,YAAL,CAAkB,QAAlB,EAA4B,mBAAmBhJ,KAAKS,EAApD;WACKuI,YAAL,CAAkB,SAAlB,EAA6B,qBAA7B;;UAEIpK,cAAJ;UACIC,cAAJ;WACK,IAAI6B,GAAT,IAAgBV,KAAK8B,IAArB,EAA2B;gBACjB9B,KAAK8B,IAAL,CAAUpB,GAAV,CAAR;YACI9B,SAAS,QAAOA,KAAP,yCAAOA,KAAP,OAAiB,QAA1B,IAAsC,OAAOA,MAAMsD,QAAb,KAA0B,UAApE,EAAgF;kBACtEuE,KAAKC,SAAL,CAAe9H,KAAf,CAAR;;YAEEA,UAAU,IAAV,IAAkBA,UAAU0B,SAAhC,EAA2C;kBACjCxB,SAASC,aAAT,CAAuB,OAAvB,CAAR;gBACMC,IAAN,GAAa,QAAb;gBACMwC,IAAN,GAAad,GAAb;gBACM9B,KAAN,GAAcA,KAAd;eACKsK,WAAL,CAAiBrK,KAAjB;;;WAGCqK,WAAL,CAAiBlJ,KAAK0B,EAAtB;;eAESmF,IAAT,CAAcqC,WAAd,CAA0BJ,MAA1B,EAAkCI,WAAlC,CAA8C5C,IAA9C;;UAKI6C,kBAAkB,SAAlBA,eAAkB,GAAY;YAC5BC,YAAJ;YACI;cACEN,OAAOO,aAAX,EAA0B;kBAClBP,OAAOO,aAAP,CAAqBvK,QAA3B;;SAFJ,CAIE,OAAOwK,GAAP,EAAY;YAEV,CAACF,GAAL,EAAU;cACJ;kBACIN,OAAOS,eAAP,GAAyBT,OAAOS,eAAhC,GAAkDT,OAAOhK,QAA/D;WADF,CAEE,OAAOwK,GAAP,EAAY;kBACNR,OAAOhK,QAAb;;;YAGAsK,OAAOA,IAAIvC,IAAf,EAAqB;iBACZuC,IAAIvC,IAAJ,CAAS2C,SAAhB;;eAEK,IAAP;OAlBF;;aAsBO,IAAIrG,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;mBAC3B,YAAM;iBACR,OAAK0B,MAAL,CAAY/E,IAAZ,EAAkB,EAAE8I,cAAF,EAAlB,CAAP;;;cAGI,CAAC9I,IAAL,EAAW;mBACFqD,OAAO,YAAP,CAAP;;;;cAIEoE,WAAWC,YAAY,YAAM;mBACxB,OAAKpD,GAAL,CAAStE,IAAT,CAAP;gBACIA,QAAQA,KAAKG,UAAb,IAA2B,CAACH,KAAKK,OAAjC,IAA4C,CAACL,KAAKI,KAAlD,IAA2DJ,KAAKD,MAApE,EAA4E;;;;gBAIxE0H,QAAJ,EAAc;4BACEA,QAAd;yBACW,KAAX;;;mBAGKc,OAAP,CAAe,EAAEvJ,MAAMgB,OAAO,OAAP,GAAiB,YAAzB,EAAf;WAXa,EAYZ,GAZY,CAAf;;cAeI4H,iBAAJ;cACIC,KAAK,SAALA,EAAK,CAAC9J,CAAD,EAAO;;gBAEV6J,QAAJ,EAAc;;;uBAGH,IAAX;;gBAGIH,QAAJ,EAAc;4BACEA,QAAd;yBACW,KAAX;;;;qBAIOZ,IAAT,CAAc4C,mBAAd,CAAkC,SAAlC,EAA6Cd,SAA7C;;mBAEO,OAAKrE,GAAL,CAAStE,IAAT,CAAP;;;gBAGI,CAACA,IAAL,EAAW;qBACFqD,OAAO,YAAP,CAAP;;;;gBAIE,CAACrD,KAAKG,UAAV,EAAsB;qBACbkD,OAAO,aAAP,CAAP;;;;gBAIErD,KAAKI,KAAT,EAAgB;qBACPiD,OAAOrD,KAAKI,KAAZ,CAAP;;;;gBAIE,CAACJ,KAAKD,MAAV,EAAkB;qBACTsD,OAAO,OAAP,CAAP;;;;gBAIErD,KAAKK,OAAT,EAAkB;qBACT+C,QAAQpD,IAAR,CAAP;;;gBAGEmI,WAAWgB,iBAAf;gBACIrH,OAAO,EAAX;oBACQ/D,EAAEiB,IAAV;mBACO,OAAL;qBACOoB,KAAL,GAAa,OAAb;;mBAEG,OAAL;oBACMJ,KAAKI,KAAT,EAAgB;uBACTA,KAAL,GAAaJ,KAAKI,KAAlB;iBADF,MAEO,IAAI+H,aAAa,IAAjB,EAAuB;uBACvB/H,KAAL,GAAa,SAAb;iBADK,MAEA;uBACAA,KAAL,GAAa,QAAb;;;;oBAIEJ,KAAKI,KAAT,EAAgB;uBACTA,KAAL,GAAaJ,KAAKI,KAAlB;iBADF,MAEO,IAAI0B,SAAS,IAAb,EAAmB;uBACnB1B,KAAL,GAAa,SAAb;iBADK,MAEA;uBACA2H,QAAL,GAAgB,QAAhB;;;;gBAIFI,aAAa,IAAjB,EAAuB;kBACjBA,YAAYA,SAAShG,MAAT,CAAgB,CAAhB,EAAmB,CAAnB,MAA0B,GAAtC,IAA6CgG,SAAShG,MAAT,CAAgBgG,SAASjI,MAAT,GAAkB,CAAlC,EAAqC,CAArC,MAA4C,GAA7F,EAAkG;oBAC5F;6BACSuG,KAAK2B,KAAL,CAAWD,QAAX,CAAX;iBADF,CAEE,OAAOmB,GAAP,EAAY;;mBAGXnB,QAAL,GAAgBA,QAAhB;;;;mBAIK,OAAKpD,MAAL,CAAY/E,IAAZ,EAAkB8B,IAAlB,CAAP;;gBAEI9B,KAAKI,KAAT,EAAgB;qBACPiD,OAAOrD,KAAKI,KAAZ,CAAP;;;;mBAIKgD,QAAQpD,IAAR,CAAP;WAtFF;;;iBA2FOqI,MAAP,GAAgBR,EAAhB;iBACOS,OAAP,GAAiBT,EAAjB;iBACOU,OAAP,GAAiBV,EAAjB;;;mBAIShB,IAAT,CAAc6C,gBAAd,CAA+B,SAA/B,EAA0Cf,SAA1C;;;eAGKgB,MAAL;SA7HF,EA8HG,EA9HH;OADK,EAgIJnG,IAhII,CAgIC,UAAUoG,GAAV,EAAe;eACdC,UAAP,IAAqBf,OAAOe,UAAP,CAAkBC,WAAlB,CAA8BhB,MAA9B,CAArB;eACOc,GAAP;OAlIK,EAmIJ5E,KAnII,CAmIE,UAAU4E,GAAV,EAAe;eACfC,UAAP,IAAqBf,OAAOe,UAAP,CAAkBC,WAAlB,CAA8BhB,MAA9B,CAArB;eACOc,GAAP;OArIK,CAAP;KA5tBK;eAAA,uBAu2BK7J,MAv2BL,EAu2Ba;UACdC,aAAJ;UACIgB,QAAQ,CAAZ;aACQhB,OAAO,KAAKb,KAAL,CAAW6B,KAAX,CAAf,EAAmC;;YAE7B,CAAChB,KAAKG,UAAV,EAAsB;;SAAtB,MAEO,IAAIJ,UAAU,CAAC,KAAKD,OAApB,EAA6B;cAC9B,KAAK+E,SAAL,IAAkB,KAAKkF,MAAvB,IAAkC,KAAKlF,SAAL,IAAkB,CAAC,KAAKvF,QAAL,CAAcC,KAAvE,EAA+E;;;cAG3E,CAACS,KAAKD,MAAN,IAAgB,CAACC,KAAKI,KAAtB,IAA+B,CAACJ,KAAKK,OAAzC,EAAkD;iBAC3C0E,MAAL,CAAY/E,IAAZ,EAAkB,EAAED,QAAQ,IAAV,EAAlB;;SALG,MAOA;cACDC,KAAKD,MAAT,EAAiB;iBACVgF,MAAL,CAAY/E,IAAZ,EAAkB,EAAED,QAAQ,KAAV,EAAlB;;;;UAIF,KAAK8E,SAAL,KAAmB,CAAvB,EAA0B;aACnB9E,MAAL,GAAc,KAAd;;KA53BG;aAAA,qBAi4BGiK,GAj4BH,EAi4BQ;UACTtI,KAAKsI,GAAT;UACI,CAAC,KAAK1K,QAAL,CAAcG,IAAnB,EAAyB;;;;;UAKrB,KAAKwK,WAAT,EAAsB;YAChB;mBACOR,mBAAT,CAA6B,WAA7B,EAA0C,KAAKS,WAA/C,EAA4D,KAA5D;mBACST,mBAAT,CAA6B,WAA7B,EAA0C,KAAKU,WAA/C,EAA4D,KAA5D;mBACSV,mBAAT,CAA6B,MAA7B,EAAqC,KAAKW,cAA1C,EAA0D,KAA1D;eACKH,WAAL,CAAiBR,mBAAjB,CAAqC,UAArC,EAAiD,KAAKY,UAAtD,EAAkE,KAAlE;eACKJ,WAAL,CAAiBR,mBAAjB,CAAqC,MAArC,EAA6C,KAAKa,MAAlD,EAA0D,KAA1D;SALF,CAME,OAAOvM,CAAP,EAAU;;;UAIV,CAAC2D,EAAL,EAAS;aACF,KAAL;OADF,MAEO,IAAI,OAAOA,EAAP,KAAc,QAAlB,EAA4B;aAC5B5C,SAASyL,aAAT,CAAuB7I,EAAvB,KAA8B,KAAK8I,KAAL,CAAWnM,GAAX,CAAekM,aAAf,CAA6B7I,EAA7B,CAAnC;OADK,MAEA,IAAIA,OAAO,IAAX,EAAiB;aACjB,KAAKzD,OAAL,CAAaI,GAAlB;;;WAGG4L,WAAL,GAAmBvI,EAAnB;;UAEI,KAAKuI,WAAT,EAAsB;iBACXP,gBAAT,CAA0B,WAA1B,EAAuC,KAAKQ,WAA5C,EAAyD,KAAzD;iBACSR,gBAAT,CAA0B,WAA1B,EAAuC,KAAKS,WAA5C,EAAyD,KAAzD;iBACST,gBAAT,CAA0B,MAA1B,EAAkC,KAAKU,cAAvC,EAAuD,KAAvD;aACKH,WAAL,CAAiBP,gBAAjB,CAAkC,UAAlC,EAA8C,KAAKW,UAAnD,EAA+D,KAA/D;aACKJ,WAAL,CAAiBP,gBAAjB,CAAkC,MAAlC,EAA0C,KAAKY,MAA/C,EAAuD,KAAvD;;KAl6BG;eAAA,uBAu6BKvM,CAv6BL,EAu6BQ;QACX8K,cAAF;UACI,CAAC,KAAK4B,UAAV,EAAsB;aACfA,UAAL,GAAkB,IAAlB;;KA16BG;eAAA,uBA86BK1M,CA96BL,EA86BQ;QACX8K,cAAF;UACI9K,EAAEI,MAAF,CAASuM,QAAT,KAAsB,MAAtB,IAAiC3M,EAAE4M,OAAF,KAAc,CAAd,IAAmB5M,EAAE6M,OAAF,KAAc,CAAjC,IAAsC,CAAC7M,EAAE8M,WAAzC,IAAwD9M,EAAE+M,OAAF,IAAa,CAA1G,EAA8G;aACvGL,UAAL,GAAkB,KAAlB;;KAj7BG;cAAA,sBAq7BI1M,CAr7BJ,EAq7BO;QACV8K,cAAF;KAt7BK;kBAAA,4BAy7BU;WACV4B,UAAL,GAAkB,KAAlB;KA17BK;UAAA,kBA67BA1M,CA77BA,EA67BG;QACN8K,cAAF;WACKkC,eAAL,CAAqBhN,EAAE8E,YAAvB;;;CAjrCN;;;;;;;;ACpCA,UAAiBmI,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":["/**\n * Creates a XHR request\n *\n * @param {Object} options\n */\nexport const createRequest = (options) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'json'\n xhr.open(options.method || 'GET', options.url)\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 resolve(xhr.response)\n } else {\n reject(xhr.statusText)\n }\n }\n xhr.onerror = () => reject(xhr.statusText)\n xhr.send(JSON.stringify(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 { default as request, createRequest, sendRequest } 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 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.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: this.headers,\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\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(error => this.reject(error))\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 sendRequest(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.pause()\n return this.reject('File upload failed')\n }\n }\n\n this.uploadNextChunk()\n }).catch(() => {\n chunk.active = false\n if (chunk.retries-- <= 0) {\n this.pause()\n return this.reject('File upload failed')\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: this.headers,\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(res => {\n if (res.status !== 'success') {\n return this.reject(res.message)\n }\n\n this.resolve(res)\n }).catch(error => this.reject(error))\n }\n}\n","\n\n","\n\n\n","module.exports = require('./FileUpload.vue')\n"],"names":["createRequest","options","xhr","XMLHttpRequest","responseType","open","method","url","headers","keys","forEach","setRequestHeader","key","sendRequest","body","Promise","resolve","reject","onload","status","response","statusText","onerror","send","JSON","stringify","ChunkUploadHandler","file","chunks","start","end","chunkSize","fileSize","push","slice","maxRetries","progress","active","chunksUploading","abort","startChunking","promise","action","Object","assign","startBody","fileType","then","res","message","sessionId","data","session_id","end_offset","createChunks","catch","error","i","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","length","finish","chunk","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","startOffset","blob","uploaded","retries","pause","finishBody","parseInt","maxActive","type","size","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","render","e","$destroy","$parent","addInputFile","target","constructor","$el","CHUNK_DEFAULT_OPTIONS","ChunkUploadDefaultHandler","String","Boolean","Number","multiple","Array","value","input","document","createElement","window","FormData","files","webkitdirectory","directory","features","html5","ondrop","drop","maps","$nextTick","$forceUpdate","watchDrop","destroy","fileObject","success","undefined","watchActive","oldMaps","id","newFile","oldFile","emitFile","emitInput","_files","index","addIndex","isArray","addFiles","Blob","webkitRelativePath","relativePath","name","Element","el","putAction","postAction","timeout","random","toString","substr","emitFilter","maximum","clear","newFiles","concat","splice","replace","add","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","entry","path","isFile","isDirectory","dropDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","get","file2","index1","indexOf","index2","isPrevent","$emit","uploading","update","code","extensions","RegExp","split","map","trim","join","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","chunkEnabled","chunkOptions","handler","minSize","HandlerClass","querys","encodeURIComponent","queryString","uploadXhr","form","File","append","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","toFixed","interval","setInterval","complete","fn","responseText","contentType","getResponseHeader","parse","onabort","ontimeout","onKeydown","keyCode","preventDefault","iframe","src","setAttribute","appendChild","getResponseData","doc","contentWindow","err","contentDocument","innerHTML","removeEventListener","submit","parentNode","removeChild","thread","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","querySelector","$root","dropActive","nodeName","screenX","screenY","fromElement","offsetX","addDataTransfer","require$$0"],"mappings":"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"} \ No newline at end of file diff --git a/docs/dist/index.js b/docs/dist/index.js index e9d996b..dc70fc6 100644 --- a/docs/dist/index.js +++ b/docs/dist/index.js @@ -1,6 +1,6 @@ /*! * Name: vue-upload-component - * Version: 2.7.3 + * Version: 2.8.0 * Author: LianYue */ /******/ (function(modules) { // webpackBootstrap @@ -65,7 +65,7 @@ /******/ __webpack_require__.p = "/dist"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 10); +/******/ return __webpack_require__(__webpack_require__.s = 21); /******/ }) /************************************************************************/ /******/ ([ @@ -74,12 +74,14 @@ /* globals __VUE_SSR_CONTEXT__ */ -// this module is a runtime utility for cleaner component module output and will -// be included in the final webpack user bundle +// IMPORTANT: Do NOT use ES2015 features in this file. +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. module.exports = function normalizeComponent ( rawScriptExports, compiledTemplate, + functionalTemplate, injectStyles, scopeId, moduleIdentifier /* server only */ @@ -103,6 +105,12 @@ module.exports = function normalizeComponent ( if (compiledTemplate) { options.render = compiledTemplate.render options.staticRenderFns = compiledTemplate.staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true } // scopedId @@ -143,12 +151,16 @@ module.exports = function normalizeComponent ( var existing = functional ? options.render : options.beforeCreate + if (!functional) { // inject component registration as beforeCreate hook options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } else { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook // register for functioal component in vue file options.render = function renderWithStyleInjection (h, context) { hook.call(context) @@ -264,7 +276,7 @@ if (typeof DEBUG !== 'undefined' && DEBUG) { ) } } -var listToStyles = __webpack_require__(25) +var listToStyles = __webpack_require__(36) /* type StyleObject = { @@ -292,14 +304,18 @@ var singletonElement = null var singletonCounter = 0 var isProduction = false var noop = function () {} +var options = null +var ssrIdKey = 'data-vue-ssr-id' // Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n```\n\n\n** OR **\n\n\n```js\nimport FileUpload from 'vue-upload-component/src'\n```\n\n\nwebpack.config.js\n\n```js\nconst nodeExternals = require('webpack-node-externals');\n{\n //.....\n externals: [\n nodeExternals({whitelist:[/^vue-upload-component\\/src/]})\n ]\n //.....\n}\n```\n\n* [https://github.com/liady/webpack-node-externals](https://github.com/liady/webpack-node-externals) \n\n* [**`vue-hackernews` demo**](https://github.com/lian-yue/vue-hackernews-2.0/) \n\n* [**View changes**](https://github.com/lian-yue/vue-hackernews-2.0/commit/bd6c58a30cc6b8ba6c0148e737b3ce9336b99cf8)\n\n\n\n\n## Options / Props\n\n\n### input-id\n\nThe `id` attribute of the input tag\n\n* **Type:** `String`\n\n* **Default:** `this.name`\n\n* **Usage:**\n ```html\n \n \n \n ```\n\n\n\n\n\n### name\n\nThe `name` attribute of the input tag\n\n* **Type:** `String`\n\n* **Default:** `file`\n\n* **Usage:**\n ```html\n \n \n \n ```\n\n\n\n\n\n### post-action\n\n`POST` Request upload URL\n\n* **Type:** `String`\n\n* **Default:** `undefined`\n\n* **Usage:**\n ```html\n \n ```\n\n\n\n\n\n### put-action\n\n`PUT` Request upload URL\n\n* **Type:** `String`\n\n* **Default:** `undefined`\n\n* **Browser:** `> IE9`\n\n* **Details:** \n\n `put-action` is not empty Please give priority to` PUT` request \n\n* **Usage:**\n ```html\n \n ```\n\n\n\n\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\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" - -/***/ }), -/* 8 */ -/***/ (function(module, exports) { - -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\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" - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = Cropper; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(11); - - -/***/ }), -/* 11 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_marked__ = __webpack_require__(4); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_marked___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_marked__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_highlight_js__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_highlight_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_highlight_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__store__ = __webpack_require__(14); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__router__ = __webpack_require__(15); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__i18n__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__views_App__ = __webpack_require__(70); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - - - - - - - +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked__ = __webpack_require__(4); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_marked___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_marked__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// -__WEBPACK_IMPORTED_MODULE_0_vue___default.a.config.silent = false; -__WEBPACK_IMPORTED_MODULE_0_vue___default.a.config.devtools = true; -var Renderer = function (_marked$Renderer) { - _inherits(Renderer, _marked$Renderer); +/* harmony default export */ __webpack_exports__["a"] = ({ + mounted: function mounted() { + // auto scrollTo hash + if (this.$route.hash) { + var el = document.querySelector(decodeURIComponent(this.$route.hash)); + if (el) { + window.scrollTo(0, el.offsetTop); + } + } + }, - function Renderer() { - _classCallCheck(this, Renderer); - return _possibleConstructorReturn(this, (Renderer.__proto__ || Object.getPrototypeOf(Renderer)).apply(this, arguments)); - } + computed: { + document: function document() { + return __webpack_require__(37)("./" + this.$i18n.locale); + }, + navs: function navs() { + var tokens = __WEBPACK_IMPORTED_MODULE_0_marked___default.a.lexer(this.document); + var rootNode = { + name: '', + children: [], + level: 1 + }; + var parent = rootNode; + var navPrev = void 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type !== 'heading') { + continue; + } - _createClass(Renderer, [{ - key: 'heading', - value: function heading(text, level, raw) { - var rawName = raw.toLowerCase().replace(/([\u0000-\u002F\u003A-\u0060\u007B-\u007F]+)/g, '-').replace(/^\-+|\-+$/, ''); + var nav = { + name: token.text, + hash: token.text.toLowerCase().replace(/([\u0000-\u002F\u003A-\u0060\u007B-\u007F]+)/g, '-').replace(/^\-+|\-+$/, ''), + level: token.depth, + children: [] + }; + if (!navPrev || nav.level === navPrev.level) { + // empty + } else if (nav.level > navPrev.level) { + // next + parent = navPrev; + } else { + while (nav.level < navPrev.level && navPrev.parent) { + navPrev = navPrev.parent; + parent = navPrev.parent; + } + } - if (!this.options.headers) { - this.options.headers = []; - } - while (this.options.headers.length >= level) { - this.options.headers.pop(); - } - var parent = this.options.headers.filter(function (value) { - return !!value; - }).join('-'); - if (parent) { - parent = parent + '-'; - } - while (this.options.headers.length < level - 1) { - this.options.headers.push(''); + nav.parent = parent; + parent.children.push(nav); + navPrev = nav; } - this.options.headers.push(rawName); - return '' + text + '\n'; - } - }]); - - return Renderer; -}(__WEBPACK_IMPORTED_MODULE_1_marked___default.a.Renderer); - -__WEBPACK_IMPORTED_MODULE_1_marked___default.a.setOptions({ - renderer: new Renderer(), - gfm: true, - tables: true, - breaks: false, - pedantic: false, - sanitize: false, - smartLists: true, - smartypants: false, - highlight: function highlight(code, lang) { - if (lang) { - return __WEBPACK_IMPORTED_MODULE_2_highlight_js___default.a.highlight(lang, code).value; - } else { - return __WEBPACK_IMPORTED_MODULE_2_highlight_js___default.a.highlightAuto(code).value; + return rootNode.children; } } }); -__WEBPACK_IMPORTED_MODULE_0_vue___default.a.directive('markdown', function (el, binding, vnode) { - if (!el.className || !/vue-markdown/.test(el.className)) { - el.className += ' vue-markdown'; - } - var text = ''; - for (var i = 0; i < vnode.children.length; i++) { - text += vnode.children[i].text || ''; - } - if (el.markdown === text) { - return; - } +/***/ }), +/* 8 */ +/***/ (function(module, exports) { - el.markdown = text; +module.exports = "\n> **The document uses Google Translate**\n\n## Getting Started\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### Script\n\n\nunpkg\n\n``` html\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` 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#### 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_chunk` 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#### 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#### 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\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`" - el.innerHTML = __WEBPACK_IMPORTED_MODULE_1_marked___default()(text); - var selectorList = el.querySelectorAll('a'); - for (var _i = 0; _i < selectorList.length; _i++) { - selectorList[_i].onclick = function (e) { - if (e.metaKey || e.ctrlKey || e.shiftKey) { - return; - } - if (e.defaultPrevented) { - return; - } - if (e.button !== undefined && e.button !== 0) { - return; - } +/***/ }), +/* 9 */ +/***/ (function(module, exports) { - if (this.host !== window.location.host) { - return; - } +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\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" - var href = this.getAttribute('href'); - if (!href) { - return; - } +/***/ }), +/* 10 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (href.charAt(0) !== '#') { - return; - } +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_cropperjs__ = __webpack_require__(11); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_cropperjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_cropperjs__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__xkeshi_image_compressor__ = __webpack_require__(44); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__xkeshi_image_compressor___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__xkeshi_image_compressor__); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_upload_component__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_upload_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_vue_upload_component__); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - e.preventDefault(); - __WEBPACK_IMPORTED_MODULE_4__router__["a" /* default */].push(href); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["a"] = ({ + components: { + FileUpload: __WEBPACK_IMPORTED_MODULE_2_vue_upload_component___default.a + }, + + data: function data() { + return { + files: [], + accept: 'image/png,image/gif,image/jpeg,image/webp', + extensions: 'gif,jpg,jpeg,png,webp', + // extensions: ['gif', 'jpg', 'jpeg','png', 'webp'], + // extensions: /\.(gif|jpe?g|png|webp)$/i, + minSize: 1024, + size: 1024 * 1024 * 10, + multiple: true, + directory: false, + drop: true, + dropDirectory: true, + addIndex: false, + thread: 3, + name: 'file', + postAction: '/upload/post', + putAction: '/upload/put', + headers: { + 'X-Csrf-Token': 'xxxx' + }, + data: { + '_csrf_token': 'xxxxxx' + }, + + autoCompress: 1024 * 1024, + uploadAuto: false, + isOption: false, + + addData: { + show: false, + name: '', + type: '', + content: '' + }, + + editFile: { + show: false, + name: '' + } + }; + }, + + + watch: { + 'editFile.show': function editFileShow(newValue, oldValue) { + // 关闭了 自动删除 error + if (!newValue && oldValue) { + this.$refs.upload.update(this.editFile.id, { error: this.editFile.error || '' }); + } + + if (newValue) { + this.$nextTick(function () { + if (!this.$refs.editImage) { + return; + } + var cropper = new __WEBPACK_IMPORTED_MODULE_0_cropperjs___default.a(this.$refs.editImage, { + autoCrop: false + }); + this.editFile = _extends({}, this.editFile, { + cropper: cropper + }); + }); + } + }, + 'addData.show': function addDataShow(show) { + if (show) { + this.addData.name = ''; + this.addData.type = ''; + this.addData.content = ''; + } + } + }, + + methods: { + inputFilter: function inputFilter(newFile, oldFile, prevent) { + var _this = this; + + if (newFile && !oldFile) { + // Before adding a file + // 添加文件前 + + // Filter system files or hide files + // 过滤系统文件 和隐藏文件 + if (/(\/|^)(Thumbs\.db|desktop\.ini|\..+)$/.test(newFile.name)) { + return prevent(); + } + + // Filter php html js file + // 过滤 php html js 文件 + if (/\.(php5?|html?|jsx?)$/i.test(newFile.name)) { + return prevent(); + } + + // Automatic compression + // 自动压缩 + if (newFile.file && newFile.type.substr(0, 6) === 'image/' && this.autoCompress > 0 && this.autoCompress < newFile.size) { + newFile.error = 'compressing'; + var imageCompressor = new __WEBPACK_IMPORTED_MODULE_1__xkeshi_image_compressor___default.a(null, { + convertSize: Infinity, + maxWidth: 512, + maxHeight: 512 + }); + imageCompressor.compress(newFile.file).then(function (file) { + _this.$refs.upload.update(newFile, { error: '', file: file, size: file.size, type: file.type }); + }).catch(function (err) { + _this.$refs.upload.update(newFile, { error: err.message || 'compress' }); + }); + } + } + + if (newFile && (!oldFile || newFile.file !== oldFile.file)) { + + // Create a blob field + // 创建 blob 字段 + newFile.blob = ''; + var URL = window.URL || window.webkitURL; + if (URL && URL.createObjectURL) { + newFile.blob = URL.createObjectURL(newFile.file); + } + + // Thumbnails + // 缩略图 + newFile.thumb = ''; + if (newFile.blob && newFile.type.substr(0, 6) === 'image/') { + newFile.thumb = newFile.blob; + } + } + }, + + + // add, update, remove File Event + inputFile: function inputFile(newFile, oldFile) { + if (newFile && oldFile) { + // update + + if (newFile.active && !oldFile.active) { + // beforeSend + + // min size + if (newFile.size >= 0 && this.minSize > 0 && newFile.size < this.minSize) { + this.$refs.upload.update(newFile, { error: 'size' }); + } + } + + if (newFile.progress !== oldFile.progress) { + // progress + } + + if (newFile.error && !oldFile.error) { + // error + } + + if (newFile.success && !oldFile.success) { + // success + } + } + + if (!newFile && oldFile) { + // remove + if (oldFile.success && oldFile.response.id) { + // $.ajax({ + // type: 'DELETE', + // url: '/upload/delete?id=' + oldFile.response.id, + // }) + } + } + + // Automatically activate upload + if (Boolean(newFile) !== Boolean(oldFile) || oldFile.error !== newFile.error) { + if (this.uploadAuto && !this.$refs.upload.active) { + this.$refs.upload.active = true; + } + } + }, + alert: function (_alert) { + function alert(_x) { + return _alert.apply(this, arguments); + } + + alert.toString = function () { + return _alert.toString(); + }; + + return alert; + }(function (message) { + alert(message); + }), + onEditFileShow: function onEditFileShow(file) { + this.editFile = _extends({}, file, { show: true }); + this.$refs.upload.update(file, { error: 'edit' }); + }, + onEditorFile: function onEditorFile() { + if (!this.$refs.upload.features.html5) { + this.alert('Your browser does not support'); + this.editFile.show = false; + return; + } + + var data = { + name: this.editFile.name + }; + if (this.editFile.cropper) { + var binStr = atob(this.editFile.cropper.getCroppedCanvas().toDataURL(this.editFile.type).split(',')[1]); + var arr = new Uint8Array(binStr.length); + for (var i = 0; i < binStr.length; i++) { + arr[i] = binStr.charCodeAt(i); + } + data.file = new File([arr], data.name, { type: this.editFile.type }); + data.size = data.file.size; + } + this.$refs.upload.update(this.editFile.id, data); + this.editFile.error = ''; + this.editFile.show = false; + }, + + + // add folader + onAddFolader: function onAddFolader() { + var _this2 = this; + + if (!this.$refs.upload.features.directory) { + this.alert('Your browser does not support'); + return; + } + + var input = this.$refs.upload.$el.querySelector('input'); + input.directory = true; + input.webkitdirectory = true; + this.directory = true; + + input.onclick = null; + input.click(); + input.onclick = function (e) { + _this2.directory = false; + input.directory = false; + input.webkitdirectory = false; + }; + }, + onAddData: function onAddData() { + this.addData.show = false; + if (!this.$refs.upload.features.html5) { + this.alert('Your browser does not support'); + return; + } + + var file = new window.File([this.addData.content], this.addData.name, { + type: this.addData.type + }); + this.$refs.upload.add(file); + } + } +}); + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +module.exports = Cropper; + +/***/ }), +/* 12 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__chunk_ChunkUploadHandler__ = __webpack_require__(48); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__InputFile_vue__ = __webpack_require__(50); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +var CHUNK_DEFAULT_OPTIONS = { + headers: { + 'Content-Type': 'application/json' + }, + action: '', + minSize: 1048576, + maxActive: 3, + maxRetries: 5, + + handler: __WEBPACK_IMPORTED_MODULE_0__chunk_ChunkUploadHandler__["a" /* default */] +}; + +/* harmony default export */ __webpack_exports__["a"] = ({ + components: { + InputFile: __WEBPACK_IMPORTED_MODULE_1__InputFile_vue__["a" /* default */] + }, + props: { + inputId: { + type: String + }, + + name: { + type: String, + default: 'file' + }, + + accept: { + type: String + }, + + multiple: { + type: Boolean + }, + + maximum: { + type: Number, + default: function _default() { + return this.multiple ? 0 : 1; + } + }, + + addIndex: { + type: [Boolean, Number] + }, + + directory: { + type: Boolean + }, + + postAction: { + type: String + }, + + putAction: { + type: String + }, + + headers: { + type: Object, + default: Object + }, + + data: { + type: Object, + default: Object + }, + + timeout: { + type: Number, + default: 0 + }, + + drop: { + default: false + }, + + dropDirectory: { + type: Boolean, + default: true + }, + + size: { + type: Number, + default: 0 + }, + + extensions: { + default: Array + }, + + value: { + type: Array, + default: Array + }, + + thread: { + type: Number, + default: 1 + }, + + // Chunk upload enabled + chunkEnabled: { + type: Boolean, + default: false + }, + + // Chunk upload properties + chunk: { + type: Object, + default: function _default() { + return CHUNK_DEFAULT_OPTIONS; + } + } + }, + + data: function data() { + return { + files: this.value, + features: { + html5: true, + directory: false, + drag: false + }, + + active: false, + dropActive: false, + + uploading: 0, + + destroy: false }; - } -}); + }, + + + /** + * mounted + * @return {[type]} [description] + */ + mounted: function mounted() { + var input = document.createElement('input'); + input.type = 'file'; + input.multiple = true; + + // html5 特征 + if (window.FormData && input.files) { + // 上传目录特征 + if (typeof input.webkitdirectory === 'boolean' || typeof input.directory === 'boolean') { + this.features.directory = true; + } + + // 拖拽特征 + if (this.features.html5 && typeof input.ondrop !== 'undefined') { + this.features.drop = true; + } + } else { + this.features.html5 = false; + } + + // files 定位缓存 + this.maps = {}; + + this.$nextTick(function () { + + // 更新下父级 + if (this.$parent) { + this.$parent.$forceUpdate(); + } + + // 拖拽渲染 + this.watchDrop(this.drop); + }); + }, + + + /** + * beforeDestroy + * @return {[type]} [description] + */ + beforeDestroy: function beforeDestroy() { + // 已销毁 + this.destroy = true; + + // 设置成不激活 + this.active = false; + }, + + + computed: { + /** + * uploading 正在上传的线程 + * @return {[type]} [description] + */ + + /** + * uploaded 文件列表是否全部已上传 + * @return {[type]} [description] + */ + uploaded: function uploaded() { + var file = void 0; + for (var i = 0; i < this.files.length; i++) { + file = this.files[i]; + if (file.fileObject && !file.error && !file.success) { + return false; + } + } + return true; + }, + chunkOptions: function chunkOptions() { + return Object.assign(CHUNK_DEFAULT_OPTIONS, this.chunk); + }, + className: function className() { + return ['file-uploads', this.features.html5 ? 'file-uploads-html5' : 'file-uploads-html4', this.features.directory && this.directory ? 'file-uploads-directory' : undefined, this.features.drop && this.drop ? 'file-uploads-drop' : undefined]; + } + }, + + watch: { + active: function active(_active) { + this.watchActive(_active); + }, + dropActive: function dropActive() { + if (this.$parent) { + this.$parent.$forceUpdate(); + } + }, + drop: function drop(value) { + this.watchDrop(value); + }, + value: function value(files) { + if (this.files === files) { + return; + } + this.files = files; + + var oldMaps = this.maps; + + // 重写 maps 缓存 + this.maps = {}; + for (var i = 0; i < this.files.length; i++) { + var file = this.files[i]; + this.maps[file.id] = file; + } + + // add, update + for (var key in this.maps) { + var newFile = this.maps[key]; + var oldFile = oldMaps[key]; + if (newFile !== oldFile) { + this.emitFile(newFile, oldFile); + } + } + + // delete + for (var _key in oldMaps) { + if (!this.maps[_key]) { + this.emitFile(undefined, oldMaps[_key]); + } + } + } + }, + + methods: { + + // 清空 + clear: function clear() { + if (this.files.length) { + var files = this.files; + this.files = []; + + // 定位 + this.maps = {}; + + // 事件 + this.emitInput(); + for (var i = 0; i < files.length; i++) { + this.emitFile(undefined, files[i]); + } + } + return true; + }, + + + // 选择 + get: function get(id) { + if (!id) { + return false; + } + + if ((typeof id === 'undefined' ? 'undefined' : _typeof(id)) === 'object') { + return this.maps[id.id] || false; + } + + return this.maps[id] || false; + }, + + + // 添加 + add: function add(_files) { + var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.addIndex; + + var files = _files; + var isArray = files instanceof Array; + + // 不是数组整理成数组 + if (!isArray) { + files = [files]; + } + + // 遍历规范对象 + var addFiles = []; + for (var i = 0; i < files.length; i++) { + var file = files[i]; + if (this.features.html5 && file instanceof Blob) { + file = { + file: file, + size: file.size, + name: file.webkitRelativePath || file.relativePath || file.name || 'unknown', + type: file.type + }; + } + var fileObject = false; + if (file.fileObject === false) { + // false + } else if (file.fileObject) { + fileObject = true; + } else if (typeof Element !== 'undefined' && file.el instanceof Element) { + fileObject = true; + } else if (typeof Blob !== 'undefined' && file.file instanceof Blob) { + fileObject = true; + } + if (fileObject) { + file = _extends({ + fileObject: true, + size: -1, + name: 'Filename', + type: '', + active: false, + error: '', + success: false, + putAction: this.putAction, + postAction: this.postAction, + timeout: this.timeout + }, file, { + response: {}, + + progress: '0.00', // 只读 + speed: 0 // 只读 + // xhr: false, // 只读 + // iframe: false, // 只读 + }); + + file.data = _extends({}, this.data, file.data ? file.data : {}); + + file.headers = _extends({}, this.headers, file.headers ? file.headers : {}); + } + + // 必须包含 id + if (!file.id) { + file.id = Math.random().toString(36).substr(2); + } + + if (this.emitFilter(file, undefined)) { + continue; + } + + // 最大数量限制 + if (this.maximum > 1 && addFiles.length + this.files.length >= this.maximum) { + break; + } + + addFiles.push(file); + + // 最大数量限制 + if (this.maximum === 1) { + break; + } + } + + // 没有文件 + if (!addFiles.length) { + return false; + } + + // 如果是 1 清空 + if (this.maximum === 1) { + this.clear(); + } + + // 添加进去 files + var newFiles = void 0; + if (index === true || index === 0) { + newFiles = addFiles.concat(this.files); + } else if (index) { + newFiles = addFiles.concat([]); + newFiles.splice(index, 0, addFiles); + } else { + newFiles = this.files.concat(addFiles); + } + + this.files = newFiles; + + // 定位 + for (var _i = 0; _i < addFiles.length; _i++) { + var _file2 = addFiles[_i]; + this.maps[_file2.id] = _file2; + } + + // 事件 + this.emitInput(); + for (var _i2 = 0; _i2 < addFiles.length; _i2++) { + this.emitFile(addFiles[_i2], undefined); + } + + return isArray ? addFiles : addFiles[0]; + }, + + + // 添加表单文件 + addInputFile: function addInputFile(el) { + var files = []; + if (el.files) { + for (var i = 0; i < el.files.length; i++) { + var file = el.files[i]; + files.push({ + size: file.size, + name: file.webkitRelativePath || file.relativePath || file.name, + type: file.type, + file: file, + el: el + }); + } + } else { + files.push({ + name: el.value.replace(/^.*?([^\/\\\r\n]+)$/, '$1'), + el: el + }); + } + return this.add(files); + }, + + + // 添加 DataTransfer + addDataTransfer: function addDataTransfer(dataTransfer) { + var _this = this; + + var files = []; + if (dataTransfer.items && dataTransfer.items.length) { + var items = []; + for (var i = 0; i < dataTransfer.items.length; i++) { + var item = dataTransfer.items[i]; + if (item.getAsEntry) { + item = item.getAsEntry() || item.getAsFile(); + } else if (item.webkitGetAsEntry) { + item = item.webkitGetAsEntry() || item.getAsFile(); + } else { + item = item.getAsFile(); + } + if (item) { + items.push(item); + } + } + + return new Promise(function (resolve, reject) { + var forEach = function forEach(i) { + var item = items[i]; + // 结束 文件数量大于 最大数量 + if (!item || _this.maximum > 0 && files.length >= _this.maximum) { + return resolve(_this.add(files)); + } + _this.getEntry(item).then(function (results) { + files.push.apply(files, _toConsumableArray(results)); + forEach(i + 1); + }); + }; + forEach(0); + }); + } + + if (dataTransfer.files.length) { + for (var _i3 = 0; _i3 < dataTransfer.files.length; _i3++) { + files.push(dataTransfer.files[_i3]); + if (this.maximum > 0 && files.length >= this.maximum) { + break; + } + } + return Promise.resolve(this.add(files)); + } + + return Promise.resolve([]); + }, + + + // 获得 entry + getEntry: function getEntry(entry) { + var _this2 = this; + + var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + return new Promise(function (resolve, reject) { + if (entry.isFile) { + entry.file(function (file) { + resolve([{ + size: file.size, + name: path + file.name, + type: file.type, + file: file + }]); + }); + } else if (entry.isDirectory && _this2.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) { + return resolve(files); + } + if (!entries[i]) { + return readEntries(); + } + _this2.getEntry(entries[i], path + entry.name + '/').then(function (results) { + files.push.apply(files, _toConsumableArray(results)); + forEach(i + 1); + }); + }; + forEach(0); + }); + }; + readEntries(); + } else { + resolve([]); + } + }); + }, + replace: function replace(id1, id2) { + var file1 = this.get(id1); + var file2 = this.get(id2); + if (!file1 || !file2 || file1 === file2) { + return false; + } + var files = this.files.concat([]); + var index1 = files.indexOf(file1); + var index2 = files.indexOf(file2); + if (index1 === -1 || index2 === -1) { + return false; + } + files[index1] = file2; + files[index2] = file1; + this.files = files; + this.emitInput(); + return true; + }, + + + // 移除 + remove: function remove(id) { + var file = this.get(id); + if (file) { + if (this.emitFilter(undefined, file)) { + return false; + } + var files = this.files.concat([]); + var index = files.indexOf(file); + if (index === -1) { + console.error('remove', file); + return false; + } + files.splice(index, 1); + this.files = files; + + // 定位 + delete this.maps[file.id]; + + // 事件 + this.emitInput(); + this.emitFile(undefined, file); + } + return file; + }, + + + // 更新 + update: function update(id, data) { + var file = this.get(id); + if (file) { + var newFile = _extends({}, file, data); + // 停用必须加上错误 + if (file.fileObject && file.active && !newFile.active && !newFile.error && !newFile.success) { + newFile.error = 'abort'; + } -__WEBPACK_IMPORTED_MODULE_0_vue___default.a.filter('formatSize', function (size) { - if (size > 1024 * 1024 * 1024 * 1024) { - return (size / 1024 / 1024 / 1024 / 1024).toFixed(2) + ' TB'; - } else if (size > 1024 * 1024 * 1024) { - return (size / 1024 / 1024 / 1024).toFixed(2) + ' GB'; - } else if (size > 1024 * 1024) { - return (size / 1024 / 1024).toFixed(2) + ' MB'; - } else if (size > 1024) { - return (size / 1024).toFixed(2) + ' KB'; - } - return size.toString() + ' B'; -}); + if (this.emitFilter(newFile, file)) { + return false; + } -__WEBPACK_IMPORTED_MODULE_0_vue___default.a.filter('toLocale', function (to) { - return '/' + __WEBPACK_IMPORTED_MODULE_5__i18n__["a" /* default */].locale + to; -}); + var files = this.files.concat([]); + var index = files.indexOf(file); + if (index === -1) { + console.error('update', file); + return false; + } + files.splice(index, 1, newFile); + this.files = files; -new __WEBPACK_IMPORTED_MODULE_0_vue___default.a(_extends({ - store: __WEBPACK_IMPORTED_MODULE_3__store__["a" /* default */], - router: __WEBPACK_IMPORTED_MODULE_4__router__["a" /* default */], - i18n: __WEBPACK_IMPORTED_MODULE_5__i18n__["a" /* default */] -}, __WEBPACK_IMPORTED_MODULE_6__views_App__["a" /* default */])).$mount('#app'); + // 删除 旧定位 写入 新定位 (已便支持修改id) + delete this.maps[file.id]; + this.maps[newFile.id] = newFile; -/***/ }), -/* 12 */ -/***/ (function(module, exports) { + // 事件 + this.emitInput(); + this.emitFile(newFile, file); + return newFile; + } + return false; + }, -module.exports = Vue; -/***/ }), -/* 13 */ -/***/ (function(module, exports) { + // 预处理 事件 过滤器 + emitFilter: function emitFilter(newFile, oldFile) { + var isPrevent = false; + this.$emit('input-filter', newFile, oldFile, function () { + isPrevent = true; + return isPrevent; + }); + return isPrevent; + }, -module.exports = hljs; -/***/ }), -/* 14 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // 处理后 事件 分发 + emitFile: function emitFile(newFile, oldFile) { + this.$emit('input-file', newFile, oldFile); + if (newFile && newFile.fileObject && newFile.active && (!oldFile || !oldFile.active)) { + this.uploading++; + // 激活 + this.$nextTick(function () { + var _this3 = this; -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(5); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vuex__); -// import Vue from 'vue' + setTimeout(function () { + _this3.upload(newFile).then(function () { + // eslint-disable-next-line + newFile = _this3.get(newFile); + if (newFile && newFile.fileObject) { + _this3.update(newFile, { + active: false, + success: !newFile.error + }); + } + }).catch(function (e) { + _this3.update(newFile, { + active: false, + success: false, + error: e.code || e.error || e.message || e + }); + }); + }, parseInt(Math.random() * 50 + 50, 10)); + }); + } else if ((!newFile || !newFile.fileObject || !newFile.active) && oldFile && oldFile.fileObject && oldFile.active) { + // 停止 + this.uploading--; + } -// -// Vue.use(Vuex) + // 自动延续激活 + if (this.active && (Boolean(newFile) !== Boolean(oldFile) || newFile.active !== oldFile.active)) { + this.watchActive(true); + } + }, + emitInput: function emitInput() { + this.$emit('input', this.files); + }, -var state = { - files: [] -}; + // 上传 + upload: function upload(id) { + var file = this.get(id); -var mutations = { - updateFiles: function updateFiles(state, files) { - state.files = files; - } -}; -/* harmony default export */ __webpack_exports__["a"] = (new __WEBPACK_IMPORTED_MODULE_0_vuex___default.a.Store({ - strict: true, - state: state, - mutations: mutations -})); + // 被删除 + if (!file) { + return Promise.reject('not_exists'); + } -/***/ }), -/* 15 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // 不是文件对象 + if (!file.fileObject) { + return Promise.reject('file_object'); + } -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_router__ = __webpack_require__(16); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_router___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue_router__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__i18n__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__views_Router__ = __webpack_require__(20); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__views_Document__ = __webpack_require__(22); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__views_Example__ = __webpack_require__(29); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__views_examples_Full__ = __webpack_require__(31); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__views_examples_Simple__ = __webpack_require__(45); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__views_examples_Avatar__ = __webpack_require__(50); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__views_examples_Drag__ = __webpack_require__(55); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__views_examples_Multiple__ = __webpack_require__(60); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__views_examples_Vuex__ = __webpack_require__(65); -// import Vue from 'vue' + // 有错误直接响应 + if (file.error) { + return Promise.reject(file.error); + } + + // 已完成直接响应 + if (file.success) { + return Promise.resolve(file); + } + + // 后缀 + var extensions = this.extensions; + if (extensions && (extensions.length || typeof extensions.length === 'undefined')) { + if ((typeof extensions === 'undefined' ? 'undefined' : _typeof(extensions)) !== 'object' || !(extensions instanceof RegExp)) { + if (typeof extensions === 'string') { + extensions = extensions.split(',').map(function (value) { + return value.trim(); + }).filter(function (value) { + return value; + }); + } + extensions = new RegExp('\\.(' + extensions.join('|').replace(/\./g, '\\.') + ')$', 'i'); + } + if (file.name.search(extensions) === -1) { + return Promise.reject('extension'); + } + } + + // 大小 + if (this.size > 0 && file.size >= 0 && file.size > this.size) { + return Promise.reject('size'); + } + + if (this.features.html5) { + if (this.shouldUseChunkUpload(file)) { + return this.uploadChunk(file); + } + if (file.putAction) { + return this.uploadPut(file); + } + + return this.uploadHtml5(file); + } + + return this.uploadHtml4(file); + }, + + + /** + * Whether this file should be uploaded using chunk upload or not + * + * @param Object file + */ + shouldUseChunkUpload: function shouldUseChunkUpload(file) { + return this.chunkEnabled && !!this.chunkOptions.handler && file.size > this.chunkOptions.minSize; + }, + + + /** + * Upload a file using Chunk method + * + * @param File file + */ + uploadChunk: function uploadChunk(file) { + var HandlerClass = this.chunkOptions.handler; + file.chunk = new HandlerClass(file, this.chunkOptions); + + return file.chunk.upload(); + }, + uploadPut: function uploadPut(file) { + var querys = []; + var value = void 0; + for (var key in file.data) { + value = file.data[key]; + if (value !== null && value !== undefined) { + querys.push(encodeURIComponent(key) + '=' + encodeURIComponent(value)); + } + } + var queryString = querys.length ? (file.putAction.indexOf('?') === -1 ? '?' : '&') + querys.join('&') : ''; + var xhr = new XMLHttpRequest(); + xhr.open('PUT', file.putAction + queryString); + return this.uploadXhr(xhr, file, file.file); + }, + uploadHtml5: function uploadHtml5(file) { + var form = new window.FormData(); + var value = void 0; + for (var key in file.data) { + value = file.data[key]; + if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') { + if (value instanceof File) { + form.append(key, value, value.name); + } else { + form.append(key, JSON.stringify(value)); + } + } else if (value !== null && value !== undefined) { + form.append(key, value); + } + } + form.append(this.name, file.file, file.file.filename || file.name); + var xhr = new XMLHttpRequest(); + xhr.open('POST', file.postAction); + return this.uploadXhr(xhr, file, form); + }, + uploadXhr: function uploadXhr(xhr, _file, body) { + var _this4 = this; + var file = _file; + var speedTime = 0; + var speedLoaded = 0; + // 进度条 + xhr.upload.onprogress = function (e) { + // 还未开始上传 已删除 未激活 + file = _this4.get(file); + if (!e.lengthComputable || !file || !file.fileObject || !file.active) { + return; + } + // 进度 速度 每秒更新一次 + var speedTime2 = Math.round(Date.now() / 1000); + if (speedTime2 === speedTime) { + return; + } + speedTime = speedTime2; + file = _this4.update(file, { + progress: (e.loaded / e.total * 100).toFixed(2), + speed: e.loaded - speedLoaded + }); + speedLoaded = e.loaded; + }; + // 检查激活状态 + var interval = setInterval(function () { + file = _this4.get(file); + if (file && file.fileObject && !file.success && !file.error && file.active) { + return; + } + if (interval) { + clearInterval(interval); + interval = false; + } + try { + xhr.abort(); + xhr.timeout = 1; + } catch (e) {} + }, 100); + return new Promise(function (resolve, reject) { + var complete = void 0; + var fn = function fn(e) { + // 已经处理过了 + if (complete) { + return; + } + complete = true; + if (interval) { + clearInterval(interval); + interval = false; + } + file = _this4.get(file); + // 不存在直接响应 + if (!file) { + return reject('not_exists'); + } + // 不是文件对象 + if (!file.fileObject) { + return reject('file_object'); + } + // 有错误自动响应 + if (file.error) { + return reject(file.error); + } + // 未激活 + if (!file.active) { + return reject('abort'); + } -// Vue.use(VueRouter) + // 已完成 直接相应 + if (file.success) { + return resolve(file); + } + var data = {}; -var examples = [{ - path: '', - component: __WEBPACK_IMPORTED_MODULE_5__views_examples_Full__["a" /* default */] -}, { - path: 'full', - component: __WEBPACK_IMPORTED_MODULE_5__views_examples_Full__["a" /* default */] -}, { - path: 'simple', - component: __WEBPACK_IMPORTED_MODULE_6__views_examples_Simple__["a" /* default */] -}, { - path: 'avatar', - component: __WEBPACK_IMPORTED_MODULE_7__views_examples_Avatar__["a" /* default */] -}, { - path: 'drag', - component: __WEBPACK_IMPORTED_MODULE_8__views_examples_Drag__["a" /* default */] -}, { - path: 'multiple', - component: __WEBPACK_IMPORTED_MODULE_9__views_examples_Multiple__["a" /* default */] -}, { - path: 'vuex', - component: __WEBPACK_IMPORTED_MODULE_10__views_examples_Vuex__["a" /* default */] -}]; + switch (e.type) { + case 'timeout': + case 'abort': + data.error = e.type; + break; + case 'error': + if (!xhr.status) { + data.error = 'network'; + } else if (xhr.status >= 500) { + data.error = 'server'; + } else if (xhr.status >= 400) { + data.error = 'denied'; + } + break; + default: + if (xhr.status >= 500) { + data.error = 'server'; + } else if (xhr.status >= 400) { + data.error = 'denied'; + } else { + data.progress = '100.00'; + } + } -var router = new __WEBPACK_IMPORTED_MODULE_0_vue_router___default.a({ - mode: 'hash', - fallback: false, - scrollBehavior: function scrollBehavior(to, from, savedPosition) { - if (savedPosition) { - return savedPosition; - } else if (to.hash) { - var el = document.querySelector(to.hash); - return { x: 0, y: el ? el.offsetTop : 0 }; - } else { - return { x: 0, y: 0 }; - } - }, + if (xhr.responseText) { + var contentType = xhr.getResponseHeader('Content-Type'); + if (contentType && contentType.indexOf('/json') !== -1) { + data.response = JSON.parse(xhr.responseText); + } else { + data.response = xhr.responseText; + } + } - routes: [{ - path: '/:locale(' + Object.keys(__WEBPACK_IMPORTED_MODULE_1__i18n__["a" /* default */].messages).join('|') + ')?', - component: __WEBPACK_IMPORTED_MODULE_2__views_Router__["a" /* default */], - children: [{ - path: 'documents', - component: __WEBPACK_IMPORTED_MODULE_3__views_Document__["a" /* default */] - }, { - path: 'examples', - component: __WEBPACK_IMPORTED_MODULE_4__views_Example__["a" /* default */], - children: examples - }, { - path: '', - component: __WEBPACK_IMPORTED_MODULE_4__views_Example__["a" /* default */], - children: examples - }] - }] -}); -/* harmony default export */ __webpack_exports__["a"] = (router); + // 更新 + file = _this4.update(file, data); -/***/ }), -/* 16 */ -/***/ (function(module, exports) { + // 相应错误 + if (file.error) { + return reject(file.error); + } -module.exports = VueRouter; + // 响应 + return resolve(file); + }; -/***/ }), -/* 17 */ -/***/ (function(module, exports) { + // 事件 + xhr.onload = fn; + xhr.onerror = fn; + xhr.onabort = fn; + xhr.ontimeout = fn; -module.exports = VueI18n; + // 超时 + if (file.timeout) { + xhr.timeout = file.timeout; + } -/***/ }), -/* 18 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + // headers + for (var key in file.headers) { + xhr.setRequestHeader(key, file.headers[key]); + } -"use strict"; -/* harmony default export */ __webpack_exports__["a"] = ({ - header: { - logo: 'Vuejs', - home: 'Home', - examples: 'Examples', - documents: 'Documentation', - blog: 'Blog', - locale: 'Language(语言)', - issues: 'Issues', - github: 'Github' - }, + // 更新 xhr + file = _this4.update(file, { xhr: xhr }); - locale: { - en: 'English', - 'zh-cn': '中文(简体)' - }, + // 开始上传 + xhr.send(body); + }); + }, + uploadHtml4: function uploadHtml4(_file) { + var _this5 = this; - document: { - title: 'Documentation' - }, + var file = _file; + var onKeydown = function onKeydown(e) { + if (e.keyCode === 27) { + e.preventDefault(); + } + }; - example: { - full: 'Full Example', - simple: 'Simple', - avatar: 'Upload avatar', - drag: 'Drag and drop', - multiple: 'Multiple instances', - vuex: 'Vuex' - } -}); + var iframe = document.createElement('iframe'); + iframe.id = 'upload-iframe-' + file.id; + iframe.name = 'upload-iframe-' + file.id; + iframe.src = 'about:blank'; + iframe.setAttribute('style', 'width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;'); -/***/ }), -/* 19 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var form = document.createElement('form'); -"use strict"; -/* harmony default export */ __webpack_exports__["a"] = ({ - header: { - logo: 'Vuejs', - home: '首页', - examples: '演示', - documents: '文档', - blog: 'Blog', - locale: 'Language(语言)', - issues: 'Issues', - github: 'Github' - }, + form.action = file.postAction; - locale: { - en: 'English', - 'zh-cn': '中文(简体)' - }, + form.name = 'upload-form-' + file.id; - document: { - title: '文档' - }, + form.setAttribute('method', 'POST'); + form.setAttribute('target', 'upload-iframe-' + file.id); + form.setAttribute('enctype', 'multipart/form-data'); - example: { - full: '完整例子', - simple: '简单例子', - avatar: '上传头像', - drag: '拖拽上传', - multiple: '多个实例', - vuex: 'Vuex' - } -}); + var value = void 0; + var input = void 0; + for (var key in file.data) { + value = file.data[key]; + if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') { + value = JSON.stringify(value); + } + if (value !== null && value !== undefined) { + input = document.createElement('input'); + input.type = 'hidden'; + input.name = key; + input.value = value; + form.appendChild(input); + } + } + form.appendChild(file.el); -/***/ }), -/* 20 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + document.body.appendChild(iframe).appendChild(form); -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0546df56_hasScoped_false_preserveWhitespace_false_node_modules_vue_loader_lib_selector_type_template_index_0_Router_vue__ = __webpack_require__(21); -var normalizeComponent = __webpack_require__(0) -/* script */ -var __vue_script__ = null -/* template */ + var getResponseData = function getResponseData() { + var doc = void 0; + try { + if (iframe.contentWindow) { + doc = iframe.contentWindow.document; + } + } catch (err) {} + if (!doc) { + try { + doc = iframe.contentDocument ? iframe.contentDocument : iframe.document; + } catch (err) { + doc = iframe.document; + } + } + if (doc && doc.body) { + return doc.body.innerHTML; + } + return null; + }; -/* styles */ -var __vue_styles__ = null -/* scopeId */ -var __vue_scopeId__ = null -/* moduleIdentifier (server only) */ -var __vue_module_identifier__ = null -var Component = normalizeComponent( - __vue_script__, - __WEBPACK_IMPORTED_MODULE_0__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0546df56_hasScoped_false_preserveWhitespace_false_node_modules_vue_loader_lib_selector_type_template_index_0_Router_vue__["a" /* default */], - __vue_styles__, - __vue_scopeId__, - __vue_module_identifier__ -) + return new Promise(function (resolve, reject) { + setTimeout(function () { + file = _this5.update(file, { iframe: iframe }); -/* harmony default export */ __webpack_exports__["a"] = (Component.exports); + // 不存在 + if (!file) { + return reject('not_exists'); + } + // 定时检查 + var interval = setInterval(function () { + file = _this5.get(file); + if (file && file.fileObject && !file.success && !file.error && file.active) { + return; + } -/***/ }), -/* 21 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + if (interval) { + clearInterval(interval); + interval = false; + } -"use strict"; -var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')} -var staticRenderFns = [] -var esExports = { render: render, staticRenderFns: staticRenderFns } -/* harmony default export */ __webpack_exports__["a"] = (esExports); + iframe.onabort({ type: file ? 'abort' : 'not_exists' }); + }, 100); -/***/ }), -/* 22 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var complete = void 0; + var fn = function fn(e) { + // 已经处理过了 + if (complete) { + return; + } + complete = true; -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_presets_env_modules_false_stage_0_plugins_transform_runtime_helpers_false_polyfill_false_regenerator_true_moduleName_babel_runtime_cacheDirectory_false_node_modules_vue_loader_lib_selector_type_script_index_0_Document_vue__ = __webpack_require__(26); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_102fa427_hasScoped_false_preserveWhitespace_false_node_modules_vue_loader_lib_selector_type_template_index_0_Document_vue__ = __webpack_require__(28); -function injectStyle (ssrContext) { - __webpack_require__(23) -} -var normalizeComponent = __webpack_require__(0) -/* script */ + if (interval) { + clearInterval(interval); + interval = false; + } -/* template */ + // 关闭 esc 事件 + document.body.removeEventListener('keydown', onKeydown); -/* styles */ -var __vue_styles__ = injectStyle -/* scopeId */ -var __vue_scopeId__ = null -/* moduleIdentifier (server only) */ -var __vue_module_identifier__ = null -var Component = normalizeComponent( - __WEBPACK_IMPORTED_MODULE_0__babel_loader_presets_env_modules_false_stage_0_plugins_transform_runtime_helpers_false_polyfill_false_regenerator_true_moduleName_babel_runtime_cacheDirectory_false_node_modules_vue_loader_lib_selector_type_script_index_0_Document_vue__["a" /* default */], - __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_102fa427_hasScoped_false_preserveWhitespace_false_node_modules_vue_loader_lib_selector_type_template_index_0_Document_vue__["a" /* default */], - __vue_styles__, - __vue_scopeId__, - __vue_module_identifier__ -) + file = _this5.get(file); -/* harmony default export */ __webpack_exports__["a"] = (Component.exports); + // 不存在直接响应 + if (!file) { + return reject('not_exists'); + } + // 不是文件对象 + if (!file.fileObject) { + return reject('file_object'); + } -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { + // 有错误自动响应 + if (file.error) { + return reject(file.error); + } -// style-loader: Adds some css to the DOM by adding a \\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\\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\\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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/docs/en.md\n// module id = 7\n// module chunks = 0","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\\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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/docs/zh-cn.md\n// module id = 8\n// module chunks = 0","module.exports = Cropper;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Cropper\"\n// module id = 9\n// module chunks = 0","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\n\n\n// WEBPACK FOOTER //\n// ./docs/index.js","module.exports = Vue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Vue\"\n// module id = 12\n// module chunks = 0","module.exports = hljs;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"hljs\"\n// module id = 13\n// module chunks = 0","// 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\n\n\n// WEBPACK FOOTER //\n// ./docs/store.js","// 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 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: '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\n\n\n// WEBPACK FOOTER //\n// ./docs/router.js","module.exports = VueRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"VueRouter\"\n// module id = 16\n// module chunks = 0","module.exports = VueI18n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"VueI18n\"\n// module id = 17\n// module chunks = 0","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 vuex: 'Vuex',\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./docs/i18n/en.js","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\n\n\n// WEBPACK FOOTER //\n// ./docs/i18n/zh-cn.js","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0546df56\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Router.vue\"\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/Router.vue\n// module id = 20\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0546df56\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/Router.vue\n// module id = 21\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-102fa427\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Document.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Document.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-102fa427\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Document.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/Document.vue\n// module id = 22\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n// WEBPACK FOOTER //\n// Document.vue?119411f6","var map = {\n\t\"./en\": 7,\n\t\"./en.md\": 7,\n\t\"./zh-cn\": 8,\n\t\"./zh-cn.md\": 8\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 27;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/docs ^\\.\\/.*$\n// module id = 27\n// module chunks = 0","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))]),(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)}))])]),_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')))]),_c('div',{directives:[{name:\"markdown\",rawName:\"v-markdown\"}],staticClass:\"document-content\"},[_vm._v(_vm._s(_vm.document))])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-102fa427\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/Document.vue\n// module id = 28\n// module chunks = 0","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f18b6ae4\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Example.vue\"\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/Example.vue\n// module id = 29\n// module chunks = 0","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),_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),_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),_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),_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),_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)])])]),_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 = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f18b6ae4\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/Example.vue\n// module id = 30\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-60fc9379\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Full.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Full.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-60fc9379\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Full.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Full.vue\n// module id = 31\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n// WEBPACK FOOTER //\n// Full.vue?33d43e4a","module.exports = ImageCompressor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"ImageCompressor\"\n// module id = 35\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-ce9890fe\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./FileUpload.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../node_modules/vue-loader/lib/selector?type=script&index=0!./FileUpload.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ce9890fe\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../node_modules/vue-loader/lib/selector?type=template&index=0!./FileUpload.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/FileUpload.vue\n// module id = 36\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n// WEBPACK FOOTER //\n// FileUpload.vue?412c23fd","var normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../node_modules/vue-loader/lib/selector?type=script&index=0!./InputFile.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-67044c9c\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../node_modules/vue-loader/lib/selector?type=template&index=0!./InputFile.vue\"\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/InputFile.vue\n// module id = 40\n// module chunks = 0","\n\n\n\n\n// WEBPACK FOOTER //\n// InputFile.vue?6b0be093","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,\"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 = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-67044c9c\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/InputFile.vue\n// module id = 42\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{class:_vm.className},[_vm._t(\"default\"),_c('input-file')],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-ce9890fe\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/FileUpload.vue\n// module id = 43\n// module chunks = 0","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 \")]),_c('h1',{staticClass:\"example-title\",attrs:{\"id\":\"example-title\"}},[_vm._v(\"Full Example\")]),_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\")])]),_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),_c('tbody',[(!_vm.files.length)?_c('tr',[_c('td',{attrs:{\"colspan\":\"7\"}},[_c('div',{staticClass:\"text-center p-5\"},[_vm._m(1),_c('label',{staticClass:\"btn btn-lg btn-primary\",attrs:{\"for\":_vm.name}},[_vm._v(\"Select Files\")])])])]):_vm._e(),_vm._l((_vm.files),function(file,index){return _c('tr',{key:file.id},[_c('td',[_vm._v(_vm._s(index))]),_c('td',[(file.thumb)?_c('img',{attrs:{\"src\":file.thumb,\"width\":\"40\",\"height\":\"auto\"}}):_c('span',[_vm._v(\"No Image\")])]),_c('td',[_c('div',{staticClass:\"filename\"},[_vm._v(\"\\n \"+_vm._s(file.name)+\"\\n \")]),(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()]),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.size)))]),_c('td',[_vm._v(_vm._s(_vm._f(\"formatSize\")(file.speed)))]),(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'),_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 \")]),_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\")]),_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\")]),(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\")]),_c('div',{staticClass:\"dropdown-divider\"}),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.remove(file)}}},[_vm._v(\"Remove\")])])])])])})],2)])]),_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 \")]),_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 \")]),_c('div',{staticClass:\"dropdown-menu\"},[_c('label',{staticClass:\"dropdown-item\",attrs:{\"for\":_vm.name}},[_vm._v(\"Add files\")]),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.onAddFolader}},[_vm._v(\"Add folder\")]),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = true}}},[_vm._v(\"Add data\")])])],1),(!_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 \")])])]),_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:\")]),_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}}}),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload mime type\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"extensions\"}},[_vm._v(\"Extensions:\")]),_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}}}),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Allow upload file extension\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',[_vm._v(\"PUT Upload:\")]),_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:{\"__c\":function($event){_vm.putAction=\"\"}}}),_vm._v(\" Off\\n \")])]),_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:{\"__c\":function($event){_vm.putAction=\"/upload/put\"}}}),_vm._v(\" On\\n \")])]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"After the shutdown, use the POST method to upload\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"thread\"}},[_vm._v(\"Thread:\")]),_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()}}}),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Also upload the number of files at the same time (number of threads)\")])]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"size\"}},[_vm._v(\"Max size:\")]),_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()}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"minSize\"}},[_vm._v(\"Min size:\")]),_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()}}})]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"autoCompress\"}},[_vm._v(\"Automatically compress:\")]),_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.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\")])]),_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:{\"__c\":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 \")])]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Add a file list to start the location to add\")])]),_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:{\"__c\":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 \")])]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Drag and drop upload\")])]),_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:{\"__c\":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 \")])]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Not checked, filter the dragged folder\")])]),_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:{\"__c\":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 \")])]),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"Automatically activate upload\")])]),_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\")])])]),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.addData.show}}),_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\")]),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.addData.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();_vm.onAddData($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_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.addData.name=$event.target.value}}}),_vm._m(2)]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"type\"}},[_vm._v(\"Type:\")]),_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.addData.type=$event.target.value}}}),_vm._m(3)]),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"content\"}},[_vm._v(\"Content:\")]),_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.addData.content=$event.target.value}}})])]),_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\")]),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_c('div',{class:{'modal-backdrop': true, 'fade': true, show: _vm.editFile.show}}),_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\")]),_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.editFile.show = false}}},[_c('span',[_vm._v(\"×\")])])]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();_vm.onEditorFile($event)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"name\"}},[_vm._v(\"Name:\")]),_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.editFile.name=$event.target.value}}})]),(_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: \")]),_c('div',{staticClass:\"edit-image\"},[_c('img',{ref:\"editImage\",attrs:{\"src\":_vm.editFile.blob}})]),_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\"}})]),_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\"}})])]),_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\"}})]),_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()]),_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\")]),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])])])])])]),_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(\"#\")]),_c('th',[_vm._v(\"Thumb\")]),_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"Size\")]),_c('th',[_vm._v(\"Speed\")]),_c('th',[_vm._v(\"Status\")]),_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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-60fc9379\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Full.vue\n// module id = 44\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2ce22c9c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Simple.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Simple.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ce22c9c\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Simple.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Simple.vue\n// module id = 45\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n// WEBPACK FOOTER //\n// Simple.vue?2fe719b6","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\")]),_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')])})),_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.$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._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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2ce22c9c\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Simple.vue\n// module id = 49\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6a2e90c3\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Avatar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Avatar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6a2e90c3\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Avatar.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Avatar.vue\n// module id = 50\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// Avatar.vue?95a214ca","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\")])]),_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._m(0)])]),_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)]),_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(),_c('div',{staticClass:\"text-center p-4\"},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.$refs.upload.clear($event)}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();_vm.editSave($event)}}},[_vm._v(\"Save\")])])]),_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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6a2e90c3\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Avatar.vue\n// module id = 54\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-410878c4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Drag.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Drag.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-410878c4\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Drag.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Drag.vue\n// module id = 55\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n// WEBPACK FOOTER //\n// Drag.vue?06e2376c","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\")]):(file.active)?_c('span',[_vm._v(\"active\")]):_c('span')])})):_c('ul',[_vm._m(0)]),_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\")])]),_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.$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._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\")]),_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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-410878c4\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Drag.vue\n// module id = 59\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1d5e357a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Multiple.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Multiple.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1d5e357a\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Multiple.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Multiple.vue\n// module id = 60\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n// WEBPACK FOOTER //\n// Multiple.vue?5d8b5d03","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\")]),_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')])})),_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 \")]),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file1\"}},[_vm._v(\"Label Select files\")]),(!_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)]),_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')])})),_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 \")]),_c('label',{staticClass:\"btn btn-primary\",attrs:{\"for\":\"file2\"}},[_vm._v(\"Label Select files\")]),(!_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._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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1d5e357a\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Multiple.vue\n// module id = 64\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5872e1c8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Vuex.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Vuex.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5872e1c8\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Vuex.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/examples/Vuex.vue\n// module id = 65\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n\n// WEBPACK FOOTER //\n// Vuex.vue?4d92bdb0","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\")]),_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')])})),_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.$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._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\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5872e1c8\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/examples/Vuex.vue\n// module id = 69\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7c3db476\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7c3db476\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/App.vue\n// module id = 70\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n\n\n// WEBPACK FOOTER //\n// App.vue?41741f1e","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')))]),_c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();_vm.showNav = !_vm.showNav}}},[_c('span',{staticClass:\"navbar-toggler-icon\"})]),_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),_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),_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),_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')))])])]),_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 \")]),_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))])}))]),_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 \")])]),_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),_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7c3db476\",\"hasScoped\":false,\"preserveWhitespace\":false}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/App.vue\n// module id = 74\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 9df24518f381aadda936","webpack:///./node_modules/vue-loader/lib/component-normalizer.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./src/index.js","webpack:///external \"marked\"","webpack:///external \"Vuex\"","webpack:///./docs/i18n/index.js","webpack:///docs/views/Document.vue","webpack:///./docs/docs/en.md","webpack:///./docs/docs/zh-cn.md","webpack:///docs/views/examples/Full.vue","webpack:///external \"Cropper\"","webpack:///src/FileUpload.vue","webpack:///src/InputFile.vue","webpack:///docs/views/examples/Simple.vue","webpack:///docs/views/examples/Avatar.vue","webpack:///docs/views/examples/Drag.vue","webpack:///docs/views/examples/Multiple.vue","webpack:///docs/views/examples/Chunk.vue","webpack:///docs/views/examples/Vuex.vue","webpack:///docs/views/App.vue","webpack:///./docs/index.js","webpack:///external \"Vue\"","webpack:///external \"hljs\"","webpack:///./docs/store.js","webpack:///./docs/router.js","webpack:///external \"VueRouter\"","webpack:///external \"VueI18n\"","webpack:///./docs/i18n/en.js","webpack:///./docs/i18n/zh-cn.js","webpack:///./docs/views/Router.vue","webpack:///./docs/views/Router.vue?8731","webpack:///./docs/views/Document.vue","webpack:///./docs/views/Document.vue?e8d1","webpack:///./docs/views/Document.vue?196e","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./docs/docs ^\\.\\/.*$","webpack:///./docs/views/Document.vue?f44d","webpack:///./docs/views/Example.vue","webpack:///./docs/views/Example.vue?b1ad","webpack:///./docs/views/examples/Full.vue","webpack:///./docs/views/examples/Full.vue?9050","webpack:///./docs/views/examples/Full.vue?5c4d","webpack:///external \"ImageCompressor\"","webpack:///./src/FileUpload.vue","webpack:///./src/FileUpload.vue?248e","webpack:///./src/FileUpload.vue?efa9","webpack:///./src/chunk/ChunkUploadHandler.js","webpack:///./src/utils/request.js","webpack:///./src/InputFile.vue","webpack:///./src/InputFile.vue?98ed","webpack:///./src/FileUpload.vue?cc7f","webpack:///./docs/views/examples/Full.vue?21b9","webpack:///./docs/views/examples/Simple.vue","webpack:///./docs/views/examples/Simple.vue?7e10","webpack:///./docs/views/examples/Simple.vue?0b59","webpack:///./docs/views/examples/Simple.vue?78f1","webpack:///./docs/views/examples/Avatar.vue","webpack:///./docs/views/examples/Avatar.vue?a35d","webpack:///./docs/views/examples/Avatar.vue?0d3d","webpack:///./docs/views/examples/Avatar.vue?a6bd","webpack:///./docs/views/examples/Drag.vue","webpack:///./docs/views/examples/Drag.vue?9dae","webpack:///./docs/views/examples/Drag.vue?25de","webpack:///./docs/views/examples/Drag.vue?79ea","webpack:///./docs/views/examples/Multiple.vue","webpack:///./docs/views/examples/Multiple.vue?abb5","webpack:///./docs/views/examples/Multiple.vue?a84a","webpack:///./docs/views/examples/Multiple.vue?0922","webpack:///./docs/views/examples/Chunk.vue","webpack:///./docs/views/examples/Chunk.vue?0c7e","webpack:///./docs/views/examples/Chunk.vue?14b1","webpack:///./docs/views/examples/Chunk.vue?109b","webpack:///./docs/views/examples/Chunk.vue?0533","webpack:///./docs/views/examples/Chunk.vue?3662","webpack:///./docs/views/examples/Vuex.vue","webpack:///./docs/views/examples/Vuex.vue?6a59","webpack:///./docs/views/examples/Vuex.vue?11fa","webpack:///./docs/views/examples/Vuex.vue?8a1a","webpack:///./docs/views/App.vue","webpack:///./docs/views/App.vue?23dd","webpack:///./docs/views/App.vue?d284","webpack:///./docs/views/App.vue?8136"],"names":["module","exports","useSourceMap","list","toString","map","item","content","cssWithMappingToString","join","i","modules","mediaQuery","alreadyImportedModules","length","id","push","cssMapping","btoa","sourceMapping","toComment","sourceURLs","sources","source","sourceRoot","concat","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","require","locale","messages","en","Vue","config","silent","devtools","Renderer","text","level","raw","rawName","toLowerCase","replace","options","headers","pop","parent","filter","value","headerPrefix","marked","setOptions","renderer","gfm","tables","breaks","pedantic","sanitize","smartLists","smartypants","highlight","code","lang","highlightjs","highlightAuto","directive","el","binding","vnode","className","test","children","markdown","innerHTML","selectorList","querySelectorAll","onclick","e","metaKey","ctrlKey","shiftKey","defaultPrevented","button","undefined","host","window","location","href","getAttribute","charAt","preventDefault","router","size","toFixed","to","i18n","store","$mount","state","files","mutations","updateFiles","Vuex","Store","strict","examples","path","component","FullExampleComponent","SimpleExampleComponent","AvatarExampleComponent","DragExampleComponent","MultipleExampleComponent","ChunkExampleComponent","VuexExampleComponent","mode","fallback","scrollBehavior","from","savedPosition","hash","document","querySelector","x","y","offsetTop","routes","Object","keys","DocumentComponent","header","logo","home","documents","blog","issues","github","title","example","full","simple","avatar","drag","multiple","chunk","vuex","listToStyles","parentId","styles","newStyles","css","media","part","parts","ChunkUploadHandler","file","chunks","start","end","chunkSize","fileSize","blob","slice","startOffset","active","retries","maxRetries","progress","chunksUploading","forEach","xhr","abort","startChunking","promise","Promise","resolve","reject","request","method","url","action","body","assign","startBody","phase","mime_type","fileType","then","res","status","message","sessionId","session_id","end_offset","createChunks","catch","error","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","finish","updateFileProgress","createRequest","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","sendRequest","uploadBody","start_offset","uploaded","pause","finishBody","parseInt","maxActive","type","completedProgress","chunksUploaded","uploadingProgress","reduce","min","XMLHttpRequest","responseType","open","setRequestHeader","key","onload","response","statusText","onerror","send"],"mappings":";;;;;;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;AC7DA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtGA;;;;AAIA;AACAA,OAAOC,OAAP,GAAiB,UAASC,YAAT,EAAuB;AACvC,KAAIC,OAAO,EAAX;;AAEA;AACAA,MAAKC,QAAL,GAAgB,SAASA,QAAT,GAAoB;AACnC,SAAO,KAAKC,GAAL,CAAS,UAAUC,IAAV,EAAgB;AAC/B,OAAIC,UAAUC,uBAAuBF,IAAvB,EAA6BJ,YAA7B,CAAd;AACA,OAAGI,KAAK,CAAL,CAAH,EAAY;AACX,WAAO,YAAYA,KAAK,CAAL,CAAZ,GAAsB,GAAtB,GAA4BC,OAA5B,GAAsC,GAA7C;AACA,IAFD,MAEO;AACN,WAAOA,OAAP;AACA;AACD,GAPM,EAOJE,IAPI,CAOC,EAPD,CAAP;AAQA,EATD;;AAWA;AACAN,MAAKO,CAAL,GAAS,UAASC,OAAT,EAAkBC,UAAlB,EAA8B;AACtC,MAAG,OAAOD,OAAP,KAAmB,QAAtB,EACCA,UAAU,CAAC,CAAC,IAAD,EAAOA,OAAP,EAAgB,EAAhB,CAAD,CAAV;AACD,MAAIE,yBAAyB,EAA7B;AACA,OAAI,IAAIH,IAAI,CAAZ,EAAeA,IAAI,KAAKI,MAAxB,EAAgCJ,GAAhC,EAAqC;AACpC,OAAIK,KAAK,KAAKL,CAAL,EAAQ,CAAR,CAAT;AACA,OAAG,OAAOK,EAAP,KAAc,QAAjB,EACCF,uBAAuBE,EAAvB,IAA6B,IAA7B;AACD;AACD,OAAIL,IAAI,CAAR,EAAWA,IAAIC,QAAQG,MAAvB,EAA+BJ,GAA/B,EAAoC;AACnC,OAAIJ,OAAOK,QAAQD,CAAR,CAAX;AACA;AACA;AACA;AACA;AACA,OAAG,OAAOJ,KAAK,CAAL,CAAP,KAAmB,QAAnB,IAA+B,CAACO,uBAAuBP,KAAK,CAAL,CAAvB,CAAnC,EAAoE;AACnE,QAAGM,cAAc,CAACN,KAAK,CAAL,CAAlB,EAA2B;AAC1BA,UAAK,CAAL,IAAUM,UAAV;AACA,KAFD,MAEO,IAAGA,UAAH,EAAe;AACrBN,UAAK,CAAL,IAAU,MAAMA,KAAK,CAAL,CAAN,GAAgB,SAAhB,GAA4BM,UAA5B,GAAyC,GAAnD;AACA;AACDT,SAAKa,IAAL,CAAUV,IAAV;AACA;AACD;AACD,EAxBD;AAyBA,QAAOH,IAAP;AACA,CA1CD;;AA4CA,SAASK,sBAAT,CAAgCF,IAAhC,EAAsCJ,YAAtC,EAAoD;AACnD,KAAIK,UAAUD,KAAK,CAAL,KAAW,EAAzB;AACA,KAAIW,aAAaX,KAAK,CAAL,CAAjB;AACA,KAAI,CAACW,UAAL,EAAiB;AAChB,SAAOV,OAAP;AACA;;AAED,KAAIL,gBAAgB,OAAOgB,IAAP,KAAgB,UAApC,EAAgD;AAC/C,MAAIC,gBAAgBC,UAAUH,UAAV,CAApB;AACA,MAAII,aAAaJ,WAAWK,OAAX,CAAmBjB,GAAnB,CAAuB,UAAUkB,MAAV,EAAkB;AACzD,UAAO,mBAAmBN,WAAWO,UAA9B,GAA2CD,MAA3C,GAAoD,KAA3D;AACA,GAFgB,CAAjB;;AAIA,SAAO,CAAChB,OAAD,EAAUkB,MAAV,CAAiBJ,UAAjB,EAA6BI,MAA7B,CAAoC,CAACN,aAAD,CAApC,EAAqDV,IAArD,CAA0D,IAA1D,CAAP;AACA;;AAED,QAAO,CAACF,OAAD,EAAUE,IAAV,CAAe,IAAf,CAAP;AACA;;AAED;AACA,SAASW,SAAT,CAAmBM,SAAnB,EAA8B;AAC7B;AACA,KAAIC,SAAST,KAAKU,SAASC,mBAAmBC,KAAKC,SAAL,CAAeL,SAAf,CAAnB,CAAT,CAAL,CAAb;AACA,KAAIM,OAAO,iEAAiEL,MAA5E;;AAEA,QAAO,SAASK,IAAT,GAAgB,KAAvB;AACA,C;;;;;;AC3ED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AA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aACA,CACA,6DACA,6FACA,mEAEA;AAIA;AAnCA;;;qCAqCA;uBACA;AAEA;sCACA;wBACA;qBACA;AACA;AAEA;+BACA;qBACA;AAEA;iCACA;gCACA;AACA;AACA;mBAEA;;yBAEA;;AACA;kBACA;kDACA;8BACA;6BACA;AAEA;;AACA;iCACA;gCACA;8BACA;iCACA;iCACA;AACA;AAEA;;AACA;gCACA;8BACA;2CACA;AACA;AACA;AAGA;AA/CA;;;;AAkDA;4BACA;6BACA;yBACA;qBAEA;;AACA;oBAEA;;AACA;aACA;+CACA;yCACA;AACA;AACA;aACA;AAEA;;;AACA;0BACA;eACA;eACA;AAEA;;gFACA;mCACA;AAEA;;8BACA;AAEA;;;AACA;;AACA;;kBACA;qCAEA;;AACA;oBACA;iBACA;AAEA;;AACA;qBACA;6CACA;yBACA;yDACA;;AAEA;uBACA;+EACA;uBAEA;AALA;AAMA;yBACA;uCACA;AACA;oCACA;uBACA;iFACA;uBACA;6EACA;uBACA;AACA;wBACA;AACA;wBACA;mBACA;kBACA;kBACA;oBACA;mBACA;qBACA;4BACA;6BACA;0BACA;aACA;sBAEA;;8BACA;qBACA;AACA;AAGA;;;eACA,yBACA,8BAGA;;eACA,4BACA,uCAEA;AAEA;;AACA;sBACA;sDACA;AAEA;;8CACA;AACA;AAEA;;AACA;qFACA;AACA;AAEA;;sBAEA;;AACA;gCACA;AACA;AACA;AAEA;;AACA;4BACA;eACA;AAEA;;AACA;8BACA;aACA;AAGA;;AACA;UACA;yCACA;wCACA;wBACA;mCACA;kCACA;aACA;qCACA;AAEA;;mBAEA;;AACA;mDACA;8BACA;+BACA;AAEA;;AACA;WACA;sDACA;qCACA;AAEA;;2CACA;AAIA;;;AACA;4CACA;kBACA;oBACA;kDACA;8BACA;;uBAEA;uEACA;uBACA;AACA;AAEA;AANA;AAOA;aACA;;wDAEA;AAEA;AAHA;AAIA;sBACA;AAGA;;;AACA;;AACA;;kBACA;2DACA;oBACA;4DACA;wCACA;+BACA;6CACA;4CACA;mDACA;iBACA;wBACA;AACA;oBACA;uBACA;AACA;AAEA;;sDACA;4CACA;6BACA;AACA;6EACA;uCACA;AACA;yDACA;yDACA;0BACA;AACA;AACA;kBACA;AACA;AAEA;;qCACA;kEACA;wCACA;gEACA;AACA;AACA;AACA;wCACA;AAEA;;6BACA;AAGA;;;AACA;;AACA;;;;oDACA;0BACA;qCACA;;yBAGA;gCACA;yBACA;AAGA;AANA,aADA;AAQA;8DACA;sBACA;gCACA;mDACA;qDACA;gDACA;oGACA;iCACA;AACA;iCACA;yBACA;AACA;6FACA;6DACA;8BACA;AACA;AACA;sBACA;AACA;AACA;AACA;eACA;kBACA;AACA;AACA;AAGA;wCACA;2BACA;2BACA;+CACA;eACA;AACA;oCACA;iCACA;iCACA;0CACA;eACA;AACA;sBACA;sBACA;mBACA;WACA;aACA;AAEA;;;AACA;gCACA;0BACA;gBACA;8CACA;iBACA;AACA;sCACA;kCACA;0BACA;kCACA;iBACA;AACA;4BACA;qBAEA;;AACA;8BAEA;;AACA;aACA;iCACA;AACA;aACA;AAEA;;;AACA;sCACA;0BACA;gBACA;YACA,uBACA,MAEA;AACA;qGACA;0BACA;AAEA;;4CACA;iBACA;AAEA;;sCACA;kCACA;0BACA;kCACA;iBACA;AACA;+BACA;qBAEA;;AACA;8BACA;gCAEA;;AACA;aACA;+BACA;eACA;AACA;aACA;AAIA;;;AACA;sDACA;sBACA;+DACA;oBACA;eACA;AACA;aACA;AAEA;;;AACA;kDACA;wCACA;4FACA;aACA;AACA;;AACA;;iCACA;oDACA;AACA;mCACA;iDACA;;0BAEA;oCAEA;AAHA;AAIA;kCACA;;wBAEA;yBACA;yDAEA;AAJA;AAKA;+CACA;AACA;0HACA;AACA;aACA;AAEA;;AACA;uGACA;yBACA;AACA;AAEA;oCACA;+BACA;AAGA;;;AACA;gCACA;0BAEA;;AACA;iBACA;8BACA;AAEA;;AACA;4BACA;8BACA;AAEA;;AACA;sBACA;mCACA;AAEA;;AACA;wBACA;+BACA;AAEA;;AACA;4BACA;yFACA;qIACA;8CACA;;;;qBACA;;AACA;8FACA;AACA;iDACA;gCACA;AACA;AAEA;;AACA;oEACA;8BACA;AAEA;;+BACA;6CACA;kCACA;AACA;4BACA;gCACA;AAEA;;gCACA;AAEA;;8BACA;AAEA;;;AAKA;;;;;8DACA;kBACA,oCACA,yCACA;AAEA;;;AAKA;;;;;4CACA;2CACA;+CAEA;;wBACA;AAEA;wCACA;mBACA;UACA;iCACA;0BACA;mDACA;yEACA;AACA;AACA;8GACA;oBACA;uCACA;4CACA;AAEA;4CACA;4BACA;UACA;iCACA;0BACA;yIACA;qCACA;0CACA;iBACA;4CACA;AACA;0DACA;2BACA;AACA;AACA;mEACA;oBACA;4BACA;uCACA;AAEA;;AACA;;iBACA;sBACA;wBAEA;;AACA;2CACA;AACA;0BACA;8EACA;AACA;AAEA;;AACA;iDACA;sCACA;AACA;AACA;oBAEA;;;uDAEA;4BAEA;AAHA;wBAIA;AAEA;;AACA;6CACA;0BACA;oFACA;AACA;AAEA;;sBACA;wBACA;qBACA;AAEA;;YACA;cACA;wBACA;oBACA,CACA;SAEA;;oDACA;YACA;gCACA;AACA;wBACA;AACA;AACA;qBACA;wBACA;0BACA;uBACA;AAEA;;4BAEA;;AACA;qBACA;0BACA;AAEA;;AACA;gCACA;0BACA;AAEA;;AACA;0BACA;+BACA;AAEA;;AACA;4BACA;0BACA;AAGA;;AACA;4BACA;2BACA;AAEA;;qBAEA;;oBACA;iBACA;iBACA;6BACA;AACA;iBACA;+BACA;6BACA;4CACA;6BACA;4CACA;6BACA;AACA;AACA;AACA;qCACA;6BACA;4CACA;6BACA;qBACA;gCACA;AAGA;;;gCACA;oDACA;oEACA;6CACA;mBACA;kCACA;AACA;AAEA;;AACA;qCAEA;;AACA;0BACA;+BACA;AAEA;;AACA;yBACA;AAEA;;AACA;qBACA;sBACA;sBACA;wBAEA;;AACA;0BACA;6BACA;AAEA;;AACA;sCACA;iDACA;AAEA;;AACA;qCAEA;;AACA;iBACA;AACA;AAKA;;AACA;;iBACA;4CACA;8BACA;YACA;AACA;AAEA;;0CACA;0CACA;4CACA;mBACA;mCAGA;;wCAEA;;yBAEA;;wCAGA;;kCACA;0DACA;mCAEA;;UACA;UACA;iCACA;0BACA;yIACA;iCACA;AACA;mDACA;yCACA;uBACA;uBACA;wBACA;2BACA;AACA;AACA;4BAEA;;oDAKA;;uDACA;YACA;YACA;oCACA;uCACA;AACA;sBACA,CACA;kBACA;cACA;2EACA;wBACA;yBACA;AACA;AACA;6BACA;0BACA;AACA;eACA;AAGA;;oDACA;+BACA;uCAEA;;AACA;qBACA;0BACA;AAEA;;AACA;iDACA;8BACA;wFACA;AACA;AAEA;;0BACA;4BACA;yBACA;AAEA;;oDACA;aAGA;;cACA;kCACA;AACA;0BACA;AACA;AACA;uBAGA;;0BACA;4BACA;yBACA;AAEA;;AACA;yDAEA;;8BAEA;;AACA;uBACA;4BACA;AAEA;;AACA;kCACA;4BACA;AAEA;;AACA;4BACA;iCACA;AAEA;;AACA;8BACA;4BACA;AAEA;;AACA;8BACA;6BACA;AAEA;;2BACA;uBACA;sBACA;mBACA;6BACA;AACA;mBACA;gCACA;oCACA;8CACA;+BACA;uBACA;+BACA;AACA;AACA;AACA;gCACA;oCACA;0CACA;+BACA;uBACA;kCACA;AAGA;;;mCACA;gHACA;oBACA;wCACA;8BACA,CACA;AACA;8BACA;AAEA;;AACA;uCAEA;;4BACA;iCACA;AAEA;;AACA;2BACA;AAGA;;AACA;0BACA;2BACA;2BAGA;;AACA;oDAEA;;AACA;eACA;WACA;6BACA;2DACA;eACA;8BACA;2DACA;eACA;AACA;AAIA;8CACA;UACA;kBACA;uCACA;AACA;8BACA;AACA;4CACA;uFACA;AACA;AACA;4DACA;wCACA;AACA;eACA;2BACA;wCACA;AACA;AACA;AACA;gCACA;sBACA;AACA;AAGA;uCACA;eACA;+BACA;AACA;AAEA;;AACA;4BACA;YACA;sEACA;sEACA;oEACA;4EACA;oEACA;oBACA,CACA;AAEA;;eACA;aACA;yCACA;wEACA;8BACA;0BACA;AAEA;;yBAEA;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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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 21);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 9df24518f381aadda936","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.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 = 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 = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\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 options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/component-normalizer.js\n// module id = 0\n// module chunks = 0","/*\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\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\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\nvar listToStyles = require('./listToStyles')\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/Document.vue","module.exports = \"\\n> **The document uses Google Translate**\\n\\n## Getting Started\\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### Script\\n\\n\\nunpkg\\n\\n``` html\\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` 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#### 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_chunk` 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#### 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#### 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\\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\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/docs/en.md\n// module id = 8\n// module chunks = 0","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\\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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/docs/zh-cn.md\n// module id = 9\n// module chunks = 0","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Full.vue","module.exports = Cropper;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Cropper\"\n// module id = 11\n// module chunks = 0","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/FileUpload.vue","\n\n\n\n\n// WEBPACK FOOTER //\n// src/InputFile.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Simple.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Avatar.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Drag.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Multiple.vue","\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Chunk.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/examples/Vuex.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// docs/views/App.vue","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\n\n\n// WEBPACK FOOTER //\n// ./docs/index.js","module.exports = Vue;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"Vue\"\n// module id = 23\n// module chunks = 0","module.exports = hljs;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"hljs\"\n// module id = 24\n// module chunks = 0","// 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\n\n\n// WEBPACK FOOTER //\n// ./docs/store.js","// 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\n\n\n// WEBPACK FOOTER //\n// ./docs/router.js","module.exports = VueRouter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"VueRouter\"\n// module id = 27\n// module chunks = 0","module.exports = VueI18n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"VueI18n\"\n// module id = 28\n// module chunks = 0","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\n\n\n// WEBPACK FOOTER //\n// ./docs/i18n/en.js","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\n\n\n// WEBPACK FOOTER //\n// ./docs/i18n/zh-cn.js","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nvar __vue_script__ = null\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3075fd62\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Router.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/Router.vue\n// module id = 31\n// module chunks = 0","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-view')}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3075fd62\",\"hasScoped\":false,\"preserveWhitespace\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./docs/views/Router.vue\n// module id = 32\n// module chunks = 0","function injectStyle (ssrContext) {\n require(\"!!vue-style-loader!css-loader?minimize!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-61209807\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Document.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Document.vue\"\nimport __vue_script__ from \"!!babel-loader?{\\\"presets\\\":[[\\\"env\\\",{\\\"modules\\\":false}],\\\"stage-0\\\"],\\\"plugins\\\":[[\\\"transform-runtime\\\",{\\\"helpers\\\":false,\\\"polyfill\\\":false,\\\"regenerator\\\":true,\\\"moduleName\\\":\\\"babel-runtime\\\"}]],\\\"cacheDirectory\\\":false}!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Document.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-61209807\\\",\\\"hasScoped\\\":false,\\\"preserveWhitespace\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Document.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./docs/views/Document.vue\n// module id = 33\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a