Вход Регистрация
Файл: templates/backend/default/assets/plugins/dropzone/dropzone.js
Строк: 2120
<?php
;(function(){

/**
 * Require the given path.
 *
 * @param {String} path
 * @return {Object} exports
 * @api public
 */

function require(pathparentorig) {
  var 
resolved = require.resolve(path);

  
// lookup failed
  
if (null == resolved) {
    
orig orig || path;
    
parent parent || 'root';
    var 
err = new Error('Failed to require "' orig '" from "' parent '"');
    
err.path orig;
    
err.parent parent;
    
err.require = true;
    throw 
err;
  }

  var 
module = require.modules[resolved];

  
// perform real require()
  // by invoking the module's
  // registered function
  
if (!module.exports) {
    
module.exports = {};
    
module.client module.component true;
    
module.call(thismodule.exports, require.relative(resolved), module);
  }

  return 
module.exports;
}

/**
 * Registered modules.
 */

require.modules = {};

/**
 * Registered aliases.
 */

require.aliases = {};

/**
 * Resolve `path`.
 *
 * Lookup:
 *
 *   - PATH/index.js
 *   - PATH.js
 *   - PATH
 *
 * @param {String} path
 * @return {String} path or null
 * @api private
 */

require.resolve = function(path) {
  if (
path.charAt(0) === '/'path path.slice(1);

  var 
paths = [
    
path,
    
path '.js',
    
path '.json',
    
path '/index.js',
    
path '/index.json'
  
];

  for (var 
0paths.lengthi++) {
    var 
path paths[i];
    if (require.
modules.hasOwnProperty(path)) return path;
    if (require.
aliases.hasOwnProperty(path)) return require.aliases[path];
  }
};

/**
 * Normalize `path` relative to the current path.
 *
 * @param {String} curr
 * @param {String} path
 * @return {String}
 * @api private
 */

require.normalize = function(currpath) {
  var 
segs = [];

  if (
'.' != path.charAt(0)) return path;

  
curr curr.split('/');
  
path path.split('/');

  for (var 
0path.length; ++i) {
    if (
'..' == path[i]) {
      
curr.pop();
    } else if (
'.' != path[i] && '' != path[i]) {
      
segs.push(path[i]);
    }
  }

  return 
curr.concat(segs).join('/');
};

/**
 * Register module at `path` with callback `definition`.
 *
 * @param {String} path
 * @param {Function} definition
 * @api private
 */

require.register = function(pathdefinition) {
  require.
modules[path] = definition;
};

/**
 * Alias a module definition.
 *
 * @param {String} from
 * @param {String} to
 * @api private
 */

require.alias = function(fromto) {
  if (!require.
modules.hasOwnProperty(from)) {
    throw new 
Error('Failed to alias "' from '", it does not exist');
  }
  require.
aliases[to] = from;
};

/**
 * Return a require function relative to the `parent` path.
 *
 * @param {String} parent
 * @return {Function}
 * @api private
 */

require.relative = function(parent) {
  var 
= require.normalize(parent'..');

  
/**
   * lastIndexOf helper.
   */

  
function lastIndexOf(arrobj) {
    var 
arr.length;
    while (
i--) {
      if (
arr[i] === obj) return i;
    }
    return -
1;
  }

  
/**
   * The relative require() itself.
   */

  
function localRequire(path) {
    var 
resolved localRequire.resolve(path);
    return require(
resolvedparentpath);
  }

  
/**
   * Resolve relative to the parent.
   */

  
localRequire.resolve = function(path) {
    var 
path.charAt(0);
    if (
'/' == c) return path.slice(1);
    if (
'.' == c) return require.normalize(ppath);

    
// resolve deps by returning
    // the dep in the nearest "deps"
    // directory
    
var segs parent.split('/');
    var 
lastIndexOf(segs'deps') + 1;
    if (!
i0;
    
path segs.slice(01).join('/') + '/deps/' path;
    return 
path;
  };

  
/**
   * Check if module is defined at `path`.
   */

  
localRequire.exists = function(path) {
    return require.
modules.hasOwnProperty(localRequire.resolve(path));
  };

  return 
localRequire;
};
require.
register("component-emitter/index.js", function(exports, require, module){

/**
 * Expose `Emitter`.
 */

module.exports Emitter;

/**
 * Initialize a new `Emitter`.
 *
 * @api public
 */

function Emitter(obj) {
  if (
obj) return mixin(obj);
};

/**
 * Mixin the emitter properties.
 *
 * @param {Object} obj
 * @return {Object}
 * @api private
 */

function mixin(obj) {
  for (var 
key in Emitter.prototype) {
    
obj[key] = Emitter.prototype[key];
  }
  return 
obj;
}

/**
 * Listen on the given `event` with `fn`.
 *
 * @param {String} event
 * @param {Function} fn
 * @return {Emitter}
 * @api public
 */

Emitter.prototype.on = function(eventfn){
  
this._callbacks this._callbacks || {};
  (
this._callbacks[event] = this._callbacks[event] || [])
    .
push(fn);
  return 
this;
};

/**
 * Adds an `event` listener that will be invoked a single
 * time then automatically removed.
 *
 * @param {String} event
 * @param {Function} fn
 * @return {Emitter}
 * @api public
 */

Emitter.prototype.once = function(eventfn){
  var 
self this;
  
this._callbacks this._callbacks || {};

  function 
on() {
    
self.off(eventon);
    
fn.apply(thisarguments);
  }

  
fn._off on;
  
this.on(eventon);
  return 
this;
};

/**
 * Remove the given callback for `event` or all
 * registered callbacks.
 *
 * @param {String} event
 * @param {Function} fn
 * @return {Emitter}
 * @api public
 */

Emitter.prototype.off =
Emitter.prototype.removeListener =
Emitter.prototype.removeAllListeners = function(eventfn){
  
this._callbacks this._callbacks || {};
  var 
callbacks this._callbacks[event];
  if (!
callbacks) return this;

  
// remove all handlers
  
if (== arguments.length) {
    
delete this._callbacks[event];
    return 
this;
  }

  
// remove specific handler
  
var callbacks.indexOf(fn._off || fn);
  if (~
icallbacks.splice(i1);
  return 
this;
};

/**
 * Emit `event` with the given args.
 *
 * @param {String} event
 * @param {Mixed} ...
 * @return {Emitter}
 */

Emitter.prototype.emit = function(event){
  
this._callbacks this._callbacks || {};
  var 
args = [].slice.call(arguments1)
    , 
callbacks this._callbacks[event];

  if (
callbacks) {
    
callbacks callbacks.slice(0);
    for (var 
0len callbacks.lengthlen; ++i) {
      
callbacks[i].apply(thisargs);
    }
  }

  return 
this;
};

/**
 * Return array of callbacks for `event`.
 *
 * @param {String} event
 * @return {Array}
 * @api public
 */

Emitter.prototype.listeners = function(event){
  
this._callbacks this._callbacks || {};
  return 
this._callbacks[event] || [];
};

/**
 * Check if this emitter has `event` handlers.
 *
 * @param {String} event
 * @return {Boolean}
 * @api public
 */

Emitter.prototype.hasListeners = function(event){
  return !! 
this.listeners(event).length;
};

});
require.
register("dropzone/index.js", function(exports, require, module){


/**
 * Exposing dropzone
 */
module.exports = require("./lib/dropzone.js");

});
require.
register("dropzone/lib/dropzone.js", function(exports, require, module){
/*
#
# More info at [www.dropzonejs.com](http://www.dropzonejs.com)

# Copyright (c) 2012, Matias Meno  

# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#
*/


(function() {
  var 
DropzoneEmcamelizecontentLoadednoopwithout,
    
__hasProp = {}.hasOwnProperty,
    
__extends = function(childparent) { for (var key in parent) { if (__hasProp.call(parentkey)) child[key] = parent[key]; } function ctor() { this.constructor child; } ctor.prototype parent.prototypechild.prototype = new ctor(); child.__super__ parent.prototype; return child; },
    
__slice = [].slice;

  
Em typeof Emitter !== "undefined" && Emitter !== null Emitter : require("emitter");

  
noop = function() {};

  
Dropzone = (function(_super) {
    var 
extend;

    
__extends(Dropzone_super);

    
/*
    This is a list of all available events you can register on a dropzone object.
    
    You can register an event handler like this:
    
        dropzone.on("dragEnter", function() { });
    */


    
Dropzone.prototype.events = ["drop""dragstart""dragend""dragenter""dragover""dragleave""selectedfiles""addedfile""removedfile""thumbnail""error""errormultiple""processing""processingmultiple""uploadprogress""totaluploadprogress""sending""sendingmultiple""success""successmultiple""canceled""canceledmultiple""complete""completemultiple""reset""maxfilesexceeded"];

    
Dropzone.prototype.defaultOptions = {
      
urlnull,
      
method"post",
      
withCredentialsfalse,
      
parallelUploads2,
      
uploadMultiplefalse,
      
maxFilesize256,
      
paramName"file",
      
createImageThumbnailstrue,
      
maxThumbnailFilesize10,
      
thumbnailWidth100,
      
thumbnailHeight100,
      
maxFilesnull,
      
params: {},
      
clickabletrue,
      
ignoreHiddenFilestrue,
      
acceptedFilesnull,
      
acceptedMimeTypesnull,
      
autoProcessQueuetrue,
      
addRemoveLinksfalse,
      
previewsContainernull,
      
dictDefaultMessage"Drop files here to upload",
      
dictFallbackMessage"Your browser does not support drag'n'drop file uploads.",
      
dictFallbackText"Please use the fallback form below to upload your files like in the olden days.",
      
dictFileTooBig"File is too big ({{filesize}}MB). Max filesize: {{maxFilesize}}MB.",
      
dictInvalidFileType"You can't upload files of this type.",
      
dictResponseError"Server responded with {{statusCode}} code.",
      
dictCancelUpload"Cancel upload",
      
dictCancelUploadConfirmation"Are you sure you want to cancel this upload?",
      
dictRemoveFile"Remove file",
      
dictRemoveFileConfirmationnull,
      
dictMaxFilesExceeded"You can only upload {{maxFiles}} files.",
      
accept: function(filedone) {
        return 
done();
      },
      
init: function() {
        return 
noop;
      },
      
forceFallbackfalse,
      
fallback: function() {
        var 
childmessageElementspan_i_len_ref;
        
this.element.className "" this.element.className " dz-browser-not-supported";
        
_ref this.element.getElementsByTagName("div");
        for (
_i 0_len _ref.length_i _len_i++) {
          
child _ref[_i];
          if (/(^| )
dz-message($| )/.test(child.className)) {
            
messageElement child;
            
child.className "dz-message";
            continue;
          }
        }
        if (!
messageElement) {
          
messageElement Dropzone.createElement("<div class="dz-message"><span></span></div>");
          
this.element.appendChild(messageElement);
        }
        
span messageElement.getElementsByTagName("span")[0];
        if (
span) {
          
span.textContent this.options.dictFallbackMessage;
        }
        return 
this.element.appendChild(this.getFallbackForm());
      },
      
resize: function(file) {
        var 
infosrcRatiotrgRatio;
        
info = {
          
srcX0,
          
srcY0,
          
srcWidthfile.width,
          
srcHeightfile.height
        
};
        
srcRatio file.width file.height;
        
trgRatio this.options.thumbnailWidth this.options.thumbnailHeight;
        if (
file.height this.options.thumbnailHeight || file.width this.options.thumbnailWidth) {
          
info.trgHeight info.srcHeight;
          
info.trgWidth info.srcWidth;
        } else {
          if (
srcRatio trgRatio) {
            
info.srcHeight file.height;
            
info.srcWidth info.srcHeight trgRatio;
          } else {
            
info.srcWidth file.width;
            
info.srcHeight info.srcWidth trgRatio;
          }
        }
        
info.srcX = (file.width info.srcWidth) / 2;
        
info.srcY = (file.height info.srcHeight) / 2;
        return 
info;
      },
      
/*
      Those functions register themselves to the events on init and handle all
      the user interface specific stuff. Overwriting them won't break the upload
      but can break the way it's displayed.
      You can overwrite them if you don't like the default behavior. If you just
      want to add an additional event handler, register it on the dropzone object
      and don't overwrite those options.
      */

      
drop: function(e) {
        return 
this.element.classList.remove("dz-drag-hover");
      },
      
dragstartnoop,
      
dragend: function(e) {
        return 
this.element.classList.remove("dz-drag-hover");
      },
      
dragenter: function(e) {
        return 
this.element.classList.add("dz-drag-hover");
      },
      
dragover: function(e) {
        return 
this.element.classList.add("dz-drag-hover");
      },
      
dragleave: function(e) {
        return 
this.element.classList.remove("dz-drag-hover");
      },
      
selectedfiles: function(files) {
        if (
this.element === this.previewsContainer) {
          return 
this.element.classList.add("dz-started");
        }
      },
      
reset: function() {
        return 
this.element.classList.remove("dz-started");
      },
      
addedfile: function(file) {
        var 
_this this;
        
file.previewElement Dropzone.createElement(this.options.previewTemplate);
        
file.previewTemplate file.previewElement;
        
this.previewsContainer.appendChild(file.previewElement);
        
file.previewElement.querySelector("[data-dz-name]").textContent file.name;
        
file.previewElement.querySelector("[data-dz-size]").innerHTML this.filesize(file.size);
        if (
this.options.addRemoveLinks) {
          
file._removeLink Dropzone.createElement("<a class="dz-remove" href="javascript:undefined;">" this.options.dictRemoveFile "</a>");
          
file._removeLink.addEventListener("click", function(e) {
            
e.preventDefault();
            
e.stopPropagation();
            if (
file.status === Dropzone.UPLOADING) {
              return 
Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function() {
                return 
_this.removeFile(file);
              });
            } else {
              if (
_this.options.dictRemoveFileConfirmation) {
                return 
Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function() {
                  return 
_this.removeFile(file);
                });
              } else {
                return 
_this.removeFile(file);
              }
            }
          });
          
file.previewElement.appendChild(file._removeLink);
        }
        return 
this._updateMaxFilesReachedClass();
      },
      
removedfile: function(file) {
        var 
_ref;
        if ((
_ref file.previewElement) != null) {
          
_ref.parentNode.removeChild(file.previewElement);
        }
        return 
this._updateMaxFilesReachedClass();
      },
      
thumbnail: function(filedataUrl) {
        var 
thumbnailElement;
        
file.previewElement.classList.remove("dz-file-preview");
        
file.previewElement.classList.add("dz-image-preview");
        
thumbnailElement file.previewElement.querySelector("[data-dz-thumbnail]");
        
thumbnailElement.alt file.name;
        return 
thumbnailElement.src dataUrl;
      },
      
error: function(filemessage) {
        
file.previewElement.classList.add("dz-error");
        return 
file.previewElement.querySelector("[data-dz-errormessage]").textContent message;
      },
      
errormultiplenoop,
      
processing: function(file) {
        
file.previewElement.classList.add("dz-processing");
        if (
file._removeLink) {
          return 
file._removeLink.textContent this.options.dictCancelUpload;
        }
      },
      
processingmultiplenoop,
      
uploadprogress: function(fileprogressbytesSent) {
        return 
file.previewElement.querySelector("[data-dz-uploadprogress]").style.width "" progress "%";
      },
      
totaluploadprogressnoop,
      
sendingnoop,
      
sendingmultiplenoop,
      
success: function(file) {
        return 
file.previewElement.classList.add("dz-success");
      },
      
successmultiplenoop,
      
canceled: function(file) {
        return 
this.emit("error"file"Upload canceled.");
      },
      
canceledmultiplenoop,
      
complete: function(file) {
        if (
file._removeLink) {
          return 
file._removeLink.textContent this.options.dictRemoveFile;
        }
      },
      
completemultiplenoop,
      
maxfilesexceedednoop,
      
previewTemplate"<div class="dz-preview dz-file-preview">n  <div class="dz-details">n    <div class="dz-filename"><span data-dz-name></span></div>n    <div class="dz-size" data-dz-size></div>n    <img data-dz-thumbnail />n  </div>n  <div class="dz-progress"><span class="dz-upload" data-dz-uploadprogress></span></div>n  <div class="dz-success-mark"><span>✔</span></div>n  <div class="dz-error-mark"><span>✘</span></div>n  <div class="dz-error-message"><span data-dz-errormessage></span></div>n</div>"
    
};

    
extend = function() {
      var 
keyobjectobjectstargetval_i_len;
      
target arguments[0], objects <= arguments.length __slice.call(arguments1) : [];
      for (
_i 0_len objects.length_i _len_i++) {
        
object objects[_i];
        for (
key in object) {
          
val object[key];
          
target[key] = val;
        }
      }
      return 
target;
    };

    function 
Dropzone(elementoptions) {
      var 
elementOptionsfallback_ref;
      
this.element element;
      
this.version Dropzone.version;
      
this.defaultOptions.previewTemplate this.defaultOptions.previewTemplate.replace(/n*/g"");
      
this.clickableElements = [];
      
this.listeners = [];
      
this.files = [];
      if (
typeof this.element === "string") {
        
this.element document.querySelector(this.element);
      }
      if (!(
this.element && (this.element.nodeType != null))) {
        throw new 
Error("Invalid dropzone element.");
      }
      if (
this.element.dropzone) {
        throw new 
Error("Dropzone already attached.");
      }
      
Dropzone.instances.push(this);
      
element.dropzone this;
      
elementOptions = (_ref Dropzone.optionsForElement(this.element)) != null _ref : {};
      
this.options extend({}, this.defaultOptionselementOptionsoptions != null options : {});
      if (
this.options.forceFallback || !Dropzone.isBrowserSupported()) {
        return 
this.options.fallback.call(this);
      }
      if (
this.options.url == null) {
        
this.options.url this.element.getAttribute("action");
      }
      if (!
this.options.url) {
        throw new 
Error("No URL provided.");
      }
      if (
this.options.acceptedFiles && this.options.acceptedMimeTypes) {
        throw new 
Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");
      }
      if (
this.options.acceptedMimeTypes) {
        
this.options.acceptedFiles this.options.acceptedMimeTypes;
        
delete this.options.acceptedMimeTypes;
      }
      
this.options.method this.options.method.toUpperCase();
      if ((
fallback this.getExistingFallback()) && fallback.parentNode) {
        
fallback.parentNode.removeChild(fallback);
      }
      if (
this.options.previewsContainer) {
        
this.previewsContainer Dropzone.getElement(this.options.previewsContainer"previewsContainer");
      } else {
        
this.previewsContainer this.element;
      }
      if (
this.options.clickable) {
        if (
this.options.clickable === true) {
          
this.clickableElements = [this.element];
        } else {
          
this.clickableElements Dropzone.getElements(this.options.clickable"clickable");
        }
      }
      
this.init();
    }

    
Dropzone.prototype.getAcceptedFiles = function() {
      var 
file_i_len_ref_results;
      
_ref this.files;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        if (
file.accepted) {
          
_results.push(file);
        }
      }
      return 
_results;
    };

    
Dropzone.prototype.getRejectedFiles = function() {
      var 
file_i_len_ref_results;
      
_ref this.files;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        if (!
file.accepted) {
          
_results.push(file);
        }
      }
      return 
_results;
    };

    
Dropzone.prototype.getQueuedFiles = function() {
      var 
file_i_len_ref_results;
      
_ref this.files;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        if (
file.status === Dropzone.QUEUED) {
          
_results.push(file);
        }
      }
      return 
_results;
    };

    
Dropzone.prototype.getUploadingFiles = function() {
      var 
file_i_len_ref_results;
      
_ref this.files;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        if (
file.status === Dropzone.UPLOADING) {
          
_results.push(file);
        }
      }
      return 
_results;
    };

    
Dropzone.prototype.init = function() {
      var 
eventNamenoPropagationsetupHiddenFileInput_i_len_ref_ref1,
        
_this this;
      if (
this.element.tagName === "form") {
        
this.element.setAttribute("enctype""multipart/form-data");
      }
      if (
this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) {
        
this.element.appendChild(Dropzone.createElement("<div class="dz-default dz-message"><span>" this.options.dictDefaultMessage "</span></div>"));
      }
      if (
this.clickableElements.length) {
        
setupHiddenFileInput = function() {
          if (
_this.hiddenFileInput) {
            
document.body.removeChild(_this.hiddenFileInput);
          }
          
_this.hiddenFileInput document.createElement("input");
          
_this.hiddenFileInput.setAttribute("type""file");
          
_this.hiddenFileInput.setAttribute("multiple""multiple");
          if (
_this.options.acceptedFiles != null) {
            
_this.hiddenFileInput.setAttribute("accept"_this.options.acceptedFiles);
          }
          
_this.hiddenFileInput.style.visibility "hidden";
          
_this.hiddenFileInput.style.position "absolute";
          
_this.hiddenFileInput.style.top "0";
          
_this.hiddenFileInput.style.left "0";
          
_this.hiddenFileInput.style.height "0";
          
_this.hiddenFileInput.style.width "0";
          
document.body.appendChild(_this.hiddenFileInput);
          return 
_this.hiddenFileInput.addEventListener("change", function() {
            var 
files;
            
files _this.hiddenFileInput.files;
            if (
files.length) {
              
_this.emit("selectedfiles"files);
              
_this.handleFiles(files);
            }
            return 
setupHiddenFileInput();
          });
        };
        
setupHiddenFileInput();
      }
      
this.URL = (_ref window.URL) != null _ref window.webkitURL;
      
_ref1 this.events;
      for (
_i 0_len _ref1.length_i _len_i++) {
        
eventName _ref1[_i];
        
this.on(eventNamethis.options[eventName]);
      }
      
this.on("uploadprogress", function() {
        return 
_this.updateTotalUploadProgress();
      });
      
this.on("removedfile", function() {
        return 
_this.updateTotalUploadProgress();
      });
      
this.on("canceled", function(file) {
        return 
_this.emit("complete"file);
      });
      
noPropagation = function(e) {
        
e.stopPropagation();
        if (
e.preventDefault) {
          return 
e.preventDefault();
        } else {
          return 
e.returnValue false;
        }
      };
      
this.listeners = [
        {
          
elementthis.element,
          
events: {
            
"dragstart": function(e) {
              return 
_this.emit("dragstart"e);
            },
            
"dragenter": function(e) {
              
noPropagation(e);
              return 
_this.emit("dragenter"e);
            },
            
"dragover": function(e) {
              
noPropagation(e);
              return 
_this.emit("dragover"e);
            },
            
"dragleave": function(e) {
              return 
_this.emit("dragleave"e);
            },
            
"drop": function(e) {
              
noPropagation(e);
              return 
_this.drop(e);
            },
            
"dragend": function(e) {
              return 
_this.emit("dragend"e);
            }
          }
        }
      ];
      
this.clickableElements.forEach(function(clickableElement) {
        return 
_this.listeners.push({
          
elementclickableElement,
          
events: {
            
"click": function(evt) {
              if ((
clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target_this.element.querySelector(".dz-message")))) {
                return 
_this.hiddenFileInput.click();
              }
            }
          }
        });
      });
      
this.enable();
      return 
this.options.init.call(this);
    };

    
Dropzone.prototype.destroy = function() {
      var 
_ref;
      
this.disable();
      
this.removeAllFiles(true);
      if ((
_ref this.hiddenFileInput) != null _ref.parentNode void 0) {
        
this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);
        
this.hiddenFileInput null;
      }
      return 
delete this.element.dropzone;
    };

    
Dropzone.prototype.updateTotalUploadProgress = function() {
      var 
acceptedFilesfiletotalBytestotalBytesSenttotalUploadProgress_i_len_ref;
      
totalBytesSent 0;
      
totalBytes 0;
      
acceptedFiles this.getAcceptedFiles();
      if (
acceptedFiles.length) {
        
_ref this.getAcceptedFiles();
        for (
_i 0_len _ref.length_i _len_i++) {
          
file _ref[_i];
          
totalBytesSent += file.upload.bytesSent;
          
totalBytes += file.upload.total;
        }
        
totalUploadProgress 100 totalBytesSent totalBytes;
      } else {
        
totalUploadProgress 100;
      }
      return 
this.emit("totaluploadprogress"totalUploadProgresstotalBytestotalBytesSent);
    };

    
Dropzone.prototype.getFallbackForm = function() {
      var 
existingFallbackfieldsfieldsStringform;
      if (
existingFallback this.getExistingFallback()) {
        return 
existingFallback;
      }
      
fieldsString "<div class="dz-fallback">";
      if (
this.options.dictFallbackText) {
        
fieldsString += "<p>" this.options.dictFallbackText "</p>";
      }
      
fieldsString += "<input type="file" name="" + this.options.paramName + (this.options.uploadMultiple ? "[]" : "") + "" " + (this.options.uploadMultiple 'multiple="multiple"' void 0) + " /><button type="submit">Upload!</button></div>";
      
fields Dropzone.createElement(fieldsString);
      if (
this.element.tagName !== "FORM") {
        
form Dropzone.createElement("<form action="" + this.options.url + "" enctype="multipart/form-data" method="" + this.options.method + ""></form>");
        
form.appendChild(fields);
      } else {
        
this.element.setAttribute("enctype""multipart/form-data");
        
this.element.setAttribute("method"this.options.method);
      }
      return 
form != null form fields;
    };

    
Dropzone.prototype.getExistingFallback = function() {
      var 
fallbackgetFallbacktagName_i_len_ref;
      
getFallback = function(elements) {
        var 
el_i_len;
        for (
_i 0_len elements.length_i _len_i++) {
          
el elements[_i];
          if (/(^| )
fallback($| )/.test(el.className)) {
            return 
el;
          }
        }
      };
      
_ref = ["div""form"];
      for (
_i 0_len _ref.length_i _len_i++) {
        
tagName _ref[_i];
        if (
fallback getFallback(this.element.getElementsByTagName(tagName))) {
          return 
fallback;
        }
      }
    };

    
Dropzone.prototype.setupEventListeners = function() {
      var 
elementListenerseventlistener_i_len_ref_results;
      
_ref this.listeners;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
elementListeners _ref[_i];
        
_results.push((function() {
          var 
_ref1_results1;
          
_ref1 elementListeners.events;
          
_results1 = [];
          for (
event in _ref1) {
            
listener _ref1[event];
            
_results1.push(elementListeners.element.addEventListener(eventlistenerfalse));
          }
          return 
_results1;
        })());
      }
      return 
_results;
    };

    
Dropzone.prototype.removeEventListeners = function() {
      var 
elementListenerseventlistener_i_len_ref_results;
      
_ref this.listeners;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
elementListeners _ref[_i];
        
_results.push((function() {
          var 
_ref1_results1;
          
_ref1 elementListeners.events;
          
_results1 = [];
          for (
event in _ref1) {
            
listener _ref1[event];
            
_results1.push(elementListeners.element.removeEventListener(eventlistenerfalse));
          }
          return 
_results1;
        })());
      }
      return 
_results;
    };

    
Dropzone.prototype.disable = function() {
      var 
file_i_len_ref_results;
      
this.clickableElements.forEach(function(element) {
        return 
element.classList.remove("dz-clickable");
      });
      
this.removeEventListeners();
      
_ref this.files;
      
_results = [];
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        
_results.push(this.cancelUpload(file));
      }
      return 
_results;
    };

    
