Repository URL to install this package:
|
Version:
1.0.7 ▾
|
if (typeof window.DOMTokenList === 'undefined') {
// Constants from jQuery
var rclass = /[\t\r\n]/g;
var core_rnotwhite = /\S+/g;
// from jQuery
exports.hasClass = function(ele, className) {
className = " " + className + " ";
return (" " + ele.className + " ").replace(rclass, " ").indexOf(className) >= 0;
}
exports.addClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
if (cur.indexOf(" " + clazz + " ") < 0) {
cur += clazz + " ";
}
}
ele.className = cur.trim();
}
}
exports.removeClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
while (cur.indexOf(" " + clazz + " ") >= 0) {
cur = cur.replace(" " + clazz + " ", " ");
}
ele.className = value ? cur.trim() : "";
}
}
}
exports.toggleClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
var removeCount = 0;
while (cur.indexOf(" " + clazz + " ") >= 0) {
cur = cur.replace(" " + clazz + " ", " ");
removeCount++;
}
if (removeCount === 0) {
cur += clazz + " ";
}
ele.className = cur.trim();
}
}
}
} else {
exports.hasClass = function(el, className) {
return el.classList.contains(className);
}
exports.addClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.add(c);
});
} else {
el.classList.add(classes);
}
}
exports.removeClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.remove(c);
});
} else {
el.classList.remove(classes);
}
}
exports.toggleClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.toggle(c);
});
} else {
el.classList.toggle(classes);
}
}
}
exports.removeMatchingClasses = function(el, regex) {
var out = '';
el.className.split(/\s+/).forEach(function(cn) {
if (!cn.match(regex)) {
if (out.length) {
out += ' ';
}
out += cn;
}
});
el.className = out;
}