{"version":3,"sources":["classList.js"],"names":["self","document","createElement","createElementNS","testElement","classList","add","contains","createMethod","method","original","DOMTokenList","prototype","token","i","len","arguments","length","call","this","toggle","_toggle","force","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","DOMEx","type","message","name","code","DOMException","checkTokenAndGetIndex","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","Error","tokens","l","updated","remove","index","splice","result","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","number","__defineGetter__"],"mappings":"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","file":"classList.min.js","sourcesContent":["/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20150312\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\tif (ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(self));\n\n} else {\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n\n}\n\n"],"sourceRoot":"/source/"}