aurelia-dragula
Version:
An aurelia compatible version of Dragula
37 lines (32 loc) • 889 B
JavaScript
/** This is purportedly necessary to support Internet Explorer (not Edge) properly (it doesn't support classList on SVG elements!) */
let cache = {}
const start = '(?:^|\\s)'
const end = '(?:\\s|$)'
function lookupClass (className) {
var cached = cache[className]
if (cached) {
cached.lastIndex = 0
} else {
cache[className] = cached = new RegExp(start + className + end, 'g')
}
return cached
}
export function add (el, className) {
if (el.classList) {
el.classList.add(className)
return
}
var current = el.className
if (!current.length) {
el.className = className
} else if (!lookupClass(className).test(current)) {
el.className += ' ' + className
}
}
export function rm (el, className) {
if (el.classList) {
el.classList.remove(className)
return
}
el.className = el.className.replace(lookupClass(className), ' ').trim();
}