summaryrefslogtreecommitdiff
path: root/js/jquery-migrate-3.5.2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/jquery-migrate-3.5.2.js')
-rwxr-xr-xjs/jquery-migrate-3.5.2.js1031
1 files changed, 0 insertions, 1031 deletions
diff --git a/js/jquery-migrate-3.5.2.js b/js/jquery-migrate-3.5.2.js
deleted file mode 100755
index 91ba673..0000000
--- a/js/jquery-migrate-3.5.2.js
+++ /dev/null
@@ -1,1031 +0,0 @@
-/*!
- * jQuery Migrate - v3.5.2 - 2024-07-17T22:31Z
- * Copyright OpenJS Foundation and other contributors
- */
-(function(factory) {
- "use strict";
-
- if (typeof define === "function" && define.amd) {
-
- // AMD. Register as an anonymous module.
- define(["jquery"], function(jQuery) {
- return factory(jQuery, window);
- });
- } else if (typeof module === "object" && module.exports) {
-
- // Node/CommonJS
- // eslint-disable-next-line no-undef
- module.exports = factory(require("jquery"), window);
- } else {
-
- // Browser globals
- factory(jQuery, window);
- }
-})(function(jQuery, window) {
- "use strict";
-
- jQuery.migrateVersion = "3.5.2";
-
- // Returns 0 if v1 == v2, -1 if v1 < v2, 1 if v1 > v2
- 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;
- }
-
- // A map from disabled patch codes to `true`. This should really
- // be a `Set` but those are unsupported in IE.
- var disabledPatches = Object.create(null);
-
- // Don't apply patches for specified codes. Helpful for code bases
- // where some Migrate warnings have been addressed and it's desirable
- // to avoid needless patches or false positives.
- jQuery.migrateDisablePatches = function() {
- var i;
- for (i = 0; i < arguments.length; i++) {
- disabledPatches[arguments[i]] = true;
- }
- };
-
- // Allow enabling patches disabled via `jQuery.migrateDisablePatches`.
- // Helpful if you want to disable a patch only for some code that won't
- // be updated soon to be able to focus on other warnings - and enable it
- // immediately after such a call:
- // ```js
- // jQuery.migrateDisablePatches( "workaroundA" );
- // elem.pluginViolatingWarningA( "pluginMethod" );
- // jQuery.migrateEnablePatches( "workaroundA" );
- // ```
- jQuery.migrateEnablePatches = function() {
- var i;
- for (i = 0; i < arguments.length; i++) {
- delete disabledPatches[arguments[i]];
- }
- };
-
- jQuery.migrateIsPatchEnabled = function(patchCode) {
- return !disabledPatches[patchCode];
- };
-
- (function() {
-
- // Support: IE9 only
- // IE9 only creates console object when dev tools are first opened
- // IE9 console is a host object, callable but doesn't have .apply()
- if (!window.console || !window.console.log) {
- return;
- }
-
- // Need jQuery 3.x-4.x and no older Migrate loaded
- 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");
- }
-
- // Show a message on the console so devs know we're active
- window.console.log("JQMIGRATE: Migrate is installed" +
- (jQuery.migrateMute ? "" : " with logging active") +
- ", version " + jQuery.migrateVersion);
-
- })();
-
- var warnedAbout = {};
-
- // By default each warning is only reported once.
- jQuery.migrateDeduplicateWarnings = true;
-
- // List of warnings already given; public read only
- jQuery.migrateWarnings = [];
-
- // Set to false to disable traces that appear with warnings
- if (jQuery.migrateTrace === undefined) {
- jQuery.migrateTrace = true;
- }
-
- // Forget any warnings we've already given; public
- 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` not provided, do not warn; more sophisticated warnings
- // logic is most likely embedded in `newFunc`, in that case here
- // we just care about the logic choosing the proper implementation
- // based on whether the patch is disabled or not.
- if (msg) {
- migrateWarn(code, msg);
- }
-
- // Since patches can be disabled & enabled dynamically, we
- // need to decide which implementation to run on each invocation.
- finalFunc = jQuery.migrateIsPatchEnabled(code) ?
- newFunc :
-
- // The function may not have existed originally so we need a fallback.
- (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") {
-
- // jQuery has never supported or tested Quirks Mode
- 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,
-
- // Require that the "whitespace run" starts from a non-whitespace
- // to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
- 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 === "#") {
-
- // JQuery( "#" ) is a bogus ID selector, but it returned an empty set
- // before jQuery 3.0
- migrateWarn("selector-empty-id", "jQuery( '#' ) is not a valid selector");
- args[0] = [];
- }
-
- return oldInit.apply(this, args);
- }, "selector-empty-id");
-
- // This is already done in Core but the above patch will lose this assignment
- // so we need to redo it. It doesn't matter whether the patch is enabled or not
- // as the method is always going to be a Migrate-created wrapper.
- jQuery.fn.init.prototype = jQuery.fn;
-
- migratePatchFunc(jQuery, "find", function(selector) {
- var args = Array.prototype.slice.call(arguments);
-
- // Support: PhantomJS 1.x
- // String#match fails to match when used with a //g RegExp, only on some strings
- if (typeof selector === "string" && rattrHashTest.test(selector)) {
-
- // The nonstandard and undocumented unquoted-hash was removed in jQuery 1.12.0
- // First see if qS thinks it's a valid selector, if so avoid a false positive
- try {
- window.document.querySelector(selector);
- } catch (err1) {
-
- // Didn't *look* valid to qSA, warn and try quoting what we think is the value
- selector = selector.replace(rattrHashGlob, function(_, attr, op, value) {
- return "[" + attr + op + "\"" + value + "\"]";
- });
-
- // If the regexp *may* have created an invalid selector, don't update it
- // Note that there may be false alarms if selector uses jQuery extensions
- 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");
-
- // Copy properties attached to original jQuery.find method (e.g. .attr, .isXML)
- for (findProp in oldFind) {
- if (Object.prototype.hasOwnProperty.call(oldFind, findProp)) {
- jQuery.find[findProp] = oldFind[findProp];
- }
- }
-
- // The number of elements contained in the matched element set
- 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");
-
- // Now jQuery.expr.pseudos is the standard incantation
- 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");
-
- // Prior to jQuery 3.1.1 there were internal refs so we don't warn there
- 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");
- }
-
- // Prior to jQuery 3.2 there were internal refs so we don't warn there
- 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) {
-
- // As of jQuery 3.0, isNumeric is limited to
- // strings and numbers (primitives or objects)
- // that can be coerced to finite numbers (gh-2662)
- var type = typeof obj;
- return (type === "number" || type === "string") &&
-
- // parseFloat NaNs numeric-cast false positives ("")
- // ...but misinterprets leading-number strings, e.g. hex literals ("0x...")
- // subtraction forces infinities to NaN
- !isNaN(obj - parseFloat(obj));
- }, "isNumeric",
- "jQuery.isNumeric() is deprecated"
- );
-
- // Populate the class2type map
- 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 + "";
- }
-
- // Support: Android <=2.3 only (functionish RegExp)
- 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"
- );
- }
-
- // Support jQuery slim which excludes the ajax module
- if (jQuery.ajax) {
-
- var oldAjax = jQuery.ajax,
- rjsonp = /(=)\?(?=&|$)|\?\?/;
-
- migratePatchFunc(jQuery, "ajax", function() {
- var jQXHR = oldAjax.apply(this, arguments);
-
- // Be sure we got a jQXHR (e.g., not sync)
- 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");
-
- // Only trigger the logic in jQuery <4 as the JSON-to-JSONP auto-promotion
- // behavior is gone in jQuery 4.0 and as it has security implications, we don't
- // want to restore the legacy behavior.
- if (!jQueryVersionSince("4.0.0")) {
-
- // Register this prefilter before the jQuery one. Otherwise, a promoted
- // request is transformed into one with the script dataType and we can't
- // catch it anymore.
- jQuery.ajaxPrefilter("+json", function(s) {
-
- // Warn if JSON-to-JSONP auto-promotion happens.
- 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,
- rbooleans = /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,
- rmatchNonSpace = /\S+/g;
-
- migratePatchFunc(jQuery.fn, "removeAttr", function(name) {
- var self = this,
- patchNeeded = false;
-
- jQuery.each(name.match(rmatchNonSpace), function(_i, attr) {
- if (rbooleans.test(attr)) {
-
- // Only warn if at least a single node had the property set to
- // something else than `false`. Otherwise, this Migrate patch
- // doesn't influence the behavior and there's no need to set or warn.
- 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) {
-
- // Only deprecating no-args or single boolean arg
- if (state !== undefined && typeof state !== "boolean") {
-
- return oldToggleClass.apply(this, arguments);
- }
-
- migrateWarn("toggleClass-bool", "jQuery.fn.toggleClass( boolean ) is deprecated");
-
- // Toggle entire class name of each element
- return this.each(function() {
- var className = this.getAttribute && this.getAttribute("class") || "";
-
- if (className) {
- jQuery.data(this, "__className__", className);
- }
-
- // If the element has a class name or if we're passed `false`,
- // then remove the whole classname (if there was one, the above saved it).
- // Otherwise bring back whatever was previously saved (if anything),
- // falling back to the empty string if nothing was stored.
- 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]/,
-
- // The regex visualized:
- //
- // /----------\
- // | | /-------\
- // | / Top \ | | |
- // /--- Border ---+-| Right |-+---+- Width -+---\
- // | | Bottom | |
- // | \ Left / |
- // | |
- // | /----------\ |
- // | /-------------\ | | |- END
- // | | | | / Top \ | |
- // | | / Margin \ | | | Right | | |
- // |---------+-| |-+---+-| Bottom |-+----|
- // | \ Padding / \ Left / |
- // BEGIN -| |
- // | /---------\ |
- // | | | |
- // | | / Min \ | / Width \ |
- // \--------------+-| |-+---| |---/
- // \ Max / \ Height /
- rautoPx = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;
-
- // If this version of jQuery has .swap(), don't false-alarm on internal uses
- 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");
- }
-
- // Remember the old values, and insert the new ones
- for (name in options) {
- old[name] = elem.style[name];
- elem.style[name] = options[name];
- }
-
- ret = callback.apply(elem, args || []);
-
- // Revert the old values
- 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);
- }
- });
- }
-
- // In jQuery >=4 where jQuery.cssNumber is missing fill it with the latest 3.x version:
- // https://github.com/jquery/jquery/blob/3.7.1/src/css.js#L216-L246
- // This way, number values for the CSS properties below won't start triggering
- // Migrate warnings when jQuery gets updated to >=4.0.0 (gh-438).
- if (jQueryVersionSince("4.0.0")) {
-
- // We need to keep this as a local variable as we need it internally
- // in a `jQuery.fn.css` patch and this usage shouldn't warn.
- internalCssNumber = {
- animationIterationCount: true,
- aspectRatio: true,
- borderImageSlice: true,
- columnCount: 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,
- scale: true,
- widows: true,
- zIndex: true,
- zoom: true,
-
- // SVG-related
- fillOpacity: true,
- floodOpacity: true,
- stopOpacity: true,
- strokeMiterlimit: true,
- strokeOpacity: 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 {
-
- // Support: IE 9-11+
- // IE doesn't support proxies, but we still want to restore the legacy
- // jQuery.cssNumber there.
- jQuery.cssNumber = internalCssNumber;
- }
- } else {
-
- // Make `internalCssNumber` defined for jQuery <4 as well as it's needed
- // in the `jQuery.fn.css` patch below.
- internalCssNumber = jQuery.cssNumber;
- }
-
- function isAutoPx(prop) {
-
- // The first test is used to ensure that:
- // 1. The prop starts with a lowercase letter (as we uppercase it for the second regex).
- // 2. The prop is not empty.
- 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);
-
- // Use `internalCssNumber` to avoid triggering our warnings in this
- // internal check.
- 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;
-
- // Name can be an object, and each entry in the object is meant to be set as data
- 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 the name is transformed, look for the un-transformed name in the data object
- 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");
-
- // Support jQuery slim which excludes the effects module
- 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";
-
- // Support: IE9, Android <=4.4
- // Avoid false positives on browsers that lack rAF
- // Don't warn if document is hidden, jQuery uses setTimeout (#292)
- if (window.requestAnimationFrame) {
- Object.defineProperty(jQuery.fx, "interval", {
- configurable: true,
- enumerable: true,
- get: function() {
- if (!window.document.hidden) {
- migrateWarn("fx-interval", intervalMsg);
- }
-
- // Only fallback to the default if patch is enabled
- 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) {
-
- // This misses the multiple-types case but that seems awfully rare
- 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 this is an ajax load() the first arg should be the string URL;
- // technically this could also be the "Anything" arg of the event .load()
- // which just goes to show why this dumb signature has been deprecated!
- // jQuery custom builds that exclude the Ajax module justifiably die here.
- 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);
- }
-
- // Use .triggerHandler here because:
- // - load and unload events don't need to bubble, only applied to window or image
- // - error event should not bubble to window, although it does pre-1.7
- // See http://bugs.jquery.com/ticket/11820
- 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) {
-
- // Handle event binding
- 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");
- });
-
- // Trigger "ready" event only once, on document ready
- 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);
- }
- };
-
- /**
- * Deprecated, please use `jQuery.migrateDisablePatches( "self-closed-tags" )` instead.
- * @deprecated
- */
- migratePatchAndWarnFunc(jQuery, "UNSAFE_restoreLegacyHtmlPrefilter", function() {
- jQuery.migrateEnablePatches("self-closed-tags");
- }, "legacy-self-closed-tags",
- "jQuery.UNSAFE_restoreLegacyHtmlPrefilter deprecated; use " +
- "`jQuery.migrateEnablePatches( \"self-closed-tags\" )`");
-
- migratePatchFunc(jQuery, "htmlPrefilter", function(html) {
- warnIfChanged(html);
- return html.replace(rxhtmlTag, "<$1></$2>");
- }, "self-closed-tags");
-
- // This patch needs to be disabled by default as it re-introduces
- // security issues (CVE-2020-11022, CVE-2020-11023).
- 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");
-
- // Support jQuery slim which excludes the ajax module
- // The jQuery.param patch is about respecting `jQuery.ajaxSettings.traditional`
- // so it doesn't make sense for the slim build.
- 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()");
-
- // Support jQuery slim which excludes the deferred module in jQuery 4.0+
- if (jQuery.Deferred) {
-
- var oldDeferred = jQuery.Deferred,
- tuples = [
-
- // Action, add listener, callbacks, .then handlers, final state
- ["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( /* fnDone, fnFail, fnProgress */) {
- var fns = arguments;
-
- return jQuery.Deferred(function(newDefer) {
- jQuery.each(tuples, function(i, tuple) {
- var fn = typeof fns[i] === "function" && fns[i];
-
- // Deferred.done(function() { bind to newDefer or newDefer.resolve })
- // deferred.fail(function() { bind to newDefer or newDefer.reject })
- // deferred.progress(function() { bind to newDefer or newDefer.notify })
- 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");
-
- // Preserve handler of uncaught exceptions in promise chains
- jQuery.Deferred.exceptionHook = oldDeferred.exceptionHook;
-
- }
-
- return jQuery;
-});