From fa0350139e027a4a82ee901b42283c2aae5bff1f Mon Sep 17 00:00:00 2001 From: Fengyuan Chen Date: Wed, 18 Oct 2017 21:30:24 +0800 Subject: [PATCH] build: release 1.1.2 --- CHANGELOG.md | 4 +++ dist/cropper.common.js | 44 ++++++++++++++++++++------- dist/cropper.css | 4 +-- dist/cropper.esm.js | 44 ++++++++++++++++++++------- dist/cropper.js | 44 ++++++++++++++++++++------- dist/cropper.min.css | 4 +-- dist/cropper.min.js | 6 ++-- docs/css/cropper.css | 4 +-- docs/index.html | 2 +- docs/js/cropper.js | 44 ++++++++++++++++++++------- docs/js/main.js | 2 +- package-lock.json | 68 +++++++++++++++++++++++------------------- package.json | 10 +++---- 13 files changed, 194 insertions(+), 86 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37b5df671..d74a9d404 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.1.2 (Oct 18, 2017) + +- Normalize related decimal numbers when crop an image with canvas. + ## 1.1.1 (Oct 11, 2017) - Supports to load in node environment (#237). diff --git a/dist/cropper.common.js b/dist/cropper.common.js index 6e2bb8292..6dcb37721 100644 --- a/dist/cropper.common.js +++ b/dist/cropper.common.js @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:13.165Z + * Date: 2017-10-18T13:27:02.189Z */ 'use strict'; @@ -168,6 +168,8 @@ var TEMPLATE = '
' + '
1 && arguments[1] !== undefined ? arguments[1] : 100000000000; + + return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value; +} + var REGEXP_SUFFIX = /^(width|height|left|top|marginLeft|marginTop)$/; /** @@ -927,9 +944,10 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { }); var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth)); var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); + var params = [-imageNaturalWidth / 2, -imageNaturalHeight / 2, imageNaturalWidth, imageNaturalHeight]; - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = fillColor; context.fillRect(0, 0, width, height); context.save(); @@ -938,7 +956,9 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { context.scale(scaleX, scaleY); context.imageSmoothingEnabled = imageSmoothingEnabled; context.imageSmoothingQuality = imageSmoothingQuality; - context.drawImage(image, Math.floor(-imageNaturalWidth / 2), Math.floor(-imageNaturalHeight / 2), Math.floor(imageNaturalWidth), Math.floor(imageNaturalHeight)); + context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); context.restore(); return canvas; } @@ -2388,6 +2408,8 @@ var change = { } }; +function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + var methods = { // Show the crop box manually crop: function crop() { @@ -3072,8 +3094,8 @@ var methods = { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = options.fillColor || 'transparent'; context.fillRect(0, 0, width, height); @@ -3139,16 +3161,18 @@ var methods = { // All the numerical parameters should be integer for `drawImage` // https://github.com/fengyuanchen/cropper/issues/476 - var params = [Math.floor(srcX), Math.floor(srcY), Math.floor(srcWidth), Math.floor(srcHeight)]; + var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid "IndexSizeError" if (dstWidth > 0 && dstHeight > 0) { var scale = width / initialWidth; - params.push(Math.floor(dstX * scale), Math.floor(dstY * scale), Math.floor(dstWidth * scale), Math.floor(dstHeight * scale)); + params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale); } - context.drawImage.apply(context, [source].concat(params)); + context.drawImage.apply(context, [source].concat(_toConsumableArray$1(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); return canvas; }, diff --git a/dist/cropper.css b/dist/cropper.css index 28bd17f78..b9580614e 100644 --- a/dist/cropper.css +++ b/dist/cropper.css @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:08.065Z + * Date: 2017-10-18T13:26:08.981Z */ .cropper-container { diff --git a/dist/cropper.esm.js b/dist/cropper.esm.js index 5ccc6b831..dc707f327 100644 --- a/dist/cropper.esm.js +++ b/dist/cropper.esm.js @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:13.165Z + * Date: 2017-10-18T13:27:02.189Z */ var global = typeof window !== 'undefined' ? window : {}; @@ -166,6 +166,8 @@ var TEMPLATE = '
' + '
1 && arguments[1] !== undefined ? arguments[1] : 100000000000; + + return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value; +} + var REGEXP_SUFFIX = /^(width|height|left|top|marginLeft|marginTop)$/; /** @@ -925,9 +942,10 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { }); var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth)); var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); + var params = [-imageNaturalWidth / 2, -imageNaturalHeight / 2, imageNaturalWidth, imageNaturalHeight]; - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = fillColor; context.fillRect(0, 0, width, height); context.save(); @@ -936,7 +954,9 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { context.scale(scaleX, scaleY); context.imageSmoothingEnabled = imageSmoothingEnabled; context.imageSmoothingQuality = imageSmoothingQuality; - context.drawImage(image, Math.floor(-imageNaturalWidth / 2), Math.floor(-imageNaturalHeight / 2), Math.floor(imageNaturalWidth), Math.floor(imageNaturalHeight)); + context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); context.restore(); return canvas; } @@ -2386,6 +2406,8 @@ var change = { } }; +function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + var methods = { // Show the crop box manually crop: function crop() { @@ -3070,8 +3092,8 @@ var methods = { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = options.fillColor || 'transparent'; context.fillRect(0, 0, width, height); @@ -3137,16 +3159,18 @@ var methods = { // All the numerical parameters should be integer for `drawImage` // https://github.com/fengyuanchen/cropper/issues/476 - var params = [Math.floor(srcX), Math.floor(srcY), Math.floor(srcWidth), Math.floor(srcHeight)]; + var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid "IndexSizeError" if (dstWidth > 0 && dstHeight > 0) { var scale = width / initialWidth; - params.push(Math.floor(dstX * scale), Math.floor(dstY * scale), Math.floor(dstWidth * scale), Math.floor(dstHeight * scale)); + params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale); } - context.drawImage.apply(context, [source].concat(params)); + context.drawImage.apply(context, [source].concat(_toConsumableArray$1(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); return canvas; }, diff --git a/dist/cropper.js b/dist/cropper.js index 48da33457..7ae4385bb 100644 --- a/dist/cropper.js +++ b/dist/cropper.js @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:13.165Z + * Date: 2017-10-18T13:27:02.189Z */ (function (global, factory) { @@ -172,6 +172,8 @@ var TEMPLATE = '
' + '
1 && arguments[1] !== undefined ? arguments[1] : 100000000000; + + return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value; +} + var REGEXP_SUFFIX = /^(width|height|left|top|marginLeft|marginTop)$/; /** @@ -931,9 +948,10 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { }); var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth)); var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); + var params = [-imageNaturalWidth / 2, -imageNaturalHeight / 2, imageNaturalWidth, imageNaturalHeight]; - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = fillColor; context.fillRect(0, 0, width, height); context.save(); @@ -942,7 +960,9 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { context.scale(scaleX, scaleY); context.imageSmoothingEnabled = imageSmoothingEnabled; context.imageSmoothingQuality = imageSmoothingQuality; - context.drawImage(image, Math.floor(-imageNaturalWidth / 2), Math.floor(-imageNaturalHeight / 2), Math.floor(imageNaturalWidth), Math.floor(imageNaturalHeight)); + context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); context.restore(); return canvas; } @@ -2392,6 +2412,8 @@ var change = { } }; +function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + var methods = { // Show the crop box manually crop: function crop() { @@ -3076,8 +3098,8 @@ var methods = { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = options.fillColor || 'transparent'; context.fillRect(0, 0, width, height); @@ -3143,16 +3165,18 @@ var methods = { // All the numerical parameters should be integer for `drawImage` // https://github.com/fengyuanchen/cropper/issues/476 - var params = [Math.floor(srcX), Math.floor(srcY), Math.floor(srcWidth), Math.floor(srcHeight)]; + var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid "IndexSizeError" if (dstWidth > 0 && dstHeight > 0) { var scale = width / initialWidth; - params.push(Math.floor(dstX * scale), Math.floor(dstY * scale), Math.floor(dstWidth * scale), Math.floor(dstHeight * scale)); + params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale); } - context.drawImage.apply(context, [source].concat(params)); + context.drawImage.apply(context, [source].concat(_toConsumableArray$1(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); return canvas; }, diff --git a/dist/cropper.min.css b/dist/cropper.min.css index 91d1cf11f..51cbceb7f 100644 --- a/dist/cropper.min.css +++ b/dist/cropper.min.css @@ -1,10 +1,10 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:08.065Z + * Date: 2017-10-18T13:26:08.981Z */.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline-color:rgba(51,153,255,.75);outline:1px solid #39f;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:e-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:n-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:w-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:s-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:e-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:n-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:w-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:ne-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nw-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:sw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:se-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed} /*# sourceMappingURL=cropper.min.css.map */ \ No newline at end of file diff --git a/dist/cropper.min.js b/dist/cropper.min.js index af926ec88..3b54f6932 100644 --- a/dist/cropper.min.js +++ b/dist/cropper.min.js @@ -1,10 +1,10 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:13.165Z + * Date: 2017-10-18T13:27:02.189Z */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Cropper=e()}(this,function(){"use strict";function t(t){return"number"==typeof t&&!K(t)}function e(t){return void 0===t}function i(t){return"object"===(void 0===t?"undefined":F(t))&&null!==t}function a(t){if(!i(t))return!1;try{var e=t.constructor,a=e.prototype;return e&&a&&V.call(a,"isPrototypeOf")}catch(t){return!1}}function n(t){return"function"==typeof t}function o(e,a){if(e&&n(a))if(Array.isArray(e)||t(e.length)){var o=e.length,r=void 0;for(r=0;r1?e-1:0),n=1;n0){if(Object.assign)return Object.assign.apply(Object,[t].concat(a));a.forEach(function(e){i(e)&&Object.keys(e).forEach(function(i){t[i]=e[i]})})}return t}function h(t,e){for(var i=arguments.length,a=Array(i>2?i-2:0),n=2;n-1}function l(e,i){if(i)if(t(e.length))o(e,function(t){l(t,i)});else if(e.classList)e.classList.add(i);else{var a=e.className.trim();a?a.indexOf(i)<0&&(e.className=a+" "+i):e.className=i}}function d(e,i){i&&(t(e.length)?o(e,function(t){d(t,i)}):e.classList?e.classList.remove(i):e.className.indexOf(i)>=0&&(e.className=e.className.replace(i,"")))}function p(e,i,a){i&&(t(e.length)?o(e,function(t){p(t,i,a)}):a?l(e,i):d(e,i))}function m(t){return t.replace(J,"$1-$2").toLowerCase()}function u(t,e){return i(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-"+m(e))}function g(t,e,a){i(a)?t[e]=a:t.dataset?t.dataset[e]=a:t.setAttribute("data-"+m(e),a)}function f(t,e){if(i(t[e]))delete t[e];else if(t.dataset)try{delete t.dataset[e]}catch(i){t.dataset[e]=null}else t.removeAttribute("data-"+m(e))}function v(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(n(i)){var r=e.trim().split(_);r.length>1?o(r,function(e){v(t,e,i)}):(n(i.onceListener)&&delete(i=i.onceListener).onceListener,t.removeEventListener?t.removeEventListener(e,i,a):t.detachEvent&&t.detachEvent("on"+e,i))}}function w(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(n(i)){var r=e.trim().split(_);if(r.length>1)o(r,function(e){w(t,e,i)});else{if(a.once){var h=i,s=function i(){for(var a=arguments.length,n=Array(a),o=0;o0};return n(a)&&n(i)?i*e>a?i=a/e:a=i*e:n(a)?i=a/e:n(i)&&(a=i*e),{width:a,height:i}}function N(t){var e=t.width,i=t.height,a=t.degree;if((a=Math.abs(a))%180==90)return{width:i,height:e};var n=a%90*Math.PI/180,o=Math.sin(n),r=Math.cos(n);return{width:e*r+i*o,height:e*o+i*r}}function H(t,e,i,a){var n=e.naturalWidth,o=e.naturalHeight,r=e.rotate,h=e.scaleX,s=e.scaleY,c=i.aspectRatio,l=i.naturalWidth,d=i.naturalHeight,p=a.fillColor,m=void 0===p?"transparent":p,u=a.imageSmoothingEnabled,g=void 0===u||u,f=a.imageSmoothingQuality,v=void 0===f?"low":f,w=a.maxWidth,b=void 0===w?1/0:w,x=a.maxHeight,y=void 0===x?1/0:x,M=a.minWidth,C=void 0===M?0:M,D=a.minHeight,B=void 0===D?0:D,k=document.createElement("canvas"),E=k.getContext("2d"),T=W({aspectRatio:c,width:b,height:y}),N=W({aspectRatio:c,width:C,height:B}),H=Math.min(T.width,Math.max(N.width,l)),L=Math.min(T.height,Math.max(N.height,d));return k.width=H,k.height=L,E.fillStyle=m,E.fillRect(0,0,H,L),E.save(),E.translate(H/2,L/2),E.rotate(r*Math.PI/180),E.scale(h,s),E.imageSmoothingEnabled=g,E.imageSmoothingQuality=v,E.drawImage(t,Math.floor(-n/2),Math.floor(-o/2),Math.floor(n),Math.floor(o)),E.restore(),k}function L(t,e,i){var a="",n=void 0;for(i+=e,n=e;n=8&&(o=s+l)}}}if(o){var d=e.getUint16(o,a),p=void 0,m=void 0;for(m=0;mt.width?3===i?s=t.height*h:c=t.width/h:3===i?c=t.width/h:s=t.height*h;var l={aspectRatio:h,naturalWidth:n,naturalHeight:o,width:s,height:c};l.left=(t.width-s)/2,l.top=(t.height-c)/2,l.oldLeft=l.left,l.oldTop=l.top,this.canvasData=l,this.limited=1===i||2===i,this.limitCanvas(!0,!0),this.initialImageData=r({},e),this.initialCanvasData=r({},l)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=i.viewMode,h=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;r>1?(c=Math.max(c,a.width),l=Math.max(l,a.height),3===r&&(l*h>c?c=l*h:l=c/h)):r>0&&(c?c=Math.max(c,s?o.width:0):l?l=Math.max(l,s?o.height:0):s&&(c=o.width,(l=o.height)*h>c?c=l*h:l=c/h));var d=W({aspectRatio:h,width:c,height:l});c=d.width,l=d.height,n.minWidth=c,n.minHeight=l,n.maxWidth=1/0,n.maxHeight=1/0}if(e)if(r){var p=a.width-n.width,m=a.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,m),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,m),s&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===r&&(n.width>=a.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=a.height&&(n.minTop=Math.min(0,m),n.maxTop=Math.max(0,m))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height},renderCanvas:function(t,e){var i=this.canvasData,a=this.imageData;if(e){var n=N({width:a.naturalWidth*Math.abs(a.scaleX),height:a.naturalHeight*Math.abs(a.scaleY),degree:a.rotate}),o=n.width,h=n.height,c=i.width*(o/i.naturalWidth),l=i.height*(h/i.naturalHeight);i.left-=(c-i.width)/2,i.top-=(l-i.height)/2,i.width=c,i.height=l,i.aspectRatio=o/h,i.naturalWidth=o,i.naturalHeight=h,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heighte.width?n.height=n.width/i:n.width=n.height*i),this.cropBoxData=n,this.limitCropBox(!0,!0),n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight),n.width=Math.max(n.minWidth,n.width*a),n.height=Math.max(n.minHeight,n.height*a),n.left=e.left+(e.width-n.width)/2,n.top=e.top+(e.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=r({},n)},limitCropBox:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=this.limited,h=i.aspectRatio;if(t){var s=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=Math.min(a.width,r?n.width:a.width),d=Math.min(a.height,r?n.height:a.height);s=Math.min(s,a.width),c=Math.min(c,a.height),h&&(s&&c?c*h>s?c=s/h:s=c*h:s?c=s/h:c&&(s=c*h),d*h>l?d=l/h:l=d*h),o.minWidth=Math.min(s,l),o.minHeight=Math.min(c,d),o.maxWidth=l,o.maxHeight=d}e&&(r?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(a.width,n.left+n.width)-o.width,o.maxTop=Math.min(a.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?"move":"all"),s(this.cropBox,r({width:i.width,height:i.height},D({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),this.complete&&b(this.element,"crop",this.getData())}},st={initPreview:function(){var t=this.crossOrigin,e=this.options.preview,i=t?this.crossOriginUrl:this.url,a=document.createElement("img");if(t&&(a.crossOrigin=t),a.src=i,this.viewBox.appendChild(a),this.image2=a,e){var n=e.querySelector?[e]:document.querySelectorAll(e);this.previews=n,o(n,function(e){var a=document.createElement("img");g(e,"preview",{width:e.offsetWidth,height:e.offsetHeight,html:e.innerHTML}),t&&(a.crossOrigin=t),a.src=i,a.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',y(e),e.appendChild(a)})}},resetPreview:function(){o(this.previews,function(t){var e=u(t,"preview");s(t,{width:e.width,height:e.height}),t.innerHTML=e.html,f(t,"preview")})},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,a=i.width,n=i.height,h=t.width,c=t.height,l=i.left-e.left-t.left,d=i.top-e.top-t.top;this.cropped&&!this.disabled&&(s(this.image2,r({width:h,height:c},D(r({translateX:-l,translateY:-d},t)))),o(this.previews,function(e){var i=u(e,"preview"),o=i.width,p=i.height,m=o,g=p,f=1;a&&(g=n*(f=o/a)),n&&g>p&&(m=a*(f=p/n),g=p),s(e,{width:m,height:g}),s(e.getElementsByTagName("img")[0],r({width:h*f,height:c*f},D(r({translateX:-l*f,translateY:-d*f},t))))}))}},ct={bind:function(){var t=this.element,e=this.options,i=this.cropper;n(e.cropstart)&&w(t,"cropstart",e.cropstart),n(e.cropmove)&&w(t,"cropmove",e.cropmove),n(e.cropend)&&w(t,"cropend",e.cropend),n(e.crop)&&w(t,"crop",e.crop),n(e.zoom)&&w(t,"zoom",e.zoom),w(i,I,this.onCropStart=h(this.cropStart,this)),e.zoomable&&e.zoomOnWheel&&w(i,"wheel mousewheel DOMMouseScroll",this.onWheel=h(this.wheel,this)),e.toggleDragModeOnDblclick&&w(i,"dblclick",this.onDblclick=h(this.dblclick,this)),w(document,U,this.onCropMove=h(this.cropMove,this)),w(document,j,this.onCropEnd=h(this.cropEnd,this)),e.responsive&&w(R,"resize",this.onResize=h(this.resize,this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;n(e.cropstart)&&v(t,"cropstart",e.cropstart),n(e.cropmove)&&v(t,"cropmove",e.cropmove),n(e.cropend)&&v(t,"cropend",e.cropend),n(e.crop)&&v(t,"crop",e.crop),n(e.zoom)&&v(t,"zoom",e.zoom),v(i,I,this.onCropStart),e.zoomable&&e.zoomOnWheel&&v(i,"wheel mousewheel DOMMouseScroll",this.onWheel),e.toggleDragModeOnDblclick&&v(i,"dblclick",this.onDblclick),v(document,U,this.onCropMove),v(document,j,this.onCropEnd),e.responsive&&v(R,"resize",this.onResize)}},lt={resize:function(){var t=this.options,e=this.container,i=this.containerData,a=Number(t.minContainerWidth)||200,n=Number(t.minContainerHeight)||100;if(!(this.disabled||i.width<=a||i.height<=n)){var r=e.offsetWidth/i.width;if(1!==r||e.offsetHeight!==i.height){var h=void 0,s=void 0;t.restore&&(h=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(o(h,function(t,e){h[e]=t*r})),this.setCropBoxData(o(s,function(t,e){s[e]=t*r})))}}},dblclick:function(){this.disabled||"none"===this.options.dragMode||this.setDragMode(c(this.dragBox,"cropper-crop")?"move":"crop")},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout(function(){e.wheeling=!1},50),t.deltaY?a=t.deltaY>0?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=t.detail>0?1:-1),this.zoom(-a*i,t)))},cropStart:function(t){if(!this.disabled){var e=this.options,i=this.pointers,a=void 0;t.changedTouches?o(t.changedTouches,function(t){i[t.identifier]=E(t)}):i[t.pointerId||0]=E(t),a=Object.keys(i).length>1&&e.zoomable&&e.zoomOnTouch?"zoom":u(t.target,"action"),P.test(a)&&!1!==b(this.element,"cropstart",{originalEvent:t,action:a})&&(t.preventDefault(),this.action=a,this.cropping=!1,"crop"===a&&(this.cropping=!0,l(this.dragBox,"cropper-modal")))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==b(this.element,"cropmove",{originalEvent:t,action:e})&&(t.changedTouches?o(t.changedTouches,function(t){r(i[t.identifier],E(t,!0))}):r(i[t.pointerId||0],E(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?o(t.changedTouches,function(t){delete i[t.identifier]}):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,p(this.dragBox,"cropper-modal",this.cropped&&this.options.modal)),b(this.element,"cropend",{originalEvent:t,action:e}))}}},dt={change:function(t){var e=this.options,i=this.canvasData,a=this.containerData,n=this.cropBoxData,r=this.pointers,h=this.action,s=e.aspectRatio,c=n.left,l=n.top,p=n.width,m=n.height,u=c+p,g=l+m,f=0,v=0,w=a.width,b=a.height,y=!0,M=void 0;!s&&t.shiftKey&&(s=p&&m?p/m:1),this.limited&&(f=n.minLeft,v=n.minTop,w=f+Math.min(a.width,i.width,i.left+i.width),b=v+Math.min(a.height,i.height,i.top+i.height));var C=r[Object.keys(r)[0]],D={x:C.endX-C.startX,y:C.endY-C.startY},B=function(t){switch(t){case"e":u+D.x>w&&(D.x=w-u);break;case"w":c+D.xb&&(D.y=b-g)}};switch(h){case"all":c+=D.x,l+=D.y;break;case"e":if(D.x>=0&&(u>=w||s&&(l<=v||g>=b))){y=!1;break}B("e"),p+=D.x,s&&(m=p/s,l-=D.x/s/2),p<0&&(h="w",p=0);break;case"n":if(D.y<=0&&(l<=v||s&&(c<=f||u>=w))){y=!1;break}B("n"),m-=D.y,l+=D.y,s&&(p=m*s,c+=D.y*s/2),m<0&&(h="s",m=0);break;case"w":if(D.x<=0&&(c<=f||s&&(l<=v||g>=b))){y=!1;break}B("w"),p-=D.x,c+=D.x,s&&(m=p/s,l+=D.x/s/2),p<0&&(h="e",p=0);break;case"s":if(D.y>=0&&(g>=b||s&&(c<=f||u>=w))){y=!1;break}B("s"),m+=D.y,s&&(p=m*s,c-=D.y*s/2),m<0&&(h="n",m=0);break;case"ne":if(s){if(D.y<=0&&(l<=v||u>=w)){y=!1;break}B("n"),m-=D.y,l+=D.y,p=m*s}else B("n"),B("e"),D.x>=0?uv&&(m-=D.y,l+=D.y):(m-=D.y,l+=D.y);p<0&&m<0?(h="sw",m=0,p=0):p<0?(h="nw",p=0):m<0&&(h="se",m=0);break;case"nw":if(s){if(D.y<=0&&(l<=v||c<=f)){y=!1;break}B("n"),m-=D.y,l+=D.y,p=m*s,c+=D.y*s}else B("n"),B("w"),D.x<=0?c>f?(p-=D.x,c+=D.x):D.y<=0&&l<=v&&(y=!1):(p-=D.x,c+=D.x),D.y<=0?l>v&&(m-=D.y,l+=D.y):(m-=D.y,l+=D.y);p<0&&m<0?(h="se",m=0,p=0):p<0?(h="ne",p=0):m<0&&(h="sw",m=0);break;case"sw":if(s){if(D.x<=0&&(c<=f||g>=b)){y=!1;break}B("w"),p-=D.x,c+=D.x,m=p/s}else B("s"),B("w"),D.x<=0?c>f?(p-=D.x,c+=D.x):D.y>=0&&g>=b&&(y=!1):(p-=D.x,c+=D.x),D.y>=0?g=0&&(u>=w||g>=b)){y=!1;break}B("e"),m=(p+=D.x)/s}else B("s"),B("e"),D.x>=0?u=0&&g>=b&&(y=!1):p+=D.x,D.y>=0?g0?h=D.y>0?"se":"ne":D.x<0&&(c-=p,h=D.y>0?"sw":"nw"),D.y<0&&(l-=m),this.cropped||(d(this.cropBox,A),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}y&&(n.width=p,n.height=m,n.left=c,n.top=l,this.action=h,this.renderCropBox()),o(r,function(t){t.startX=t.endX,t.startY=t.endY})}},pt={crop:function(){return this.ready&&!this.disabled&&(this.cropped||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&l(this.dragBox,"cropper-modal"),d(this.cropBox,A)),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=r({},this.initialImageData),this.canvasData=r({},this.initialCanvasData),this.cropBoxData=r({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(r(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),d(this.dragBox,"cropper-modal"),l(this.cropBox,A)),this},replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.image2.src=t,o(this.previews,function(e){e.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.load(t))),this},enable:function(){return this.ready&&(this.disabled=!1,d(this.cropper,"cropper-disabled")),this},disable:function(){return this.ready&&(this.disabled=!0,l(this.cropper,"cropper-disabled")),this},destroy:function(){var t=this.element,e=this.image;return this.loaded?(this.isImg&&this.replaced&&(t.src=this.originalUrl),this.unbuild(),d(t,A)):this.isImg?v(t,"load",this.onStart):e&&e.parentNode.removeChild(e),f(t,"cropper"),this},move:function(t,i){var a=this.canvasData,n=a.left,o=a.top;return this.moveTo(e(t)?t:n+Number(t),e(i)?i:o+Number(i))},moveTo:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,a=this.canvasData,n=!1;return e=Number(e),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(t(e)&&(a.left=e,n=!0),t(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=Number(t),t=t<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,e)},zoomTo:function(t,e){var i=this.options,a=this.canvasData,n=a.width,o=a.height,r=a.naturalWidth,h=a.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&i.zoomable){var s=r*t,c=h*t;if(!1===b(this.element,"zoom",{originalEvent:e,oldRatio:n/r,ratio:s/r}))return this;if(e){var l=this.pointers,d=x(this.cropper),p=l&&Object.keys(l).length?T(l):{pageX:e.pageX,pageY:e.pageY};a.left-=(s-n)*((p.pageX-d.left-a.left)/n),a.top-=(c-o)*((p.pageY-d.top-a.top)/o)}else a.left-=(s-n)/2,a.top-=(c-o)/2;a.width=s,a.height=c,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(e){return e=Number(e),t(e)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var i=this.imageData.scaleY;return this.scale(e,t(i)?i:1)},scaleY:function(e){var i=this.imageData.scaleX;return this.scale(t(i)?i:1,e)},scale:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,a=this.imageData,n=!1;return e=Number(e),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(t(e)&&(a.scaleX=e,n=!0),t(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.options,i=this.imageData,a=this.canvasData,n=this.cropBoxData,r=void 0;if(this.ready&&this.cropped){r={x:n.left-a.left,y:n.top-a.top,width:n.width,height:n.height};var h=i.width/i.naturalWidth;o(r,function(e,i){e/=h,r[i]=t?Math.round(e):e})}else r={x:0,y:0,width:0,height:0};return e.rotatable&&(r.rotate=i.rotate||0),e.scalable&&(r.scaleX=i.scaleX||1,r.scaleY=i.scaleY||1),r},setData:function(e){var i=this.options,o=this.imageData,r=this.canvasData,h={};if(n(e)&&(e=e.call(this.element)),this.ready&&!this.disabled&&a(e)){var s=!1;i.rotatable&&t(e.rotate)&&e.rotate!==o.rotate&&(o.rotate=e.rotate,s=!0),i.scalable&&(t(e.scaleX)&&e.scaleX!==o.scaleX&&(o.scaleX=e.scaleX,s=!0),t(e.scaleY)&&e.scaleY!==o.scaleY&&(o.scaleY=e.scaleY,s=!0)),s&&this.renderCanvas(!0,!0);var c=o.width/o.naturalWidth;t(e.x)&&(h.left=e.x*c+r.left),t(e.y)&&(h.top=e.y*c+r.top),t(e.width)&&(h.width=e.width*c),t(e.height)&&(h.height=e.height*c),this.setCropBoxData(h)}return this},getContainerData:function(){return this.ready?r({},this.containerData):{}},getImageData:function(){return this.loaded?r({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&o(["left","top","width","height","naturalWidth","naturalHeight"],function(i){e[i]=t[i]}),e},setCanvasData:function(e){var i=this.canvasData,o=i.aspectRatio;return n(e)&&(e=e.call(this.element)),this.ready&&!this.disabled&&a(e)&&(t(e.left)&&(i.left=e.left),t(e.top)&&(i.top=e.top),t(e.width)?(i.width=e.width,i.height=e.width/o):t(e.height)&&(i.height=e.height,i.width=e.height*o),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,e=void 0;return this.ready&&this.cropped&&(e={left:t.left,top:t.top,width:t.width,height:t.height}),e||{}},setCropBoxData:function(e){var i=this.cropBoxData,o=this.options.aspectRatio,r=void 0,h=void 0;return n(e)&&(e=e.call(this.element)),this.ready&&this.cropped&&!this.disabled&&a(e)&&(t(e.left)&&(i.left=e.left),t(e.top)&&(i.top=e.top),t(e.width)&&e.width!==i.width&&(r=!0,i.width=e.width),t(e.height)&&e.height!==i.height&&(h=!0,i.height=e.height),o&&(r?i.height=i.width/o:h&&(i.width=i.height*o)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!R.HTMLCanvasElement)return null;var e=this.canvasData,i=H(this.image,this.imageData,e,t);if(!this.cropped)return i;var a=this.getData(),n=a.x,o=a.y,r=a.width,h=a.height,s=r/h,c=W({aspectRatio:s,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),l=W({aspectRatio:s,width:t.minWidth||0,height:t.minHeight||0}),d=W({aspectRatio:s,width:t.width||r,height:t.height||h}),p=d.width,m=d.height;p=Math.min(c.width,Math.max(l.width,p)),m=Math.min(c.height,Math.max(l.height,m));var u=document.createElement("canvas"),g=u.getContext("2d");u.width=p,u.height=m,g.fillStyle=t.fillColor||"transparent",g.fillRect(0,0,p,m);var f=t.imageSmoothingEnabled,v=void 0===f||f,w=t.imageSmoothingQuality;g.imageSmoothingEnabled=v,w&&(g.imageSmoothingQuality=w);var b=i.width,x=i.height,y=n,M=o,C=void 0,D=void 0,B=void 0,k=void 0,E=void 0,T=void 0;y<=-r||y>b?(y=0,C=0,B=0,E=0):y<=0?(B=-y,y=0,E=C=Math.min(b,r+y)):y<=b&&(B=0,E=C=Math.min(r,b-y)),C<=0||M<=-h||M>x?(M=0,D=0,k=0,T=0):M<=0?(k=-M,M=0,T=D=Math.min(x,h+M)):M<=x&&(k=0,T=D=Math.min(h,x-M));var N=[Math.floor(y),Math.floor(M),Math.floor(C),Math.floor(D)];if(E>0&&T>0){var L=p/r;N.push(Math.floor(B*L),Math.floor(k*L),Math.floor(E*L),Math.floor(T*L))}return g.drawImage.apply(g,[i].concat(N)),u},setAspectRatio:function(t){var i=this.options;return this.disabled||e(t)||(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,a=this.face;if(this.loaded&&!this.disabled){var n="crop"===t,o=e.movable&&"move"===t;g(i,"action",t=n||o?t:"none"),p(i,"cropper-crop",n),p(i,"cropper-move",o),e.cropBoxMovable||(g(a,"action",t),p(a,"cropper-crop",n),p(a,"cropper-move",o))}return this}},mt=function(){function t(t,e){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(z(this,t),!e||!Q.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=r({},Z,a(i)&&i),this.complete=!1,this.cropped=!1,this.disabled=!1,this.isImg=!1,this.limited=!1,this.loaded=!1,this.ready=!1,this.replaced=!1,this.wheeling=!1,this.originalUrl="",this.canvasData=null,this.cropBoxData=null,this.previews=null,this.pointers={},this.init()}return mt(t,[{key:"init",value:function(){var t=this.element,e=t.tagName.toLowerCase(),i=void 0;if(!u(t,"cropper")){if(g(t,"cropper",this),"img"===e){if(this.isImg=!0,i=t.getAttribute("src")||"",this.originalUrl=i,!i)return;i=t.src}else"canvas"===e&&R.HTMLCanvasElement&&(i=t.toDataURL());this.load(i)}}},{key:"load",value:function(t){var e=this;if(t){this.url=t,this.imageData={};var i=this.element,a=this.options;if(a.checkOrientation&&R.ArrayBuffer)if(q.test(t))$.test(t)?this.read(Y(t)):this.clone();else{var n=new XMLHttpRequest;n.onerror=function(){e.clone()},n.onload=function(){e.read(n.response)},a.checkCrossOrigin&&M(t)&&i.crossOrigin&&(t=C(t)),n.open("get",t),n.responseType="arraybuffer",n.withCredentials="use-credentials"===i.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,a=O(t),n=0,o=1,r=1;if(a>1){this.url=X(t,"image/jpeg");var h=S(a);n=h.rotate,o=h.scaleX,r=h.scaleY}e.rotatable&&(i.rotate=n),e.scalable&&(i.scaleX=o,i.scaleY=r),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=void 0,a=void 0;this.options.checkCrossOrigin&&M(e)&&((i=t.crossOrigin)?a=e:(i="anonymous",a=C(e))),this.crossOrigin=i,this.crossOriginUrl=a;var n=document.createElement("img");i&&(n.crossOrigin=i),n.src=a||e;var o=h(this.start,this),r=h(this.stop,this);this.image=n,this.onStart=o,this.onStop=r,this.isImg?t.complete?this.start():w(t,"load",o):(w(n,"load",o),w(n,"error",r),l(n,"cropper-hide"),t.parentNode.insertBefore(n,t.nextSibling))}},{key:"start",value:function(t){var e=this,i=this.isImg?this.element:this.image;t&&(v(i,"load",this.onStart),v(i,"error",this.onStop)),B(i,function(t,i){r(e.imageData,{naturalWidth:t,naturalHeight:i,aspectRatio:t/i}),e.loaded=!0,e.build()})}},{key:"stop",value:function(){var t=this.image;v(t,"load",this.onStart),v(t,"error",this.onStop),t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){var t=this;if(this.loaded){this.ready&&this.unbuild();var e=this.element,i=this.options,a=this.image,o=e.parentNode,r=document.createElement("div");r.innerHTML='
';var h=r.querySelector(".cropper-container"),s=h.querySelector(".cropper-canvas"),c=h.querySelector(".cropper-drag-box"),p=h.querySelector(".cropper-crop-box"),m=p.querySelector(".cropper-face");this.container=o,this.cropper=h,this.canvas=s,this.dragBox=c,this.cropBox=p,this.viewBox=h.querySelector(".cropper-view-box"),this.face=m,s.appendChild(a),l(e,A),o.insertBefore(h,e.nextSibling),this.isImg||d(a,"cropper-hide"),this.initPreview(),this.bind(),i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,this.cropped=i.autoCrop,i.autoCrop?i.modal&&l(c,"cropper-modal"):l(p,A),i.guides||l(p.getElementsByClassName("cropper-dashed"),A),i.center||l(p.getElementsByClassName("cropper-center"),A),i.background&&l(h,"cropper-bg"),i.highlight||l(m,"cropper-invisible"),i.cropBoxMovable&&(l(m,"cropper-move"),g(m,"action","all")),i.cropBoxResizable||(l(p.getElementsByClassName("cropper-line"),A),l(p.getElementsByClassName("cropper-point"),A)),this.setDragMode(i.dragMode),this.render(),this.ready=!0,this.setData(i.data),this.completing=setTimeout(function(){n(i.ready)&&w(e,"ready",i.ready,{once:!0}),b(e,"ready"),b(e,"crop",t.getData()),t.complete=!0},0)}}},{key:"unbuild",value:function(){this.ready&&(this.complete||clearTimeout(this.completing),this.ready=!1,this.complete=!1,this.initialImageData=null,this.initialCanvasData=null,this.initialCropBoxData=null,this.containerData=null,this.canvasData=null,this.cropBoxData=null,this.unbind(),this.resetPreview(),this.previews=null,this.viewBox=null,this.cropBox=null,this.dragBox=null,this.canvas=null,this.container=null,this.cropper.parentNode.removeChild(this.cropper),this.cropper=null)}}],[{key:"noConflict",value:function(){return R.Cropper=ut,t}},{key:"setDefaults",value:function(t){r(Z,a(t)&&t)}}]),t}();return r(gt.prototype,ht,st,ct,lt,dt,pt),gt}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Cropper=e()}(this,function(){"use strict";function t(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e1?e-1:0),n=1;n0){if(Object.assign)return Object.assign.apply(Object,[t].concat(i));i.forEach(function(e){a(e)&&Object.keys(e).forEach(function(i){t[i]=e[i]})})}return t}function s(t,e){for(var i=arguments.length,a=Array(i>2?i-2:0),n=2;n1&&void 0!==arguments[1]?arguments[1]:1e11;return tt.test(t)?Math.round(t*e)/e:t}function l(t,i){var a=t.style;r(i,function(t,i){et.test(i)&&e(t)&&(t+="px"),a[i]=t})}function d(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1}function p(t,i){if(i)if(e(t.length))r(t,function(t){p(t,i)});else if(t.classList)t.classList.add(i);else{var a=t.className.trim();a?a.indexOf(i)<0&&(t.className=a+" "+i):t.className=i}}function m(t,i){i&&(e(t.length)?r(t,function(t){m(t,i)}):t.classList?t.classList.remove(i):t.className.indexOf(i)>=0&&(t.className=t.className.replace(i,"")))}function u(t,i,a){i&&(e(t.length)?r(t,function(t){u(t,i,a)}):a?p(t,i):m(t,i))}function g(t){return t.replace(it,"$1-$2").toLowerCase()}function f(t,e){return a(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-"+g(e))}function v(t,e,i){a(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-"+g(e),i)}function w(t,e){if(a(t[e]))delete t[e];else if(t.dataset)try{delete t.dataset[e]}catch(i){t.dataset[e]=null}else t.removeAttribute("data-"+g(e))}function b(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(o(i)){var n=e.trim().split(at);n.length>1?r(n,function(e){b(t,e,i)}):(o(i.onceListener)&&delete(i=i.onceListener).onceListener,t.removeEventListener?t.removeEventListener(e,i,a):t.detachEvent&&t.detachEvent("on"+e,i))}}function x(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(o(i)){var n=e.trim().split(at);if(n.length>1)r(n,function(e){x(t,e,i)});else{if(a.once){var h=i,s=function i(){for(var a=arguments.length,n=Array(a),o=0;o0};return n(a)&&n(i)?i*e>a?i=a/e:a=i*e:n(a)?i=a/e:n(i)&&(a=i*e),{width:a,height:i}}function L(t){var e=t.width,i=t.height,a=t.degree;if((a=Math.abs(a))%180==90)return{width:i,height:e};var n=a%90*Math.PI/180,o=Math.sin(n),r=Math.cos(n);return{width:e*r+i*o,height:e*o+i*r}}function Y(e,i,a,n){var o=i.naturalWidth,r=i.naturalHeight,h=i.rotate,s=i.scaleX,l=i.scaleY,d=a.aspectRatio,p=a.naturalWidth,m=a.naturalHeight,u=n.fillColor,g=void 0===u?"transparent":u,f=n.imageSmoothingEnabled,v=void 0===f||f,w=n.imageSmoothingQuality,b=void 0===w?"low":w,x=n.maxWidth,y=void 0===x?1/0:x,M=n.maxHeight,C=void 0===M?1/0:M,D=n.minWidth,B=void 0===D?0:D,k=n.minHeight,E=void 0===k?0:k,T=document.createElement("canvas"),W=T.getContext("2d"),N=H({aspectRatio:d,width:y,height:C}),L=H({aspectRatio:d,width:B,height:E}),Y=Math.min(N.width,Math.max(L.width,p)),X=Math.min(N.height,Math.max(L.height,m)),O=[-o/2,-r/2,o,r];return T.width=c(Y),T.height=c(X),W.fillStyle=g,W.fillRect(0,0,Y,X),W.save(),W.translate(Y/2,X/2),W.rotate(h*Math.PI/180),W.scale(s,l),W.imageSmoothingEnabled=v,W.imageSmoothingQuality=b,W.drawImage.apply(W,[e].concat(t(O.map(function(t){return Math.floor(c(t))})))),W.restore(),T}function X(t,e,i){var a="",n=void 0;for(i+=e,n=e;n=8&&(o=s+l)}}}if(o){var d=e.getUint16(o,a),p=void 0,m=void 0;for(m=0;mt.width?3===i?s=t.height*r:c=t.width/r:3===i?c=t.width/r:s=t.height*r;var l={aspectRatio:r,naturalWidth:n,naturalHeight:o,width:s,height:c};l.left=(t.width-s)/2,l.top=(t.height-c)/2,l.oldLeft=l.left,l.oldTop=l.top,this.canvasData=l,this.limited=1===i||2===i,this.limitCanvas(!0,!0),this.initialImageData=h({},e),this.initialCanvasData=h({},l)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=i.viewMode,h=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;r>1?(c=Math.max(c,a.width),l=Math.max(l,a.height),3===r&&(l*h>c?c=l*h:l=c/h)):r>0&&(c?c=Math.max(c,s?o.width:0):l?l=Math.max(l,s?o.height:0):s&&(c=o.width,(l=o.height)*h>c?c=l*h:l=c/h));var d=H({aspectRatio:h,width:c,height:l});c=d.width,l=d.height,n.minWidth=c,n.minHeight=l,n.maxWidth=1/0,n.maxHeight=1/0}if(e)if(r){var p=a.width-n.width,m=a.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,m),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,m),s&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===r&&(n.width>=a.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=a.height&&(n.minTop=Math.min(0,m),n.maxTop=Math.max(0,m))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height},renderCanvas:function(t,e){var i=this.canvasData,a=this.imageData;if(e){var n=L({width:a.naturalWidth*Math.abs(a.scaleX),height:a.naturalHeight*Math.abs(a.scaleY),degree:a.rotate}),o=n.width,r=n.height,s=i.width*(o/i.naturalWidth),c=i.height*(r/i.naturalHeight);i.left-=(s-i.width)/2,i.top-=(c-i.height)/2,i.width=s,i.height=c,i.aspectRatio=o/r,i.naturalWidth=o,i.naturalHeight=r,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heighte.width?n.height=n.width/i:n.width=n.height*i),this.cropBoxData=n,this.limitCropBox(!0,!0),n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight),n.width=Math.max(n.minWidth,n.width*a),n.height=Math.max(n.minHeight,n.height*a),n.left=e.left+(e.width-n.width)/2,n.top=e.top+(e.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=h({},n)},limitCropBox:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=this.limited,h=i.aspectRatio;if(t){var s=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=Math.min(a.width,r?n.width:a.width),d=Math.min(a.height,r?n.height:a.height);s=Math.min(s,a.width),c=Math.min(c,a.height),h&&(s&&c?c*h>s?c=s/h:s=c*h:s?c=s/h:c&&(s=c*h),d*h>l?d=l/h:l=d*h),o.minWidth=Math.min(s,l),o.minHeight=Math.min(c,d),o.maxWidth=l,o.maxHeight=d}e&&(r?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(a.width,n.left+n.width)-o.width,o.maxTop=Math.min(a.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?"move":"all"),l(this.cropBox,h({width:i.width,height:i.height},k({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),this.complete&&y(this.element,"crop",this.getData())}},pt={initPreview:function(){var t=this.crossOrigin,e=this.options.preview,i=t?this.crossOriginUrl:this.url,a=document.createElement("img");if(t&&(a.crossOrigin=t),a.src=i,this.viewBox.appendChild(a),this.image2=a,e){var n=e.querySelector?[e]:document.querySelectorAll(e);this.previews=n,r(n,function(e){var a=document.createElement("img");v(e,"preview",{width:e.offsetWidth,height:e.offsetHeight,html:e.innerHTML}),t&&(a.crossOrigin=t),a.src=i,a.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',C(e),e.appendChild(a)})}},resetPreview:function(){r(this.previews,function(t){var e=f(t,"preview");l(t,{width:e.width,height:e.height}),t.innerHTML=e.html,w(t,"preview")})},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,a=i.width,n=i.height,o=t.width,s=t.height,c=i.left-e.left-t.left,d=i.top-e.top-t.top;this.cropped&&!this.disabled&&(l(this.image2,h({width:o,height:s},k(h({translateX:-c,translateY:-d},t)))),r(this.previews,function(e){var i=f(e,"preview"),r=i.width,p=i.height,m=r,u=p,g=1;a&&(u=n*(g=r/a)),n&&u>p&&(m=a*(g=p/n),u=p),l(e,{width:m,height:u}),l(e.getElementsByTagName("img")[0],h({width:o*g,height:s*g},k(h({translateX:-c*g,translateY:-d*g},t))))}))}},mt={bind:function(){var t=this.element,e=this.options,i=this.cropper;o(e.cropstart)&&x(t,"cropstart",e.cropstart),o(e.cropmove)&&x(t,"cropmove",e.cropmove),o(e.cropend)&&x(t,"cropend",e.cropend),o(e.crop)&&x(t,"crop",e.crop),o(e.zoom)&&x(t,"zoom",e.zoom),x(i,P,this.onCropStart=s(this.cropStart,this)),e.zoomable&&e.zoomOnWheel&&x(i,"wheel mousewheel DOMMouseScroll",this.onWheel=s(this.wheel,this)),e.toggleDragModeOnDblclick&&x(i,"dblclick",this.onDblclick=s(this.dblclick,this)),x(document,q,this.onCropMove=s(this.cropMove,this)),x(document,$,this.onCropEnd=s(this.cropEnd,this)),e.responsive&&x(U,"resize",this.onResize=s(this.resize,this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;o(e.cropstart)&&b(t,"cropstart",e.cropstart),o(e.cropmove)&&b(t,"cropmove",e.cropmove),o(e.cropend)&&b(t,"cropend",e.cropend),o(e.crop)&&b(t,"crop",e.crop),o(e.zoom)&&b(t,"zoom",e.zoom),b(i,P,this.onCropStart),e.zoomable&&e.zoomOnWheel&&b(i,"wheel mousewheel DOMMouseScroll",this.onWheel),e.toggleDragModeOnDblclick&&b(i,"dblclick",this.onDblclick),b(document,q,this.onCropMove),b(document,$,this.onCropEnd),e.responsive&&b(U,"resize",this.onResize)}},ut={resize:function(){var t=this.options,e=this.container,i=this.containerData,a=Number(t.minContainerWidth)||200,n=Number(t.minContainerHeight)||100;if(!(this.disabled||i.width<=a||i.height<=n)){var o=e.offsetWidth/i.width;if(1!==o||e.offsetHeight!==i.height){var h=void 0,s=void 0;t.restore&&(h=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(r(h,function(t,e){h[e]=t*o})),this.setCropBoxData(r(s,function(t,e){s[e]=t*o})))}}},dblclick:function(){this.disabled||"none"===this.options.dragMode||this.setDragMode(d(this.dragBox,"cropper-crop")?"move":"crop")},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout(function(){e.wheeling=!1},50),t.deltaY?a=t.deltaY>0?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=t.detail>0?1:-1),this.zoom(-a*i,t)))},cropStart:function(t){if(!this.disabled){var e=this.options,i=this.pointers,a=void 0;t.changedTouches?r(t.changedTouches,function(t){i[t.identifier]=W(t)}):i[t.pointerId||0]=W(t),a=Object.keys(i).length>1&&e.zoomable&&e.zoomOnTouch?"zoom":f(t.target,"action"),Q.test(a)&&!1!==y(this.element,"cropstart",{originalEvent:t,action:a})&&(t.preventDefault(),this.action=a,this.cropping=!1,"crop"===a&&(this.cropping=!0,p(this.dragBox,"cropper-modal")))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==y(this.element,"cropmove",{originalEvent:t,action:e})&&(t.changedTouches?r(t.changedTouches,function(t){h(i[t.identifier],W(t,!0))}):h(i[t.pointerId||0],W(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?r(t.changedTouches,function(t){delete i[t.identifier]}):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,u(this.dragBox,"cropper-modal",this.cropped&&this.options.modal)),y(this.element,"cropend",{originalEvent:t,action:e}))}}},gt={change:function(t){var e=this.options,i=this.canvasData,a=this.containerData,n=this.cropBoxData,o=this.pointers,h=this.action,s=e.aspectRatio,c=n.left,l=n.top,d=n.width,p=n.height,u=c+d,g=l+p,f=0,v=0,w=a.width,b=a.height,x=!0,y=void 0;!s&&t.shiftKey&&(s=d&&p?d/p:1),this.limited&&(f=n.minLeft,v=n.minTop,w=f+Math.min(a.width,i.width,i.left+i.width),b=v+Math.min(a.height,i.height,i.top+i.height));var C=o[Object.keys(o)[0]],D={x:C.endX-C.startX,y:C.endY-C.startY},B=function(t){switch(t){case"e":u+D.x>w&&(D.x=w-u);break;case"w":c+D.xb&&(D.y=b-g)}};switch(h){case"all":c+=D.x,l+=D.y;break;case"e":if(D.x>=0&&(u>=w||s&&(l<=v||g>=b))){x=!1;break}B("e"),d+=D.x,s&&(p=d/s,l-=D.x/s/2),d<0&&(h="w",d=0);break;case"n":if(D.y<=0&&(l<=v||s&&(c<=f||u>=w))){x=!1;break}B("n"),p-=D.y,l+=D.y,s&&(d=p*s,c+=D.y*s/2),p<0&&(h="s",p=0);break;case"w":if(D.x<=0&&(c<=f||s&&(l<=v||g>=b))){x=!1;break}B("w"),d-=D.x,c+=D.x,s&&(p=d/s,l+=D.x/s/2),d<0&&(h="e",d=0);break;case"s":if(D.y>=0&&(g>=b||s&&(c<=f||u>=w))){x=!1;break}B("s"),p+=D.y,s&&(d=p*s,c-=D.y*s/2),p<0&&(h="n",p=0);break;case"ne":if(s){if(D.y<=0&&(l<=v||u>=w)){x=!1;break}B("n"),p-=D.y,l+=D.y,d=p*s}else B("n"),B("e"),D.x>=0?uv&&(p-=D.y,l+=D.y):(p-=D.y,l+=D.y);d<0&&p<0?(h="sw",p=0,d=0):d<0?(h="nw",d=0):p<0&&(h="se",p=0);break;case"nw":if(s){if(D.y<=0&&(l<=v||c<=f)){x=!1;break}B("n"),p-=D.y,l+=D.y,d=p*s,c+=D.y*s}else B("n"),B("w"),D.x<=0?c>f?(d-=D.x,c+=D.x):D.y<=0&&l<=v&&(x=!1):(d-=D.x,c+=D.x),D.y<=0?l>v&&(p-=D.y,l+=D.y):(p-=D.y,l+=D.y);d<0&&p<0?(h="se",p=0,d=0):d<0?(h="ne",d=0):p<0&&(h="sw",p=0);break;case"sw":if(s){if(D.x<=0&&(c<=f||g>=b)){x=!1;break}B("w"),d-=D.x,c+=D.x,p=d/s}else B("s"),B("w"),D.x<=0?c>f?(d-=D.x,c+=D.x):D.y>=0&&g>=b&&(x=!1):(d-=D.x,c+=D.x),D.y>=0?g=0&&(u>=w||g>=b)){x=!1;break}B("e"),p=(d+=D.x)/s}else B("s"),B("e"),D.x>=0?u=0&&g>=b&&(x=!1):d+=D.x,D.y>=0?g0?h=D.y>0?"se":"ne":D.x<0&&(c-=d,h=D.y>0?"sw":"nw"),D.y<0&&(l-=p),this.cropped||(m(this.cropBox,j),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}x&&(n.width=d,n.height=p,n.left=c,n.top=l,this.action=h,this.renderCropBox()),r(o,function(t){t.startX=t.endX,t.startY=t.endY})}},ft={crop:function(){return this.ready&&!this.disabled&&(this.cropped||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&p(this.dragBox,"cropper-modal"),m(this.cropBox,j)),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=h({},this.initialImageData),this.canvasData=h({},this.initialCanvasData),this.cropBoxData=h({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(h(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),m(this.dragBox,"cropper-modal"),p(this.cropBox,j)),this},replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.image2.src=t,r(this.previews,function(e){e.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.load(t))),this},enable:function(){return this.ready&&(this.disabled=!1,m(this.cropper,"cropper-disabled")),this},disable:function(){return this.ready&&(this.disabled=!0,p(this.cropper,"cropper-disabled")),this},destroy:function(){var t=this.element,e=this.image;return this.loaded?(this.isImg&&this.replaced&&(t.src=this.originalUrl),this.unbuild(),m(t,j)):this.isImg?b(t,"load",this.onStart):e&&e.parentNode.removeChild(e),w(t,"cropper"),this},move:function(t,e){var a=this.canvasData,n=a.left,o=a.top;return this.moveTo(i(t)?t:n+Number(t),i(e)?e:o+Number(e))},moveTo:function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,a=this.canvasData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(e(t)&&(a.left=t,n=!0),e(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,e){var i=this.canvasData;return t=Number(t),t=t<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,e)},zoomTo:function(t,e){var i=this.options,a=this.canvasData,n=a.width,o=a.height,r=a.naturalWidth,h=a.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&i.zoomable){var s=r*t,c=h*t;if(!1===y(this.element,"zoom",{originalEvent:e,oldRatio:n/r,ratio:s/r}))return this;if(e){var l=this.pointers,d=M(this.cropper),p=l&&Object.keys(l).length?N(l):{pageX:e.pageX,pageY:e.pageY};a.left-=(s-n)*((p.pageX-d.left-a.left)/n),a.top-=(c-o)*((p.pageY-d.top-a.top)/o)}else a.left-=(s-n)/2,a.top-=(c-o)/2;a.width=s,a.height=c,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),e(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,e(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(e(i)?i:1,t)},scale:function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,a=this.imageData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(e(t)&&(a.scaleX=t,n=!0),e(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.options,i=this.imageData,a=this.canvasData,n=this.cropBoxData,o=void 0;if(this.ready&&this.cropped){o={x:n.left-a.left,y:n.top-a.top,width:n.width,height:n.height};var h=i.width/i.naturalWidth;r(o,function(e,i){e/=h,o[i]=t?Math.round(e):e})}else o={x:0,y:0,width:0,height:0};return e.rotatable&&(o.rotate=i.rotate||0),e.scalable&&(o.scaleX=i.scaleX||1,o.scaleY=i.scaleY||1),o},setData:function(t){var i=this.options,a=this.imageData,r=this.canvasData,h={};if(o(t)&&(t=t.call(this.element)),this.ready&&!this.disabled&&n(t)){var s=!1;i.rotatable&&e(t.rotate)&&t.rotate!==a.rotate&&(a.rotate=t.rotate,s=!0),i.scalable&&(e(t.scaleX)&&t.scaleX!==a.scaleX&&(a.scaleX=t.scaleX,s=!0),e(t.scaleY)&&t.scaleY!==a.scaleY&&(a.scaleY=t.scaleY,s=!0)),s&&this.renderCanvas(!0,!0);var c=a.width/a.naturalWidth;e(t.x)&&(h.left=t.x*c+r.left),e(t.y)&&(h.top=t.y*c+r.top),e(t.width)&&(h.width=t.width*c),e(t.height)&&(h.height=t.height*c),this.setCropBoxData(h)}return this},getContainerData:function(){return this.ready?h({},this.containerData):{}},getImageData:function(){return this.loaded?h({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&r(["left","top","width","height","naturalWidth","naturalHeight"],function(i){e[i]=t[i]}),e},setCanvasData:function(t){var i=this.canvasData,a=i.aspectRatio;return o(t)&&(t=t.call(this.element)),this.ready&&!this.disabled&&n(t)&&(e(t.left)&&(i.left=t.left),e(t.top)&&(i.top=t.top),e(t.width)?(i.width=t.width,i.height=t.width/a):e(t.height)&&(i.height=t.height,i.width=t.height*a),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,e=void 0;return this.ready&&this.cropped&&(e={left:t.left,top:t.top,width:t.width,height:t.height}),e||{}},setCropBoxData:function(t){var i=this.cropBoxData,a=this.options.aspectRatio,r=void 0,h=void 0;return o(t)&&(t=t.call(this.element)),this.ready&&this.cropped&&!this.disabled&&n(t)&&(e(t.left)&&(i.left=t.left),e(t.top)&&(i.top=t.top),e(t.width)&&t.width!==i.width&&(r=!0,i.width=t.width),e(t.height)&&t.height!==i.height&&(h=!0,i.height=t.height),a&&(r?i.height=i.width/a:h&&(i.width=i.height*a)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!U.HTMLCanvasElement)return null;var e=this.canvasData,i=Y(this.image,this.imageData,e,t);if(!this.cropped)return i;var a=this.getData(),n=a.x,o=a.y,r=a.width,h=a.height,s=r/h,l=H({aspectRatio:s,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),d=H({aspectRatio:s,width:t.minWidth||0,height:t.minHeight||0}),p=H({aspectRatio:s,width:t.width||r,height:t.height||h}),m=p.width,u=p.height;m=Math.min(l.width,Math.max(d.width,m)),u=Math.min(l.height,Math.max(d.height,u));var g=document.createElement("canvas"),f=g.getContext("2d");g.width=c(m),g.height=c(u),f.fillStyle=t.fillColor||"transparent",f.fillRect(0,0,m,u);var v=t.imageSmoothingEnabled,w=void 0===v||v,b=t.imageSmoothingQuality;f.imageSmoothingEnabled=w,b&&(f.imageSmoothingQuality=b);var x=i.width,y=i.height,M=n,C=o,D=void 0,B=void 0,k=void 0,E=void 0,T=void 0,W=void 0;M<=-r||M>x?(M=0,D=0,k=0,T=0):M<=0?(k=-M,M=0,T=D=Math.min(x,r+M)):M<=x&&(k=0,T=D=Math.min(r,x-M)),D<=0||C<=-h||C>y?(C=0,B=0,E=0,W=0):C<=0?(E=-C,C=0,W=B=Math.min(y,h+C)):C<=y&&(E=0,W=B=Math.min(h,y-C));var N=[M,C,D,B];if(T>0&&W>0){var L=m/r;N.push(k*L,E*L,T*L,W*L)}return f.drawImage.apply(f,[i].concat(A(N.map(function(t){return Math.floor(c(t))})))),g},setAspectRatio:function(t){var e=this.options;return this.disabled||i(t)||(e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var e=this.options,i=this.dragBox,a=this.face;if(this.loaded&&!this.disabled){var n="crop"===t,o=e.movable&&"move"===t;v(i,"action",t=n||o?t:"none"),u(i,"cropper-crop",n),u(i,"cropper-move",o),e.cropBoxMovable||(v(a,"action",t),u(a,"cropper-crop",n),u(a,"cropper-move",o))}return this}},vt=function(){function t(t,e){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(I(this,t),!e||!K.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=h({},V,n(i)&&i),this.complete=!1,this.cropped=!1,this.disabled=!1,this.isImg=!1,this.limited=!1,this.loaded=!1,this.ready=!1,this.replaced=!1,this.wheeling=!1,this.originalUrl="",this.canvasData=null,this.cropBoxData=null,this.previews=null,this.pointers={},this.init()}return vt(t,[{key:"init",value:function(){var t=this.element,e=t.tagName.toLowerCase(),i=void 0;if(!f(t,"cropper")){if(v(t,"cropper",this),"img"===e){if(this.isImg=!0,i=t.getAttribute("src")||"",this.originalUrl=i,!i)return;i=t.src}else"canvas"===e&&U.HTMLCanvasElement&&(i=t.toDataURL());this.load(i)}}},{key:"load",value:function(t){var e=this;if(t){this.url=t,this.imageData={};var i=this.element,a=this.options;if(a.checkOrientation&&U.ArrayBuffer)if(Z.test(t))F.test(t)?this.read(O(t)):this.clone();else{var n=new XMLHttpRequest;n.onerror=function(){e.clone()},n.onload=function(){e.read(n.response)},a.checkCrossOrigin&&D(t)&&i.crossOrigin&&(t=B(t)),n.open("get",t),n.responseType="arraybuffer",n.withCredentials="use-credentials"===i.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,a=z(t),n=0,o=1,r=1;if(a>1){this.url=S(t,"image/jpeg");var h=R(a);n=h.rotate,o=h.scaleX,r=h.scaleY}e.rotatable&&(i.rotate=n),e.scalable&&(i.scaleX=o,i.scaleY=r),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=void 0,a=void 0;this.options.checkCrossOrigin&&D(e)&&((i=t.crossOrigin)?a=e:(i="anonymous",a=B(e))),this.crossOrigin=i,this.crossOriginUrl=a;var n=document.createElement("img");i&&(n.crossOrigin=i),n.src=a||e;var o=s(this.start,this),r=s(this.stop,this);this.image=n,this.onStart=o,this.onStop=r,this.isImg?t.complete?this.start():x(t,"load",o):(x(n,"load",o),x(n,"error",r),p(n,"cropper-hide"),t.parentNode.insertBefore(n,t.nextSibling))}},{key:"start",value:function(t){var e=this,i=this.isImg?this.element:this.image;t&&(b(i,"load",this.onStart),b(i,"error",this.onStop)),E(i,function(t,i){h(e.imageData,{naturalWidth:t,naturalHeight:i,aspectRatio:t/i}),e.loaded=!0,e.build()})}},{key:"stop",value:function(){var t=this.image;b(t,"load",this.onStart),b(t,"error",this.onStop),t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){var t=this;if(this.loaded){this.ready&&this.unbuild();var e=this.element,i=this.options,a=this.image,n=e.parentNode,r=document.createElement("div");r.innerHTML='
';var h=r.querySelector(".cropper-container"),s=h.querySelector(".cropper-canvas"),c=h.querySelector(".cropper-drag-box"),l=h.querySelector(".cropper-crop-box"),d=l.querySelector(".cropper-face");this.container=n,this.cropper=h,this.canvas=s,this.dragBox=c,this.cropBox=l,this.viewBox=h.querySelector(".cropper-view-box"),this.face=d,s.appendChild(a),p(e,j),n.insertBefore(h,e.nextSibling),this.isImg||m(a,"cropper-hide"),this.initPreview(),this.bind(),i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,this.cropped=i.autoCrop,i.autoCrop?i.modal&&p(c,"cropper-modal"):p(l,j),i.guides||p(l.getElementsByClassName("cropper-dashed"),j),i.center||p(l.getElementsByClassName("cropper-center"),j),i.background&&p(h,"cropper-bg"),i.highlight||p(d,"cropper-invisible"),i.cropBoxMovable&&(p(d,"cropper-move"),v(d,"action","all")),i.cropBoxResizable||(p(l.getElementsByClassName("cropper-line"),j),p(l.getElementsByClassName("cropper-point"),j)),this.setDragMode(i.dragMode),this.render(),this.ready=!0,this.setData(i.data),this.completing=setTimeout(function(){o(i.ready)&&x(e,"ready",i.ready,{once:!0}),y(e,"ready"),y(e,"crop",t.getData()),t.complete=!0},0)}}},{key:"unbuild",value:function(){this.ready&&(this.complete||clearTimeout(this.completing),this.ready=!1,this.complete=!1,this.initialImageData=null,this.initialCanvasData=null,this.initialCropBoxData=null,this.containerData=null,this.canvasData=null,this.cropBoxData=null,this.unbind(),this.resetPreview(),this.previews=null,this.viewBox=null,this.cropBox=null,this.dragBox=null,this.canvas=null,this.container=null,this.cropper.parentNode.removeChild(this.cropper),this.cropper=null)}}],[{key:"noConflict",value:function(){return U.Cropper=wt,t}},{key:"setDefaults",value:function(t){h(V,n(t)&&t)}}]),t}();return h(bt.prototype,dt,pt,mt,ut,gt,ft),bt}); \ No newline at end of file diff --git a/docs/css/cropper.css b/docs/css/cropper.css index 28bd17f78..b9580614e 100644 --- a/docs/css/cropper.css +++ b/docs/css/cropper.css @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:08.065Z + * Date: 2017-10-18T13:26:08.981Z */ .cropper-container { diff --git a/docs/index.html b/docs/index.html index ba463106f..13276e3fa 100644 --- a/docs/index.html +++ b/docs/index.html @@ -47,7 +47,7 @@
-

Cropper.js v1.1.1

+

Cropper.js v1.1.2

JavaScript image cropper.

diff --git a/docs/js/cropper.js b/docs/js/cropper.js index 48da33457..7ae4385bb 100644 --- a/docs/js/cropper.js +++ b/docs/js/cropper.js @@ -1,11 +1,11 @@ /*! - * Cropper.js v1.1.1 + * Cropper.js v1.1.2 * https://github.com/fengyuanchen/cropperjs * * Copyright (c) 2015-2017 Chen Fengyuan * Released under the MIT license * - * Date: 2017-10-11T13:22:13.165Z + * Date: 2017-10-18T13:27:02.189Z */ (function (global, factory) { @@ -172,6 +172,8 @@ var TEMPLATE = '
' + '
1 && arguments[1] !== undefined ? arguments[1] : 100000000000; + + return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value; +} + var REGEXP_SUFFIX = /^(width|height|left|top|marginLeft|marginTop)$/; /** @@ -931,9 +948,10 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { }); var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth)); var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); + var params = [-imageNaturalWidth / 2, -imageNaturalHeight / 2, imageNaturalWidth, imageNaturalHeight]; - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = fillColor; context.fillRect(0, 0, width, height); context.save(); @@ -942,7 +960,9 @@ function getSourceCanvas(image, _ref6, _ref7, _ref8) { context.scale(scaleX, scaleY); context.imageSmoothingEnabled = imageSmoothingEnabled; context.imageSmoothingQuality = imageSmoothingQuality; - context.drawImage(image, Math.floor(-imageNaturalWidth / 2), Math.floor(-imageNaturalHeight / 2), Math.floor(imageNaturalWidth), Math.floor(imageNaturalHeight)); + context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); context.restore(); return canvas; } @@ -2392,6 +2412,8 @@ var change = { } }; +function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + var methods = { // Show the crop box manually crop: function crop() { @@ -3076,8 +3098,8 @@ var methods = { var canvas = document.createElement('canvas'); var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; + canvas.width = normalizeDecimalNumber(width); + canvas.height = normalizeDecimalNumber(height); context.fillStyle = options.fillColor || 'transparent'; context.fillRect(0, 0, width, height); @@ -3143,16 +3165,18 @@ var methods = { // All the numerical parameters should be integer for `drawImage` // https://github.com/fengyuanchen/cropper/issues/476 - var params = [Math.floor(srcX), Math.floor(srcY), Math.floor(srcWidth), Math.floor(srcHeight)]; + var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid "IndexSizeError" if (dstWidth > 0 && dstHeight > 0) { var scale = width / initialWidth; - params.push(Math.floor(dstX * scale), Math.floor(dstY * scale), Math.floor(dstWidth * scale), Math.floor(dstHeight * scale)); + params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale); } - context.drawImage.apply(context, [source].concat(params)); + context.drawImage.apply(context, [source].concat(_toConsumableArray$1(params.map(function (param) { + return Math.floor(normalizeDecimalNumber(param)); + })))); return canvas; }, diff --git a/docs/js/main.js b/docs/js/main.js index a9eb75f24..91de60bf5 100644 --- a/docs/js/main.js +++ b/docs/js/main.js @@ -16,7 +16,7 @@ window.onload = function () { var dataScaleX = document.getElementById('dataScaleX'); var dataScaleY = document.getElementById('dataScaleY'); var options = { - aspectRatio: 16 / 9, + aspectRatio: 321 / 180, preview: '.img-preview', ready: function (e) { console.log(e.type); diff --git a/package-lock.json b/package-lock.json index 1fdd29ec9..a7ecfe4b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cropperjs", - "version": "1.1.1", + "version": "1.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -731,9 +731,9 @@ } }, "babel-preset-env": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.0.tgz", - "integrity": "sha512-OVgtQRuOZKckrILgMA5rvctvFZPv72Gua9Rt006AiPoB0DJKGN07UmaQA+qRrYgK71MVct8fFhT0EyNWYorVew==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "6.22.0", @@ -1876,14 +1876,14 @@ "dev": true }, "eslint": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.8.0.tgz", - "integrity": "sha1-Ip7w41Tg5h2DfHqA/fuoJeGZgV4=", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.9.0.tgz", + "integrity": "sha1-doedJ0BoJhsZH+Dy9Wx0wvQgjos=", "dev": true, "requires": { "ajv": "5.2.3", "babel-code-frame": "6.26.0", - "chalk": "2.1.0", + "chalk": "2.2.0", "concat-stream": "1.6.0", "cross-spawn": "5.1.0", "debug": "3.1.0", @@ -1936,14 +1936,14 @@ } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "supports-color": "4.5.0" } }, "debug": { @@ -2001,9 +2001,9 @@ } }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { "has-flag": "2.0.0" @@ -2012,9 +2012,9 @@ } }, "eslint-config-airbnb-base": { - "version": "12.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.0.2.tgz", - "integrity": "sha512-rQqOvAzrMC3BBCH6Dd/1RenDi+RW4vdgnh8xcPf6sgd324ad6aX7hSZ52L1SfDGe2VsZR2yB5uPvDfXYvxHZmA==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz", + "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==", "dev": true, "requires": { "eslint-restricted-globals": "0.1.1" @@ -2763,7 +2763,7 @@ "dev": true, "requires": { "ansi-escapes": "3.0.0", - "chalk": "2.1.0", + "chalk": "2.2.0", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "2.0.5", @@ -2794,14 +2794,14 @@ } }, "chalk": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", - "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.0.tgz", + "integrity": "sha512-0BMM/2hG3ZaoPfR6F+h/oWpZtsh3b/s62TjSM6MGCJWEbJDN1acqCXvyhhZsDSVFklpebUoQ5O1kKC7lOzrn9g==", "dev": true, "requires": { "ansi-styles": "3.2.0", "escape-string-regexp": "1.0.5", - "supports-color": "4.4.0" + "supports-color": "4.5.0" } }, "has-flag": { @@ -2820,9 +2820,9 @@ } }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { "has-flag": "2.0.0" @@ -8261,13 +8261,21 @@ "dev": true }, "uglify-js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.3.tgz", - "integrity": "sha512-5ZUOgufCHjN2mBBLfz63UtWTP6va2sSzBpNCM+/iqI6RnPzEhANmB0EKiKBYdQbc3v7KeomXJ2DJx0Xq9gvUvA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.4.tgz", + "integrity": "sha512-DcbkPg11Lw2lAWpwCmQDX+qoR4JiII6ypsQmF6tscZtlxGPFAmSRUGuMoVT3/0EHqypVik/TpkH4ITiMJeQqQA==", "dev": true, "requires": { "commander": "2.11.0", - "source-map": "0.5.7" + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "uniq": { diff --git a/package.json b/package.json index 4234f4e3c..cf12a2165 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cropperjs", "description": "JavaScript image cropper.", - "version": "1.1.1", + "version": "1.1.2", "main": "dist/cropper.common.js", "module": "dist/cropper.esm.js", "browser": "dist/cropper.js", @@ -51,11 +51,11 @@ }, "devDependencies": { "babel-core": "^6.26.0", - "babel-preset-env": "^1.6.0", + "babel-preset-env": "^1.6.1", "cpy-cli": "^1.0.1", "cssnano": "^3.10.0", - "eslint": "^4.8.0", - "eslint-config-airbnb-base": "^12.0.2", + "eslint": "^4.9.0", + "eslint-config-airbnb-base": "^12.1.0", "eslint-plugin-import": "^2.7.0", "node-qunit-phantomjs": "^1.5.0", "npm-run-all": "^4.1.1", @@ -67,6 +67,6 @@ "rollup-plugin-babel": "^3.0.2", "rollup-watch": "^4.3.1", "stylefmt": "^6.0.0", - "uglify-js": "^3.1.3" + "uglify-js": "^3.1.4" } }