UNPKG

27.1 kBSource Map (JSON)View Raw
1{"version":3,"sources":["index.js"],"names":["require","Plugin","Translator","dataURItoBlob","isObjectURL","isPreviewSupported","MathLog2","exifr","module","exports","uppy","opts","onFileAdded","file","preview","type","isRemote","addToQueue","id","onCancelRequest","index","queue","indexOf","splice","onFileRemoved","URL","revokeObjectURL","onRestored","getState","files","fileIDs","Object","keys","forEach","fileID","getFile","isRestored","waitUntilAllProcessed","emit","mode","message","i18n","emitPreprocessCompleteForAll","Promise","resolve","reject","queueProcessing","once","title","defaultThumbnailDimension","thumbnailType","defaultLocale","strings","generatingThumbnails","defaultOptions","thumbnailWidth","thumbnailHeight","waitForThumbnailsBeforeUpload","lazy","Error","i18nInit","setOptions","newOpts","translator","locale","translate","bind","setPluginState","createThumbnail","targetWidth","targetHeight","originalUrl","createObjectURL","data","onload","image","Image","src","addEventListener","event","error","orientationPromise","rotation","catch","_err","all","then","orientation","dimensions","getProportionalDimensions","deg","rotatedImage","rotateImage","resizedImage","resizeImage","width","height","canvasToBlob","blob","img","aspect","Math","round","protect","ratio","maxSquare","maxSize","maxW","floor","sqrt","maxH","canvas","document","createElement","getContext","drawImage","steps","ceil","sW","pow","sH","x","w","h","context","rotate","rad","scale","scaleX","scaleY","quality","getImageData","err","code","toBlob","toDataURL","setPreviewURL","setFileState","item","push","processQueue","length","current","shift","log","requestThumbnail","install","on","addPreProcessor","uninstall","off","removePreProcessor","VERSION"],"mappings":"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","sourcesContent":["const { Plugin } = require('@uppy/core')\nconst Translator = require('@uppy/utils/lib/Translator')\nconst dataURItoBlob = require('@uppy/utils/lib/dataURItoBlob')\nconst isObjectURL = require('@uppy/utils/lib/isObjectURL')\nconst isPreviewSupported = require('@uppy/utils/lib/isPreviewSupported')\nconst MathLog2 = require('math-log2') // Polyfill for IE.\nconst exifr = require('exifr/dist/mini.legacy.umd.js')\n\n/**\n * The Thumbnail Generator plugin\n */\n\nmodule.exports = class ThumbnailGenerator extends Plugin {\n static VERSION = require('../package.json').version\n\n constructor (uppy, opts) {\n super(uppy, opts)\n this.type = 'modifier'\n this.id = this.opts.id || 'ThumbnailGenerator'\n this.title = 'Thumbnail Generator'\n this.queue = []\n this.queueProcessing = false\n this.defaultThumbnailDimension = 200\n this.thumbnailType = this.opts.thumbnailType || 'image/jpeg'\n\n this.defaultLocale = {\n strings: {\n generatingThumbnails: 'Generating thumbnails...'\n }\n }\n\n const defaultOptions = {\n thumbnailWidth: null,\n thumbnailHeight: null,\n waitForThumbnailsBeforeUpload: false,\n lazy: false\n }\n\n this.opts = { ...defaultOptions, ...opts }\n\n if (this.opts.lazy && this.opts.waitForThumbnailsBeforeUpload) {\n throw new Error('ThumbnailGenerator: The `lazy` and `waitForThumbnailsBeforeUpload` options are mutually exclusive. Please ensure at most one of them is set to `true`.')\n }\n\n this.i18nInit()\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 /**\n * Create a thumbnail for the given Uppy file object.\n *\n * @param {{data: Blob}} file\n * @param {number} targetWidth\n * @param {number} targetHeight\n * @returns {Promise}\n */\n createThumbnail (file, targetWidth, targetHeight) {\n // bug in the compatibility data\n // eslint-disable-next-line compat/compat\n const originalUrl = URL.createObjectURL(file.data)\n\n const onload = new Promise((resolve, reject) => {\n const image = new Image()\n image.src = originalUrl\n image.addEventListener('load', () => {\n // bug in the compatibility data\n // eslint-disable-next-line compat/compat\n URL.revokeObjectURL(originalUrl)\n resolve(image)\n })\n image.addEventListener('error', (event) => {\n // bug in the compatibility data\n // eslint-disable-next-line compat/compat\n URL.revokeObjectURL(originalUrl)\n reject(event.error || new Error('Could not create thumbnail'))\n })\n })\n\n const orientationPromise = exifr.rotation(file.data).catch(_err => 1)\n\n return Promise.all([onload, orientationPromise])\n .then(([image, orientation]) => {\n const dimensions = this.getProportionalDimensions(image, targetWidth, targetHeight, orientation.deg)\n const rotatedImage = this.rotateImage(image, orientation)\n const resizedImage = this.resizeImage(rotatedImage, dimensions.width, dimensions.height)\n return this.canvasToBlob(resizedImage, this.thumbnailType, 80)\n })\n .then(blob => {\n // bug in the compatibility data\n // eslint-disable-next-line compat/compat\n return URL.createObjectURL(blob)\n })\n }\n\n /**\n * Get the new calculated dimensions for the given image and a target width\n * or height. If both width and height are given, only width is taken into\n * account. If neither width nor height are given, the default dimension\n * is used.\n */\n getProportionalDimensions (img, width, height, rotation) {\n var aspect = img.width / img.height\n if (rotation === 90 || rotation === 270) {\n aspect = img.height / img.width\n }\n\n if (width != null) {\n return {\n width: width,\n height: Math.round(width / aspect)\n }\n }\n\n if (height != null) {\n return {\n width: Math.round(height * aspect),\n height: height\n }\n }\n\n return {\n width: this.defaultThumbnailDimension,\n height: Math.round(this.defaultThumbnailDimension / aspect)\n }\n }\n\n /**\n * Make sure the image doesn’t exceed browser/device canvas limits.\n * For ios with 256 RAM and ie\n */\n protect (image) {\n // https://stackoverflow.com/questions/6081483/maximum-size-of-a-canvas-element\n\n var ratio = image.width / image.height\n\n var maxSquare = 5000000 // ios max canvas square\n var maxSize = 4096 // ie max canvas dimensions\n\n var maxW = Math.floor(Math.sqrt(maxSquare * ratio))\n var maxH = Math.floor(maxSquare / Math.sqrt(maxSquare * ratio))\n if (maxW > maxSize) {\n maxW = maxSize\n maxH = Math.round(maxW / ratio)\n }\n if (maxH > maxSize) {\n maxH = maxSize\n maxW = Math.round(ratio * maxH)\n }\n if (image.width > maxW) {\n var canvas = document.createElement('canvas')\n canvas.width = maxW\n canvas.height = maxH\n canvas.getContext('2d').drawImage(image, 0, 0, maxW, maxH)\n image = canvas\n }\n\n return image\n }\n\n /**\n * Resize an image to the target `width` and `height`.\n *\n * Returns a Canvas with the resized image on it.\n */\n resizeImage (image, targetWidth, targetHeight) {\n // Resizing in steps refactored to use a solution from\n // https://blog.uploadcare.com/image-resize-in-browsers-is-broken-e38eed08df01\n\n image = this.protect(image)\n\n var steps = Math.ceil(MathLog2(image.width / targetWidth))\n if (steps < 1) {\n steps = 1\n }\n var sW = targetWidth * Math.pow(2, steps - 1)\n var sH = targetHeight * Math.pow(2, steps - 1)\n var x = 2\n\n while (steps--) {\n var canvas = document.createElement('canvas')\n canvas.width = sW\n canvas.height = sH\n canvas.getContext('2d').drawImage(image, 0, 0, sW, sH)\n image = canvas\n\n sW = Math.round(sW / x)\n sH = Math.round(sH / x)\n }\n\n return image\n }\n\n rotateImage (image, translate) {\n var w = image.width\n var h = image.height\n\n if (translate.deg === 90 || translate.deg === 270) {\n w = image.height\n h = image.width\n }\n\n var canvas = document.createElement('canvas')\n canvas.width = w\n canvas.height = h\n\n var context = canvas.getContext('2d')\n context.translate(w / 2, h / 2)\n if (translate.canvas) {\n context.rotate(translate.rad)\n context.scale(translate.scaleX, translate.scaleY)\n }\n context.drawImage(image, -image.width / 2, -image.height / 2, image.width, image.height)\n\n return canvas\n }\n\n /**\n * Save a <canvas> element's content to a Blob object.\n *\n * @param {HTMLCanvasElement} canvas\n * @returns {Promise}\n */\n canvasToBlob (canvas, type, quality) {\n try {\n canvas.getContext('2d').getImageData(0, 0, 1, 1)\n } catch (err) {\n if (err.code === 18) {\n return Promise.reject(new Error('cannot read image, probably an svg with external resources'))\n }\n }\n\n if (canvas.toBlob) {\n return new Promise(resolve => {\n canvas.toBlob(resolve, type, quality)\n }).then((blob) => {\n if (blob === null) {\n throw new Error('cannot read image, probably an svg with external resources')\n }\n return blob\n })\n }\n return Promise.resolve().then(() => {\n return dataURItoBlob(canvas.toDataURL(type, quality), {})\n }).then((blob) => {\n if (blob === null) {\n throw new Error('could not extract blob, probably an old browser')\n }\n return blob\n })\n }\n\n /**\n * Set the preview URL for a file.\n */\n setPreviewURL (fileID, preview) {\n this.uppy.setFileState(fileID, { preview })\n }\n\n addToQueue (item) {\n this.queue.push(item)\n if (this.queueProcessing === false) {\n this.processQueue()\n }\n }\n\n processQueue () {\n this.queueProcessing = true\n if (this.queue.length > 0) {\n const current = this.uppy.getFile(this.queue.shift())\n if (!current) {\n this.uppy.log('[ThumbnailGenerator] file was removed before a thumbnail could be generated, but not removed from the queue. This is probably a bug', 'error')\n return\n }\n return this.requestThumbnail(current)\n .catch(err => {}) // eslint-disable-line handle-callback-err\n .then(() => this.processQueue())\n } else {\n this.queueProcessing = false\n this.uppy.log('[ThumbnailGenerator] Emptied thumbnail queue')\n this.uppy.emit('thumbnail:all-generated')\n }\n }\n\n requestThumbnail (file) {\n if (isPreviewSupported(file.type) && !file.isRemote) {\n return this.createThumbnail(file, this.opts.thumbnailWidth, this.opts.thumbnailHeight)\n .then(preview => {\n this.setPreviewURL(file.id, preview)\n this.uppy.log(`[ThumbnailGenerator] Generated thumbnail for ${file.id}`)\n this.uppy.emit('thumbnail:generated', this.uppy.getFile(file.id), preview)\n })\n .catch(err => {\n this.uppy.log(`[ThumbnailGenerator] Failed thumbnail for ${file.id}:`, 'warning')\n this.uppy.log(err, 'warning')\n this.uppy.emit('thumbnail:error', this.uppy.getFile(file.id), err)\n })\n }\n return Promise.resolve()\n }\n\n onFileAdded = (file) => {\n if (!file.preview && isPreviewSupported(file.type) && !file.isRemote) {\n this.addToQueue(file.id)\n }\n }\n\n /**\n * Cancel a lazy request for a thumbnail if the thumbnail has not yet been generated.\n */\n onCancelRequest = (file) => {\n const index = this.queue.indexOf(file.id)\n if (index !== -1) {\n this.queue.splice(index, 1)\n }\n }\n\n /**\n * Clean up the thumbnail for a file. Cancel lazy requests and free the thumbnail URL.\n */\n onFileRemoved = (file) => {\n const index = this.queue.indexOf(file.id)\n if (index !== -1) {\n this.queue.splice(index, 1)\n }\n\n // Clean up object URLs.\n if (file.preview && isObjectURL(file.preview)) {\n URL.revokeObjectURL(file.preview)\n }\n }\n\n onRestored = () => {\n const { files } = this.uppy.getState()\n const fileIDs = Object.keys(files)\n fileIDs.forEach((fileID) => {\n const file = this.uppy.getFile(fileID)\n if (!file.isRestored) return\n // Only add blob URLs; they are likely invalid after being restored.\n if (!file.preview || isObjectURL(file.preview)) {\n this.addToQueue(file.id)\n }\n })\n }\n\n waitUntilAllProcessed = (fileIDs) => {\n fileIDs.forEach((fileID) => {\n const file = this.uppy.getFile(fileID)\n this.uppy.emit('preprocess-progress', file, {\n mode: 'indeterminate',\n message: this.i18n('generatingThumbnails')\n })\n })\n\n const emitPreprocessCompleteForAll = () => {\n fileIDs.forEach((fileID) => {\n const file = this.uppy.getFile(fileID)\n this.uppy.emit('preprocess-complete', file)\n })\n }\n\n return new Promise((resolve, reject) => {\n if (this.queueProcessing) {\n this.uppy.once('thumbnail:all-generated', () => {\n emitPreprocessCompleteForAll()\n resolve()\n })\n } else {\n emitPreprocessCompleteForAll()\n resolve()\n }\n })\n }\n\n install () {\n this.uppy.on('file-removed', this.onFileRemoved)\n if (this.opts.lazy) {\n this.uppy.on('thumbnail:request', this.onFileAdded)\n this.uppy.on('thumbnail:cancel', this.onCancelRequest)\n } else {\n this.uppy.on('file-added', this.onFileAdded)\n this.uppy.on('restored', this.onRestored)\n }\n\n if (this.opts.waitForThumbnailsBeforeUpload) {\n this.uppy.addPreProcessor(this.waitUntilAllProcessed)\n }\n }\n\n uninstall () {\n this.uppy.off('file-removed', this.onFileRemoved)\n if (this.opts.lazy) {\n this.uppy.off('thumbnail:request', this.onFileAdded)\n this.uppy.off('thumbnail:cancel', this.onCancelRequest)\n } else {\n this.uppy.off('file-added', this.onFileAdded)\n this.uppy.off('restored', this.onRestored)\n }\n\n if (this.opts.waitForThumbnailsBeforeUpload) {\n this.uppy.removePreProcessor(this.waitUntilAllProcessed)\n }\n }\n}\n"]}
\No newline at end of file