Newer
Older
vmk-ui-kit / src / js / components / loader.js
function html({ type = "spin", size = "md", label = "" } = {}) {
	const labelText = label ? ` aria-label="${label}"` : " aria-hidden=\"true\"";

	if(type === "dots") {
		return `<span class="loader loader-${size} loader-dots" role="status"${labelText}><span></span><span></span><span></span></span>`;
	}

	if(type === "bar") {
		return `<span class="loader loader-${size} loader-bar" role="progressbar"${labelText}></span>`;
	}

	return `<span class="loader loader-${size}" role="status"${labelText}><span class="loader-spin"></span></span>`;
}

function create(options = {}) {
	const wrapper = document.createElement("div");
	wrapper.innerHTML = html(options);
	return wrapper.firstElementChild;
}

export default {
	html,
	create
};