Dropzone.prototype.enable = function() {
      
this.clickableElements.forEach(function(element) {
        return 
element.classList.add("dz-clickable");
      });
      return 
this.setupEventListeners();
    };

    
Dropzone.prototype.filesize = function(size) {
      var 
string;
      if (
size >= 100000000000) {
        
size size 100000000000;
        
string "TB";
      } else if (
size >= 100000000) {
        
size size 100000000;
        
string "GB";
      } else if (
size >= 100000) {
        
size size 100000;
        
string "MB";
      } else if (
size >= 100) {
        
size size 100;
        
string "KB";
      } else {
        
size size 10;
        
string "b";
      }
      return 
"<strong>" + (Math.round(size) / 10) + "</strong> " string;
    };

    
Dropzone.prototype._updateMaxFilesReachedClass = function() {
      if (
this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles) {
        return 
this.element.classList.add("dz-max-files-reached");
      } else {
        return 
this.element.classList.remove("dz-max-files-reached");
      }
    };

    
Dropzone.prototype.drop = function(e) {
      var 
filesitems;
      if (!
e.dataTransfer) {
        return;
      }
      
this.emit("drop"e);
      
files e.dataTransfer.files;
      
this.emit("selectedfiles"files);
      if (
files.length) {
        
items e.dataTransfer.items;
        if (
items && items.length && ((items[0].webkitGetAsEntry != null) || (items[0].getAsEntry != null))) {
          
this.handleItems(items);
        } else {
          
this.handleFiles(files);
        }
      }
    };

    
