%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 13.59.27.141 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/landing/imagecompressor/dist/ |
Upload File : |
{"version":3,"file":"imagecompressor.bundle.js","sources":["../node_modules/blueimp-canvas-to-blob/js/canvas-to-blob.js","../node_modules/is-blob/index.js","../node_modules/compressorjs/src/defaults.js","../node_modules/compressorjs/src/constants.js","../node_modules/compressorjs/src/utilities.js","../node_modules/compressorjs/src/index.js","../src/internal/allowed-size-props.js","../src/internal/url-to-blob.js","../src/imagecompressor.js"],"sourcesContent":["/*\n * JavaScript Canvas to Blob\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/* global define, Uint8Array, ArrayBuffer, module */\n\n;(function(window) {\n 'use strict'\n\n var CanvasPrototype =\n window.HTMLCanvasElement && window.HTMLCanvasElement.prototype\n var hasBlobConstructor =\n window.Blob &&\n (function() {\n try {\n return Boolean(new Blob())\n } catch (e) {\n return false\n }\n })()\n var hasArrayBufferViewSupport =\n hasBlobConstructor &&\n window.Uint8Array &&\n (function() {\n try {\n return new Blob([new Uint8Array(100)]).size === 100\n } catch (e) {\n return false\n }\n })()\n var BlobBuilder =\n window.BlobBuilder ||\n window.WebKitBlobBuilder ||\n window.MozBlobBuilder ||\n window.MSBlobBuilder\n var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/\n var dataURLtoBlob =\n (hasBlobConstructor || BlobBuilder) &&\n window.atob &&\n window.ArrayBuffer &&\n window.Uint8Array &&\n function(dataURI) {\n var matches,\n mediaType,\n isBase64,\n dataString,\n byteString,\n arrayBuffer,\n intArray,\n i,\n bb\n // Parse the dataURI components as per RFC 2397\n matches = dataURI.match(dataURIPattern)\n if (!matches) {\n throw new Error('invalid data URI')\n }\n // Default to text/plain;charset=US-ASCII\n mediaType = matches[2]\n ? matches[1]\n : 'text/plain' + (matches[3] || ';charset=US-ASCII')\n isBase64 = !!matches[4]\n dataString = dataURI.slice(matches[0].length)\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 }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length)\n intArray = new Uint8Array(arrayBuffer)\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i)\n }\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n type: mediaType\n })\n }\n bb = new BlobBuilder()\n bb.append(arrayBuffer)\n return bb.getBlob(mediaType)\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 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 if (typeof define === 'function' && define.amd) {\n define(function() {\n return dataURLtoBlob\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = dataURLtoBlob\n } else {\n window.dataURLtoBlob = dataURLtoBlob\n }\n})(window)\n","'use strict';\n\nmodule.exports = input => {\n\tif (typeof Blob === 'undefined') {\n\t\treturn false;\n\t}\n\n\treturn input instanceof Blob || Object.prototype.toString.call(input) === '[object Blob]';\n};\n","export default {\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","export const IN_BROWSER = typeof window !== 'undefined';\nexport const WINDOW = IN_BROWSER ? window : {};\n","import {\n WINDOW,\n} from './constants';\n\nconst { slice } = Array.prototype;\n\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 */\nexport function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n}\n\nconst REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n\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 */\nexport function isImageType(value) {\n return REGEXP_IMAGE_TYPE.test(value);\n}\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 */\nexport function imageTypeToExtension(value) {\n let extension = isImageType(value) ? value.substr(6) : '';\n\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n\n return `.${extension}`;\n}\n\nconst { fromCharCode } = String;\n\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 */\nexport function getStringFromCharCode(dataView, start, length) {\n let str = '';\n let i;\n\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\nconst { btoa } = WINDOW;\n\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 */\nexport function arrayBufferToDataURL(arrayBuffer, mimeType) {\n const chunks = [];\n const chunkSize = 8192;\n let 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:${mimeType};base64,${btoa(chunks.join(''))}`;\n}\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 */\nexport function resetAndGetOrientation(arrayBuffer) {\n const dataView = new DataView(arrayBuffer);\n let orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n let littleEndian;\n let app1Start;\n let ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n const length = dataView.byteLength;\n let 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 const exifIDCode = app1Start + 4;\n const tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n const endianness = dataView.getUint16(tiffOffset);\n\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n const 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 const length = dataView.getUint16(ifdStart, littleEndian);\n let offset;\n let i;\n\n for (i = 0; i < length; i += 1) {\n offset = ifdStart + (i * 12) + 2;\n\n if (dataView.getUint16(offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(offset, littleEndian);\n\n // Override the orientation with its default value\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/**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\nexport function parseOrientation(orientation) {\n let rotate = 0;\n let scaleX = 1;\n let scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n\n default:\n }\n\n return {\n rotate,\n scaleX,\n scaleY,\n };\n}\n\nconst REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n/**\n * Normalize decimal number.\n * Check out {@link http://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 */\nexport function normalizeDecimalNumber(value, times = 100000000000) {\n return REGEXP_DECIMALS.test(value) ? (Math.round(value * times) / times) : value;\n}\n","import toBlob from 'blueimp-canvas-to-blob';\nimport isBlob from 'is-blob';\nimport DEFAULTS from './defaults';\nimport {\n WINDOW,\n} from './constants';\nimport {\n arrayBufferToDataURL,\n imageTypeToExtension,\n isImageType,\n normalizeDecimalNumber,\n parseOrientation,\n resetAndGetOrientation,\n} from './utilities';\n\nconst { ArrayBuffer, FileReader } = WINDOW;\nconst URL = WINDOW.URL || WINDOW.webkitURL;\nconst REGEXP_EXTENSION = /\\.\\w+$/;\nconst AnotherCompressor = WINDOW.Compressor;\n\n/**\n * Creates a new image compressor.\n * @class\n */\nexport default class Compressor {\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 constructor(file, options) {\n this.file = file;\n this.image = new Image();\n this.options = {\n ...DEFAULTS,\n ...options,\n };\n this.aborted = false;\n this.result = null;\n this.init();\n }\n\n init() {\n const { file, options } = this;\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 const 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) {\n options.checkOrientation = false;\n }\n\n if (URL && !options.checkOrientation) {\n this.load({\n url: URL.createObjectURL(file),\n });\n } else {\n const reader = new FileReader();\n const checkOrientation = options.checkOrientation && mimeType === 'image/jpeg';\n\n this.reader = reader;\n reader.onload = ({ target }) => {\n const { result } = target;\n const 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 const 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 Object.assign(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 reader.onabort = () => {\n this.fail(new Error('Aborted to read the image with FileReader.'));\n };\n reader.onerror = () => {\n this.fail(new Error('Failed to read the image with FileReader.'));\n };\n reader.onloadend = () => {\n this.reader = null;\n };\n\n if (checkOrientation) {\n reader.readAsArrayBuffer(file);\n } else {\n reader.readAsDataURL(file);\n }\n }\n }\n\n load(data) {\n const { file, image } = this;\n\n image.onload = () => {\n this.draw({\n ...data,\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight,\n });\n };\n image.onabort = () => {\n this.fail(new Error('Aborted to load the image.'));\n };\n image.onerror = () => {\n this.fail(new Error('Failed to load the image.'));\n };\n image.alt = file.name;\n image.src = data.url;\n }\n\n draw({\n naturalWidth,\n naturalHeight,\n rotate = 0,\n scaleX = 1,\n scaleY = 1,\n }) {\n const { file, image, options } = this;\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const aspectRatio = naturalWidth / naturalHeight;\n const is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n let maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n let maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n let minWidth = Math.max(options.minWidth, 0) || 0;\n let minHeight = Math.max(options.minHeight, 0) || 0;\n let width = Math.max(options.width, 0) || naturalWidth;\n let height = Math.max(options.height, 0) || naturalHeight;\n\n if (is90DegreesRotated) {\n [maxWidth, maxHeight] = [maxHeight, maxWidth];\n [minWidth, minHeight] = [minHeight, minWidth];\n [width, height] = [height, width];\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\n const destX = -width / 2;\n const destY = -height / 2;\n const destWidth = width;\n const destHeight = height;\n\n if (is90DegreesRotated) {\n [width, height] = [height, width];\n }\n\n canvas.width = width;\n canvas.height = height;\n\n if (!isImageType(options.mimeType)) {\n options.mimeType = file.type;\n }\n\n let fillStyle = 'transparent';\n\n // Converts PNG files over the `convertSize` to JPEGs.\n if (file.size > options.convertSize && options.mimeType === 'image/png') {\n fillStyle = '#fff';\n options.mimeType = 'image/jpeg';\n }\n\n // Override the default fill color (#000, black)\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 const done = (result) => {\n if (!this.aborted) {\n this.done({\n naturalWidth,\n naturalHeight,\n result,\n });\n }\n };\n\n if (canvas.toBlob) {\n canvas.toBlob(done, options.mimeType, options.quality);\n } else {\n done(toBlob(canvas.toDataURL(options.mimeType, options.quality)));\n }\n }\n\n done({\n naturalWidth,\n naturalHeight,\n result,\n }) {\n const { file, image, options } = this;\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 && !(\n options.width > naturalWidth\n || options.height > naturalHeight\n || options.minWidth > naturalWidth\n || options.minHeight > naturalHeight\n )) {\n result = file;\n } else {\n const date = new Date();\n\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\n result.name = file.name;\n\n // Convert the extension to match its type\n if (result.name && result.type !== file.type) {\n result.name = result.name.replace(\n REGEXP_EXTENSION,\n imageTypeToExtension(result.type),\n );\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 fail(err) {\n const { options } = this;\n\n if (options.error) {\n options.error.call(this, err);\n } else {\n throw err;\n }\n }\n\n 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 /**\n * Get the no conflict compressor class.\n * @returns {Compressor} The compressor class.\n */\n static noConflict() {\n window.Compressor = AnotherCompressor;\n return Compressor;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n static setDefaults(options) {\n Object.assign(DEFAULTS, options);\n }\n}\n","const allowedSizeProps = [\n\t'width',\n\t'height',\n\t'maxWidth',\n\t'maxHeight',\n\t'minWidth',\n\t'minHeight',\n];\n\nexport default allowedSizeProps;","import {Type, ajax} from 'main.core';\n\nexport default function urlToBlob(url)\n{\n\tif (!Type.isString(url))\n\t{\n\t\treturn Promise.resolve(url);\n\t}\n\n\treturn new Promise((resolve, reject) => {\n\t\ttry\n\t\t{\n\t\t\tconst xhr = ajax.xhr();\n\t\t\txhr.open('GET', url);\n\t\t\txhr.responseType = 'blob';\n\t\t\txhr.onerror = () => {\n\t\t\t\treject(new Error('Network error.'));\n\t\t\t};\n\t\t\txhr.onload = () => {\n\t\t\t\tif (xhr.status === 200)\n\t\t\t\t{\n\t\t\t\t\tresolve(xhr.response);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treject(new Error(`Loading error: ${xhr.statusText}`));\n\t\t\t\t}\n\t\t\t};\n\t\t\txhr.send();\n\t\t}\n\t\tcatch (err)\n\t\t{\n\t\t\treject(err.message);\n\t\t}\n\t});\n}","import {Type} from 'main.core';\nimport Compressor from 'compressorjs/src/index';\nimport allowedSizeProps from './internal/allowed-size-props';\nimport urlToBlob from './internal/url-to-blob';\nimport type {ImageCompressorOptions} from './types';\n\nexport class ImageCompressor\n{\n\tconstructor(file, options: ImageCompressorOptions = {})\n\t{\n\t\tthis.file = file;\n\t\tthis.options = {quality: 0.8, ...options};\n\n\t\tif (this.options.retina)\n\t\t{\n\t\t\tallowedSizeProps.forEach((prop) => {\n\t\t\t\tif (Type.isNumber(this.options[prop]))\n\t\t\t\t{\n\t\t\t\t\tthis.options[prop] *= 2;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic compress(file, options: ImageCompressorOptions = {}): Promise<File>\n\t{\n\t\treturn urlToBlob(file).then((blob) => {\n\t\t\tconst compressor = new ImageCompressor(blob, options);\n\t\t\treturn compressor.compress();\n\t\t});\n\t}\n\n\tcompress(): Promise<File>\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tvoid new Compressor(\n\t\t\t\tthis.file,\n\t\t\t\t{...this.options, ...{success: resolve, error: reject}},\n\t\t\t);\n\t\t});\n\t}\n}"],"names":["dataURIPattern","dataURLtoBlob","window","matches","match","mediaType","byteString","decodeURIComponent","arrayBuffer","intArray","i","bb","HTMLCanvasElement","self","setTimeout","toDataURL","callback","CanvasPrototype","define","module","Blob","input","Object","prototype","toString","call","strict","checkOrientation","maxWidth","Infinity","maxHeight","minWidth","minHeight","width","undefined","height","quality","mimeType","convertSize","beforeDraw","drew","success","error","IN_BROWSER","WINDOW","slice","Array","toArray","value","from","REGEXP_IMAGE_TYPE","isImageType","test","imageTypeToExtension","extension","substr","fromCharCode","String","getStringFromCharCode","dataView","start","length","str","getUint8","btoa","arrayBufferToDataURL","chunks","chunkSize","uint8","Uint8Array","push","apply","subarray","join","resetAndGetOrientation","DataView","orientation","littleEndian","app1Start","ifdStart","byteLength","offset","exifIDCode","tiffOffset","endianness","getUint16","firstIFDOffset","getUint32","setUint16","e","parseOrientation","rotate","scaleX","scaleY","REGEXP_DECIMALS","normalizeDecimalNumber","times","Math","round","ArrayBuffer","FileReader","URL","webkitURL","REGEXP_EXTENSION","AnotherCompressor","Compressor","file","options","image","Image","DEFAULTS","aborted","result","init","isBlob","fail","Error","type","load","url","createObjectURL","reader","onload","target","data","assign","onabort","onerror","onloadend","readAsArrayBuffer","readAsDataURL","draw","naturalWidth","naturalHeight","alt","name","src","canvas","document","createElement","context","getContext","aspectRatio","is90DegreesRotated","abs","max","floor","min","destX","destY","destWidth","destHeight","fillStyle","size","fillRect","save","translate","PI","scale","drawImage","restore","done","toBlob","revokeObjectURL","date","Date","lastModified","getTime","lastModifiedDate","replace","err","abort","complete","allowedSizeProps","urlToBlob","Type","isString","Promise","resolve","reject","xhr","ajax","open","responseType","status","response","statusText","send","message","ImageCompressor","retina","forEach","prop","isNumber","then","blob","compressor","compress"],"mappings":"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"}