Вход Регистрация
Файл: Main Website Files/assets/bower_components/jquery/src/css.js
Строк: 439
<?php
define
([
    
"./core",
    
"./var/pnum",
    
"./core/access",
    
"./css/var/rmargin",
    
"./css/var/rnumnonpx",
    
"./css/var/cssExpand",
    
"./css/var/isHidden",
    
"./css/var/getStyles",
    
"./css/curCSS",
    
"./css/defaultDisplay",
    
"./css/addGetHookIf",
    
"./css/support",
    
"./data/var/data_priv",

    
"./core/init",
    
"./css/swap",
    
"./core/ready",
    
"./selector" // contains
], function( jQuerypnumaccessrmarginrnumnonpxcssExpandisHidden,
    
getStylescurCSSdefaultDisplayaddGetHookIfsupportdata_priv ) {

var
    
// Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
    // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
    
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
    
rnumsplit = new RegExp"^(" pnum ")(.*)$""i" ),
    
rrelNum = new RegExp"^([+-])=(" pnum ")""i" ),

    
cssShow = { position"absolute"visibility"hidden"display"block" },
    
cssNormalTransform = {
        
letterSpacing"0",
        
fontWeight"400"
    
},

    
cssPrefixes = [ "Webkit""O""Moz""ms" ];

// Return a css property mapped to a potentially vendor prefixed property
function vendorPropNamestylename ) {

    
// Shortcut for names that are not vendor prefixed
    
if ( name in style ) {
        return 
name;
    }

    
// Check for vendor prefixed names
    
var capName name[0].toUpperCase() + name.slice(1),
        
origName name,
        
cssPrefixes.length;

    while ( 
i-- ) {
        
name cssPrefixes] + capName;
        if ( 
name in style ) {
            return 
name;
        }
    }

    return 
origName;
}

function 
setPositiveNumberelemvaluesubtract ) {
    var 
matches rnumsplit.execvalue );
    return 
matches ?
        
// Guard against undefined "subtract", e.g., when used as in cssHooks
        
Math.max0matches] - ( subtract || ) ) + ( matches] || "px" ) :
        
value;
}

function 
augmentWidthOrHeightelemnameextraisBorderBoxstyles ) {
    var 
extra === ( isBorderBox "border" "content" ) ?
        
// If we already have the right measurement, avoid augmentation
        
:
        
// Otherwise initialize for horizontal or vertical properties
        
name === "width" 0,

        
val 0;

    for ( ; 
4+= ) {
        
// Both box models exclude margin, so add it if we want it
        
if ( extra === "margin" ) {
            
val += jQuery.csselemextra cssExpand], truestyles );
        }

        if ( 
isBorderBox ) {
            
// border-box includes padding, so remove it if we want content
            
if ( extra === "content" ) {
                
val -= jQuery.csselem"padding" cssExpand], truestyles );
            }

            
// At this point, extra isn't border nor margin, so remove border
            
if ( extra !== "margin" ) {
                
val -= jQuery.csselem"border" cssExpand] + "Width"truestyles );
            }
        } else {
            
// At this point, extra isn't content, so add padding
            
val += jQuery.csselem"padding" cssExpand], truestyles );

            
// At this point, extra isn't content nor padding, so add border
            
if ( extra !== "padding" ) {
                
val += jQuery.csselem"border" cssExpand] + "Width"truestyles );
            }
        }
    }

    return 
val;
}

function 
getWidthOrHeightelemnameextra ) {

    
// Start with offset property, which is equivalent to the border-box value
    
var valueIsBorderBox true,
        
val name === "width" elem.offsetWidth elem.offsetHeight,
        
styles getStyleselem ),
        
isBorderBox jQuery.csselem"boxSizing"falsestyles ) === "border-box";

    
// Some non-html elements return undefined for offsetWidth, so check for null/undefined
    // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
    // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
    
if ( val <= || val == null ) {
        
// Fall back to computed then uncomputed css if necessary
        
val curCSSelemnamestyles );
        if ( 
val || val == null ) {
            
val elem.stylename ];
        }

        
// Computed unit is not pixels. Stop here and return.
        
if ( rnumnonpx.test(val) ) {
            return 
val;
        }

        
// Check for style in case a browser which returns unreliable values
        // for getComputedStyle silently falls back to the reliable elem.style
        
valueIsBorderBox isBorderBox &&
            ( 
support.boxSizingReliable() || val === elem.stylename ] );

        
// Normalize "", auto, and prepare for extra
        
