| |
| |
| |
| |
| ( function( factory ) { |
| "use strict"; |
|
|
| if ( typeof define === "function" && define.amd ) { |
|
|
| |
| define( [ "jquery" ], function( jQuery ) { |
| return factory( jQuery, window ); |
| } ); |
| } else if ( typeof module === "object" && module.exports ) { |
|
|
| |
| |
| module.exports = factory( require( "jquery" ), window ); |
| } else { |
|
|
| |
| factory( jQuery, window ); |
| } |
| } )( function( jQuery, window ) { |
| "use strict"; |
|
|
| jQuery.migrateVersion = "3.4.1"; |
|
|
| |
| function compareVersions( v1, v2 ) { |
| var i, |
| rVersionParts = /^(\d+)\.(\d+)\.(\d+)/, |
| v1p = rVersionParts.exec( v1 ) || [ ], |
| v2p = rVersionParts.exec( v2 ) || [ ]; |
|
|
| for ( i = 1; i <= 3; i++ ) { |
| if ( +v1p[ i ] > +v2p[ i ] ) { |
| return 1; |
| } |
| if ( +v1p[ i ] < +v2p[ i ] ) { |
| return -1; |
| } |
| } |
| return 0; |
| } |
|
|
| function jQueryVersionSince( version ) { |
| return compareVersions( jQuery.fn.jquery, version ) >= 0; |
| } |
|
|
| |
| |
| var disabledPatches = Object.create( null ); |
|
|
| |
| |
| |
| jQuery.migrateDisablePatches = function() { |
| var i; |
| for ( i = 0; i < arguments.length; i++ ) { |
| disabledPatches[ arguments[ i ] ] = true; |
| } |
| }; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| jQuery.migrateEnablePatches = function() { |
| var i; |
| for ( i = 0; i < arguments.length; i++ ) { |
| delete disabledPatches[ arguments[ i ] ]; |
| } |
| }; |
|
|
| jQuery.migrateIsPatchEnabled = function( patchCode ) { |
| return !disabledPatches[ patchCode ]; |
| }; |
|
|
| ( function() { |
|
|
| |
| |
| |
| if ( !window.console || !window.console.log ) { |
| return; |
| } |
|
|
| |
| if ( !jQuery || !jQueryVersionSince( "3.0.0" ) || |
| jQueryVersionSince( "5.0.0" ) ) { |
| window.console.log( "JQMIGRATE: jQuery 3.x-4.x REQUIRED" ); |
| } |
| if ( jQuery.migrateWarnings ) { |
| window.console.log( "JQMIGRATE: Migrate plugin loaded multiple times" ); |
| } |
|
|
| |
| window.console.log( "JQMIGRATE: Migrate is installed" + |
| ( jQuery.migrateMute ? "" : " with logging active" ) + |
| ", version " + jQuery.migrateVersion ); |
|
|
| } )(); |
|
|
| var warnedAbout = {}; |
|
|
| |
| jQuery.migrateDeduplicateWarnings = true; |
|
|
| |
| jQuery.migrateWarnings = []; |
|
|
| |
| if ( jQuery.migrateTrace === undefined ) { |
| jQuery.migrateTrace = true; |
| } |
|
|
| |
| jQuery.migrateReset = function() { |
| warnedAbout = {}; |
| jQuery.migrateWarnings.length = 0; |
| }; |
|
|
| function migrateWarn( code, msg ) { |
| var console = window.console; |
| if ( jQuery.migrateIsPatchEnabled( code ) && |
| ( !jQuery.migrateDeduplicateWarnings || !warnedAbout[ msg ] ) ) { |
| warnedAbout[ msg ] = true; |
| jQuery.migrateWarnings.push( msg + " [" + code + "]" ); |
| if ( console && console.warn && !jQuery.migrateMute ) { |
| console.warn( "JQMIGRATE: " + msg ); |
| if ( jQuery.migrateTrace && console.trace ) { |
| console.trace(); |
| } |
| } |
| } |
| } |
|
|
| function migrateWarnProp( obj, prop, value, code, msg ) { |
| Object.defineProperty( obj, prop, { |
| configurable: true, |
| enumerable: true, |
| get: function() { |
| migrateWarn( code, msg ); |
| return value; |
| }, |
| set: function( newValue ) { |
| migrateWarn( code, msg ); |
| value = newValue; |
| } |
| } ); |
| } |
|
|
| function migrateWarnFuncInternal( obj, prop, newFunc, code, msg ) { |
| var finalFunc, |
| origFunc = obj[ prop ]; |
|
|
| obj[ prop ] = function() { |
|
|
| |
| |
| |
| |
| if ( msg ) { |
| migrateWarn( code, msg ); |
| } |
|
|
| |
| |
| finalFunc = jQuery.migrateIsPatchEnabled( code ) ? |
| newFunc : |
|
|
| |
| ( origFunc || jQuery.noop ); |
|
|
| return finalFunc.apply( this, arguments ); |
| }; |
| } |
|
|
| function migratePatchAndWarnFunc( obj, prop, newFunc, code, msg ) { |
| if ( !msg ) { |
| throw new Error( "No warning message provided" ); |
| } |
| return migrateWarnFuncInternal( obj, prop, newFunc, code, msg ); |
| } |
|
|
| function migratePatchFunc( obj, prop, newFunc, code ) { |
| return migrateWarnFuncInternal( obj, prop, newFunc, code ); |
| } |
|
|
| if ( window.document.compatMode === "BackCompat" ) { |
|
|
| |
| migrateWarn( "quirks", "jQuery is not compatible with Quirks Mode" ); |
| } |
|
|
| var findProp, |
| class2type = {}, |
| oldInit = jQuery.fn.init, |
| oldFind = jQuery.find, |
|
|
| rattrHashTest = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/, |
| rattrHashGlob = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g, |
|
|
| |
| |
| rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; |
|
|
| migratePatchFunc( jQuery.fn, "init", function( arg1 ) { |
| var args = Array.prototype.slice.call( arguments ); |
|
|
| if ( jQuery.migrateIsPatchEnabled( "selector-empty-id" ) && |
| typeof arg1 === "string" && arg1 === "#" ) { |
|
|
| |
| |
| migrateWarn( "selector-empty-id", "jQuery( '#' ) is not a valid selector" ); |
| args[ 0 ] = []; |
| } |
|
|
| return oldInit.apply( this, args ); |
| }, "selector-empty-id" ); |
|
|
| |
| |
| |
| jQuery.fn.init.prototype = jQuery.fn; |
|
|
| migratePatchFunc( jQuery, "find", function( selector ) { |
| var args = Array.prototype.slice.call( arguments ); |
|
|
| |
| |
| if ( typeof selector === "string" && rattrHashTest.test( selector ) ) { |
|
|
| |
| |
| try { |
| window.document.querySelector( selector ); |
| } catch ( err1 ) { |
|
|
| |
| selector = selector.replace( rattrHashGlob, function( _, attr, op, value ) { |
| return "[" + attr + op + "\"" + value + "\"]"; |
| } ); |
|
|
| |
| |
| try { |
| window.document.querySelector( selector ); |
| migrateWarn( "selector-hash", |
| "Attribute selector with '#' must be quoted: " + args[ 0 ] ); |
| args[ 0 ] = selector; |
| } catch ( err2 ) { |
| migrateWarn( "selector-hash", |
| "Attribute selector with '#' was not fixed: " + args[ 0 ] ); |
| } |
| } |
| } |
|
|
| return oldFind.apply( this, args ); |
| }, "selector-hash" ); |
|
|
| |
| for ( findProp in oldFind ) { |
| if ( Object.prototype.hasOwnProperty.call( oldFind, findProp ) ) { |
| jQuery.find[ findProp ] = oldFind[ findProp ]; |
| } |
| } |
|
|
| |
| migratePatchAndWarnFunc( jQuery.fn, "size", function() { |
| return this.length; |
| }, "size", |
| "jQuery.fn.size() is deprecated and removed; use the .length property" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "parseJSON", function() { |
| return JSON.parse.apply( null, arguments ); |
| }, "parseJSON", |
| "jQuery.parseJSON is deprecated; use JSON.parse" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "holdReady", jQuery.holdReady, |
| "holdReady", "jQuery.holdReady is deprecated" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "unique", jQuery.uniqueSort, |
| "unique", "jQuery.unique is deprecated; use jQuery.uniqueSort" ); |
|
|
| |
| migrateWarnProp( jQuery.expr, "filters", jQuery.expr.pseudos, "expr-pre-pseudos", |
| "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos" ); |
| migrateWarnProp( jQuery.expr, ":", jQuery.expr.pseudos, "expr-pre-pseudos", |
| "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos" ); |
|
|
| |
| if ( jQueryVersionSince( "3.1.1" ) ) { |
| migratePatchAndWarnFunc( jQuery, "trim", function( text ) { |
| return text == null ? |
| "" : |
| ( text + "" ).replace( rtrim, "$1" ); |
| }, "trim", |
| "jQuery.trim is deprecated; use String.prototype.trim" ); |
| } |
|
|
| |
| if ( jQueryVersionSince( "3.2.0" ) ) { |
| migratePatchAndWarnFunc( jQuery, "nodeName", function( elem, name ) { |
| return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); |
| }, "nodeName", |
| "jQuery.nodeName is deprecated" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "isArray", Array.isArray, "isArray", |
| "jQuery.isArray is deprecated; use Array.isArray" |
| ); |
| } |
|
|
| if ( jQueryVersionSince( "3.3.0" ) ) { |
|
|
| migratePatchAndWarnFunc( jQuery, "isNumeric", function( obj ) { |
|
|
| |
| |
| |
| var type = typeof obj; |
| return ( type === "number" || type === "string" ) && |
|
|
| |
| |
| |
| !isNaN( obj - parseFloat( obj ) ); |
| }, "isNumeric", |
| "jQuery.isNumeric() is deprecated" |
| ); |
|
|
| |
| jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol". |
| split( " " ), |
| function( _, name ) { |
| class2type[ "[object " + name + "]" ] = name.toLowerCase(); |
| } ); |
|
|
| migratePatchAndWarnFunc( jQuery, "type", function( obj ) { |
| if ( obj == null ) { |
| return obj + ""; |
| } |
|
|
| |
| return typeof obj === "object" || typeof obj === "function" ? |
| class2type[ Object.prototype.toString.call( obj ) ] || "object" : |
| typeof obj; |
| }, "type", |
| "jQuery.type is deprecated" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "isFunction", |
| function( obj ) { |
| return typeof obj === "function"; |
| }, "isFunction", |
| "jQuery.isFunction() is deprecated" ); |
|
|
| migratePatchAndWarnFunc( jQuery, "isWindow", |
| function( obj ) { |
| return obj != null && obj === obj.window; |
| }, "isWindow", |
| "jQuery.isWindow() is deprecated" |
| ); |
| } |
|
|
| |
| if ( jQuery.ajax ) { |
|
|
| var oldAjax = jQuery.ajax, |
| rjsonp = /(=)\?(?=&|$)|\?\?/; |
|
|
| migratePatchFunc( jQuery, "ajax", function() { |
| var jQXHR = oldAjax.apply( this, arguments ); |
|
|
| |
| if ( jQXHR.promise ) { |
| migratePatchAndWarnFunc( jQXHR, "success", jQXHR.done, "jqXHR-methods", |
| "jQXHR.success is deprecated and removed" ); |
| migratePatchAndWarnFunc( jQXHR, "error", jQXHR.fail, "jqXHR-methods", |
| "jQXHR.error is deprecated and removed" ); |
| migratePatchAndWarnFunc( jQXHR, "complete", jQXHR.always, "jqXHR-methods", |
| "jQXHR.complete is deprecated and removed" ); |
| } |
|
|
| return jQXHR; |
| }, "jqXHR-methods" ); |
|
|
| |
| |
| |
| if ( !jQueryVersionSince( "4.0.0" ) ) { |
|
|
| |
| |
| |
| jQuery.ajaxPrefilter( "+json", function( s ) { |
|
|
| |
| if ( s.jsonp !== false && ( rjsonp.test( s.url ) || |
| typeof s.data === "string" && |
| ( s.contentType || "" ) |
| .indexOf( "application/x-www-form-urlencoded" ) === 0 && |
| rjsonp.test( s.data ) |
| ) ) { |
| migrateWarn( "jsonp-promotion", "JSON-to-JSONP auto-promotion is deprecated" ); |
| } |
| } ); |
| } |
|
|
| } |
|
|
| var oldRemoveAttr = jQuery.fn.removeAttr, |
| oldToggleClass = jQuery.fn.toggleClass, |
| rmatchNonSpace = /\S+/g; |
|
|
| migratePatchFunc( jQuery.fn, "removeAttr", function( name ) { |
| var self = this, |
| patchNeeded = false; |
|
|
| jQuery.each( name.match( rmatchNonSpace ), function( _i, attr ) { |
| if ( jQuery.expr.match.bool.test( attr ) ) { |
|
|
| |
| |
| |
| self.each( function() { |
| if ( jQuery( this ).prop( attr ) !== false ) { |
| patchNeeded = true; |
| return false; |
| } |
| } ); |
| } |
|
|
| if ( patchNeeded ) { |
| migrateWarn( "removeAttr-bool", |
| "jQuery.fn.removeAttr no longer sets boolean properties: " + attr ); |
| self.prop( attr, false ); |
| } |
| } ); |
|
|
| return oldRemoveAttr.apply( this, arguments ); |
| }, "removeAttr-bool" ); |
|
|
| migratePatchFunc( jQuery.fn, "toggleClass", function( state ) { |
|
|
| |
| if ( state !== undefined && typeof state !== "boolean" ) { |
|
|
| return oldToggleClass.apply( this, arguments ); |
| } |
|
|
| migrateWarn( "toggleClass-bool", "jQuery.fn.toggleClass( boolean ) is deprecated" ); |
|
|
| |
| return this.each( function() { |
| var className = this.getAttribute && this.getAttribute( "class" ) || ""; |
|
|
| if ( className ) { |
| jQuery.data( this, "__className__", className ); |
| } |
|
|
| |
| |
| |
| |
| if ( this.setAttribute ) { |
| this.setAttribute( "class", |
| className || state === false ? |
| "" : |
| jQuery.data( this, "__className__" ) || "" |
| ); |
| } |
| } ); |
| }, "toggleClass-bool" ); |
|
|
| function camelCase( string ) { |
| return string.replace( /-([a-z])/g, function( _, letter ) { |
| return letter.toUpperCase(); |
| } ); |
| } |
|
|
| var origFnCss, internalCssNumber, |
| internalSwapCall = false, |
| ralphaStart = /^[a-z]/, |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| rautoPx = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/; |
|
|
| |
| if ( jQuery.swap ) { |
| jQuery.each( [ "height", "width", "reliableMarginRight" ], function( _, name ) { |
| var oldHook = jQuery.cssHooks[ name ] && jQuery.cssHooks[ name ].get; |
|
|
| if ( oldHook ) { |
| jQuery.cssHooks[ name ].get = function() { |
| var ret; |
|
|
| internalSwapCall = true; |
| ret = oldHook.apply( this, arguments ); |
| internalSwapCall = false; |
| return ret; |
| }; |
| } |
| } ); |
| } |
|
|
| migratePatchFunc( jQuery, "swap", function( elem, options, callback, args ) { |
| var ret, name, |
| old = {}; |
|
|
| if ( !internalSwapCall ) { |
| migrateWarn( "swap", "jQuery.swap() is undocumented and deprecated" ); |
| } |
|
|
| |
| for ( name in options ) { |
| old[ name ] = elem.style[ name ]; |
| elem.style[ name ] = options[ name ]; |
| } |
|
|
| ret = callback.apply( elem, args || [] ); |
|
|
| |
| for ( name in options ) { |
| elem.style[ name ] = old[ name ]; |
| } |
|
|
| return ret; |
| }, "swap" ); |
|
|
| if ( jQueryVersionSince( "3.4.0" ) && typeof Proxy !== "undefined" ) { |
| jQuery.cssProps = new Proxy( jQuery.cssProps || {}, { |
| set: function() { |
| migrateWarn( "cssProps", "jQuery.cssProps is deprecated" ); |
| return Reflect.set.apply( this, arguments ); |
| } |
| } ); |
| } |
|
|
| |
| |
| |
| |
| if ( jQueryVersionSince( "4.0.0" ) ) { |
|
|
| |
| |
| internalCssNumber = { |
| animationIterationCount: true, |
| columnCount: true, |
| fillOpacity: true, |
| flexGrow: true, |
| flexShrink: true, |
| fontWeight: true, |
| gridArea: true, |
| gridColumn: true, |
| gridColumnEnd: true, |
| gridColumnStart: true, |
| gridRow: true, |
| gridRowEnd: true, |
| gridRowStart: true, |
| lineHeight: true, |
| opacity: true, |
| order: true, |
| orphans: true, |
| widows: true, |
| zIndex: true, |
| zoom: true |
| }; |
|
|
| if ( typeof Proxy !== "undefined" ) { |
| jQuery.cssNumber = new Proxy( internalCssNumber, { |
| get: function() { |
| migrateWarn( "css-number", "jQuery.cssNumber is deprecated" ); |
| return Reflect.get.apply( this, arguments ); |
| }, |
| set: function() { |
| migrateWarn( "css-number", "jQuery.cssNumber is deprecated" ); |
| return Reflect.set.apply( this, arguments ); |
| } |
| } ); |
| } else { |
|
|
| |
| |
| |
| jQuery.cssNumber = internalCssNumber; |
| } |
| } else { |
|
|
| |
| |
| internalCssNumber = jQuery.cssNumber; |
| } |
|
|
| function isAutoPx( prop ) { |
|
|
| |
| |
| |
| return ralphaStart.test( prop ) && |
| rautoPx.test( prop[ 0 ].toUpperCase() + prop.slice( 1 ) ); |
| } |
|
|
| origFnCss = jQuery.fn.css; |
|
|
| migratePatchFunc( jQuery.fn, "css", function( name, value ) { |
| var camelName, |
| origThis = this; |
|
|
| if ( name && typeof name === "object" && !Array.isArray( name ) ) { |
| jQuery.each( name, function( n, v ) { |
| jQuery.fn.css.call( origThis, n, v ); |
| } ); |
| return this; |
| } |
|
|
| if ( typeof value === "number" ) { |
| camelName = camelCase( name ); |
|
|
| |
| |
| if ( !isAutoPx( camelName ) && !internalCssNumber[ camelName ] ) { |
| migrateWarn( "css-number", |
| "Number-typed values are deprecated for jQuery.fn.css( \"" + |
| name + "\", value )" ); |
| } |
| } |
|
|
| return origFnCss.apply( this, arguments ); |
| }, "css-number" ); |
|
|
| var origData = jQuery.data; |
|
|
| migratePatchFunc( jQuery, "data", function( elem, name, value ) { |
| var curData, sameKeys, key; |
|
|
| |
| if ( name && typeof name === "object" && arguments.length === 2 ) { |
|
|
| curData = jQuery.hasData( elem ) && origData.call( this, elem ); |
| sameKeys = {}; |
| for ( key in name ) { |
| if ( key !== camelCase( key ) ) { |
| migrateWarn( "data-camelCase", |
| "jQuery.data() always sets/gets camelCased names: " + key ); |
| curData[ key ] = name[ key ]; |
| } else { |
| sameKeys[ key ] = name[ key ]; |
| } |
| } |
|
|
| origData.call( this, elem, sameKeys ); |
|
|
| return name; |
| } |
|
|
| |
| if ( name && typeof name === "string" && name !== camelCase( name ) ) { |
|
|
| curData = jQuery.hasData( elem ) && origData.call( this, elem ); |
| if ( curData && name in curData ) { |
| migrateWarn( "data-camelCase", |
| "jQuery.data() always sets/gets camelCased names: " + name ); |
| if ( arguments.length > 2 ) { |
| curData[ name ] = value; |
| } |
| return curData[ name ]; |
| } |
| } |
|
|
| return origData.apply( this, arguments ); |
| }, "data-camelCase" ); |
|
|
| |
| if ( jQuery.fx ) { |
|
|
| var intervalValue, intervalMsg, |
| oldTweenRun = jQuery.Tween.prototype.run, |
| linearEasing = function( pct ) { |
| return pct; |
| }; |
|
|
| migratePatchFunc( jQuery.Tween.prototype, "run", function( ) { |
| if ( jQuery.easing[ this.easing ].length > 1 ) { |
| migrateWarn( |
| "easing-one-arg", |
| "'jQuery.easing." + this.easing.toString() + "' should use only one argument" |
| ); |
|
|
| jQuery.easing[ this.easing ] = linearEasing; |
| } |
|
|
| oldTweenRun.apply( this, arguments ); |
| }, "easing-one-arg" ); |
|
|
| intervalValue = jQuery.fx.interval; |
| intervalMsg = "jQuery.fx.interval is deprecated"; |
|
|
| |
| |
| |
| if ( window.requestAnimationFrame ) { |
| Object.defineProperty( jQuery.fx, "interval", { |
| configurable: true, |
| enumerable: true, |
| get: function() { |
| if ( !window.document.hidden ) { |
| migrateWarn( "fx-interval", intervalMsg ); |
| } |
|
|
| |
| if ( !jQuery.migrateIsPatchEnabled( "fx-interval" ) ) { |
| return intervalValue; |
| } |
| return intervalValue === undefined ? 13 : intervalValue; |
| }, |
| set: function( newValue ) { |
| migrateWarn( "fx-interval", intervalMsg ); |
| intervalValue = newValue; |
| } |
| } ); |
| } |
|
|
| } |
|
|
| var oldLoad = jQuery.fn.load, |
| oldEventAdd = jQuery.event.add, |
| originalFix = jQuery.event.fix; |
|
|
| jQuery.event.props = []; |
| jQuery.event.fixHooks = {}; |
|
|
| migrateWarnProp( jQuery.event.props, "concat", jQuery.event.props.concat, |
| "event-old-patch", |
| "jQuery.event.props.concat() is deprecated and removed" ); |
|
|
| migratePatchFunc( jQuery.event, "fix", function( originalEvent ) { |
| var event, |
| type = originalEvent.type, |
| fixHook = this.fixHooks[ type ], |
| props = jQuery.event.props; |
|
|
| if ( props.length ) { |
| migrateWarn( "event-old-patch", |
| "jQuery.event.props are deprecated and removed: " + props.join() ); |
| while ( props.length ) { |
| jQuery.event.addProp( props.pop() ); |
| } |
| } |
|
|
| if ( fixHook && !fixHook._migrated_ ) { |
| fixHook._migrated_ = true; |
| migrateWarn( "event-old-patch", |
| "jQuery.event.fixHooks are deprecated and removed: " + type ); |
| if ( ( props = fixHook.props ) && props.length ) { |
| while ( props.length ) { |
| jQuery.event.addProp( props.pop() ); |
| } |
| } |
| } |
|
|
| event = originalFix.call( this, originalEvent ); |
|
|
| return fixHook && fixHook.filter ? |
| fixHook.filter( event, originalEvent ) : |
| event; |
| }, "event-old-patch" ); |
|
|
| migratePatchFunc( jQuery.event, "add", function( elem, types ) { |
|
|
| |
| if ( elem === window && types === "load" && window.document.readyState === "complete" ) { |
| migrateWarn( "load-after-event", |
| "jQuery(window).on('load'...) called after load event occurred" ); |
| } |
| return oldEventAdd.apply( this, arguments ); |
| }, "load-after-event" ); |
|
|
| jQuery.each( [ "load", "unload", "error" ], function( _, name ) { |
|
|
| migratePatchFunc( jQuery.fn, name, function() { |
| var args = Array.prototype.slice.call( arguments, 0 ); |
|
|
| |
| |
| |
| |
| if ( name === "load" && typeof args[ 0 ] === "string" ) { |
| return oldLoad.apply( this, args ); |
| } |
|
|
| migrateWarn( "shorthand-removed-v3", |
| "jQuery.fn." + name + "() is deprecated" ); |
|
|
| args.splice( 0, 0, name ); |
| if ( arguments.length ) { |
| return this.on.apply( this, args ); |
| } |
|
|
| |
| |
| |
| |
| this.triggerHandler.apply( this, args ); |
| return this; |
| }, "shorthand-removed-v3" ); |
|
|
| } ); |
|
|
| jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + |
| "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + |
| "change select submit keydown keypress keyup contextmenu" ).split( " " ), |
| function( _i, name ) { |
|
|
| |
| migratePatchAndWarnFunc( jQuery.fn, name, function( data, fn ) { |
| return arguments.length > 0 ? |
| this.on( name, null, data, fn ) : |
| this.trigger( name ); |
| }, |
| "shorthand-deprecated-v3", |
| "jQuery.fn." + name + "() event shorthand is deprecated" ); |
| } ); |
|
|
| |
| jQuery( function() { |
| jQuery( window.document ).triggerHandler( "ready" ); |
| } ); |
|
|
| jQuery.event.special.ready = { |
| setup: function() { |
| if ( this === window.document ) { |
| migrateWarn( "ready-event", "'ready' event is deprecated" ); |
| } |
| } |
| }; |
|
|
| migratePatchAndWarnFunc( jQuery.fn, "bind", function( types, data, fn ) { |
| return this.on( types, null, data, fn ); |
| }, "pre-on-methods", "jQuery.fn.bind() is deprecated" ); |
| migratePatchAndWarnFunc( jQuery.fn, "unbind", function( types, fn ) { |
| return this.off( types, null, fn ); |
| }, "pre-on-methods", "jQuery.fn.unbind() is deprecated" ); |
| migratePatchAndWarnFunc( jQuery.fn, "delegate", function( selector, types, data, fn ) { |
| return this.on( types, selector, data, fn ); |
| }, "pre-on-methods", "jQuery.fn.delegate() is deprecated" ); |
| migratePatchAndWarnFunc( jQuery.fn, "undelegate", function( selector, types, fn ) { |
| return arguments.length === 1 ? |
| this.off( selector, "**" ) : |
| this.off( types, selector || "**", fn ); |
| }, "pre-on-methods", "jQuery.fn.undelegate() is deprecated" ); |
| migratePatchAndWarnFunc( jQuery.fn, "hover", function( fnOver, fnOut ) { |
| return this.on( "mouseenter", fnOver ).on( "mouseleave", fnOut || fnOver ); |
| }, "pre-on-methods", "jQuery.fn.hover() is deprecated" ); |
|
|
| var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, |
| makeMarkup = function( html ) { |
| var doc = window.document.implementation.createHTMLDocument( "" ); |
| doc.body.innerHTML = html; |
| return doc.body && doc.body.innerHTML; |
| }, |
| warnIfChanged = function( html ) { |
| var changed = html.replace( rxhtmlTag, "<$1></$2>" ); |
| if ( changed !== html && makeMarkup( html ) !== makeMarkup( changed ) ) { |
| migrateWarn( "self-closed-tags", |
| "HTML tags must be properly nested and closed: " + html ); |
| } |
| }; |
|
|
| |
| |
| |
| |
| jQuery.UNSAFE_restoreLegacyHtmlPrefilter = function() { |
| jQuery.migrateEnablePatches( "self-closed-tags" ); |
| }; |
|
|
| migratePatchFunc( jQuery, "htmlPrefilter", function( html ) { |
| warnIfChanged( html ); |
| return html.replace( rxhtmlTag, "<$1></$2>" ); |
| }, "self-closed-tags" ); |
|
|
| |
| |
| jQuery.migrateDisablePatches( "self-closed-tags" ); |
|
|
| var origOffset = jQuery.fn.offset; |
|
|
| migratePatchFunc( jQuery.fn, "offset", function() { |
| var elem = this[ 0 ]; |
|
|
| if ( elem && ( !elem.nodeType || !elem.getBoundingClientRect ) ) { |
| migrateWarn( "offset-valid-elem", "jQuery.fn.offset() requires a valid DOM element" ); |
| return arguments.length ? this : undefined; |
| } |
|
|
| return origOffset.apply( this, arguments ); |
| }, "offset-valid-elem" ); |
|
|
| |
| |
| |
| if ( jQuery.ajax ) { |
|
|
| var origParam = jQuery.param; |
|
|
| migratePatchFunc( jQuery, "param", function( data, traditional ) { |
| var ajaxTraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; |
|
|
| if ( traditional === undefined && ajaxTraditional ) { |
|
|
| migrateWarn( "param-ajax-traditional", |
| "jQuery.param() no longer uses jQuery.ajaxSettings.traditional" ); |
| traditional = ajaxTraditional; |
| } |
|
|
| return origParam.call( this, data, traditional ); |
| }, "param-ajax-traditional" ); |
|
|
| } |
|
|
| migratePatchAndWarnFunc( jQuery.fn, "andSelf", jQuery.fn.addBack, "andSelf", |
| "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()" ); |
|
|
| |
| if ( jQuery.Deferred ) { |
|
|
| var oldDeferred = jQuery.Deferred, |
| tuples = [ |
|
|
| |
| [ "resolve", "done", jQuery.Callbacks( "once memory" ), |
| jQuery.Callbacks( "once memory" ), "resolved" ], |
| [ "reject", "fail", jQuery.Callbacks( "once memory" ), |
| jQuery.Callbacks( "once memory" ), "rejected" ], |
| [ "notify", "progress", jQuery.Callbacks( "memory" ), |
| jQuery.Callbacks( "memory" ) ] |
| ]; |
|
|
| migratePatchFunc( jQuery, "Deferred", function( func ) { |
| var deferred = oldDeferred(), |
| promise = deferred.promise(); |
|
|
| function newDeferredPipe( ) { |
| var fns = arguments; |
|
|
| return jQuery.Deferred( function( newDefer ) { |
| jQuery.each( tuples, function( i, tuple ) { |
| var fn = typeof fns[ i ] === "function" && fns[ i ]; |
|
|
| |
| |
| |
| deferred[ tuple[ 1 ] ]( function() { |
| var returned = fn && fn.apply( this, arguments ); |
| if ( returned && typeof returned.promise === "function" ) { |
| returned.promise() |
| .done( newDefer.resolve ) |
| .fail( newDefer.reject ) |
| .progress( newDefer.notify ); |
| } else { |
| newDefer[ tuple[ 0 ] + "With" ]( |
| this === promise ? newDefer.promise() : this, |
| fn ? [ returned ] : arguments |
| ); |
| } |
| } ); |
| } ); |
| fns = null; |
| } ).promise(); |
| } |
|
|
| migratePatchAndWarnFunc( deferred, "pipe", newDeferredPipe, "deferred-pipe", |
| "deferred.pipe() is deprecated" ); |
| migratePatchAndWarnFunc( promise, "pipe", newDeferredPipe, "deferred-pipe", |
| "deferred.pipe() is deprecated" ); |
|
|
| if ( func ) { |
| func.call( deferred, deferred ); |
| } |
|
|
| return deferred; |
| }, "deferred-pipe" ); |
|
|
| |
| jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook; |
|
|
| } |
|
|
| return jQuery; |
| } ); |
|
|