WordPress.org

Make WordPress Core

Changeset 17934


Ignore:
Timestamp:
05/15/11 18:03:51 (3 years ago)
Author:
azaozz
Message:

Update imgareaselect Jquery plugin, props duck_, fixes #17446

Location:
trunk/wp-includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/js/imgareaselect/jquery.imgareaselect.dev.js

    r11911 r17934  
    11/* 
    22 * imgAreaSelect jQuery plugin 
    3  * version 0.9.1 
     3 * version 0.9.6 
    44 * 
    5  * Copyright (c) 2008-2009 Michal Wojciechowski (odyniec.net) 
     5 * Copyright (c) 2008-2011 Michal Wojciechowski (odyniec.net) 
    66 * 
    77 * Dual licensed under the MIT (MIT-LICENSE.txt) 
     
    4040        left, top, 
    4141 
    42         imgOfs, 
     42        imgOfs = { left: 0, top: 0 }, 
    4343 
    4444        imgWidth, imgHeight, 
     
    4646        $parent, 
    4747 
    48         parOfs, 
     48        parOfs = { left: 0, top: 0 }, 
    4949 
    5050        zIndex = 0, 
     
    6060        resize, 
    6161 
     62        minWidth, minHeight, maxWidth, maxHeight, 
     63 
    6264        aspectRatio, 
    6365 
     
    6769 
    6870        selection = { x1: 0, y1: 0, x2: 0, y2: 0, width: 0, height: 0 }, 
     71 
     72        docElem = document.documentElement, 
    6973 
    7074        $p, d, i, o, w, h, adjusted; 
     
    109113 
    110114        selection = { 
    111             x1: round(x1 / sx), 
    112             y1: round(y1 / sy), 
    113             x2: round(x2 / sx), 
    114             y2: round(y2 / sy) 
     115            x1: round(x1 / sx || 0), 
     116            y1: round(y1 / sy || 0), 
     117            x2: round(x2 / sx || 0), 
     118            y2: round(y2 / sy || 0) 
    115119        }; 
    116120 
    117         selection.width = (x2 = viewX(selection.x2)) - (x1 = viewX(selection.x1)); 
    118         selection.height = (y2 = viewX(selection.y2)) - (y1 = viewX(selection.y1)); 
     121        selection.width = selection.x2 - selection.x1; 
     122        selection.height = selection.y2 - selection.y1; 
    119123    } 
    120124 
     
    125129        imgOfs = { left: round($img.offset().left), top: round($img.offset().top) }; 
    126130 
    127         imgWidth = $img.width(); 
    128         imgHeight = $img.height(); 
    129  
    130         if ($().jquery == '1.3.2' && $.browser.safari && position == 'fixed') { 
    131             imgOfs.top += max(document.documentElement.scrollTop, $('body').scrollTop()); 
    132  
    133             imgOfs.left += max(document.documentElement.scrollLeft, $('body').scrollLeft()); 
     131        imgWidth = $img.innerWidth(); 
     132        imgHeight = $img.innerHeight(); 
     133 
     134        imgOfs.top += ($img.outerHeight() - imgHeight) >> 1; 
     135        imgOfs.left += ($img.outerWidth() - imgWidth) >> 1; 
     136 
     137        minWidth = options.minWidth || 0; 
     138        minHeight = options.minHeight || 0; 
     139        maxWidth = min(options.maxWidth || 1<<24, imgWidth); 
     140        maxHeight = min(options.maxHeight || 1<<24, imgHeight); 
     141 
     142        if ($().jquery == '1.3.2' && position == 'fixed' && 
     143            !docElem['getBoundingClientRect']) 
     144        { 
     145            imgOfs.top += max(document.body.scrollTop, docElem.scrollTop); 
     146            imgOfs.left += max(document.body.scrollLeft, docElem.scrollLeft); 
    134147        } 
    135148 
     
    143156        left = viewX(0); 
    144157        top = viewY(0); 
     158 
     159        if (selection.x2 > imgWidth || selection.y2 > imgHeight) 
     160            doResize(); 
    145161    } 
    146162 
     
    171187        switch ($handles.length) { 
    172188        case 8: 
    173             $($handles[4]).css({ left: w / 2 }); 
    174             $($handles[5]).css({ left: w, top: h / 2 }); 
    175             $($handles[6]).css({ left: w / 2, top: h }); 
    176             $($handles[7]).css({ top: h / 2 }); 
     189            $($handles[4]).css({ left: w >> 1 }); 
     190            $($handles[5]).css({ left: w, top: h >> 1 }); 
     191            $($handles[6]).css({ left: w >> 1, top: h }); 
     192            $($handles[7]).css({ top: h >> 1 }); 
    177193        case 4: 
    178194            $handles.slice(1,3).css({ left: w }); 
     
    222238 
    223239        if (options.resizable) { 
    224             if (y <= resizeMargin) 
     240            if (y <= options.resizeMargin) 
    225241                resize = 'n'; 
    226             else if (y >= selection.height - resizeMargin) 
     242            else if (y >= selection.height - options.resizeMargin) 
    227243                resize = 's'; 
    228             if (x <= resizeMargin) 
     244            if (x <= options.resizeMargin) 
    229245                resize += 'w'; 
    230             else if (x >= selection.width - resizeMargin) 
     246            else if (x >= selection.width - options.resizeMargin) 
    231247                resize += 'e'; 
    232248        } 
     
    240256    function docMouseUp(event) { 
    241257        $('body').css('cursor', ''); 
    242  
    243258        if (options.autoHide || selection.width * selection.height == 0) 
    244259            hide($box.add($outer), function () { $(this).hide(); }); 
    245260 
    246         options.onSelectEnd(img, getSelection()); 
    247  
    248261        $(document).unbind('mousemove', selectingMouseMove); 
    249262        $box.mousemove(areaMouseMove); 
     263 
     264        options.onSelectEnd(img, getSelection()); 
    250265    } 
    251266 
     
    285300    } 
    286301 
    287     function aspectRatioXY() { 
    288         x2 = max(left, min(left + imgWidth, 
    289             x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))); 
    290  
    291         y2 = round(max(top, min(top + imgHeight, 
    292             y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)))); 
    293         x2 = round(x2); 
    294     } 
    295  
    296     function aspectRatioYX() { 
    297         y2 = max(top, min(top + imgHeight, 
    298             y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))); 
    299         x2 = round(max(left, min(left + imgWidth, 
    300             x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)))); 
    301         y2 = round(y2); 
     302    function fixAspectRatio(xFirst) { 
     303        if (aspectRatio) 
     304            if (xFirst) { 
     305                x2 = max(left, min(left + imgWidth, 
     306                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))); 
     307 
     308                y2 = round(max(top, min(top + imgHeight, 
     309                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)))); 
     310                x2 = round(x2); 
     311            } 
     312            else { 
     313                y2 = max(top, min(top + imgHeight, 
     314                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))); 
     315                x2 = round(max(left, min(left + imgWidth, 
     316                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)))); 
     317                y2 = round(y2); 
     318            } 
    302319    } 
    303320 
    304321    function doResize() { 
    305         if (abs(x2 - x1) < options.minWidth) { 
    306             x2 = x1 - options.minWidth * (x2 < x1 || -1); 
     322        x1 = min(x1, left + imgWidth); 
     323        y1 = min(y1, top + imgHeight); 
     324 
     325        if (abs(x2 - x1) < minWidth) { 
     326            x2 = x1 - minWidth * (x2 < x1 || -1); 
    307327 
    308328            if (x2 < left) 
    309                 x1 = left + options.minWidth; 
     329                x1 = left + minWidth; 
    310330            else if (x2 > left + imgWidth) 
    311                 x1 = left + imgWidth - options.minWidth; 
    312         } 
    313  
    314         if (abs(y2 - y1) < options.minHeight) { 
    315             y2 = y1 - options.minHeight * (y2 < y1 || -1); 
     331                x1 = left + imgWidth - minWidth; 
     332        } 
     333 
     334        if (abs(y2 - y1) < minHeight) { 
     335            y2 = y1 - minHeight * (y2 < y1 || -1); 
    316336 
    317337            if (y2 < top) 
    318                 y1 = top + options.minHeight; 
     338                y1 = top + minHeight; 
    319339            else if (y2 > top + imgHeight) 
    320                 y1 = top + imgHeight - options.minHeight; 
     340                y1 = top + imgHeight - minHeight; 
    321341        } 
    322342 
     
    324344        y2 = max(top, min(y2, top + imgHeight)); 
    325345 
    326         if (aspectRatio) 
    327             if (abs(x2 - x1) / aspectRatio > abs(y2 - y1)) 
    328                 aspectRatioYX(); 
    329             else 
    330                 aspectRatioXY(); 
    331  
    332         if (abs(x2 - x1) > options.maxWidth) { 
    333             x2 = x1 - options.maxWidth * (x2 < x1 || -1); 
    334             if (aspectRatio) aspectRatioYX(); 
    335         } 
    336  
    337         if (abs(y2 - y1) > options.maxHeight) { 
    338             y2 = y1 - options.maxHeight * (y2 < y1 || -1); 
    339             if (aspectRatio) aspectRatioXY(); 
     346        fixAspectRatio(abs(x2 - x1) < abs(y2 - y1) * aspectRatio); 
     347 
     348        if (abs(x2 - x1) > maxWidth) { 
     349            x2 = x1 - maxWidth * (x2 < x1 || -1); 
     350            fixAspectRatio(); 
     351        } 
     352 
     353        if (abs(y2 - y1) > maxHeight) { 
     354            y2 = y1 - maxHeight * (y2 < y1 || -1); 
     355            fixAspectRatio(true); 
    340356        } 
    341357 
     
    363379        y2 = (y1 = newY1) + selection.height; 
    364380 
    365         selection = $.extend(selection, { x1: selX(x1), y1: selY(y1), 
    366             x2: selX(x2), y2: selY(y2) }); 
     381        $.extend(selection, { x1: selX(x1), y1: selY(y1), x2: selX(x2), 
     382            y2: selY(y2) }); 
    367383 
    368384        update(); 
     
    383399 
    384400    function startSelection() { 
     401        $(document).unbind('mousemove', startSelection); 
    385402        adjust(); 
    386403 
     
    405422 
    406423    function cancelSelection() { 
    407         $(document).unbind('mousemove', startSelection); 
     424        $(document).unbind('mousemove', startSelection) 
     425            .unbind('mouseup', cancelSelection); 
    408426        hide($box.add($outer)); 
    409427 
    410         selection = { x1: selX(x1), y1: selY(y1), x2: selX(x1), y2: selY(y1), 
    411                 width: 0, height: 0 }; 
     428        setSelection(selX(x1), selY(y1), selX(x1), selY(y1)); 
    412429 
    413430        options.onSelectChange(img, getSelection()); 
     
    422439        startY = y1 = evY(event); 
    423440 
    424         $(document).one('mousemove', startSelection) 
    425             .one('mouseup', cancelSelection); 
     441        $(document).mousemove(startSelection).mouseup(cancelSelection); 
    426442 
    427443        return false; 
    428444    } 
    429445 
    430     function parentScroll() { 
     446    function windowResize() { 
    431447        doUpdate(false); 
    432448    } 
     
    438454            classPrefix: 'imgareaselect', 
    439455            movable: true, 
     456            parent: 'body', 
    440457            resizable: true, 
    441             parent: 'body', 
     458            resizeMargin: 10, 
    442459            onInit: function () {}, 
    443460            onSelectStart: function () {}, 
     
    459476 
    460477    var docKeyPress = function(event) { 
    461         var k = options.keys, d, t, key = event.keyCode || event.which; 
     478        var k = options.keys, d, t, key = event.keyCode; 
    462479 
    463480        d = !isNaN(k.alt) && (event.altKey || event.originalEvent.altKey) ? k.alt : 
     
    477494                x1 = min(x1, x2); 
    478495                x2 = max(t + d, x1); 
    479                 if (aspectRatio) aspectRatioYX(); 
     496                fixAspectRatio(); 
    480497                break; 
    481498            case 38: 
     
    485502                y1 = min(y1, y2); 
    486503                y2 = max(t + d, y1); 
    487                 if (aspectRatio) aspectRatioXY(); 
     504                fixAspectRatio(true); 
    488505                break; 
    489506            default: 
     
    528545            ($parent = $(newOptions.parent)).append($box.add($outer)); 
    529546 
    530         options = $.extend(options, newOptions); 
     547        $.extend(options, newOptions); 
    531548 
    532549        adjust(); 
     
    547564            }); 
    548565 
    549             if (!parseInt($handles.css('width'))) 
     566            if (!parseInt($handles.css('width')) >= 0) 
    550567                $handles.width(5).height(5); 
    551568 
     
    563580        if (newOptions.x1 != null) { 
    564581            setSelection(newOptions.x1, newOptions.y1, newOptions.x2, 
    565                     newOptions.y2); 
     582                newOptions.y2); 
    566583            newOptions.show = !newOptions.hide; 
    567584        } 
     
    587604            $($border[1]).css({ borderStyle: 'dashed', borderColor: o }); 
    588605 
    589         $box.append($area.add($border).add($handles).add($areaOpera)); 
     606        $box.append($area.add($border).add($areaOpera).add($handles)); 
    590607 
    591608        if ($.browser.msie) { 
     
    606623        aspectRatio = (d = (options.aspectRatio || '').split(/:/))[0] / d[1]; 
    607624 
     625        $img.add($outer).unbind('mousedown', imgMouseDown); 
     626 
    608627        if (options.disable || options.enable === false) { 
    609628            $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown); 
    610             $img.add($outer).unbind('mousedown', imgMouseDown); 
    611             $(window).unbind('resize', parentScroll); 
    612             $img.add($img.parents()).unbind('scroll', parentScroll); 
    613         } 
    614         else if (options.enable || options.disable === false) { 
    615             if (options.resizable || options.movable) 
    616                 $box.mousemove(areaMouseMove).mousedown(areaMouseDown); 
     629            $(window).unbind('resize', windowResize); 
     630        } 
     631        else { 
     632            if (options.enable || options.disable === false) { 
     633                if (options.resizable || options.movable) 
     634                    $box.mousemove(areaMouseMove).mousedown(areaMouseDown); 
     635 
     636                $(window).resize(windowResize); 
     637            } 
    617638 
    618639            if (!options.persistent) 
    619640                $img.add($outer).mousedown(imgMouseDown); 
    620             $(window).resize(parentScroll); 
    621             $img.add($img.parents()).scroll(parentScroll); 
    622641        } 
    623642 
     
    625644    } 
    626645 
     646    this.remove = function () { 
     647        setOptions({ disable: true }); 
     648        $box.add($outer).remove(); 
     649    }; 
     650 
    627651    this.getOptions = function () { return options; }; 
    628652 
     
    637661    $p = $img; 
    638662 
    639     while ($p.length && !$p.is('body')) { 
    640         if (!isNaN($p.css('z-index')) && $p.css('z-index') > zIndex) 
    641             zIndex = $p.css('z-index'); 
     663    while ($p.length) { 
     664        zIndex = max(zIndex, 
     665            !isNaN($p.css('z-index')) ? $p.css('z-index') : zIndex); 
    642666        if ($p.css('position') == 'fixed') 
    643667            position = 'fixed'; 
    644668 
    645         $p = $p.parent(); 
    646     } 
    647  
    648     if (!isNaN(options.zIndex)) 
    649         zIndex = options.zIndex; 
     669        $p = $p.parent(':not(body)'); 
     670    } 
     671 
     672    zIndex = options.zIndex || zIndex; 
    650673 
    651674    if ($.browser.msie) 
     
    662685        overflow: 'hidden', zIndex: zIndex || '0' }); 
    663686    $box.css({ zIndex: zIndex + 2 || 2 }); 
    664     $area.add($border).css({ position: 'absolute' }); 
     687    $area.add($border).css({ position: 'absolute', fontSize: 0 }); 
    665688 
    666689    img.complete || img.readyState == 'complete' || !$img.is('img') ? 
    667690        imgLoad() : $img.one('load', imgLoad); 
    668691 
     692    if ($.browser.msie && $.browser.version >= 9) 
     693        img.src = img.src; 
    669694}; 
    670695 
     
    673698 
    674699    this.each(function () { 
    675         if ($(this).data('imgAreaSelect')) 
    676             $(this).data('imgAreaSelect').setOptions(options); 
    677         else { 
     700        if ($(this).data('imgAreaSelect')) { 
     701            if (options.remove) { 
     702                $(this).data('imgAreaSelect').remove(); 
     703                $(this).removeData('imgAreaSelect'); 
     704            } 
     705            else 
     706                $(this).data('imgAreaSelect').setOptions(options); 
     707        } 
     708        else if (!options.remove) { 
    678709            if (options.enable === undefined && options.disable === undefined) 
    679710                options.enable = true; 
  • trunk/wp-includes/js/imgareaselect/jquery.imgareaselect.js

    r17286 r17934  
    1 (function(e){var b=Math.abs,a=Math.max,d=Math.min,c=Math.round;function f(){return e("<div/>")}e.imgAreaSelect=function(q,S){var aw=e(q),U,ar=f(),af=f(),H=f().add(f()).add(f()).add(f()),Y=f().add(f()).add(f()).add(f()),L=e([]),R,n,p,az,N,j,A,M,B=0,ad="absolute",Q,P,aa,Z,V=10,I,T,K,y,aA,x,ay,v={x1:0,y1:0,x2:0,y2:0,width:0,height:0},l,aq,am,ag,ac,an,u;function G(h){return h+az.left-M.left}function F(h){return h+az.top-M.top}function E(h){return h-az.left+M.left}function z(h){return h-az.top+M.top}function ak(h){return h.pageX-M.left}function ai(h){return h.pageY-M.top}function D(h){var o=h||aa,i=h||Z;return{x1:c(v.x1*o),y1:c(v.y1*i),x2:c(v.x2*o),y2:c(v.y2*i),width:c(v.x2*o)-c(v.x1*o),height:c(v.y2*i)-c(v.y1*i)}}function ae(i,w,h,o,aB){var aD=aB||aa,aC=aB||Z;v={x1:c(i/aD),y1:c(w/aC),x2:c(h/aD),y2:c(o/aC)};v.width=(h=G(v.x2))-(i=G(v.x1));v.height=(o=G(v.y2))-(w=G(v.y1))}function ao(){if(!aw.width()){return}az={left:c(aw.offset().left),top:c(aw.offset().top)};N=aw.width();j=aw.height();if(e().jquery=="1.3.2"&&e.browser.safari&&ad=="fixed"){az.top+=a(document.documentElement.scrollTop,e("body").scrollTop());az.left+=a(document.documentElement.scrollLeft,e("body").scrollLeft())}M=e.inArray(A.css("position"),["absolute","relative"])+1?{left:c(A.offset().left)-A.scrollLeft(),top:c(A.offset().top)-A.scrollTop()}:ad=="fixed"?{left:e(document).scrollLeft(),top:e(document).scrollTop()}:{left:0,top:0};n=G(0);p=F(0)}function X(h){if(!K){return}ar.css({left:G(v.x1),top:F(v.y1)}).add(af).width(ac=v.width).height(an=v.height);af.add(H).add(L).css({left:0,top:0});H.width(a(ac-H.outerWidth()+H.innerWidth(),0)).height(a(an-H.outerHeight()+H.innerHeight(),0));e(Y[0]).css({left:n,top:p,width:v.x1,height:j});e(Y[1]).css({left:n+v.x1,top:p,width:ac,height:v.y1});e(Y[2]).css({left:n+v.x2,top:p,width:N-v.x2,height:j});e(Y[3]).css({left:n+v.x1,top:p+v.y2,width:ac,height:j-v.y2});ac-=L.outerWidth();an-=L.outerHeight();switch(L.length){case 8:e(L[4]).css({left:ac/2});e(L[5]).css({left:ac,top:an/2});e(L[6]).css({left:ac/2,top:an});e(L[7]).css({top:an/2});case 4:L.slice(1,3).css({left:ac});L.slice(2,4).css({top:an})}if(h!==false){if(e.imgAreaSelect.keyPress!=at){e(document).unbind(e.imgAreaSelect.keyPress,e.imgAreaSelect.onKeyPress)}if(S.keys){e(document)[e.imgAreaSelect.keyPress](e.imgAreaSelect.onKeyPress=at)}}if(e.browser.msie&&H.outerWidth()-H.innerWidth()==2){H.css("margin",0);setTimeout(function(){H.css("margin","auto")},0)}}function t(h){ao();X(h);y=G(v.x1);aA=F(v.y1);x=G(v.x2);ay=F(v.y2)}function ah(h,i){S.fadeSpeed?h.fadeOut(S.fadeSpeed,i):h.hide()}function C(i){var h=E(ak(i))-v.x1,o=z(ai(i))-v.y1;if(!u){ao();u=true;ar.one("mouseout",function(){u=false})}I="";if(S.resizable){if(o<=V){I="n"}else{if(o>=v.height-V){I="s"}}if(h<=V){I+="w"}else{if(h>=v.width-V){I+="e"}}}ar.css("cursor",I?I+"-resize":S.movable?"move":"");if(R){R.toggle()}}function aj(h){e("body").css("cursor","");if(S.autoHide||v.width*v.height==0){ah(ar.add(Y),function(){e(this).hide()})}S.onSelectEnd(q,D());e(document).unbind("mousemove",ab);ar.mousemove(C)}function s(h){if(h.which!=1){return false}ao();if(I){e("body").css("cursor",I+"-resize");y=G(v[/w/.test(I)?"x2":"x1"]);aA=F(v[/n/.test(I)?"y2":"y1"]);e(document).mousemove(ab).one("mouseup",aj);ar.unbind("mousemove",C)}else{if(S.movable){Q=n+v.x1-ak(h);P=p+v.y1-ai(h);ar.unbind("mousemove",C);e(document).mousemove(g).one("mouseup",function(){S.onSelectEnd(q,D());e(document).unbind("mousemove",g);ar.mousemove(C)})}else{aw.mousedown(h)}}return false}function r(){x=a(n,d(n+N,y+b(ay-aA)*T*(x>y||-1)));ay=c(a(p,d(p+j,aA+b(x-y)/T*(ay>aA||-1))));x=c(x)}function al(){ay=a(p,d(p+j,aA+b(x-y)/T*(ay>aA||-1)));x=c(a(n,d(n+N,y+b(ay-aA)*T*(x>y||-1))));ay=c(ay)}function av(){if(b(x-y)<S.minWidth){x=y-S.minWidth*(x<y||-1);if(x<n){y=n+S.minWidth}else{if(x>n+N){y=n+N-S.minWidth}}}if(b(ay-aA)<S.minHeight){ay=aA-S.minHeight*(ay<aA||-1);if(ay<p){aA=p+S.minHeight}else{if(ay>p+j){aA=p+j-S.minHeight}}}x=a(n,d(x,n+N));ay=a(p,d(ay,p+j));if(T){if(b(x-y)/T>b(ay-aA)){al()}else{r()}}if(b(x-y)>S.maxWidth){x=y-S.maxWidth*(x<y||-1);if(T){al()}}if(b(ay-aA)>S.maxHeight){ay=aA-S.maxHeight*(ay<aA||-1);if(T){r()}}v={x1:E(d(y,x)),x2:E(a(y,x)),y1:z(d(aA,ay)),y2:z(a(aA,ay)),width:b(x-y),height:b(ay-aA)};X();S.onSelectChange(q,D())}function ab(h){x=I==""||/w|e/.test(I)||T?ak(h):G(v.x2);ay=I==""||/n|s/.test(I)||T?ai(h):F(v.y2);av();return false}function O(h,i){x=(y=h)+v.width;ay=(aA=i)+v.height;v=e.extend(v,{x1:E(y),y1:z(aA),x2:E(x),y2:z(ay)});X();S.onSelectChange(q,D())}function g(h){y=a(n,d(Q+ak(h),n+N-v.width));aA=a(p,d(P+ai(h),p+j-v.height));O(y,aA);h.preventDefault();return false}function ax(){ao();x=y;ay=aA;av();I="";if(Y.is(":not(:visible)")){ar.add(Y).hide().fadeIn(S.fadeSpeed||0)}K=true;e(document).unbind("mouseup",ap).mousemove(ab).one("mouseup",aj);ar.unbind("mousemove",C);S.onSelectStart(q,D())}function ap(){e(document).unbind("mousemove",ax);ah(ar.add(Y));v={x1:E(y),y1:z(aA),x2:E(y),y2:z(aA),width:0,height:0};S.onSelectChange(q,D());S.onSelectEnd(q,D())}function m(h){if(h.which!=1||Y.is(":animated")){return false}ao();Q=y=ak(h);P=aA=ai(h);e(document).one("mousemove",ax).one("mouseup",ap);return false}function W(){t(false)}function au(){U=true;J(S=e.extend({classPrefix:"imgareaselect",movable:true,resizable:true,parent:"body",onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},S));ar.add(Y).css({visibility:""});if(S.show){K=true;ao();X();ar.add(Y).hide().fadeIn(S.fadeSpeed||0)}setTimeout(function(){S.onInit(q,D())},0)}var at=function(w){var h=S.keys,aB,o,i=w.keyCode||w.which;aB=!isNaN(h.alt)&&(w.altKey||w.originalEvent.altKey)?h.alt:!isNaN(h.ctrl)&&w.ctrlKey?h.ctrl:!isNaN(h.shift)&&w.shiftKey?h.shift:!isNaN(h.arrows)?h.arrows:10;if(h.arrows=="resize"||(h.shift=="resize"&&w.shiftKey)||(h.ctrl=="resize"&&w.ctrlKey)||(h.alt=="resize"&&(w.altKey||w.originalEvent.altKey))){switch(i){case 37:aB=-aB;case 39:o=a(y,x);y=d(y,x);x=a(o+aB,y);if(T){al()}break;case 38:aB=-aB;case 40:o=a(aA,ay);aA=d(aA,ay);ay=a(o+aB,aA);if(T){r()}break;default:return}av()}else{y=d(y,x);aA=d(aA,ay);switch(i){case 37:O(a(y-aB,n),aA);break;case 38:O(y,a(aA-aB,p));break;case 39:O(y+d(aB,N-E(x)),aA);break;case 40:O(y,aA+d(aB,j-z(ay)));break;default:return}}return false};function k(h,i){for(option in i){if(S[option]!==undefined){h.css(i[option],S[option])}}}function J(h){if(h.parent){(A=e(h.parent)).append(ar.add(Y))}S=e.extend(S,h);ao();if(h.handles!=null){L.remove();L=e([]);am=h.handles?h.handles=="corners"?4:8:0;while(am--){L=L.add(f())}L.addClass(S.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:B+1||1});if(!parseInt(L.css("width"))){L.width(5).height(5)}if(ag=S.borderWidth){L.css({borderWidth:ag,borderStyle:"solid"})}k(L,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}aa=S.imageWidth/N||1;Z=S.imageHeight/j||1;if(h.x1!=null){ae(h.x1,h.y1,h.x2,h.y2);h.show=!h.hide}if(h.keys){S.keys=e.extend({shift:1,ctrl:"resize"},h.keys)}Y.addClass(S.classPrefix+"-outer");af.addClass(S.classPrefix+"-selection");for(am=0;am++<4;){e(H[am-1]).addClass(S.classPrefix+"-border"+am)}k(af,{selectionColor:"background-color",selectionOpacity:"opacity"});k(H,{borderOpacity:"opacity",borderWidth:"border-width"});k(Y,{outerColor:"background-color",outerOpacity:"opacity"});if(ag=S.borderColor1){e(H[0]).css({borderStyle:"solid",borderColor:ag})}if(ag=S.borderColor2){e(H[1]).css({borderStyle:"dashed",borderColor:ag})}ar.append(af.add(H).add(L).add(R));if(e.browser.msie){if(ag=Y.css("filter").match(/opacity=([0-9]+)/)){Y.css("opacity",ag[1]/100)}if(ag=H.css("filter").match(/opacity=([0-9]+)/)){H.css("opacity",ag[1]/100)}}if(h.hide){ah(ar.add(Y))}else{if(h.show&&U){K=true;ar.add(Y).fadeIn(S.fadeSpeed||0);t()}}T=(aq=(S.aspectRatio||"").split(/:/))[0]/aq[1];if(S.disable||S.enable===false){ar.unbind("mousemove",C).unbind("mousedown",s);aw.add(Y).unbind("mousedown",m);e(window).unbind("resize",W);aw.add(aw.parents()).unbind("scroll",W)}else{if(S.enable||S.disable===false){if(S.resizable||S.movable){ar.mousemove(C).mousedown(s)}if(!S.persistent){aw.add(Y).mousedown(m)}e(window).resize(W);aw.add(aw.parents()).scroll(W)}}S.enable=S.disable=undefined}this.getOptions=function(){return S};this.setOptions=J;this.getSelection=D;this.setSelection=ae;this.update=t;l=aw;while(l.length&&!l.is("body")){if(!isNaN(l.css("z-index"))&&l.css("z-index")>B){B=l.css("z-index")}if(l.css("position")=="fixed"){ad="fixed"}l=l.parent()}if(!isNaN(S.zIndex)){B=S.zIndex}if(e.browser.msie){aw.attr("unselectable","on")}e.imgAreaSelect.keyPress=e.browser.msie||e.browser.safari?"keydown":"keypress";if(e.browser.opera){R=f().css({width:"100%",height:"100%",position:"absolute",zIndex:B+2||2})}ar.add(Y).css({visibility:"hidden",position:ad,overflow:"hidden",zIndex:B||"0"});ar.css({zIndex:B+2||2});af.add(H).css({position:"absolute"});q.complete||q.readyState=="complete"||!aw.is("img")?au():aw.one("load",au)};e.fn.imgAreaSelect=function(g){g=g||{};this.each(function(){if(e(this).data("imgAreaSelect")){e(this).data("imgAreaSelect").setOptions(g)}else{if(g.enable===undefined&&g.disable===undefined){g.enable=true}e(this).data("imgAreaSelect",new e.imgAreaSelect(this,g))}});if(g.instance){return e(this).data("imgAreaSelect")}return this}})(jQuery); 
     1(function(e){var b=Math.abs,a=Math.max,d=Math.min,c=Math.round;function f(){return e("<div/>")}e.imgAreaSelect=function(Q,ad){var M=e(Q),u,B=f(),E=f(),ap=f().add(f()).add(f()).add(f()),v=f().add(f()).add(f()).add(f()),ax=e([]),aj,T,ao,ay={left:0,top:0},S,aA,p,V={left:0,top:0},g=0,ak="absolute",an,am,ab,aa,az=10,t,q,al,k,x,aE,ah,D,n,C,l,aC={x1:0,y1:0,x2:0,y2:0,width:0,height:0},F=document.documentElement,Z,R,O,N,K,P,I;function Y(h){return h+ay.left-V.left}function X(h){return h+ay.top-V.top}function au(h){return h-ay.left+V.left}function at(h){return h-ay.top+V.top}function A(h){return h.pageX-V.left}function z(h){return h.pageY-V.top}function ar(h){var o=h||ab,i=h||aa;return{x1:c(aC.x1*o),y1:c(aC.y1*i),x2:c(aC.x2*o),y2:c(aC.y2*i),width:c(aC.x2*o)-c(aC.x1*o),height:c(aC.y2*i)-c(aC.y1*i)}}function aq(i,w,h,o,aF){var aH=aF||ab,aG=aF||aa;aC={x1:c(i/aH||0),y1:c(w/aG||0),x2:c(h/aH||0),y2:c(o/aG||0)};aC.width=aC.x2-aC.x1;aC.height=aC.y2-aC.y1}function m(){if(!M.width()){return}ay={left:c(M.offset().left),top:c(M.offset().top)};S=M.innerWidth();aA=M.innerHeight();ay.top+=(M.outerHeight()-aA)>>1;ay.left+=(M.outerWidth()-S)>>1;q=ad.minWidth||0;al=ad.minHeight||0;k=d(ad.maxWidth||1<<24,S);x=d(ad.maxHeight||1<<24,aA);if(e().jquery=="1.3.2"&&ak=="fixed"&&!F.getBoundingClientRect){ay.top+=a(document.body.scrollTop,F.scrollTop);ay.left+=a(document.body.scrollLeft,F.scrollLeft)}V=e.inArray(p.css("position"),["absolute","relative"])+1?{left:c(p.offset().left)-p.scrollLeft(),top:c(p.offset().top)-p.scrollTop()}:ak=="fixed"?{left:e(document).scrollLeft(),top:e(document).scrollTop()}:{left:0,top:0};T=Y(0);ao=X(0);if(aC.x2>S||aC.y2>aA){aB()}}function J(h){if(!ah){return}B.css({left:Y(aC.x1),top:X(aC.y1)}).add(E).width(K=aC.width).height(P=aC.height);E.add(ap).add(ax).css({left:0,top:0});ap.width(a(K-ap.outerWidth()+ap.innerWidth(),0)).height(a(P-ap.outerHeight()+ap.innerHeight(),0));e(v[0]).css({left:T,top:ao,width:aC.x1,height:aA});e(v[1]).css({left:T+aC.x1,top:ao,width:K,height:aC.y1});e(v[2]).css({left:T+aC.x2,top:ao,width:S-aC.x2,height:aA});e(v[3]).css({left:T+aC.x1,top:ao+aC.y2,width:K,height:aA-aC.y2});K-=ax.outerWidth();P-=ax.outerHeight();switch(ax.length){case 8:e(ax[4]).css({left:K>>1});e(ax[5]).css({left:K,top:P>>1});e(ax[6]).css({left:K>>1,top:P});e(ax[7]).css({top:P>>1});case 4:ax.slice(1,3).css({left:K});ax.slice(2,4).css({top:P})}if(h!==false){if(e.imgAreaSelect.keyPress!=av){e(document).unbind(e.imgAreaSelect.keyPress,e.imgAreaSelect.onKeyPress)}if(ad.keys){e(document)[e.imgAreaSelect.keyPress](e.imgAreaSelect.onKeyPress=av)}}if(e.browser.msie&&ap.outerWidth()-ap.innerWidth()==2){ap.css("margin",0);setTimeout(function(){ap.css("margin","auto")},0)}}function y(h){m();J(h);D=Y(aC.x1);n=X(aC.y1);C=Y(aC.x2);l=X(aC.y2)}function ag(h,i){ad.fadeSpeed?h.fadeOut(ad.fadeSpeed,i):h.hide()}function H(i){var h=au(A(i))-aC.x1,o=at(z(i))-aC.y1;if(!I){m();I=true;B.one("mouseout",function(){I=false})}t="";if(ad.resizable){if(o<=ad.resizeMargin){t="n"}else{if(o>=aC.height-ad.resizeMargin){t="s"}}if(h<=ad.resizeMargin){t+="w"}else{if(h>=aC.width-ad.resizeMargin){t+="e"}}}B.css("cursor",t?t+"-resize":ad.movable?"move":"");if(aj){aj.toggle()}}function j(h){e("body").css("cursor","");if(ad.autoHide||aC.width*aC.height==0){ag(B.add(v),function(){e(this).hide()})}e(document).unbind("mousemove",ae);B.mousemove(H);ad.onSelectEnd(Q,ar())}function aw(h){if(h.which!=1){return false}m();if(t){e("body").css("cursor",t+"-resize");D=Y(aC[/w/.test(t)?"x2":"x1"]);n=X(aC[/n/.test(t)?"y2":"y1"]);e(document).mousemove(ae).one("mouseup",j);B.unbind("mousemove",H)}else{if(ad.movable){an=T+aC.x1-A(h);am=ao+aC.y1-z(h);B.unbind("mousemove",H);e(document).mousemove(ac).one("mouseup",function(){ad.onSelectEnd(Q,ar());e(document).unbind("mousemove",ac);B.mousemove(H)})}else{M.mousedown(h)}}return false}function L(h){if(aE){if(h){C=a(T,d(T+S,D+b(l-n)*aE*(C>D||-1)));l=c(a(ao,d(ao+aA,n+b(C-D)/aE*(l>n||-1))));C=c(C)}else{l=a(ao,d(ao+aA,n+b(C-D)/aE*(l>n||-1)));C=c(a(T,d(T+S,D+b(l-n)*aE*(C>D||-1))));l=c(l)}}}function aB(){D=d(D,T+S);n=d(n,ao+aA);if(b(C-D)<q){C=D-q*(C<D||-1);if(C<T){D=T+q}else{if(C>T+S){D=T+S-q}}}if(b(l-n)<al){l=n-al*(l<n||-1);if(l<ao){n=ao+al}else{if(l>ao+aA){n=ao+aA-al}}}C=a(T,d(C,T+S));l=a(ao,d(l,ao+aA));L(b(C-D)<b(l-n)*aE);if(b(C-D)>k){C=D-k*(C<D||-1);L()}if(b(l-n)>x){l=n-x*(l<n||-1);L(true)}aC={x1:au(d(D,C)),x2:au(a(D,C)),y1:at(d(n,l)),y2:at(a(n,l)),width:b(C-D),height:b(l-n)};J();ad.onSelectChange(Q,ar())}function ae(h){C=t==""||/w|e/.test(t)||aE?A(h):Y(aC.x2);l=t==""||/n|s/.test(t)||aE?z(h):X(aC.y2);aB();return false}function U(h,i){C=(D=h)+aC.width;l=(n=i)+aC.height;e.extend(aC,{x1:au(D),y1:at(n),x2:au(C),y2:at(l)});J();ad.onSelectChange(Q,ar())}function ac(h){D=a(T,d(an+A(h),T+S-aC.width));n=a(ao,d(am+z(h),ao+aA-aC.height));U(D,n);h.preventDefault();return false}function r(){e(document).unbind("mousemove",r);m();C=D;l=n;aB();t="";if(v.is(":not(:visible)")){B.add(v).hide().fadeIn(ad.fadeSpeed||0)}ah=true;e(document).unbind("mouseup",W).mousemove(ae).one("mouseup",j);B.unbind("mousemove",H);ad.onSelectStart(Q,ar())}function W(){e(document).unbind("mousemove",r).unbind("mouseup",W);ag(B.add(v));aq(au(D),at(n),au(D),at(n));ad.onSelectChange(Q,ar());ad.onSelectEnd(Q,ar())}function aD(h){if(h.which!=1||v.is(":animated")){return false}m();an=D=A(h);am=n=z(h);e(document).mousemove(r).mouseup(W);return false}function ai(){y(false)}function s(){u=true;af(ad=e.extend({classPrefix:"imgareaselect",movable:true,parent:"body",resizable:true,resizeMargin:10,onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},ad));B.add(v).css({visibility:""});if(ad.show){ah=true;m();J();B.add(v).hide().fadeIn(ad.fadeSpeed||0)}setTimeout(function(){ad.onInit(Q,ar())},0)}var av=function(w){var h=ad.keys,aF,o,i=w.keyCode;aF=!isNaN(h.alt)&&(w.altKey||w.originalEvent.altKey)?h.alt:!isNaN(h.ctrl)&&w.ctrlKey?h.ctrl:!isNaN(h.shift)&&w.shiftKey?h.shift:!isNaN(h.arrows)?h.arrows:10;if(h.arrows=="resize"||(h.shift=="resize"&&w.shiftKey)||(h.ctrl=="resize"&&w.ctrlKey)||(h.alt=="resize"&&(w.altKey||w.originalEvent.altKey))){switch(i){case 37:aF=-aF;case 39:o=a(D,C);D=d(D,C);C=a(o+aF,D);L();break;case 38:aF=-aF;case 40:o=a(n,l);n=d(n,l);l=a(o+aF,n);L(true);break;default:return}aB()}else{D=d(D,C);n=d(n,l);switch(i){case 37:U(a(D-aF,T),n);break;case 38:U(D,a(n-aF,ao));break;case 39:U(D+d(aF,S-au(C)),n);break;case 40:U(D,n+d(aF,aA-at(l)));break;default:return}}return false};function G(h,i){for(option in i){if(ad[option]!==undefined){h.css(i[option],ad[option])}}}function af(h){if(h.parent){(p=e(h.parent)).append(B.add(v))}e.extend(ad,h);m();if(h.handles!=null){ax.remove();ax=e([]);O=h.handles?h.handles=="corners"?4:8:0;while(O--){ax=ax.add(f())}ax.addClass(ad.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:g+1||1});if(!parseInt(ax.css("width"))>=0){ax.width(5).height(5)}if(N=ad.borderWidth){ax.css({borderWidth:N,borderStyle:"solid"})}G(ax,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}ab=ad.imageWidth/S||1;aa=ad.imageHeight/aA||1;if(h.x1!=null){aq(h.x1,h.y1,h.x2,h.y2);h.show=!h.hide}if(h.keys){ad.keys=e.extend({shift:1,ctrl:"resize"},h.keys)}v.addClass(ad.classPrefix+"-outer");E.addClass(ad.classPrefix+"-selection");for(O=0;O++<4;){e(ap[O-1]).addClass(ad.classPrefix+"-border"+O)}G(E,{selectionColor:"background-color",selectionOpacity:"opacity"});G(ap,{borderOpacity:"opacity",borderWidth:"border-width"});G(v,{outerColor:"background-color",outerOpacity:"opacity"});if(N=ad.borderColor1){e(ap[0]).css({borderStyle:"solid",borderColor:N})}if(N=ad.borderColor2){e(ap[1]).css({borderStyle:"dashed",borderColor:N})}B.append(E.add(ap).add(aj).add(ax));if(e.browser.msie){if(N=v.css("filter").match(/opacity=([0-9]+)/)){v.css("opacity",N[1]/100)}if(N=ap.css("filter").match(/opacity=([0-9]+)/)){ap.css("opacity",N[1]/100)}}if(h.hide){ag(B.add(v))}else{if(h.show&&u){ah=true;B.add(v).fadeIn(ad.fadeSpeed||0);y()}}aE=(R=(ad.aspectRatio||"").split(/:/))[0]/R[1];M.add(v).unbind("mousedown",aD);if(ad.disable||ad.enable===false){B.unbind("mousemove",H).unbind("mousedown",aw);e(window).unbind("resize",ai)}else{if(ad.enable||ad.disable===false){if(ad.resizable||ad.movable){B.mousemove(H).mousedown(aw)}e(window).resize(ai)}if(!ad.persistent){M.add(v).mousedown(aD)}}ad.enable=ad.disable=undefined}this.remove=function(){af({disable:true});B.add(v).remove()};this.getOptions=function(){return ad};this.setOptions=af;this.getSelection=ar;this.setSelection=aq;this.update=y;Z=M;while(Z.length){g=a(g,!isNaN(Z.css("z-index"))?Z.css("z-index"):g);if(Z.css("position")=="fixed"){ak="fixed"}Z=Z.parent(":not(body)")}g=ad.zIndex||g;if(e.browser.msie){M.attr("unselectable","on")}e.imgAreaSelect.keyPress=e.browser.msie||e.browser.safari?"keydown":"keypress";if(e.browser.opera){aj=f().css({width:"100%",height:"100%",position:"absolute",zIndex:g+2||2})}B.add(v).css({visibility:"hidden",position:ak,overflow:"hidden",zIndex:g||"0"});B.css({zIndex:g+2||2});E.add(ap).css({position:"absolute",fontSize:0});Q.complete||Q.readyState=="complete"||!M.is("img")?s():M.one("load",s);if(e.browser.msie&&e.browser.version>=9){Q.src=Q.src}};e.fn.imgAreaSelect=function(g){g=g||{};this.each(function(){if(e(this).data("imgAreaSelect")){if(g.remove){e(this).data("imgAreaSelect").remove();e(this).removeData("imgAreaSelect")}else{e(this).data("imgAreaSelect").setOptions(g)}}else{if(!g.remove){if(g.enable===undefined&&g.disable===undefined){g.enable=true}e(this).data("imgAreaSelect",new e.imgAreaSelect(this,g))}}});if(g.instance){return e(this).data("imgAreaSelect")}return this}})(jQuery); 
  • trunk/wp-includes/script-loader.php

    r17932 r17934  
    251251    $scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", false, '2011-02-23'); 
    252252 
    253     $scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.1-20110113' ); 
     253    $scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.6-20110515' ); 
    254254    $scripts->add_data( 'imgareaselect', 'group', 1 ); 
    255255 
Note: See TracChangeset for help on using the changeset viewer.