Mapeate.Mapas.Selector = function(mapeate, entradas){ const self = this; let iniciado = false; const constructor = () => { mapeate.print("info", "mapeate_mapas_selector_construyendose"); mapeate.print("ok", "mapeate_mapas_selector_construido"); }; this.iniciar = callback => { const terminar = estado => typeof callback == "function" && callback(estado); mapeate.print("info", "mapeate_mapas_selector_iniciando"); if(iniciado){ mapeate.print("warn", "mapeate_mapas_selector_ya_iniciado"); terminar(false); return false; }; iniciado = true; mapeate.print("ok", "mapeate_mapas_selector_iniciado"); terminar(true); return true; }; this.crear_lista = () => Object.keys(mapeate.mapas.coger_todos()).map(clave => { const mapa = mapeate.mapas.coger(clave); return mapeate.string_variables(mapeate.vistas.coger("elemento_seleccion_mapa"), { ...mapa, nombre_objeto : mapeate.nombre_objeto, nombre : clave, nombre_texto : mapeate.i18n(clave), objetivos : mapa.objetivos || Object.keys(mapa.elementos).length }); }).join(""); this.seleccionar = (elemento, evento) => { let error = ( elemento === undefined ? 1 << 0 : elemento === null ? 1 << 1 : typeof elemento != "object" ? 1 << 2 : !(elemento.tagName || elemento.nodeName) ? 1 << 3 : !elemento.hasAttribute("data-i18n") ? 1 << 4 : 0) << 1; console.log(["A", error]); if(error) return; mapeate.mapas.construir(elemento.getAttribute("data-i18n")); }; constructor(); };