Mapeate.Base = function(mapeate, entradas){ const self = this, base_cache = {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"), mapeate.vistas.coger("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") } }, () => { mapeate.establecer_si_mismo(document.querySelector("#" + mapeate.hash_self)); base_hilo = mapeate.anadir_hilo_de_proceso(base_hilo_metodo); terminar(true); }); return true; }; constructor(); };