From a68636cfd8a0fc45002d948d0319f84f331a06a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2E=20Rene=CC=81e=20Beach?= Date: Mon, 6 Jan 2014 22:24:50 -0500 Subject: [PATCH] Issue #1979468 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: J. Renée Beach --- core/assets/vendor/classList/LICENSE.md | 2 + core/assets/vendor/classList/README.md | 7 + core/assets/vendor/classList/classList.js | 179 +++++++++++++++++++++ core/assets/vendor/classList/classList.min.js | 2 + core/misc/active-link.js | 4 +- core/misc/ajax.js | 34 ++-- core/misc/tabledrag.js | 10 +- .../language/Tests/LanguageSwitchingTest.php | 8 +- core/modules/system/system.module | 15 ++ 9 files changed, 239 insertions(+), 22 deletions(-) create mode 100644 core/assets/vendor/classList/LICENSE.md create mode 100644 core/assets/vendor/classList/README.md create mode 100644 core/assets/vendor/classList/classList.js create mode 100644 core/assets/vendor/classList/classList.min.js diff --git a/core/assets/vendor/classList/LICENSE.md b/core/assets/vendor/classList/LICENSE.md new file mode 100644 index 0000000..cb518af --- /dev/null +++ b/core/assets/vendor/classList/LICENSE.md @@ -0,0 +1,2 @@ +This software is dedicated to the public domain. No warranty is expressed or implied. +Use this software at your own risk. diff --git a/core/assets/vendor/classList/README.md b/core/assets/vendor/classList/README.md new file mode 100644 index 0000000..dd7359c --- /dev/null +++ b/core/assets/vendor/classList/README.md @@ -0,0 +1,7 @@ +classList.js is a cross-browser JavaScript shim that fully implements `element.classList`. Refer to [the MDN page on `element.classList`][1] for more information. + + +![Tracking image](https://in.getclicky.com/212712ns.gif) + + + [1]: https://developer.mozilla.org/en/DOM/element.classList "MDN / DOM / element.classList" diff --git a/core/assets/vendor/classList/classList.js b/core/assets/vendor/classList/classList.js new file mode 100644 index 0000000..1faaec8 --- /dev/null +++ b/core/assets/vendor/classList/classList.js @@ -0,0 +1,179 @@ +/* + * classList.js: Cross-browser full element.classList implementation. + * 2012-11-15 + * + * By Eli Grey, http://eligrey.com + * Public Domain. + * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. + */ + +/*global self, document, DOMException */ + +/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ + +if ("document" in self && !( + "classList" in document.createElement("_") && + "classList" in document.createElementNS("http://www.w3.org/2000/svg", "svg") + )) { + +(function (view) { + +"use strict"; + +if (!('Element' in view)) return; + +var + classListProp = "classList" + , protoProp = "prototype" + , elemCtrProto = view.Element[protoProp] + , objCtr = Object + , strTrim = String[protoProp].trim || function () { + return this.replace(/^\s+|\s+$/g, ""); + } + , arrIndexOf = Array[protoProp].indexOf || function (item) { + var + i = 0 + , len = this.length + ; + for (; i < len; i++) { + if (i in this && this[i] === item) { + return i; + } + } + return -1; + } + // Vendors: please allow content code to instantiate DOMExceptions + , DOMEx = function (type, message) { + this.name = type; + this.code = DOMException[type]; + this.message = message; + } + , checkTokenAndGetIndex = function (classList, token) { + if (token === "") { + throw new DOMEx( + "SYNTAX_ERR" + , "An invalid or illegal string was specified" + ); + } + if (/\s/.test(token)) { + throw new DOMEx( + "INVALID_CHARACTER_ERR" + , "String contains an invalid character" + ); + } + return arrIndexOf.call(classList, token); + } + , ClassList = function (elem) { + var + trimmedClasses = strTrim.call(elem.getAttribute("class") || "") + , classes = trimmedClasses ? trimmedClasses.split(/\s+/) : [] + , i = 0 + , len = classes.length + ; + for (; i < len; i++) { + this.push(classes[i]); + } + this._updateClassName = function () { + elem.setAttribute("class", this.toString()); + }; + } + , classListProto = ClassList[protoProp] = [] + , classListGetter = function () { + return new ClassList(this); + } +; +// Most DOMException implementations don't allow calling DOMException's toString() +// on non-DOMExceptions. Error's toString() is sufficient here. +DOMEx[protoProp] = Error[protoProp]; +classListProto.item = function (i) { + return this[i] || null; +}; +classListProto.contains = function (token) { + token += ""; + return checkTokenAndGetIndex(this, token) !== -1; +}; +classListProto.add = function () { + var + tokens = arguments + , i = 0 + , l = tokens.length + , token + , updated = false + ; + do { + token = tokens[i] + ""; + if (checkTokenAndGetIndex(this, token) === -1) { + this.push(token); + updated = true; + } + } + while (++i < l); + + if (updated) { + this._updateClassName(); + } +}; +classListProto.remove = function () { + var + tokens = arguments + , i = 0 + , l = tokens.length + , token + , updated = false + ; + do { + token = tokens[i] + ""; + var index = checkTokenAndGetIndex(this, token); + if (index !== -1) { + this.splice(index, 1); + updated = true; + } + } + while (++i < l); + + if (updated) { + this._updateClassName(); + } +}; +classListProto.toggle = function (token, forse) { + token += ""; + + var + result = this.contains(token) + , method = result ? + forse !== true && "remove" + : + forse !== false && "add" + ; + + if (method) { + this[method](token); + } + + return !result; +}; +classListProto.toString = function () { + return this.join(" "); +}; + +if (objCtr.defineProperty) { + var classListPropDesc = { + get: classListGetter + , enumerable: true + , configurable: true + }; + try { + objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } catch (ex) { // IE 8 doesn't support enumerable:true + if (ex.number === -0x7FF5EC54) { + classListPropDesc.enumerable = false; + objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc); + } + } +} else if (objCtr[protoProp].__defineGetter__) { + elemCtrProto.__defineGetter__(classListProp, classListGetter); +} + +}(self)); + +} diff --git a/core/assets/vendor/classList/classList.min.js b/core/assets/vendor/classList/classList.min.js new file mode 100644 index 0000000..fa98825 --- /dev/null +++ b/core/assets/vendor/classList/classList.min.js @@ -0,0 +1,2 @@ +/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/ +if("document" in self&&!("classList" in document.createElement("_")&&"classList" in document.createElementNS("http://www.w3.org/2000/svg","svg"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p