Dropzone.prototype.handleFiles = function(files) {
      var 
file_i_len_results;
      
_results = [];
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
_results.push(this.addFile(file));
      }
      return 
_results;
    };

    
Dropzone.prototype.handleItems = function(items) {
      var 
entryitem_i_len;
      for (
_i 0_len items.length_i _len_i++) {
        
item items[_i];
        if (
item.webkitGetAsEntry != null) {
          
entry item.webkitGetAsEntry();
          if (
entry.isFile) {
            
this.addFile(item.getAsFile());
          } else if (
entry.isDirectory) {
            
this.addDirectory(entryentry.name);
          }
        } else {
          
this.addFile(item.getAsFile());
        }
      }
    };

    
Dropzone.prototype.accept = function(filedone) {
      if (
file.size this.options.maxFilesize 1024 1024) {
        return 
done(this.options.dictFileTooBig.replace("{{filesize}}"Math.round(file.size 1024 10.24) / 100).replace("{{maxFilesize}}"this.options.maxFilesize));
      } else if (!
Dropzone.isValidFile(filethis.options.acceptedFiles)) {
        return 
done(this.options.dictInvalidFileType);
      } else if (
this.options.maxFiles && this.getAcceptedFiles().length >= this.options.maxFiles) {
        
done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}"this.options.maxFiles));
        return 
this.emit("maxfilesexceeded"file);
      } else {
        return 
this.options.accept.call(thisfiledone);
      }
    };

    
