Mapeate/Public/ecma/Mapeate.Mapas.Selector.ecma.js

68 lines
1.8 KiB
JavaScript
Raw Normal View History

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();
};