55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
export function toggleClass(elem, className, bool) {
|
|
if (bool === true)
|
|
return elem.classList.add(className);
|
|
elem.classList.remove(className);
|
|
}
|
|
export function createElement(tag, className, content) {
|
|
var e = window.document.createElement(tag);
|
|
className = className || "";
|
|
content = content || "";
|
|
e.className = className;
|
|
if (content !== undefined)
|
|
e.textContent = content;
|
|
return e;
|
|
}
|
|
export function clearNode(node) {
|
|
while (node.firstChild)
|
|
node.removeChild(node.firstChild);
|
|
}
|
|
export function findParent(node, condition) {
|
|
if (condition(node))
|
|
return node;
|
|
else if (node.parentNode)
|
|
return findParent(node.parentNode, condition);
|
|
return undefined;
|
|
}
|
|
export function createNumberInput(inputClassName, opts) {
|
|
var wrapper = createElement("div", "numInputWrapper"), numInput = createElement("input", "numInput " + inputClassName), arrowUp = createElement("span", "arrowUp"), arrowDown = createElement("span", "arrowDown");
|
|
if (navigator.userAgent.indexOf("MSIE 9.0") === -1) {
|
|
numInput.type = "number";
|
|
}
|
|
else {
|
|
numInput.type = "text";
|
|
numInput.pattern = "\\d*";
|
|
}
|
|
if (opts !== undefined)
|
|
for (var key in opts)
|
|
numInput.setAttribute(key, opts[key]);
|
|
wrapper.appendChild(numInput);
|
|
wrapper.appendChild(arrowUp);
|
|
wrapper.appendChild(arrowDown);
|
|
return wrapper;
|
|
}
|
|
export function getEventTarget(event) {
|
|
try {
|
|
if (typeof event.composedPath === "function") {
|
|
var path = event.composedPath();
|
|
return path[0];
|
|
}
|
|
return event.target;
|
|
}
|
|
catch (error) {
|
|
return event.target;
|
|
}
|
|
}
|