UNPKG

18.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["index.js"],"names":["require","Plugin","Translator","StatusBarUI","statusBarStates","getSpeed","getBytesRemaining","getTextDirection","module","exports","uppy","opts","startUpload","upload","catch","id","title","type","defaultLocale","strings","uploading","complete","uploadFailed","paused","retry","retryUpload","cancel","pause","resume","done","filesUploadedOfTotal","dataUploadedOfTotal","xTimeLeft","uploadXFiles","uploadXNewFiles","xMoreFilesAdded","defaultOptions","target","hideUploadButton","hideRetryButton","hidePauseResumeButton","hideCancelButton","showProgressDetails","hideAfterFinish","doneButtonHandler","i18nInit","render","bind","install","setOptions","newOpts","translator","locale","i18n","translate","setPluginState","getTotalSpeed","files","totalSpeed","forEach","file","progress","getTotalETA","totalBytesRemaining","reduce","total","Math","round","getUploadingState","isAllErrored","isAllComplete","STATE_ERROR","STATE_COMPLETE","state","STATE_WAITING","fileIDs","Object","keys","i","length","uploadStarted","uploadComplete","STATE_UPLOADING","preprocess","STATE_PREPROCESSING","postprocess","STATE_POSTPROCESSING","capabilities","allowNewUpload","totalProgress","error","filesArray","map","newFiles","filter","uploadStartedFiles","pausedFiles","isPaused","completeFiles","erroredFiles","inProgressFiles","inProgressNotPausedFiles","startedFiles","processingFiles","totalETA","totalSize","totalUploadedSize","bytesTotal","bytesUploaded","isUploadStarted","isAllPaused","isUploadInProgress","resumableUploads","supportsUploadProgress","uploadProgress","uploadState","numUploads","pauseAll","resumeAll","retryAll","cancelAll","isTargetDOMEl","onMount","element","el","direction","dir","mount","uninstall","unmount","VERSION"],"mappings":"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","sourcesContent":["const { Plugin } = require('@uppy/core')\nconst Translator = require('@uppy/utils/lib/Translator')\nconst StatusBarUI = require('./StatusBar')\nconst statusBarStates = require('./StatusBarStates')\nconst getSpeed = require('@uppy/utils/lib/getSpeed')\nconst getBytesRemaining = require('@uppy/utils/lib/getBytesRemaining')\nconst getTextDirection = require('@uppy/utils/lib/getTextDirection')\n\n/**\n * StatusBar: renders a status bar with upload/pause/resume/cancel/retry buttons,\n * progress percentage and time remaining.\n */\nmodule.exports = class StatusBar extends Plugin {\n static VERSION = require('../package.json').version\n\n constructor (uppy, opts) {\n super(uppy, opts)\n this.id = this.opts.id || 'StatusBar'\n this.title = 'StatusBar'\n this.type = 'progressindicator'\n\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 done: 'Done',\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 }\n\n // set default options\n const defaultOptions = {\n target: 'body',\n hideUploadButton: false,\n hideRetryButton: false,\n hidePauseResumeButton: false,\n hideCancelButton: false,\n showProgressDetails: false,\n hideAfterFinish: true,\n doneButtonHandler: null\n }\n\n this.opts = { ...defaultOptions, ...opts }\n\n this.i18nInit()\n\n this.render = this.render.bind(this)\n this.install = this.install.bind(this)\n }\n\n setOptions (newOpts) {\n super.setOptions(newOpts)\n this.i18nInit()\n }\n\n 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 getTotalSpeed (files) {\n let totalSpeed = 0\n files.forEach((file) => {\n totalSpeed = totalSpeed + getSpeed(file.progress)\n })\n return totalSpeed\n }\n\n getTotalETA (files) {\n const totalSpeed = this.getTotalSpeed(files)\n if (totalSpeed === 0) {\n return 0\n }\n\n const totalBytesRemaining = files.reduce((total, file) => {\n return total + getBytesRemaining(file.progress)\n }, 0)\n\n return Math.round(totalBytesRemaining / totalSpeed * 10) / 10\n }\n\n startUpload = () => {\n return this.uppy.upload().catch(() => {\n // Error logged in Core\n })\n }\n\n 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 let state = statusBarStates.STATE_WAITING\n const fileIDs = Object.keys(files)\n for (let i = 0; i < fileIDs.length; i++) {\n const progress = files[fileIDs[i]].progress\n // If ANY files are being uploaded right now, show the uploading state.\n if (progress.uploadStarted && !progress.uploadComplete) {\n return statusBarStates.STATE_UPLOADING\n }\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 if (progress.preprocess && state !== statusBarStates.STATE_UPLOADING) {\n state = statusBarStates.STATE_PREPROCESSING\n }\n // If NO files are being preprocessed or uploaded right now, but some files are\n // being postprocessed, show the postprocess state.\n if (progress.postprocess && state !== statusBarStates.STATE_UPLOADING && state !== statusBarStates.STATE_PREPROCESSING) {\n state = statusBarStates.STATE_POSTPROCESSING\n }\n }\n return state\n }\n\n render (state) {\n const {\n capabilities,\n files,\n allowNewUpload,\n totalProgress,\n error\n } = state\n\n // TODO: move this to Core, to share between Status Bar and Dashboard\n // (and any other plugin that might need it, too)\n\n const filesArray = Object.keys(files).map(file => files[file])\n\n const newFiles = filesArray.filter((file) => {\n return !file.progress.uploadStarted &&\n !file.progress.preprocess &&\n !file.progress.postprocess\n })\n\n const uploadStartedFiles = filesArray.filter(file => file.progress.uploadStarted)\n const pausedFiles = uploadStartedFiles.filter(file => file.isPaused)\n const completeFiles = filesArray.filter(file => file.progress.uploadComplete)\n const erroredFiles = filesArray.filter(file => file.error)\n\n const inProgressFiles = filesArray.filter((file) => {\n return !file.progress.uploadComplete &&\n file.progress.uploadStarted\n })\n\n const inProgressNotPausedFiles = inProgressFiles.filter(file => !file.isPaused)\n\n const startedFiles = filesArray.filter((file) => {\n return file.progress.uploadStarted ||\n file.progress.preprocess ||\n file.progress.postprocess\n })\n\n const processingFiles = filesArray.filter(file => file.progress.preprocess || file.progress.postprocess)\n\n const totalETA = this.getTotalETA(inProgressNotPausedFiles)\n\n let totalSize = 0\n let totalUploadedSize = 0\n startedFiles.forEach((file) => {\n totalSize = totalSize + (file.progress.bytesTotal || 0)\n totalUploadedSize = totalUploadedSize + (file.progress.bytesUploaded || 0)\n })\n\n const isUploadStarted = startedFiles.length > 0\n\n const isAllComplete = totalProgress === 100 &&\n completeFiles.length === Object.keys(files).length &&\n processingFiles.length === 0\n\n const isAllErrored = error && erroredFiles.length === filesArray.length\n\n const isAllPaused = inProgressFiles.length !== 0 &&\n pausedFiles.length === inProgressFiles.length\n\n const isUploadInProgress = inProgressFiles.length > 0\n const resumableUploads = capabilities.resumableUploads || false\n const supportsUploadProgress = capabilities.uploadProgress !== false\n\n return StatusBarUI({\n error,\n uploadState: this.getUploadingState(isAllErrored, isAllComplete, state.files || {}),\n allowNewUpload,\n totalProgress,\n totalSize,\n totalUploadedSize,\n isAllComplete,\n isAllPaused,\n isAllErrored,\n isUploadStarted,\n isUploadInProgress,\n complete: completeFiles.length,\n newFiles: newFiles.length,\n numUploads: startedFiles.length,\n totalETA,\n 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 doneButtonHandler: this.opts.doneButtonHandler,\n resumableUploads,\n 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 onMount () {\n // Set the text direction if the page has not defined one.\n const element = this.el\n const direction = getTextDirection(element)\n if (!direction) {\n element.dir = 'ltr'\n }\n }\n\n install () {\n const target = this.opts.target\n if (target) {\n this.mount(target, this)\n }\n }\n\n uninstall () {\n this.unmount()\n }\n}\n"]}
\No newline at end of file