108 lines
3.5 KiB
JavaScript
108 lines
3.5 KiB
JavaScript
Mapeate.Base = function(mapeate, entradas){
|
|
|
|
const self = this,
|
|
base_cache = {x : 0, y : 0},
|
|
posicion_de_raton = {x : 0, y : 0};
|
|
let iniciado = false,
|
|
base_hilo,
|
|
construido = false;
|
|
|
|
const constructor = () => {
|
|
|
|
mapeate.print("info", "mapeate_base_construyendose");
|
|
|
|
mapeate.print("ok", "mapeate_base_construido");
|
|
|
|
};
|
|
|
|
this.iniciar = callback => {
|
|
|
|
const terminar = estado => typeof callback == "function" && callback(estado);
|
|
|
|
if(iniciado){
|
|
terminar(false);
|
|
return false;
|
|
};
|
|
iniciado = true;
|
|
|
|
self.construir(() => {
|
|
mapeate.print("ok", "base_construida");
|
|
terminar(true);
|
|
});
|
|
|
|
return true;
|
|
};
|
|
|
|
const base_hilo_metodo = () => {
|
|
|
|
if(mapeate.si_mismo && (base_cache.x != mapeate.si_mismo.offsetWidth || base_cache.y != mapeate.si_mismo.offsetHeight) && mapeate.si_mismo.getAttribute){
|
|
|
|
const minimo = Number(mapeate.si_mismo.getAttribute("data-celdas-minimo"));
|
|
let tamano;
|
|
|
|
base_cache.x = mapeate.si_mismo.offsetWidth;
|
|
base_cache.y = mapeate.si_mismo.offsetHeight;
|
|
|
|
tamano = base_cache[base_cache.x < base_cache.y ? "x" : "y"] / Number(mapeate.si_mismo.getAttribute("data-celdas"));
|
|
|
|
mapeate.si_mismo.style.fontSize = (tamano < minimo ? tamano = minimo : tamano) + "px";
|
|
mapeate.si_mismo.setAttribute("data-menu-principal-completo", base_cache.x / tamano > 50);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
this.construir = callback => {
|
|
|
|
const terminar = estado => typeof callback == "function" && callback(estado);
|
|
|
|
if(construido){
|
|
terminar(false);
|
|
return false;
|
|
};
|
|
construido = true;
|
|
|
|
mapeate.vistas.establecer(mapeate.configuracion("posicion_html"), "base", {
|
|
clases : "",
|
|
link_local : "#",
|
|
logo : mapeate.configuracion("logo"),
|
|
hash : mapeate.coger_hash(),
|
|
menu_principal : mapeate.vistas.crear_elementos_de_menu("elemento_menu_principal", mapeate.configuracion("menu_principal")),
|
|
menu_links : mapeate.vistas.crear_elementos_de_menu("elemento_menu_links", mapeate.configuracion("menu_links")),
|
|
lista_mapas : mapeate.mapas.selector.crear_lista(),
|
|
parametros_raiz : {
|
|
aplicacion : mapeate.configuracion("aplicacion"),
|
|
link : mapeate.configuracion("link"),
|
|
git : mapeate.configuracion("git"),
|
|
organizacion : mapeate.configuracion("organizacion"),
|
|
celdas : mapeate.configuracion("celdas"),
|
|
celdas_minimo : mapeate.configuracion("tamano_minimo_celda"),
|
|
onmousemove : mapeate.nombre_objeto + ".base.capturar_cursor(this, event);"
|
|
}
|
|
}, () => {
|
|
|
|
mapeate.establecer_si_mismo(document.querySelector("#" + mapeate.hash_self));
|
|
|
|
base_hilo = mapeate.anadir_hilo_de_proceso(base_hilo_metodo);
|
|
|
|
terminar(true);
|
|
|
|
});
|
|
|
|
return true;
|
|
};
|
|
|
|
this.coger_posicion_del_cursor = evento => {
|
|
|
|
const box = mapeate.si_mismo.getBoundingClientRect();
|
|
|
|
return [evento.clientX - box.x, evento.clientY - box.y];
|
|
};
|
|
|
|
this.capturar_cursor = (elemento, evento) => [posicion_de_raton.x, posicion_de_raton.y] = self.coger_posicion_del_cursor(evento);
|
|
|
|
this.coger_posicion_del_raton = () => ({...posicion_de_raton});
|
|
|
|
constructor();
|
|
|
|
}; |