Dropzone.prototype.addFile = function(file) {
      var 
_this this;
      
file.upload = {
        
progress0,
        
totalfile.size,
        
bytesSent0
      
};
      
this.files.push(file);
      
file.status Dropzone.ADDED;
      
this.emit("addedfile"file);
      if (
this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize 1024 1024) {
        
this.createThumbnail(file);
      }
      return 
this.accept(file, function(error) {
        if (
error) {
          
file.accepted false;
          return 
_this._errorProcessing([file], error);
        } else {
          return 
_this.enqueueFile(file);
        }
      });
    };

    
Dropzone.prototype.enqueueFiles = function(files) {
      var 
file_i_len;
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
this.enqueueFile(file);
      }
      return 
null;
    };

    
Dropzone.prototype.enqueueFile = function(file) {
      var 
_this this;
      
file.accepted true;
      if (
file.status === Dropzone.ADDED) {
        
file.status Dropzone.QUEUED;
        if (
this.options.autoProcessQueue) {
          return 
setTimeout((function() {
            return 
_this.processQueue();
          }), 
1);
        }
      } else {
        throw new 
Error("This file can't be queued because it has already been processed or was rejected.");
      }
    };

    
Dropzone.prototype.addDirectory = function(entrypath) {
      var 
dirReaderentriesReader,
        
_this this;
      
dirReader entry.createReader();
      
entriesReader = function(entries) {
        var 
_i_len;
        for (
_i 0_len entries.length_i _len_i++) {
          
entry entries[_i];
          if (
entry.isFile) {
            
entry.file(function(file) {
              if (
_this.options.ignoreHiddenFiles && file.name.substring(01) === '.') {
                return;
              }
              
file.fullPath "" path "/" file.name;
              return 
_this.addFile(file);
            });
          } else if (
entry.isDirectory) {
            
_this.addDirectory(entry"" path "/" entry.name);
          }
        }
      };
      return 
dirReader.readEntries(entriesReader, function(error) {
        return 
typeof console !== "undefined" && console !== null typeof console.log === "function" console.log(error) : void 0 void 0;
      });
    };

    
