From d24f353e3342f51cb068b504633e40ace3f5255d Mon Sep 17 00:00:00 2001 From: chiu Date: Mon, 17 Feb 2020 22:34:25 +0800 Subject: [PATCH] change jquery ui theme --- .../ui-bg_diagonals-small_40_db4865_40x40.png | Bin 0 -> 332 bytes .../ui-bg_diagonals-small_50_93c3cd_40x40.png | Bin 0 -> 333 bytes .../ui-bg_diagonals-small_50_ff3853_40x40.png | Bin 0 -> 330 bytes .../ui-bg_diagonals-small_75_ccd232_40x40.png | Bin 0 -> 333 bytes .../ui-bg_dots-medium_80_ffff38_4x4.png | Bin 0 -> 225 bytes .../images/ui-bg_dots-small_35_35414f_2x2.png | Bin 0 -> 223 bytes .../ui-bg_white-lines_85_f7f7ba_40x100.png | Bin 0 -> 364 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_88a206_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_c02669_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_e1e463_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_ffeb33_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_ffffff_256x240.png | Bin 6313 -> 6299 bytes .../jquery-ui-1.12.1/jquery-ui.css | 283 +- .../jquery-ui-1.12.1/jquery-ui.js | 15186 ++++++++-------- .../jquery-ui-1.12.1/jquery-ui.min.css | 8 +- .../jquery-ui-1.12.1/jquery-ui.min.js | 20 +- .../jquery-ui-1.12.1/jquery-ui.structure.css | 174 +- .../jquery-ui.structure.min.css | 4 +- .../jquery-ui-1.12.1/jquery-ui.theme.css | 104 +- .../jquery-ui-1.12.1/jquery-ui.theme.min.css | 4 +- 21 files changed, 7891 insertions(+), 7892 deletions(-) create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_40_db4865_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_50_93c3cd_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_50_ff3853_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_75_ccd232_40x40.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-medium_80_ffff38_4x4.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-small_35_35414f_2x2.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_white-lines_85_f7f7ba_40x100.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_454545_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_88a206_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_c02669_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_e1e463_256x240.png create mode 100644 updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_ffeb33_256x240.png diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_40_db4865_40x40.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_40_db4865_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..e3108d60ac1b9505716746434767b25fa90e2dfd GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)Mwj^(Nm;YeE8S(uNP=vFK;P&HD&Yq9>8ZdPznd&u`Tvpaf8B+TAzK{K zS*j(j5hW>!C8<`)MX5lF!N|bKK-a)X*U&t~z|hLn2#B-|46F?p=ij>PsvQH V#I1oPF%aZ&22WQ%mvv4FO#ouPa%BJj literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_50_ff3853_40x40.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_50_ff3853_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..b0fa0b6f5fce10f1f55c974cf94784d7217ad843 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)Mwj^(Nm;YeE8S(uNP=vFjn(FX-zgi365tk2l*e73Lh zw8YkJVwZDM-wGZtefR(NWp&rh%l|#yUj1uH#){^IY2OC7#SED=o%R58k&a~7+RSc0g<+Wft7(lsm;qK6b-rgDVb@N VxHYgO27-Le;OXk;vd$@?2>=h6b>08~ literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_75_ccd232_40x40.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_diagonals-small_75_ccd232_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..b788c8857ad53fd4adc6808bbd52bb1ed4147d73 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)Mwj^(Nm;YeE8S(uNP=vF{6 z)1rMpdu8vvZnekkY_iVl%9!u_{=Vn;^ExL#XUZIV3r)-Viw1guho!D literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-medium_80_ffff38_4x4.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-medium_80_ffff38_4x4.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e0a07d4818a58d23c917686ec5cdadedd0c657 GIT binary patch literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^EFdhv1SHFtuVw)$wj^(Nm;YeE8S(uNP=vFgTe~DWM4f2?srG literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-small_35_35414f_2x2.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_dots-small_35_35414f_2x2.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a7d4cc377a59247ed680db7db4ea4565ceee4d GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^Odu=(BG0nT|@H_14AoQBOuZ?Ft9Q(D7AUngrXrgKP5A*61N7H#6XZ! O7(8A5T-G@yGywoaBRrA- literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_white-lines_85_f7f7ba_40x100.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-bg_white-lines_85_f7f7ba_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..bcaa78022bf4226964bd9a28df213bb35edb48f3 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^8bF*Pzyu_>+sSM@AY+xMi(^Q|t+$s9c^eEE7#zK{SpF+3$6dH6Dn7xcoU87~#%od6xBfl$ zuk^s}XEx6(@5HC?Nsq8Pcd2yRy3HkXm%i4CO@C?SeLZp)O@;pEy=0Hw#HzSu>Iz$+ zt5r)}BT7;dOH!?pi&B9UgOP!efv$m(uAzB|fuWVD5fEt`7+4t?l-j&(LeY?$pOTqY WiCY6pVjw777(8A5T-G@yGywo3E01OX literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_454545_256x240.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd5e51ab88eb10009855a388bd6c799cfa3e800 GIT binary patch literal 6992 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 literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_88a206_256x240.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_88a206_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..acbae29ae63abd3e591bc049ed8cfc08b044de2e GIT binary patch literal 4549 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 Ri^};XfG*NdyGj!i`5$NPP#^#R literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_e1e463_256x240.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_e1e463_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..506f2fc4d520b6cfb309d471b49c3915f19905bc GIT binary patch literal 4549 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 Ri^};XfG*NdyHXPq@gG@soXY?J literal 0 HcmV?d00001 diff --git a/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_ffeb33_256x240.png b/updatefiles/accessibility/jquery-ui-1.12.1/images/ui-icons_ffeb33_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..de7075ece4540e48ed12718c854a1dd1dadfd85b GIT binary patch literal 4549 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: Effects Core -//>>group: Effects -// jscs:disable maximumLineLength -//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. -// jscs:enable maximumLineLength -//>>docs: http://api.jqueryui.com/category/effects-core/ -//>>demos: http://jqueryui.com/effect/ - - - -var dataSpace = "ui-effects-", - dataSpaceStyle = "ui-effects-style", - dataSpaceAnimated = "ui-effects-animated", - - // Create a local jQuery because jQuery Color relies on it and the - // global may not exist with AMD and a custom build (#10199) - jQuery = $; - -$.effects = { - effect: {} -}; - -/*! - * jQuery Color Animations v2.1.2 - * https://github.com/jquery/jquery-color - * - * Copyright 2014 jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * Date: Wed Jan 16 08:47:09 2013 -0600 - */ -( function( jQuery, undefined ) { - - var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " + - "borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", - - // Plusequals test for += 100 -= 100 - rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - - // A set of RE's that can match strings and generate color tuples. - stringParsers = [ { - re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ], - execResult[ 3 ], - execResult[ 4 ] - ]; - } - }, { - re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - parse: function( execResult ) { - return [ - execResult[ 1 ] * 2.55, - execResult[ 2 ] * 2.55, - execResult[ 3 ] * 2.55, - execResult[ 4 ] - ]; - } - }, { - - // This regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ], 16 ) - ]; - } - }, { - - // This regex ignores A-F because it's compared against an already lowercased string - re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, - parse: function( execResult ) { - return [ - parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), - parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), - parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) - ]; - } - }, { - re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, - space: "hsla", - parse: function( execResult ) { - return [ - execResult[ 1 ], - execResult[ 2 ] / 100, - execResult[ 3 ] / 100, - execResult[ 4 ] - ]; - } - } ], - - // JQuery.Color( ) - color = jQuery.Color = function( color, green, blue, alpha ) { - return new jQuery.Color.fn.parse( color, green, blue, alpha ); - }, - spaces = { - rgba: { - props: { - red: { - idx: 0, - type: "byte" - }, - green: { - idx: 1, - type: "byte" - }, - blue: { - idx: 2, - type: "byte" - } - } - }, - - hsla: { - props: { - hue: { - idx: 0, - type: "degrees" - }, - saturation: { - idx: 1, - type: "percent" - }, - lightness: { - idx: 2, - type: "percent" - } - } - } - }, - propTypes = { - "byte": { - floor: true, - max: 255 - }, - "percent": { - max: 1 - }, - "degrees": { - mod: 360, - floor: true - } - }, - support = color.support = {}, - - // Element for support tests - supportElem = jQuery( "

