voltTab/src/component/utility/complexNode.js

62 lines
982 B
JavaScript

export const complexNode = ({
tag = 'div',
text = false,
complexText = false,
attr = [],
node = []
} = {}) => {
const element = document.createElement(tag);
if (text) {
if (complexText) {
element.innerHTML = text;
} else {
let textNode = document.createTextNode(text);
element.appendChild(textNode);
}
}
if (attr.length > 0) {
attr.forEach((item) => {
if ('key' in item && 'value' in item) {
element.setAttribute(item.key, item.value);
} else if ('key' in item) {
element.setAttribute(item.key, '');
}
});
}
if (node) {
if (typeof node != 'string') {
if (node.length > 0) {
node.forEach((item) => {
if (item instanceof HTMLElement) {
element.appendChild(item);
}
});
} else {
if (node instanceof HTMLElement) {
element.appendChild(node);
}
}
}
}
return element;
};