Dropzone.prototype.removeFile = function(file) {
      if (
file.status === Dropzone.UPLOADING) {
        
this.cancelUpload(file);
      }
      
this.files without(this.filesfile);
      
this.emit("removedfile"file);
      if (
this.files.length === 0) {
        return 
this.emit("reset");
      }
    };

    
Dropzone.prototype.removeAllFiles = function(cancelIfNecessary) {
      var 
file_i_len_ref;
      if (
cancelIfNecessary == null) {
        
cancelIfNecessary false;
      }
      
_ref this.files.slice();
      for (
_i 0_len _ref.length_i _len_i++) {
        
file _ref[_i];
        if (
file.status !== Dropzone.UPLOADING || cancelIfNecessary) {
          
this.removeFile(file);
        }
      }
      return 
null;
    };

    
Dropzone.prototype.createThumbnail = function(file) {
      var 
fileReader,
        
_this this;
      
fileReader = new FileReader;
      
fileReader.onload = function() {
        var 
img;
        
img = new Image;
        
img.onload = function() {
          var 
canvasctxresizeInfothumbnail_ref_ref1_ref2_ref3;
          
file.width img.width;
          
file.height img.height;
          
resizeInfo _this.options.resize.call(_thisfile);
          if (
resizeInfo.trgWidth == null) {
            
resizeInfo.trgWidth _this.options.thumbnailWidth;
          }
          if (
resizeInfo.trgHeight == null) {
            
resizeInfo.trgHeight _this.options.thumbnailHeight;
          }
          
canvas document.createElement("canvas");
          
ctx canvas.getContext("2d");
          
canvas.width resizeInfo.trgWidth;
          
canvas.height resizeInfo.trgHeight;
          
ctx.drawImage(img, (_ref resizeInfo.srcX) != null _ref 0, (_ref1 resizeInfo.srcY) != null _ref1 0resizeInfo.srcWidthresizeInfo.srcHeight, (_ref2 resizeInfo.trgX) != null _ref2 0, (_ref3 resizeInfo.trgY) != null _ref3 0resizeInfo.trgWidthresizeInfo.trgHeight);
          
thumbnail canvas.toDataURL("image/png");
          return 
_this.emit("thumbnail"filethumbnail);
        };
        return 
img.src fileReader.result;
      };
      return 
fileReader.readAsDataURL(file);
    };

    
