{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 8e795936abefc0d0e58f","webpack:///./src/index.js","webpack:///./~/attr-accept/dist/index.js","webpack:///external \"react\""],"names":["supportMultiple","document","createElement","Dropzone","props","context","onClick","bind","onDragStart","onDragEnter","onDragLeave","onDragOver","onDrop","onFileDialogCancel","fileAccepted","isFileDialogActive","state","isDragActive","enterCounter","body","onfocus","e","call","preventDefault","dataTransferItems","dataTransfer","items","allFilesAccepted","Array","prototype","slice","setState","isDragReject","stopPropagation","dropEffect","droppedFiles","files","target","max","multiple","length","Math","min","acceptedFiles","rejectedFiles","i","file","disablePreview","preview","window","URL","createObjectURL","fileMatchSize","push","onDropRejected","onDropAccepted","disableClick","open","fileInputEl","setTimeout","FileList","accept","size","maxSize","minSize","every","value","click","activeClassName","inputProps","name","rejectClassName","rest","activeStyle","className","rejectStyle","style","width","height","borderWidth","borderColor","borderStyle","borderRadius","backgroundColor","appliedStyle","inputAttributes","type","display","ref","el","onChange","customProps","divProps","forEach","prop","children","Component","defaultProps","Infinity","propTypes","PropTypes","func","node","object","string","bool","number"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACpCA;;;;AACA;;;;;;;;;;;;gfAHA;;AAKA,KAAMA,kBAAmB,OAAOC,QAAP,KAAoB,WAApB,IAAmCA,QAAnC,IAA+CA,SAASC,aAAzD,GACtB,cAAcD,SAASC,aAAT,CAAuB,OAAvB,CADQ,GAEtB,IAFF;;KAIMC,Q;;;AACJ,qBAAYC,KAAZ,EAAmBC,OAAnB,EAA4B;AAAA;;AAAA,qHACpBD,KADoB,EACbC,OADa;;AAE1B,WAAKC,OAAL,GAAe,MAAKA,OAAL,CAAaC,IAAb,OAAf;AACA,WAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBD,IAAjB,OAAnB;AACA,WAAKE,WAAL,GAAmB,MAAKA,WAAL,CAAiBF,IAAjB,OAAnB;AACA,WAAKG,WAAL,GAAmB,MAAKA,WAAL,CAAiBH,IAAjB,OAAnB;AACA,WAAKI,UAAL,GAAkB,MAAKA,UAAL,CAAgBJ,IAAhB,OAAlB;AACA,WAAKK,MAAL,GAAc,MAAKA,MAAL,CAAYL,IAAZ,OAAd;AACA,WAAKM,kBAAL,GAA0B,MAAKA,kBAAL,CAAwBN,IAAxB,OAA1B;AACA,WAAKO,YAAL,GAAoB,MAAKA,YAAL,CAAkBP,IAAlB,OAApB;AACA,WAAKQ,kBAAL,GAA0B,KAA1B;;AAEA,WAAKC,KAAL,GAAa;AACXC,qBAAc;AADH,MAAb;AAZ0B;AAe3B;;;;yCAEmB;AAClB,YAAKC,YAAL,GAAoB,CAApB;AACA;AACAjB,gBAASkB,IAAT,CAAcC,OAAd,GAAwB,KAAKP,kBAA7B;AACD;;;4CAEsB;AACrB;AACAZ,gBAASkB,IAAT,CAAcC,OAAd,GAAwB,IAAxB;AACD;;;iCAEWC,C,EAAG;AACb,WAAI,KAAKjB,KAAL,CAAWI,WAAf,EAA4B;AAC1B,cAAKJ,KAAL,CAAWI,WAAX,CAAuBc,IAAvB,CAA4B,IAA5B,EAAkCD,CAAlC;AACD;AACF;;;iCAEWA,C,EAAG;AACbA,SAAEE,cAAF;;AAEA;AACA,SAAE,KAAKL,YAAP;;AAEA;AACA;AACA,WAAMM,oBAAoBH,EAAEI,YAAF,IAAkBJ,EAAEI,YAAF,CAAeC,KAAjC,GAAyCL,EAAEI,YAAF,CAAeC,KAAxD,GAAgE,EAA1F;;AAEA;AACA,WAAMC,mBAAmB,KAAKA,gBAAL,CAAsBC,MAAMC,SAAN,CAAgBC,KAAhB,CAAsBR,IAAtB,CAA2BE,iBAA3B,CAAtB,CAAzB;;AAEA,YAAKO,QAAL,CAAc;AACZd,uBAAcU,gBADF;AAEZK,uBAAc,CAACL;AAFH,QAAd;;AAKA,WAAI,KAAKvB,KAAL,CAAWK,WAAf,EAA4B;AAC1B,cAAKL,KAAL,CAAWK,WAAX,CAAuBa,IAAvB,CAA4B,IAA5B,EAAkCD,CAAlC;AACD;AACF;;;gCAEUA,C,EAAG;AACZA,SAAEE,cAAF;AACAF,SAAEY,eAAF;AACAZ,SAAEI,YAAF,CAAeS,UAAf,GAA4B,MAA5B,CAHY,CAGwB;AACpC,cAAO,KAAP;AACD;;;iCAEWb,C,EAAG;AACbA,SAAEE,cAAF;;AAEA;AACA,WAAI,EAAE,KAAKL,YAAP,GAAsB,CAA1B,EAA6B;AAC3B;AACD;;AAED,YAAKa,QAAL,CAAc;AACZd,uBAAc,KADF;AAEZe,uBAAc;AAFF,QAAd;;AAKA,WAAI,KAAK5B,KAAL,CAAWM,WAAf,EAA4B;AAC1B,cAAKN,KAAL,CAAWM,WAAX,CAAuBY,IAAvB,CAA4B,IAA5B,EAAkCD,CAAlC;AACD;AACF;;;4BAEMA,C,EAAG;AACRA,SAAEE,cAAF;;AAEA;AACA,YAAKL,YAAL,GAAoB,CAApB;;AAEA,YAAKa,QAAL,CAAc;AACZd,uBAAc,KADF;AAEZe,uBAAc;AAFF,QAAd;;AAKA,WAAMG,eAAed,EAAEI,YAAF,GAAiBJ,EAAEI,YAAF,CAAeW,KAAhC,GAAwCf,EAAEgB,MAAF,CAASD,KAAtE;AACA,WAAME,MAAM,KAAKlC,KAAL,CAAWmC,QAAX,GAAsBJ,aAAaK,MAAnC,GAA4CC,KAAKC,GAAL,CAASP,aAAaK,MAAtB,EAA8B,CAA9B,CAAxD;AACA,WAAMG,gBAAgB,EAAtB;AACA,WAAMC,gBAAgB,EAAtB;;AAEA,YAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIP,GAApB,EAAyBO,GAAzB,EAA8B;AAC5B,aAAMC,OAAOX,aAAaU,CAAb,CAAb;AACA;AACA,aAAI,CAAC,KAAKzC,KAAL,CAAW2C,cAAhB,EAAgC;AAC9BD,gBAAKE,OAAL,GAAeC,OAAOC,GAAP,CAAWC,eAAX,CAA2BL,IAA3B,CAAf;AACD;;AAED,aAAI,KAAKhC,YAAL,CAAkBgC,IAAlB,KAA2B,KAAKM,aAAL,CAAmBN,IAAnB,CAA/B,EAAyD;AACvDH,yBAAcU,IAAd,CAAmBP,IAAnB;AACD,UAFD,MAEO;AACLF,yBAAcS,IAAd,CAAmBP,IAAnB;AACD;AACF;;AAED,WAAI,KAAK1C,KAAL,CAAWQ,MAAf,EAAuB;AACrB,cAAKR,KAAL,CAAWQ,MAAX,CAAkBU,IAAlB,CAAuB,IAAvB,EAA6BqB,aAA7B,EAA4CC,aAA5C,EAA2DvB,CAA3D;AACD;;AAED,WAAIuB,cAAcJ,MAAd,GAAuB,CAA3B,EAA8B;AAC5B,aAAI,KAAKpC,KAAL,CAAWkD,cAAf,EAA+B;AAC7B,gBAAKlD,KAAL,CAAWkD,cAAX,CAA0BhC,IAA1B,CAA+B,IAA/B,EAAqCsB,aAArC,EAAoDvB,CAApD;AACD;AACF,QAJD,MAIO,IAAIsB,cAAcH,MAAd,GAAuB,CAA3B,EAA8B;AACnC,aAAI,KAAKpC,KAAL,CAAWmD,cAAf,EAA+B;AAC7B,gBAAKnD,KAAL,CAAWmD,cAAX,CAA0BjC,IAA1B,CAA+B,IAA/B,EAAqCqB,aAArC,EAAoDtB,CAApD;AACD;AACF;AACD,YAAKN,kBAAL,GAA0B,KAA1B;AACD;;;+BAES;AACR,WAAI,CAAC,KAAKX,KAAL,CAAWoD,YAAhB,EAA8B;AAC5B,cAAKC,IAAL;AACD;AACF;;;0CAEoB;AACnB;AADmB,WAEX5C,kBAFW,GAEY,KAAKT,KAFjB,CAEXS,kBAFW;AAAA,WAGX6C,WAHW,GAGK,IAHL,CAGXA,WAHW;AAAA,WAIb3C,kBAJa,GAIU,IAJV,CAIbA,kBAJa;AAKnB;AACA;;AACA,WAAIF,sBAAsBE,kBAA1B,EAA8C;AAC5C4C,oBAAW,YAAM;AACf;AACA,eAAMC,WAAWF,YAAYtB,KAA7B;AACA,eAAI,CAACwB,SAASpB,MAAd,EAAsB;AACpBzB,kCAAqB,KAArB;AACAF;AACD;AACF,UAPD,EAOG,GAPH;AAQD;AACF;;;kCAEYiC,I,EAAM;AACjB,cAAO,0BAAQA,IAAR,EAAc,KAAK1C,KAAL,CAAWyD,MAAzB,CAAP;AACD;;;mCAEaf,I,EAAM;AAClB,cAAOA,KAAKgB,IAAL,IAAa,KAAK1D,KAAL,CAAW2D,OAAxB,IAAmCjB,KAAKgB,IAAL,IAAa,KAAK1D,KAAL,CAAW4D,OAAlE;AACD;;;sCAEgB5B,K,EAAO;AACtB,cAAOA,MAAM6B,KAAN,CAAY,KAAKnD,YAAjB,CAAP;AACD;;;4BAEM;AACL,YAAKC,kBAAL,GAA0B,IAA1B;AACA,YAAK2C,WAAL,CAAiBQ,KAAjB,GAAyB,IAAzB;AACA,YAAKR,WAAL,CAAiBS,KAAjB;AACD;;;8BAEQ;AAAA;;AAAA,oBASH,KAAK/D,KATF;AAAA,WAELyD,MAFK,UAELA,MAFK;AAAA,WAGLO,eAHK,UAGLA,eAHK;AAAA,WAILC,UAJK,UAILA,UAJK;AAAA,WAKL9B,QALK,UAKLA,QALK;AAAA,WAML+B,IANK,UAMLA,IANK;AAAA,WAOLC,eAPK,UAOLA,eAPK;;AAAA,WAQFC,IARE;;AAAA,WAYLC,WAZK,GAiBHD,IAjBG,CAYLC,WAZK;AAAA,WAaLC,SAbK,GAiBHF,IAjBG,CAaLE,SAbK;AAAA,WAcLC,WAdK,GAiBHH,IAjBG,CAcLG,WAdK;AAAA,WAeLC,KAfK,GAiBHJ,IAjBG,CAeLI,KAfK;;AAAA,WAgBFxE,KAhBE,4BAiBHoE,IAjBG;;AAAA,oBAmBgC,KAAKxD,KAnBrC;AAAA,WAmBCC,YAnBD,UAmBCA,YAnBD;AAAA,WAmBee,YAnBf,UAmBeA,YAnBf;;;AAqBP0C,mBAAYA,aAAa,EAAzB;;AAEA,WAAIzD,gBAAgBmD,eAApB,EAAqC;AACnCM,sBAAa,MAAMN,eAAnB;AACD;AACD,WAAIpC,gBAAgBuC,eAApB,EAAqC;AACnCG,sBAAa,MAAMH,eAAnB;AACD;;AAED,WAAI,CAACG,SAAD,IAAc,CAACE,KAAf,IAAwB,CAACH,WAAzB,IAAwC,CAACE,WAA7C,EAA0D;AACxDC,iBAAQ;AACNC,kBAAO,GADD;AAENC,mBAAQ,GAFF;AAGNC,wBAAa,CAHP;AAINC,wBAAa,MAJP;AAKNC,wBAAa,QALP;AAMNC,yBAAc;AANR,UAAR;AAQAT,uBAAc;AACZQ,wBAAa,OADD;AAEZE,4BAAiB;AAFL,UAAd;AAIAR,uBAAc;AACZM,wBAAa,OADD;AAEZE,4BAAiB;AAFL,UAAd;AAID;;AAED,WAAIC,qBAAJ;AACA,WAAIX,eAAexD,YAAnB,EAAiC;AAC/BmE,qCACKR,KADL,EAEKH,WAFL;AAID,QALD,MAKO,IAAIE,eAAe3C,YAAnB,EAAiC;AACtCoD,qCACKR,KADL,EAEKD,WAFL;AAID,QALM,MAKA;AACLS,qCACKR,KADL;AAGD;;AAED,WAAMS,kBAAkB;AACtBxB,uBADsB;AAEtByB,eAAM,MAFgB;AAGtBV,gBAAO,EAAEW,SAAS,MAAX,EAHe;AAItBhD,mBAAUvC,mBAAmBuC,QAJP;AAKtBiD,cAAK;AAAA,kBAAM,OAAK9B,WAAL,GAAmB+B,EAAzB;AAAA,UALiB,EAKY;AAClCC,mBAAU,KAAK9E;AANO,QAAxB;;AASA,WAAI0D,QAAQA,KAAK9B,MAAjB,EAAyB;AACvB6C,yBAAgBf,IAAhB,GAAuBA,IAAvB;AACD;;AAED;AACA,WAAMqB,cAAc,CAClB,gBADkB,EACA,cADA,EACgB,gBADhB,EACkC,gBADlC,EACoD,SADpD,EAC+D,SAD/D,EAC0E,oBAD1E,CAApB;AAGA,WAAMC,wBAAgBxF,KAAhB,CAAN;AACAuF,mBAAYE,OAAZ,CAAoB;AAAA,gBAAQ,OAAOD,SAASE,IAAT,CAAf;AAAA,QAApB;;AAEA,cACE;AAAA;AAAA;AACE,sBAAWpB,SADb;AAEE,kBAAOU;AAFT,YAGMQ,QAHN,CAGc,6EAHd;AAIE,oBAAS,KAAKtF,OAJhB;AAKE,wBAAa,KAAKE,WALpB;AAME,wBAAa,KAAKC,WANpB;AAOE,uBAAY,KAAKE,UAPnB;AAQE,wBAAa,KAAKD,WARpB;AASE,mBAAQ,KAAKE;AATf;AAWG,cAAKR,KAAL,CAAW2F,QAXd;AAYE,6DACM1B,UADN,CACgB,4EADhB,EAEMgB,eAFN;AAZF,QADF;AAmBD;;;;GArRoB,gBAAMW,S;;AAwR7B7F,UAAS8F,YAAT,GAAwB;AACtBlD,mBAAgB,KADM;AAEtBS,iBAAc,KAFQ;AAGtBjB,aAAU,IAHY;AAItBwB,YAASmC,QAJa;AAKtBlC,YAAS;AALa,EAAxB;;AAQA7D,UAASgG,SAAT,GAAqB;AACnB;AACAvF,WAAQ,gBAAMwF,SAAN,CAAgBC,IAFL;AAGnB9C,mBAAgB,gBAAM6C,SAAN,CAAgBC,IAHb;AAInB/C,mBAAgB,gBAAM8C,SAAN,CAAgBC,IAJb;;AAMnB;AACA7F,gBAAa,gBAAM4F,SAAN,CAAgBC,IAPV;AAQnB5F,gBAAa,gBAAM2F,SAAN,CAAgBC,IARV;AASnB3F,gBAAa,gBAAM0F,SAAN,CAAgBC,IATV;;AAWnBN,aAAU,gBAAMK,SAAN,CAAgBE,IAXP,EAWa;AAChC1B,UAAO,gBAAMwB,SAAN,CAAgBG,MAZJ,EAYY;AAC/B9B,gBAAa,gBAAM2B,SAAN,CAAgBG,MAbV,EAakB;AACrC5B,gBAAa,gBAAMyB,SAAN,CAAgBG,MAdV,EAckB;AACrC7B,cAAW,gBAAM0B,SAAN,CAAgBI,MAfR,EAegB;AACnCpC,oBAAiB,gBAAMgC,SAAN,CAAgBI,MAhBd,EAgBsB;AACzCjC,oBAAiB,gBAAM6B,SAAN,CAAgBI,MAjBd,EAiBsB;;AAEzCzD,mBAAgB,gBAAMqD,SAAN,CAAgBK,IAnBb,EAmBmB;AACtCjD,iBAAc,gBAAM4C,SAAN,CAAgBK,IApBX,EAoBiB;AACpC5F,uBAAoB,gBAAMuF,SAAN,CAAgBC,IArBjB,EAqBuB;;AAE1ChC,eAAY,gBAAM+B,SAAN,CAAgBG,MAvBT,EAuBiB;AACpChE,aAAU,gBAAM6D,SAAN,CAAgBK,IAxBP,EAwBa;AAChC5C,WAAQ,gBAAMuC,SAAN,CAAgBI,MAzBL,EAyBa;AAChClC,SAAM,gBAAM8B,SAAN,CAAgBI,MA1BH,EA0BW;AAC9BzC,YAAS,gBAAMqC,SAAN,CAAgBM,MA3BN;AA4BnB1C,YAAS,gBAAMoC,SAAN,CAAgBM;AA5BN,EAArB;;mBA+BevG,Q;;;;;;;ACxUf,4BAA2B,cAAc,4BAA4B,YAAY,UAAU,iBAAiB,gEAAgE,SAAS,+BAA+B,kBAAkB,aAAa,qDAAqD,SAAS,iBAAiB,qEAAqE,OAAO,qBAAqB,eAAe,kHAAkH,GAAG,GAAG,iCAAiC,SAAS,wBAAwB,eAAe,iBAAiB,iBAAiB,8BAA8B,eAAe,8IAA8I,8BAA8B,iBAAiB,+DAA+D,kBAAkB,6BAA6B,mBAAmB,sDAAsD,WAAW,yBAAyB,EAAE,SAAS,kKAAkK,UAAU,2DAA2D,iBAAiB,mBAAmB,gCAAgC,6BAA6B,iBAAiB,iBAAiB,eAAe,aAAa,WAAW,mDAAmD,gNAAgN,eAAe,wBAAwB,sBAAsB,mEAAmE,iBAAiB,iCAAiC,sBAAsB,qDAAqD,iBAAiB,gCAAgC,iBAAiB,qCAAqC,eAAe,sBAAsB,iEAAiE,UAAU,eAAe,QAAQ,UAAU,sBAAsB,8BAA8B,iBAAiB,YAAY,0BAA0B,4BAA4B,UAAU,0BAA0B,oBAAoB,4BAA4B,sBAAsB,8BAA8B,wBAAwB,kBAAkB,8BAA8B,eAAe,sBAAsB,yDAAyD,UAAU,iBAAiB,sBAAsB,UAAU,IAAI,YAAY,SAAS,IAAI,wCAAwC,WAAW,UAAU,eAAe,sBAAsB,IAAI,YAAY,SAAS,WAAW,eAAe,sBAAsB,wDAAwD,iBAAiB,oCAAoC,sBAAsB,MAAM,qDAAqD,eAAe,wBAAwB,OAAO,gEAAgE,iBAAiB,6EAA6E,+BAA+B,iBAAiB,8BAA8B,4HAA4H,kCAAkC,qDAAqD,EAAE,iBAAiB,kDAAkD,EAAE,sBAAsB,qBAAqB,GAAG,iBAAiB,oBAAoB,0BAA0B,8DAA8D,qBAAqB,iBAAiB,4BAA4B,kCAAkC,MAAM,eAAe,UAAU,IAAI,EAAE,eAAe,6BAA6B,sBAAsB,mCAAmC,iBAAiB,uBAAuB,sBAAsB,uCAAuC,iBAAiB,aAAa,gDAAgD,6BAA6B,qBAAqB,iHAAiH,kDAAkD,EAAE,iBAAiB,0CAA0C,iBAAiB,qCAAqC,wEAAwE,GAAG,kOAAkO,G;;;;;;ACAj2J,gD","file":"index.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Dropzone\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Dropzone\"] = factory(root[\"react\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 8e795936abefc0d0e58f\n **/","/* eslint prefer-template: 0 */\n\nimport accepts from 'attr-accept';\nimport React from 'react';\n\nconst supportMultiple = (typeof document !== 'undefined' && document && document.createElement) ?\n 'multiple' in document.createElement('input') :\n true;\n\nclass Dropzone extends React.Component {\n constructor(props, context) {\n super(props, context);\n this.onClick = this.onClick.bind(this);\n this.onDragStart = this.onDragStart.bind(this);\n this.onDragEnter = this.onDragEnter.bind(this);\n this.onDragLeave = this.onDragLeave.bind(this);\n this.onDragOver = this.onDragOver.bind(this);\n this.onDrop = this.onDrop.bind(this);\n this.onFileDialogCancel = this.onFileDialogCancel.bind(this);\n this.fileAccepted = this.fileAccepted.bind(this);\n this.isFileDialogActive = false;\n\n this.state = {\n isDragActive: false\n };\n }\n\n componentDidMount() {\n this.enterCounter = 0;\n // Tried implementing addEventListener, but didn't work out\n document.body.onfocus = this.onFileDialogCancel;\n }\n\n componentWillUnmount() {\n // Can be replaced with removeEventListener, if addEventListener works\n document.body.onfocus = null;\n }\n\n onDragStart(e) {\n if (this.props.onDragStart) {\n this.props.onDragStart.call(this, e);\n }\n }\n\n onDragEnter(e) {\n e.preventDefault();\n\n // Count the dropzone and any children that are entered.\n ++this.enterCounter;\n\n // This is tricky. During the drag even the dataTransfer.files is null\n // But Chrome implements some drag store, which is accesible via dataTransfer.items\n const dataTransferItems = e.dataTransfer && e.dataTransfer.items ? e.dataTransfer.items : [];\n\n // Now we need to convert the DataTransferList to Array\n const allFilesAccepted = this.allFilesAccepted(Array.prototype.slice.call(dataTransferItems));\n\n this.setState({\n isDragActive: allFilesAccepted,\n isDragReject: !allFilesAccepted\n });\n\n if (this.props.onDragEnter) {\n this.props.onDragEnter.call(this, e);\n }\n }\n\n onDragOver(e) {\n e.preventDefault();\n e.stopPropagation();\n e.dataTransfer.dropEffect = 'copy'; // eslint-disable-line no-param-reassign\n return false;\n }\n\n onDragLeave(e) {\n e.preventDefault();\n\n // Only deactivate once the dropzone and all children was left.\n if (--this.enterCounter > 0) {\n return;\n }\n\n this.setState({\n isDragActive: false,\n isDragReject: false\n });\n\n if (this.props.onDragLeave) {\n this.props.onDragLeave.call(this, e);\n }\n }\n\n onDrop(e) {\n e.preventDefault();\n\n // Reset the counter along with the drag on a drop.\n this.enterCounter = 0;\n\n this.setState({\n isDragActive: false,\n isDragReject: false\n });\n\n const droppedFiles = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n const max = this.props.multiple ? droppedFiles.length : Math.min(droppedFiles.length, 1);\n const acceptedFiles = [];\n const rejectedFiles = [];\n\n for (let i = 0; i < max; i++) {\n const file = droppedFiles[i];\n // We might want to disable the preview creation to support big files\n if (!this.props.disablePreview) {\n file.preview = window.URL.createObjectURL(file);\n }\n\n if (this.fileAccepted(file) && this.fileMatchSize(file)) {\n acceptedFiles.push(file);\n } else {\n rejectedFiles.push(file);\n }\n }\n\n if (this.props.onDrop) {\n this.props.onDrop.call(this, acceptedFiles, rejectedFiles, e);\n }\n\n if (rejectedFiles.length > 0) {\n if (this.props.onDropRejected) {\n this.props.onDropRejected.call(this, rejectedFiles, e);\n }\n } else if (acceptedFiles.length > 0) {\n if (this.props.onDropAccepted) {\n this.props.onDropAccepted.call(this, acceptedFiles, e);\n }\n }\n this.isFileDialogActive = false;\n }\n\n onClick() {\n if (!this.props.disableClick) {\n this.open();\n }\n }\n\n onFileDialogCancel() {\n // timeout will not recognize context of this method\n const { onFileDialogCancel } = this.props;\n const { fileInputEl } = this;\n let { isFileDialogActive } = this;\n // execute the timeout only if the onFileDialogCancel is defined and FileDialog\n // is opened in the browser\n if (onFileDialogCancel && isFileDialogActive) {\n setTimeout(() => {\n // Returns an object as FileList\n const FileList = fileInputEl.files;\n if (!FileList.length) {\n isFileDialogActive = false;\n onFileDialogCancel();\n }\n }, 300);\n }\n }\n\n fileAccepted(file) {\n return accepts(file, this.props.accept);\n }\n\n fileMatchSize(file) {\n return file.size <= this.props.maxSize && file.size >= this.props.minSize;\n }\n\n allFilesAccepted(files) {\n return files.every(this.fileAccepted);\n }\n\n open() {\n this.isFileDialogActive = true;\n this.fileInputEl.value = null;\n this.fileInputEl.click();\n }\n\n render() {\n const {\n accept,\n activeClassName,\n inputProps,\n multiple,\n name,\n rejectClassName,\n ...rest\n } = this.props;\n\n let {\n activeStyle,\n className,\n rejectStyle,\n style,\n ...props // eslint-disable-line prefer-const\n } = rest;\n\n const { isDragActive, isDragReject } = this.state;\n\n className = className || '';\n\n if (isDragActive && activeClassName) {\n className += ' ' + activeClassName;\n }\n if (isDragReject && rejectClassName) {\n className += ' ' + rejectClassName;\n }\n\n if (!className && !style && !activeStyle && !rejectStyle) {\n style = {\n width: 200,\n height: 200,\n borderWidth: 2,\n borderColor: '#666',\n borderStyle: 'dashed',\n borderRadius: 5\n };\n activeStyle = {\n borderStyle: 'solid',\n backgroundColor: '#eee'\n };\n rejectStyle = {\n borderStyle: 'solid',\n backgroundColor: '#ffdddd'\n };\n }\n\n let appliedStyle;\n if (activeStyle && isDragActive) {\n appliedStyle = {\n ...style,\n ...activeStyle\n };\n } else if (rejectStyle && isDragReject) {\n appliedStyle = {\n ...style,\n ...rejectStyle\n };\n } else {\n appliedStyle = {\n ...style\n };\n }\n\n const inputAttributes = {\n accept,\n type: 'file',\n style: { display: 'none' },\n multiple: supportMultiple && multiple,\n ref: el => this.fileInputEl = el, // eslint-disable-line\n onChange: this.onDrop\n };\n\n if (name && name.length) {\n inputAttributes.name = name;\n }\n\n // Remove custom properties before passing them to the wrapper div element\n const customProps = [\n 'disablePreview', 'disableClick', 'onDropAccepted', 'onDropRejected', 'maxSize', 'minSize', 'onFileDialogCancel'\n ];\n const divProps = { ...props };\n customProps.forEach(prop => delete divProps[prop]);\n\n return (\n