" )[ 0 ], - - // Colors = jQuery.Color.names - colors, - - // Local aliases of functions called often - each = jQuery.each; - -// Determine rgba support immediately -supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; -support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; - -// Define cache name and alpha properties -// for rgba and hsla spaces -each( spaces, function( spaceName, space ) { - space.cache = "_" + spaceName; - space.props.alpha = { - idx: 3, - type: "percent", - def: 1 - }; -} ); - -function clamp( value, prop, allowEmpty ) { - var type = propTypes[ prop.type ] || {}; - - if ( value == null ) { - return ( allowEmpty || !prop.def ) ? null : prop.def; - } - - // ~~ is an short way of doing floor for positive numbers - value = type.floor ? ~~value : parseFloat( value ); - - // IE will pass in empty strings as value for alpha, - // which will hit this case - if ( isNaN( value ) ) { - return prop.def; - } - - if ( type.mod ) { - - // We add mod before modding to make sure that negatives values - // get converted properly: -10 -> 350 - return ( value + type.mod ) % type.mod; - } - - // For now all property types without mod have min and max - return 0 > value ? 0 : type.max < value ? type.max : value; -} - -function stringParse( string ) { - var inst = color(), - rgba = inst._rgba = []; - - string = string.toLowerCase(); - - each( stringParsers, function( i, parser ) { - var parsed, - match = parser.re.exec( string ), - values = match && parser.parse( match ), - spaceName = parser.space || "rgba"; - - if ( values ) { - parsed = inst[ spaceName ]( values ); - - // If this was an rgba parse the assignment might happen twice - // oh well.... - inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; - rgba = inst._rgba = parsed._rgba; - - // Exit each( stringParsers ) here because we matched - return false; - } - } ); - - // Found a stringParser that handled it - if ( rgba.length ) { - - // If this came from a parsed string, force "transparent" when alpha is 0 - // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) - if ( rgba.join() === "0,0,0,0" ) { - jQuery.extend( rgba, colors.transparent ); - } - return inst; - } - - // Named colors - return colors[ string ]; -} - -color.fn = jQuery.extend( color.prototype, { - parse: function( red, green, blue, alpha ) { - if ( red === undefined ) { - this._rgba = [ null, null, null, null ]; - return this; - } - if ( red.jquery || red.nodeType ) { - red = jQuery( red ).css( green ); - green = undefined; - } - - var inst = this, - type = jQuery.type( red ), - rgba = this._rgba = []; - - // More than 1 argument specified - assume ( red, green, blue, alpha ) - if ( green !== undefined ) { - red = [ red, green, blue, alpha ]; - type = "array"; - } - - if ( type === "string" ) { - return this.parse( stringParse( red ) || colors._default ); - } - - if ( type === "array" ) { - each( spaces.rgba.props, function( key, prop ) { - rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); - } ); - return this; - } - - if ( type === "object" ) { - if ( red instanceof color ) { - each( spaces, function( spaceName, space ) { - if ( red[ space.cache ] ) { - inst[ space.cache ] = red[ space.cache ].slice(); - } - } ); - } else { - each( spaces, function( spaceName, space ) { - var cache = space.cache; - each( space.props, function( key, prop ) { - - // If the cache doesn't exist, and we know how to convert - if ( !inst[ cache ] && space.to ) { - - // If the value was null, we don't need to copy it - // if the key was alpha, we don't need to copy it either - if ( key === "alpha" || red[ key ] == null ) { - return; - } - inst[ cache ] = space.to( inst._rgba ); - } - - // This is the only case where we allow nulls for ALL properties. - // call clamp with alwaysAllowEmpty - inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); - } ); - - // Everything defined but alpha? - if ( inst[ cache ] && - jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { - - // Use the default of 1 - inst[ cache ][ 3 ] = 1; - if ( space.from ) { - inst._rgba = space.from( inst[ cache ] ); - } - } - } ); - } - return this; - } - }, - is: function( compare ) { - var is = color( compare ), - same = true, - inst = this; - - each( spaces, function( _, space ) { - var localCache, - isCache = is[ space.cache ]; - if ( isCache ) { - localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; - each( space.props, function( _, prop ) { - if ( isCache[ prop.idx ] != null ) { - same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); - return same; - } - } ); - } - return same; - } ); - return same; - }, - _space: function() { - var used = [], - inst = this; - each( spaces, function( spaceName, space ) { - if ( inst[ space.cache ] ) { - used.push( spaceName ); - } - } ); - return used.pop(); - }, - transition: function( other, distance ) { - var end = color( other ), - spaceName = end._space(), - space = spaces[ spaceName ], - startColor = this.alpha() === 0 ? color( "transparent" ) : this, - start = startColor[ space.cache ] || space.to( startColor._rgba ), - result = start.slice(); - - end = end[ space.cache ]; - each( space.props, function( key, prop ) { - var index = prop.idx, - startValue = start[ index ], - endValue = end[ index ], - type = propTypes[ prop.type ] || {}; - - // If null, don't override start value - if ( endValue === null ) { - return; - } - - // If null - use end - if ( startValue === null ) { - result[ index ] = endValue; - } else { - if ( type.mod ) { - if ( endValue - startValue > type.mod / 2 ) { - startValue += type.mod; - } else if ( startValue - endValue > type.mod / 2 ) { - startValue -= type.mod; - } - } - result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); - } - } ); - return this[ spaceName ]( result ); - }, - blend: function( opaque ) { - - // If we are already opaque - return ourself - if ( this._rgba[ 3 ] === 1 ) { - return this; - } - - var rgb = this._rgba.slice(), - a = rgb.pop(), - blend = color( opaque )._rgba; - - return color( jQuery.map( rgb, function( v, i ) { - return ( 1 - a ) * blend[ i ] + a * v; - } ) ); - }, - toRgbaString: function() { - var prefix = "rgba(", - rgba = jQuery.map( this._rgba, function( v, i ) { - return v == null ? ( i > 2 ? 1 : 0 ) : v; - } ); - - if ( rgba[ 3 ] === 1 ) { - rgba.pop(); - prefix = "rgb("; - } - - return prefix + rgba.join() + ")"; - }, - toHslaString: function() { - var prefix = "hsla(", - hsla = jQuery.map( this.hsla(), function( v, i ) { - if ( v == null ) { - v = i > 2 ? 1 : 0; - } - - // Catch 1 and 2 - if ( i && i < 3 ) { - v = Math.round( v * 100 ) + "%"; - } - return v; - } ); - - if ( hsla[ 3 ] === 1 ) { - hsla.pop(); - prefix = "hsl("; - } - return prefix + hsla.join() + ")"; - }, - toHexString: function( includeAlpha ) { - var rgba = this._rgba.slice(), - alpha = rgba.pop(); - - if ( includeAlpha ) { - rgba.push( ~~( alpha * 255 ) ); - } - - return "#" + jQuery.map( rgba, function( v ) { - - // Default to 0 when nulls exist - v = ( v || 0 ).toString( 16 ); - return v.length === 1 ? "0" + v : v; - } ).join( "" ); - }, - toString: function() { - return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); - } -} ); -color.fn.parse.prototype = color.fn; - -// Hsla conversions adapted from: -// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 - -function hue2rgb( p, q, h ) { - h = ( h + 1 ) % 1; - if ( h * 6 < 1 ) { - return p + ( q - p ) * h * 6; - } - if ( h * 2 < 1 ) { - return q; - } - if ( h * 3 < 2 ) { - return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6; - } - return p; -} - -spaces.hsla.to = function( rgba ) { - if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { - return [ null, null, null, rgba[ 3 ] ]; - } - var r = rgba[ 0 ] / 255, - g = rgba[ 1 ] / 255, - b = rgba[ 2 ] / 255, - a = rgba[ 3 ], - max = Math.max( r, g, b ), - min = Math.min( r, g, b ), - diff = max - min, - add = max + min, - l = add * 0.5, - h, s; - - if ( min === max ) { - h = 0; - } else if ( r === max ) { - h = ( 60 * ( g - b ) / diff ) + 360; - } else if ( g === max ) { - h = ( 60 * ( b - r ) / diff ) + 120; - } else { - h = ( 60 * ( r - g ) / diff ) + 240; - } - - // Chroma (diff) == 0 means greyscale which, by definition, saturation = 0% - // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) - if ( diff === 0 ) { - s = 0; - } else if ( l <= 0.5 ) { - s = diff / add; - } else { - s = diff / ( 2 - add ); - } - return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ]; -}; - -spaces.hsla.from = function( hsla ) { - if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { - return [ null, null, null, hsla[ 3 ] ]; - } - var h = hsla[ 0 ] / 360, - s = hsla[ 1 ], - l = hsla[ 2 ], - a = hsla[ 3 ], - q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, - p = 2 * l - q; - - return [ - Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), - Math.round( hue2rgb( p, q, h ) * 255 ), - Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), - a - ]; -}; - -each( spaces, function( spaceName, space ) { - var props = space.props, - cache = space.cache, - to = space.to, - from = space.from; - - // Makes rgba() and hsla() - color.fn[ spaceName ] = function( value ) { - - // Generate a cache for this space if it doesn't exist - if ( to && !this[ cache ] ) { - this[ cache ] = to( this._rgba ); - } - if ( value === undefined ) { - return this[ cache ].slice(); - } - - var ret, - type = jQuery.type( value ), - arr = ( type === "array" || type === "object" ) ? value : arguments, - local = this[ cache ].slice(); - - each( props, function( key, prop ) { - var val = arr[ type === "object" ? key : prop.idx ]; - if ( val == null ) { - val = local[ prop.idx ]; - } - local[ prop.idx ] = clamp( val, prop ); - } ); - - if ( from ) { - ret = color( from( local ) ); - ret[ cache ] = local; - return ret; - } else { - return color( local ); - } - }; - - // Makes red() green() blue() alpha() hue() saturation() lightness() - each( props, function( key, prop ) { - - // Alpha is included in more than one space - if ( color.fn[ key ] ) { - return; - } - color.fn[ key ] = function( value ) { - var vtype = jQuery.type( value ), - fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), - local = this[ fn ](), - cur = local[ prop.idx ], - match; - - if ( vtype === "undefined" ) { - return cur; - } - - if ( vtype === "function" ) { - value = value.call( this, cur ); - vtype = jQuery.type( value ); - } - if ( value == null && prop.empty ) { - return this; - } - if ( vtype === "string" ) { - match = rplusequals.exec( value ); - if ( match ) { - value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); - } - } - local[ prop.idx ] = value; - return this[ fn ]( local ); - }; - } ); -} ); - -// Add cssHook and .fx.step function for each named hook. -// accept a space separated string of properties -color.hook = function( hook ) { - var hooks = hook.split( " " ); - each( hooks, function( i, hook ) { - jQuery.cssHooks[ hook ] = { - set: function( elem, value ) { - var parsed, curElem, - backgroundColor = ""; - - if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || - ( parsed = stringParse( value ) ) ) ) { - value = color( parsed || value ); - if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { - curElem = hook === "backgroundColor" ? elem.parentNode : elem; - while ( - ( backgroundColor === "" || backgroundColor === "transparent" ) && - curElem && curElem.style - ) { - try { - backgroundColor = jQuery.css( curElem, "backgroundColor" ); - curElem = curElem.parentNode; - } catch ( e ) { - } - } - - value = value.blend( backgroundColor && backgroundColor !== "transparent" ? - backgroundColor : - "_default" ); - } - - value = value.toRgbaString(); - } - try { - elem.style[ hook ] = value; - } catch ( e ) { - - // Wrapped to prevent IE from throwing errors on "invalid" values like - // 'auto' or 'inherit' - } - } - }; - jQuery.fx.step[ hook ] = function( fx ) { - if ( !fx.colorInit ) { - fx.start = color( fx.elem, hook ); - fx.end = color( fx.end ); - fx.colorInit = true; - } - jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); - }; - } ); - -}; - -color.hook( stepHooks ); - -jQuery.cssHooks.borderColor = { - expand: function( value ) { - var expanded = {}; - - each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { - expanded[ "border" + part + "Color" ] = value; - } ); - return expanded; - } -}; - -// Basic color names only. -// Usage of any of the other color names requires adding yourself or including -// jquery.color.svg-names.js. -colors = jQuery.Color.names = { - - // 4.1. Basic color keywords - aqua: "#00ffff", - black: "#000000", - blue: "#0000ff", - fuchsia: "#ff00ff", - gray: "#808080", - green: "#008000", - lime: "#00ff00", - maroon: "#800000", - navy: "#000080", - olive: "#808000", - purple: "#800080", - red: "#ff0000", - silver: "#c0c0c0", - teal: "#008080", - white: "#ffffff", - yellow: "#ffff00", - - // 4.2.3. "transparent" color keyword - transparent: [ null, null, null, 0 ], - - _default: "#ffffff" -}; - -} )( jQuery ); - -/******************************************************************************/ -/****************************** CLASS ANIMATIONS ******************************/ -/******************************************************************************/ -( function() { - -var classAnimationActions = [ "add", "remove", "toggle" ], - shorthandStyles = { - border: 1, - borderBottom: 1, - borderColor: 1, - borderLeft: 1, - borderRight: 1, - borderTop: 1, - borderWidth: 1, - margin: 1, - padding: 1 - }; - -$.each( - [ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], - function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; - } -); - -function getElementStyles( elem ) { - var key, len, - style = elem.ownerDocument.defaultView ? - elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : - elem.currentStyle, - styles = {}; - - if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { - len = style.length; - while ( len-- ) { - key = style[ len ]; - if ( typeof style[ key ] === "string" ) { - styles[ $.camelCase( key ) ] = style[ key ]; - } - } - - // Support: Opera, IE <9 - } else { - for ( key in style ) { - if ( typeof style[ key ] === "string" ) { - styles[ key ] = style[ key ]; - } - } - } - - return styles; -} - -function styleDifference( oldStyle, newStyle ) { - var diff = {}, - name, value; - - for ( name in newStyle ) { - value = newStyle[ name ]; - if ( oldStyle[ name ] !== value ) { - if ( !shorthandStyles[ name ] ) { - if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { - diff[ name ] = value; - } - } - } - } - - return diff; -} - -// Support: jQuery <1.8 -if ( !$.fn.addBack ) { - $.fn.addBack = function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - }; -} - -$.effects.animateClass = function( value, duration, easing, callback ) { - var o = $.speed( duration, easing, callback ); - - return this.queue( function() { - var animated = $( this ), - baseClass = animated.attr( "class" ) || "", - applyClassChange, - allAnimations = o.children ? animated.find( "*" ).addBack() : animated; - - // Map the animated objects to store the original styles. - allAnimations = allAnimations.map( function() { - var el = $( this ); - return { - el: el, - start: getElementStyles( this ) - }; - } ); - - // Apply class change - applyClassChange = function() { - $.each( classAnimationActions, function( i, action ) { - if ( value[ action ] ) { - animated[ action + "Class" ]( value[ action ] ); - } - } ); - }; - applyClassChange(); - - // Map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map( function() { - this.end = getElementStyles( this.el[ 0 ] ); - this.diff = styleDifference( this.start, this.end ); - return this; - } ); - - // Apply original class - animated.attr( "class", baseClass ); - - // Map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map( function() { - var styleInfo = this, - dfd = $.Deferred(), - opts = $.extend( {}, o, { - queue: false, - complete: function() { - dfd.resolve( styleInfo ); - } - } ); - - this.el.animate( this.diff, opts ); - return dfd.promise(); - } ); - - // Once all animations have completed: - $.when.apply( $, allAnimations.get() ).done( function() { - - // Set the final class - applyClassChange(); - - // For each animated element, - // clear all css properties that were animated - $.each( arguments, function() { - var el = this.el; - $.each( this.diff, function( key ) { - el.css( key, "" ); - } ); - } ); - - // This is guarnteed to be there if you use jQuery.speed() - // it also handles dequeuing the next anim... - o.complete.call( animated[ 0 ] ); - } ); - } ); -}; - -$.fn.extend( { - addClass: ( function( orig ) { - return function( classNames, speed, easing, callback ) { - return speed ? - $.effects.animateClass.call( this, - { add: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - } )( $.fn.addClass ), - - removeClass: ( function( orig ) { - return function( classNames, speed, easing, callback ) { - return arguments.length > 1 ? - $.effects.animateClass.call( this, - { remove: classNames }, speed, easing, callback ) : - orig.apply( this, arguments ); - }; - } )( $.fn.removeClass ), - - toggleClass: ( function( orig ) { - return function( classNames, force, speed, easing, callback ) { - if ( typeof force === "boolean" || force === undefined ) { - if ( !speed ) { - - // Without speed parameter - return orig.apply( this, arguments ); - } else { - return $.effects.animateClass.call( this, - ( force ? { add: classNames } : { remove: classNames } ), - speed, easing, callback ); - } - } else { - - // Without force parameter - return $.effects.animateClass.call( this, - { toggle: classNames }, force, speed, easing ); - } - }; - } )( $.fn.toggleClass ), - - switchClass: function( remove, add, speed, easing, callback ) { - return $.effects.animateClass.call( this, { - add: add, - remove: remove - }, speed, easing, callback ); - } -} ); - -} )(); - -/******************************************************************************/ -/*********************************** EFFECTS **********************************/ -/******************************************************************************/ - -( function() { - -if ( $.expr && $.expr.filters && $.expr.filters.animated ) { - $.expr.filters.animated = ( function( orig ) { - return function( elem ) { - return !!$( elem ).data( dataSpaceAnimated ) || orig( elem ); - }; - } )( $.expr.filters.animated ); -} - -if ( $.uiBackCompat !== false ) { - $.extend( $.effects, { - - // Saves a set of properties in a data storage - save: function( element, set ) { - var i = 0, length = set.length; - for ( ; i < length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); - } - } - }, - - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - var val, i = 0, length = set.length; - for ( ; i < length; i++ ) { - if ( set[ i ] !== null ) { - val = element.data( dataSpace + set[ i ] ); - element.css( set[ i ], val ); - } - } - }, - - setMode: function( el, mode ) { - if ( mode === "toggle" ) { - mode = el.is( ":hidden" ) ? "show" : "hide"; - } - return mode; - }, - - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // If the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - return element.parent(); - } - - // Wrap the element - var props = { - width: element.outerWidth( true ), - height: element.outerHeight( true ), - "float": element.css( "float" ) - }, - wrapper = $( "

" ) - .addClass( "ui-effects-wrapper" ) - .css( { - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - } ), - - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - // Support: Firefox - // Firefox incorrectly exposes anonymous content - // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 - try { - active.id; - } catch ( e ) { - active = document.body; - } - - element.wrap( wrapper ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).trigger( "focus" ); - } - - // Hotfix for jQuery 1.4 since some change in wrap() seems to actually - // lose the reference to the wrapped element - wrapper = element.parent(); - - // Transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css( { position: "relative" } ); - element.css( { position: "relative" } ); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - } ); - $.each( [ "top", "left", "bottom", "right" ], function( i, pos ) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - } ); - element.css( { - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - } ); - } - element.css( size ); - - return wrapper.css( props ).show(); - }, - - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); - - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).trigger( "focus" ); - } - } - - return element; - } - } ); -} - -$.extend( $.effects, { - version: "1.12.1", - - define: function( name, mode, effect ) { - if ( !effect ) { - effect = mode; - mode = "effect"; - } - - $.effects.effect[ name ] = effect; - $.effects.effect[ name ].mode = mode; - - return effect; - }, - - scaledDimensions: function( element, percent, direction ) { - if ( percent === 0 ) { - return { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - }; - } - - var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1, - y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1; - - return { - height: element.height() * y, - width: element.width() * x, - outerHeight: element.outerHeight() * y, - outerWidth: element.outerWidth() * x - }; - - }, - - clipToBox: function( animation ) { - return { - width: animation.clip.right - animation.clip.left, - height: animation.clip.bottom - animation.clip.top, - left: animation.clip.left, - top: animation.clip.top - }; - }, - - // Injects recently queued functions to be first in line (after "inprogress") - unshift: function( element, queueLength, count ) { - var queue = element.queue(); - - if ( queueLength > 1 ) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queueLength, count ) ) ); - } - element.dequeue(); - }, - - saveStyle: function( element ) { - element.data( dataSpaceStyle, element[ 0 ].style.cssText ); - }, - - restoreStyle: function( element ) { - element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || ""; - element.removeData( dataSpaceStyle ); - }, - - mode: function( element, mode ) { - var hidden = element.is( ":hidden" ); - - if ( mode === "toggle" ) { - mode = hidden ? "show" : "hide"; - } - if ( hidden ? mode === "hide" : mode === "show" ) { - mode = "none"; - } - return mode; - }, - - // Translates a [top,left] array into a baseline value - getBaseline: function( origin, original ) { - var y, x; - - switch ( origin[ 0 ] ) { - case "top": - y = 0; - break; - case "middle": - y = 0.5; - break; - case "bottom": - y = 1; - break; - default: - y = origin[ 0 ] / original.height; - } - - switch ( origin[ 1 ] ) { - case "left": - x = 0; - break; - case "center": - x = 0.5; - break; - case "right": - x = 1; - break; - default: - x = origin[ 1 ] / original.width; - } - - return { - x: x, - y: y - }; - }, - - // Creates a placeholder element so that the original element can be made absolute - createPlaceholder: function( element ) { - var placeholder, - cssPosition = element.css( "position" ), - position = element.position(); - - // Lock in margins first to account for form elements, which - // will change margin if you explicitly set height - // see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380 - // Support: Safari - element.css( { - marginTop: element.css( "marginTop" ), - marginBottom: element.css( "marginBottom" ), - marginLeft: element.css( "marginLeft" ), - marginRight: element.css( "marginRight" ) - } ) - .outerWidth( element.outerWidth() ) - .outerHeight( element.outerHeight() ); - - if ( /^(static|relative)/.test( cssPosition ) ) { - cssPosition = "absolute"; - - placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( { - - // Convert inline to inline block to account for inline elements - // that turn to inline block based on content (like img) - display: /^(inline|ruby)/.test( element.css( "display" ) ) ? - "inline-block" : - "block", - visibility: "hidden", - - // Margins need to be set to account for margin collapse - marginTop: element.css( "marginTop" ), - marginBottom: element.css( "marginBottom" ), - marginLeft: element.css( "marginLeft" ), - marginRight: element.css( "marginRight" ), - "float": element.css( "float" ) - } ) - .outerWidth( element.outerWidth() ) - .outerHeight( element.outerHeight() ) - .addClass( "ui-effects-placeholder" ); - - element.data( dataSpace + "placeholder", placeholder ); - } - - element.css( { - position: cssPosition, - left: position.left, - top: position.top - } ); - - return placeholder; - }, - - removePlaceholder: function( element ) { - var dataKey = dataSpace + "placeholder", - placeholder = element.data( dataKey ); - - if ( placeholder ) { - placeholder.remove(); - element.removeData( dataKey ); - } - }, - - // Removes a placeholder if it exists and restores - // properties that were modified during placeholder creation - cleanUp: function( element ) { - $.effects.restoreStyle( element ); - $.effects.removePlaceholder( element ); - }, - - setTransition: function( element, list, factor, value ) { - value = value || {}; - $.each( list, function( i, x ) { - var unit = element.cssUnit( x ); - if ( unit[ 0 ] > 0 ) { - value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; - } - } ); - return value; - } -} ); - -// Return an effect options object for the given parameters: -function _normalizeArguments( effect, options, speed, callback ) { - - // Allow passing all options as the first parameter - if ( $.isPlainObject( effect ) ) { - options = effect; - effect = effect.effect; - } - - // Convert to an object - effect = { effect: effect }; - - // Catch (effect, null, ...) - if ( options == null ) { - options = {}; - } - - // Catch (effect, callback) - if ( $.isFunction( options ) ) { - callback = options; - speed = null; - options = {}; - } - - // Catch (effect, speed, ?) - if ( typeof options === "number" || $.fx.speeds[ options ] ) { - callback = speed; - speed = options; - options = {}; - } - - // Catch (effect, options, callback) - if ( $.isFunction( speed ) ) { - callback = speed; - speed = null; - } - - // Add options to effect - if ( options ) { - $.extend( effect, options ); - } - - speed = speed || options.duration; - effect.duration = $.fx.off ? 0 : - typeof speed === "number" ? speed : - speed in $.fx.speeds ? $.fx.speeds[ speed ] : - $.fx.speeds._default; - - effect.complete = callback || options.complete; - - return effect; -} - -function standardAnimationOption( option ) { - - // Valid standard speeds (nothing, number, named speed) - if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { - return true; - } - - // Invalid strings - treat as "normal" speed - if ( typeof option === "string" && !$.effects.effect[ option ] ) { - return true; - } - - // Complete callback - if ( $.isFunction( option ) ) { - return true; - } - - // Options hash (but not naming an effect) - if ( typeof option === "object" && !option.effect ) { - return true; - } - - // Didn't match any standard API - return false; -} - -$.fn.extend( { - effect: function( /* effect, options, speed, callback */ ) { - var args = _normalizeArguments.apply( this, arguments ), - effectMethod = $.effects.effect[ args.effect ], - defaultMode = effectMethod.mode, - queue = args.queue, - queueName = queue || "fx", - complete = args.complete, - mode = args.mode, - modes = [], - prefilter = function( next ) { - var el = $( this ), - normalizedMode = $.effects.mode( el, mode ) || defaultMode; - - // Sentinel for duck-punching the :animated psuedo-selector - el.data( dataSpaceAnimated, true ); - - // Save effect mode for later use, - // we can't just call $.effects.mode again later, - // as the .show() below destroys the initial state - modes.push( normalizedMode ); - - // See $.uiBackCompat inside of run() for removal of defaultMode in 1.13 - if ( defaultMode && ( normalizedMode === "show" || - ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { - el.show(); - } - - if ( !defaultMode || normalizedMode !== "none" ) { - $.effects.saveStyle( el ); - } - - if ( $.isFunction( next ) ) { - next(); - } - }; - - if ( $.fx.off || !effectMethod ) { - - // Delegate to the original method (e.g., .show()) if possible - if ( mode ) { - return this[ mode ]( args.duration, complete ); - } else { - return this.each( function() { - if ( complete ) { - complete.call( this ); - } - } ); - } - } - - function run( next ) { - var elem = $( this ); - - function cleanup() { - elem.removeData( dataSpaceAnimated ); - - $.effects.cleanUp( elem ); - - if ( args.mode === "hide" ) { - elem.hide(); - } - - done(); - } - - function done() { - if ( $.isFunction( complete ) ) { - complete.call( elem[ 0 ] ); - } - - if ( $.isFunction( next ) ) { - next(); - } - } - - // Override mode option on a per element basis, - // as toggle can be either show or hide depending on element state - args.mode = modes.shift(); - - if ( $.uiBackCompat !== false && !defaultMode ) { - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - - // Call the core method to track "olddisplay" properly - elem[ mode ](); - done(); - } else { - effectMethod.call( elem[ 0 ], args, done ); - } - } else { - if ( args.mode === "none" ) { - - // Call the core method to track "olddisplay" properly - elem[ mode ](); - done(); - } else { - effectMethod.call( elem[ 0 ], args, cleanup ); - } - } - } - - // Run prefilter on all elements first to ensure that - // any showing or hiding happens before placeholder creation, - // which ensures that any layout changes are correctly captured. - return queue === false ? - this.each( prefilter ).each( run ) : - this.queue( queueName, prefilter ).queue( queueName, run ); - }, - - show: ( function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "show"; - return this.effect.call( this, args ); - } - }; - } )( $.fn.show ), - - hide: ( function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "hide"; - return this.effect.call( this, args ); - } - }; - } )( $.fn.hide ), - - toggle: ( function( orig ) { - return function( option ) { - if ( standardAnimationOption( option ) || typeof option === "boolean" ) { - return orig.apply( this, arguments ); - } else { - var args = _normalizeArguments.apply( this, arguments ); - args.mode = "toggle"; - return this.effect.call( this, args ); - } - }; - } )( $.fn.toggle ), - - cssUnit: function( key ) { - var style = this.css( key ), - val = []; - - $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { - if ( style.indexOf( unit ) > 0 ) { - val = [ parseFloat( style ), unit ]; - } - } ); - return val; - }, - - cssClip: function( clipObj ) { - if ( clipObj ) { - return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " + - clipObj.bottom + "px " + clipObj.left + "px)" ); - } - return parseClip( this.css( "clip" ), this ); - }, - - transfer: function( options, done ) { - var element = $( this ), - target = $( options.to ), - targetFixed = target.css( "position" ) === "fixed", - body = $( "body" ), - fixTop = targetFixed ? body.scrollTop() : 0, - fixLeft = targetFixed ? body.scrollLeft() : 0, - endPosition = target.offset(), - animation = { - top: endPosition.top - fixTop, - left: endPosition.left - fixLeft, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = element.offset(), - transfer = $( "
" ) - .appendTo( "body" ) - .addClass( options.className ) - .css( { - top: startPosition.top - fixTop, - left: startPosition.left - fixLeft, - height: element.innerHeight(), - width: element.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - } ) - .animate( animation, options.duration, options.easing, function() { - transfer.remove(); - if ( $.isFunction( done ) ) { - done(); - } - } ); - } -} ); - -function parseClip( str, element ) { - var outerWidth = element.outerWidth(), - outerHeight = element.outerHeight(), - clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, - values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; - - return { - top: parseFloat( values[ 1 ] ) || 0, - right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), - bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), - left: parseFloat( values[ 4 ] ) || 0 - }; -} - -$.fx.step.clip = function( fx ) { - if ( !fx.clipInit ) { - fx.start = $( fx.elem ).cssClip(); - if ( typeof fx.end === "string" ) { - fx.end = parseClip( fx.end, fx.elem ); - } - fx.clipInit = true; - } - - $( fx.elem ).cssClip( { - top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top, - right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right, - bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom, - left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left - } ); -}; - -} )(); - -/******************************************************************************/ -/*********************************** EASING ***********************************/ -/******************************************************************************/ - -( function() { - -// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing) - -var baseEasings = {}; - -$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { - baseEasings[ name ] = function( p ) { - return Math.pow( p, i + 2 ); - }; -} ); - -$.extend( baseEasings, { - Sine: function( p ) { - return 1 - Math.cos( p * Math.PI / 2 ); - }, - Circ: function( p ) { - return 1 - Math.sqrt( 1 - p * p ); - }, - Elastic: function( p ) { - return p === 0 || p === 1 ? p : - -Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 ); - }, - Back: function( p ) { - return p * p * ( 3 * p - 2 ); - }, - Bounce: function( p ) { - var pow2, - bounce = 4; - - while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} - return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); - } -} ); - -$.each( baseEasings, function( name, easeIn ) { - $.easing[ "easeIn" + name ] = easeIn; - $.easing[ "easeOut" + name ] = function( p ) { - return 1 - easeIn( 1 - p ); - }; - $.easing[ "easeInOut" + name ] = function( p ) { - return p < 0.5 ? - easeIn( p * 2 ) / 2 : - 1 - easeIn( p * -2 + 2 ) / 2; - }; -} ); - -} )(); - -var effect = $.effects; - - -/*! - * jQuery UI Effects Blind 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Blind Effect -//>>group: Effects -//>>description: Blinds the element. -//>>docs: http://api.jqueryui.com/blind-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) { - var map = { - up: [ "bottom", "top" ], - vertical: [ "bottom", "top" ], - down: [ "top", "bottom" ], - left: [ "right", "left" ], - horizontal: [ "right", "left" ], - right: [ "left", "right" ] - }, - element = $( this ), - direction = options.direction || "up", - start = element.cssClip(), - animate = { clip: $.extend( {}, start ) }, - placeholder = $.effects.createPlaceholder( element ); - - animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ]; - - if ( options.mode === "show" ) { - element.cssClip( animate.clip ); - if ( placeholder ) { - placeholder.css( $.effects.clipToBox( animate ) ); - } - - animate.clip = start; - } - - if ( placeholder ) { - placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing ); - } - - element.animate( animate, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); -} ); - - -/*! - * jQuery UI Effects Bounce 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Bounce Effect -//>>group: Effects -//>>description: Bounces an element horizontally or vertically n times. -//>>docs: http://api.jqueryui.com/bounce-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) { - var upAnim, downAnim, refValue, - element = $( this ), - - // Defaults: - mode = options.mode, - hide = mode === "hide", - show = mode === "show", - direction = options.direction || "up", - distance = options.distance, - times = options.times || 5, - - // Number of internal animations - anims = times * 2 + ( show || hide ? 1 : 0 ), - speed = options.duration / anims, - easing = options.easing, - - // Utility: - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ), - i = 0, - - queuelen = element.queue().length; - - $.effects.createPlaceholder( element ); - - refValue = element.css( ref ); - - // Default distance for the BIGGEST bounce is the outer Distance / 3 - if ( !distance ) { - distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; - } - - if ( show ) { - downAnim = { opacity: 1 }; - downAnim[ ref ] = refValue; - - // If we are showing, force opacity 0 and set the initial position - // then do the "first" animation - element - .css( "opacity", 0 ) - .css( ref, motion ? -distance * 2 : distance * 2 ) - .animate( downAnim, speed, easing ); - } - - // Start at the smallest distance if we are hiding - if ( hide ) { - distance = distance / Math.pow( 2, times - 1 ); - } - - downAnim = {}; - downAnim[ ref ] = refValue; - - // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here - for ( ; i < times; i++ ) { - upAnim = {}; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - element - .animate( upAnim, speed, easing ) - .animate( downAnim, speed, easing ); - - distance = hide ? distance * 2 : distance / 2; - } - - // Last Bounce when Hiding - if ( hide ) { - upAnim = { opacity: 0 }; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - element.animate( upAnim, speed, easing ); - } - - element.queue( done ); - - $.effects.unshift( element, queuelen, anims + 1 ); -} ); - - -/*! - * jQuery UI Effects Clip 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Clip Effect -//>>group: Effects -//>>description: Clips the element on and off like an old TV. -//>>docs: http://api.jqueryui.com/clip-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) { - var start, - animate = {}, - element = $( this ), - direction = options.direction || "vertical", - both = direction === "both", - horizontal = both || direction === "horizontal", - vertical = both || direction === "vertical"; - - start = element.cssClip(); - animate.clip = { - top: vertical ? ( start.bottom - start.top ) / 2 : start.top, - right: horizontal ? ( start.right - start.left ) / 2 : start.right, - bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom, - left: horizontal ? ( start.right - start.left ) / 2 : start.left - }; - - $.effects.createPlaceholder( element ); - - if ( options.mode === "show" ) { - element.cssClip( animate.clip ); - animate.clip = start; - } - - element.animate( animate, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); - -} ); - - -/*! - * jQuery UI Effects Drop 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Drop Effect -//>>group: Effects -//>>description: Moves an element in one direction and hides it at the same time. -//>>docs: http://api.jqueryui.com/drop-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) { - - var distance, - element = $( this ), - mode = options.mode, - show = mode === "show", - direction = options.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=", - oppositeMotion = ( motion === "+=" ) ? "-=" : "+=", - animation = { - opacity: 0 - }; - - $.effects.createPlaceholder( element ); - - distance = options.distance || - element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; - - animation[ ref ] = motion + distance; - - if ( show ) { - element.css( animation ); - - animation[ ref ] = oppositeMotion + distance; - animation.opacity = 1; - } - - // Animate - element.animate( animation, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); -} ); - - -/*! - * jQuery UI Effects Explode 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Explode Effect -//>>group: Effects -// jscs:disable maximumLineLength -//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. -// jscs:enable maximumLineLength -//>>docs: http://api.jqueryui.com/explode-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) { - - var i, j, left, top, mx, my, - rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3, - cells = rows, - element = $( this ), - mode = options.mode, - show = mode === "show", - - // Show and then visibility:hidden the element before calculating offset - offset = element.show().css( "visibility", "hidden" ).offset(), - - // Width and height of a piece - width = Math.ceil( element.outerWidth() / cells ), - height = Math.ceil( element.outerHeight() / rows ), - pieces = []; - - // Children animate complete: - function childComplete() { - pieces.push( this ); - if ( pieces.length === rows * cells ) { - animComplete(); - } - } - - // Clone the element for each row and cell. - for ( i = 0; i < rows; i++ ) { // ===> - top = offset.top + i * height; - my = i - ( rows - 1 ) / 2; - - for ( j = 0; j < cells; j++ ) { // ||| - left = offset.left + j * width; - mx = j - ( cells - 1 ) / 2; - - // Create a clone of the now hidden main element that will be absolute positioned - // within a wrapper div off the -left and -top equal to size of our pieces - element - .clone() - .appendTo( "body" ) - .wrap( "
" ) - .css( { - position: "absolute", - visibility: "visible", - left: -j * width, - top: -i * height - } ) - - // Select the wrapper - make it overflow: hidden and absolute positioned based on - // where the original was located +left and +top equal to the size of pieces - .parent() - .addClass( "ui-effects-explode" ) - .css( { - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - } ) - .animate( { - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, options.duration || 500, options.easing, childComplete ); - } - } - - function animComplete() { - element.css( { - visibility: "visible" - } ); - $( pieces ).remove(); - done(); - } -} ); - - -/*! - * jQuery UI Effects Fade 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Fade Effect -//>>group: Effects -//>>description: Fades the element. -//>>docs: http://api.jqueryui.com/fade-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) { - var show = options.mode === "show"; - - $( this ) - .css( "opacity", show ? 0 : 1 ) - .animate( { - opacity: show ? 1 : 0 - }, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); -} ); - - -/*! - * jQuery UI Effects Fold 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Fold Effect -//>>group: Effects -//>>description: Folds an element first horizontally and then vertically. -//>>docs: http://api.jqueryui.com/fold-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) { - - // Create element - var element = $( this ), - mode = options.mode, - show = mode === "show", - hide = mode === "hide", - size = options.size || 15, - percent = /([0-9]+)%/.exec( size ), - horizFirst = !!options.horizFirst, - ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ], - duration = options.duration / 2, - - placeholder = $.effects.createPlaceholder( element ), - - start = element.cssClip(), - animation1 = { clip: $.extend( {}, start ) }, - animation2 = { clip: $.extend( {}, start ) }, - - distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ], - - queuelen = element.queue().length; - - if ( percent ) { - size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; - } - animation1.clip[ ref[ 0 ] ] = size; - animation2.clip[ ref[ 0 ] ] = size; - animation2.clip[ ref[ 1 ] ] = 0; - - if ( show ) { - element.cssClip( animation2.clip ); - if ( placeholder ) { - placeholder.css( $.effects.clipToBox( animation2 ) ); - } - - animation2.clip = start; - } - - // Animate - element - .queue( function( next ) { - if ( placeholder ) { - placeholder - .animate( $.effects.clipToBox( animation1 ), duration, options.easing ) - .animate( $.effects.clipToBox( animation2 ), duration, options.easing ); - } - - next(); - } ) - .animate( animation1, duration, options.easing ) - .animate( animation2, duration, options.easing ) - .queue( done ); - - $.effects.unshift( element, queuelen, 4 ); -} ); - - -/*! - * jQuery UI Effects Highlight 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Highlight Effect -//>>group: Effects -//>>description: Highlights the background of an element in a defined color for a custom duration. -//>>docs: http://api.jqueryui.com/highlight-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) { - var element = $( this ), - animation = { - backgroundColor: element.css( "backgroundColor" ) - }; - - if ( options.mode === "hide" ) { - animation.opacity = 0; - } - - $.effects.saveStyle( element ); - - element - .css( { - backgroundImage: "none", - backgroundColor: options.color || "#ffff99" - } ) - .animate( animation, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); -} ); - - -/*! - * jQuery UI Effects Size 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Size Effect -//>>group: Effects -//>>description: Resize an element to a specified width and height. -//>>docs: http://api.jqueryui.com/size-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectSize = $.effects.define( "size", function( options, done ) { - - // Create element - var baseline, factor, temp, - element = $( this ), - - // Copy for children - cProps = [ "fontSize" ], - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], - - // Set options - mode = options.mode, - restore = mode !== "effect", - scale = options.scale || "both", - origin = options.origin || [ "middle", "center" ], - position = element.css( "position" ), - pos = element.position(), - original = $.effects.scaledDimensions( element ), - from = options.from || original, - to = options.to || $.effects.scaledDimensions( element, 0 ); - - $.effects.createPlaceholder( element ); - - if ( mode === "show" ) { - temp = from; - from = to; - to = temp; - } - - // Set scaling factor - factor = { - from: { - y: from.height / original.height, - x: from.width / original.width - }, - to: { - y: to.height / original.height, - x: to.width / original.width - } - }; - - // Scale the css box - if ( scale === "box" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - from = $.effects.setTransition( element, vProps, factor.from.y, from ); - to = $.effects.setTransition( element, vProps, factor.to.y, to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - from = $.effects.setTransition( element, hProps, factor.from.x, from ); - to = $.effects.setTransition( element, hProps, factor.to.x, to ); - } - } - - // Scale the content - if ( scale === "content" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - from = $.effects.setTransition( element, cProps, factor.from.y, from ); - to = $.effects.setTransition( element, cProps, factor.to.y, to ); - } - } - - // Adjust the position properties based on the provided origin points - if ( origin ) { - baseline = $.effects.getBaseline( origin, original ); - from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top; - from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left; - to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; - to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; - } - element.css( from ); - - // Animate the children if desired - if ( scale === "content" || scale === "both" ) { - - vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps ); - hProps = hProps.concat( [ "marginLeft", "marginRight" ] ); - - // Only animate children with width attributes specified - // TODO: is this right? should we include anything with css width specified as well - element.find( "*[width]" ).each( function() { - var child = $( this ), - childOriginal = $.effects.scaledDimensions( child ), - childFrom = { - height: childOriginal.height * factor.from.y, - width: childOriginal.width * factor.from.x, - outerHeight: childOriginal.outerHeight * factor.from.y, - outerWidth: childOriginal.outerWidth * factor.from.x - }, - childTo = { - height: childOriginal.height * factor.to.y, - width: childOriginal.width * factor.to.x, - outerHeight: childOriginal.height * factor.to.y, - outerWidth: childOriginal.width * factor.to.x - }; - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom ); - childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom ); - childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo ); - } - - if ( restore ) { - $.effects.saveStyle( child ); - } - - // Animate children - child.css( childFrom ); - child.animate( childTo, options.duration, options.easing, function() { - - // Restore children - if ( restore ) { - $.effects.restoreStyle( child ); - } - } ); - } ); - } - - // Animate - element.animate( to, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: function() { - - var offset = element.offset(); - - if ( to.opacity === 0 ) { - element.css( "opacity", from.opacity ); - } - - if ( !restore ) { - element - .css( "position", position === "static" ? "relative" : position ) - .offset( offset ); - - // Need to save style here so that automatic style restoration - // doesn't restore to the original styles from before the animation. - $.effects.saveStyle( element ); - } - - done(); - } - } ); - -} ); - - -/*! - * jQuery UI Effects Scale 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Scale Effect -//>>group: Effects -//>>description: Grows or shrinks an element and its content. -//>>docs: http://api.jqueryui.com/scale-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectScale = $.effects.define( "scale", function( options, done ) { - - // Create element - var el = $( this ), - mode = options.mode, - percent = parseInt( options.percent, 10 ) || - ( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ), - - newOptions = $.extend( true, { - from: $.effects.scaledDimensions( el ), - to: $.effects.scaledDimensions( el, percent, options.direction || "both" ), - origin: options.origin || [ "middle", "center" ] - }, options ); - - // Fade option to support puff - if ( options.fade ) { - newOptions.from.opacity = 1; - newOptions.to.opacity = 0; - } - - $.effects.effect.size.call( this, newOptions, done ); -} ); - - -/*! - * jQuery UI Effects Puff 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Puff Effect -//>>group: Effects -//>>description: Creates a puff effect by scaling the element up and hiding it at the same time. -//>>docs: http://api.jqueryui.com/puff-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) { - var newOptions = $.extend( true, {}, options, { - fade: true, - percent: parseInt( options.percent, 10 ) || 150 - } ); - - $.effects.effect.scale.call( this, newOptions, done ); -} ); - - -/*! - * jQuery UI Effects Pulsate 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Pulsate Effect -//>>group: Effects -//>>description: Pulsates an element n times by changing the opacity to zero and back. -//>>docs: http://api.jqueryui.com/pulsate-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) { - var element = $( this ), - mode = options.mode, - show = mode === "show", - hide = mode === "hide", - showhide = show || hide, - - // Showing or hiding leaves off the "last" animation - anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), - duration = options.duration / anims, - animateTo = 0, - i = 1, - queuelen = element.queue().length; - - if ( show || !element.is( ":visible" ) ) { - element.css( "opacity", 0 ).show(); - animateTo = 1; - } - - // Anims - 1 opacity "toggles" - for ( ; i < anims; i++ ) { - element.animate( { opacity: animateTo }, duration, options.easing ); - animateTo = 1 - animateTo; - } - - element.animate( { opacity: animateTo }, duration, options.easing ); - - element.queue( done ); - - $.effects.unshift( element, queuelen, anims + 1 ); -} ); - - -/*! - * jQuery UI Effects Shake 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Shake Effect -//>>group: Effects -//>>description: Shakes an element horizontally or vertically n times. -//>>docs: http://api.jqueryui.com/shake-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectShake = $.effects.define( "shake", function( options, done ) { - - var i = 1, - element = $( this ), - direction = options.direction || "left", - distance = options.distance || 20, - times = options.times || 3, - anims = times * 2 + 1, - speed = Math.round( options.duration / anims ), - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - positiveMotion = ( direction === "up" || direction === "left" ), - animation = {}, - animation1 = {}, - animation2 = {}, - - queuelen = element.queue().length; - - $.effects.createPlaceholder( element ); - - // Animation - animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; - animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; - animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; - - // Animate - element.animate( animation, speed, options.easing ); - - // Shakes - for ( ; i < times; i++ ) { - element - .animate( animation1, speed, options.easing ) - .animate( animation2, speed, options.easing ); - } - - element - .animate( animation1, speed, options.easing ) - .animate( animation, speed / 2, options.easing ) - .queue( done ); - - $.effects.unshift( element, queuelen, anims + 1 ); -} ); - - -/*! - * jQuery UI Effects Slide 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Slide Effect -//>>group: Effects -//>>description: Slides an element in and out of the viewport. -//>>docs: http://api.jqueryui.com/slide-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) { - var startClip, startRef, - element = $( this ), - map = { - up: [ "bottom", "top" ], - down: [ "top", "bottom" ], - left: [ "right", "left" ], - right: [ "left", "right" ] - }, - mode = options.mode, - direction = options.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - positiveMotion = ( direction === "up" || direction === "left" ), - distance = options.distance || - element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ), - animation = {}; - - $.effects.createPlaceholder( element ); - - startClip = element.cssClip(); - startRef = element.position()[ ref ]; - - // Define hide animation - animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef; - animation.clip = element.cssClip(); - animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ]; - - // Reverse the animation if we're showing - if ( mode === "show" ) { - element.cssClip( animation.clip ); - element.css( ref, animation[ ref ] ); - animation.clip = startClip; - animation[ ref ] = startRef; - } - - // Actually animate - element.animate( animation, { - queue: false, - duration: options.duration, - easing: options.easing, - complete: done - } ); -} ); - - -/*! - * jQuery UI Effects Transfer 1.12.1 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - */ - -//>>label: Transfer Effect -//>>group: Effects -//>>description: Displays a transfer effect from one element to another. -//>>docs: http://api.jqueryui.com/transfer-effect/ -//>>demos: http://jqueryui.com/effect/ - - - -var effect; -if ( $.uiBackCompat !== false ) { - effect = $.effects.define( "transfer", function( options, done ) { - $( this ).transfer( options, done ); - } ); -} -var effectsEffectTransfer = effect; - - /*! * jQuery UI Focusable 1.12.1 * http://jqueryui.com @@ -4293,6 +1719,5023 @@ var uniqueId = $.fn.extend( { } ); + + +// This file is deprecated +var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +/*! + * jQuery UI Mouse 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Mouse +//>>group: Widgets +//>>description: Abstracts mouse-based interactions to assist in creating certain widgets. +//>>docs: http://api.jqueryui.com/mouse/ + + + +var mouseHandled = false; +$( document ).on( "mouseup", function() { + mouseHandled = false; +} ); + +var widgetsMouse = $.widget( "ui.mouse", { + version: "1.12.1", + options: { + cancel: "input, textarea, button, select, option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .on( "mousedown." + this.widgetName, function( event ) { + return that._mouseDown( event ); + } ) + .on( "click." + this.widgetName, function( event ) { + if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, that.widgetName + ".preventClickEvent" ); + event.stopImmediatePropagation(); + return false; + } + } ); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.off( "." + this.widgetName ); + if ( this._mouseMoveDelegate ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + } + }, + + _mouseDown: function( event ) { + + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // We may have missed mouseup (out of window) + ( this._mouseStarted && this._mouseUp( event ) ); + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = ( event.which === 1 ), + + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ? + $( event.target ).closest( this.options.cancel ).length : false ); + if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if ( !this.mouseDelayMet ) { + this._mouseDelayTimer = setTimeout( function() { + that.mouseDelayMet = true; + }, this.options.delay ); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = ( this._mouseStart( event ) !== false ); + if ( !this._mouseStarted ) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) { + $.removeData( event.target, this.widgetName + ".preventClickEvent" ); + } + + // These delegates are required to keep context + this._mouseMoveDelegate = function( event ) { + return that._mouseMove( event ); + }; + this._mouseUpDelegate = function( event ) { + return that._mouseUp( event ); + }; + + this.document + .on( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .on( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function( event ) { + + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + + // IE mouseup check - mouseup happened when mouse was out of window + if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && + !event.button ) { + return this._mouseUp( event ); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + + // Support: Safari <=8 - 9 + // Safari sets which to 0 if you press any of the following keys + // during a drag (#14461) + if ( event.originalEvent.altKey || event.originalEvent.ctrlKey || + event.originalEvent.metaKey || event.originalEvent.shiftKey ) { + this.ignoreMissingWhich = true; + } else if ( !this.ignoreMissingWhich ) { + return this._mouseUp( event ); + } + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if ( this._mouseStarted ) { + this._mouseDrag( event ); + return event.preventDefault(); + } + + if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) { + this._mouseStarted = + ( this._mouseStart( this._mouseDownEvent, event ) !== false ); + ( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) ); + } + + return !this._mouseStarted; + }, + + _mouseUp: function( event ) { + this.document + .off( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .off( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if ( this._mouseStarted ) { + this._mouseStarted = false; + + if ( event.target === this._mouseDownEvent.target ) { + $.data( event.target, this.widgetName + ".preventClickEvent", true ); + } + + this._mouseStop( event ); + } + + if ( this._mouseDelayTimer ) { + clearTimeout( this._mouseDelayTimer ); + delete this._mouseDelayTimer; + } + + this.ignoreMissingWhich = false; + mouseHandled = false; + event.preventDefault(); + }, + + _mouseDistanceMet: function( event ) { + return ( Math.max( + Math.abs( this._mouseDownEvent.pageX - event.pageX ), + Math.abs( this._mouseDownEvent.pageY - event.pageY ) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function( /* event */ ) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function( /* event */ ) {}, + _mouseDrag: function( /* event */ ) {}, + _mouseStop: function( /* event */ ) {}, + _mouseCapture: function( /* event */ ) { return true; } +} ); + + + + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +var plugin = $.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || + instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + + +var safeActiveElement = $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an