Dropzone.prototype.processQueue = function() {
      var 
iparallelUploadsprocessingLengthqueuedFiles;
      
parallelUploads this.options.parallelUploads;
      
processingLength this.getUploadingFiles().length;
      
processingLength;
      if (
processingLength >= parallelUploads) {
        return;
      }
      
queuedFiles this.getQueuedFiles();
      if (!(
queuedFiles.length 0)) {
        return;
      }
      if (
this.options.uploadMultiple) {
        return 
this.processFiles(queuedFiles.slice(0parallelUploads processingLength));
      } else {
        while (
parallelUploads) {
          if (!
queuedFiles.length) {
            return;
          }
          
this.processFile(queuedFiles.shift());
          
i++;
        }
      }
    };

    
Dropzone.prototype.processFile = function(file) {
      return 
this.processFiles([file]);
    };

    
Dropzone.prototype.processFiles = function(files) {
      var 
file_i_len;
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
file.processing true;
        
file.status Dropzone.UPLOADING;
        
this.emit("processing"file);
      }
      if (
this.options.uploadMultiple) {
        
this.emit("processingmultiple"files);
      }
      return 
this.uploadFiles(files);
    };

    
Dropzone.prototype._getFilesWithXhr = function(xhr) {
      var 
filefiles;
      return 
files = (function() {
        var 
_i_len_ref_results;
        
_ref this.files;
        
_results = [];
        for (
_i 0_len _ref.length_i _len_i++) {
          
file _ref[_i];
          if (
file.xhr === xhr) {
            
_results.push(file);
          }
        }
        return 
_results;
      }).
call(this);
    };

    
