{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/compressorjs/dist/compressor.js"],"names":["fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","push","min","Math","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","length","separator","limit","string","String","this","lim","undefined","call","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","slice","index","apply","test","O","splitter","regexp","res","done","value","rx","S","C","unicodeMatching","p","q","A","e","z","i","aFunction","wellKnownSymbol","SPECIES","module","exports","defaultConstructor","constructor","global","factory","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","_extends","assign","arguments","hasOwnProperty","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties","createCommonjsModule","fn","basedir","path","require","base","commonjsRequire","Error","canvasToBlob","window","CanvasPrototype","HTMLCanvasElement","hasBlobConstructor","Blob","Boolean","hasArrayBufferViewSupport","Uint8Array","size","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURIPattern","dataURLtoBlob","atob","ArrayBuffer","dataURI","matches","mediaType","isBase64","dataString","byteString","arrayBuffer","intArray","bb","decodeURIComponent","charCodeAt","type","append","getBlob","toBlob","mozGetAsFile","callback","quality","self","setTimeout","toDataURL","msToBlob","isBlob","toString","DEFAULTS","strict","checkOrientation","maxWidth","Infinity","maxHeight","minWidth","minHeight","width","height","mimeType","convertSize","beforeDraw","drew","success","error","IS_BROWSER","document","WINDOW","Array","toArray","from","REGEXP_IMAGE_TYPE","isImageType","imageTypeToExtension","extension","substr","concat","fromCharCode","getStringFromCharCode","dataView","start","str","getUint8","btoa","arrayBufferToDataURL","chunks","chunkSize","uint8","subarray","join","resetAndGetOrientation","orientation","DataView","littleEndian","app1Start","ifdStart","byteLength","offset","exifIDCode","tiffOffset","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","parseOrientation","rotate","scaleX","scaleY","REGEXP_DECIMALS","normalizeDecimalNumber","times","round","ArrayBuffer$1","FileReader","URL","webkitURL","REGEXP_EXTENSION","AnotherCompressor","Compressor","file","options","image","Image","aborted","result","init","_this","load","url","createObjectURL","reader","onload","_ref","data","onabort","fail","onerror","onloadend","readAsArrayBuffer","readAsDataURL","_this2","draw","naturalWidth","naturalHeight","navigator","userAgent","crossOrigin","alt","name","src","_ref2","_this3","_ref2$rotate","_ref2$scaleX","_ref2$scaleY","canvas","createElement","context","getContext","aspectRatio","is90DegreesRotated","abs","max","_ref3","_ref4","_ref5","floor","destX","destY","destWidth","destHeight","_ref6","fillStyle","fillRect","save","translate","PI","scale","drawImage","restore","_ref7","revokeObjectURL","date","Date","lastModified","getTime","lastModifiedDate","replace","err","abort","complete"],"mappings":"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","file":"js/chunk-0c9aface.44dfd6e4.js","sourcesContent":["'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","/*!\n * Compressor.js v1.0.7\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-11-28T07:13:17.754Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Compressor = factory());\n}(this, (function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function createCommonjsModule(fn, basedir, module) {\n \treturn module = {\n \t\tpath: basedir,\n \t\texports: {},\n \t\trequire: function (path, base) {\n \t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n \t\t}\n \t}, fn(module, module.exports), module.exports;\n }\n\n function commonjsRequire () {\n \tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n }\n\n var canvasToBlob = createCommonjsModule(function (module) {\n if (typeof window === 'undefined') {\n return;\n }\n\n (function (window) {\n\n var CanvasPrototype = window.HTMLCanvasElement && window.HTMLCanvasElement.prototype;\n\n var hasBlobConstructor = window.Blob && function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }();\n\n var hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array && function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }();\n\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/;\n\n var dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob && window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var matches, mediaType, isBase64, dataString, byteString, arrayBuffer, intArray, i, bb; // Parse the dataURI components as per RFC 2397\n\n matches = dataURI.match(dataURIPattern);\n\n if (!matches) {\n throw new Error('invalid data URI');\n } // Default to text/plain;charset=US-ASCII\n\n\n mediaType = matches[2] ? matches[1] : 'text/plain' + (matches[3] || ';charset=US-ASCII');\n isBase64 = !!matches[4];\n dataString = dataURI.slice(matches[0].length);\n\n if (isBase64) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataString);\n } else {\n // Convert base64/URLEncoded data component to raw binary:\n byteString = decodeURIComponent(dataString);\n } // Write the bytes of the string to an ArrayBuffer:\n\n\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n } // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n\n\n if (hasBlobConstructor) {\n return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n type: mediaType\n });\n }\n\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mediaType);\n };\n\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.mozGetAsFile('blob', type));\n }\n });\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n if (CanvasPrototype.msToBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if ((type && type !== 'image/png' || quality) && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.msToBlob(type));\n }\n });\n };\n } else {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n });\n };\n }\n }\n }\n\n if ( module.exports) {\n module.exports = dataURLtoBlob;\n } else {\n window.dataURLtoBlob = dataURLtoBlob;\n }\n })(window);\n });\n\n var isBlob = function isBlob(value) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n\n return value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n };\n\n var DEFAULTS = {\n /**\n * Indicates if output the original image instead of the compressed one\n * when the size of the compressed image is greater than the original one's\n * @type {boolean}\n */\n strict: true,\n\n /**\n * Indicates if read the image's Exif Orientation information,\n * and then rotate or flip the image automatically.\n * @type {boolean}\n */\n checkOrientation: true,\n\n /**\n * The max width of the output image.\n * @type {number}\n */\n maxWidth: Infinity,\n\n /**\n * The max height of the output image.\n * @type {number}\n */\n maxHeight: Infinity,\n\n /**\n * The min width of the output image.\n * @type {number}\n */\n minWidth: 0,\n\n /**\n * The min height of the output image.\n * @type {number}\n */\n minHeight: 0,\n\n /**\n * The width of the output image.\n * If not specified, the natural width of the source image will be used.\n * @type {number}\n */\n width: undefined,\n\n /**\n * The height of the output image.\n * If not specified, the natural height of the source image will be used.\n * @type {number}\n */\n height: undefined,\n\n /**\n * The quality of the output image.\n * It must be a number between `0` and `1`,\n * and only available for `image/jpeg` and `image/webp` images.\n * Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.\n * @type {number}\n */\n quality: 0.8,\n\n /**\n * The mime type of the output image.\n * By default, the original mime type of the source image file will be used.\n * @type {string}\n */\n mimeType: 'auto',\n\n /**\n * PNG files over this value (5 MB by default) will be converted to JPEGs.\n * To disable this, just set the value to `Infinity`.\n * @type {number}\n */\n convertSize: 5000000,\n\n /**\n * The hook function to execute before draw the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.fillStyle = '#fff';\n * }\n */\n beforeDraw: null,\n\n /**\n * The hook function to execute after drew the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.filter = 'grayscale(100%)';\n * }\n */\n drew: null,\n\n /**\n * The hook function to execute when success to compress the image.\n * @type {Function}\n * @param {File} file - The compressed image File object.\n * @example\n * function (file) {\n * console.log(file);\n * }\n */\n success: null,\n\n /**\n * The hook function to execute when fail to compress the image.\n * @type {Function}\n * @param {Error} err - An Error object.\n * @example\n * function (err) {\n * console.log(err.message);\n * }\n */\n error: null\n };\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n\n var slice = Array.prototype.slice;\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n var REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n /**\n * Check if the given value is a mime type of image.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given is a mime type of image, else `false`.\n */\n\n function isImageType(value) {\n return REGEXP_IMAGE_TYPE.test(value);\n }\n /**\n * Convert image type to extension.\n * @param {string} value - The image type to convert.\n * @returns {boolean} Returns the image extension.\n */\n\n function imageTypeToExtension(value) {\n var extension = isImageType(value) ? value.substr(6) : '';\n\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n\n return \".\".concat(extension);\n }\n var fromCharCode = String.fromCharCode;\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i;\n length += start;\n\n for (i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n var btoa = WINDOW.btoa;\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (e) {\n orientation = 1;\n }\n\n return orientation;\n }\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n\n var ArrayBuffer$1 = WINDOW.ArrayBuffer,\n FileReader = WINDOW.FileReader;\n var URL = WINDOW.URL || WINDOW.webkitURL;\n var REGEXP_EXTENSION = /\\.\\w+$/;\n var AnotherCompressor = WINDOW.Compressor;\n /**\n * Creates a new image compressor.\n * @class\n */\n\n var Compressor = /*#__PURE__*/function () {\n /**\n * The constructor of Compressor.\n * @param {File|Blob} file - The target image file for compressing.\n * @param {Object} [options] - The options for compressing.\n */\n function Compressor(file, options) {\n _classCallCheck(this, Compressor);\n\n this.file = file;\n this.image = new Image();\n this.options = _objectSpread2(_objectSpread2({}, DEFAULTS), options);\n this.aborted = false;\n this.result = null;\n this.init();\n }\n\n _createClass(Compressor, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n var file = this.file,\n options = this.options;\n\n if (!isBlob(file)) {\n this.fail(new Error('The first argument must be a File or Blob object.'));\n return;\n }\n\n var mimeType = file.type;\n\n if (!isImageType(mimeType)) {\n this.fail(new Error('The first argument must be an image File or Blob object.'));\n return;\n }\n\n if (!URL || !FileReader) {\n this.fail(new Error('The current browser does not support image compression.'));\n return;\n }\n\n if (!ArrayBuffer$1) {\n options.checkOrientation = false;\n }\n\n if (URL && !options.checkOrientation) {\n this.load({\n url: URL.createObjectURL(file)\n });\n } else {\n var reader = new FileReader();\n var checkOrientation = options.checkOrientation && mimeType === 'image/jpeg';\n this.reader = reader;\n\n reader.onload = function (_ref) {\n var target = _ref.target;\n var result = target.result;\n var data = {};\n\n if (checkOrientation) {\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n var orientation = resetAndGetOrientation(result);\n\n if (orientation > 1 || !URL) {\n // Generate a new URL which has the default orientation value\n data.url = arrayBufferToDataURL(result, mimeType);\n\n if (orientation > 1) {\n _extends(data, parseOrientation(orientation));\n }\n } else {\n data.url = URL.createObjectURL(file);\n }\n } else {\n data.url = result;\n }\n\n _this.load(data);\n };\n\n reader.onabort = function () {\n _this.fail(new Error('Aborted to read the image with FileReader.'));\n };\n\n reader.onerror = function () {\n _this.fail(new Error('Failed to read the image with FileReader.'));\n };\n\n reader.onloadend = function () {\n _this.reader = null;\n };\n\n if (checkOrientation) {\n reader.readAsArrayBuffer(file);\n } else {\n reader.readAsDataURL(file);\n }\n }\n }\n }, {\n key: \"load\",\n value: function load(data) {\n var _this2 = this;\n\n var file = this.file,\n image = this.image;\n\n image.onload = function () {\n _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight\n }));\n };\n\n image.onabort = function () {\n _this2.fail(new Error('Aborted to load the image.'));\n };\n\n image.onerror = function () {\n _this2.fail(new Error('Failed to load the image.'));\n }; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n\n if (WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent)) {\n // Fix the `The operation is insecure` error (#57)\n image.crossOrigin = 'anonymous';\n }\n\n image.alt = file.name;\n image.src = data.url;\n }\n }, {\n key: \"draw\",\n value: function draw(_ref2) {\n var _this3 = this;\n\n var naturalWidth = _ref2.naturalWidth,\n naturalHeight = _ref2.naturalHeight,\n _ref2$rotate = _ref2.rotate,\n rotate = _ref2$rotate === void 0 ? 0 : _ref2$rotate,\n _ref2$scaleX = _ref2.scaleX,\n scaleX = _ref2$scaleX === void 0 ? 1 : _ref2$scaleX,\n _ref2$scaleY = _ref2.scaleY,\n scaleY = _ref2$scaleY === void 0 ? 1 : _ref2$scaleY;\n var file = this.file,\n image = this.image,\n options = this.options;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var aspectRatio = naturalWidth / naturalHeight;\n var is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n var maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n var maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n var minWidth = Math.max(options.minWidth, 0) || 0;\n var minHeight = Math.max(options.minHeight, 0) || 0;\n var width = Math.max(options.width, 0) || naturalWidth;\n var height = Math.max(options.height, 0) || naturalHeight;\n\n if (is90DegreesRotated) {\n var _ref3 = [maxHeight, maxWidth];\n maxWidth = _ref3[0];\n maxHeight = _ref3[1];\n var _ref4 = [minHeight, minWidth];\n minWidth = _ref4[0];\n minHeight = _ref4[1];\n var _ref5 = [height, width];\n width = _ref5[0];\n height = _ref5[1];\n }\n\n if (maxWidth < Infinity && maxHeight < Infinity) {\n if (maxHeight * aspectRatio > maxWidth) {\n maxHeight = maxWidth / aspectRatio;\n } else {\n maxWidth = maxHeight * aspectRatio;\n }\n } else if (maxWidth < Infinity) {\n maxHeight = maxWidth / aspectRatio;\n } else if (maxHeight < Infinity) {\n maxWidth = maxHeight * aspectRatio;\n }\n\n if (minWidth > 0 && minHeight > 0) {\n if (minHeight * aspectRatio > minWidth) {\n minHeight = minWidth / aspectRatio;\n } else {\n minWidth = minHeight * aspectRatio;\n }\n } else if (minWidth > 0) {\n minHeight = minWidth / aspectRatio;\n } else if (minHeight > 0) {\n minWidth = minHeight * aspectRatio;\n }\n\n if (height * aspectRatio > width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n\n width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));\n height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));\n var destX = -width / 2;\n var destY = -height / 2;\n var destWidth = width;\n var destHeight = height;\n\n if (is90DegreesRotated) {\n var _ref6 = [height, width];\n width = _ref6[0];\n height = _ref6[1];\n }\n\n canvas.width = width;\n canvas.height = height;\n\n if (!isImageType(options.mimeType)) {\n options.mimeType = file.type;\n }\n\n var fillStyle = 'transparent'; // Converts PNG files over the `convertSize` to JPEGs.\n\n if (file.size > options.convertSize && options.mimeType === 'image/png') {\n fillStyle = '#fff';\n options.mimeType = 'image/jpeg';\n } // Override the default fill color (#000, black)\n\n\n context.fillStyle = fillStyle;\n context.fillRect(0, 0, width, height);\n\n if (options.beforeDraw) {\n options.beforeDraw.call(this, context, canvas);\n }\n\n if (this.aborted) {\n return;\n }\n\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.drawImage(image, destX, destY, destWidth, destHeight);\n context.restore();\n\n if (options.drew) {\n options.drew.call(this, context, canvas);\n }\n\n if (this.aborted) {\n return;\n }\n\n var done = function done(result) {\n if (!_this3.aborted) {\n _this3.done({\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n result: result\n });\n }\n };\n\n if (canvas.toBlob) {\n canvas.toBlob(done, options.mimeType, options.quality);\n } else {\n done(canvasToBlob(canvas.toDataURL(options.mimeType, options.quality)));\n }\n }\n }, {\n key: \"done\",\n value: function done(_ref7) {\n var naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight,\n result = _ref7.result;\n var file = this.file,\n image = this.image,\n options = this.options;\n\n if (URL && !options.checkOrientation) {\n URL.revokeObjectURL(image.src);\n }\n\n if (result) {\n // Returns original file if the result is greater than it and without size related options\n if (options.strict && result.size > file.size && options.mimeType === file.type && !(options.width > naturalWidth || options.height > naturalHeight || options.minWidth > naturalWidth || options.minHeight > naturalHeight)) {\n result = file;\n } else {\n var date = new Date();\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\n result.name = file.name; // Convert the extension to match its type\n\n if (result.name && result.type !== file.type) {\n result.name = result.name.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n }\n }\n } else {\n // Returns original file if the result is null in some cases.\n result = file;\n }\n\n this.result = result;\n\n if (options.success) {\n options.success.call(this, result);\n }\n }\n }, {\n key: \"fail\",\n value: function fail(err) {\n var options = this.options;\n\n if (options.error) {\n options.error.call(this, err);\n } else {\n throw err;\n }\n }\n }, {\n key: \"abort\",\n value: function abort() {\n if (!this.aborted) {\n this.aborted = true;\n\n if (this.reader) {\n this.reader.abort();\n } else if (!this.image.complete) {\n this.image.onload = null;\n this.image.onabort();\n } else {\n this.fail(new Error('The compression process has been aborted.'));\n }\n }\n }\n /**\n * Get the no conflict compressor class.\n * @returns {Compressor} The compressor class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Compressor = AnotherCompressor;\n return Compressor;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n _extends(DEFAULTS, options);\n }\n }]);\n\n return Compressor;\n }();\n\n return Compressor;\n\n})));\n"],"sourceRoot":""}