WordPress/wp-includes/js/jcrop/jquery.Jcrop.js

1 line
11 KiB
JavaScript

(function(a){a.Jcrop=function(d,v){var d=d,v=v;if(typeof(d)!=="object"){d=a(d)[0]}if(typeof(v)!=="object"){v={}}if(!("trackDocument" in v)){v.trackDocument=a.browser.msie?false:true}if(!("keySupport" in v)){v.keySupport=a.browser.msie?false:true}var Q={trackDocument:false,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:0.6,borderOpacity:0.4,handleOpacity:0.5,handlePad:5,handleSize:9,handleOffset:5,edgeMargin:14,aspectRatio:0,keySupport:true,cornerHandles:true,sideHandles:true,drawBorders:true,dragEdges:true,boxWidth:0,boxHeight:0,boundary:8,animationDelay:20,swingSpeed:3,watchShift:false,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){}};var E=Q;u(v);var ac=a(d).css({position:"absolute"});P(ac,E.boxWidth,E.boxHeight);var M=ac.width(),K=ac.height(),T=a("<div />").width(M).height(K).addClass(y("holder")).css({position:"relative",backgroundColor:E.bgColor});if(E.addClass){T.addClass(E.addClass)}ac.wrap(T);var F=a("<img />").attr("src",ac.attr("src")).css("position","absolute").width(M).height(K);var j=a("<div />").width(H(100)).height(H(100)).css({zIndex:310,position:"absolute",overflow:"hidden"}).append(F);var I=a("<div />").width(H(100)).height(H(100)).css({zIndex:320});var t=a("<div />").css({position:"absolute",zIndex:300}).insertBefore(ac).append(j,I);var q=E.boundary;var b=a("<div />").addClass(y("tracker")).width(M+(q*2)).height(K+(q*2)).css({position:"absolute",top:k(-q),left:k(-q),zIndex:290,opacity:0}).mousedown(W);var J,e;var X=A(d),o,z,ae,ad,x,V;if("trueSize" in E){J=E.trueSize[0]/M;e=E.trueSize[1]/K}var U=function(){var ah=0,at=0,ag=0,ar=0,ak,ai;function am(aw){var aw=aj(aw);ag=ah=aw[0];ar=at=aw[1]}function al(aw){var aw=aj(aw);ak=aw[0]-ag;ai=aw[1]-ar;ag=aw[0];ar=aw[1]}function av(){return[ak,ai]}function af(ay){var ax=ay[0],aw=ay[1];if(0>ah+ax){ax-=ax+ah}if(0>at+aw){aw-=aw+at}if(K<ar+aw){aw+=K-(ar+aw)}if(M<ag+ax){ax+=M-(ag+ax)}ah+=ax;ag+=ax;at+=aw;ar+=aw}function an(aw){var ax=au();switch(aw){case"ne":return[ax.x2,ax.y];case"nw":return[ax.x,ax.y];case"se":return[ax.x2,ax.y2];case"sw":return[ax.x,ax.y2]}}function au(){if(!E.aspectRatio&&!z){return aq()}var ax=E.aspectRatio?E.aspectRatio:z,aB=E.minSize,aE=E.maxSize,ay=ag-ah,aF=ar-at,az=Math.abs(ay),aA=Math.abs(aF),aC=az/aA,aw,aD;if(aC<ax){aD=ar;w=aA*ax;aw=ay<0?ah-w:w+ah;if(aw<0){aw=0;h=Math.abs((aw-ah)/ax);aD=aF<0?at-h:h+at}else{if(aw>M){aw=M;h=Math.abs((aw-ah)/ax);aD=aF<0?at-h:h+at}}}else{aw=ag;h=az/ax;aD=aF<0?at-h:at+h;if(aD<0){aD=0;w=Math.abs((aD-at)*ax);aw=ay<0?ah-w:w+ah}else{if(aD>K){aD=K;w=Math.abs(aD-at)*ax;aw=ay<0?ah-w:w+ah}}}return last=ap(ao(ah,at,aw,aD))}function aj(aw){if(aw[0]<0){aw[0]=0}if(aw[1]<0){aw[1]=0}if(aw[0]>M){aw[0]=M}if(aw[1]>K){aw[1]=K}return[aw[0],aw[1]]}function ao(az,aB,ay,aA){var aD=az,aC=ay,ax=aB,aw=aA;if(ay<az){aD=ay;aC=az}if(aA<aB){ax=aA;aw=aB}return[Math.round(aD),Math.round(ax),Math.round(aC),Math.round(aw)]}function aq(){var ax=ag-ah;var aw=ar-at;if(s&&(Math.abs(ax)>s)){ag=(ax>0)?(ah+s):(ah-s)}if(Z&&(Math.abs(aw)>Z)){ar=(aw>0)?(at+Z):(at-Z)}if(O&&(Math.abs(aw)<O)){ar=(aw>0)?(at+O):(at-O)}if(l&&(Math.abs(ax)<l)){ag=(ax>0)?(ah+l):(ah-l)}if(ah<0){ag-=ah;ah-=ah}if(at<0){ar-=at;at-=at}if(ag<0){ah-=ag;ag-=ag}if(ar<0){at-=ar;ar-=ar}if(ag>M){var ay=ag-M;ah-=ay;ag-=ay}if(ar>K){var ay=ar-K;at-=ay;ar-=ay}if(ah>M){var ay=ah-K;ar-=ay;at-=ay}if(at>K){var ay=at-K;ar-=ay;at-=ay}return ap(ao(ah,at,ag,ar))}function ap(aw){return{x:aw[0],y:aw[1],x2:aw[2],y2:aw[3],w:aw[2]-aw[0],h:aw[3]-aw[1]}}return{flipCoords:ao,setPressed:am,setCurrent:al,getOffset:av,moveOffset:af,getCorner:an,getFixed:au}}();var R=function(){var ak,ah,ar,aq,aA=370;var aj={};var aE={};var ag=false;var ap=E.handleOffset;if(E.drawBorders){aj={top:al("hline").css("top",a.browser.msie?k(-1):k(0)),bottom:al("hline"),left:al("vline"),right:al("vline")}}if(E.dragEdges){aE.t=az("n");aE.b=az("s");aE.r=az("e");aE.l=az("w")}E.sideHandles&&av(["n","s","e","w"]);E.cornerHandles&&av(["sw","nw","ne","se"]);function al(aH){var aI=a("<div />").css({position:"absolute",opacity:E.borderOpacity}).addClass(y(aH));j.append(aI);return aI}function af(aH,aI){var aJ=a("<div />").mousedown(c(aH)).css({cursor:aH+"-resize",position:"absolute",zIndex:aI});I.append(aJ);return aJ}function at(aH){return af(aH,aA++).css({top:k(-ap+1),left:k(-ap+1),opacity:E.handleOpacity}).addClass(y("handle"))}function az(aJ){var aM=E.handleSize,aN=ap,aL=aM,aI=aM,aK=aN,aH=aN;switch(aJ){case"n":case"s":aI=H(100);break;case"e":case"w":aL=H(100);break}return af(aJ,aA++).width(aI).height(aL).css({top:k(-aK+1),left:k(-aH+1)})}function av(aH){for(i in aH){aE[aH[i]]=at(aH[i])}}function ax(aO){var aJ=Math.round((aO.h/2)-ap),aI=Math.round((aO.w/2)-ap),aM=west=-ap+1,aL=aO.w-ap,aK=aO.h-ap,aH,aN;"e" in aE&&aE.e.css({top:k(aJ),left:k(aL)})&&aE.w.css({top:k(aJ)})&&aE.s.css({top:k(aK),left:k(aI)})&&aE.n.css({left:k(aI)});"ne" in aE&&aE.ne.css({left:k(aL)})&&aE.se.css({top:k(aK),left:k(aL)})&&aE.sw.css({top:k(aK)});"b" in aE&&aE.b.css({top:k(aK)})&&aE.r.css({left:k(aL)})}function an(aH,aI){F.css({top:k(-aI),left:k(-aH)});t.css({top:k(aI),left:k(aH)})}function aG(aH,aI){t.width(aH).height(aI)}function ai(){var aH=U.getFixed();U.setPressed([aH.x,aH.y]);U.setCurrent([aH.x2,aH.y2])}function aD(){if(aq){return am()}}function am(){var aH=U.getFixed();aG(aH.w,aH.h);an(aH.x,aH.y);E.drawBorders&&aj.right.css({left:k(aH.w-1)})&&aj.bottom.css({top:k(aH.h-1)});ag&&ax(aH);aq||aF();E.onChange(S(aH))}function aF(){t.show();ac.css("opacity",E.bgOpacity);aq=true}function aB(){aC();t.hide();ac.css("opacity",1);aq=false}function ao(){aB();ac.css("opacity",1);aq=false}function aw(){ag=true;ax(U.getFixed());I.show()}function aC(){ag=false;I.hide()}function ay(aH){(x=aH)?aC():aw()}function au(){var aH=U.getFixed();ay(false);ai()}aC();j.append(a("<div />").addClass(y("tracker")).mousedown(c("move")).css({cursor:"move",position:"absolute",zIndex:360,opacity:0}));return{updateVisible:aD,update:am,release:aB,show:aF,hide:ao,enableHandles:aw,disableHandles:aC,animMode:ay,done:au}}();var L=function(){var ag=function(){},ai=function(){},ah=E.trackDocument;if(!ah){b.mousemove(af).mouseup(aj).mouseout(aj)}function an(){if(ah){a(document).mousemove(af).mouseup(aj)}b.css({zIndex:450})}function am(){if(ah){a(document).unbind("mousemove",af).unbind("mouseup",aj)}b.css({zIndex:290})}function af(ao){ag(C(ao))}function aj(ao){ao.preventDefault();ao.stopPropagation();if(o){o=false;ai(C(ao));E.onSelect(S(U.getFixed()));am();ag=function(){};ai=function(){}}return false}function ak(ap,ao){o=true;ag=ap;ai=ao;an();return false}function al(ao){b.css("cursor",ao)}ac.before(b);return{activateHandlers:ak,setCursor:al}}();var ab=function(){var ai=a('<input type="radio" />').css({position:"absolute",left:"-30px"}).keydown(af).keyup(aj).blur(ak),al=a("<div />").css({position:"absolute",overflow:"hidden"}).append(ai);function ag(){if(E.keySupport){ai.show();ai.focus()}}function ak(am){ai.hide()}function aj(an){if(!E.watchShift){return}var ao=V,am;V=an.shiftKey?true:false;if(ao!=V){if(V&&o){am=U.getFixed();z=am.w/am.h}else{z=0}R.update()}an.stopPropagation();an.preventDefault();return false}function ah(an,am,ao){U.moveOffset([am,ao]);R.updateVisible();an.preventDefault();an.stopPropagation()}function af(an){if(an.ctrlKey){return true}aj(an);var am=V?10:1;switch(an.keyCode){case 37:ah(an,-am,0);break;case 39:ah(an,am,0);break;case 38:ah(an,0,-am);break;case 40:ah(an,0,am);break;case 27:R.release();break;case 9:return true}return false}if(E.keySupport){al.insertBefore(ac)}return{watchKeys:ag}}();function k(af){return""+parseInt(af)+"px"}function H(af){return""+parseInt(af)+"%"}function y(af){return E.baseClass+"-"+af}function A(af){var ag=a(af).offset();return[ag.left,ag.top]}function C(af){return[(af.pageX-X[0]),(af.pageY-X[1])]}function B(af){if(af!=ae){L.setCursor(af);ae=af}}function f(ag,ah){X=A(d);L.setCursor(ag=="move"?ag:ag+"-resize");if(ag=="move"){return L.activateHandlers(N(ah),m)}var af=U.getFixed();U.setPressed(U.getCorner(n(ag)));L.activateHandlers(D(ag,af),m)}function D(ag,af){return function(ah){if(!E.aspectRatio&&!z){switch(ag){case"e":ah[1]=af.y2;break;case"w":ah[1]=af.y2;break;case"n":ah[0]=af.x2;break;case"s":ah[0]=af.x2;break}}else{switch(ag){case"e":ah[1]=af.y+1;break;case"w":ah[1]=af.y+1;break;case"n":ah[0]=af.x+1;break;case"s":ah[0]=af.x+1;break}}U.setCurrent(ah);R.update()}}function N(ag){var af=ag;ab.watchKeys();return function(ah){U.moveOffset([ah[0]-af[0],ah[1]-af[1]]);af=ah;R.update()}}function n(af){switch(af){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function c(af){return function(ag){o=true;f(af,C(ag));ag.stopPropagation();ag.preventDefault();return false}}function P(aj,ag,ai){var af=aj.width(),ah=aj.height();if((af>ag)&&ag>0){af=ag;ah=(ag/aj.width())*aj.height()}if((ah>ai)&&ai>0){ah=ai;af=(ai/aj.height())*aj.width()}J=aj.width()/af;e=aj.height()/ah;aj.width(af).height(ah)}function S(af){return{x:parseInt(af.x*J),y:parseInt(af.y*e),x2:parseInt(af.x2*J),y2:parseInt(af.y2*e),w:parseInt(af.w*J),h:parseInt(af.h*e)}}function m(ag){var af=U.getFixed();if(af.w>E.minSelect[0]&&af.h>E.minSelect[1]){R.enableHandles();R.done()}else{R.release()}L.setCursor("crosshair")}function W(af){o=true;X=A(d);R.release();R.disableHandles();B("crosshair");U.setPressed(C(af));L.activateHandlers(aa,m);ab.watchKeys();af.stopPropagation();af.preventDefault();return false}function aa(af){U.setCurrent(af);R.update()}function p(ax){var ar=ax[0],ag=ax[1],aq=ax[2],af=ax[3];if(x){return}var ap=U.flipCoords(ar,ag,aq,af);var av=U.getFixed();var ai=initcr=[av.x,av.y,av.x2,av.y2];var ah=E.animationDelay;var an=ai[0];var am=ai[1];var aq=ai[2];var af=ai[3];var au=ap[0]-initcr[0];var ak=ap[1]-initcr[1];var at=ap[2]-initcr[2];var aj=ap[3]-initcr[3];var ao=0;var al=E.swingSpeed;R.animMode(true);var aw=function(){return function(){ao+=(100-ao)/al;ai[0]=an+((ao/100)*au);ai[1]=am+((ao/100)*ak);ai[2]=aq+((ao/100)*at);ai[3]=af+((ao/100)*aj);if(ao<100){ay()}else{R.done()}if(ao>=99.8){ao=100}G(ai)}}();function ay(){window.setTimeout(aw,ah)}ay()}function G(af){U.setPressed([af[0],af[1]]);U.setCurrent([af[2],af[3]]);R.update()}function u(af){if(typeof(af)!="object"){af={}}E=a.extend(E,af);if(typeof(E.onChange)!=="function"){E.onChange=function(){}}if(typeof(E.onSelect)!=="function"){E.onSelect=function(){}}}function g(){return S(U.getFixed())}function Y(){return U.getFixed()}function r(af){u(af);if("setSelect" in af){G(af.setSelect);R.done()}}if(typeof(v)!="object"){v={}}if("setSelect" in v){G(v.setSelect);R.done()}var s=E.maxSize[0]||0;var Z=E.maxSize[1]||0;var l=E.minSize[0]||0;var O=E.minSize[1]||0;L.setCursor("crosshair");return{animateTo:p,setSelect:G,setOptions:r,tellSelect:g,tellScaled:Y}};a.fn.Jcrop=function(c){function b(f){var e=c.useImg||f.src;var d=new Image();var f=f;d.onload=function(){a(f).hide().after(d);f.Jcrop=a.Jcrop(d,c)};d.src=e}if(typeof(c)!=="object"){c={}}this.each(function(){if("Jcrop" in this){if(c=="api"){return this.Jcrop}else{this.Jcrop.setOptions(c)}}else{b(this)}});return this}})(jQuery);