!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t=t||self).Cropper=i()}(this,function(){"use strict";function t(i){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(i)}function i(t,i){for(var e=0;et.width?3===e?r=t.height*h:s=t.width/h:3===e?s=t.width/h:r=t.height*h;var c={aspectRatio:h,naturalWidth:n,naturalHeight:o,width:r,height:s};c.left=(t.width-r)/2,c.top=(t.height-s)/2,c.oldLeft=c.left,c.oldTop=c.top,this.canvasData=c,this.limited=1===e||2===e,this.limitCanvas(!0,!0),this.initialImageData=Bt({},i),this.initialCanvasData=Bt({},c)},limitCanvas:function(t,i){var e=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,h=e.viewMode,r=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(e.minCanvasWidth)||0,d=Number(e.minCanvasHeight)||0;1=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,i){var e=this.canvasData,a=this.imageData;if(i){var n=function(t){var i=t.width,e=t.height,a=t.degree;if(90===(a=Math.abs(a)%180))return{width:e,height:i};var n=a%90*Math.PI/180,o=Math.sin(n),h=Math.cos(n),r=i*h+e*o,s=i*o+e*h;return 90e.maxWidth||e.widthe.maxHeight||e.heighti.width?n.height=n.width/e:n.width=n.height*e),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=i.left+(i.width-n.width)/2,n.top=i.top+(i.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=Bt({},n)},limitCropBox:function(t,i){var e=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,h=this.limited,r=e.aspectRatio;if(t){var s=Number(e.minCropBoxWidth)||0,c=Number(e.minCropBoxHeight)||0,d=h?Math.min(a.width,n.width,n.width+n.left,a.width-n.left):a.width,l=h?Math.min(a.height,n.height,n.height+n.top,a.height-n.top):a.height;s=Math.min(s,a.width),c=Math.min(c,a.height),r&&(s&&c?se.maxWidth||e.widthe.maxHeight||e.height=i.width&&e.height>=i.height?Y:O),l(this.cropBox,Bt({width:e.width,height:e.height},D({translateX:e.left,translateY:e.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),x(this.element,at,this.getData())}},Xt={initPreview:function(){var t=this.element,i=this.crossOrigin,e=this.options.preview,a=i?this.crossOriginUrl:this.url,n=t.alt||"The image to preview",o=document.createElement("img");if(i&&(o.crossOrigin=i),o.src=a,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,e){var h=e;"string"==typeof e?h=t.ownerDocument.querySelectorAll(e):e.querySelector&&(h=[e]),c(this.previews=h,function(t){var e=document.createElement("img");v(t,_,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),i&&(e.crossOrigin=i),e.src=a,e.alt=n,e.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;"',t.innerHTML="",t.appendChild(e)})}},resetPreview:function(){c(this.previews,function(t){var i=f(t,_);l(t,{width:i.width,height:i.height}),t.innerHTML=i.html,function(t,i){if(o(t[i]))try{delete t[i]}catch(e){t[i]=void 0}else if(t.dataset)try{delete t.dataset[i]}catch(e){t.dataset[i]=void 0}else t.removeAttribute("data-".concat(g(i)))}(t,_)})},preview:function(){var t=this.imageData,i=this.canvasData,e=this.cropBoxData,a=e.width,n=e.height,o=t.width,h=t.height,r=e.left-i.left-t.left,s=e.top-i.top-t.top;this.cropped&&!this.disabled&&(l(this.viewBoxImage,Bt({width:o,height:h},D(Bt({translateX:-r,translateY:-s},t)))),c(this.previews,function(i){var e=f(i,_),c=e.width,d=e.height,p=c,m=d,u=1;a&&(m=n*(u=c/a)),n&&dx&&(B.x=x-f);break;case A:l+B.xM&&(B.y=M-v)}}var e,a=this.options,n=this.canvasData,o=this.containerData,h=this.cropBoxData,r=this.pointers,s=this.action,d=a.aspectRatio,l=h.left,p=h.top,u=h.width,g=h.height,f=l+u,v=p+g,w=0,b=0,x=o.width,M=o.height,C=!0;!d&&t.shiftKey&&(d=u&&g?u/g:1),this.limited&&(w=h.minLeft,b=h.minTop,x=w+Math.min(o.width,n.width,n.left+n.width),M=b+Math.min(o.height,n.height,n.top+n.height));var D=r[Object.keys(r)[0]],B={x:D.endX-D.startX,y:D.endY-D.startY};switch(s){case O:l+=B.x,p+=B.y;break;case R:if(0<=B.x&&(x<=f||d&&(p<=b||M<=v))){C=!1;break}i(R),(u+=B.x)<0&&(s=A,l-=u=-u),d&&(g=u/d,p+=(h.height-g)/2);break;case I:if(B.y<=0&&(p<=b||d&&(l<=w||x<=f))){C=!1;break}i(I),g-=B.y,p+=B.y,g<0&&(s=S,p-=g=-g),d&&(u=g*d,l+=(h.width-u)/2);break;case A:if(B.x<=0&&(l<=w||d&&(p<=b||M<=v))){C=!1;break}i(A),u-=B.x,l+=B.x,u<0&&(s=R,l-=u=-u),d&&(g=u/d,p+=(h.height-g)/2);break;case S:if(0<=B.y&&(M<=v||d&&(l<=w||x<=f))){C=!1;break}i(S),(g+=B.y)<0&&(s=I,p-=g=-g),d&&(u=g*d,l+=(h.width-u)/2);break;case j:if(d){if(B.y<=0&&(p<=b||x<=f)){C=!1;break}i(I),g-=B.y,p+=B.y,u=g*d}else i(I),i(R),0<=B.x?f or element.");this.element=i,this.options=Bt({},xt,h(e)&&e),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return function(t,e,a){e&&i(t.prototype,e),a&&i(t,a)}(t,[{key:"init",value:function(){var t,i=this.element,e=i.tagName.toLowerCase();if(!i[L]){if(i[L]=this,"img"===e){if(this.isImg=!0,t=i.getAttribute("src")||"",!(this.originalUrl=t))return;t=i.src}else"canvas"===e&&window.HTMLCanvasElement&&(t=i.toDataURL());this.load(t)}}},{key:"load",value:function(t){var i=this;if(t){this.url=t,this.imageData={};var e=this.element,a=this.options;if(a.rotatable||a.scalable||(a.checkOrientation=!1),a.checkOrientation&&window.ArrayBuffer)if(vt.test(t))wt.test(t)?this.read(function(t){var i=t.replace(zt,""),e=atob(i),a=new ArrayBuffer(e.length),n=new Uint8Array(a);return c(n,function(t,i){n[i]=e.charCodeAt(i)}),a}(t)):this.clone();else{var n=new XMLHttpRequest,o=this.clone.bind(this);this.reloading=!0,(this.xhr=n).onabort=o,n.onerror=o,n.ontimeout=o,n.onprogress=function(){n.getResponseHeader("content-type")!==gt&&n.abort()},n.onload=function(){i.read(n.response)},n.onloadend=function(){i.reloading=!1,i.xhr=null},a.checkCrossOrigin&&M(t)&&e.crossOrigin&&(t=C(t)),n.open("GET",t),n.responseType="arraybuffer",n.withCredentials="use-credentials"===e.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(t){var i=this.options,e=this.imageData,a=T(t),n=0,o=1,h=1;if(1
';var o=n.querySelector(".".concat(L,"-container")),h=o.querySelector(".".concat(L,"-canvas")),s=o.querySelector(".".concat(L,"-drag-box")),c=o.querySelector(".".concat(L,"-crop-box")),d=c.querySelector(".".concat(L,"-face"));this.container=a,this.cropper=o,this.canvas=h,this.dragBox=s,this.cropBox=c,this.viewBox=o.querySelector(".".concat(L,"-view-box")),this.face=d,h.appendChild(e),p(t,K),a.insertBefore(o,t.nextSibling),this.isImg||m(e,Z),this.initPreview(),this.bind(),i.initialAspectRatio=Math.max(0,i.initialAspectRatio)||NaN,i.aspectRatio=Math.max(0,i.aspectRatio)||NaN,i.viewMode=Math.max(0,Math.min(3,Math.round(i.viewMode)))||0,p(c,K),i.guides||p(c.getElementsByClassName("".concat(L,"-dashed")),K),i.center||p(c.getElementsByClassName("".concat(L,"-center")),K),i.background&&p(o,"".concat(L,"-bg")),i.highlight||p(d,G),i.cropBoxMovable&&(p(d,F),v(d,J,O)),i.cropBoxResizable||(p(c.getElementsByClassName("".concat(L,"-line")),K),p(c.getElementsByClassName("".concat(L,"-point")),K)),this.render(),this.ready=!0,this.setDragMode(i.dragMode),i.autoCrop&&this.crop(),this.setData(i.data),r(i.ready)&&b(t,lt,i.ready,{once:!0}),x(t,lt)}}},{key:"unbuild",value:function(){this.ready&&(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),m(this.element,K))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=jt,t}},{key:"setDefaults",value:function(t){Bt(xt,h(t)&&t)}}]),t}();return Bt(Ut.prototype,Yt,Xt,Rt,At,St,It),Ut});