val parseFloatval ) || 0;
    }

    
// Use the active box-sizing model to add/subtract irrelevant styles
    
return ( val +
        
augmentWidthOrHeight(
            
elem,
            
name,
            
extra || ( isBorderBox "border" "content" ),
            
valueIsBorderBox,
            
styles
        
)
    ) + 
"px";
}

function 
showHideelementsshow ) {
    var 
displayelemhidden,
        
values = [],
        
index 0,
        
length elements.length;

    for ( ; 
index lengthindex++ ) {
        
elem elementsindex ];
        if ( !
elem.style ) {
            continue;
        }

        
valuesindex ] = data_priv.getelem"olddisplay" );
        
display elem.style.display;
        if ( 
show ) {
            
// Reset the inline display of this element to learn if it is
            // being hidden by cascaded rules or not
            
if ( !valuesindex ] && display === "none" ) {
                
elem.style.display "";
            }

            
// Set elements which have been overridden with display: none
            // in a stylesheet to whatever the default browser style is
            // for such an element
            
if ( elem.style.display === "" && isHiddenelem ) ) {
                
valuesindex ] = data_priv.accesselem"olddisplay"defaultDisplay(elem.nodeName) );
            }
        } else {
            
hidden isHiddenelem );

            if ( 
display !== "none" || !hidden ) {
                
data_priv.setelem"olddisplay"hidden display jQuery.csselem"display" ) );
            }
        }
    }

    
// Set the display of most of the elements in a second loop
    // to avoid the constant reflow
    
for ( index 0index lengthindex++ ) {
        
elem elementsindex ];
        if ( !
elem.style ) {
            continue;
        }
        if ( !
show || elem.style.display === "none" || elem.style.display === "" ) {
            
elem.style.display show valuesindex ] || "" "none";
        }
    }

    return 
elements;
}

jQuery.extend({

    
// Add in style property hooks for overriding the default
    // behavior of getting and setting a style property
    
cssHooks: {
        
opacity: {
            
get: function( elemcomputed ) {
                if ( 
computed ) {

                    
// We should always get a number back from opacity
                    
var ret curCSSelem"opacity" );
                    return 
ret === "" "1" ret;
                }
            }
        }
    },

    
// Don't automatically add "px" to these possibly-unitless properties
    
cssNumber: {
        
"columnCount"true,
        
"fillOpacity"true,
        
"flexGrow"true,
        
"flexShrink"true,
        
"fontWeight"true,
        
"lineHeight"true,
        
"opacity"true,
        
"order"true,
        
"orphans"true,
        
"widows"true,
        
"zIndex"true,
        
"zoom"true
    
},

    
// Add in properties whose names you wish to fix before
    // setting or getting the value
    
cssProps: {
        
"float""cssFloat"
    
},

    
// Get and set the style property on a DOM Node
    
style: function( elemnamevalueextra ) {

        
// Don't set styles on text and comment nodes
        
if ( !elem || elem.nodeType === || elem.nodeType === || !elem.style ) {
            return;
        }

        
// Make sure that we're working with the right name
        
var rettypehooks,
            
origName jQuery.camelCasename ),
            
style elem.style;

        
name jQuery.cssPropsorigName ] || ( jQuery.cssPropsorigName ] = vendorPropNamestyleorigName ) );

        
// Gets hook for the prefixed version, then unprefixed version
        
hooks jQuery.cssHooksname ] || jQuery.cssHooksorigName ];

        
// Check if we're setting a value
        
if ( value !== undefined ) {
            
type typeof value;

            
// Convert "+=" or "-=" to relative numbers (#7345)
            
if ( type === "string" && (ret rrelNum.execvalue )) ) {
                
value = ( ret[1] + ) * ret[2] + parseFloatjQuery.csselemname ) );
                
// Fixes bug #9237
                
type "number";
            }

            
// Make sure that null and NaN values aren't set (#7116)
            
if ( value == null || value !== value ) {
                return;
            }

            
// If a number, add 'px' to the (except for certain CSS properties)
            
if ( type === "number" && !jQuery.cssNumberorigName ] ) {
                
value += "px";
            }

            
// Support: IE9-11+
            // background-* props affect original clone's values
            
if ( !support.clearCloneStyle && value === "" && name.indexOf"background" ) === ) {
                
stylename ] = "inherit";
            }

            
// If a hook was provided, use that value, otherwise just set the specified value
            
