/*
path: /utils/lib_domTools.js
*/
function cargar_js(url){
return new Promise((resolve, reject) => {
if(!document.querySelector('script[src="'+url+'"]')){
var script = document.createElement("script");
script.setAttribute("async","");
script.src=url;
script.load = 0;
document.head.appendChild(script);
script.onload = function() {
script.load = 1;
resolve();
};
script.onerror = function() {
script.load = -1;
reject();
}
}else{
script = document.querySelector('script[src="'+url+'"]');
if(script.load == 1) resolve();
else if(script.load == -1) reject();
else{
script.addEventListener("load",resolve);
script.addEventListener("error",reject);
}
}
});
}
function lib_cargar_css(url){
return new Promise((resolve, reject) => {
if(!document.querySelector('[href="'+url+'"]')){
let css = document.createElement("link");
css.setAttribute("rel", "stylesheet");
css.setAttribute("type", "text/css");
css.setAttribute("href", url);
css.load=0;
css.onload= ()=>{css.load=1;resolve();}
css.error= ()=>{css.load=-1;reject();}
document.head.appendChild(css);
}else{
let css = document.querySelector('[href="'+url+'"]');
if(css.load == 1) resolve();
else if(css.load == -1) reject();
else{
css.addEventListener("load",resolve);
css.addEventListener("error",reject);
}
}
});
}
function constructElement(tag = "",attrib = []){
var ele = document.createElement(tag);
for (i in attrib) {
if(ele[i]) ele[i]=attrib[i];
else ele.setAttribute(i,attrib[i]);
}
return ele;
}
//crea un div que contiene div para cada key de objeto
//y lo añade al elemento parent o lo devuelve
function objectToDOM(obj, parent="", clase="", id=""){
let main_div= document.createElement('div');
main_div.className= clase;
if(id)
main_div.setAttribute("id", id);
for(let campo in obj){
let campo_div= document.createElement('div');
campo_div.className= campo;
let html="";
html+= ''+campo+'';
html+= ''+obj[campo]+'';
campo_div.innerHTML= html;
main_div.appendChild(campo_div);
}
if(parent)
parent.appendChild(main_div);
else
return main_div;
}
function lib_cargar_modulo(url_modulo){
return new Promise((resolve,reject)=>{
if(!document.querySelector('[src="'+url_modulo+'"]')){
let js = document.createElement("script");
js.setAttribute("src", url_modulo);
js.addEventListener("load",()=>resolve(true));
js.addEventListener("error",reject);
document.head.appendChild(js);
}else{
resolve(false);
}
});
}
//pone el html en el contenedor y ejecuta la parte de
//código en etiquetas