PageSourceSearch

https://www.nisc.coop/wp-content/themes/NISC-master/js/classie.js

js nisc.coop collected 2026-09-24 08:50:50 UTC 1,773 bytes, 77 lines download raw bytes

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.