Dropzone.prototype.cancelUpload = function(file) {
      var 
groupedFilegroupedFiles_i_j_len_len1_ref;
      if (
file.status === Dropzone.UPLOADING) {
        
groupedFiles this._getFilesWithXhr(file.xhr);
        for (
_i 0_len groupedFiles.length_i _len_i++) {
          
groupedFile groupedFiles[_i];
          
groupedFile.status Dropzone.CANCELED;
        }
        
file.xhr.abort();
        for (
_j 0_len1 groupedFiles.length_j _len1_j++) {
          
groupedFile groupedFiles[_j];
          
this.emit("canceled"groupedFile);
        }
        if (
this.options.uploadMultiple) {
          
this.emit("canceledmultiple"groupedFiles);
        }
      } else if ((
_ref file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {
        
file.status Dropzone.CANCELED;
        
this.emit("canceled"file);
        if (
this.options.uploadMultiple) {
          
this.emit("canceledmultiple", [file]);
        }
      }
      if (
this.options.autoProcessQueue) {
        return 
this.processQueue();
      }
    };

    
Dropzone.prototype.uploadFile = function(file) {
      return 
this.uploadFiles([file]);
    };

    
Dropzone.prototype.uploadFiles = function(files) {
      var 
fileformDatahandleErrorheaderNameheaderValueheadersinputinputNameinputTypekeyprogressObjresponseupdateProgressvaluexhr_i_j_k_l_len_len1_len2_len3_ref_ref1_ref2_ref3,
        
_this this;
      
xhr = new XMLHttpRequest();
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
file.xhr xhr;
      }
      
xhr.open(this.options.methodthis.options.urltrue);
      
xhr.withCredentials = !!this.options.withCredentials;
      
response null;
      
handleError = function() {
        var 
_j_len1_results;
        
_results = [];
        for (
_j 0_len1 files.length_j _len1_j++) {
          
file files[_j];
          
_results.push(_this._errorProcessing(filesresponse || _this.options.dictResponseError.replace("{{statusCode}}"xhr.status), xhr));
        }
        return 
_results;
      };
      
updateProgress = function(e) {
        var 
allFilesFinishedprogress_j_k_l_len1_len2_len3_results;
        if (
!= null) {
          
progress 100 e.loaded e.total;
          for (
_j 0_len1 files.length_j _len1_j++) {
            
file files[_j];
            
file.upload = {
              
progressprogress,
              
totale.total,
              
bytesSente.loaded
            
};
          }
        } else {
          
allFilesFinished true;
          
progress 100;
          for (
_k 0_len2 files.length_k _len2_k++) {
            
file files[_k];
            if (!(
file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {
              
allFilesFinished false;
            }
            
file.upload.progress progress;
            
file.upload.bytesSent file.upload.total;
          }
          if (
allFilesFinished) {
            return;
          }
        }
        
_results = [];
        for (
_l 0_len3 files.length_l _len3_l++) {
          
file files[_l];
          
_results.push(_this.emit("uploadprogress"fileprogressfile.upload.bytesSent));
        }
        return 
_results;
      };
      
xhr.onload = function(e) {
        var 
_ref;
        if (
files[0].status === Dropzone.CANCELED) {
          return;
        }
        if (
xhr.readyState !== 4) {
          return;
        }
        
response xhr.responseText;
        if (
xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) {
          try {
            
response JSON.parse(response);
          } catch (
_error) {
            
_error;
            
response "Invalid JSON response from server.";
          }
        }
        
updateProgress();
        if (!((
200 <= (_ref xhr.status) && _ref 300))) {
          return 
handleError();
        } else {
          return 
_this._finished(filesresponsee);
        }
      };
      
xhr.onerror = function() {
        if (
files[0].status === Dropzone.CANCELED) {
          return;
        }
        return 
handleError();
      };
      
progressObj = (_ref xhr.upload) != null _ref xhr;
      
progressObj.onprogress updateProgress;
      
headers = {
        
"Accept""application/json",
        
"Cache-Control""no-cache",
        
"X-Requested-With""XMLHttpRequest"
      
};
      if (
this.options.headers) {
        
extend(headersthis.options.headers);
      }
      for (
headerName in headers) {
        
headerValue headers[headerName];
        
xhr.setRequestHeader(headerNameheaderValue);
      }
      
formData = new FormData();
      if (
this.options.params) {
        
_ref1 this.options.params;
        for (
key in _ref1) {
          
value _ref1[key];
          
formData.append(keyvalue);
        }
      }
      for (
_j 0_len1 files.length_j _len1_j++) {
        
file files[_j];
        
this.emit("sending"filexhrformData);
      }
      if (
this.options.uploadMultiple) {
        
this.emit("sendingmultiple"filesxhrformData);
      }
      if (
this.element.tagName === "FORM") {
        
_ref2 this.element.querySelectorAll("input, textarea, select, button");
        for (
_k 0_len2 _ref2.length_k _len2_k++) {
          
input _ref2[_k];
          
inputName input.getAttribute("name");
          
inputType input.getAttribute("type");
          if (!
inputType || ((_ref3 inputType.toLowerCase()) !== "checkbox" && _ref3 !== "radio") || input.checked) {
            
formData.append(inputNameinput.value);
          }
        }
      }
      for (
_l 0_len3 files.length_l _len3_l++) {
        
file files[_l];
        
formData.append("" this.options.paramName + (this.options.uploadMultiple "[]" ""), filefile.name);
      }
      return 
xhr.send(formData);
    };

    
Dropzone.prototype._finished = function(filesresponseTexte) {
      var 
file_i_len;
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
file.status Dropzone.SUCCESS;
        
this.emit("success"fileresponseTexte);
        
this.emit("complete"file);
      }
      if (
this.options.uploadMultiple) {
        
this.emit("successmultiple"filesresponseTexte);
        
this.emit("completemultiple"files);
      }
      if (
this.options.autoProcessQueue) {
        return 
this.processQueue();
      }
    };

    
Dropzone.prototype._errorProcessing = function(filesmessagexhr) {
      var 
file_i_len;
      for (
_i 0_len files.length_i _len_i++) {
        
file files[_i];
        
file.status Dropzone.ERROR;
        
this.emit("error"filemessagexhr);
        
this.emit("complete"file);
      }
      if (
this.options.uploadMultiple) {
        
this.emit("errormultiple"filesmessagexhr);
        
this.emit("completemultiple"files);
      }
      if (
this.options.autoProcessQueue) {
        return 
this.processQueue();
      }
    };

    return 
Dropzone;

  })(
Em);

  
Dropzone.version "3.7.1";

  
Dropzone.options = {};

  
Dropzone.optionsForElement = function(element) {
    if (
element.id) {
      return 
Dropzone.options[camelize(element.id)];
    } else {
      return 
void 0;
    }
  };

  
Dropzone.instances = [];

  
Dropzone.forElement = function(element) {
    if (
typeof element === "string") {
      
element document.querySelector(element);
    }
    if ((
element != null element.dropzone void 0) == null) {
      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.");
    }
    return 
element.dropzone;
  };

  
