/*! * jQuery Migrate - v1.4.1 - 2016-05-19 * Copyright jQuery Foundation and other contributors */ (function(jQuery, window, undefined) { // See http://bugs.jquery.com/ticket/13335 // "use strict"; jQuery.migrateVersion = "1.4.1"; var warnedAbout = {}; // List of warnings already given; public read only jQuery.migrateWarnings = []; // Set to true to prevent console output; migrateWarnings still maintained // jQuery.migrateMute = false; // Show a message on the console so devs know we're active if (window.console && window.console.log) { window.console.log("JQMIGRATE: Migrate is installed" + (jQuery.migrateMute ? "" : " with logging active") + ", version " + jQuery.migrateVersion); } // 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(msg) { var console = window.console; if (!warnedAbout[msg]) { warnedAbout[msg] = true; jQuery.migrateWarnings.push(msg); if (console && console.warn && !jQuery.migrateMute) { console.warn("JQMIGRATE: " + msg); if (jQuery.migrateTrace && console.trace) { console.trace(); } } } } function migrateWarnProp(obj, prop, value, msg) { if (Object.defineProperty) { // On ES5 browsers (non-oldIE), warn if the code tries to get prop; // allow property to be overwritten in case some other plugin wants it try { Object.defineProperty(obj, prop, { configurable: true, enumerable: true, get: function() { migrateWarn(msg); return value; }, set: function(newValue) { migrateWarn(msg); value = newValue; } }); return; } catch (err) { // IE8 is a dope about Object.defineProperty, can't warn there } } // Non-ES5 (or broken) browser; just set the property jQuery._definePropertyBroken = true; obj[prop] = value; } if (document.compatMode === "BackCompat") { // jQuery has never supported or tested Quirks Mode migrateWarn("jQuery is not compatible with Quirks Mode"); } var attrFn = jQuery("", { size: 1 }).attr("size") && jQuery.attrFn, oldAttr = jQuery.attr, valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get || function() { return null; }, valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set || function() { return undefined; }, rnoType = /^(?:input|button)$/i, rnoAttrNodeType = /^[238]$/, rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, ruseDefault = /^(?:checked|selected)$/i; // jQuery.attrFn migrateWarnProp(jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated"); jQuery.attr = function(elem, name, value, pass) { var lowerName = name.toLowerCase(), nType = elem && elem.nodeType; if (pass) { // Since pass is used internally, we only warn for new jQuery // versions where there isn't a pass arg in the formal params if (oldAttr.length < 4) { migrateWarn("jQuery.fn.attr( props, pass ) is deprecated"); } if (elem && !rnoAttrNodeType.test(nType) && (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name]))) { return jQuery(elem)[name](value); } } // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking // for disconnected elements we don't warn on $( "