const parentURL = '{{ absURL "" }}';
|
const doc = document.documentElement;
|
|
function isObj(obj) {
|
return (obj && typeof obj === 'object' && obj !== null) ? true : false;
|
}
|
|
function createEl(element = 'div') {
|
return document.createElement(element);
|
}
|
|
function emptyEl(el) {
|
while(el.firstChild)
|
el.removeChild(el.firstChild);
|
}
|
|
function elem(selector, parent = document){
|
let elem = isObj(parent) ? parent.querySelector(selector) : false;
|
return elem ? elem : false;
|
}
|
|
function elems(selector, parent = document) {
|
let elems = isObj(parent) ?parent.querySelectorAll(selector) : [];
|
return elems.length ? elems : false;
|
}
|
|
function pushClass(el, targetClass) {
|
if (isObj(el) && targetClass) {
|
let elClass = el.classList;
|
elClass.contains(targetClass) ? false : elClass.add(targetClass);
|
}
|
}
|
|
function deleteClass(el, targetClass) {
|
if (isObj(el) && targetClass) {
|
let elClass = el.classList;
|
elClass.contains(targetClass) ? elClass.remove(targetClass) : false;
|
}
|
}
|
|
function modifyClass(el, targetClass) {
|
if (isObj(el) && targetClass) {
|
const elClass = el.classList;
|
elClass.contains(targetClass) ? elClass.remove(targetClass) : elClass.add(targetClass);
|
}
|
}
|
|
function containsClass(el, targetClass) {
|
if (isObj(el) && targetClass && el !== document ) {
|
return el.classList.contains(targetClass) ? true : false;
|
}
|
}
|
|
function isChild(node, parentClass) {
|
let objectsAreValid = isObj(node) && parentClass && typeof parentClass == 'string';
|
return (objectsAreValid && node.closest(parentClass)) ? true : false;
|
}
|
|
function elemAttribute(elem, attr, value = null) {
|
if (value) {
|
elem.setAttribute(attr, value);
|
} else {
|
value = elem.getAttribute(attr);
|
return value ? value : false;
|
}
|
}
|
|
function deleteChars(str, subs) {
|
let newStr = str;
|
if (Array.isArray(subs)) {
|
for (let i = 0; i < subs.length; i++) {
|
newStr = newStr.replace(subs[i], '');
|
}
|
} else {
|
newStr = newStr.replace(subs, '');
|
}
|
return newStr;
|
}
|
|
function isBlank(str) {
|
return (!str || str.trim().length === 0);
|
}
|
|
function isMatch(element, selectors) {
|
if(isObj(element)) {
|
if(selectors.isArray) {
|
let matching = selectors.map(function(selector){
|
return element.matches(selector)
|
})
|
return matching.includes(true);
|
}
|
return element.matches(selectors)
|
}
|
}
|
|
function closestInt(goal, collection) {
|
const closest = collection.reduce(function(prev, curr) {
|
return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);
|
});
|
return closest;
|
}
|
|
function hasClasses(el) {
|
if(isObj(el)) {
|
const classes = el.classList;
|
return classes.length
|
}
|
}
|