/*! * Cropper v0.7.9 * https://github.com/fengyuanchen/cropper * * Copyright 2014-2015 Fengyuan Chen * Released under the MIT license */ (t=>{"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?t(require("jquery")):t(jQuery)})(function(g){function s(t,i){var e=[];R(i)&&e.push(i);return e.slice.apply(t,e)}function i(t,i){var e=s(arguments,2);return function(){return t.apply(i,e.concat(s(arguments)))}}function r(t,i){this.element=t;this.$element=g(t);this.defaults=g.extend({},r.DEFAULTS,g.isPlainObject(i)?i:{});this.$original=d;this.ready=D;this.built=D;this.cropped=D;this.rotated=D;this.disabled=D;this.replaced=D;this.init()}var e=g(window),h=g(document),a=window.location,$=!0,D=!1,d=null,n="undefined",o="directive",t=".cropper",E=/^(e|n|w|s|ne|nw|sw|se|all|crop|move|zoom)$/,_=/^(x|y|width|height)$/,P=/^(naturalWidth|naturalHeight|width|height|aspectRatio|ratio|rotate)$/,l="cropper-modal",C="cropper-hidden",f="cropper-invisible",p="cropper-crop",c="cropper-disabled",m="mousedown touchstart",u="mousemove touchmove",w="mouseup mouseleave touchend touchleave touchcancel",v="wheel mousewheel DOMMouseScroll",x="resize"+t,b="dblclick",y="build"+t,W="built"+t,H="dragstart"+t,k="dragmove"+t,L="dragend"+t,R=function(t){return"number"==typeof t},Y=Math.sqrt,z=Math.min,X=Math.max,T=Math.abs,M=Math.sin,O=Math.cos,I=parseFloat;r.prototype={constructor:r,support:{canvas:g.isFunction(g("")[0].getContext)},init:function(){var e=this.defaults;g.each(e,function(t,i){switch(t){case"aspectRatio":e[t]=T(I(i))||NaN;break;case"autoCropArea":e[t]=T(I(i))||.8;break;case"minWidth":case"minHeight":e[t]=T(I(i))||0;break;case"maxWidth":case"maxHeight":e[t]=T(I(i))||1/0}});this.image={rotate:0};this.load()},load:function(){var t,i,e,h=this,a=this.$element,s=this.element,r=this.image,d="";a.is("img")?i=a.prop("src"):a.is("canvas")&&this.support.canvas&&(i=s.toDataURL());if(i){this.replaced&&(r.rotate=0);if(this.defaults.checkImageOrigin&&this.isCrossOriginURL(i)){d=" crossOrigin";i=(e=i,a="timestamp="+(new Date).getTime(),e+(-1===e.indexOf("?")?"?":"&")+a)}this.$clone=t=g("');t.one("load",function(){r.naturalWidth=this.naturalWidth||t.width();r.naturalHeight=this.naturalHeight||t.height();r.aspectRatio=r.naturalWidth/r.naturalHeight;h.url=i;h.ready=$;h.build()});t.addClass(f).prependTo("body")}},isCrossOriginURL:function(t){var i=t.match(/^(https?:)\/\/([^\:\/\?#]+):?(\d*)/i);return!i||i[1]===a.protocol&&i[2]===a.hostname&&i[3]===a.port?D:$},build:function(){var t,i=this.$element,e=this.defaults;if(this.ready){this.built&&this.unbuild();i.one(y,e.build);t=g.Event(y);i.trigger(t);if(!t.isDefaultPrevented()){this.$cropper=t=g(r.TEMPLATE);i.addClass(C);this.$clone.removeClass(f).prependTo(t);if(!this.rotated){this.$original=this.$clone.clone();this.$original.addClass(C).prependTo(this.$cropper);this.originalImage=g.extend({},this.image)}this.$container=i.parent();this.$container.append(t);this.$canvas=t.find(".cropper-canvas");this.$dragger=t.find(".cropper-dragger");this.$viewer=t.find(".cropper-viewer");e.autoCrop?this.cropped=$:this.$dragger.addClass(C);e.modal&&this.$canvas.addClass(l);e.dashed||this.$dragger.find(".cropper-dashed").addClass(C);e.movable||this.$dragger.find(".cropper-face").data(o,"move");e.resizable||this.$dragger.find(".cropper-line, .cropper-point").addClass(C);this.addListeners();this.initPreview();this.built=$;e.dragCrop&&this.setDragMode("crop");this.update();this.replaced=D;i.one(W,e.built);i.trigger(W)}}},unbuild:function(){if(this.built){this.built=D;this.removeListeners();this.$preview.empty();this.$preview=d;this.$dragger=d;this.$canvas=d;this.$container=d;this.$cropper.remove();this.$cropper=d}},update:function(t){this.initContainer();this.initCropper();this.initImage();this.initDragger();if(t){this.setData(t,$);this.setDragMode("crop")}else this.setData(this.defaults.data)},resize:function(){clearTimeout(this.resizing);this.resizing=setTimeout(g.proxy(this.update,this,this.getData()),200)},preview:function(){var t=this.image,s=this.dragger,r=t.width,d=t.height,n=s.left-t.left,o=s.top-t.top;this.$viewer.find("img").css({width:r,height:d,marginLeft:-n,marginTop:-o});this.$preview.each(function(){var t=g(this),i=t.data(),e=i.width/s.width,h=i.width,a=s.height*e;if(i.height');this.$preview.each(function(){var t=g(this);t.data({width:t.width(),height:t.height()}).html('')})},initContainer:function(){var t=this.$element,i=this.$container,e=this.$cropper,h=this.defaults;e.addClass(C);t.removeClass(C);this.container={width:X(i.width(),h.minContainerWidth),height:X(i.height(),h.minContainerHeight)};t.addClass(C);e.removeClass(C)},initCropper:function(){var t,i=this.container,e=this.image;if(0<=e.naturalWidth*i.height/e.naturalHeight-i.width){t={width:i.width,height:i.width/e.aspectRatio,left:0};t.top=(i.height-t.height)/2}else{t={width:i.height*e.aspectRatio,height:i.height,top:0};t.left=(i.width-t.width)/2}this.$cropper.css({width:t.width,height:t.height,left:t.left,top:t.top});this.cropper=t},initImage:function(){var t=this.image,i=this.cropper,e={_width:i.width,_height:i.height,width:i.width,height:i.height,left:0,top:0,ratio:i.width/t.naturalWidth};this.defaultImage=g.extend({},t,e);if(t._width!==i.width||t._height!==i.height)g.extend(t,e);else{t=g.extend({},e,t);this.replaced&&(t.ratio=e.ratio)}this.image=t;this.renderImage()},renderImage:function(t){var i=this.image;if("zoom"===t){i.left-=(i.width-i.oldWidth)/2;i.top-=(i.height-i.oldHeight)/2}i.left=z(X(i.left,i._width-i.width),0);i.top=z(X(i.top,i._height-i.height),0);this.$clone.css({width:i.width,height:i.height,marginLeft:i.left,marginTop:i.top});if(t){this.defaults.done(this.getData());this.preview()}},initDragger:function(){var t=this.defaults,i=this.cropper,e=t.aspectRatio||this.image.aspectRatio,h=this.image.ratio,a=0<=i.height*e-i.width?{height:i.width/e,width:i.width,left:0,top:(i.height-i.width/e)/2,maxWidth:i.width,maxHeight:i.width/e}:{height:i.height,width:i.height*e,left:(i.width-i.height*e)/2,top:0,maxWidth:i.height*e,maxHeight:i.height};a.minWidth=0;a.minHeight=0;if(t.aspectRatio){if(isFinite(t.maxWidth)){a.maxWidth=z(a.maxWidth,t.maxWidth*h);a.maxHeight=a.maxWidth/e}else if(isFinite(t.maxHeight)){a.maxHeight=z(a.maxHeight,t.maxHeight*h);a.maxWidth=a.maxHeight*e}if(0t.maxWidth){t.width=t.maxWidth;t.left=t.oldLeft}else if(t.width').one("load",function(){s.width=this.width;s.height=this.height;e.clearRect(0,0,s.width,s.height);e.drawImage(this,0,0);h.load()})}}},setData:function(t,i){var e=this.cropper,h=this.dragger,a=this.image,s=this.defaults.aspectRatio;if(this.built&&!this.disabled&&typeof t!=n){t!==d&&!g.isEmptyObject(t)||(h=g.extend({},this.autoCropDragger));if(g.isPlainObject(t)&&!g.isEmptyObject(t)){i||(this.defaults.data=t);t=this.transformData(t);R(t.x)&&t.x<=e.width-a.left&&(h.left=t.x+a.left);R(t.y)&&t.y<=e.height-a.top&&(h.top=t.y+a.top);if(s){if(R(t.width)&&t.width<=h.maxWidth&&t.width>=h.minWidth){h.width=t.width;h.height=h.width/s}else if(R(t.height)&&t.height<=h.maxHeight&&t.height>=h.minHeight){h.height=t.height;h.width=h.height*s}}else{R(t.width)&&t.width<=h.maxWidth&&t.width>=h.minWidth&&(h.width=t.width);R(t.height)&&t.height<=h.maxHeight&&t.height>=h.minHeight&&(h.height=t.height)}}this.dragger=h;this.renderDragger()}},getData:function(t){var i=this.dragger,e=this.image,h={};if(this.built){h={x:i.left-e.left,y:i.top-e.top,width:i.width,height:i.height};h=this.transformData(h,$,t)}return h},transformData:function(t,e,h){var a=this.image.ratio,s={};g.each(t,function(t,i){i=I(i);_.test(t)&&!isNaN(i)&&(s[t]=e?h?Math.round(i/a):i/a:i*a)});return s},setAspectRatio:function(t){var i="auto"===t;if(!this.disabled){t=I(t);if(i||!isNaN(t)&&0")[0],s=this.getData(),r="";if(!g.isPlainObject(t)){e=i;i=t;t={}}t=g.extend({width:s.width,height:s.height},t);if(this.cropped&&this.support.canvas){a.width=t.width;a.height=t.height;h=a.getContext("2d");if("image/jpeg"===i){h.fillStyle="#fff";h.fillRect(0,0,t.width,t.height)}h.drawImage(this.$clone[0],s.x,s.y,s.width,s.height,0,0,t.width,t.height);r=a.toDataURL(i,e)}return r},setDragMode:function(t){var i=this.$canvas,e=this.defaults,h=D,a=D;if(this.built&&!this.disabled){switch(t){case"crop":if(e.dragCrop){h=$;i.data(o,t)}break;case"move":a=$;i.data(o,t);break;default:i.removeData(o)}i.toggleClass(p,h).toggleClass("cropper-move",a)}},enable:function(){if(this.built){this.disabled=D;this.$cropper.removeClass(c)}},disable:function(){if(this.built){this.disabled=$;this.$cropper.addClass(c)}},rotate:function(t){var i=this.image;t=I(t)||0;if(this.built&&0!==t&&!this.disabled&&this.defaults.rotatable&&this.support.canvas){this.rotated=$;t=i.rotate=(i.rotate+t)%360;this.replace(this.getRotatedDataURL(t),!0)}},getRotatedDataURL:function(t){var i=g("")[0],e=i.getContext("2d"),h=this.originalImage,a=h.naturalWidth,h=h.naturalHeight,s=T(t)%180,s=(90{i="div,span,directive,data,point,cropper,class,line,dashed".split(",");return'<0 6="5-container"><0 6="5-canvas"><0 6="5-dragger"><1 6="5-viewer"><1 6="5-8 8-h"><1 6="5-8 8-v"><1 6="5-face" 3-2="all"><1 6="5-7 7-e" 3-2="e"><1 6="5-7 7-n" 3-2="n"><1 6="5-7 7-w" 3-2="w"><1 6="5-7 7-s" 3-2="s"><1 6="5-4 4-e" 3-2="e"><1 6="5-4 4-n" 3-2="n"><1 6="5-4 4-w" 3-2="w"><1 6="5-4 4-s" 3-2="s"><1 6="5-4 4-ne" 3-2="ne"><1 6="5-4 4-nw" 3-2="nw"><1 6="5-4 4-sw" 3-2="sw"><1 6="5-4 4-se" 3-2="se">'.replace(/\d+/g,function(t){return i[t]})})();r.DEFAULTS={aspectRatio:"auto",autoCropArea:.8,data:{},done:g.noop,preview:"",multiple:D,autoCrop:$,dragCrop:$,dashed:$,modal:$,movable:$,resizable:$,zoomable:$,rotatable:$,checkImageOrigin:$,minWidth:0,minHeight:0,maxWidth:1/0,maxHeight:1/0,minContainerWidth:300,minContainerHeight:150,build:d,built:d,dragstart:d,dragmove:d,dragend:d};r.setDefaults=function(t){g.extend(r.DEFAULTS,t)};r.other=g.fn.cropper;g.fn.cropper=function(e){var h,a=s(arguments,1);this.each(function(){var t=g(this),i=t.data("cropper");i||t.data("cropper",i=new r(this,e));"string"==typeof e&&g.isFunction(t=i[e])&&(h=t.apply(i,a))});return typeof h!=n?h:this};g.fn.cropper.Constructor=r;g.fn.cropper.setDefaults=r.setDefaults;g.fn.cropper.noConflict=function(){g.fn.cropper=r.other;return this}}); //# sourceMappingURL=cropper.js.map