diff --git a/Disco.BI/Disco.BI.csproj b/Disco.BI/Disco.BI.csproj index b089a86e..9362d6fb 100644 --- a/Disco.BI/Disco.BI.csproj +++ b/Disco.BI/Disco.BI.csproj @@ -48,15 +48,15 @@ False - ..\packages\Microsoft.AspNet.SignalR.Core.1.1.0\lib\net40\Microsoft.AspNet.SignalR.Core.dll + ..\packages\Microsoft.AspNet.SignalR.Core.1.1.2\lib\net40\Microsoft.AspNet.SignalR.Core.dll False - ..\packages\Microsoft.AspNet.SignalR.Owin.1.1.0\lib\net45\Microsoft.AspNet.SignalR.Owin.dll + ..\packages\Microsoft.AspNet.SignalR.Owin.1.1.2\lib\net45\Microsoft.AspNet.SignalR.Owin.dll False - ..\packages\Microsoft.AspNet.SignalR.SystemWeb.1.1.0\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll + ..\packages\Microsoft.AspNet.SignalR.SystemWeb.1.1.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll ..\packages\Microsoft.Owin.Host.SystemWeb.1.0.1\lib\net45\Microsoft.Owin.Host.SystemWeb.dll @@ -250,7 +250,7 @@ - + diff --git a/Disco.BI/Properties/AssemblyInfo.cs b/Disco.BI/Properties/AssemblyInfo.cs index 69d51aaa..a2b38375 100644 --- a/Disco.BI/Properties/AssemblyInfo.cs +++ b/Disco.BI/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0527.1408")] -[assembly: AssemblyFileVersion("1.2.0527.1408")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2017")] +[assembly: AssemblyFileVersion("1.2.0603.2017")] \ No newline at end of file diff --git a/Disco.BI/packages.config b/Disco.BI/packages.config index 18312478..9fe73724 100644 --- a/Disco.BI/packages.config +++ b/Disco.BI/packages.config @@ -1,9 +1,9 @@  - - - + + + diff --git a/Disco.Client/Properties/AssemblyInfo.cs b/Disco.Client/Properties/AssemblyInfo.cs index 1a485eed..00a5bb61 100644 --- a/Disco.Client/Properties/AssemblyInfo.cs +++ b/Disco.Client/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0516.2043")] -[assembly: AssemblyFileVersion("1.2.0516.2043")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2016")] +[assembly: AssemblyFileVersion("1.2.0603.2016")] \ No newline at end of file diff --git a/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs index 46b3547e..5e8d9eec 100644 --- a/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs +++ b/Disco.ClientBootstrapper/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0516.2043")] -[assembly: AssemblyFileVersion("1.2.0516.2043")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2016")] +[assembly: AssemblyFileVersion("1.2.0603.2016")] \ No newline at end of file diff --git a/Disco.Data/Properties/AssemblyInfo.cs b/Disco.Data/Properties/AssemblyInfo.cs index ee8c1dfe..2ca87e2d 100644 --- a/Disco.Data/Properties/AssemblyInfo.cs +++ b/Disco.Data/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0603.1734")] -[assembly: AssemblyFileVersion("1.2.0603.1734")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2017")] +[assembly: AssemblyFileVersion("1.2.0603.2017")] \ No newline at end of file diff --git a/Disco.Models/Properties/AssemblyInfo.cs b/Disco.Models/Properties/AssemblyInfo.cs index b2ad8c2f..f5cbcc3c 100644 --- a/Disco.Models/Properties/AssemblyInfo.cs +++ b/Disco.Models/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0603.1734")] -[assembly: AssemblyFileVersion("1.2.0603.1734")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2017")] +[assembly: AssemblyFileVersion("1.2.0603.2017")] \ No newline at end of file diff --git a/Disco.Services/Disco.Services.csproj b/Disco.Services/Disco.Services.csproj index f6624464..43aa97a8 100644 --- a/Disco.Services/Disco.Services.csproj +++ b/Disco.Services/Disco.Services.csproj @@ -41,10 +41,11 @@ False - ..\packages\Microsoft.AspNet.SignalR.Core.1.1.0\lib\net40\Microsoft.AspNet.SignalR.Core.dll + ..\packages\Microsoft.AspNet.SignalR.Core.1.1.2\lib\net40\Microsoft.AspNet.SignalR.Core.dll - - ..\packages\Microsoft.AspNet.SignalR.Owin.1.1.0\lib\net45\Microsoft.AspNet.SignalR.Owin.dll + + False + ..\packages\Microsoft.AspNet.SignalR.Owin.1.1.2\lib\net45\Microsoft.AspNet.SignalR.Owin.dll True @@ -159,7 +160,7 @@ - + diff --git a/Disco.Services/Properties/AssemblyInfo.cs b/Disco.Services/Properties/AssemblyInfo.cs index 24466d08..ac698c56 100644 --- a/Disco.Services/Properties/AssemblyInfo.cs +++ b/Disco.Services/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0603.1734")] -[assembly: AssemblyFileVersion("1.2.0603.1734")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2017")] +[assembly: AssemblyFileVersion("1.2.0603.2017")] \ No newline at end of file diff --git a/Disco.Services/packages.config b/Disco.Services/packages.config index 9c799d15..ce77716e 100644 --- a/Disco.Services/packages.config +++ b/Disco.Services/packages.config @@ -1,8 +1,8 @@  - - + + diff --git a/Disco.Web.Extensions/Disco.Web.Extensions.csproj b/Disco.Web.Extensions/Disco.Web.Extensions.csproj index a4189905..98714a3c 100644 --- a/Disco.Web.Extensions/Disco.Web.Extensions.csproj +++ b/Disco.Web.Extensions/Disco.Web.Extensions.csproj @@ -54,27 +54,27 @@ True - ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.Helpers.dll + ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.Helpers.dll True - ..\packages\Microsoft.AspNet.Mvc.4.0.20710.0\lib\net40\System.Web.Mvc.dll + ..\packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll True - ..\packages\Microsoft.AspNet.Razor.2.0.20715.0\lib\net40\System.Web.Razor.dll + ..\packages\Microsoft.AspNet.Razor.2.0.30506.0\lib\net40\System.Web.Razor.dll True - ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.dll + ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.dll True - ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Deployment.dll + ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Deployment.dll True - ..\packages\Microsoft.AspNet.WebPages.2.0.20710.0\lib\net40\System.Web.WebPages.Razor.dll + ..\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll @@ -134,7 +134,7 @@ - + diff --git a/Disco.Web.Extensions/Properties/AssemblyInfo.cs b/Disco.Web.Extensions/Properties/AssemblyInfo.cs index 8c6042a5..c78a7e0e 100644 --- a/Disco.Web.Extensions/Properties/AssemblyInfo.cs +++ b/Disco.Web.Extensions/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.0527.1408")] -[assembly: AssemblyFileVersion("1.2.0527.1408")] \ No newline at end of file +[assembly: AssemblyVersion("1.2.0603.2017")] +[assembly: AssemblyFileVersion("1.2.0603.2017")] \ No newline at end of file diff --git a/Disco.Web.Extensions/packages.config b/Disco.Web.Extensions/packages.config index 0f150efe..d95f76a5 100644 --- a/Disco.Web.Extensions/packages.config +++ b/Disco.Web.Extensions/packages.config @@ -1,9 +1,9 @@  - - - + + + diff --git a/Disco.Web/ClientSource/Scripts/Core.js b/Disco.Web/ClientSource/Scripts/Core.js index be674179..52419ddd 100644 --- a/Disco.Web/ClientSource/Scripts/Core.js +++ b/Disco.Web/ClientSource/Scripts/Core.js @@ -1393,9 +1393,9 @@ window.Modernizr = (function( window, document, undefined ) { })(this, this.document); -///#source 1 1 /ClientSource/Scripts/Core/jquery-2.0.0.js +///#source 1 1 /ClientSource/Scripts/Core/jquery-2.0.2.js /*! - * jQuery JavaScript Library v2.0.0 + * jQuery JavaScript Library v2.0.2 * http://jquery.com/ * * Includes Sizzle.js @@ -1405,7 +1405,7 @@ window.Modernizr = (function( window, document, undefined ) { * Released under the MIT license * http://jquery.org/license * - * Date: 2013-04-18 + * Date: 2013-05-30T21:25Z */ (function( window, undefined ) { @@ -1442,7 +1442,7 @@ var // List of deleted data cache ids, so we can reuse them core_deletedIds = [], - core_version = "2.0.0", + core_version = "2.0.2", // Save a reference to some core methods core_concat = core_deletedIds.concat, @@ -1468,7 +1468,7 @@ var // A simple way to check for HTML strings // Prioritize #id over to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) - rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/, + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, // Match a standalone tag rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, @@ -2261,18 +2261,19 @@ function isArraylike( obj ) { // All jQuery objects should point back to these rootjQuery = jQuery(document); /*! - * Sizzle CSS Selector Engine v1.9.2-pre + * Sizzle CSS Selector Engine v1.9.4-pre * http://sizzlejs.com/ * * Copyright 2013 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2013-04-16 + * Date: 2013-05-27 */ (function( window, undefined ) { var i, + support, cachedruns, Expr, getText, @@ -2294,7 +2295,6 @@ var i, // Instance-specific data expando = "sizzle" + -(new Date()), preferredDoc = window.document, - support = {}, dirruns = 0, done = 0, classCache = createCache(), @@ -2307,7 +2307,8 @@ var i, strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, - // Array methods + // Instance methods + hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, @@ -2372,7 +2373,7 @@ var i, "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "boolean": new RegExp( "^(?:" + booleans + ")$", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), // For use in libraries implementing .is() // We use this for POS matching in `select` "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + @@ -2390,11 +2391,13 @@ var i, rescape = /'|\\/g, // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, - funescape = function( _, escaped ) { + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { var high = "0x" + escaped - 0x10000; // NaN means non-codepoint - return high !== high ? + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? escaped : // BMP codepoint high < 0 ? @@ -2432,63 +2435,6 @@ try { }; } -/** - * For feature detection - * @param {Function} fn The function to test for native support - */ -function isNative( fn ) { - return rnative.test( fn + "" ); -} - -/** - * Create key-value caches of limited size - * @returns {Function(string, Object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var cache, - keys = []; - - return (cache = function( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key += " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key ] = value); - }); -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created div and expects a boolean result - */ -function assert( fn ) { - var div = document.createElement("div"); - - try { - return !!fn( div ); - } catch (e) { - return false; - } finally { - if ( div.parentNode ) { - div.parentNode.removeChild( div ); - } - // release memory in IE - div = null; - } -} - function Sizzle( selector, context, results, seed ) { var match, elem, m, nodeType, // QSA vars @@ -2598,6 +2544,195 @@ function Sizzle( selector, context, results, seed ) { return select( selector.replace( rtrim, "$1" ), context, results, seed ); } +/** + * For feature detection + * @param {Function} fn The function to test for native support + */ +function isNative( fn ) { + return rnative.test( fn + "" ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied if the test fails + * @param {Boolean} test The result of a test. If true, null will be set as the handler in leiu of the specified handler + */ +function addHandle( attrs, handler, test ) { + attrs = attrs.split("|"); + var current, + i = attrs.length, + setHandle = test ? null : handler; + + while ( i-- ) { + // Don't override a user's handler + if ( !(current = Expr.attrHandle[ attrs[i] ]) || current === handler ) { + Expr.attrHandle[ attrs[i] ] = setHandle; + } + } +} + +/** + * Fetches boolean attributes by node + * @param {Element} elem + * @param {String} name + */ +function boolHandler( elem, name ) { + // XML does not need to be checked as this will not be assigned for XML documents + var val = elem.getAttributeNode( name ); + return val && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; +} + +/** + * Fetches attributes without interpolation + * http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx + * @param {Element} elem + * @param {String} name + */ +function interpolationHandler( elem, name ) { + // XML does not need to be checked as this will not be assigned for XML documents + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); +} + +/** + * Uses defaultValue to retrieve value in IE6/7 + * @param {Element} elem + * @param {String} name + */ +function valueHandler( elem ) { + // Ignore the value *property* on inputs by using defaultValue + // Fallback to Sizzle.attr by returning undefined where appropriate + // XML does not need to be checked as this will not be assigned for XML documents + if ( elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns Returns -1 if a precedes b, 1 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + /** * Detect xml * @param {Element|Object} elem An element or a document @@ -2609,13 +2744,17 @@ isXML = Sizzle.isXML = function( elem ) { return documentElement ? documentElement.nodeName !== "HTML" : false; }; +// Expose support vars for convenience +support = Sizzle.support = {}; + /** * Sets document-related variables once based on the current document * @param {Element|Object} [doc] An element or document object to use to set the document * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { - var doc = node ? node.ownerDocument || node : preferredDoc; + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.parentWindow; // If no document and documentElement is available, return if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { @@ -2629,19 +2768,56 @@ setDocument = Sizzle.setDocument = function( node ) { // Support tests documentIsHTML = !isXML( doc ); - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( div ) { - div.appendChild( doc.createComment("") ); - return !div.getElementsByTagName("*").length; - }); + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + if ( parent && parent.frameElement ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) support.attributes = assert(function( div ) { + + // Support: IE<8 + // Prevent attribute/property "interpolation" + div.innerHTML = ""; + addHandle( "type|href|height|width", interpolationHandler, div.firstChild.getAttribute("href") === "#" ); + + // Support: IE<9 + // Use getAttributeNode to fetch booleans when getAttribute lies + addHandle( booleans, boolHandler, div.getAttribute("disabled") == null ); + div.className = "i"; return !div.getAttribute("className"); }); + // Support: IE<9 + // Retrieving value should defer to defaultValue + support.input = assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; + }); + + // IE6/7 still return empty string for value, + // but are actually retrieving the property + addHandle( "value", valueHandler, support.attributes && support.input ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + // Check if getElementsByClassName can be trusted support.getElementsByClassName = assert(function( div ) { div.innerHTML = "
"; @@ -2654,19 +2830,9 @@ setDocument = Sizzle.setDocument = function( node ) { return div.getElementsByClassName("i").length === 2; }); - // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) - // Detached nodes confoundingly follow *each other* - support.sortDetached = assert(function( div1 ) { - // Should return 1, but returns 4 (following) - return div1.compareDocumentPosition( document.createElement("div") ) & 1; - }); - // Support: IE<10 // Check if getElementById returns elements by name - // Support: Windows 8 Native Apps - // Assigning innerHTML with "name" attributes throws uncatchable exceptions - // (http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx) - // and the broken getElementById methods don't pick up programatically-set names, + // The broken getElementById methods don't pick up programatically-set names, // so use a roundabout getElementsByName test support.getById = assert(function( div ) { docElem.appendChild( div ).id = expando; @@ -2690,17 +2856,10 @@ setDocument = Sizzle.setDocument = function( node ) { }; }; } else { - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { - var m = context.getElementById( id ); + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; - return m ? - m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ? - [m] : - undefined : - []; - } - }; Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { @@ -2743,6 +2902,9 @@ setDocument = Sizzle.setDocument = function( node ) { } }; + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + // QSA and matchesSelector support // matchesSelector(:active) reports false when true (IE9/Opera 11.5) @@ -2787,7 +2949,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Should not select anything // Support: Windows 8 Native Apps // The type attribute is restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = doc.createElement("input"); input.setAttribute( "type", "hidden" ); div.appendChild( input ).setAttribute( "t", "" ); @@ -2827,6 +2989,9 @@ setDocument = Sizzle.setDocument = function( node ) { rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + /* Contains + ---------------------------------------------------------------------- */ + // Element contains another // Purposefully does not implement inclusive descendent // As in, an element does not contain itself @@ -2851,6 +3016,16 @@ setDocument = Sizzle.setDocument = function( node ) { return false; }; + /* Sorting + ---------------------------------------------------------------------- */ + + // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) + // Detached nodes confoundingly follow *each other* + support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( doc.createElement("div") ) & 1; + }); + // Document order sorting sortOrder = docElem.compareDocumentPosition ? function( a, b ) { @@ -2941,7 +3116,7 @@ setDocument = Sizzle.setDocument = function( node ) { 0; }; - return document; + return doc; }; Sizzle.matches = function( expr, elements ) { @@ -2957,10 +3132,9 @@ Sizzle.matchesSelector = function( elem, expr ) { // Make sure that attribute selectors are quoted expr = expr.replace( rattributeQuotes, "='$1']" ); - // rbuggyQSA always contains :focus, so no need for an existence check if ( support.matchesSelector && documentIsHTML && - (!rbuggyMatches || !rbuggyMatches.test(expr)) && - (!rbuggyQSA || !rbuggyQSA.test(expr)) ) { + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { try { var ret = matches.call( elem, expr ); @@ -2993,7 +3167,10 @@ Sizzle.attr = function( elem, name ) { } var fn = Expr.attrHandle[ name.toLowerCase() ], - val = fn && fn( elem, name, !documentIsHTML ); + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = ( fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined ); return val === undefined ? support.attributes || !documentIsHTML ? @@ -3008,7 +3185,10 @@ Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; -// Document sorting and removing duplicates +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ Sizzle.uniqueSort = function( results ) { var elem, duplicates = [], @@ -3034,87 +3214,6 @@ Sizzle.uniqueSort = function( results ) { return results; }; -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns Returns -1 if a precedes b, 1 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE ); - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -// Fetches boolean attributes by node -function boolHandler( elem, name, isXML ) { - var val; - return isXML ? - undefined : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - elem[ name ] === true ? name.toLowerCase() : null; -} - -// Fetches attributes without interpolation -// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -function interpolationHandler( elem, name, isXML ) { - var val; - return isXML ? - undefined : - (val = elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 )); -} - -// Returns a function to use in pseudos for input types -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -// Returns a function to use in pseudos for buttons -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -// Returns a function to use in pseudos for positionals -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - /** * Utility function for retrieving the text value of an array of DOM nodes * @param {Array|Element} elem @@ -3225,7 +3324,7 @@ Expr = Sizzle.selectors = { } // Accept quoted arguments as-is - if ( match[4] ) { + if ( match[3] && match[4] !== undefined ) { match[2] = match[4]; // Strip excess characters from unquoted arguments @@ -3653,11 +3752,11 @@ function tokenize( selector, parseOnly ) { // Combinators if ( (match = rcombinators.exec( soFar )) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, // Cast descendant combinators to space type: match[0].replace( rtrim, " " ) - } ); + }); soFar = soFar.slice( matched.length ); } @@ -3666,11 +3765,11 @@ function tokenize( selector, parseOnly ) { if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || (match = preFilters[ type ]( match ))) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, type: type, matches: match - } ); + }); soFar = soFar.slice( matched.length ); } } @@ -3917,7 +4016,10 @@ function matcherFromTokens( tokens ) { } return setMatcher( i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( tokens.slice( 0, i - 1 ) ).replace( rtrim, "$1" ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), @@ -4079,14 +4181,13 @@ function select( selector, context, results, seed ) { // Take a shortcut and set the context if the root selector is an ID tokens = match[0] = match[0].slice( 0 ); if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && + support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; } - selector = selector.slice( tokens.shift().value.length ); } @@ -4154,31 +4255,6 @@ setDocument(); [0, 0].sort( sortOrder ); support.detectDuplicates = hasDuplicate; -// Support: IE<8 -// Prevent attribute/property "interpolation" -assert(function( div ) { - div.innerHTML = ""; - if ( div.firstChild.getAttribute("href") !== "#" ) { - var attrs = "type|href|height|width".split("|"), - i = attrs.length; - while ( i-- ) { - Expr.attrHandle[ attrs[i] ] = interpolationHandler; - } - } -}); - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -assert(function( div ) { - if ( div.getAttribute("disabled") != null ) { - var attrs = booleans.split("|"), - i = attrs.length; - while ( i-- ) { - Expr.attrHandle[ attrs[i] ] = boolHandler; - } - } -}); - jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; jQuery.expr[":"] = jQuery.expr.pseudos; @@ -4732,13 +4808,9 @@ Data.prototype = { // Handle: [ owner, { properties } ] args } else { - // Support an expectation from the old data system where plain - // objects used to initialize would be set to the cache by - // reference, instead of having properties and values copied. - // Note, this will kill the connection between - // "this.cache[ unlock ]" and "cache" + // Fresh assignments by object are shallow copied if ( jQuery.isEmptyObject( cache ) ) { - this.cache[ unlock ] = data; + jQuery.extend( this.cache[ unlock ], data ); // Otherwise, copy the properties one-by-one to the cache object } else { for ( prop in data ) { @@ -4746,6 +4818,7 @@ Data.prototype = { } } } + return cache; }, get: function( owner, key ) { // Either a valid cache is found, or will be created. @@ -4787,7 +4860,7 @@ Data.prototype = { return value !== undefined ? value : key; }, remove: function( owner, key ) { - var i, name, + var i, name, camel, unlock = this.key( owner ), cache = this.cache[ unlock ]; @@ -4805,13 +4878,14 @@ Data.prototype = { // This will only penalize the array argument path. name = key.concat( key.map( jQuery.camelCase ) ); } else { + camel = jQuery.camelCase( key ); // Try the string as a key before any manipulation if ( key in cache ) { - name = [ key ]; + name = [ key, camel ]; } else { // If a key with the spaces exists, use it. // Otherwise, create an array by matching non-whitespace - name = jQuery.camelCase( key ); + name = camel; name = name in cache ? [ name ] : ( name.match( core_rnotwhite ) || [] ); } @@ -4829,7 +4903,9 @@ Data.prototype = { ); }, discard: function( owner ) { - delete this.cache[ this.key( owner ) ]; + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } } }; @@ -4882,7 +4958,7 @@ jQuery.fn.extend({ name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { - name = jQuery.camelCase( name.substring(5) ); + name = jQuery.camelCase( name.slice(5) ); dataAttr( elem, name, data[ name ] ); } } @@ -5028,7 +5104,6 @@ jQuery.extend({ startLength--; } - hooks.cur = fn; if ( fn ) { // Add a progress sentinel to prevent the fx queue from being @@ -5138,7 +5213,7 @@ jQuery.fn.extend({ } }); var nodeHook, boolHook, - rclass = /[\t\r\n]/g, + rclass = /[\t\r\n\f]/g, rreturn = /\r/g, rfocusable = /^(?:input|select|textarea|button)$/i; @@ -5321,15 +5396,14 @@ jQuery.fn.extend({ isFunction = jQuery.isFunction( value ); return this.each(function( i ) { - var val, - self = jQuery(this); + var val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { - val = value.call( this, i, self.val() ); + val = value.call( this, i, jQuery( this ).val() ); } else { val = value; } @@ -5444,7 +5518,7 @@ jQuery.extend({ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { name = name.toLowerCase(); hooks = jQuery.attrHooks[ name ] || - ( jQuery.expr.match.boolean.test( name ) ? boolHook : nodeHook ); + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); } if ( value !== undefined ) { @@ -5483,7 +5557,7 @@ jQuery.extend({ propName = jQuery.propFix[ name ] || name; // Boolean attributes get special treatment (#10870) - if ( jQuery.expr.match.boolean.test( name ) ) { + if ( jQuery.expr.match.bool.test( name ) ) { // Set corresponding property to false elem[ propName ] = false; } @@ -5567,7 +5641,7 @@ boolHook = { return name; } }; -jQuery.each( jQuery.expr.match.boolean.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; jQuery.expr.attrHandle[ name ] = function( elem, name, isXML ) { @@ -6148,6 +6222,12 @@ jQuery.event = { event[ prop ] = originalEvent[ prop ]; } + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + // Support: Safari 6.0+, Chrome < 28 // Target should not be a text node (#504, #13143) if ( event.target.nodeType === 3 ) { @@ -6459,6 +6539,7 @@ jQuery.fn.extend({ } }); var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, rneedsContext = jQuery.expr.match.needsContext, // methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { @@ -6470,13 +6551,14 @@ var isSimple = /^.[^:#\[\.,]*$/, jQuery.fn.extend({ find: function( selector ) { - var self, matched, i, - l = this.length; + var i, + ret = [], + self = this, + len = self.length; if ( typeof selector !== "string" ) { - self = this; return this.pushStack( jQuery( selector ).filter(function() { - for ( i = 0; i < l; i++ ) { + for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } @@ -6484,15 +6566,14 @@ jQuery.fn.extend({ }) ); } - matched = []; - for ( i = 0; i < l; i++ ) { - jQuery.find( selector, this[ i ], matched ); + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); } // Needed because $( selector, context ) becomes $( context ).find( selector ) - matched = this.pushStack( l > 1 ? jQuery.unique( matched ) : matched ); - matched.selector = ( this.selector ? this.selector + " " : "" ) + selector; - return matched; + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; }, has: function( target ) { @@ -6518,14 +6599,16 @@ jQuery.fn.extend({ }, is: function( selector ) { - return !!selector && ( - typeof selector === "string" ? - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - rneedsContext.test( selector ) ? - jQuery( selector, this.context ).index( this[ 0 ] ) >= 0 : - jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0 ); + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; }, closest: function( selectors, context ) { @@ -6636,9 +6719,7 @@ jQuery.each({ return jQuery.sibling( elem.firstChild ); }, contents: function( elem ) { - return jQuery.nodeName( elem, "iframe" ) ? - elem.contentDocument || elem.contentWindow.document : - jQuery.merge( [], elem.childNodes ); + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { @@ -6658,8 +6739,8 @@ jQuery.each({ jQuery.unique( matched ); } - // Reverse order for parents* and prev* - if ( name[ 0 ] === "p" ) { + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { matched.reverse(); } } @@ -6758,6 +6839,7 @@ var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^> option: [ 1, "" ], thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], tr: [ 2, "", "
" ], td: [ 3, "", "
" ], @@ -6767,7 +6849,7 @@ var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^> // Support: IE 9 wrapMap.optgroup = wrapMap.option; -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.col = wrapMap.thead; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; jQuery.fn.extend({ @@ -6915,6 +6997,10 @@ jQuery.fn.extend({ parent = args[ i++ ]; if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } jQuery( this ).remove(); parent.insertBefore( elem, next ); } @@ -7170,35 +7256,35 @@ jQuery.extend({ }, cleanData: function( elems ) { - var data, elem, type, - l = elems.length, - i = 0, - special = jQuery.event.special; + var data, elem, events, type, key, j, + special = jQuery.event.special, + i = 0; - for ( ; i < l; i++ ) { - elem = elems[ i ]; + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( Data.accepts( elem ) ) { + key = elem[ data_priv.expando ]; - if ( jQuery.acceptData( elem ) ) { + if ( key && (data = data_priv.cache[ key ]) ) { + events = Object.keys( data.events || {} ); + if ( events.length ) { + for ( j = 0; (type = events[j]) !== undefined; j++ ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); - data = data_priv.access( elem ); - - if ( data ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } } } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } } } - // Discard any remaining `private` and `user` data - // One day we'll replace the dual arrays with a WeakMap and this won't be an issue. - // (Splices the data objects out of the internal cache arrays) - data_user.discard( elem ); - data_priv.discard( elem ); + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; } }, @@ -7206,10 +7292,10 @@ jQuery.extend({ return jQuery.ajax({ url: url, type: "GET", - dataType: "text", + dataType: "script", async: false, global: false, - success: jQuery.globalEval + "throws": true }); } }); @@ -7264,11 +7350,9 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( data_priv.hasData( src ) ) { pdataOld = data_priv.access( src ); - pdataCur = jQuery.extend( {}, pdataOld ); + pdataCur = data_priv.set( dest, pdataOld ); events = pdataOld.events; - data_priv.set( dest, pdataCur ); - if ( events ) { delete pdataCur.handle; pdataCur.events = {}; @@ -7549,7 +7633,7 @@ jQuery.extend({ } }, - // Exclude the following css properties to add px + // Don't automatically add "px" to these possibly-unitless properties cssNumber: { "columnCount": true, "fillOpacity": true, @@ -8690,7 +8774,7 @@ jQuery.extend({ } // if no content - if ( status === 204 ) { + if ( status === 204 || s.type === "HEAD" ) { statusText = "nocontent"; // if not modified @@ -9184,44 +9268,51 @@ var fxNow, timerId, animationPrefilters = [ defaultPrefilter ], tweeners = { "*": [function( prop, value ) { - var end, unit, - tween = this.createTween( prop, value ), - parts = rfxnum.exec( value ), + var tween = this.createTween( prop, value ), target = tween.cur(), - start = +target || 0, + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), scale = 1, maxIterations = 20; - if ( parts ) { - end = +parts[2]; - unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; - // We need to compute starting value - if ( unit !== "px" && start ) { - // Iteratively approximate from a nonzero starting point - // Prefer the current property, because this process will be trivial if it uses the same units - // Fallback to end or a simple constant - start = jQuery.css( tween.elem, prop, true ) || end || 1; + // Make sure we update the tween properties later on + parts = parts || []; - do { - // If previous iteration zeroed out, double until we get *something* - // Use a string for doubling factor so we don't accidentally see scale as unchanged below - scale = scale || ".5"; + // Iteratively approximate from a nonzero starting point + start = +target || 1; - // Adjust and apply - start = start / scale; - jQuery.style( tween.elem, prop, start + unit ); + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + scale = scale || ".5"; - // Update scale, tolerating zero or NaN from tween.cur() - // And breaking the loop if scale is unchanged or perfect, or if we've just had enough - } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); - } + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); - tween.unit = unit; - tween.start = start; - // If a +=/-= token was provided, we're doing a relative animation - tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end; + // Update scale, tolerating zero or NaN from tween.cur() + // And breaking the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + return tween; }] }; @@ -9234,19 +9325,18 @@ function createFxNow() { return ( fxNow = jQuery.now() ); } -function createTweens( animation, props ) { - jQuery.each( props, function( prop, value ) { - var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( collection[ index ].call( animation, prop, value ) ) { +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { - // we're done with this property - return; - } + // we're done with this property + return tween; } - }); + } } function Animation( elem, properties, options ) { @@ -9332,7 +9422,7 @@ function Animation( elem, properties, options ) { } } - createTweens( animation, props ); + jQuery.map( props, createTween, animation ); if ( jQuery.isFunction( animation.opts.start ) ) { animation.opts.start.call( elem, animation ); @@ -9422,12 +9512,12 @@ jQuery.Animation = jQuery.extend( Animation, { function defaultPrefilter( elem, props, opts ) { /* jshint validthis: true */ - var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire, + var prop, value, toggle, tween, hooks, oldfire, anim = this, - style = elem.style, orig = {}, - handled = [], - hidden = elem.nodeType && isHidden( elem ); + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = data_priv.get( elem, "fxshow" ); // handle queue: false promises if ( !opts.queue ) { @@ -9483,30 +9573,31 @@ function defaultPrefilter( elem, props, opts ) { // show/hide pass - dataShow = data_priv.get( elem, "fxshow" ); - for ( index in props ) { - value = props[ index ]; + for ( prop in props ) { + value = props[ prop ]; if ( rfxtypes.exec( value ) ) { - delete props[ index ]; + delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden - if( value === "show" && dataShow !== undefined && dataShow[ index ] !== undefined ) { + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { hidden = true; } else { continue; } } - handled.push( index ); + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); } } - length = handled.length; - if ( length ) { - dataShow = data_priv.get( elem, "fxshow" ) || data_priv.access( elem, "fxshow", {} ); - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = data_priv.access( elem, "fxshow", {} ); } // store state if its toggle - enables .stop().toggle() to "reverse" @@ -9528,10 +9619,8 @@ function defaultPrefilter( elem, props, opts ) { jQuery.style( elem, prop, orig[ prop ] ); } }); - for ( index = 0 ; index < length ; index++ ) { - prop = handled[ index ]; - tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 ); - orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop ); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); if ( !( prop in dataShow ) ) { dataShow[ prop ] = tween.start; @@ -9662,9 +9751,7 @@ jQuery.fn.extend({ doAnimation = function() { // Operate on a copy of prop so per-property easing won't be lost var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - doAnimation.finish = function() { - anim.stop( true ); - }; + // Empty animations, or finishing resolves immediately if ( empty || data_priv.get( this, "finish" ) ) { anim.stop( true ); @@ -9744,8 +9831,8 @@ jQuery.fn.extend({ // empty the queue first jQuery.queue( this, type, [] ); - if ( hooks && hooks.cur && hooks.cur.finish ) { - hooks.cur.finish.call( this ); + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); } // look for any active animations, and finish them @@ -10123,7 +10210,7 @@ jQuery.fn.size = function() { jQuery.fn.andSelf = jQuery.fn.addBack; // })(); -if ( typeof module === "object" && typeof module.exports === "object" ) { +if ( typeof module === "object" && module && typeof module.exports === "object" ) { // Expose jQuery as module.exports in loaders that implement the Node // module pattern (including browserify). Do not create the global, since // the user will be storing it themselves locally, and globals are frowned @@ -11648,8 +11735,8 @@ $.format = $.validator.format; /// contains the maximum value. The default is "max". /// return this.add(adapterName, [minAttribute || "min", maxAttribute || "max"], function (options) { - var min = Number(options.params.min), - max = Number(options.params.max); + var min = options.params.min, + max = options.params.max; if (min && max) { setValidationValues(options, minMaxRuleName, [min, max]); diff --git a/Disco.Web/ClientSource/Scripts/Core.js.bundle b/Disco.Web/ClientSource/Scripts/Core.js.bundle index a2118a4c..b58a1a52 100644 --- a/Disco.Web/ClientSource/Scripts/Core.js.bundle +++ b/Disco.Web/ClientSource/Scripts/Core.js.bundle @@ -1,7 +1,7 @@ /ClientSource/Scripts/Core/modernizr-2.6.2.js - /ClientSource/Scripts/Core/jquery-2.0.0.js + /ClientSource/Scripts/Core/jquery-2.0.2.js /ClientSource/Scripts/Core/jquery.validate.js /ClientSource/Scripts/Core/jquery.validate.unobtrusive.js /ClientSource/Scripts/Core/disco.unobtrusiveValidation.extensions.js diff --git a/Disco.Web/ClientSource/Scripts/Core.min.js b/Disco.Web/ClientSource/Scripts/Core.min.js index 10e18e7e..671e9b4a 100644 --- a/Disco.Web/ClientSource/Scripts/Core.min.js +++ b/Disco.Web/ClientSource/Scripts/Core.min.js @@ -1,2 +1,2 @@ -window.Modernizr=function(n,t,i){function a(n){c.cssText=n}function vt(n,t){return a(y.join(n+";")+(t||""))}function h(n,t){return typeof n===t}function v(n,t){return!!~(""+n).indexOf(t)}function lt(n,t){var u,r;for(u in n)if(r=n[u],!v(r,"-")&&c[r]!==i)return t=="pfx"?r:!0;return!1}function yt(n,t,r){var f,u;for(f in n)if(u=t[n[f]],u!==i)return r===!1?n[f]:h(u,"function")?u.bind(r||t):u;return!1}function f(n,t,i){var r=n.charAt(0).toUpperCase()+n.slice(1),u=(n+" "+ot.join(r+" ")+r).split(" ");return h(t,"string")||h(t,"undefined")?lt(u,t):(u=(n+" "+st.join(r+" ")+r).split(" "),yt(u,t,i))}function pt(){u.input=function(i){for(var r=0,u=i.length;r',n,"<\/style>"].join(""),f.id=e,(h?f:o).innerHTML+=l,o.appendChild(f),h||(o.style.background="",o.style.overflow="hidden",v=s.style.overflow,s.style.overflow="hidden",s.appendChild(o)),a=i(f,n),h?f.parentNode.removeChild(f):(o.parentNode.removeChild(o),s.style.overflow=v),!!a},at=function(t){var i=n.matchMedia||n.msMatchMedia,r;return i?i(t).matches:(l("@media "+t+" { #"+e+" { position: absolute; } }",function(t){r=(n.getComputedStyle?getComputedStyle(t,null):t.currentStyle).position=="absolute"}),r)},ct=function(){function r(r,u){u=u||t.createElement(n[r]||"div"),r="on"+r;var f=r in u;return f||(u.setAttribute||(u=t.createElement("div")),u.setAttribute&&u.removeAttribute&&(u.setAttribute(r,""),f=h(u[r],"function"),h(u[r],"undefined")||(u[r]=i),u.removeAttribute(r))),u=null,f}var n={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return r}(),it={}.hasOwnProperty,rt,k;rt=h(it,"undefined")||h(it.call,"undefined")?function(n,t){return t in n&&h(n.constructor.prototype[t],"undefined")}:function(n,t){return it.call(n,t)},Function.prototype.bind||(Function.prototype.bind=function(n){var t=this,i,r;if(typeof t!="function")throw new TypeError;return i=tt.call(arguments,1),r=function(){var f,e,u;return this instanceof r?(f=function(){},f.prototype=t.prototype,e=new f,u=t.apply(e,i.concat(tt.call(arguments))),Object(u)===u)?u:e:t.apply(n,i.concat(tt.call(arguments)))},r}),r.flexbox=function(){return f("flexWrap")},r.flexboxlegacy=function(){return f("boxDirection")},r.canvas=function(){var n=t.createElement("canvas");return!!(n.getContext&&n.getContext("2d"))},r.canvastext=function(){return!!(u.canvas&&h(t.createElement("canvas").getContext("2d").fillText,"function"))},r.webgl=function(){return!!n.WebGLRenderingContext},r.touch=function(){var i;return"ontouchstart"in n||n.DocumentTouch&&t instanceof DocumentTouch?i=!0:l(["@media (",y.join("touch-enabled),("),e,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(n){i=n.offsetTop===9}),i},r.geolocation=function(){return"geolocation"in navigator},r.postmessage=function(){return!!n.postMessage},r.websqldatabase=function(){return!!n.openDatabase},r.indexedDB=function(){return!!f("indexedDB",n)},r.hashchange=function(){return ct("hashchange",n)&&(t.documentMode===i||t.documentMode>7)},r.history=function(){return!!(n.history&&history.pushState)},r.draganddrop=function(){var n=t.createElement("div");return"draggable"in n||"ondragstart"in n&&"ondrop"in n},r.websockets=function(){return"WebSocket"in n||"MozWebSocket"in n},r.rgba=function(){return a("background-color:rgba(150,255,150,.5)"),v(c.backgroundColor,"rgba")},r.hsla=function(){return a("background-color:hsla(120,40%,100%,.5)"),v(c.backgroundColor,"rgba")||v(c.backgroundColor,"hsla")},r.multiplebgs=function(){return a("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(c.background)},r.backgroundsize=function(){return f("backgroundSize")},r.borderimage=function(){return f("borderImage")},r.borderradius=function(){return f("borderRadius")},r.boxshadow=function(){return f("boxShadow")},r.textshadow=function(){return t.createElement("div").style.textShadow===""},r.opacity=function(){return vt("opacity:.55"),/^0.55$/.test(c.opacity)},r.cssanimations=function(){return f("animationName")},r.csscolumns=function(){return f("columnCount")},r.cssgradients=function(){var n="background-image:";return a((n+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+n)+y.join("linear-gradient(left top,#9f9, white);"+n)).slice(0,-n.length)),v(c.backgroundImage,"gradient")},r.cssreflections=function(){return f("boxReflect")},r.csstransforms=function(){return!!f("transform")},r.csstransforms3d=function(){var n=!!f("perspective");return n&&"webkitPerspective"in s.style&&l("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(t){n=t.offsetLeft===9&&t.offsetHeight===3}),n},r.csstransitions=function(){return f("transition")},r.fontface=function(){var n;return l('@font-face {font-family:"font";src:url("https://")}',function(i,r){var f=t.getElementById("smodernizr"),u=f.sheet||f.styleSheet,e=u?u.cssRules&&u.cssRules[0]?u.cssRules[0].cssText:u.cssText||"":"";n=/src/i.test(e)&&e.indexOf(r.split(" ")[0])===0}),n},r.generatedcontent=function(){var n;return l(["#",e,"{font:0/0 a}#",e,':after{content:"',g,'";visibility:hidden;font:3px/1 a}'].join(""),function(t){n=t.offsetHeight>=3}),n},r.video=function(){var i=t.createElement("video"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),n.h264=i.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),n.webm=i.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(r){}return n},r.audio=function(){var i=t.createElement("audio"),n=!1;try{(n=!!i.canPlayType)&&(n=new Boolean(n),n.ogg=i.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),n.mp3=i.canPlayType("audio/mpeg;").replace(/^no$/,""),n.wav=i.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),n.m4a=(i.canPlayType("audio/x-m4a;")||i.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(r){}return n},r.localstorage=function(){try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(n){return!1}},r.sessionstorage=function(){try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(n){return!1}},r.webworkers=function(){return!!n.Worker},r.applicationcache=function(){return!!n.applicationCache},r.svg=function(){return!!t.createElementNS&&!!t.createElementNS(p.svg,"svg").createSVGRect},r.inlinesvg=function(){var n=t.createElement("div");return n.innerHTML="",(n.firstChild&&n.firstChild.namespaceURI)==p.svg},r.smil=function(){return!!t.createElementNS&&/SVGAnimate/.test(ft.call(t.createElementNS(p.svg,"animate")))},r.svgclippaths=function(){return!!t.createElementNS&&/SVGClipPath/.test(ft.call(t.createElementNS(p.svg,"clipPath")))};for(k in r)rt(r,k)&&(b=k.toLowerCase(),u[b]=r[k](),nt.push((u[b]?"":"no-")+b));return u.input||pt(),u.addTest=function(n,t){if(typeof n=="object")for(var r in n)rt(n,r)&&u.addTest(r,n[r]);else{if(n=n.toLowerCase(),u[n]!==i)return u;t=typeof t=="function"?t():t,typeof d!="undefined"&&d&&(s.className+=" "+(t?"":"no-")+n),u[n]=t}return u},a(""),ut=o=null,function(n,t){function p(n,t){var i=n.createElement("p"),r=n.getElementsByTagName("head")[0]||n.documentElement;return i.innerHTML="x