if ( !hooks || !("set" in hooks) || (value hooks.setelemvalueextra )) !== undefined ) {
                
stylename ] = value;
            }

        } else {
            
// If a hook was provided get the non-computed value from there
            
if ( hooks && "get" in hooks && (ret hooks.getelemfalseextra )) !== undefined ) {
                return 
ret;
            }

            
// Otherwise just get the value from the style object
            
return stylename ];
        }
    },

    
css: function( elemnameextrastyles ) {
        var 
valnumhooks,
            
origName jQuery.camelCasename );

        
// Make sure that we're working with the right name
        
name jQuery.cssPropsorigName ] || ( jQuery.cssPropsorigName ] = vendorPropNameelem.styleorigName ) );

        
// Try prefixed name followed by the unprefixed name
        
hooks jQuery.cssHooksname ] || jQuery.cssHooksorigName ];

        
// If a hook was provided get the computed value from there
        
if ( hooks && "get" in hooks ) {
            
val hooks.getelemtrueextra );
        }

        
// Otherwise, if a way to get the computed value exists, use that
        
if ( val === undefined ) {
            
val curCSSelemnamestyles );
        }

        
// Convert "normal" to computed value
        
if ( val === "normal" && name in cssNormalTransform ) {
            
val cssNormalTransformname ];
        }

        
// Make numeric if forced or a qualifier was provided and val looks numeric
        
if ( extra === "" || extra ) {
            
num parseFloatval );
            return 
extra === true || jQuery.isNumericnum ) ? num || val;
        }
        return 
val;
    }
});

jQuery.each([ "height""width" ], function( iname ) {
    
jQuery.cssHooksname ] = {
        
get: function( elemcomputedextra ) {
            if ( 
computed ) {

                
// Certain elements can have dimension info if we invisibly show them
                // but it must have a current display style that would benefit
                
return rdisplayswap.testjQuery.csselem"display" ) ) && elem.offsetWidth === ?
                    
jQuery.swapelemcssShow, function() {
                        return 
getWidthOrHeightelemnameextra );
                    }) :
                    
getWidthOrHeightelemnameextra );
            }
        },

        
set: function( elemvalueextra ) {
            var 
styles extra && getStyleselem );
            return 
setPositiveNumberelemvalueextra ?
                
augmentWidthOrHeight(
                    
elem,
                    
name,
                    
extra,
                    
jQuery.csselem"boxSizing"falsestyles ) === "border-box",
                    
styles
                
) : 0
            
);
        }
    };
});

// Support: Android 2.3
jQuery.cssHooks.marginRight addGetHookIfsupport.reliableMarginRight,
    function( 
elemcomputed ) {
        if ( 
computed ) {
            return 
jQuery.swapelem, { "display""inline-block" },
                
curCSS, [ elem"marginRight" ] );
        }
    }
);

// These hooks are used by animate to expand properties
jQuery.each({
    
margin"",
    
padding"",
    
border"Width"
}, function( prefixsuffix ) {
    
jQuery.cssHooksprefix suffix ] = {
        
expand: function( value ) {
            var 
0,
                
expanded = {},

                
// Assumes a single number if not a string
                
parts typeof value === "string" value.split(" ") : [ value ];

            for ( ; 
4i++ ) {
                
expandedprefix cssExpand] + suffix ] =
                    
parts] || parts] || parts];
            }

            return 
expanded;
        }
    };

    if ( !
rmargin.testprefix ) ) {
        
jQuery.cssHooksprefix suffix ].set setPositiveNumber;
    }
});

jQuery.fn.extend({
    
css: function( namevalue ) {
        return 
accessthis, function( elemnamevalue ) {
            var 
styleslen,
                
map = {},
                
0;

            if ( 
jQuery.isArrayname ) ) {
                
styles getStyleselem );
                
len name.length;

                for ( ; 
leni++ ) {
                    
mapname] ] = jQuery.csselemname], falsestyles );
                }

                return 
map;
            }

            return 
value !== undefined ?
                
jQuery.styleelemnamevalue ) :
                
jQuery.csselemname );
        }, 
namevaluearguments.length );
    },
    
show: function() {
        return 
showHidethistrue );
    },
    
hide: function() {
        return 
showHidethis );
    },
    
toggle: function( state ) {
        if ( 
typeof state === "boolean" ) {
            return 
state this.show() : this.hide();
        }

        return 
this.each(function() {
            if ( 
isHiddenthis ) ) {
                
jQuerythis ).show();
            } else {
                
jQuerythis ).hide();
            }
        });
    }
});

return 
jQuery;
});
?>
Онлайн: 1
Реклама