{"version":3,"sources":["webpack:///./node_modules/vue-upload-component/dist/vue-upload-component.js"],"names":["global","factory","module","exports","this","createRequest","options","xhr","XMLHttpRequest","open","method","url","responseType","headers","Object","keys","forEach","key","setRequestHeader","sendRequest","body","Promise","resolve","reject","onload","status","response","JSON","parse","err","onerror","send","stringify","sendFormRequest","data","FormData","name","append","request","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","ChunkUploadHandler","file","value","chunks","start","end","chunkSize","fileSize","push","blob","slice","startOffset","active","retries","maxRetries","progress","stopChunks","chunksUploading","chunk","abort","startChunking","_this","promise","_this2","assign","action","startBody","phase","mime_type","fileType","size","fileName","then","res","sessionId","session_id","end_offset","createChunks","catch","maxActiveChunks","uploadNextChunk","hasChunksToUpload","uploadChunk","chunksToUpload","finish","_this3","updateFileProgress","upload","addEventListener","evt","lengthComputable","Math","round","loaded","total","uploadBody","start_offset","uploaded","_this4","finishBody","get","parseInt","maxActive","type","_this5","completedProgress","chunksUploaded","uploadingProgress","reduce","min","filter","script","methods","change","e","$parent","addInputFile","files","test","navigator","userAgent","$destroy","constructor","parent","el","$el","__vue_script__","__vue_render__","_vm","_h","$createElement","_c","_self","attrs","inputId","accept","capture","disabled","directory","features","multiple","html5","on","__vue_staticRenderFns__","__vue_inject_styles__","undefined","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","__vue_normalize__","template","style","script$$1","scope","functional","moduleIdentifier","createInjector","createInjectorSSR","component","render","staticRenderFns","_compiled","_scopeId","__vue_create_injector__","head","document","getElementsByTagName","styles","isOldIE","toLowerCase","id","css","querySelector","group","media","ids","parts","element","includes","code","source","index","map","sources","btoa","unescape","encodeURIComponent","createElement","setAttribute","appendChild","getAttribute","styleSheet","cssText","Boolean","join","textNode","createTextNode","nodes","childNodes","removeChild","insertBefore","InputFile","_extends","arguments","hasOwnProperty","call","_typeof","Symbol","iterator","obj","_toConsumableArray","arr","Array","isArray","arr2","from","CHUNK_DEFAULT_OPTIONS","minSize","handler","script$1","components","String","default","maximum","Number","addIndex","postAction","putAction","customAction","Function","timeout","drop","dropDirectory","extensions","thread","chunkEnabled","drag","dropActive","uploading","destroy","mounted","input","window","webkitdirectory","ondrop","maps","$nextTick","$forceUpdate","watchDrop","beforeDestroy","computed","fileObject","error","success","chunkOptions","className","watch","_active","watchActive","oldMaps","newFile","oldFile","emitFile","_key","clear","emitInput","add","_files","addFiles","Blob","webkitRelativePath","relativePath","Element","speed","random","toString","substr","emitFilter","newFiles","concat","_newFiles","splice","apply","_i","_file2","_i2","names","replace","split","__vuex__","addDataTransfer","dataTransfer","items","item","getAsEntry","getAsFile","webkitGetAsEntry","getEntry","results","_i3","entry","path","isFile","isDirectory","dirReader","createReader","readEntries","entries","id1","id2","file1","file2","index1","indexOf","index2","remove","console","update","isPrevent","$emit","setTimeout","message","RegExp","trim","search","shouldUseChunkUpload","uploadPut","uploadHtml5","uploadHtml4","HandlerClass","querys","queryString","uploadXhr","form","File","filename","_file","speedTime","speedLoaded","onprogress","speedTime2","Date","now","toFixed","interval","setInterval","clearInterval","complete","fn","responseText","contentType","getResponseHeader","onabort","ontimeout","onKeydown","keyCode","preventDefault","iframe","src","getResponseData","doc","contentWindow","contentDocument","innerHTML","removeEventListener","submit","parentNode","_el","dropElement","onDragenter","onDragleave","onDocumentDrop","onDragover","onDrop","$root","dt","types","contains","nodeName","explicitOriginalTarget","fromElement","clientX","clientY","innerWidth","innerHeight","__vue_script__$1","__vue_render__$1","class","_t","_v","__vue_staticRenderFns__$1","__vue_inject_styles__$1","inject","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","__vue_normalize__$1","hook","context","originalRender","h","existing","beforeCreate","__vue_create_injector__$1","FileUpload","FileUpload$1","freeze","require$$0"],"mappings":"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","file":"js/chunk-2d0dd016.97a54b57.js","sourcesContent":["/*!\n * Name: vue-upload-component\n * Version: 2.8.20\n * Author: LianYue\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.VueUploadComponent = factory());\n}(this, (function () { 'use strict';\n\n /**\n * Creates a XHR request\n *\n * @param {Object} options\n */\n var createRequest = function createRequest(options) {\n var xhr = new XMLHttpRequest();\n xhr.open(options.method || 'GET', options.url);\n xhr.responseType = 'json';\n if (options.headers) {\n Object.keys(options.headers).forEach(function (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 */\n var sendRequest = function sendRequest(xhr, body) {\n return new Promise(function (resolve, reject) {\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response;\n try {\n response = JSON.parse(xhr.response);\n } catch (err) {\n response = xhr.response;\n }\n resolve(response);\n } else {\n reject(xhr.response);\n }\n };\n xhr.onerror = function () {\n return reject(xhr.response);\n };\n xhr.send(JSON.stringify(body));\n });\n };\n\n /**\n * Sends a XHR request with certain form data\n *\n * @param {XMLHttpRequest} xhr\n * @param {Object} data\n */\n var sendFormRequest = function sendFormRequest(xhr, data) {\n var body = new FormData();\n for (var name in data) {\n body.append(name, data[name]);\n }\n\n return new Promise(function (resolve, reject) {\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 300) {\n var response;\n try {\n response = JSON.parse(xhr.response);\n } catch (err) {\n response = xhr.response;\n }\n resolve(response);\n } else {\n reject(xhr.response);\n }\n };\n xhr.onerror = function () {\n return reject(xhr.response);\n };\n xhr.send(body);\n });\n };\n\n /**\n * Creates and sends XHR request\n *\n * @param {Object} options\n *\n * @returns Promise\n */\n function request (options) {\n var xhr = createRequest(options);\n\n return sendRequest(xhr, options.body);\n }\n\n 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; }; }();\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n var ChunkUploadHandler = function () {\n /**\n * Constructor\n *\n * @param {File} file\n * @param {Object} options\n */\n function ChunkUploadHandler(file, options) {\n _classCallCheck(this, ChunkUploadHandler);\n\n this.file = file;\n this.options = options;\n }\n\n /**\n * Gets the max retries from options\n */\n\n\n _createClass(ChunkUploadHandler, [{\n key: 'createChunks',\n\n\n /**\n * Creates all the chunks in the initial state\n */\n value: function createChunks() {\n this.chunks = [];\n\n var start = 0;\n var 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\n }, {\n key: 'updateFileProgress',\n value: function 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\n }, {\n key: 'pause',\n value: function pause() {\n this.file.active = false;\n this.stopChunks();\n }\n\n /**\n * Stops all the current chunks\n */\n\n }, {\n key: 'stopChunks',\n value: function stopChunks() {\n this.chunksUploading.forEach(function (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\n }, {\n key: 'resume',\n value: function 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\n }, {\n key: 'upload',\n value: function upload() {\n var _this = this;\n\n this.promise = new Promise(function (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\n }, {\n key: 'start',\n value: function start() {\n var _this2 = this;\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.startBody, {\n phase: 'start',\n mime_type: this.fileType,\n size: this.fileSize,\n name: this.fileName\n })\n }).then(function (res) {\n if (res.status !== 'success') {\n _this2.file.response = res;\n return _this2.reject('server');\n }\n\n _this2.sessionId = res.data.session_id;\n _this2.chunkSize = res.data.end_offset;\n\n _this2.createChunks();\n _this2.startChunking();\n }).catch(function (res) {\n _this2.file.response = res;\n _this2.reject('server');\n });\n }\n\n /**\n * Starts to upload chunks\n */\n\n }, {\n key: 'startChunking',\n value: function startChunking() {\n for (var 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\n }, {\n key: 'uploadNextChunk',\n value: function 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\n }, {\n key: 'uploadChunk',\n value: function uploadChunk(chunk) {\n var _this3 = this;\n\n chunk.progress = 0;\n chunk.active = true;\n this.updateFileProgress();\n chunk.xhr = createRequest({\n method: 'POST',\n headers: this.headers,\n url: this.action\n });\n\n chunk.xhr.upload.addEventListener('progress', function (evt) {\n if (evt.lengthComputable) {\n chunk.progress = Math.round(evt.loaded / evt.total * 100);\n }\n }, false);\n\n sendFormRequest(chunk.xhr, Object.assign(this.uploadBody, {\n phase: 'upload',\n session_id: this.sessionId,\n start_offset: chunk.startOffset,\n chunk: chunk.blob\n })).then(function (res) {\n chunk.active = false;\n if (res.status === 'success') {\n chunk.uploaded = true;\n } else {\n if (chunk.retries-- <= 0) {\n _this3.stopChunks();\n return _this3.reject('upload');\n }\n }\n\n _this3.uploadNextChunk();\n }).catch(function () {\n chunk.active = false;\n if (chunk.retries-- <= 0) {\n _this3.stopChunks();\n return _this3.reject('upload');\n }\n\n _this3.uploadNextChunk();\n });\n }\n\n /**\n * Finish phase\n * Sends a request to the backend to finish the process\n */\n\n }, {\n key: 'finish',\n value: function finish() {\n var _this4 = this;\n\n this.updateFileProgress();\n\n request({\n method: 'POST',\n headers: Object.assign({}, this.headers, {\n 'Content-Type': 'application/json'\n }),\n url: this.action,\n body: Object.assign(this.finishBody, {\n phase: 'finish',\n session_id: this.sessionId\n })\n }).then(function (res) {\n _this4.file.response = res;\n if (res.status !== 'success') {\n return _this4.reject('server');\n }\n\n _this4.resolve(res);\n }).catch(function (res) {\n _this4.file.response = res;\n _this4.reject('server');\n });\n }\n }, {\n key: 'maxRetries',\n get: function get() {\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\n }, {\n key: 'maxActiveChunks',\n get: function get() {\n return parseInt(this.options.maxActive);\n }\n\n /**\n * Gets the file type\n */\n\n }, {\n key: 'fileType',\n get: function get() {\n return this.file.type;\n }\n\n /**\n * Gets the file size\n */\n\n }, {\n key: 'fileSize',\n get: function get() {\n return this.file.size;\n }\n\n /**\n * Gets the file name\n */\n\n }, {\n key: 'fileName',\n get: function get() {\n return this.file.name;\n }\n\n /**\n * Gets action (url) to upload the file\n */\n\n }, {\n key: 'action',\n get: function get() {\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\n }, {\n key: 'startBody',\n get: function get() {\n return this.options.startBody || {};\n }\n\n /**\n * Gets the body to be merged when sending the request in upload phase\n */\n\n }, {\n key: 'uploadBody',\n get: function get() {\n return this.options.uploadBody || {};\n }\n\n /**\n * Gets the body to be merged when sending the request in finish phase\n */\n\n }, {\n key: 'finishBody',\n get: function get() {\n return this.options.finishBody || {};\n }\n\n /**\n * Gets the headers of the requests from options\n */\n\n }, {\n key: 'headers',\n get: function get() {\n return this.options.headers || {};\n }\n\n /**\n * Whether it's ready to upload files or not\n */\n\n }, {\n key: 'readyToUpload',\n get: function get() {\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\n }, {\n key: 'progress',\n get: function get() {\n var _this5 = this;\n\n var completedProgress = this.chunksUploaded.length / this.chunks.length * 100;\n var uploadingProgress = this.chunksUploading.reduce(function (progress, chunk) {\n return progress + (chunk.progress | 0) / _this5.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\n }, {\n key: 'chunksToUpload',\n get: function get() {\n return this.chunks.filter(function (chunk) {\n return !chunk.active && !chunk.uploaded;\n });\n }\n\n /**\n * Whether there are chunks to upload or not\n */\n\n }, {\n key: 'hasChunksToUpload',\n get: function get() {\n return this.chunksToUpload.length > 0;\n }\n\n /**\n * Gets all the chunks that are uploading\n */\n\n }, {\n key: 'chunksUploading',\n get: function get() {\n return this.chunks.filter(function (chunk) {\n return !!chunk.xhr && !!chunk.active;\n });\n }\n\n /**\n * Gets all the chunks that have finished uploading\n */\n\n }, {\n key: 'chunksUploaded',\n get: function get() {\n return this.chunks.filter(function (chunk) {\n return !!chunk.uploaded;\n });\n }\n }]);\n\n return ChunkUploadHandler;\n }();\n\n //\n //\n //\n //\n //\n //\n //\n //\n //\n //\n //\n //\n //\n //\n\n var script = {\n methods: {\n change: function change(e) {\n this.$parent.addInputFile(e.target);\n if (e.target.files) {\n e.target.value = '';\n if (e.target.files.length && !/safari/i.test(navigator.userAgent)) {\n e.target.type = '';\n e.target.type = 'file';\n }\n } else {\n // ie9 fix #219\n this.$destroy();\n // eslint-disable-next-line\n new this.constructor({\n parent: this.$parent,\n el: this.$el\n });\n }\n }\n }\n };\n\n /* script */\n var __vue_script__ = script;\n\n /* template */\n var __vue_render__ = function __vue_render__() {\n var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('input', { attrs: { \"type\": \"file\", \"name\": _vm.$parent.name, \"id\": _vm.$parent.inputId || _vm.$parent.name, \"accept\": _vm.$parent.accept, \"capture\": _vm.$parent.capture, \"disabled\": _vm.$parent.disabled, \"webkitdirectory\": _vm.$parent.directory && _vm.$parent.features.directory, \"directory\": _vm.$parent.directory && _vm.$parent.features.directory, \"multiple\": _vm.$parent.multiple && _vm.$parent.features.html5 }, on: { \"change\": _vm.change } });\n };\n var __vue_staticRenderFns__ = [];\n\n /* style */\n var __vue_inject_styles__ = undefined;\n /* scoped */\n var __vue_scope_id__ = undefined;\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = false;\n /* component normalizer */\n function __vue_normalize__(template, style, script$$1, scope, functional, moduleIdentifier, createInjector, createInjectorSSR) {\n var component = (typeof script$$1 === 'function' ? script$$1.options : script$$1) || {};\n\n if (!component.render) {\n component.render = template.render;\n component.staticRenderFns = template.staticRenderFns;\n component._compiled = true;\n\n if (functional) component.functional = true;\n }\n\n component._scopeId = scope;\n\n return component;\n }\n /* style inject */\n function __vue_create_injector__() {\n var head = document.head || document.getElementsByTagName('head')[0];\n var styles = __vue_create_injector__.styles || (__vue_create_injector__.styles = {});\n var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\n return function addStyle(id, css) {\n if (document.querySelector('style[data-vue-ssr-id~=\"' + id + '\"]')) return; // SSR styles are present.\n\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = { ids: [], parts: [], element: undefined });\n\n if (!style.ids.includes(id)) {\n var code = css.source;\n var index = style.ids.length;\n\n style.ids.push(id);\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\n // http://stackoverflow.com/a/26603875\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (isOldIE) {\n style.element = style.element || document.querySelector('style[data-group=' + group + ']');\n }\n\n if (!style.element) {\n var el = style.element = document.createElement('style');\n el.type = 'text/css';\n\n if (css.media) el.setAttribute('media', css.media);\n if (isOldIE) {\n el.setAttribute('data-group', group);\n el.setAttribute('data-next-index', '0');\n }\n\n head.appendChild(el);\n }\n\n if (isOldIE) {\n index = parseInt(style.element.getAttribute('data-next-index'));\n style.element.setAttribute('data-next-index', index + 1);\n }\n\n if (style.element.styleSheet) {\n style.parts.push(code);\n style.element.styleSheet.cssText = style.parts.filter(Boolean).join('\\n');\n } else {\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n };\n }\n /* style inject SSR */\n\n var InputFile = __vue_normalize__({ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, __vue_create_injector__, undefined);\n\n 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; };\n\n 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; };\n\n 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); } }\n\n var CHUNK_DEFAULT_OPTIONS = {\n headers: {},\n action: '',\n minSize: 1048576,\n maxActive: 3,\n maxRetries: 5,\n\n handler: ChunkUploadHandler\n };\n\n var script$1 = {\n components: {\n InputFile: InputFile\n },\n props: {\n inputId: {\n type: String\n },\n\n name: {\n type: String,\n default: 'file'\n },\n\n accept: {\n type: String\n },\n\n capture: {},\n\n disabled: {},\n\n multiple: {\n type: Boolean\n },\n\n maximum: {\n type: Number,\n default: function _default() {\n return this.multiple ? 0 : 1;\n }\n },\n\n addIndex: {\n type: [Boolean, Number]\n },\n\n directory: {\n type: Boolean\n },\n\n postAction: {\n type: String\n },\n\n putAction: {\n type: String\n },\n\n customAction: {\n type: Function\n },\n\n headers: {\n type: Object,\n default: Object\n },\n\n data: {\n type: Object,\n default: Object\n },\n\n timeout: {\n type: Number,\n default: 0\n },\n\n drop: {\n default: false\n },\n\n dropDirectory: {\n type: Boolean,\n default: true\n },\n\n size: {\n type: Number,\n default: 0\n },\n\n extensions: {\n default: Array\n },\n\n value: {\n type: Array,\n default: Array\n },\n\n thread: {\n type: Number,\n default: 1\n },\n\n // Chunk upload enabled\n chunkEnabled: {\n type: Boolean,\n default: false\n },\n\n // Chunk upload properties\n chunk: {\n type: Object,\n default: function _default() {\n return CHUNK_DEFAULT_OPTIONS;\n }\n }\n },\n\n data: function data() {\n return {\n files: this.value,\n features: {\n html5: true,\n directory: false,\n drag: false\n },\n\n active: false,\n dropActive: false,\n\n uploading: 0,\n\n destroy: false\n };\n },\n\n\n /**\n * mounted\n * @return {[type]} [description]\n */\n mounted: function mounted() {\n var input = document.createElement('input');\n input.type = 'file';\n input.multiple = true;\n\n // html5 特征\n if (window.FormData && input.files) {\n // 上传目录特征\n if (typeof input.webkitdirectory === 'boolean' || typeof input.directory === 'boolean') {\n this.features.directory = true;\n }\n\n // 拖拽特征\n if (this.features.html5 && typeof input.ondrop !== 'undefined') {\n this.features.drop = true;\n }\n } else {\n this.features.html5 = false;\n }\n\n // files 定位缓存\n this.maps = {};\n if (this.files) {\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n this.maps[file.id] = file;\n }\n }\n\n this.$nextTick(function () {\n\n // 更新下父级\n if (this.$parent) {\n this.$parent.$forceUpdate();\n }\n\n // 拖拽渲染\n this.watchDrop(this.drop);\n });\n },\n\n\n /**\n * beforeDestroy\n * @return {[type]} [description]\n */\n beforeDestroy: function beforeDestroy() {\n // 已销毁\n this.destroy = true;\n\n // 设置成不激活\n this.active = false;\n },\n\n\n computed: {\n /**\n * uploading 正在上传的线程\n * @return {[type]} [description]\n */\n\n /**\n * uploaded 文件列表是否全部已上传\n * @return {[type]} [description]\n */\n uploaded: function uploaded() {\n var file = void 0;\n for (var i = 0; i < this.files.length; i++) {\n file = this.files[i];\n if (file.fileObject && !file.error && !file.success) {\n return false;\n }\n }\n return true;\n },\n chunkOptions: function chunkOptions() {\n return Object.assign(CHUNK_DEFAULT_OPTIONS, this.chunk);\n },\n className: function className() {\n 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, this.disabled ? 'file-uploads-disabled' : undefined];\n }\n },\n\n watch: {\n active: function active(_active) {\n this.watchActive(_active);\n },\n dropActive: function dropActive() {\n if (this.$parent) {\n this.$parent.$forceUpdate();\n }\n },\n drop: function drop(value) {\n this.watchDrop(value);\n },\n value: function value(files) {\n if (this.files === files) {\n return;\n }\n this.files = files;\n\n var oldMaps = this.maps;\n\n // 重写 maps 缓存\n this.maps = {};\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n this.maps[file.id] = file;\n }\n\n // add, update\n for (var key in this.maps) {\n var newFile = this.maps[key];\n var oldFile = oldMaps[key];\n if (newFile !== oldFile) {\n this.emitFile(newFile, oldFile);\n }\n }\n\n // delete\n for (var _key in oldMaps) {\n if (!this.maps[_key]) {\n this.emitFile(undefined, oldMaps[_key]);\n }\n }\n }\n },\n\n methods: {\n\n // 清空\n clear: function clear() {\n if (this.files.length) {\n var files = this.files;\n this.files = [];\n\n // 定位\n this.maps = {};\n\n // 事件\n this.emitInput();\n for (var i = 0; i < files.length; i++) {\n this.emitFile(undefined, files[i]);\n }\n }\n return true;\n },\n\n\n // 选择\n get: function get(id) {\n if (!id) {\n return false;\n }\n\n if ((typeof id === 'undefined' ? 'undefined' : _typeof(id)) === 'object') {\n return this.maps[id.id] || false;\n }\n\n return this.maps[id] || false;\n },\n\n\n // 添加\n add: function add(_files) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.addIndex;\n\n var files = _files;\n var isArray = files instanceof Array;\n\n // 不是数组整理成数组\n if (!isArray) {\n files = [files];\n }\n\n // 遍历规范对象\n var addFiles = [];\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n if (this.features.html5 && file instanceof Blob) {\n file = {\n file: file,\n size: file.size,\n name: file.webkitRelativePath || file.relativePath || file.name || 'unknown',\n type: file.type\n };\n }\n var fileObject = false;\n if (file.fileObject === false) ; else if (file.fileObject) {\n fileObject = true;\n } else if (typeof Element !== 'undefined' && file.el instanceof Element) {\n fileObject = true;\n } else if (typeof Blob !== 'undefined' && file.file instanceof Blob) {\n fileObject = true;\n }\n if (fileObject) {\n file = _extends({\n fileObject: true,\n size: -1,\n name: 'Filename',\n type: '',\n active: false,\n error: '',\n success: false,\n putAction: this.putAction,\n postAction: this.postAction,\n timeout: this.timeout\n }, file, {\n response: {},\n\n progress: '0.00', // 只读\n speed: 0 // 只读\n // xhr: false, // 只读\n // iframe: false, // 只读\n });\n\n file.data = _extends({}, this.data, file.data ? file.data : {});\n\n file.headers = _extends({}, this.headers, file.headers ? file.headers : {});\n }\n\n // 必须包含 id\n if (!file.id) {\n file.id = Math.random().toString(36).substr(2);\n }\n\n if (this.emitFilter(file, undefined)) {\n continue;\n }\n\n // 最大数量限制\n if (this.maximum > 1 && addFiles.length + this.files.length >= this.maximum) {\n break;\n }\n\n addFiles.push(file);\n\n // 最大数量限制\n if (this.maximum === 1) {\n break;\n }\n }\n\n // 没有文件\n if (!addFiles.length) {\n return false;\n }\n\n // 如果是 1 清空\n if (this.maximum === 1) {\n this.clear();\n }\n\n // 添加进去 files\n var newFiles = void 0;\n if (index === true || index === 0) {\n newFiles = addFiles.concat(this.files);\n } else if (index) {\n var _newFiles;\n\n newFiles = this.files.concat([]);\n (_newFiles = newFiles).splice.apply(_newFiles, [index, 0].concat(addFiles));\n } else {\n newFiles = this.files.concat(addFiles);\n }\n\n this.files = newFiles;\n\n // 定位\n for (var _i = 0; _i < addFiles.length; _i++) {\n var _file2 = addFiles[_i];\n this.maps[_file2.id] = _file2;\n }\n\n // 事件\n this.emitInput();\n for (var _i2 = 0; _i2 < addFiles.length; _i2++) {\n this.emitFile(addFiles[_i2], undefined);\n }\n\n return isArray ? addFiles : addFiles[0];\n },\n\n\n // 添加表单文件\n addInputFile: function addInputFile(el) {\n var files = [];\n if (el.files) {\n for (var i = 0; i < el.files.length; i++) {\n var file = el.files[i];\n files.push({\n size: file.size,\n name: file.webkitRelativePath || file.relativePath || file.name,\n type: file.type,\n file: file\n });\n }\n } else {\n var names = el.value.replace(/\\\\/g, '/').split('/');\n delete el.__vuex__;\n files.push({\n name: names[names.length - 1],\n el: el\n });\n }\n return this.add(files);\n },\n\n\n // 添加 DataTransfer\n addDataTransfer: function addDataTransfer(dataTransfer) {\n var _this = this;\n\n var files = [];\n if (dataTransfer.items && dataTransfer.items.length) {\n var items = [];\n for (var i = 0; i < dataTransfer.items.length; i++) {\n var item = dataTransfer.items[i];\n if (item.getAsEntry) {\n item = item.getAsEntry() || item.getAsFile();\n } else if (item.webkitGetAsEntry) {\n item = item.webkitGetAsEntry() || item.getAsFile();\n } else {\n item = item.getAsFile();\n }\n if (item) {\n items.push(item);\n }\n }\n\n return new Promise(function (resolve, reject) {\n var forEach = function forEach(i) {\n var item = items[i];\n // 结束 文件数量大于 最大数量\n if (!item || _this.maximum > 0 && files.length >= _this.maximum) {\n return resolve(_this.add(files));\n }\n _this.getEntry(item).then(function (results) {\n files.push.apply(files, _toConsumableArray(results));\n forEach(i + 1);\n });\n };\n forEach(0);\n });\n }\n\n if (dataTransfer.files.length) {\n for (var _i3 = 0; _i3 < dataTransfer.files.length; _i3++) {\n files.push(dataTransfer.files[_i3]);\n if (this.maximum > 0 && files.length >= this.maximum) {\n break;\n }\n }\n return Promise.resolve(this.add(files));\n }\n\n return Promise.resolve([]);\n },\n\n\n // 获得 entry\n getEntry: function getEntry(entry) {\n var _this2 = this;\n\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return new Promise(function (resolve, reject) {\n if (entry.isFile) {\n entry.file(function (file) {\n resolve([{\n size: file.size,\n name: path + file.name,\n type: file.type,\n file: file\n }]);\n });\n } else if (entry.isDirectory && _this2.dropDirectory) {\n var files = [];\n var dirReader = entry.createReader();\n var readEntries = function readEntries() {\n dirReader.readEntries(function (entries) {\n var forEach = function forEach(i) {\n if (!entries[i] && i === 0 || _this2.maximum > 0 && files.length >= _this2.maximum) {\n return resolve(files);\n }\n if (!entries[i]) {\n return readEntries();\n }\n _this2.getEntry(entries[i], path + entry.name + '/').then(function (results) {\n files.push.apply(files, _toConsumableArray(results));\n forEach(i + 1);\n });\n };\n forEach(0);\n });\n };\n readEntries();\n } else {\n resolve([]);\n }\n });\n },\n replace: function replace(id1, id2) {\n var file1 = this.get(id1);\n var file2 = this.get(id2);\n if (!file1 || !file2 || file1 === file2) {\n return false;\n }\n var files = this.files.concat([]);\n var index1 = files.indexOf(file1);\n var index2 = files.indexOf(file2);\n if (index1 === -1 || index2 === -1) {\n return false;\n }\n files[index1] = file2;\n files[index2] = file1;\n this.files = files;\n this.emitInput();\n return true;\n },\n\n\n // 移除\n remove: function remove(id) {\n var file = this.get(id);\n if (file) {\n if (this.emitFilter(undefined, file)) {\n return false;\n }\n var files = this.files.concat([]);\n var index = files.indexOf(file);\n if (index === -1) {\n console.error('remove', file);\n return false;\n }\n files.splice(index, 1);\n this.files = files;\n\n // 定位\n delete this.maps[file.id];\n\n // 事件\n this.emitInput();\n this.emitFile(undefined, file);\n }\n return file;\n },\n\n\n // 更新\n update: function update(id, data) {\n var file = this.get(id);\n if (file) {\n var newFile = _extends({}, file, data);\n // 停用必须加上错误\n if (file.fileObject && file.active && !newFile.active && !newFile.error && !newFile.success) {\n newFile.error = 'abort';\n }\n\n if (this.emitFilter(newFile, file)) {\n return false;\n }\n\n var files = this.files.concat([]);\n var index = files.indexOf(file);\n if (index === -1) {\n console.error('update', file);\n return false;\n }\n files.splice(index, 1, newFile);\n this.files = files;\n\n // 删除 旧定位 写入 新定位 (已便支持修改id)\n delete this.maps[file.id];\n this.maps[newFile.id] = newFile;\n\n // 事件\n this.emitInput();\n this.emitFile(newFile, file);\n return newFile;\n }\n return false;\n },\n\n\n // 预处理 事件 过滤器\n emitFilter: function emitFilter(newFile, oldFile) {\n var isPrevent = false;\n this.$emit('input-filter', newFile, oldFile, function () {\n isPrevent = true;\n return isPrevent;\n });\n return isPrevent;\n },\n\n\n // 处理后 事件 分发\n emitFile: function emitFile(newFile, oldFile) {\n this.$emit('input-file', newFile, oldFile);\n if (newFile && newFile.fileObject && newFile.active && (!oldFile || !oldFile.active)) {\n this.uploading++;\n // 激活\n this.$nextTick(function () {\n var _this3 = this;\n\n setTimeout(function () {\n _this3.upload(newFile).then(function () {\n // eslint-disable-next-line\n newFile = _this3.get(newFile);\n if (newFile && newFile.fileObject) {\n _this3.update(newFile, {\n active: false,\n success: !newFile.error\n });\n }\n }).catch(function (e) {\n _this3.update(newFile, {\n active: false,\n success: false,\n error: e.code || e.error || e.message || e\n });\n });\n }, parseInt(Math.random() * 50 + 50, 10));\n });\n } else if ((!newFile || !newFile.fileObject || !newFile.active) && oldFile && oldFile.fileObject && oldFile.active) {\n // 停止\n this.uploading--;\n }\n\n // 自动延续激活\n if (this.active && (Boolean(newFile) !== Boolean(oldFile) || newFile.active !== oldFile.active)) {\n this.watchActive(true);\n }\n },\n emitInput: function emitInput() {\n this.$emit('input', this.files);\n },\n\n\n // 上传\n upload: function upload(id) {\n var file = this.get(id);\n\n // 被删除\n if (!file) {\n return Promise.reject('not_exists');\n }\n\n // 不是文件对象\n if (!file.fileObject) {\n return Promise.reject('file_object');\n }\n\n // 有错误直接响应\n if (file.error) {\n return Promise.reject(file.error);\n }\n\n // 已完成直接响应\n if (file.success) {\n return Promise.resolve(file);\n }\n\n // 后缀\n var extensions = this.extensions;\n if (extensions && (extensions.length || typeof extensions.length === 'undefined')) {\n if ((typeof extensions === 'undefined' ? 'undefined' : _typeof(extensions)) !== 'object' || !(extensions instanceof RegExp)) {\n if (typeof extensions === 'string') {\n extensions = extensions.split(',').map(function (value) {\n return value.trim();\n }).filter(function (value) {\n return value;\n });\n }\n extensions = new RegExp('\\\\.(' + extensions.join('|').replace(/\\./g, '\\\\.') + ')$', 'i');\n }\n if (file.name.search(extensions) === -1) {\n return Promise.reject('extension');\n }\n }\n\n // 大小\n if (this.size > 0 && file.size >= 0 && file.size > this.size) {\n return Promise.reject('size');\n }\n\n if (this.customAction) {\n return this.customAction(file, this);\n }\n\n if (this.features.html5) {\n if (this.shouldUseChunkUpload(file)) {\n return this.uploadChunk(file);\n }\n if (file.putAction) {\n return this.uploadPut(file);\n }\n if (file.postAction) {\n return this.uploadHtml5(file);\n }\n }\n if (file.postAction) {\n return this.uploadHtml4(file);\n }\n return Promise.reject('No action configured');\n },\n\n\n /**\n * Whether this file should be uploaded using chunk upload or not\n *\n * @param Object file\n */\n shouldUseChunkUpload: function shouldUseChunkUpload(file) {\n return this.chunkEnabled && !!this.chunkOptions.handler && file.size > this.chunkOptions.minSize;\n },\n\n\n /**\n * Upload a file using Chunk method\n *\n * @param File file\n */\n uploadChunk: function uploadChunk(file) {\n var HandlerClass = this.chunkOptions.handler;\n file.chunk = new HandlerClass(file, this.chunkOptions);\n\n return file.chunk.upload();\n },\n uploadPut: function uploadPut(file) {\n var querys = [];\n var value = void 0;\n for (var key in file.data) {\n value = file.data[key];\n if (value !== null && value !== undefined) {\n querys.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n }\n }\n var queryString = querys.length ? (file.putAction.indexOf('?') === -1 ? '?' : '&') + querys.join('&') : '';\n var xhr = new XMLHttpRequest();\n xhr.open('PUT', file.putAction + queryString);\n return this.uploadXhr(xhr, file, file.file);\n },\n uploadHtml5: function uploadHtml5(file) {\n var form = new window.FormData();\n var value = void 0;\n for (var key in file.data) {\n value = file.data[key];\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') {\n if (value instanceof File) {\n form.append(key, value, value.name);\n } else {\n form.append(key, JSON.stringify(value));\n }\n } else if (value !== null && value !== undefined) {\n form.append(key, value);\n }\n }\n form.append(this.name, file.file, file.file.filename || file.name);\n var xhr = new XMLHttpRequest();\n xhr.open('POST', file.postAction);\n return this.uploadXhr(xhr, file, form);\n },\n uploadXhr: function uploadXhr(xhr, _file, body) {\n var _this4 = this;\n\n var file = _file;\n var speedTime = 0;\n var speedLoaded = 0;\n\n // 进度条\n xhr.upload.onprogress = function (e) {\n // 还未开始上传 已删除 未激活\n file = _this4.get(file);\n if (!e.lengthComputable || !file || !file.fileObject || !file.active) {\n return;\n }\n\n // 进度 速度 每秒更新一次\n var speedTime2 = Math.round(Date.now() / 1000);\n if (speedTime2 === speedTime) {\n return;\n }\n speedTime = speedTime2;\n\n file = _this4.update(file, {\n progress: (e.loaded / e.total * 100).toFixed(2),\n speed: e.loaded - speedLoaded\n });\n speedLoaded = e.loaded;\n };\n\n // 检查激活状态\n var interval = setInterval(function () {\n file = _this4.get(file);\n if (file && file.fileObject && !file.success && !file.error && file.active) {\n return;\n }\n\n if (interval) {\n clearInterval(interval);\n interval = false;\n }\n\n try {\n xhr.abort();\n xhr.timeout = 1;\n } catch (e) {}\n }, 100);\n\n return new Promise(function (resolve, reject) {\n var complete = void 0;\n var fn = function fn(e) {\n // 已经处理过了\n if (complete) {\n return;\n }\n complete = true;\n if (interval) {\n clearInterval(interval);\n interval = false;\n }\n\n file = _this4.get(file);\n\n // 不存在直接响应\n if (!file) {\n return reject('not_exists');\n }\n\n // 不是文件对象\n if (!file.fileObject) {\n return reject('file_object');\n }\n\n // 有错误自动响应\n if (file.error) {\n return reject(file.error);\n }\n\n // 未激活\n if (!file.active) {\n return reject('abort');\n }\n\n // 已完成 直接相应\n if (file.success) {\n return resolve(file);\n }\n\n var data = {};\n\n switch (e.type) {\n case 'timeout':\n case 'abort':\n data.error = e.type;\n break;\n case 'error':\n if (!xhr.status) {\n data.error = 'network';\n } else if (xhr.status >= 500) {\n data.error = 'server';\n } else if (xhr.status >= 400) {\n data.error = 'denied';\n }\n break;\n default:\n if (xhr.status >= 500) {\n data.error = 'server';\n } else if (xhr.status >= 400) {\n data.error = 'denied';\n } else {\n data.progress = '100.00';\n }\n }\n\n if (xhr.responseText) {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (contentType && contentType.indexOf('/json') !== -1) {\n data.response = JSON.parse(xhr.responseText);\n } else {\n data.response = xhr.responseText;\n }\n }\n\n // 更新\n file = _this4.update(file, data);\n\n // 相应错误\n if (file.error) {\n return reject(file.error);\n }\n\n // 响应\n return resolve(file);\n };\n\n // 事件\n xhr.onload = fn;\n xhr.onerror = fn;\n xhr.onabort = fn;\n xhr.ontimeout = fn;\n\n // 超时\n if (file.timeout) {\n xhr.timeout = file.timeout;\n }\n\n // headers\n for (var key in file.headers) {\n xhr.setRequestHeader(key, file.headers[key]);\n }\n\n // 更新 xhr\n file = _this4.update(file, { xhr: xhr });\n\n // 开始上传\n xhr.send(body);\n });\n },\n uploadHtml4: function uploadHtml4(_file) {\n var _this5 = this;\n\n var file = _file;\n var onKeydown = function onKeydown(e) {\n if (e.keyCode === 27) {\n e.preventDefault();\n }\n };\n\n var iframe = document.createElement('iframe');\n iframe.id = 'upload-iframe-' + file.id;\n iframe.name = 'upload-iframe-' + file.id;\n iframe.src = 'about:blank';\n iframe.setAttribute('style', 'width:1px;height:1px;top:-999em;position:absolute; margin-top:-999em;');\n\n var form = document.createElement('form');\n\n form.action = file.postAction;\n\n form.name = 'upload-form-' + file.id;\n\n form.setAttribute('method', 'POST');\n form.setAttribute('target', 'upload-iframe-' + file.id);\n form.setAttribute('enctype', 'multipart/form-data');\n\n var value = void 0;\n var input = void 0;\n for (var key in file.data) {\n value = file.data[key];\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString !== 'function') {\n value = JSON.stringify(value);\n }\n if (value !== null && value !== undefined) {\n input = document.createElement('input');\n input.type = 'hidden';\n input.name = key;\n input.value = value;\n form.appendChild(input);\n }\n }\n form.appendChild(file.el);\n\n document.body.appendChild(iframe).appendChild(form);\n\n var getResponseData = function getResponseData() {\n var doc = void 0;\n try {\n if (iframe.contentWindow) {\n doc = iframe.contentWindow.document;\n }\n } catch (err) {}\n if (!doc) {\n try {\n doc = iframe.contentDocument ? iframe.contentDocument : iframe.document;\n } catch (err) {\n doc = iframe.document;\n }\n }\n if (doc && doc.body) {\n return doc.body.innerHTML;\n }\n return null;\n };\n\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n file = _this5.update(file, { iframe: iframe });\n\n // 不存在\n if (!file) {\n return reject('not_exists');\n }\n\n // 定时检查\n var interval = setInterval(function () {\n file = _this5.get(file);\n if (file && file.fileObject && !file.success && !file.error && file.active) {\n return;\n }\n\n if (interval) {\n clearInterval(interval);\n interval = false;\n }\n\n iframe.onabort({ type: file ? 'abort' : 'not_exists' });\n }, 100);\n\n var complete = void 0;\n var fn = function fn(e) {\n // 已经处理过了\n if (complete) {\n return;\n }\n complete = true;\n\n if (interval) {\n clearInterval(interval);\n interval = false;\n }\n\n // 关闭 esc 事件\n document.body.removeEventListener('keydown', onKeydown);\n\n file = _this5.get(file);\n\n // 不存在直接响应\n if (!file) {\n return reject('not_exists');\n }\n\n // 不是文件对象\n if (!file.fileObject) {\n return reject('file_object');\n }\n\n // 有错误自动响应\n if (file.error) {\n return reject(file.error);\n }\n\n // 未激活\n if (!file.active) {\n return reject('abort');\n }\n\n // 已完成 直接相应\n if (file.success) {\n return resolve(file);\n }\n\n var response = getResponseData();\n var data = {};\n switch (e.type) {\n case 'abort':\n data.error = 'abort';\n break;\n case 'error':\n if (file.error) {\n data.error = file.error;\n } else if (response === null) {\n data.error = 'network';\n } else {\n data.error = 'denied';\n }\n break;\n default:\n if (file.error) {\n data.error = file.error;\n } else if (data === null) {\n data.error = 'network';\n } else {\n data.progress = '100.00';\n }\n }\n\n if (response !== null) {\n if (response && response.substr(0, 1) === '{' && response.substr(response.length - 1, 1) === '}') {\n try {\n response = JSON.parse(response);\n } catch (err) {}\n }\n data.response = response;\n }\n\n // 更新\n file = _this5.update(file, data);\n\n if (file.error) {\n return reject(file.error);\n }\n\n // 响应\n return resolve(file);\n };\n\n // 添加事件\n iframe.onload = fn;\n iframe.onerror = fn;\n iframe.onabort = fn;\n\n // 禁止 esc 键\n document.body.addEventListener('keydown', onKeydown);\n\n // 提交\n form.submit();\n }, 50);\n }).then(function (res) {\n iframe.parentNode && iframe.parentNode.removeChild(iframe);\n return res;\n }).catch(function (res) {\n iframe.parentNode && iframe.parentNode.removeChild(iframe);\n return res;\n });\n },\n watchActive: function watchActive(active) {\n var file = void 0;\n var index = 0;\n while (file = this.files[index]) {\n index++;\n if (!file.fileObject) ; else if (active && !this.destroy) {\n if (this.uploading >= this.thread || this.uploading && !this.features.html5) {\n break;\n }\n if (!file.active && !file.error && !file.success) {\n this.update(file, { active: true });\n }\n } else {\n if (file.active) {\n this.update(file, { active: false });\n }\n }\n }\n if (this.uploading === 0) {\n this.active = false;\n }\n },\n watchDrop: function watchDrop(_el) {\n var el = _el;\n if (!this.features.drop) {\n return;\n }\n\n // 移除挂载\n if (this.dropElement) {\n try {\n document.removeEventListener('dragenter', this.onDragenter, false);\n document.removeEventListener('dragleave', this.onDragleave, false);\n document.removeEventListener('drop', this.onDocumentDrop, false);\n this.dropElement.removeEventListener('dragover', this.onDragover, false);\n this.dropElement.removeEventListener('drop', this.onDrop, false);\n } catch (e) {}\n }\n\n if (!el) {\n el = false;\n } else if (typeof el === 'string') {\n el = document.querySelector(el) || this.$root.$el.querySelector(el);\n } else if (el === true) {\n el = this.$parent.$el;\n }\n\n this.dropElement = el;\n\n if (this.dropElement) {\n document.addEventListener('dragenter', this.onDragenter, false);\n document.addEventListener('dragleave', this.onDragleave, false);\n document.addEventListener('drop', this.onDocumentDrop, false);\n this.dropElement.addEventListener('dragover', this.onDragover, false);\n this.dropElement.addEventListener('drop', this.onDrop, false);\n }\n },\n onDragenter: function onDragenter(e) {\n e.preventDefault();\n if (this.dropActive) {\n return;\n }\n if (!e.dataTransfer) {\n return;\n }\n var dt = e.dataTransfer;\n if (dt.files && dt.files.length) {\n this.dropActive = true;\n } else if (!dt.types) {\n this.dropActive = true;\n } else if (dt.types.indexOf && dt.types.indexOf('Files') !== -1) {\n this.dropActive = true;\n } else if (dt.types.contains && dt.types.contains('Files')) {\n this.dropActive = true;\n }\n },\n onDragleave: function onDragleave(e) {\n e.preventDefault();\n if (!this.dropActive) {\n return;\n }\n if (e.target.nodeName === 'HTML' || e.target === e.explicitOriginalTarget || !e.fromElement && (e.clientX <= 0 || e.clientY <= 0 || e.clientX >= window.innerWidth || e.clientY >= window.innerHeight)) {\n this.dropActive = false;\n }\n },\n onDragover: function onDragover(e) {\n e.preventDefault();\n },\n onDocumentDrop: function onDocumentDrop() {\n this.dropActive = false;\n },\n onDrop: function onDrop(e) {\n e.preventDefault();\n this.addDataTransfer(e.dataTransfer);\n }\n }\n };\n\n /* script */\n var __vue_script__$1 = script$1;\n\n /* template */\n var __vue_render__$1 = function __vue_render__() {\n var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('span', { class: _vm.className }, [_vm._t(\"default\"), _vm._v(\" \"), _c('label', { attrs: { \"for\": _vm.inputId || _vm.name } }), _vm._v(\" \"), _c('input-file')], 2);\n };\n var __vue_staticRenderFns__$1 = [];\n\n /* style */\n var __vue_inject_styles__$1 = function (inject) {\n if (!inject) return;\n inject(\"data-v-595958af_0\", { source: \"\\n.file-uploads{overflow:hidden;position:relative;text-align:center;display:inline-block\\n}\\n.file-uploads.file-uploads-html4 input,.file-uploads.file-uploads-html5 label{background:#fff;opacity:0;font-size:20em;z-index:1;top:0;left:0;right:0;bottom:0;position:absolute;width:100%;height:100%\\n}\\n.file-uploads.file-uploads-html4 label,.file-uploads.file-uploads-html5 input{background:rgba(255,255,255,0);overflow:hidden;position:fixed;width:1px;height:1px;z-index:-1;opacity:0\\n}\", map: undefined, media: undefined });\n };\n /* scoped */\n var __vue_scope_id__$1 = undefined;\n /* module identifier */\n var __vue_module_identifier__$1 = undefined;\n /* functional template */\n var __vue_is_functional_template__$1 = false;\n /* component normalizer */\n function __vue_normalize__$1(template, style, script, scope, functional, moduleIdentifier, createInjector, createInjectorSSR) {\n var component = (typeof script === 'function' ? script.options : script) || {};\n\n if (!component.render) {\n component.render = template.render;\n component.staticRenderFns = template.staticRenderFns;\n component._compiled = true;\n\n if (functional) component.functional = true;\n }\n\n component._scopeId = scope;\n\n {\n var hook = void 0;\n if (style) {\n hook = function hook(context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook !== undefined) {\n if (component.functional) {\n // register for functional component in vue file\n var originalRender = component.render;\n component.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = component.beforeCreate;\n component.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n }\n\n return component;\n }\n /* style inject */\n function __vue_create_injector__$1() {\n var head = document.head || document.getElementsByTagName('head')[0];\n var styles = __vue_create_injector__$1.styles || (__vue_create_injector__$1.styles = {});\n var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\n return function addStyle(id, css) {\n if (document.querySelector('style[data-vue-ssr-id~=\"' + id + '\"]')) return; // SSR styles are present.\n\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = { ids: [], parts: [], element: undefined });\n\n if (!style.ids.includes(id)) {\n var code = css.source;\n var index = style.ids.length;\n\n style.ids.push(id);\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\n // http://stackoverflow.com/a/26603875\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (isOldIE) {\n style.element = style.element || document.querySelector('style[data-group=' + group + ']');\n }\n\n if (!style.element) {\n var el = style.element = document.createElement('style');\n el.type = 'text/css';\n\n if (css.media) el.setAttribute('media', css.media);\n if (isOldIE) {\n el.setAttribute('data-group', group);\n el.setAttribute('data-next-index', '0');\n }\n\n head.appendChild(el);\n }\n\n if (isOldIE) {\n index = parseInt(style.element.getAttribute('data-next-index'));\n style.element.setAttribute('data-next-index', index + 1);\n }\n\n if (style.element.styleSheet) {\n style.parts.push(code);\n style.element.styleSheet.cssText = style.parts.filter(Boolean).join('\\n');\n } else {\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n };\n }\n /* style inject SSR */\n\n var FileUpload = __vue_normalize__$1({ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 }, __vue_inject_styles__$1, __vue_script__$1, __vue_scope_id__$1, __vue_is_functional_template__$1, __vue_module_identifier__$1, __vue_create_injector__$1, undefined);\n\n var FileUpload$1 = /*#__PURE__*/Object.freeze({\n default: FileUpload\n });\n\n var require$$0 = ( FileUpload$1 && FileUpload ) || FileUpload$1;\n\n var src = require$$0;\n\n return src;\n\n})));\n//# sourceMappingURL=vue-upload-component.js.map\n"],"sourceRoot":""}