{"version":3,"sources":["webpack:////home/git/gitlab/node_modules/dropzone/dist/dropzone.js","webpack:///./lib/mousetrap.js","webpack:////home/git/gitlab/node_modules/mousetrap/plugins/pause/mousetrap-pause.js","webpack:///./behaviors/shortcuts/shortcuts_toggle.js"],"names":["Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","noop","without","__slice","slice","__hasProp","hasOwnProperty","prototype","addEventListener","on","event","fn","this","_callbacks","push","emit","args","callbacks","_i","_len","arguments","length","call","apply","removeListener","off","removeAllListeners","removeEventListener","i","splice","_super","extend","resolveOption","element","options","elementOptions","fallback","_ref","version","defaultOptions","previewTemplate","replace","clickableElements","listeners","files","document","querySelector","nodeType","Error","dropzone","instances","optionsForElement","forceFallback","isBrowserSupported","url","getAttribute","acceptedFiles","acceptedMimeTypes","method","toUpperCase","getExistingFallback","parentNode","removeChild","previewsContainer","getElement","clickable","getElements","init","child","parent","key","ctor","constructor","__super__","__extends","events","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","maxFiles","params","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","file","done","messageElement","span","className","getElementsByTagName","test","createElement","appendChild","textContent","innerText","getFallbackForm","resize","info","srcRatio","trgRatio","srcX","srcY","srcWidth","width","srcHeight","height","optWidth","optHeight","trgHeight","trgWidth","drop","e","classList","remove","dragstart","dragend","dragenter","add","dragover","dragleave","paste","reset","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","_results","_this","previewElement","trim","querySelectorAll","name","innerHTML","filesize","size","_removeLink","preventDefault","stopPropagation","status","UPLOADING","confirm","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","alt","src","setTimeout","error","message","node","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","nodeName","value","style","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","object","objects","target","val","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","eventName","noPropagation","setupHiddenFileInput","tagName","setAttribute","contains","hiddenFileInput","visibility","position","top","left","addFile","URL","window","webkitURL","updateTotalUploadProgress","returnValue","efct","dataTransfer","effectAllowed","_error","dropEffect","forEach","clickableElement","evt","elementInside","click","enable","destroy","disable","removeAllFiles","indexOf","totalBytes","totalBytesSent","totalUploadProgress","upload","total","_getParamName","n","existingFallback","fields","fieldsString","form","getFallback","elements","el","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","selectedSize","selectedUnit","unit","units","Math","pow","round","items","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","entry","item","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","path","dirReader","entriesReader","createReader","entries","substring","fullPath","readEntries","console","log","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","type","match","_processThumbnailQueue","createThumbnail","shift","cancelIfNecessary","callback","fileReader","FileReader","onload","result","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","canvas","ctx","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","onerror","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","xhr","groupedFile","groupedFiles","CANCELED","abort","option","uploadFile","formData","handleError","headerName","headerValue","headers","input","inputName","inputType","response","updateProgress","_l","_len3","_m","_ref4","_ref5","XMLHttpRequest","open","allFilesFinished","loaded","readyState","responseText","getResponseHeader","JSON","parse","_finished","onprogress","setRequestHeader","FormData","append","hasAttribute","selected","toLowerCase","checked","submitRequest","send","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","Blob","navigator","userAgent","list","rejectedItem","str","charAt","string","div","childNodes","container","els","Array","question","rejected","baseMimeType","mimeType","validType","split","jQuery","each","module","exports","ACCEPTED","PROCESSING","data","ey","ih","py","ratio","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sw","sh","dx","dy","dw","dh","vertSquashRatio","win","doc","poll","pre","rem","root","documentElement","doScroll","createEventObject","frameElement","_autoDiscoverFunction","additionalStopCallbacks","originalStopCallback","Mousetrap","stopCallback","combo","undefined","addStopCallback","unshift","MOUSETRAP_COPY_KEYBOARD_SHORTCUT","_originalStopCallback","paused","pause","unpause","shouldDisableShortcuts","gon","keyboard_shortcuts_enabled","disableShortcuts","localStorage","setItem"],"mappings":"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","file":"commons-pages.admin.abuse_reports.show-pages.admin.topics.edit-pages.admin.topics.new-pages.groups.i-a566a357.11ff58b4.chunk.js","sourcesContent":["\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n(function() {\n var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\n __slice = [].slice,\n __hasProp = {}.hasOwnProperty,\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\n noop = function() {};\n\n Emitter = (function() {\n function Emitter() {}\n\n Emitter.prototype.addEventListener = Emitter.prototype.on;\n\n Emitter.prototype.on = function(event, fn) {\n this._callbacks = this._callbacks || {};\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n this._callbacks[event].push(fn);\n return this;\n };\n\n Emitter.prototype.emit = function() {\n var args, callback, callbacks, event, _i, _len;\n event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n this._callbacks = this._callbacks || {};\n callbacks = this._callbacks[event];\n if (callbacks) {\n for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\n callback = callbacks[_i];\n callback.apply(this, args);\n }\n }\n return this;\n };\n\n Emitter.prototype.removeListener = Emitter.prototype.off;\n\n Emitter.prototype.removeAllListeners = Emitter.prototype.off;\n\n Emitter.prototype.removeEventListener = Emitter.prototype.off;\n\n Emitter.prototype.off = function(event, fn) {\n var callback, callbacks, i, _i, _len;\n if (!this._callbacks || arguments.length === 0) {\n this._callbacks = {};\n return this;\n }\n callbacks = this._callbacks[event];\n if (!callbacks) {\n return this;\n }\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n }\n for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\n callback = callbacks[i];\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n return this;\n };\n\n return Emitter;\n\n })();\n\n Dropzone = (function(_super) {\n var extend, resolveOption;\n\n __extends(Dropzone, _super);\n\n Dropzone.prototype.Emitter = Emitter;\n\n\n /*\n This is a list of all available events you can register on a dropzone object.\n \n You can register an event handler like this:\n \n dropzone.on(\"dragEnter\", function() { });\n */\n\n Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n\n Dropzone.prototype.defaultOptions = {\n url: null,\n method: \"post\",\n withCredentials: false,\n parallelUploads: 2,\n uploadMultiple: false,\n maxFilesize: 256,\n paramName: \"file\",\n createImageThumbnails: true,\n maxThumbnailFilesize: 10,\n thumbnailWidth: 120,\n thumbnailHeight: 120,\n filesizeBase: 1000,\n maxFiles: null,\n params: {},\n clickable: true,\n ignoreHiddenFiles: true,\n acceptedFiles: null,\n acceptedMimeTypes: null,\n autoProcessQueue: true,\n autoQueue: true,\n addRemoveLinks: false,\n previewsContainer: null,\n hiddenInputContainer: \"body\",\n capture: null,\n dictDefaultMessage: \"Drop files here to upload\",\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n dictInvalidFileType: \"You can't upload files of this type.\",\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n dictCancelUpload: \"Cancel upload\",\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n dictRemoveFile: \"Remove file\",\n dictRemoveFileConfirmation: null,\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n accept: function(file, done) {\n return done();\n },\n init: function() {\n return noop;\n },\n forceFallback: false,\n fallback: function() {\n var child, messageElement, span, _i, _len, _ref;\n this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\n _ref = this.element.getElementsByTagName(\"div\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n child = _ref[_i];\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\";\n continue;\n }\n }\n if (!messageElement) {\n messageElement = Dropzone.createElement(\"
\");\n this.element.appendChild(messageElement);\n }\n span = messageElement.getElementsByTagName(\"span\")[0];\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n return this.element.appendChild(this.getFallbackForm());\n },\n resize: function(file) {\n var info, srcRatio, trgRatio;\n info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n srcRatio = file.width / file.height;\n info.optWidth = this.options.thumbnailWidth;\n info.optHeight = this.options.thumbnailHeight;\n if ((info.optWidth == null) && (info.optHeight == null)) {\n info.optWidth = info.srcWidth;\n info.optHeight = info.srcHeight;\n } else if (info.optWidth == null) {\n info.optWidth = srcRatio * info.optHeight;\n } else if (info.optHeight == null) {\n info.optHeight = (1 / srcRatio) * info.optWidth;\n }\n trgRatio = info.optWidth / info.optHeight;\n if (file.height < info.optHeight || file.width < info.optWidth) {\n info.trgHeight = info.srcHeight;\n info.trgWidth = info.srcWidth;\n } else {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n }\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n return info;\n },\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n drop: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart: noop,\n dragend: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter: function(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover: function(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave: function(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n paste: noop,\n reset: function() {\n return this.element.classList.remove(\"dz-started\");\n },\n addedfile: function(file) {\n var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n if (this.previewsContainer) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement;\n this.previewsContainer.appendChild(file.previewElement);\n _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n node.textContent = file.name;\n }\n _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\n node = _ref1[_j];\n node.innerHTML = this.filesize(file.size);\n }\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(\"\" + this.options.dictRemoveFile + \"\");\n file.previewElement.appendChild(file._removeLink);\n }\n removeFileEvent = (function(_this) {\n return function(e) {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {\n return _this.removeFile(file);\n });\n } else {\n if (_this.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {\n return _this.removeFile(file);\n });\n } else {\n return _this.removeFile(file);\n }\n }\n };\n })(this);\n _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\n _results = [];\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n removeLink = _ref2[_k];\n _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\n }\n return _results;\n }\n },\n removedfile: function(file) {\n var _ref;\n if (file.previewElement) {\n if ((_ref = file.previewElement) != null) {\n _ref.parentNode.removeChild(file.previewElement);\n }\n }\n return this._updateMaxFilesReachedClass();\n },\n thumbnail: function(file, dataUrl) {\n var thumbnailElement, _i, _len, _ref;\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n thumbnailElement = _ref[_i];\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n return setTimeout(((function(_this) {\n return function() {\n return file.previewElement.classList.add(\"dz-image-preview\");\n };\n })(this)), 1);\n }\n },\n error: function(file, message) {\n var node, _i, _len, _ref, _results;\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n if (typeof message !== \"String\" && message.error) {\n message = message.error;\n }\n _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n _results.push(node.textContent = message);\n }\n return _results;\n }\n },\n errormultiple: noop,\n processing: function(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n if (file._removeLink) {\n return file._removeLink.textContent = this.options.dictCancelUpload;\n }\n }\n },\n processingmultiple: noop,\n uploadprogress: function(file, progress, bytesSent) {\n var node, _i, _len, _ref, _results;\n if (file.previewElement) {\n _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n if (node.nodeName === 'PROGRESS') {\n _results.push(node.value = progress);\n } else {\n _results.push(node.style.width = \"\" + progress + \"%\");\n }\n }\n return _results;\n }\n },\n totaluploadprogress: noop,\n sending: noop,\n sendingmultiple: noop,\n success: function(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n successmultiple: noop,\n canceled: function(file) {\n return this.emit(\"error\", file, \"Upload canceled.\");\n },\n canceledmultiple: noop,\n complete: function(file) {\n if (file._removeLink) {\n file._removeLink.textContent = this.options.dictRemoveFile;\n }\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n completemultiple: noop,\n maxfilesexceeded: noop,\n maxfilesreached: noop,\n queuecomplete: noop,\n addedfiles: noop,\n previewTemplate: \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n Check\\n \\n \\n \\n \\n \\n
\\n
\\n \\n Error\\n \\n \\n \\n \\n \\n \\n \\n
\\n
\"\n };\n\n extend = function() {\n var key, object, objects, target, val, _i, _len;\n target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n for (_i = 0, _len = objects.length; _i < _len; _i++) {\n object = objects[_i];\n for (key in object) {\n val = object[key];\n target[key] = val;\n }\n }\n return target;\n };\n\n function Dropzone(element, options) {\n var elementOptions, fallback, _ref;\n this.element = element;\n this.version = Dropzone.version;\n this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n this.clickableElements = [];\n this.listeners = [];\n this.files = [];\n if (typeof this.element === \"string\") {\n this.element = document.querySelector(this.element);\n }\n if (!(this.element && (this.element.nodeType != null))) {\n throw new Error(\"Invalid dropzone element.\");\n }\n if (this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n }\n Dropzone.instances.push(this);\n this.element.dropzone = this;\n elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\n this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\n if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return this.options.fallback.call(this);\n }\n if (this.options.url == null) {\n this.options.url = this.element.getAttribute(\"action\");\n }\n if (!this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n if (this.options.acceptedMimeTypes) {\n this.options.acceptedFiles = this.options.acceptedMimeTypes;\n delete this.options.acceptedMimeTypes;\n }\n this.options.method = this.options.method.toUpperCase();\n if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n fallback.parentNode.removeChild(fallback);\n }\n if (this.options.previewsContainer !== false) {\n if (this.options.previewsContainer) {\n this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\n } else {\n this.previewsContainer = this.element;\n }\n }\n if (this.options.clickable) {\n if (this.options.clickable === true) {\n this.clickableElements = [this.element];\n } else {\n this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\n }\n }\n this.init();\n }\n\n Dropzone.prototype.getAcceptedFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.accepted) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getRejectedFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (!file.accepted) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getFilesWithStatus = function(status) {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status === status) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.getQueuedFiles = function() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n };\n\n Dropzone.prototype.getUploadingFiles = function() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n };\n\n Dropzone.prototype.getAddedFiles = function() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n };\n\n Dropzone.prototype.getActiveFiles = function() {\n var file, _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\n _results.push(file);\n }\n }\n return _results;\n };\n\n Dropzone.prototype.init = function() {\n var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(\"
\" + this.options.dictDefaultMessage + \"
\"));\n }\n if (this.clickableElements.length) {\n setupHiddenFileInput = (function(_this) {\n return function() {\n if (_this.hiddenFileInput) {\n _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\n }\n _this.hiddenFileInput = document.createElement(\"input\");\n _this.hiddenFileInput.setAttribute(\"type\", \"file\");\n if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\n _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n _this.hiddenFileInput.className = \"dz-hidden-input\";\n if (_this.options.acceptedFiles != null) {\n _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\n }\n if (_this.options.capture != null) {\n _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\n }\n _this.hiddenFileInput.style.visibility = \"hidden\";\n _this.hiddenFileInput.style.position = \"absolute\";\n _this.hiddenFileInput.style.top = \"0\";\n _this.hiddenFileInput.style.left = \"0\";\n _this.hiddenFileInput.style.height = \"0\";\n _this.hiddenFileInput.style.width = \"0\";\n document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\n return _this.hiddenFileInput.addEventListener(\"change\", function() {\n var file, files, _i, _len;\n files = _this.hiddenFileInput.files;\n if (files.length) {\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n _this.addFile(file);\n }\n }\n _this.emit(\"addedfiles\", files);\n return setupHiddenFileInput();\n });\n };\n })(this);\n setupHiddenFileInput();\n }\n this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\n _ref1 = this.events;\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\n eventName = _ref1[_i];\n this.on(eventName, this.options[eventName]);\n }\n this.on(\"uploadprogress\", (function(_this) {\n return function() {\n return _this.updateTotalUploadProgress();\n };\n })(this));\n this.on(\"removedfile\", (function(_this) {\n return function() {\n return _this.updateTotalUploadProgress();\n };\n })(this));\n this.on(\"canceled\", (function(_this) {\n return function(file) {\n return _this.emit(\"complete\", file);\n };\n })(this));\n this.on(\"complete\", (function(_this) {\n return function(file) {\n if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\n return setTimeout((function() {\n return _this.emit(\"queuecomplete\");\n }), 0);\n }\n };\n })(this));\n noPropagation = function(e) {\n e.stopPropagation();\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n };\n this.listeners = [\n {\n element: this.element,\n events: {\n \"dragstart\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragstart\", e);\n };\n })(this),\n \"dragenter\": (function(_this) {\n return function(e) {\n noPropagation(e);\n return _this.emit(\"dragenter\", e);\n };\n })(this),\n \"dragover\": (function(_this) {\n return function(e) {\n var efct;\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (_error) {}\n e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n noPropagation(e);\n return _this.emit(\"dragover\", e);\n };\n })(this),\n \"dragleave\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragleave\", e);\n };\n })(this),\n \"drop\": (function(_this) {\n return function(e) {\n noPropagation(e);\n return _this.drop(e);\n };\n })(this),\n \"dragend\": (function(_this) {\n return function(e) {\n return _this.emit(\"dragend\", e);\n };\n })(this)\n }\n }\n ];\n this.clickableElements.forEach((function(_this) {\n return function(clickableElement) {\n return _this.listeners.push({\n element: clickableElement,\n events: {\n \"click\": function(evt) {\n if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\n _this.hiddenFileInput.click();\n }\n return true;\n }\n }\n });\n };\n })(this));\n this.enable();\n return this.options.init.call(this);\n };\n\n Dropzone.prototype.destroy = function() {\n var _ref;\n this.disable();\n this.removeAllFiles(true);\n if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n };\n\n Dropzone.prototype.updateTotalUploadProgress = function() {\n var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\n totalBytesSent = 0;\n totalBytes = 0;\n activeFiles = this.getActiveFiles();\n if (activeFiles.length) {\n _ref = this.getActiveFiles();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n };\n\n Dropzone.prototype._getParamName = function(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\n }\n };\n\n Dropzone.prototype.getFallbackForm = function() {\n var existingFallback, fields, fieldsString, form;\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n fieldsString = \"
\";\n if (this.options.dictFallbackText) {\n fieldsString += \"

\" + this.options.dictFallbackText + \"

\";\n }\n fieldsString += \"
\";\n fields = Dropzone.createElement(fieldsString);\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(\"
\");\n form.appendChild(fields);\n } else {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n return form != null ? form : fields;\n };\n\n Dropzone.prototype.getExistingFallback = function() {\n var fallback, getFallback, tagName, _i, _len, _ref;\n getFallback = function(elements) {\n var el, _i, _len;\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\n el = elements[_i];\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n };\n _ref = [\"div\", \"form\"];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n tagName = _ref[_i];\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n };\n\n Dropzone.prototype.setupEventListeners = function() {\n var elementListeners, event, listener, _i, _len, _ref, _results;\n _ref = this.listeners;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elementListeners = _ref[_i];\n _results.push((function() {\n var _ref1, _results1;\n _ref1 = elementListeners.events;\n _results1 = [];\n for (event in _ref1) {\n listener = _ref1[event];\n _results1.push(elementListeners.element.addEventListener(event, listener, false));\n }\n return _results1;\n })());\n }\n return _results;\n };\n\n Dropzone.prototype.removeEventListeners = function() {\n var elementListeners, event, listener, _i, _len, _ref, _results;\n _ref = this.listeners;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n elementListeners = _ref[_i];\n _results.push((function() {\n var _ref1, _results1;\n _ref1 = elementListeners.events;\n _results1 = [];\n for (event in _ref1) {\n listener = _ref1[event];\n _results1.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n return _results1;\n })());\n }\n return _results;\n };\n\n Dropzone.prototype.disable = function() {\n var file, _i, _len, _ref, _results;\n this.clickableElements.forEach(function(element) {\n return element.classList.remove(\"dz-clickable\");\n });\n this.removeEventListeners();\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n _results.push(this.cancelUpload(file));\n }\n return _results;\n };\n\n Dropzone.prototype.enable = function() {\n this.clickableElements.forEach(function(element) {\n return element.classList.add(\"dz-clickable\");\n });\n return this.setupEventListeners();\n };\n\n Dropzone.prototype.filesize = function(size) {\n var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\n selectedSize = 0;\n selectedUnit = \"b\";\n if (size > 0) {\n units = ['TB', 'GB', 'MB', 'KB', 'b'];\n for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\n unit = units[i];\n cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n selectedSize = Math.round(10 * selectedSize) / 10;\n }\n return \"\" + selectedSize + \" \" + selectedUnit;\n };\n\n Dropzone.prototype._updateMaxFilesReachedClass = function() {\n if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit('maxfilesreached', this.files);\n }\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n };\n\n Dropzone.prototype.drop = function(e) {\n var files, items;\n if (!e.dataTransfer) {\n return;\n }\n this.emit(\"drop\", e);\n files = e.dataTransfer.files;\n this.emit(\"addedfiles\", files);\n if (files.length) {\n items = e.dataTransfer.items;\n if (items && items.length && (items[0].webkitGetAsEntry != null)) {\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n };\n\n Dropzone.prototype.paste = function(e) {\n var items, _ref;\n if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\n return;\n }\n this.emit(\"paste\", e);\n items = e.clipboardData.items;\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n };\n\n Dropzone.prototype.handleFiles = function(files) {\n var file, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n _results.push(this.addFile(file));\n }\n return _results;\n };\n\n Dropzone.prototype._addFilesFromItems = function(items) {\n var entry, item, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = items.length; _i < _len; _i++) {\n item = items[_i];\n if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n _results.push(this.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n _results.push(this._addFilesFromDirectory(entry, entry.name));\n } else {\n _results.push(void 0);\n }\n } else if (item.getAsFile != null) {\n if ((item.kind == null) || item.kind === \"file\") {\n _results.push(this.addFile(item.getAsFile()));\n } else {\n _results.push(void 0);\n }\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n\n Dropzone.prototype._addFilesFromDirectory = function(directory, path) {\n var dirReader, entriesReader;\n dirReader = directory.createReader();\n entriesReader = (function(_this) {\n return function(entries) {\n var entry, _i, _len;\n for (_i = 0, _len = entries.length; _i < _len; _i++) {\n entry = entries[_i];\n if (entry.isFile) {\n entry.file(function(file) {\n if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n return;\n }\n file.fullPath = \"\" + path + \"/\" + file.name;\n return _this.addFile(file);\n });\n } else if (entry.isDirectory) {\n _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\n }\n }\n };\n })(this);\n return dirReader.readEntries(entriesReader, function(error) {\n return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\n });\n };\n\n Dropzone.prototype.accept = function(file, done) {\n if (file.size > this.options.maxFilesize * 1024 * 1024) {\n return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n return done(this.options.dictInvalidFileType);\n } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n return this.emit(\"maxfilesexceeded\", file);\n } else {\n return this.options.accept.call(this, file, done);\n }\n };\n\n Dropzone.prototype.addFile = function(file) {\n file.upload = {\n progress: 0,\n total: file.size,\n bytesSent: 0\n };\n this.files.push(file);\n file.status = Dropzone.ADDED;\n this.emit(\"addedfile\", file);\n this._enqueueThumbnail(file);\n return this.accept(file, (function(_this) {\n return function(error) {\n if (error) {\n file.accepted = false;\n _this._errorProcessing([file], error);\n } else {\n file.accepted = true;\n if (_this.options.autoQueue) {\n _this.enqueueFile(file);\n }\n }\n return _this._updateMaxFilesReachedClass();\n };\n })(this));\n };\n\n Dropzone.prototype.enqueueFiles = function(files) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n this.enqueueFile(file);\n }\n return null;\n };\n\n Dropzone.prototype.enqueueFile = function(file) {\n if (file.status === Dropzone.ADDED && file.accepted === true) {\n file.status = Dropzone.QUEUED;\n if (this.options.autoProcessQueue) {\n return setTimeout(((function(_this) {\n return function() {\n return _this.processQueue();\n };\n })(this)), 0);\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n };\n\n Dropzone.prototype._thumbnailQueue = [];\n\n Dropzone.prototype._processingThumbnail = false;\n\n Dropzone.prototype._enqueueThumbnail = function(file) {\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n this._thumbnailQueue.push(file);\n return setTimeout(((function(_this) {\n return function() {\n return _this._processThumbnailQueue();\n };\n })(this)), 0);\n }\n };\n\n Dropzone.prototype._processThumbnailQueue = function() {\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n return;\n }\n this._processingThumbnail = true;\n return this.createThumbnail(this._thumbnailQueue.shift(), (function(_this) {\n return function() {\n _this._processingThumbnail = false;\n return _this._processThumbnailQueue();\n };\n })(this));\n };\n\n Dropzone.prototype.removeFile = function(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n this.files = without(this.files, file);\n this.emit(\"removedfile\", file);\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n };\n\n Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {\n var file, _i, _len, _ref;\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n _ref = this.files.slice();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n return null;\n };\n\n Dropzone.prototype.createThumbnail = function(file, callback) {\n var fileReader;\n fileReader = new FileReader;\n fileReader.onload = (function(_this) {\n return function() {\n if (file.type === \"image/svg+xml\") {\n _this.emit(\"thumbnail\", file, fileReader.result);\n if (callback != null) {\n callback();\n }\n return;\n }\n return _this.createThumbnailFromUrl(file, fileReader.result, callback);\n };\n })(this);\n return fileReader.readAsDataURL(file);\n };\n\n Dropzone.prototype.createThumbnailFromUrl = function(file, imageUrl, callback, crossOrigin) {\n var img;\n img = document.createElement(\"img\");\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.onload = (function(_this) {\n return function() {\n var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\n file.width = img.width;\n file.height = img.height;\n resizeInfo = _this.options.resize.call(_this, file);\n if (resizeInfo.trgWidth == null) {\n resizeInfo.trgWidth = resizeInfo.optWidth;\n }\n if (resizeInfo.trgHeight == null) {\n resizeInfo.trgHeight = resizeInfo.optHeight;\n }\n canvas = document.createElement(\"canvas\");\n ctx = canvas.getContext(\"2d\");\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n thumbnail = canvas.toDataURL(\"image/png\");\n _this.emit(\"thumbnail\", file, thumbnail);\n if (callback != null) {\n return callback();\n }\n };\n })(this);\n if (callback != null) {\n img.onerror = callback;\n }\n return img.src = imageUrl;\n };\n\n Dropzone.prototype.processQueue = function() {\n var i, parallelUploads, processingLength, queuedFiles;\n parallelUploads = this.options.parallelUploads;\n processingLength = this.getUploadingFiles().length;\n i = processingLength;\n if (processingLength >= parallelUploads) {\n return;\n }\n queuedFiles = this.getQueuedFiles();\n if (!(queuedFiles.length > 0)) {\n return;\n }\n if (this.options.uploadMultiple) {\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n }\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n };\n\n Dropzone.prototype.processFile = function(file) {\n return this.processFiles([file]);\n };\n\n Dropzone.prototype.processFiles = function(files) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.processing = true;\n file.status = Dropzone.UPLOADING;\n this.emit(\"processing\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n return this.uploadFiles(files);\n };\n\n Dropzone.prototype._getFilesWithXhr = function(xhr) {\n var file, files;\n return files = (function() {\n var _i, _len, _ref, _results;\n _ref = this.files;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n file = _ref[_i];\n if (file.xhr === xhr) {\n _results.push(file);\n }\n }\n return _results;\n }).call(this);\n };\n\n Dropzone.prototype.cancelUpload = function(file) {\n var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\n if (file.status === Dropzone.UPLOADING) {\n groupedFiles = this._getFilesWithXhr(file.xhr);\n for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\n groupedFile = groupedFiles[_i];\n groupedFile.status = Dropzone.CANCELED;\n }\n file.xhr.abort();\n for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\n groupedFile = groupedFiles[_j];\n this.emit(\"canceled\", groupedFile);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n resolveOption = function() {\n var args, option;\n option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\n if (typeof option === 'function') {\n return option.apply(this, args);\n }\n return option;\n };\n\n Dropzone.prototype.uploadFile = function(file) {\n return this.uploadFiles([file]);\n };\n\n Dropzone.prototype.uploadFiles = function(files) {\n var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\n xhr = new XMLHttpRequest();\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.xhr = xhr;\n }\n method = resolveOption(this.options.method, files);\n url = resolveOption(this.options.url, files);\n xhr.open(method, url, true);\n xhr.withCredentials = !!this.options.withCredentials;\n response = null;\n handleError = (function(_this) {\n return function() {\n var _j, _len1, _results;\n _results = [];\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\n }\n return _results;\n };\n })(this);\n updateProgress = (function(_this) {\n return function(e) {\n var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\n if (e != null) {\n progress = 100 * e.loaded / e.total;\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n file.upload = {\n progress: progress,\n total: e.total,\n bytesSent: e.loaded\n };\n }\n } else {\n allFilesFinished = true;\n progress = 100;\n for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\n file = files[_k];\n if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\n allFilesFinished = false;\n }\n file.upload.progress = progress;\n file.upload.bytesSent = file.upload.total;\n }\n if (allFilesFinished) {\n return;\n }\n }\n _results = [];\n for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\n file = files[_l];\n _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\n }\n return _results;\n };\n })(this);\n xhr.onload = (function(_this) {\n return function(e) {\n var _ref;\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n response = xhr.responseText;\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (_error) {\n e = _error;\n response = \"Invalid JSON response from server.\";\n }\n }\n updateProgress();\n if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\n return handleError();\n } else {\n return _this._finished(files, response, e);\n }\n };\n })(this);\n xhr.onerror = (function(_this) {\n return function() {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n return handleError();\n };\n })(this);\n progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\n progressObj.onprogress = updateProgress;\n headers = {\n \"Accept\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n };\n if (this.options.headers) {\n extend(headers, this.options.headers);\n }\n for (headerName in headers) {\n headerValue = headers[headerName];\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n formData = new FormData();\n if (this.options.params) {\n _ref1 = this.options.params;\n for (key in _ref1) {\n value = _ref1[key];\n formData.append(key, value);\n }\n }\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\n file = files[_j];\n this.emit(\"sending\", file, xhr, formData);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n if (this.element.tagName === \"FORM\") {\n _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\n input = _ref2[_k];\n inputName = input.getAttribute(\"name\");\n inputType = input.getAttribute(\"type\");\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n _ref3 = input.options;\n for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\n option = _ref3[_l];\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n }\n for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\n formData.append(this._getParamName(i), files[i], files[i].name);\n }\n return this.submitRequest(xhr, formData, files);\n };\n\n Dropzone.prototype.submitRequest = function(xhr, formData, files) {\n return xhr.send(formData);\n };\n\n Dropzone.prototype._finished = function(files, responseText, e) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n Dropzone.prototype._errorProcessing = function(files, message, xhr) {\n var file, _i, _len;\n for (_i = 0, _len = files.length; _i < _len; _i++) {\n file = files[_i];\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n };\n\n return Dropzone;\n\n })(Emitter);\n\n Dropzone.version = \"4.2.0\";\n\n Dropzone.options = {};\n\n Dropzone.optionsForElement = function(element) {\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return void 0;\n }\n };\n\n Dropzone.instances = [];\n\n Dropzone.forElement = function(element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n if ((element != null ? element.dropzone : void 0) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n return element.dropzone;\n };\n\n Dropzone.autoDiscover = true;\n\n Dropzone.discover = function() {\n var checkElements, dropzone, dropzones, _i, _len, _results;\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = [];\n checkElements = function(elements) {\n var el, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\n el = elements[_i];\n if (/(^| )dropzone($| )/.test(el.className)) {\n _results.push(dropzones.push(el));\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n _results = [];\n for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\n dropzone = dropzones[_i];\n if (Dropzone.optionsForElement(dropzone) !== false) {\n _results.push(new Dropzone(dropzone));\n } else {\n _results.push(void 0);\n }\n }\n return _results;\n };\n\n Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\n\n Dropzone.isBrowserSupported = function() {\n var capableBrowser, regex, _i, _len, _ref;\n capableBrowser = true;\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n _ref = Dropzone.blacklistedBrowsers;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n regex = _ref[_i];\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n }\n } else {\n capableBrowser = false;\n }\n return capableBrowser;\n };\n\n without = function(list, rejectedItem) {\n var item, _i, _len, _results;\n _results = [];\n for (_i = 0, _len = list.length; _i < _len; _i++) {\n item = list[_i];\n if (item !== rejectedItem) {\n _results.push(item);\n }\n }\n return _results;\n };\n\n camelize = function(str) {\n return str.replace(/[\\-_](\\w)/g, function(match) {\n return match.charAt(1).toUpperCase();\n });\n };\n\n Dropzone.createElement = function(string) {\n var div;\n div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n };\n\n Dropzone.elementInside = function(element, container) {\n if (element === container) {\n return true;\n }\n while (element = element.parentNode) {\n if (element === container) {\n return true;\n }\n }\n return false;\n };\n\n Dropzone.getElement = function(el, name) {\n var element;\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n if (element == null) {\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\n }\n return element;\n };\n\n Dropzone.getElements = function(els, name) {\n var e, el, elements, _i, _j, _len, _len1, _ref;\n if (els instanceof Array) {\n elements = [];\n try {\n for (_i = 0, _len = els.length; _i < _len; _i++) {\n el = els[_i];\n elements.push(this.getElement(el, name));\n }\n } catch (_error) {\n e = _error;\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n _ref = document.querySelectorAll(els);\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n el = _ref[_j];\n elements.push(el);\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n if (!((elements != null) && elements.length)) {\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\n }\n return elements;\n };\n\n Dropzone.confirm = function(question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n };\n\n Dropzone.isValidFile = function(file, acceptedFiles) {\n var baseMimeType, mimeType, validType, _i, _len;\n if (!acceptedFiles) {\n return true;\n }\n acceptedFiles = acceptedFiles.split(\",\");\n mimeType = file.type;\n baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\n validType = acceptedFiles[_i];\n validType = validType.trim();\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n return false;\n };\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null) {\n jQuery.fn.dropzone = function(options) {\n return this.each(function() {\n return new Dropzone(this, options);\n });\n };\n }\n\n if (typeof module !== \"undefined\" && module !== null) {\n module.exports = Dropzone;\n } else {\n window.Dropzone = Dropzone;\n }\n\n Dropzone.ADDED = \"added\";\n\n Dropzone.QUEUED = \"queued\";\n\n Dropzone.ACCEPTED = Dropzone.QUEUED;\n\n Dropzone.UPLOADING = \"uploading\";\n\n Dropzone.PROCESSING = Dropzone.UPLOADING;\n\n Dropzone.CANCELED = \"canceled\";\n\n Dropzone.ERROR = \"error\";\n\n Dropzone.SUCCESS = \"success\";\n\n\n /*\n \n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n */\n\n detectVerticalSquash = function(img) {\n var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\n iw = img.naturalWidth;\n ih = img.naturalHeight;\n canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n data = ctx.getImageData(0, 0, 1, ih).data;\n sy = 0;\n ey = ih;\n py = ih;\n while (py > sy) {\n alpha = data[(py - 1) * 4 + 3];\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n py = (ey + sy) >> 1;\n }\n ratio = py / ih;\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n };\n\n drawImageIOSFix = function(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n var vertSquashRatio;\n vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n };\n\n\n /*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n\n contentLoaded = function(win, fn) {\n var add, doc, done, init, poll, pre, rem, root, top;\n done = false;\n top = true;\n doc = win.document;\n root = doc.documentElement;\n add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\n rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\n pre = (doc.addEventListener ? \"\" : \"on\");\n init = function(e) {\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n return;\n }\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n poll = function() {\n var e;\n try {\n root.doScroll(\"left\");\n } catch (_error) {\n e = _error;\n setTimeout(poll, 50);\n return;\n }\n return init(\"poll\");\n };\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (_error) {}\n if (top) {\n poll();\n }\n }\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n };\n\n Dropzone._autoDiscoverFunction = function() {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n };\n\n contentLoaded(window, Dropzone._autoDiscoverFunction);\n\n}).call(this);\n","// This is the only file allowed to import directly from the package.\n// eslint-disable-next-line no-restricted-imports\nimport Mousetrap from 'mousetrap';\n\nconst additionalStopCallbacks = [];\nconst originalStopCallback = Mousetrap.prototype.stopCallback;\n\nMousetrap.prototype.stopCallback = function customStopCallback(e, element, combo) {\n for (const callback of additionalStopCallbacks) {\n const returnValue = callback.call(this, e, element, combo);\n if (returnValue !== undefined) return returnValue;\n }\n\n return originalStopCallback.call(this, e, element, combo);\n};\n\n/**\n * Add a stop callback to Mousetrap.\n *\n * This allows overriding the default behaviour of Mousetrap#stopCallback,\n * which is to stop the bound key handler/callback from being called if the key\n * combo is pressed inside form fields (input, select, textareas, etc). See\n * https://craig.is/killing/mice#api.stopCallback.\n *\n * The stopCallback registered here has the same signature as\n * Mousetrap#stopCallback, with the one difference being that the callback\n * should return `undefined` if it has no opinion on whether the current key\n * combo should be stopped or not, and the next stop callback should be\n * consulted instead. If a boolean is returned, no other stop callbacks are\n * called.\n *\n * Note: This approach does not always work as expected when coupled with\n * Mousetrap's pause plugin, which is used for enabling/disabling all keyboard\n * shortcuts. That plugin assumes it's the first to execute and overwrite\n * Mousetrap's `stopCallback` method, whereas to work correctly with this, it\n * must execute last. This is not guaranteed or even attempted.\n *\n * To work correctly, we may need to reimplement the pause plugin here.\n *\n * @param {(e: Event, element: Element, combo: string) => boolean|undefined}\n * stopCallback The additional stop callback function to add to the chain\n * of stop callbacks.\n * @returns {void}\n */\nexport const addStopCallback = (stopCallback) => {\n // Unshift, since we want to iterate through them in reverse order, so that\n // the most recently added handler is called first, and the original\n // stopCallback method is called last.\n additionalStopCallbacks.unshift(stopCallback);\n};\n\n/**\n * Clear additionalStopCallbacks. Used only for tests.\n */\nexport const clearStopCallbacksForTests = () => {\n additionalStopCallbacks.length = 0;\n};\n\nexport const MOUSETRAP_COPY_KEYBOARD_SHORTCUT = 'mod+c';\n\nexport { Mousetrap };\n","/**\n * adds a pause and unpause method to Mousetrap\n * this allows you to enable or disable keyboard shortcuts\n * without having to reset Mousetrap and rebind everything\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n Mousetrap.prototype.stopCallback = function(e, element, combo) {\n var self = this;\n\n if (self.paused) {\n return true;\n }\n\n return _originalStopCallback.call(self, e, element, combo);\n };\n\n Mousetrap.prototype.pause = function() {\n var self = this;\n self.paused = true;\n };\n\n Mousetrap.prototype.unpause = function() {\n var self = this;\n self.paused = false;\n };\n\n Mousetrap.init();\n}) (Mousetrap);\n","import { Mousetrap } from '~/lib/mousetrap';\nimport 'mousetrap/plugins/pause/mousetrap-pause';\n\nconst shorcutsDisabledKey = 'shortcutsDisabled';\n\nexport const shouldDisableShortcuts = () => !window.gon.keyboard_shortcuts_enabled;\n\nexport function enableShortcuts() {\n localStorage.setItem(shorcutsDisabledKey, false);\n Mousetrap.unpause();\n}\n\nexport function disableShortcuts() {\n localStorage.setItem(shorcutsDisabledKey, true);\n Mousetrap.pause();\n}\n"],"sourceRoot":""}