/**
* Function for create HTML element
* @function
* @param {domelement} parent — parent HTMLElement | DocumentFragment
* @param {string} elementType
* @param {object} params - class, id, attributes
* @param {string} text - text
* @returns {domelement}
*/
export function createHTMLElem(
parent: HTMLElement | DocumentFragment,
elementType: string,
params?: {
class?: string;
id?: string;
attributes?: string[];
},
text = '',
): HTMLElement {
const element$ = document.createElement(elementType);
if (params?.class) {
const classes: string[] = params.class.split(' ');
element$.classList.add(...classes);
}
if (params?.id) {
element$.setAttribute('id', params.id);
}
if (params?.attributes) {
params.attributes.forEach((atribut) => {
const atributName = atribut.split('=')[0];
const atributValue = (atribut.split('=')[1] || '').replaceAll('"', '');
element$.setAttribute(atributName, atributValue);
});
}
if (text) {
element$.innerHTML = text;
}
parent.append(element$);
return element$;
}