{"version":3,"sources":["webpack:///./node_modules/@uppy/store-default/lib/index.js","webpack:///./node_modules/@uppy/status-bar/lib/StatusBarStates.js","webpack:///./node_modules/@uppy/locales/lib/de_DE.js","webpack:///./node_modules/@uppy/utils/lib/findAllDOMElements.js","webpack:///./node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getFilesAndDirectoriesFromDirectory.js","webpack:///./node_modules/@uppy/utils/lib/prettyETA.js","webpack:///./node_modules/@uppy/utils/lib/emitSocketProgress.js","webpack:///./node_modules/@uppy/utils/lib/isObjectURL.js","webpack:///./node_modules/@uppy/xhr-upload/lib/index.js","webpack:///./node_modules/@uppy/utils/lib/getBytesRemaining.js","webpack:///./node_modules/@uppy/utils/lib/getDroppedFiles/utils/fallbackApi.js","webpack:///./node_modules/@uppy/status-bar/lib/index.js","webpack:///./node_modules/@uppy/utils/lib/getFileType.js","webpack:///./node_modules/@uppy/utils/lib/isPreviewSupported.js","webpack:///./node_modules/@uppy/informer/lib/index.js","webpack:///./node_modules/@uppy/utils/lib/mimeTypes.js","webpack:///./node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/index.js","webpack:///./node_modules/@uppy/utils/lib/getDroppedFiles/utils/webkitGetAsEntryApi/getRelativePath.js","webpack:///./node_modules/@uppy/status-bar/lib/StatusBar.js","webpack:///./node_modules/@uppy/utils/lib/dataURItoBlob.js","webpack:///./node_modules/@uppy/utils/lib/isDOMElement.js","webpack:///./node_modules/@uppy/utils/lib/secondsToTime.js","webpack:///./node_modules/@uppy/utils/lib/EventTracker.js","webpack:///./node_modules/@uppy/utils/lib/settle.js","webpack:///./node_modules/@uppy/utils/lib/getTimeStamp.js","webpack:///./node_modules/@uppy/utils/lib/isNetworkError.js","webpack:///./node_modules/@uppy/utils/lib/findDOMElement.js","webpack:///./node_modules/@uppy/utils/lib/toArray.js","webpack:///./node_modules/@uppy/utils/lib/NetworkError.js","webpack:///./node_modules/@uppy/utils/lib/generateFileID.js","webpack:///./node_modules/@uppy/utils/lib/getSocketHost.js","webpack:///./node_modules/@uppy/utils/lib/getFileNameAndExtension.js","webpack:///./node_modules/@uppy/utils/lib/fetchWithNetworkError.js","webpack:///./node_modules/@uppy/utils/lib/RateLimitedQueue.js","webpack:///./node_modules/@uppy/utils/lib/isDragDropSupported.js","webpack:///./node_modules/@uppy/utils/lib/getDroppedFiles/index.js","webpack:///./node_modules/@uppy/utils/lib/Translator.js","webpack:///./node_modules/@uppy/utils/lib/ProgressTimeout.js","webpack:///./node_modules/@uppy/utils/lib/hasProperty.js","webpack:///./node_modules/@uppy/thumbnail-generator/lib/index.js","webpack:///./node_modules/@uppy/utils/lib/getSpeed.js","webpack:///./node_modules/@uppy/utils/lib/FOCUSABLE_ELEMENTS.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","DefaultStore","state","callbacks","_proto","getState","setState","patch","prevState","nextState","_publish","subscribe","listener","_this","push","splice","indexOf","_len","args","Array","_key","forEach","VERSION","module","exports","STATE_ERROR","STATE_WAITING","STATE_PREPROCESSING","STATE_UPLOADING","STATE_POSTPROCESSING","STATE_COMPLETE","de_DE","addMoreFiles","addingMoreFiles","allowAccessDescription","allowAccessTitle","authenticateWith","authenticateWithTitle","back","addMore","browse","browseFiles","cancel","cancelUpload","chooseFiles","closeModal","companionError","complete","connectedToInternet","copyLink","copyLinkToClipboardFallback","copyLinkToClipboardSuccess","creatingAssembly","creatingAssemblyFailed","dashboardTitle","dashboardWindowTitle","dataUploadedOfTotal","done","dropHereOr","dropHint","dropPasteBoth","dropPasteFiles","dropPasteFolders","dropPasteImportBoth","dropPasteImportFiles","dropPasteImportFolders","editFile","editing","emptyFolderAdded","encoding","enterCorrectUrl","enterUrlToImport","exceedsSize","failedToFetch","failedToUpload","fileSource","filesUploadedOfTotal","filter","finishEditingFile","folderAdded","import","importFrom","loading","logOut","myDevice","noDuplicates","noFilesFound","noInternetConnection","noNewAlreadyUploading","pause","pauseUpload","paused","poweredBy","processingXFiles","recordingLength","removeFile","resetFilter","resume","resumeUpload","retry","retryUpload","saveChanges","selectX","smile","startRecording","stopRecording","takePicture","timedOut","upload","uploadComplete","uploadFailed","uploadPaused","uploadXFiles","uploadXNewFiles","uploading","uploadingXFiles","xFilesSelected","xMoreFilesAdded","xTimeLeft","youCanOnlyUploadFileTypes","youCanOnlyUploadX","youHaveToAtLeastSelectX","selectAllFilesFromFolderNamed","unselectAllFilesFromFolderNamed","selectFileNamed","unselectFileNamed","openFolderNamed","n","window","Uppy","locales","isDOMElement","element","elements","slice","document","querySelectorAll","getFilesAndDirectoriesFromDirectory","directoryReader","oldEntries","logDropError","_ref","onSuccess","readEntries","entries","newEntries","concat","setTimeout","error","secondsToTime","seconds","time","hoursStr","hours","minutesVal","minutes","substr","minutesStr","secondsVal","secondsStr","throttle","_emitSocketProgress","uploader","progressData","file","progress","bytesUploaded","bytesTotal","uppy","log","emit","leading","trailing","url","_class","_temp","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","create","constructor","__proto__","_require","Plugin","cuid","Translator","_require2","Provider","RequestClient","Socket","emitSocketProgress","getSocketHost","settle","EventTracker","ProgressTimeout","RateLimitedQueue","NetworkError","isNetworkError","buildResponseError","xhr","Error","data","request","setTypeInBlob","dataWithUpdatedType","size","meta","type","_Plugin","XHRUpload","opts","id","title","defaultLocale","strings","defaultOptions","formData","fieldName","method","metaFields","responseUrlFieldName","bundle","headers","timeout","limit","withCredentials","responseType","getResponseData","responseText","response","parsedResponse","JSON","parse","err","console","getResponseError","validateStatus","status","i18nInit","handleUpload","bind","__queue","requests","uploaderEvents","setOptions","newOpts","translator","locale","i18n","translate","setPluginState","getOptions","overrides","xhrUpload","addMetadata","isArray","keys","item","append","createFormDataUpload","formPost","FormData","name","createBundledUpload","files","_this2","_this$uppy$getState","createBareUpload","current","total","_this3","Promise","resolve","reject","XMLHttpRequest","timer","abort","queuedRequest","Math","ceil","addEventListener","ev","loaded","lengthComputable","remove","body","uploadURL","uploadResp","_body","open","toUpperCase","endpoint","header","setRequestHeader","run","send","onFileRemove","onCancelAll","uploadRemote","_this4","fields","Client","remote","providerOptions","provider","client","post","fieldname","metadata","httpMethod","useFormData","then","res","token","host","companionUrl","socket","autoOpen","onRetry","onRetryAll","on","errData","resp","message","cause","isPaused","close","catch","uploadBundle","_this5","optsFromState","emitError","uploadFiles","_this6","promises","map","parseInt","isRemote","fileID","cb","targetFileID","_this7","filesToRetry","getFile","_this8","fileIDs","_this9","isSomeFileRemote","some","install","_this$uppy$getState2","capabilities","individualCancellation","addUploader","uninstall","_this$uppy$getState3","removeUploader","fileProgress","toArray","dataTransfer","StatusBarUI","statusBarStates","getSpeed","getBytesRemaining","StatusBar","startUpload","0","1","hideUploadButton","hideRetryButton","hidePauseResumeButton","hideCancelButton","showProgressDetails","hideAfterFinish","render","getTotalSpeed","totalSpeed","getTotalETA","totalBytesRemaining","reduce","round","getUploadingState","isAllErrored","isAllComplete","uploadStarted","preprocess","postprocess","allowNewUpload","totalProgress","filesArray","newFiles","uploadStartedFiles","pausedFiles","completeFiles","erroredFiles","inProgressFiles","inProgressNotPausedFiles","startedFiles","processingFiles","totalETA","totalSize","totalUploadedSize","isUploadStarted","isAllPaused","isUploadInProgress","resumableUploads","supportsUploadProgress","uploadProgress","uploadState","numUploads","pauseAll","resumeAll","retryAll","cancelAll","isTargetDOMEl","mount","unmount","getFileNameAndExtension","mimeTypes","fileExtension","extension","toLowerCase","fileType","fileTypeSpecific","split","test","h","Informer","_state$info","info","isHidden","details","displayErrorAlert","errorMessage","alert","handleMouseOver","clearTimeout","infoTimeoutID","handleMouseLeave","hideInfo","class","role","onclick","onMouseOver","onMouseLeave","md","markdown","mp4","mp3","svg","jpg","png","gif","heic","heif","yaml","yml","csv","tsv","tab","avi","mks","mkv","mov","doc","docm","docx","dot","dotm","dotx","xla","xlam","xlc","xlf","xlm","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xlw","txt","text","conf","pdf","getRelativePath","rootPromises","createPromiseToAddFileOrParseDirectory","entry","isFile","relativePath","isDirectory","createReader","all","items","webkitGetAsEntry","fileEntry","fullPath","classNames","prettierBytes","prettyETA","calculateProcessingProgress","progresses","_progresses$","mode","value","isDeterminate","index","togglePauseResume","props","progressMode","progressBarContent","_props","progressValue","ProgressBarProcessing","ProgressBarComplete","ProgressBarUploading","undefined","ProgressBarError","width","showUploadBtn","showCancelBtn","showPauseResumeBtn","showRetryBtn","progressClassNames","statusBarClassNames","style","UploadBtn","RetryBtn","PauseResumeButton","CancelBtn","uploadBtnClassNames","smart_count","focusable","height","viewBox","d","fill","cx","cy","r","LoadingSpinner","renderDot","ProgressDetails","ifShowFilesUploadedOfTotal","UnknownProgressDetails","UploadNewlyAddedFiles","ThrottledProgressDetails","showUploadNewlyAddedFiles","_ref2","dataURI","toFile","mimeType","bytes","binary","atob","array","charCodeAt","Uint8Array","File","Blob","obj","nodeType","Node","ELEMENT_NODE","rawSeconds","floor","emitter","_events","_emitter","event","fn","off","resolutions","rejections","resolved","rejected","wait","promise","successful","failed","pad","str","date","Date","getHours","toString","getMinutes","getSeconds","readyState","context","querySelector","list","_wrapNativeSuper","Class","_cache","Map","_isNativeFunction","TypeError","has","get","set","Wrapper","_construct","_getPrototypeOf","enumerable","writable","configurable","_setPrototypeOf","Parent","_isNativeReflectConstruct","Reflect","construct","a","Constructor","Function","instance","sham","Proxy","e","o","p","setPrototypeOf","getPrototypeOf","_Error","encodeFilename","suffix","replace","character","encodeCharacter","lastModified","regex","exec","socketProtocol","fullFileName","lastDot","lastIndexOf","fetch","findIndex","predicate","createCancelError","Infinity","activeRequests","queuedHandlers","_call","cancelActive","_done","_queueNext","_next","next","shift","handler","_queue","options","priority","_dequeue","other","queueOptions","wrapPromiseFunction","outerPromise","cancelError","innerPromise","result","div","createElement","webkitGetAsEntryApi","fallbackApi","_ref$logDropError","pluralize","_apply","prevLocale","interpolate","phrase","_String$prototype","String","dollarRegex","dollarBillsYall","interpolated","arg","replacement","insertReplacement","RegExp","rx","newParts","chunk","raw","translateArray","join","string","hasPluralForms","plural","timeoutHandler","_timeout","_onTimedOut","_isDone","_aliveTimer","object","dataURItoBlob","isObjectURL","isPreviewSupported","MathLog2","exifr","ThumbnailGenerator","onFileAdded","preview","addToQueue","onCancelRequest","queue","onFileRemoved","URL","revokeObjectURL","onRestored","isRestored","waitUntilAllProcessed","emitPreprocessCompleteForAll","queueProcessing","once","defaultThumbnailDimension","generatingThumbnails","thumbnailWidth","thumbnailHeight","waitForThumbnailsBeforeUpload","lazy","createThumbnail","targetWidth","targetHeight","originalUrl","createObjectURL","onload","image","Image","src","orientationPromise","rotation","_err","orientation","dimensions","getProportionalDimensions","deg","rotatedImage","rotateImage","resizedImage","resizeImage","canvasToBlob","blob","img","aspect","protect","ratio","maxSquare","maxSize","maxW","sqrt","maxH","canvas","getContext","drawImage","steps","sW","pow","sH","x","w","rotate","rad","scale","scaleX","scaleY","quality","getImageData","code","toBlob","toDataURL","setPreviewURL","setFileState","processQueue","requestThumbnail","addPreProcessor","removePreProcessor","timeElapsed","uploadSpeed"],"mappings":"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","file":"js/chunk-vendors~19db5df1.d9f1f866.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * Default store that keeps state in a simple object.\n */\nvar DefaultStore = /*#__PURE__*/function () {\n function DefaultStore() {\n this.state = {};\n this.callbacks = [];\n }\n\n var _proto = DefaultStore.prototype;\n\n _proto.getState = function getState() {\n return this.state;\n };\n\n _proto.setState = function setState(patch) {\n var prevState = _extends({}, this.state);\n\n var nextState = _extends({}, this.state, patch);\n\n this.state = nextState;\n\n this._publish(prevState, nextState, patch);\n };\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n this.callbacks.push(listener);\n return function () {\n // Remove the listener.\n _this.callbacks.splice(_this.callbacks.indexOf(listener), 1);\n };\n };\n\n _proto._publish = function _publish() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.callbacks.forEach(function (listener) {\n listener.apply(void 0, args);\n });\n };\n\n return DefaultStore;\n}();\n\nDefaultStore.VERSION = \"1.2.4\";\n\nmodule.exports = function defaultStore() {\n return new DefaultStore();\n};","module.exports = {\n STATE_ERROR: 'error',\n STATE_WAITING: 'waiting',\n STATE_PREPROCESSING: 'preprocessing',\n STATE_UPLOADING: 'uploading',\n STATE_POSTPROCESSING: 'postprocessing',\n STATE_COMPLETE: 'complete'\n};","var de_DE = {};\nde_DE.strings = {\n addMoreFiles: 'Dateien hinzufügen',\n addingMoreFiles: 'Dateien hinzufügen',\n allowAccessDescription: 'Um Bilder oder Videos mit Ihrer Kamera aufzunehmen, erlauben Sie dieser Website bitte Zugriff auf Ihre Kamera.',\n allowAccessTitle: 'Bitte erlauben Sie Zugriff auf Ihre Kamera',\n authenticateWith: 'Mit %{pluginName} verbinden',\n authenticateWithTitle: 'Bitte authentifizieren Sie sich mit %{pluginName}, um Dateien auszuwählen',\n back: 'Zurück',\n addMore: 'Dateien hinzufügen',\n browse: 'Suche',\n browseFiles: 'Suche',\n cancel: 'Abbrechen',\n cancelUpload: 'Upload abbrechen',\n chooseFiles: 'Dateien auswählen',\n closeModal: 'Modal schließen',\n companionError: 'Verbindung zu Companion fehlgeschlagen',\n complete: 'Fertig',\n connectedToInternet: 'Verbunden mit dem Internet',\n copyLink: 'Link kopieren',\n copyLinkToClipboardFallback: 'Untenstehenden URL kopieren',\n copyLinkToClipboardSuccess: 'Link in die Zwischenablage kopiert',\n creatingAssembly: 'Upload vorbereiten...',\n creatingAssemblyFailed: 'Transloadit: Konnte Assembly nicht erstellen',\n dashboardTitle: 'Datei Uploader',\n dashboardWindowTitle: 'Datei Uploader Fenster (Esc drücken zum Schließen)',\n dataUploadedOfTotal: '%{complete} von %{total}',\n done: 'Abgeschlossen',\n dropHereOr: 'Dateien können über Drag/Drop oder per %{browse} hinzugefügt werden',\n dropHint: 'Dateien können über Drag/Drop hinzugefügt werden',\n dropPasteBoth: 'Dateien können über Drag/Drop, Einfügen oder per %{browse} hinzugefügt werden',\n dropPasteFiles: 'Dateien können über Drag/Drop, Einfügen oder per %{browse} hinzugefügt werden',\n dropPasteFolders: 'Dateien können über Drag/Drop, Einfügen oder per %{browse} hinzugefügt werden',\n dropPasteImportBoth: 'Dateien können über Drag/Drop, Einfügen, per %{browse} oder von folgenden Services hinzugefügt werden',\n dropPasteImportFiles: 'Dateien können über Drag/Drop, Einfügen, per %{browse} oder von folgenden Services hinzugefügt werden',\n dropPasteImportFolders: 'Dateien können über Drag/Drop, Einfügen, per %{browse} oder von folgenden Services hinzugefügt werden',\n editFile: 'Datei bearbeiten',\n editing: '%{file} bearbeiten',\n emptyFolderAdded: 'Keine Dateien konnten hinzugefügt werden, da der Ordner leer war',\n encoding: 'Enkodieren...',\n enterCorrectUrl: 'Falsche URL: Bitte stellen Sie sicher, dass Sie einen direkten Link zu einer Datei eingeben',\n enterUrlToImport: 'URL zum Importieren einer Datei eingeben',\n exceedsSize: 'Diese Datei ist größer als die maximal erlaubte Dateigröße',\n failedToFetch: 'Companion konnte diese URL nicht verarbeiten - stellen Sie bitte sicher, dass sie korrekt ist',\n failedToUpload: 'Fehler beim Upload von Datei %{file}',\n fileSource: 'Dateiquelle: %{name}',\n filesUploadedOfTotal: {\n '0': '%{complete} von %{smart_count} Datei hochgeladen',\n '1': '%{complete} von %{smart_count} Dateien hochgeladen',\n '2': '%{complete} von %{smart_count} Dateien hochgeladen'\n },\n filter: 'Filter',\n finishEditingFile: 'Dateibearbeitung beenden',\n folderAdded: {\n '0': '%{smart_count} Datei von %{folder} hinzugefügt',\n '1': '%{smart_count} Dateien von %{folder} hinzugefügt',\n '2': '%{smart_count} Dateien von %{folder} hinzugefügt'\n },\n import: 'Import',\n importFrom: 'Importieren von %{name}',\n loading: 'Laden...',\n logOut: 'Ausloggen',\n myDevice: 'Mein Gerät',\n noDuplicates: 'Datei \\'%{fileName}\\' existiert bereits und kann nicht erneut hinzugefügt werden',\n noFilesFound: 'Sie haben keine Dateien oder Ordner hier',\n noInternetConnection: 'Keine Internetverbindung',\n noNewAlreadyUploading: 'Während der Upload läuft, können keine weiteren Dateien hinzugefügt werden',\n pause: 'Pausieren',\n pauseUpload: 'Upload pausieren',\n paused: 'Pausiert',\n poweredBy: 'Angetrieben von',\n processingXFiles: {\n '0': '%{smart_count} Datei verarbeiten',\n '1': '%{smart_count} Dateien verarbeiten',\n '2': '%{smart_count} Dateien verarbeiten'\n },\n recordingLength: 'Aufnahmedauer %{recording_length}',\n removeFile: 'Datei entfernen',\n resetFilter: 'Filter zurücksetzen',\n resume: 'Fortsetzen',\n resumeUpload: 'Upload fortsetzen',\n retry: 'Erneut versuchen',\n retryUpload: 'Upload erneut versuchen',\n saveChanges: 'Änderungen speichern',\n selectX: {\n '0': 'Wählen Sie %{smart_count}',\n '1': 'Wählen Sie %{smart_count}',\n '2': 'Wählen Sie %{smart_count}'\n },\n smile: 'Bitte lächeln!',\n startRecording: 'Videoaufnahme starten',\n stopRecording: 'Videoaufnahme beenden',\n takePicture: 'Ein Foto machen',\n timedOut: 'Upload für %{seconds} Sekunden stehen geblieben, breche ab.',\n upload: 'Upload',\n uploadComplete: 'Upload beendet',\n uploadFailed: 'Upload fehlgeschlagen',\n uploadPaused: 'Upload pausiert',\n uploadXFiles: {\n '0': '%{smart_count} Datei hochladen',\n '1': '%{smart_count} Dateien hochladen',\n '2': '%{smart_count} Dateien hochladen'\n },\n uploadXNewFiles: {\n '0': '+%{smart_count} Datei hochladen',\n '1': '+%{smart_count} Dateien hochladen',\n '2': '+%{smart_count} Dateien hochladen'\n },\n uploading: 'Uploading',\n uploadingXFiles: {\n '0': '%{smart_count} Datei wird hochgeladen',\n '1': '%{smart_count} Dateien werden hochgeladen',\n '2': '%{smart_count} Dateien werden hochgeladen'\n },\n xFilesSelected: {\n '0': '%{smart_count} Datei ausgewählt',\n '1': '%{smart_count} Dateien ausgewählt',\n '2': '%{smart_count} Dateien ausgewählt'\n },\n xMoreFilesAdded: {\n '0': '%{smart_count} weitere Datei hinzugefügt',\n '1': '%{smart_count} weitere Dateien hinzugefügt',\n '2': '%{smart_count} weitere Dateien hinzugefügt'\n },\n xTimeLeft: '%{time} verbleibend',\n youCanOnlyUploadFileTypes: 'Sie können nur folgende Dateitypen hochladen: %{types}',\n youCanOnlyUploadX: {\n '0': 'Sie können nur %{smart_count} Datei hochladen',\n '1': 'Sie können nur %{smart_count} Dateien hochladen',\n '2': 'Sie können nur %{smart_count} Dateien hochladen'\n },\n youHaveToAtLeastSelectX: {\n '0': 'Sie müssen mindestens %{smart_count} Datei auswählen',\n '1': 'Sie müssen mindestens %{smart_count} Dateien auswählen',\n '2': 'Sie müssen mindestens %{smart_count} Dateien auswählen'\n },\n selectAllFilesFromFolderNamed: 'Wählen Sie alle Dateien aus dem Ordner %{name}',\n unselectAllFilesFromFolderNamed: 'Heben Sie die Auswahl aller Dateien aus dem Ordner auf %{name}',\n selectFileNamed: 'Datei aussuchen %{name}',\n unselectFileNamed: 'Datei abwählen %{name}',\n openFolderNamed: 'Ordner öffnen %{name}'\n};\n\nde_DE.pluralize = function (n) {\n if (n === 1) {\n return 0;\n }\n\n return 1;\n};\n\nif (typeof window !== 'undefined' && typeof window.Uppy !== 'undefined') {\n window.Uppy.locales.de_DE = de_DE;\n}\n\nmodule.exports = de_DE;","var isDOMElement = require('./isDOMElement');\n/**\n * Find one or more DOM elements.\n *\n * @param {string} element\n * @returns {Array|null}\n */\n\n\nmodule.exports = function findAllDOMElements(element) {\n if (typeof element === 'string') {\n var elements = [].slice.call(document.querySelectorAll(element));\n return elements.length > 0 ? elements : null;\n }\n\n if (typeof element === 'object' && isDOMElement(element)) {\n return [element];\n }\n};","/**\n * Recursive function, calls the original callback() when the directory is entirely parsed.\n *\n * @param {FileSystemDirectoryReader} directoryReader\n * @param {Array} oldEntries\n * @param {Function} logDropError\n * @param {Function} callback - called with ([ all files and directories in that directoryReader ])\n */\nmodule.exports = function getFilesAndDirectoriesFromDirectory(directoryReader, oldEntries, logDropError, _ref) {\n var onSuccess = _ref.onSuccess;\n directoryReader.readEntries(function (entries) {\n var newEntries = [].concat(oldEntries, entries); // According to the FileSystem API spec, getFilesAndDirectoriesFromDirectory() must be called until it calls the onSuccess with an empty array.\n\n if (entries.length) {\n setTimeout(function () {\n getFilesAndDirectoriesFromDirectory(directoryReader, newEntries, logDropError, {\n onSuccess: onSuccess\n });\n }, 0); // Done iterating this particular directory\n } else {\n onSuccess(newEntries);\n }\n }, // Make sure we resolve on error anyway, it's fine if only one directory couldn't be parsed!\n function (error) {\n logDropError(error);\n onSuccess(oldEntries);\n });\n};","var secondsToTime = require('./secondsToTime');\n\nmodule.exports = function prettyETA(seconds) {\n var time = secondsToTime(seconds); // Only display hours and minutes if they are greater than 0 but always\n // display minutes if hours is being displayed\n // Display a leading zero if the there is a preceding unit: 1m 05s, but 5s\n\n var hoursStr = time.hours ? time.hours + 'h ' : '';\n var minutesVal = time.hours ? ('0' + time.minutes).substr(-2) : time.minutes;\n var minutesStr = minutesVal ? minutesVal + 'm' : '';\n var secondsVal = minutesVal ? ('0' + time.seconds).substr(-2) : time.seconds;\n var secondsStr = time.hours ? '' : minutesVal ? ' ' + secondsVal + 's' : secondsVal + 's';\n return \"\" + hoursStr + minutesStr + secondsStr;\n};","var throttle = require('lodash.throttle');\n\nfunction _emitSocketProgress(uploader, progressData, file) {\n var progress = progressData.progress,\n bytesUploaded = progressData.bytesUploaded,\n bytesTotal = progressData.bytesTotal;\n\n if (progress) {\n uploader.uppy.log(\"Upload progress: \" + progress);\n uploader.uppy.emit('upload-progress', file, {\n uploader: uploader,\n bytesUploaded: bytesUploaded,\n bytesTotal: bytesTotal\n });\n }\n}\n\nmodule.exports = throttle(_emitSocketProgress, 300, {\n leading: true,\n trailing: true\n});","/**\n * Check if a URL string is an object URL from `URL.createObjectURL`.\n *\n * @param {string} url\n * @returns {boolean}\n */\nmodule.exports = function isObjectURL(url) {\n return url.indexOf('blob:') === 0;\n};","var _class, _temp;\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar _require = require('@uppy/core'),\n Plugin = _require.Plugin;\n\nvar cuid = require('cuid');\n\nvar Translator = require('@uppy/utils/lib/Translator');\n\nvar _require2 = require('@uppy/companion-client'),\n Provider = _require2.Provider,\n RequestClient = _require2.RequestClient,\n Socket = _require2.Socket;\n\nvar emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress');\n\nvar getSocketHost = require('@uppy/utils/lib/getSocketHost');\n\nvar settle = require('@uppy/utils/lib/settle');\n\nvar EventTracker = require('@uppy/utils/lib/EventTracker');\n\nvar ProgressTimeout = require('@uppy/utils/lib/ProgressTimeout');\n\nvar RateLimitedQueue = require('@uppy/utils/lib/RateLimitedQueue');\n\nvar NetworkError = require('@uppy/utils/lib/NetworkError');\n\nvar isNetworkError = require('@uppy/utils/lib/isNetworkError');\n\nfunction buildResponseError(xhr, error) {\n // No error message\n if (!error) error = new Error('Upload error'); // Got an error message string\n\n if (typeof error === 'string') error = new Error(error); // Got something else\n\n if (!(error instanceof Error)) {\n error = _extends(new Error('Upload error'), {\n data: error\n });\n }\n\n if (isNetworkError(xhr)) {\n error = new NetworkError(error, xhr);\n return error;\n }\n\n error.request = xhr;\n return error;\n}\n/**\n * Set `data.type` in the blob to `file.meta.type`,\n * because we might have detected a more accurate file type in Uppy\n * https://stackoverflow.com/a/50875615\n *\n * @param {object} file File object with `data`, `size` and `meta` properties\n * @returns {object} blob updated with the new `type` set from `file.meta.type`\n */\n\n\nfunction setTypeInBlob(file) {\n var dataWithUpdatedType = file.data.slice(0, file.data.size, file.meta.type);\n return dataWithUpdatedType;\n}\n\nmodule.exports = (_temp = _class = /*#__PURE__*/function (_Plugin) {\n _inheritsLoose(XHRUpload, _Plugin);\n\n function XHRUpload(uppy, opts) {\n var _this;\n\n _this = _Plugin.call(this, uppy, opts) || this;\n _this.type = 'uploader';\n _this.id = _this.opts.id || 'XHRUpload';\n _this.title = 'XHRUpload';\n _this.defaultLocale = {\n strings: {\n timedOut: 'Upload stalled for %{seconds} seconds, aborting.'\n }\n }; // Default options\n\n var defaultOptions = {\n formData: true,\n fieldName: 'files[]',\n method: 'post',\n metaFields: null,\n responseUrlFieldName: 'url',\n bundle: false,\n headers: {},\n timeout: 30 * 1000,\n limit: 0,\n withCredentials: false,\n responseType: '',\n\n /**\n * @typedef respObj\n * @property {string} responseText\n * @property {number} status\n * @property {string} statusText\n * @property {object.} headers\n *\n * @param {string} responseText the response body string\n * @param {XMLHttpRequest | respObj} response the response object (XHR or similar)\n */\n getResponseData: function getResponseData(responseText, response) {\n var parsedResponse = {};\n\n try {\n parsedResponse = JSON.parse(responseText);\n } catch (err) {\n console.log(err);\n }\n\n return parsedResponse;\n },\n\n /**\n *\n * @param {string} responseText the response body string\n * @param {XMLHttpRequest | respObj} response the response object (XHR or similar)\n */\n getResponseError: function getResponseError(responseText, response) {\n var error = new Error('Upload error');\n\n if (isNetworkError(response)) {\n error = new NetworkError(error, response);\n }\n\n return error;\n },\n\n /**\n * Check if the response from the upload endpoint indicates that the upload was successful.\n *\n * @param {number} status the response status code\n * @param {string} responseText the response body string\n * @param {XMLHttpRequest | respObj} response the response object (XHR or similar)\n */\n validateStatus: function validateStatus(status, responseText, response) {\n return status >= 200 && status < 300;\n }\n };\n _this.opts = _extends({}, defaultOptions, opts);\n\n _this.i18nInit();\n\n _this.handleUpload = _this.handleUpload.bind(_assertThisInitialized(_this)); // Simultaneous upload limiting is shared across all uploads with this plugin.\n // __queue is for internal Uppy use only!\n\n if (_this.opts.__queue instanceof RateLimitedQueue) {\n _this.requests = _this.opts.__queue;\n } else {\n _this.requests = new RateLimitedQueue(_this.opts.limit);\n }\n\n if (_this.opts.bundle && !_this.opts.formData) {\n throw new Error('`opts.formData` must be true when `opts.bundle` is enabled.');\n }\n\n _this.uploaderEvents = Object.create(null);\n return _this;\n }\n\n var _proto = XHRUpload.prototype;\n\n _proto.setOptions = function setOptions(newOpts) {\n _Plugin.prototype.setOptions.call(this, newOpts);\n\n this.i18nInit();\n };\n\n _proto.i18nInit = function i18nInit() {\n this.translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale]);\n this.i18n = this.translator.translate.bind(this.translator);\n this.setPluginState(); // so that UI re-renders and we see the updated locale\n };\n\n _proto.getOptions = function getOptions(file) {\n var overrides = this.uppy.getState().xhrUpload;\n\n var opts = _extends({}, this.opts, overrides || {}, file.xhrUpload || {}, {\n headers: {}\n });\n\n _extends(opts.headers, this.opts.headers);\n\n if (overrides) {\n _extends(opts.headers, overrides.headers);\n }\n\n if (file.xhrUpload) {\n _extends(opts.headers, file.xhrUpload.headers);\n }\n\n return opts;\n };\n\n _proto.addMetadata = function addMetadata(formData, meta, opts) {\n var metaFields = Array.isArray(opts.metaFields) ? opts.metaFields // Send along all fields by default.\n : Object.keys(meta);\n metaFields.forEach(function (item) {\n formData.append(item, meta[item]);\n });\n };\n\n _proto.createFormDataUpload = function createFormDataUpload(file, opts) {\n var formPost = new FormData();\n this.addMetadata(formPost, file.meta, opts);\n var dataWithUpdatedType = setTypeInBlob(file);\n\n if (file.name) {\n formPost.append(opts.fieldName, dataWithUpdatedType, file.meta.name);\n } else {\n formPost.append(opts.fieldName, dataWithUpdatedType);\n }\n\n return formPost;\n };\n\n _proto.createBundledUpload = function createBundledUpload(files, opts) {\n var _this2 = this;\n\n var formPost = new FormData();\n\n var _this$uppy$getState = this.uppy.getState(),\n meta = _this$uppy$getState.meta;\n\n this.addMetadata(formPost, meta, opts);\n files.forEach(function (file) {\n var opts = _this2.getOptions(file);\n\n var dataWithUpdatedType = setTypeInBlob(file);\n\n if (file.name) {\n formPost.append(opts.fieldName, dataWithUpdatedType, file.name);\n } else {\n formPost.append(opts.fieldName, dataWithUpdatedType);\n }\n });\n return formPost;\n };\n\n _proto.createBareUpload = function createBareUpload(file, opts) {\n return file.data;\n };\n\n _proto.upload = function upload(file, current, total) {\n var _this3 = this;\n\n var opts = this.getOptions(file);\n this.uppy.log(\"uploading \" + current + \" of \" + total);\n return new Promise(function (resolve, reject) {\n _this3.uppy.emit('upload-started', file);\n\n var data = opts.formData ? _this3.createFormDataUpload(file, opts) : _this3.createBareUpload(file, opts);\n var xhr = new XMLHttpRequest();\n _this3.uploaderEvents[file.id] = new EventTracker(_this3.uppy);\n var timer = new ProgressTimeout(opts.timeout, function () {\n xhr.abort();\n queuedRequest.done();\n var error = new Error(_this3.i18n('timedOut', {\n seconds: Math.ceil(opts.timeout / 1000)\n }));\n\n _this3.uppy.emit('upload-error', file, error);\n\n reject(error);\n });\n var id = cuid();\n xhr.upload.addEventListener('loadstart', function (ev) {\n _this3.uppy.log(\"[XHRUpload] \" + id + \" started\");\n });\n xhr.upload.addEventListener('progress', function (ev) {\n _this3.uppy.log(\"[XHRUpload] \" + id + \" progress: \" + ev.loaded + \" / \" + ev.total); // Begin checking for timeouts when progress starts, instead of loading,\n // to avoid timing out requests on browser concurrency queue\n\n\n timer.progress();\n\n if (ev.lengthComputable) {\n _this3.uppy.emit('upload-progress', file, {\n uploader: _this3,\n bytesUploaded: ev.loaded,\n bytesTotal: ev.total\n });\n }\n });\n xhr.addEventListener('load', function (ev) {\n _this3.uppy.log(\"[XHRUpload] \" + id + \" finished\");\n\n timer.done();\n queuedRequest.done();\n\n if (_this3.uploaderEvents[file.id]) {\n _this3.uploaderEvents[file.id].remove();\n\n _this3.uploaderEvents[file.id] = null;\n }\n\n if (opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {\n var body = opts.getResponseData(xhr.responseText, xhr);\n var uploadURL = body[opts.responseUrlFieldName];\n var uploadResp = {\n status: ev.target.status,\n body: body,\n uploadURL: uploadURL\n };\n\n _this3.uppy.emit('upload-success', file, uploadResp);\n\n if (uploadURL) {\n _this3.uppy.log(\"Download \" + file.name + \" from \" + uploadURL);\n }\n\n return resolve(file);\n } else {\n var _body = opts.getResponseData(xhr.responseText, xhr);\n\n var error = buildResponseError(xhr, opts.getResponseError(xhr.responseText, xhr));\n var response = {\n status: ev.target.status,\n body: _body\n };\n\n _this3.uppy.emit('upload-error', file, error, response);\n\n return reject(error);\n }\n });\n xhr.addEventListener('error', function (ev) {\n _this3.uppy.log(\"[XHRUpload] \" + id + \" errored\");\n\n timer.done();\n queuedRequest.done();\n\n if (_this3.uploaderEvents[file.id]) {\n _this3.uploaderEvents[file.id].remove();\n\n _this3.uploaderEvents[file.id] = null;\n }\n\n var error = buildResponseError(xhr, opts.getResponseError(xhr.responseText, xhr));\n\n _this3.uppy.emit('upload-error', file, error);\n\n return reject(error);\n });\n xhr.open(opts.method.toUpperCase(), opts.endpoint, true); // IE10 does not allow setting `withCredentials` and `responseType`\n // before `open()` is called.\n\n xhr.withCredentials = opts.withCredentials;\n\n if (opts.responseType !== '') {\n xhr.responseType = opts.responseType;\n }\n\n Object.keys(opts.headers).forEach(function (header) {\n xhr.setRequestHeader(header, opts.headers[header]);\n });\n\n var queuedRequest = _this3.requests.run(function () {\n xhr.send(data);\n return function () {\n timer.done();\n xhr.abort();\n };\n });\n\n _this3.onFileRemove(file.id, function () {\n queuedRequest.abort();\n reject(new Error('File removed'));\n });\n\n _this3.onCancelAll(file.id, function () {\n queuedRequest.abort();\n reject(new Error('Upload cancelled'));\n });\n });\n };\n\n _proto.uploadRemote = function uploadRemote(file, current, total) {\n var _this4 = this;\n\n var opts = this.getOptions(file);\n return new Promise(function (resolve, reject) {\n _this4.uppy.emit('upload-started', file);\n\n var fields = {};\n var metaFields = Array.isArray(opts.metaFields) ? opts.metaFields // Send along all fields by default.\n : Object.keys(file.meta);\n metaFields.forEach(function (name) {\n fields[name] = file.meta[name];\n });\n var Client = file.remote.providerOptions.provider ? Provider : RequestClient;\n var client = new Client(_this4.uppy, file.remote.providerOptions);\n client.post(file.remote.url, _extends({}, file.remote.body, {\n endpoint: opts.endpoint,\n size: file.data.size,\n fieldname: opts.fieldName,\n metadata: fields,\n httpMethod: opts.method,\n useFormData: opts.formData,\n headers: opts.headers\n })).then(function (res) {\n var token = res.token;\n var host = getSocketHost(file.remote.companionUrl);\n var socket = new Socket({\n target: host + \"/api/\" + token,\n autoOpen: false\n });\n _this4.uploaderEvents[file.id] = new EventTracker(_this4.uppy);\n\n _this4.onFileRemove(file.id, function () {\n socket.send('pause', {});\n queuedRequest.abort();\n resolve(\"upload \" + file.id + \" was removed\");\n });\n\n _this4.onCancelAll(file.id, function () {\n socket.send('pause', {});\n queuedRequest.abort();\n resolve(\"upload \" + file.id + \" was canceled\");\n });\n\n _this4.onRetry(file.id, function () {\n socket.send('pause', {});\n socket.send('resume', {});\n });\n\n _this4.onRetryAll(file.id, function () {\n socket.send('pause', {});\n socket.send('resume', {});\n });\n\n socket.on('progress', function (progressData) {\n return emitSocketProgress(_this4, progressData, file);\n });\n socket.on('success', function (data) {\n var body = opts.getResponseData(data.response.responseText, data.response);\n var uploadURL = body[opts.responseUrlFieldName];\n var uploadResp = {\n status: data.response.status,\n body: body,\n uploadURL: uploadURL\n };\n\n _this4.uppy.emit('upload-success', file, uploadResp);\n\n queuedRequest.done();\n\n if (_this4.uploaderEvents[file.id]) {\n _this4.uploaderEvents[file.id].remove();\n\n _this4.uploaderEvents[file.id] = null;\n }\n\n return resolve();\n });\n socket.on('error', function (errData) {\n var resp = errData.response;\n var error = resp ? opts.getResponseError(resp.responseText, resp) : _extends(new Error(errData.error.message), {\n cause: errData.error\n });\n\n _this4.uppy.emit('upload-error', file, error);\n\n queuedRequest.done();\n\n if (_this4.uploaderEvents[file.id]) {\n _this4.uploaderEvents[file.id].remove();\n\n _this4.uploaderEvents[file.id] = null;\n }\n\n reject(error);\n });\n\n var queuedRequest = _this4.requests.run(function () {\n socket.open();\n\n if (file.isPaused) {\n socket.send('pause', {});\n }\n\n return function () {\n return socket.close();\n };\n });\n }).catch(function (err) {\n _this4.uppy.emit('upload-error', file, err);\n\n reject(err);\n });\n });\n };\n\n _proto.uploadBundle = function uploadBundle(files) {\n var _this5 = this;\n\n return new Promise(function (resolve, reject) {\n var endpoint = _this5.opts.endpoint;\n var method = _this5.opts.method;\n\n var optsFromState = _this5.uppy.getState().xhrUpload;\n\n var formData = _this5.createBundledUpload(files, _extends({}, _this5.opts, optsFromState || {}));\n\n var xhr = new XMLHttpRequest();\n var timer = new ProgressTimeout(_this5.opts.timeout, function () {\n xhr.abort();\n var error = new Error(_this5.i18n('timedOut', {\n seconds: Math.ceil(_this5.opts.timeout / 1000)\n }));\n emitError(error);\n reject(error);\n });\n\n var emitError = function emitError(error) {\n files.forEach(function (file) {\n _this5.uppy.emit('upload-error', file, error);\n });\n };\n\n xhr.upload.addEventListener('loadstart', function (ev) {\n _this5.uppy.log('[XHRUpload] started uploading bundle');\n\n timer.progress();\n });\n xhr.upload.addEventListener('progress', function (ev) {\n timer.progress();\n if (!ev.lengthComputable) return;\n files.forEach(function (file) {\n _this5.uppy.emit('upload-progress', file, {\n uploader: _this5,\n bytesUploaded: ev.loaded / ev.total * file.size,\n bytesTotal: file.size\n });\n });\n });\n xhr.addEventListener('load', function (ev) {\n timer.done();\n\n if (_this5.opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {\n var body = _this5.opts.getResponseData(xhr.responseText, xhr);\n\n var uploadResp = {\n status: ev.target.status,\n body: body\n };\n files.forEach(function (file) {\n _this5.uppy.emit('upload-success', file, uploadResp);\n });\n return resolve();\n }\n\n var error = _this5.opts.getResponseError(xhr.responseText, xhr) || new Error('Upload error');\n error.request = xhr;\n emitError(error);\n return reject(error);\n });\n xhr.addEventListener('error', function (ev) {\n timer.done();\n var error = _this5.opts.getResponseError(xhr.responseText, xhr) || new Error('Upload error');\n emitError(error);\n return reject(error);\n });\n\n _this5.uppy.on('cancel-all', function () {\n timer.done();\n xhr.abort();\n });\n\n xhr.open(method.toUpperCase(), endpoint, true); // IE10 does not allow setting `withCredentials` and `responseType`\n // before `open()` is called.\n\n xhr.withCredentials = _this5.opts.withCredentials;\n\n if (_this5.opts.responseType !== '') {\n xhr.responseType = _this5.opts.responseType;\n }\n\n Object.keys(_this5.opts.headers).forEach(function (header) {\n xhr.setRequestHeader(header, _this5.opts.headers[header]);\n });\n xhr.send(formData);\n files.forEach(function (file) {\n _this5.uppy.emit('upload-started', file);\n });\n });\n };\n\n _proto.uploadFiles = function uploadFiles(files) {\n var _this6 = this;\n\n var promises = files.map(function (file, i) {\n var current = parseInt(i, 10) + 1;\n var total = files.length;\n\n if (file.error) {\n return Promise.reject(new Error(file.error));\n } else if (file.isRemote) {\n return _this6.uploadRemote(file, current, total);\n } else {\n return _this6.upload(file, current, total);\n }\n });\n return settle(promises);\n };\n\n _proto.onFileRemove = function onFileRemove(fileID, cb) {\n this.uploaderEvents[fileID].on('file-removed', function (file) {\n if (fileID === file.id) cb(file.id);\n });\n };\n\n _proto.onRetry = function onRetry(fileID, cb) {\n this.uploaderEvents[fileID].on('upload-retry', function (targetFileID) {\n if (fileID === targetFileID) {\n cb();\n }\n });\n };\n\n _proto.onRetryAll = function onRetryAll(fileID, cb) {\n var _this7 = this;\n\n this.uploaderEvents[fileID].on('retry-all', function (filesToRetry) {\n if (!_this7.uppy.getFile(fileID)) return;\n cb();\n });\n };\n\n _proto.onCancelAll = function onCancelAll(fileID, cb) {\n var _this8 = this;\n\n this.uploaderEvents[fileID].on('cancel-all', function () {\n if (!_this8.uppy.getFile(fileID)) return;\n cb();\n });\n };\n\n _proto.handleUpload = function handleUpload(fileIDs) {\n var _this9 = this;\n\n if (fileIDs.length === 0) {\n this.uppy.log('[XHRUpload] No files to upload!');\n return Promise.resolve();\n } // no limit configured by the user, and no RateLimitedQueue passed in by a \"parent\" plugin (basically just AwsS3) using the top secret `__queue` option\n\n\n if (this.opts.limit === 0 && !this.opts.__queue) {\n this.uppy.log('[XHRUpload] When uploading multiple files at once, consider setting the `limit` option (to `10` for example), to limit the number of concurrent uploads, which helps prevent memory and network issues: https://uppy.io/docs/xhr-upload/#limit-0', 'warning');\n }\n\n this.uppy.log('[XHRUpload] Uploading...');\n var files = fileIDs.map(function (fileID) {\n return _this9.uppy.getFile(fileID);\n });\n\n if (this.opts.bundle) {\n // if bundle: true, we don’t support remote uploads\n var isSomeFileRemote = files.some(function (file) {\n return file.isRemote;\n });\n\n if (isSomeFileRemote) {\n throw new Error('Can’t upload remote files when bundle: true option is set');\n }\n\n return this.uploadBundle(files);\n }\n\n return this.uploadFiles(files).then(function () {\n return null;\n });\n };\n\n _proto.install = function install() {\n if (this.opts.bundle) {\n var _this$uppy$getState2 = this.uppy.getState(),\n capabilities = _this$uppy$getState2.capabilities;\n\n this.uppy.setState({\n capabilities: _extends({}, capabilities, {\n individualCancellation: false\n })\n });\n }\n\n this.uppy.addUploader(this.handleUpload);\n };\n\n _proto.uninstall = function uninstall() {\n if (this.opts.bundle) {\n var _this$uppy$getState3 = this.uppy.getState(),\n capabilities = _this$uppy$getState3.capabilities;\n\n this.uppy.setState({\n capabilities: _extends({}, capabilities, {\n individualCancellation: true\n })\n });\n }\n\n this.uppy.removeUploader(this.handleUpload);\n };\n\n return XHRUpload;\n}(Plugin), _class.VERSION = \"1.6.4\", _temp);","module.exports = function getBytesRemaining(fileProgress) {\n return fileProgress.bytesTotal - fileProgress.bytesUploaded;\n};","var toArray = require('../../toArray'); // .files fallback, should be implemented in any browser\n\n\nmodule.exports = function fallbackApi(dataTransfer) {\n var files = toArray(dataTransfer.files);\n return Promise.resolve(files);\n};","var _class, _temp;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _require = require('@uppy/core'),\n Plugin = _require.Plugin;\n\nvar Translator = require('@uppy/utils/lib/Translator');\n\nvar StatusBarUI = require('./StatusBar');\n\nvar statusBarStates = require('./StatusBarStates');\n\nvar getSpeed = require('@uppy/utils/lib/getSpeed');\n\nvar getBytesRemaining = require('@uppy/utils/lib/getBytesRemaining');\n/**\n * StatusBar: renders a status bar with upload/pause/resume/cancel/retry buttons,\n * progress percentage and time remaining.\n */\n\n\nmodule.exports = (_temp = _class = /*#__PURE__*/function (_Plugin) {\n _inheritsLoose(StatusBar, _Plugin);\n\n function StatusBar(uppy, opts) {\n var _this;\n\n _this = _Plugin.call(this, uppy, opts) || this;\n\n _this.startUpload = function () {\n return _this.uppy.upload().catch(function () {// Error logged in Core\n });\n };\n\n _this.id = _this.opts.id || 'StatusBar';\n _this.title = 'StatusBar';\n _this.type = 'progressindicator';\n _this.defaultLocale = {\n strings: {\n uploading: 'Uploading',\n upload: 'Upload',\n complete: 'Complete',\n uploadFailed: 'Upload failed',\n paused: 'Paused',\n retry: 'Retry',\n retryUpload: 'Retry upload',\n cancel: 'Cancel',\n pause: 'Pause',\n resume: 'Resume',\n filesUploadedOfTotal: {\n 0: '%{complete} of %{smart_count} file uploaded',\n 1: '%{complete} of %{smart_count} files uploaded'\n },\n dataUploadedOfTotal: '%{complete} of %{total}',\n xTimeLeft: '%{time} left',\n uploadXFiles: {\n 0: 'Upload %{smart_count} file',\n 1: 'Upload %{smart_count} files'\n },\n uploadXNewFiles: {\n 0: 'Upload +%{smart_count} file',\n 1: 'Upload +%{smart_count} files'\n },\n xMoreFilesAdded: {\n 0: '%{smart_count} more file added',\n 1: '%{smart_count} more files added'\n }\n }\n }; // set default options\n\n var defaultOptions = {\n target: 'body',\n hideUploadButton: false,\n hideRetryButton: false,\n hidePauseResumeButton: false,\n hideCancelButton: false,\n showProgressDetails: false,\n hideAfterFinish: true\n };\n _this.opts = _extends({}, defaultOptions, opts);\n\n _this.i18nInit();\n\n _this.render = _this.render.bind(_assertThisInitialized(_this));\n _this.install = _this.install.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = StatusBar.prototype;\n\n _proto.setOptions = function setOptions(newOpts) {\n _Plugin.prototype.setOptions.call(this, newOpts);\n\n this.i18nInit();\n };\n\n _proto.i18nInit = function i18nInit() {\n this.translator = new Translator([this.defaultLocale, this.uppy.locale, this.opts.locale]);\n this.i18n = this.translator.translate.bind(this.translator);\n this.setPluginState(); // so that UI re-renders and we see the updated locale\n };\n\n _proto.getTotalSpeed = function getTotalSpeed(files) {\n var totalSpeed = 0;\n files.forEach(function (file) {\n totalSpeed = totalSpeed + getSpeed(file.progress);\n });\n return totalSpeed;\n };\n\n _proto.getTotalETA = function getTotalETA(files) {\n var totalSpeed = this.getTotalSpeed(files);\n\n if (totalSpeed === 0) {\n return 0;\n }\n\n var totalBytesRemaining = files.reduce(function (total, file) {\n return total + getBytesRemaining(file.progress);\n }, 0);\n return Math.round(totalBytesRemaining / totalSpeed * 10) / 10;\n };\n\n _proto.getUploadingState = function getUploadingState(isAllErrored, isAllComplete, files) {\n if (isAllErrored) {\n return statusBarStates.STATE_ERROR;\n }\n\n if (isAllComplete) {\n return statusBarStates.STATE_COMPLETE;\n }\n\n var state = statusBarStates.STATE_WAITING;\n var fileIDs = Object.keys(files);\n\n for (var i = 0; i < fileIDs.length; i++) {\n var progress = files[fileIDs[i]].progress; // If ANY files are being uploaded right now, show the uploading state.\n\n if (progress.uploadStarted && !progress.uploadComplete) {\n return statusBarStates.STATE_UPLOADING;\n } // If files are being preprocessed AND postprocessed at this time, we show the\n // preprocess state. If any files are being uploaded we show uploading.\n\n\n if (progress.preprocess && state !== statusBarStates.STATE_UPLOADING) {\n state = statusBarStates.STATE_PREPROCESSING;\n } // If NO files are being preprocessed or uploaded right now, but some files are\n // being postprocessed, show the postprocess state.\n\n\n if (progress.postprocess && state !== statusBarStates.STATE_UPLOADING && state !== statusBarStates.STATE_PREPROCESSING) {\n state = statusBarStates.STATE_POSTPROCESSING;\n }\n }\n\n return state;\n };\n\n _proto.render = function render(state) {\n var capabilities = state.capabilities,\n files = state.files,\n allowNewUpload = state.allowNewUpload,\n totalProgress = state.totalProgress,\n error = state.error; // TODO: move this to Core, to share between Status Bar and Dashboard\n // (and any other plugin that might need it, too)\n\n var filesArray = Object.keys(files).map(function (file) {\n return files[file];\n });\n var newFiles = filesArray.filter(function (file) {\n return !file.progress.uploadStarted && !file.progress.preprocess && !file.progress.postprocess;\n });\n var uploadStartedFiles = filesArray.filter(function (file) {\n return file.progress.uploadStarted;\n });\n var pausedFiles = uploadStartedFiles.filter(function (file) {\n return file.isPaused;\n });\n var completeFiles = filesArray.filter(function (file) {\n return file.progress.uploadComplete;\n });\n var erroredFiles = filesArray.filter(function (file) {\n return file.error;\n });\n var inProgressFiles = filesArray.filter(function (file) {\n return !file.progress.uploadComplete && file.progress.uploadStarted;\n });\n var inProgressNotPausedFiles = inProgressFiles.filter(function (file) {\n return !file.isPaused;\n });\n var startedFiles = filesArray.filter(function (file) {\n return file.progress.uploadStarted || file.progress.preprocess || file.progress.postprocess;\n });\n var processingFiles = filesArray.filter(function (file) {\n return file.progress.preprocess || file.progress.postprocess;\n });\n var totalETA = this.getTotalETA(inProgressNotPausedFiles);\n var totalSize = 0;\n var totalUploadedSize = 0;\n startedFiles.forEach(function (file) {\n totalSize = totalSize + (file.progress.bytesTotal || 0);\n totalUploadedSize = totalUploadedSize + (file.progress.bytesUploaded || 0);\n });\n var isUploadStarted = startedFiles.length > 0;\n var isAllComplete = totalProgress === 100 && completeFiles.length === Object.keys(files).length && processingFiles.length === 0;\n var isAllErrored = error && erroredFiles.length === filesArray.length;\n var isAllPaused = inProgressFiles.length !== 0 && pausedFiles.length === inProgressFiles.length;\n var isUploadInProgress = inProgressFiles.length > 0;\n var resumableUploads = capabilities.resumableUploads || false;\n var supportsUploadProgress = capabilities.uploadProgress !== false;\n return StatusBarUI({\n error: error,\n uploadState: this.getUploadingState(isAllErrored, isAllComplete, state.files || {}),\n allowNewUpload: allowNewUpload,\n totalProgress: totalProgress,\n totalSize: totalSize,\n totalUploadedSize: totalUploadedSize,\n isAllComplete: isAllComplete,\n isAllPaused: isAllPaused,\n isAllErrored: isAllErrored,\n isUploadStarted: isUploadStarted,\n isUploadInProgress: isUploadInProgress,\n complete: completeFiles.length,\n newFiles: newFiles.length,\n numUploads: startedFiles.length,\n totalETA: totalETA,\n files: files,\n i18n: this.i18n,\n pauseAll: this.uppy.pauseAll,\n resumeAll: this.uppy.resumeAll,\n retryAll: this.uppy.retryAll,\n cancelAll: this.uppy.cancelAll,\n startUpload: this.startUpload,\n resumableUploads: resumableUploads,\n supportsUploadProgress: supportsUploadProgress,\n showProgressDetails: this.opts.showProgressDetails,\n hideUploadButton: this.opts.hideUploadButton,\n hideRetryButton: this.opts.hideRetryButton,\n hidePauseResumeButton: this.opts.hidePauseResumeButton,\n hideCancelButton: this.opts.hideCancelButton,\n hideAfterFinish: this.opts.hideAfterFinish,\n isTargetDOMEl: this.isTargetDOMEl\n });\n };\n\n _proto.install = function install() {\n var target = this.opts.target;\n\n if (target) {\n this.mount(target, this);\n }\n };\n\n _proto.uninstall = function uninstall() {\n this.unmount();\n };\n\n return StatusBar;\n}(Plugin), _class.VERSION = \"1.7.6\", _temp);","var getFileNameAndExtension = require('./getFileNameAndExtension');\n\nvar mimeTypes = require('./mimeTypes');\n\nmodule.exports = function getFileType(file) {\n var fileExtension = file.name ? getFileNameAndExtension(file.name).extension : null;\n fileExtension = fileExtension ? fileExtension.toLowerCase() : null;\n\n if (file.type) {\n // if mime type is set in the file object already, use that\n return file.type;\n } else if (fileExtension && mimeTypes[fileExtension]) {\n // else, see if we can map extension to a mime type\n return mimeTypes[fileExtension];\n } else {\n // if all fails, fall back to a generic byte stream type\n return 'application/octet-stream';\n }\n};","module.exports = function isPreviewSupported(fileType) {\n if (!fileType) return false;\n var fileTypeSpecific = fileType.split('/')[1]; // list of images that browsers can preview\n\n if (/^(jpe?g|gif|png|svg|svg\\+xml|bmp|webp|avif)$/.test(fileTypeSpecific)) {\n return true;\n }\n\n return false;\n};","var _class, _temp;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _require = require('@uppy/core'),\n Plugin = _require.Plugin;\n\nvar _require2 = require('preact'),\n h = _require2.h;\n/**\n * Informer\n * Shows rad message bubbles\n * used like this: `uppy.info('hello world', 'info', 5000)`\n * or for errors: `uppy.info('Error uploading img.jpg', 'error', 5000)`\n *\n */\n\n\nmodule.exports = (_temp = _class = /*#__PURE__*/function (_Plugin) {\n _inheritsLoose(Informer, _Plugin);\n\n function Informer(uppy, opts) {\n var _this;\n\n _this = _Plugin.call(this, uppy, opts) || this;\n\n _this.render = function (state) {\n var _state$info = state.info,\n isHidden = _state$info.isHidden,\n message = _state$info.message,\n details = _state$info.details;\n\n function displayErrorAlert() {\n var errorMessage = message + \" \\n\\n \" + details;\n alert(errorMessage);\n }\n\n var handleMouseOver = function handleMouseOver() {\n clearTimeout(_this.uppy.infoTimeoutID);\n };\n\n var handleMouseLeave = function handleMouseLeave() {\n _this.uppy.infoTimeoutID = setTimeout(_this.uppy.hideInfo, 2000);\n };\n\n return h(\"div\", {\n class: \"uppy uppy-Informer\",\n \"aria-hidden\": isHidden\n }, h(\"p\", {\n role: \"alert\"\n }, message, ' ', details && h(\"span\", {\n \"aria-label\": details,\n \"data-microtip-position\": \"top-left\",\n \"data-microtip-size\": \"medium\",\n role: \"tooltip\",\n onclick: displayErrorAlert,\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave\n }, \"?\")));\n };\n\n _this.type = 'progressindicator';\n _this.id = _this.opts.id || 'Informer';\n _this.title = 'Informer'; // set default options\n\n var defaultOptions = {}; // merge default options with the ones set by user\n\n _this.opts = _extends({}, defaultOptions, opts);\n return _this;\n }\n\n var _proto = Informer.prototype;\n\n _proto.install = function install() {\n var target = this.opts.target;\n\n if (target) {\n this.mount(target, this);\n }\n };\n\n return Informer;\n}(Plugin), _class.VERSION = \"1.5.11\", _temp);","// ___Why not add the mime-types package?\n// It's 19.7kB gzipped, and we only need mime types for well-known extensions (for file previews).\n// ___Where to take new extensions from?\n// https://github.com/jshttp/mime-db/blob/master/db.json\nmodule.exports = {\n md: 'text/markdown',\n markdown: 'text/markdown',\n mp4: 'video/mp4',\n mp3: 'audio/mp3',\n svg: 'image/svg+xml',\n jpg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n heic: 'image/heic',\n heif: 'image/heif',\n yaml: 'text/yaml',\n yml: 'text/yaml',\n csv: 'text/csv',\n tsv: 'text/tab-separated-values',\n tab: 'text/tab-separated-values',\n avi: 'video/x-msvideo',\n mks: 'video/x-matroska',\n mkv: 'video/x-matroska',\n mov: 'video/quicktime',\n doc: 'application/msword',\n docm: 'application/vnd.ms-word.document.macroenabled.12',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n dot: 'application/msword',\n dotm: 'application/vnd.ms-word.template.macroenabled.12',\n dotx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n xla: 'application/vnd.ms-excel',\n xlam: 'application/vnd.ms-excel.addin.macroenabled.12',\n xlc: 'application/vnd.ms-excel',\n xlf: 'application/x-xliff+xml',\n xlm: 'application/vnd.ms-excel',\n xls: 'application/vnd.ms-excel',\n xlsb: 'application/vnd.ms-excel.sheet.binary.macroenabled.12',\n xlsm: 'application/vnd.ms-excel.sheet.macroenabled.12',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n xlt: 'application/vnd.ms-excel',\n xltm: 'application/vnd.ms-excel.template.macroenabled.12',\n xltx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n xlw: 'application/vnd.ms-excel',\n txt: 'text/plain',\n text: 'text/plain',\n conf: 'text/plain',\n log: 'text/plain',\n pdf: 'application/pdf'\n};","var toArray = require('../../../toArray');\n\nvar getRelativePath = require('./getRelativePath');\n\nvar getFilesAndDirectoriesFromDirectory = require('./getFilesAndDirectoriesFromDirectory');\n\nmodule.exports = function webkitGetAsEntryApi(dataTransfer, logDropError) {\n var files = [];\n var rootPromises = [];\n /**\n * Returns a resolved promise, when :files array is enhanced\n *\n * @param {(FileSystemFileEntry|FileSystemDirectoryEntry)} entry\n * @returns {Promise} - empty promise that resolves when :files is enhanced with a file\n */\n\n var createPromiseToAddFileOrParseDirectory = function createPromiseToAddFileOrParseDirectory(entry) {\n return new Promise(function (resolve) {\n // This is a base call\n if (entry.isFile) {\n // Creates a new File object which can be used to read the file.\n entry.file(function (file) {\n file.relativePath = getRelativePath(entry);\n files.push(file);\n resolve();\n }, // Make sure we resolve on error anyway, it's fine if only one file couldn't be read!\n function (error) {\n logDropError(error);\n resolve();\n }); // This is a recursive call\n } else if (entry.isDirectory) {\n var directoryReader = entry.createReader();\n getFilesAndDirectoriesFromDirectory(directoryReader, [], logDropError, {\n onSuccess: function onSuccess(entries) {\n var promises = entries.map(function (entry) {\n return createPromiseToAddFileOrParseDirectory(entry);\n });\n Promise.all(promises).then(function () {\n return resolve();\n });\n }\n });\n }\n });\n }; // For each dropped item, - make sure it's a file/directory, and start deepening in!\n\n\n toArray(dataTransfer.items).forEach(function (item) {\n var entry = item.webkitGetAsEntry(); // :entry can be null when we drop the url e.g.\n\n if (entry) {\n rootPromises.push(createPromiseToAddFileOrParseDirectory(entry));\n }\n });\n return Promise.all(rootPromises).then(function () {\n return files;\n });\n};","/**\n * Get the relative path from the FileEntry#fullPath, because File#webkitRelativePath is always '', at least onDrop.\n *\n * @param {FileEntry} fileEntry\n *\n * @returns {string|null} - if file is not in a folder - return null (this is to be consistent with .relativePath-s of files selected from My Device). If file is in a folder - return its fullPath, e.g. '/simpsons/hi.jpeg'.\n */\nmodule.exports = function getRelativePath(fileEntry) {\n // fileEntry.fullPath - \"/simpsons/hi.jpeg\" or undefined (for browsers that don't support it)\n // fileEntry.name - \"hi.jpeg\"\n if (!fileEntry.fullPath || fileEntry.fullPath === '/' + fileEntry.name) {\n return null;\n } else {\n return fileEntry.fullPath;\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar throttle = require('lodash.throttle');\n\nvar classNames = require('classnames');\n\nvar statusBarStates = require('./StatusBarStates');\n\nvar prettierBytes = require('@transloadit/prettier-bytes');\n\nvar prettyETA = require('@uppy/utils/lib/prettyETA');\n\nvar _require = require('preact'),\n h = _require.h;\n\nfunction calculateProcessingProgress(files) {\n // Collect pre or postprocessing progress states.\n var progresses = [];\n Object.keys(files).forEach(function (fileID) {\n var progress = files[fileID].progress;\n\n if (progress.preprocess) {\n progresses.push(progress.preprocess);\n }\n\n if (progress.postprocess) {\n progresses.push(progress.postprocess);\n }\n }); // In the future we should probably do this differently. For now we'll take the\n // mode and message from the first file…\n\n var _progresses$ = progresses[0],\n mode = _progresses$.mode,\n message = _progresses$.message;\n var value = progresses.filter(isDeterminate).reduce(function (total, progress, index, all) {\n return total + progress.value / all.length;\n }, 0);\n\n function isDeterminate(progress) {\n return progress.mode === 'determinate';\n }\n\n return {\n mode: mode,\n message: message,\n value: value\n };\n}\n\nfunction togglePauseResume(props) {\n if (props.isAllComplete) return;\n\n if (!props.resumableUploads) {\n return props.cancelAll();\n }\n\n if (props.isAllPaused) {\n return props.resumeAll();\n }\n\n return props.pauseAll();\n}\n\nmodule.exports = function (props) {\n props = props || {};\n var _props = props,\n newFiles = _props.newFiles,\n allowNewUpload = _props.allowNewUpload,\n isUploadInProgress = _props.isUploadInProgress,\n isAllPaused = _props.isAllPaused,\n resumableUploads = _props.resumableUploads,\n error = _props.error,\n hideUploadButton = _props.hideUploadButton,\n hidePauseResumeButton = _props.hidePauseResumeButton,\n hideCancelButton = _props.hideCancelButton,\n hideRetryButton = _props.hideRetryButton;\n var uploadState = props.uploadState;\n var progressValue = props.totalProgress;\n var progressMode;\n var progressBarContent;\n\n if (uploadState === statusBarStates.STATE_PREPROCESSING || uploadState === statusBarStates.STATE_POSTPROCESSING) {\n var progress = calculateProcessingProgress(props.files);\n progressMode = progress.mode;\n\n if (progressMode === 'determinate') {\n progressValue = progress.value * 100;\n }\n\n progressBarContent = ProgressBarProcessing(progress);\n } else if (uploadState === statusBarStates.STATE_COMPLETE) {\n progressBarContent = ProgressBarComplete(props);\n } else if (uploadState === statusBarStates.STATE_UPLOADING) {\n if (!props.supportsUploadProgress) {\n progressMode = 'indeterminate';\n progressValue = null;\n }\n\n progressBarContent = ProgressBarUploading(props);\n } else if (uploadState === statusBarStates.STATE_ERROR) {\n progressValue = undefined;\n progressBarContent = ProgressBarError(props);\n }\n\n var width = typeof progressValue === 'number' ? progressValue : 100;\n var isHidden = uploadState === statusBarStates.STATE_WAITING && props.hideUploadButton || uploadState === statusBarStates.STATE_WAITING && !props.newFiles > 0 || uploadState === statusBarStates.STATE_COMPLETE && props.hideAfterFinish;\n var showUploadBtn = !error && newFiles && !isUploadInProgress && !isAllPaused && allowNewUpload && !hideUploadButton;\n var showCancelBtn = !hideCancelButton && uploadState !== statusBarStates.STATE_WAITING && uploadState !== statusBarStates.STATE_COMPLETE;\n var showPauseResumeBtn = resumableUploads && !hidePauseResumeButton && uploadState === statusBarStates.STATE_UPLOADING;\n var showRetryBtn = error && !hideRetryButton;\n var progressClassNames = \"uppy-StatusBar-progress\\n \" + (progressMode ? 'is-' + progressMode : '');\n var statusBarClassNames = classNames({\n 'uppy-Root': props.isTargetDOMEl\n }, 'uppy-StatusBar', \"is-\" + uploadState);\n return h(\"div\", {\n class: statusBarClassNames,\n \"aria-hidden\": isHidden\n }, h(\"div\", {\n class: progressClassNames,\n style: {\n width: width + '%'\n },\n role: \"progressbar\",\n \"aria-valuemin\": \"0\",\n \"aria-valuemax\": \"100\",\n \"aria-valuenow\": progressValue\n }), progressBarContent, h(\"div\", {\n class: \"uppy-StatusBar-actions\"\n }, showUploadBtn ? h(UploadBtn, _extends({}, props, {\n uploadState: uploadState\n })) : null, showRetryBtn ? h(RetryBtn, props) : null, showPauseResumeBtn ? h(PauseResumeButton, props) : null, showCancelBtn ? h(CancelBtn, props) : null));\n};\n\nvar UploadBtn = function UploadBtn(props) {\n var uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--upload', {\n 'uppy-c-btn-primary': props.uploadState === statusBarStates.STATE_WAITING\n });\n return h(\"button\", {\n type: \"button\",\n class: uploadBtnClassNames,\n \"aria-label\": props.i18n('uploadXFiles', {\n smart_count: props.newFiles\n }),\n onclick: props.startUpload,\n \"data-uppy-super-focusable\": true\n }, props.newFiles && props.isUploadStarted ? props.i18n('uploadXNewFiles', {\n smart_count: props.newFiles\n }) : props.i18n('uploadXFiles', {\n smart_count: props.newFiles\n }));\n};\n\nvar RetryBtn = function RetryBtn(props) {\n return h(\"button\", {\n type: \"button\",\n class: \"uppy-u-reset uppy-c-btn uppy-StatusBar-actionBtn uppy-StatusBar-actionBtn--retry\",\n \"aria-label\": props.i18n('retryUpload'),\n onclick: props.retryAll,\n \"data-uppy-super-focusable\": true\n }, h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-c-icon\",\n width: \"8\",\n height: \"10\",\n viewBox: \"0 0 8 10\"\n }, h(\"path\", {\n d: \"M4 2.408a2.75 2.75 0 1 0 2.75 2.75.626.626 0 0 1 1.25.018v.023a4 4 0 1 1-4-4.041V.25a.25.25 0 0 1 .389-.208l2.299 1.533a.25.25 0 0 1 0 .416l-2.3 1.533A.25.25 0 0 1 4 3.316v-.908z\"\n })), props.i18n('retry'));\n};\n\nvar CancelBtn = function CancelBtn(props) {\n return h(\"button\", {\n type: \"button\",\n class: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n title: props.i18n('cancel'),\n \"aria-label\": props.i18n('cancel'),\n onclick: props.cancelAll,\n \"data-uppy-super-focusable\": true\n }, h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-c-icon\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\"\n }, h(\"g\", {\n fill: \"none\",\n \"fill-rule\": \"evenodd\"\n }, h(\"circle\", {\n fill: \"#888\",\n cx: \"8\",\n cy: \"8\",\n r: \"8\"\n }), h(\"path\", {\n fill: \"#FFF\",\n d: \"M9.283 8l2.567 2.567-1.283 1.283L8 9.283 5.433 11.85 4.15 10.567 6.717 8 4.15 5.433 5.433 4.15 8 6.717l2.567-2.567 1.283 1.283z\"\n }))));\n};\n\nvar PauseResumeButton = function PauseResumeButton(props) {\n var isAllPaused = props.isAllPaused,\n i18n = props.i18n;\n var title = isAllPaused ? i18n('resume') : i18n('pause');\n return h(\"button\", {\n title: title,\n \"aria-label\": title,\n class: \"uppy-u-reset uppy-StatusBar-actionCircleBtn\",\n type: \"button\",\n onclick: function onclick() {\n return togglePauseResume(props);\n },\n \"data-uppy-super-focusable\": true\n }, isAllPaused ? h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-c-icon\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\"\n }, h(\"g\", {\n fill: \"none\",\n \"fill-rule\": \"evenodd\"\n }, h(\"circle\", {\n fill: \"#888\",\n cx: \"8\",\n cy: \"8\",\n r: \"8\"\n }), h(\"path\", {\n fill: \"#FFF\",\n d: \"M6 4.25L11.5 8 6 11.75z\"\n }))) : h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-c-icon\",\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\"\n }, h(\"g\", {\n fill: \"none\",\n \"fill-rule\": \"evenodd\"\n }, h(\"circle\", {\n fill: \"#888\",\n cx: \"8\",\n cy: \"8\",\n r: \"8\"\n }), h(\"path\", {\n d: \"M5 4.5h2v7H5v-7zm4 0h2v7H9v-7z\",\n fill: \"#FFF\"\n }))));\n};\n\nvar LoadingSpinner = function LoadingSpinner() {\n return h(\"svg\", {\n class: \"uppy-StatusBar-spinner\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n width: \"14\",\n height: \"14\"\n }, h(\"path\", {\n d: \"M13.983 6.547c-.12-2.509-1.64-4.893-3.939-5.936-2.48-1.127-5.488-.656-7.556 1.094C.524 3.367-.398 6.048.162 8.562c.556 2.495 2.46 4.52 4.94 5.183 2.932.784 5.61-.602 7.256-3.015-1.493 1.993-3.745 3.309-6.298 2.868-2.514-.434-4.578-2.349-5.153-4.84a6.226 6.226 0 0 1 2.98-6.778C6.34.586 9.74 1.1 11.373 3.493c.407.596.693 1.282.842 1.988.127.598.073 1.197.161 1.794.078.525.543 1.257 1.15.864.525-.341.49-1.05.456-1.592-.007-.15.02.3 0 0\",\n \"fill-rule\": \"evenodd\"\n }));\n};\n\nvar ProgressBarProcessing = function ProgressBarProcessing(props) {\n var value = Math.round(props.value * 100);\n return h(\"div\", {\n class: \"uppy-StatusBar-content\"\n }, h(LoadingSpinner, null), props.mode === 'determinate' ? value + \"% \\xB7 \" : '', props.message);\n};\n\nvar renderDot = function renderDot() {\n return \" \\xB7 \";\n};\n\nvar ProgressDetails = function ProgressDetails(props) {\n var ifShowFilesUploadedOfTotal = props.numUploads > 1;\n return h(\"div\", {\n class: \"uppy-StatusBar-statusSecondary\"\n }, ifShowFilesUploadedOfTotal && props.i18n('filesUploadedOfTotal', {\n complete: props.complete,\n smart_count: props.numUploads\n }), h(\"span\", {\n class: \"uppy-StatusBar-additionalInfo\"\n }, ifShowFilesUploadedOfTotal && renderDot(), props.i18n('dataUploadedOfTotal', {\n complete: prettierBytes(props.totalUploadedSize),\n total: prettierBytes(props.totalSize)\n }), renderDot(), props.i18n('xTimeLeft', {\n time: prettyETA(props.totalETA)\n })));\n};\n\nvar UnknownProgressDetails = function UnknownProgressDetails(props) {\n return h(\"div\", {\n class: \"uppy-StatusBar-statusSecondary\"\n }, props.i18n('filesUploadedOfTotal', {\n complete: props.complete,\n smart_count: props.numUploads\n }));\n};\n\nvar UploadNewlyAddedFiles = function UploadNewlyAddedFiles(props) {\n var uploadBtnClassNames = classNames('uppy-u-reset', 'uppy-c-btn', 'uppy-StatusBar-actionBtn', 'uppy-StatusBar-actionBtn--uploadNewlyAdded');\n return h(\"div\", {\n class: \"uppy-StatusBar-statusSecondary\"\n }, h(\"div\", {\n class: \"uppy-StatusBar-statusSecondaryHint\"\n }, props.i18n('xMoreFilesAdded', {\n smart_count: props.newFiles\n })), h(\"button\", {\n type: \"button\",\n class: uploadBtnClassNames,\n \"aria-label\": props.i18n('uploadXFiles', {\n smart_count: props.newFiles\n }),\n onclick: props.startUpload\n }, props.i18n('upload')));\n};\n\nvar ThrottledProgressDetails = throttle(ProgressDetails, 500, {\n leading: true,\n trailing: true\n});\n\nvar ProgressBarUploading = function ProgressBarUploading(props) {\n if (!props.isUploadStarted || props.isAllComplete) {\n return null;\n }\n\n var title = props.isAllPaused ? props.i18n('paused') : props.i18n('uploading');\n var showUploadNewlyAddedFiles = props.newFiles && props.isUploadStarted;\n return h(\"div\", {\n class: \"uppy-StatusBar-content\",\n \"aria-label\": title,\n title: title\n }, !props.isAllPaused ? h(LoadingSpinner, null) : null, h(\"div\", {\n class: \"uppy-StatusBar-status\"\n }, h(\"div\", {\n class: \"uppy-StatusBar-statusPrimary\"\n }, props.supportsUploadProgress ? title + \": \" + props.totalProgress + \"%\" : title), !props.isAllPaused && !showUploadNewlyAddedFiles && props.showProgressDetails ? props.supportsUploadProgress ? h(ThrottledProgressDetails, props) : h(UnknownProgressDetails, props) : null, showUploadNewlyAddedFiles ? h(UploadNewlyAddedFiles, props) : null));\n};\n\nvar ProgressBarComplete = function ProgressBarComplete(_ref) {\n var totalProgress = _ref.totalProgress,\n i18n = _ref.i18n;\n return h(\"div\", {\n class: \"uppy-StatusBar-content\",\n role: \"status\",\n title: i18n('complete')\n }, h(\"div\", {\n class: \"uppy-StatusBar-status\"\n }, h(\"div\", {\n class: \"uppy-StatusBar-statusPrimary\"\n }, h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n width: \"15\",\n height: \"11\",\n viewBox: \"0 0 15 11\"\n }, h(\"path\", {\n d: \"M.414 5.843L1.627 4.63l3.472 3.472L13.202 0l1.212 1.213L5.1 10.528z\"\n })), i18n('complete'))));\n};\n\nvar ProgressBarError = function ProgressBarError(_ref2) {\n var error = _ref2.error,\n retryAll = _ref2.retryAll,\n hideRetryButton = _ref2.hideRetryButton,\n i18n = _ref2.i18n;\n\n function displayErrorAlert() {\n var errorMessage = i18n('uploadFailed') + \" \\n\\n \" + error;\n alert(errorMessage);\n }\n\n return h(\"div\", {\n class: \"uppy-StatusBar-content\",\n role: \"alert\",\n title: i18n('uploadFailed')\n }, h(\"div\", {\n class: \"uppy-StatusBar-status\"\n }, h(\"div\", {\n class: \"uppy-StatusBar-statusPrimary\"\n }, h(\"svg\", {\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n class: \"uppy-StatusBar-statusIndicator uppy-c-icon\",\n width: \"11\",\n height: \"11\",\n viewBox: \"0 0 11 11\"\n }, h(\"path\", {\n d: \"M4.278 5.5L0 1.222 1.222 0 5.5 4.278 9.778 0 11 1.222 6.722 5.5 11 9.778 9.778 11 5.5 6.722 1.222 11 0 9.778z\"\n })), i18n('uploadFailed'))), h(\"span\", {\n class: \"uppy-StatusBar-details\",\n \"aria-label\": error,\n \"data-microtip-position\": \"top-right\",\n \"data-microtip-size\": \"medium\",\n role: \"tooltip\",\n onclick: displayErrorAlert\n }, \"?\"));\n};","module.exports = function dataURItoBlob(dataURI, opts, toFile) {\n // get the base64 data\n var data = dataURI.split(',')[1]; // user may provide mime type, if not get it from data URI\n\n var mimeType = opts.mimeType || dataURI.split(',')[0].split(':')[1].split(';')[0]; // default to plain/text if data URI has no mimeType\n\n if (mimeType == null) {\n mimeType = 'plain/text';\n }\n\n var binary = atob(data);\n var array = [];\n\n for (var i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i));\n }\n\n var bytes;\n\n try {\n bytes = new Uint8Array(array); // eslint-disable-line compat/compat\n } catch (err) {\n return null;\n } // Convert to a File?\n\n\n if (toFile) {\n return new File([bytes], opts.name || '', {\n type: mimeType\n });\n }\n\n return new Blob([bytes], {\n type: mimeType\n });\n};","/**\n * Check if an object is a DOM element. Duck-typing based on `nodeType`.\n *\n * @param {*} obj\n */\nmodule.exports = function isDOMElement(obj) {\n return obj && typeof obj === 'object' && obj.nodeType === Node.ELEMENT_NODE;\n};","module.exports = function secondsToTime(rawSeconds) {\n var hours = Math.floor(rawSeconds / 3600) % 24;\n var minutes = Math.floor(rawSeconds / 60) % 60;\n var seconds = Math.floor(rawSeconds % 60);\n return {\n hours: hours,\n minutes: minutes,\n seconds: seconds\n };\n};","/**\n * Create a wrapper around an event emitter with a `remove` method to remove\n * all events that were added using the wrapped emitter.\n */\nmodule.exports = /*#__PURE__*/function () {\n function EventTracker(emitter) {\n this._events = [];\n this._emitter = emitter;\n }\n\n var _proto = EventTracker.prototype;\n\n _proto.on = function on(event, fn) {\n this._events.push([event, fn]);\n\n return this._emitter.on(event, fn);\n };\n\n _proto.remove = function remove() {\n var _this = this;\n\n this._events.forEach(function (_ref) {\n var event = _ref[0],\n fn = _ref[1];\n\n _this._emitter.off(event, fn);\n });\n };\n\n return EventTracker;\n}();","module.exports = function settle(promises) {\n var resolutions = [];\n var rejections = [];\n\n function resolved(value) {\n resolutions.push(value);\n }\n\n function rejected(error) {\n rejections.push(error);\n }\n\n var wait = Promise.all(promises.map(function (promise) {\n return promise.then(resolved, rejected);\n }));\n return wait.then(function () {\n return {\n successful: resolutions,\n failed: rejections\n };\n });\n};","/**\n * Returns a timestamp in the format of `hours:minutes:seconds`\n */\nmodule.exports = function getTimeStamp() {\n var date = new Date();\n var hours = pad(date.getHours().toString());\n var minutes = pad(date.getMinutes().toString());\n var seconds = pad(date.getSeconds().toString());\n return hours + ':' + minutes + ':' + seconds;\n};\n/**\n * Adds zero to strings shorter than two characters\n */\n\n\nfunction pad(str) {\n return str.length !== 2 ? 0 + str : str;\n}","function isNetworkError(xhr) {\n if (!xhr) {\n return false;\n }\n\n return xhr.readyState !== 0 && xhr.readyState !== 4 || xhr.status === 0;\n}\n\nmodule.exports = isNetworkError;","var isDOMElement = require('./isDOMElement');\n/**\n * Find a DOM element.\n *\n * @param {Node|string} element\n * @returns {Node|null}\n */\n\n\nmodule.exports = function findDOMElement(element, context) {\n if (context === void 0) {\n context = document;\n }\n\n if (typeof element === 'string') {\n return context.querySelector(element);\n }\n\n if (isDOMElement(element)) {\n return element;\n }\n};","/**\n * Converts list into array\n */\nmodule.exports = function toArray(list) {\n return Array.prototype.slice.call(list || [], 0);\n};","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar NetworkError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(NetworkError, _Error);\n\n function NetworkError(error, xhr) {\n var _this;\n\n if (xhr === void 0) {\n xhr = null;\n }\n\n _this = _Error.call(this, \"This looks like a network error, the endpoint might be blocked by an internet provider or a firewall.\\n\\nSource error: [\" + error + \"]\") || this;\n _this.isNetworkError = true;\n _this.request = xhr;\n return _this;\n }\n\n return NetworkError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nmodule.exports = NetworkError;","/**\n * Takes a file object and turns it into fileID, by converting file.name to lowercase,\n * removing extra characters and adding type, size and lastModified\n *\n * @param {object} file\n * @returns {string} the fileID\n */\nmodule.exports = function generateFileID(file) {\n // It's tempting to do `[items].filter(Boolean).join('-')` here, but that\n // is slower! simple string concatenation is fast\n var id = 'uppy';\n\n if (typeof file.name === 'string') {\n id += '-' + encodeFilename(file.name.toLowerCase());\n }\n\n if (file.type !== undefined) {\n id += '-' + file.type;\n }\n\n if (file.meta && typeof file.meta.relativePath === 'string') {\n id += '-' + encodeFilename(file.meta.relativePath.toLowerCase());\n }\n\n if (file.data.size !== undefined) {\n id += '-' + file.data.size;\n }\n\n if (file.data.lastModified !== undefined) {\n id += '-' + file.data.lastModified;\n }\n\n return id;\n};\n\nfunction encodeFilename(name) {\n var suffix = '';\n return name.replace(/[^A-Z0-9]/ig, function (character) {\n suffix += '-' + encodeCharacter(character);\n return '/';\n }) + suffix;\n}\n\nfunction encodeCharacter(character) {\n return character.charCodeAt(0).toString(32);\n}","module.exports = function getSocketHost(url) {\n // get the host domain\n var regex = /^(?:https?:\\/\\/|\\/\\/)?(?:[^@\\n]+@)?(?:www\\.)?([^\\n]+)/i;\n var host = regex.exec(url)[1];\n var socketProtocol = /^http:\\/\\//i.test(url) ? 'ws' : 'wss';\n return socketProtocol + \"://\" + host;\n};","/**\n * Takes a full filename string and returns an object {name, extension}\n *\n * @param {string} fullFileName\n * @returns {object} {name, extension}\n */\nmodule.exports = function getFileNameAndExtension(fullFileName) {\n var lastDot = fullFileName.lastIndexOf('.'); // these count as no extension: \"no-dot\", \"trailing-dot.\"\n\n if (lastDot === -1 || lastDot === fullFileName.length - 1) {\n return {\n name: fullFileName,\n extension: undefined\n };\n } else {\n return {\n name: fullFileName.slice(0, lastDot),\n extension: fullFileName.slice(lastDot + 1)\n };\n }\n};","var NetworkError = require('@uppy/utils/lib/NetworkError');\n/**\n * Wrapper around window.fetch that throws a NetworkError when appropriate\n */\n\n\nmodule.exports = function fetchWithNetworkError() {\n return fetch.apply(void 0, arguments).catch(function (err) {\n if (err.name === 'AbortError') {\n throw err;\n } else {\n throw new NetworkError(err);\n }\n });\n};","/**\n * Array.prototype.findIndex ponyfill for old browsers.\n */\nfunction findIndex(array, predicate) {\n for (var i = 0; i < array.length; i++) {\n if (predicate(array[i])) return i;\n }\n\n return -1;\n}\n\nfunction createCancelError() {\n return new Error('Cancelled');\n}\n\nmodule.exports = /*#__PURE__*/function () {\n function RateLimitedQueue(limit) {\n if (typeof limit !== 'number' || limit === 0) {\n this.limit = Infinity;\n } else {\n this.limit = limit;\n }\n\n this.activeRequests = 0;\n this.queuedHandlers = [];\n }\n\n var _proto = RateLimitedQueue.prototype;\n\n _proto._call = function _call(fn) {\n var _this = this;\n\n this.activeRequests += 1;\n var _done = false;\n var cancelActive;\n\n try {\n cancelActive = fn();\n } catch (err) {\n this.activeRequests -= 1;\n throw err;\n }\n\n return {\n abort: function abort() {\n if (_done) return;\n _done = true;\n _this.activeRequests -= 1;\n cancelActive();\n\n _this._queueNext();\n },\n done: function done() {\n if (_done) return;\n _done = true;\n _this.activeRequests -= 1;\n\n _this._queueNext();\n }\n };\n };\n\n _proto._queueNext = function _queueNext() {\n var _this2 = this;\n\n // Do it soon but not immediately, this allows clearing out the entire queue synchronously\n // one by one without continuously _advancing_ it (and starting new tasks before immediately\n // aborting them)\n Promise.resolve().then(function () {\n _this2._next();\n });\n };\n\n _proto._next = function _next() {\n if (this.activeRequests >= this.limit) {\n return;\n }\n\n if (this.queuedHandlers.length === 0) {\n return;\n } // Dispatch the next request, and update the abort/done handlers\n // so that cancelling it does the Right Thing (and doesn't just try\n // to dequeue an already-running request).\n\n\n var next = this.queuedHandlers.shift();\n\n var handler = this._call(next.fn);\n\n next.abort = handler.abort;\n next.done = handler.done;\n };\n\n _proto._queue = function _queue(fn, options) {\n var _this3 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var handler = {\n fn: fn,\n priority: options.priority || 0,\n abort: function abort() {\n _this3._dequeue(handler);\n },\n done: function done() {\n throw new Error('Cannot mark a queued request as done: this indicates a bug');\n }\n };\n var index = findIndex(this.queuedHandlers, function (other) {\n return handler.priority > other.priority;\n });\n\n if (index === -1) {\n this.queuedHandlers.push(handler);\n } else {\n this.queuedHandlers.splice(index, 0, handler);\n }\n\n return handler;\n };\n\n _proto._dequeue = function _dequeue(handler) {\n var index = this.queuedHandlers.indexOf(handler);\n\n if (index !== -1) {\n this.queuedHandlers.splice(index, 1);\n }\n };\n\n _proto.run = function run(fn, queueOptions) {\n if (this.activeRequests < this.limit) {\n return this._call(fn);\n }\n\n return this._queue(fn, queueOptions);\n };\n\n _proto.wrapPromiseFunction = function wrapPromiseFunction(fn, queueOptions) {\n var _this4 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var queuedRequest;\n var outerPromise = new Promise(function (resolve, reject) {\n queuedRequest = _this4.run(function () {\n var cancelError;\n var innerPromise;\n\n try {\n innerPromise = Promise.resolve(fn.apply(void 0, args));\n } catch (err) {\n innerPromise = Promise.reject(err);\n }\n\n innerPromise.then(function (result) {\n if (cancelError) {\n reject(cancelError);\n } else {\n queuedRequest.done();\n resolve(result);\n }\n }, function (err) {\n if (cancelError) {\n reject(cancelError);\n } else {\n queuedRequest.done();\n reject(err);\n }\n });\n return function () {\n cancelError = createCancelError();\n };\n }, queueOptions);\n });\n\n outerPromise.abort = function () {\n queuedRequest.abort();\n };\n\n return outerPromise;\n };\n };\n\n return RateLimitedQueue;\n}();","/**\n * Checks if the browser supports Drag & Drop (not supported on mobile devices, for example).\n *\n * @returns {boolean}\n */\nmodule.exports = function isDragDropSupported() {\n var div = document.createElement('div');\n\n if (!('draggable' in div) || !('ondragstart' in div && 'ondrop' in div)) {\n return false;\n }\n\n if (!('FormData' in window)) {\n return false;\n }\n\n if (!('FileReader' in window)) {\n return false;\n }\n\n return true;\n};","var webkitGetAsEntryApi = require('./utils/webkitGetAsEntryApi/index');\n\nvar fallbackApi = require('./utils/fallbackApi');\n/**\n * Returns a promise that resolves to the array of dropped files (if a folder is dropped, and browser supports folder parsing - promise resolves to the flat array of all files in all directories).\n * Each file has .relativePath prop appended to it (e.g. \"/docs/Prague/ticket_from_prague_to_ufa.pdf\") if browser supports it. Otherwise it's undefined.\n *\n * @param {DataTransfer} dataTransfer\n * @param {Function} logDropError - a function that's called every time some folder or some file error out (e.g. because of the folder name being too long on Windows). Notice that resulting promise will always be resolved anyway.\n *\n * @returns {Promise} - Array\n */\n\n\nmodule.exports = function getDroppedFiles(dataTransfer, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$logDropError = _ref.logDropError,\n logDropError = _ref$logDropError === void 0 ? function () {} : _ref$logDropError;\n\n // Get all files from all subdirs. Works (at least) in Chrome, Mozilla, and Safari\n if (dataTransfer.items && dataTransfer.items[0] && 'webkitGetAsEntry' in dataTransfer.items[0]) {\n return webkitGetAsEntryApi(dataTransfer, logDropError); // Otherwise just return all first-order files\n } else {\n return fallbackApi(dataTransfer);\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar has = require('./hasProperty');\n/**\n * Translates strings with interpolation & pluralization support.\n * Extensible with custom dictionaries and pluralization functions.\n *\n * Borrows heavily from and inspired by Polyglot https://github.com/airbnb/polyglot.js,\n * basically a stripped-down version of it. Differences: pluralization functions are not hardcoded\n * and can be easily added among with dictionaries, nested objects are used for pluralization\n * as opposed to `||||` delimeter\n *\n * Usage example: `translator.translate('files_chosen', {smart_count: 3})`\n */\n\n\nmodule.exports = /*#__PURE__*/function () {\n /**\n * @param {object|Array} locales - locale or list of locales.\n */\n function Translator(locales) {\n var _this = this;\n\n this.locale = {\n strings: {},\n pluralize: function pluralize(n) {\n if (n === 1) {\n return 0;\n }\n\n return 1;\n }\n };\n\n if (Array.isArray(locales)) {\n locales.forEach(function (locale) {\n return _this._apply(locale);\n });\n } else {\n this._apply(locales);\n }\n }\n\n var _proto = Translator.prototype;\n\n _proto._apply = function _apply(locale) {\n if (!locale || !locale.strings) {\n return;\n }\n\n var prevLocale = this.locale;\n this.locale = _extends({}, prevLocale, {\n strings: _extends({}, prevLocale.strings, locale.strings)\n });\n this.locale.pluralize = locale.pluralize || prevLocale.pluralize;\n }\n /**\n * Takes a string with placeholder variables like `%{smart_count} file selected`\n * and replaces it with values from options `{smart_count: 5}`\n *\n * @license https://github.com/airbnb/polyglot.js/blob/master/LICENSE\n * taken from https://github.com/airbnb/polyglot.js/blob/master/lib/polyglot.js#L299\n *\n * @param {string} phrase that needs interpolation, with placeholders\n * @param {object} options with values that will be used to replace placeholders\n * @returns {string} interpolated\n */\n ;\n\n _proto.interpolate = function interpolate(phrase, options) {\n var _String$prototype = String.prototype,\n split = _String$prototype.split,\n replace = _String$prototype.replace;\n var dollarRegex = /\\$/g;\n var dollarBillsYall = '$$$$';\n var interpolated = [phrase];\n\n for (var arg in options) {\n if (arg !== '_' && has(options, arg)) {\n // Ensure replacement value is escaped to prevent special $-prefixed\n // regex replace tokens. the \"$$$$\" is needed because each \"$\" needs to\n // be escaped with \"$\" itself, and we need two in the resulting output.\n var replacement = options[arg];\n\n if (typeof replacement === 'string') {\n replacement = replace.call(options[arg], dollarRegex, dollarBillsYall);\n } // We create a new `RegExp` each time instead of using a more-efficient\n // string replace so that the same argument can be replaced multiple times\n // in the same phrase.\n\n\n interpolated = insertReplacement(interpolated, new RegExp('%\\\\{' + arg + '\\\\}', 'g'), replacement);\n }\n }\n\n return interpolated;\n\n function insertReplacement(source, rx, replacement) {\n var newParts = [];\n source.forEach(function (chunk) {\n // When the source contains multiple placeholders for interpolation,\n // we should ignore chunks that are not strings, because those\n // can be JSX objects and will be otherwise incorrectly turned into strings.\n // Without this condition we’d get this: [object Object] hello [object Object] my