1/*! 2 * classie - class helper functions 3 * from bonzo https://github.com/ded/bonzo 4 * 5 * classie.has( elem, 'my-class' ) -> true/false 6 * classie.add( elem, 'my-new-class' ) 7 * classie.remove( elem, 'my-unwanted-class' ) 8 * classie.toggle( elem, 'my-class' ) 9 */ 10 11/*jshint browser: true, strict: true, undef: true */ 12/*global define: false */ 13 14;(function(window) { 15 'use strict' 16 17 // class helper functions from bonzo https://github.com/ded/bonzo 18 19 function classReg(className) { 20 return new RegExp('(^|\\s+)' + className + '(\\s+|$)') 21 } 22 23 // classList support for class management 24 // altho to be fair, the api sucks because it won't accept multiple classes at once 25 var hasClass, addClass, removeClass 26 27 if ('classList' in document.documentElement) { 28 hasClass = function(elem, c) { 29 return elem.classList.contains(c) 30 } 31 addClass = function(elem, c) { 32 elem.classList.add(c) 33 } 34 removeClass = function(elem, c) { 35 elem.classList.remove(c) 36 } 37 } else { 38 hasClass = function(elem, c) { 39 return classReg(c).test(elem.className) 40 } 41 addClass = function(elem, c) { 42 if (!hasClass(elem, c)) { 43 elem.className = elem.className + ' ' + c 44 } 45 } 46 removeClass = function(elem, c) { 47 elem.className = elem.className.replace(classReg(c), ' ') 48 } 49 } 50 51 function toggleClass(elem, c) { 52 var fn = hasClass(elem, c) ? removeClass : addClass 53 fn(elem, c) 54 } 55 56 var classie = { 57 // full names 58 hasClass: hasClass, 59 addClass: addClass, 60 removeClass: removeClass, 61 toggleClass: toggleClass, 62 // short names 63 has: hasClass, 64 add: addClass, 65 remove: removeClass, 66 toggle: toggleClass, 67 } 68 69 // transport 70 if (typeof define === 'function' && define.amd) { 71 // AMD 72 define(classie) 73 } else { 74 // browser global 75 window.classie = classie 76 } 77})(window)
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.