Dropzone.autoDiscover true;

  
Dropzone.discover = function() {
    var 
checkElementsdropzonedropzones_i_len_results;
    if (
document.querySelectorAll) {
      
dropzones document.querySelectorAll(".dropzone");
    } else {
      
dropzones = [];
      
checkElements = function(elements) {
        var 
el_i_len_results;
        
_results = [];
        for (
_i 0_len elements.length_i _len_i++) {
          
el elements[_i];
          if (/(^| )
dropzone($| )/.test(el.className)) {
            
_results.push(dropzones.push(el));
          } else {
            
_results.push(void 0);
          }
        }
        return 
_results;
      };
      
checkElements(document.getElementsByTagName("div"));
      
checkElements(document.getElementsByTagName("form"));
    }
    
_results = [];
    for (
_i 0_len dropzones.length_i _len_i++) {
      
dropzone dropzones[_i];
      if (
Dropzone.optionsForElement(dropzone) !== false) {
        
_results.push(new Dropzone(dropzone));
      } else {
        
_results.push(void 0);
      }
    }
    return 
_results;
  };

  
Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version/12/i];

  
Dropzone.isBrowserSupported = function() {
    var 
capableBrowserregex_i_len_ref;
    
capableBrowser true;
    if (
window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {
      if (!(
"classList" in document.createElement("a"))) {
        
capableBrowser false;
      } else {
        
_ref Dropzone.blacklistedBrowsers;
        for (
_i 0_len _ref.length_i _len_i++) {
          
regex _ref[_i];
          if (
regex.test(navigator.userAgent)) {
            
capableBrowser false;
            continue;
          }
        }
      }
    } else {
      
capableBrowser false;
    }
    return 
capableBrowser;
  };

  
without = function(list, rejectedItem) {
    var 
item_i_len_results;
    
_results = [];
    for (
_i 0_len = list.length_i _len_i++) {
      
item = list[_i];
      if (
item !== rejectedItem) {
        
_results.push(item);
      }
    }
    return 
_results;
  };

  
camelize = function(str) {
    return 
str.replace(/[-_](w)/g, function(match) {
      return 
match[1].toUpperCase();
    });
  };

  
Dropzone.createElement = function(string) {
    var 
div;
    
div document.createElement("div");
    
div.innerHTML string;
    return 
div.childNodes[0];
  };

  
Dropzone.elementInside = function(elementcontainer) {
    if (
element === container) {
      return 
true;
    }
    while (
element element.parentNode) {
      if (
element === container) {
        return 
true;
      }
    }
    return 
false;
  };

  
Dropzone.getElement = function(elname) {
    var 
element;
    if (
typeof el === "string") {
      
element document.querySelector(el);
    } else if (
el.nodeType != null) {
      
element el;
    }
    if (
element == null) {
      throw new 
Error("Invalid `" name "` option provided. Please provide a CSS selector or a plain HTML element.");
    }
    return 
element;
  };

  
Dropzone.getElements = function(elsname) {
    var 
eelelements_i_j_len_len1_ref;
    if (
els instanceof Array) {
      
elements = [];
      try {
        for (
_i 0_len els.length_i _len_i++) {
          
el els[_i];
          
elements.push(this.getElement(elname));
        }
      } catch (
_error) {
        
_error;
        
elements null;
      }
    } else if (
typeof els === "string") {
      
elements = [];
      
_ref document.querySelectorAll(els);
      for (
_j 0_len1 _ref.length_j _len1_j++) {
        
el _ref[_j];
        
elements.push(el);
      }
    } else if (
els.nodeType != null) {
      
elements = [els];
    }
    if (!((
elements != null) && elements.length)) {
      throw new 
Error("Invalid `" name "` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");
    }
    return 
elements;
  };

  
Dropzone.confirm = function(questionacceptedrejected) {
    if (
window.confirm(question)) {
      return 
accepted();
    } else if (
rejected != null) {
      return 
rejected();
    }
  };

  
Dropzone.isValidFile = function(fileacceptedFiles) {
    var 
baseMimeTypemimeTypevalidType_i_len;
    if (!
acceptedFiles) {
      return 
true;
    }
    
acceptedFiles acceptedFiles.split(",");
    
mimeType file.type;
    
baseMimeType mimeType.replace(//.*$/, "");
    
for (_i 0_len acceptedFiles.length_i _len_i++) {
      
validType acceptedFiles[_i];
      
validType validType.trim();
      if (
validType.charAt(0) === ".") {
        if (
file.name.indexOf(validTypefile.name.length validType.length) !== -1) {
          return 
true;
        }
      } else if (
//*$/.test(validType)) {
        
if (baseMimeType === validType.replace(//.*$/, "")) {
          
return true;
        }
      } else {
        if (
mimeType === validType) {
          return 
true;
        }
      }
    }
    return 
false;
  };

  if (
typeof jQuery !== "undefined" && jQuery !== null) {
    
jQuery.fn.dropzone = function(options) {
      return 
this.each(function() {
        return new 
Dropzone(thisoptions);
      });
    };
  }

  if (
typeof module !== "undefined" && module !== null) {
    
module.exports Dropzone;
  } else {
    
window.Dropzone Dropzone;
  }

  
Dropzone.ADDED "added";

  
Dropzone.QUEUED "queued";

  
Dropzone.ACCEPTED Dropzone.QUEUED;

  
Dropzone.UPLOADING "uploading";

  
Dropzone.PROCESSING Dropzone.UPLOADING;

  
Dropzone.CANCELED "canceled";

  
Dropzone.ERROR "error";

  
Dropzone.SUCCESS "success";

  
/*
  # contentloaded.js
  #
  # Author: Diego Perini (diego.perini at gmail.com)
  # Summary: cross-browser wrapper for DOMContentLoaded
  # Updated: 20101020
  # License: MIT
  # Version: 1.2
  #
  # URL:
  # http://javascript.nwbox.com/ContentLoaded/
  # http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE
  */


  
contentLoaded = function(winfn) {
    var 
adddocdoneinitpollpreremroottop;
    
done false;
    
top true;
    
doc win.document;
    
root doc.documentElement;
    
add = (doc.addEventListener "addEventListener" "attachEvent");
    
rem = (doc.addEventListener "removeEventListener" "detachEvent");
    
pre = (doc.addEventListener "" "on");
    
init = function(e) {
      if (
e.type === "readystatechange" && doc.readyState !== "complete") {
        return;
      }
      (
e.type === "load" win doc)[rem](pre e.typeinitfalse);
      if (!
done && (done true)) {
        return 
fn.call(wine.type || e);
      }
    };
    
poll = function() {
      var 
e;
      try {
        
root.doScroll("left");
      } catch (
_error) {
        
_error;
        
setTimeout(poll50);
        return;
      }
      return 
init("poll");
    };
    if (
doc.readyState !== "complete") {
      if (
doc.createEventObject && root.doScroll) {
        try {
          
top = !win.frameElement;
        } catch (
_error) {}
        if (
top) {
          
poll();
        }
      }
      
doc[add](pre "DOMContentLoaded"initfalse);
      
doc[add](pre "readystatechange"initfalse);
      return 
win[add](pre "load"initfalse);
    }
  };

  
Dropzone._autoDiscoverFunction = function() {
    if (
Dropzone.autoDiscover) {
      return 
Dropzone.discover();
    }
  };

  
contentLoaded(windowDropzone._autoDiscoverFunction);

}).
call(this);

});
require.
alias("component-emitter/index.js""dropzone/deps/emitter/index.js");
require.
alias("component-emitter/index.js""emitter/index.js");
if (
typeof exports == "object") {
  
module.exports = require("dropzone");
} else if (
typeof define == "function" && define.amd) {
  
define(function(){ return require("dropzone"); });
} else {
  
this["Dropzone"] = require("dropzone");
}})();
?>
Онлайн: 0
Реклама