UNPKG

polyfill-service

Version:
1 lines 3.6 kB
{"aliases":["default","modernizr:classlist","blissfuljs"],"browsers":{"ie":"8 - 9","safari":"4 - 4.1"},"dependencies":["Object.defineProperty","_DOMTokenList","Element"],"spec":"https://html.spec.whatwg.org/multipage/dom.html#dom-classlist","docs":"https://developer.mozilla.org/en-US/docs/Web/API/Element/classList","baseDir":"Element/prototype/classList","hasTests":true,"rawSource":"\n// Element.prototype.classList\nObject.defineProperty(Element.prototype, 'classList', {\n\tconfigurable: true,\n\tget: function () {\n\n\t\tfunction pull() {\n\t\t\tvar className = (typeof element.className === \"object\" ? element.className.baseVal : element.className);\n\t\t\t[].splice.apply(classList, [0, classList.length].concat((className || '').replace(/^\\s+|\\s+$/g, '').split(/\\s+/)));\n\t\t}\n\n\t\tfunction push() {\n\t\t\tif (element.attachEvent) {\n\t\t\t\telement.detachEvent('onpropertychange', pull);\n\t\t\t}\n\n\t\t\tif (typeof element.className === \"object\") {\n\t\t\t\telement.className.baseVal = original.toString.call(classList);\n\t\t\t} else {\n\t\t\t\telement.className = original.toString.call(classList);\n\t\t\t}\n\n\t\t\tif (element.attachEvent) {\n\t\t\t\telement.attachEvent('onpropertychange', pull);\n\t\t\t}\n\t\t}\n\n\t\tvar element = this;\n\t\tvar original = _DOMTokenList.prototype;\n\t\tvar ClassList = function ClassList() {};\n\t\tvar classList;\n\n\t\tClassList.prototype = new _DOMTokenList;\n\n\t\tClassList.prototype.item = function item(index) {\n\t\t\treturn pull(), original.item.apply(classList, arguments);\n\t\t};\n\n\t\tClassList.prototype.toString = function toString() {\n\t\t\treturn pull(), original.toString.apply(classList, arguments);\n\t\t};\n\n\t\tClassList.prototype.add = function add() {\n\t\t\treturn pull(), original.add.apply(classList, arguments), push();\n\t\t};\n\n\t\tClassList.prototype.contains = function contains(token) {\n\t\t\treturn pull(), original.contains.apply(classList, arguments);\n\t\t};\n\n\t\tClassList.prototype.remove = function remove() {\n\t\t\treturn pull(), original.remove.apply(classList, arguments), push();\n\t\t};\n\n\t\tClassList.prototype.toggle = function toggle(token) {\n\t\t\treturn pull(), token = original.toggle.apply(classList, arguments), push(), token;\n\t\t};\n\n\t\tclassList = new ClassList;\n\n\t\tif (element.attachEvent) {\n\t\t\telement.attachEvent('onpropertychange', pull);\n\t\t}\n\n\t\treturn classList;\n\t}\n});\n","minSource":"Object.defineProperty(Element.prototype,\"classList\",{configurable:!0,get:function(){function t(){var t=\"object\"==typeof o.className?o.className.baseVal:o.className;[].splice.apply(n,[0,n.length].concat((t||\"\").replace(/^\\s+|\\s+$/g,\"\").split(/\\s+/)))}function e(){o.attachEvent&&o.detachEvent(\"onpropertychange\",t),\"object\"==typeof o.className?o.className.baseVal=a.toString.call(n):o.className=a.toString.call(n),o.attachEvent&&o.attachEvent(\"onpropertychange\",t)}var n,o=this,a=_DOMTokenList.prototype,p=function(){};return p.prototype=new _DOMTokenList,p.prototype.item=function(e){return t(),a.item.apply(n,arguments)},p.prototype.toString=function(){return t(),a.toString.apply(n,arguments)},p.prototype.add=function(){return t(),a.add.apply(n,arguments),e()},p.prototype.contains=function(e){return t(),a.contains.apply(n,arguments)},p.prototype.remove=function(){return t(),a.remove.apply(n,arguments),e()},p.prototype.toggle=function(o){return t(),o=a.toggle.apply(n,arguments),e(),o},n=new p,o.attachEvent&&o.attachEvent(\"onpropertychange\",t),n}});","detectSource":"'document' in this && \"classList\" in document.documentElement"}