52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
Mapeate.Mapas.Global = function(mapeate, entradas){
|
|
|
|
const self = this;
|
|
let iniciado = false;
|
|
|
|
const constructor = () => {};
|
|
|
|
this.iniciar = callback => {
|
|
|
|
const terminar = estado => typeof callback == "function" && callback(estado);
|
|
|
|
if(iniciado){
|
|
terminar(false);
|
|
return false;
|
|
};
|
|
iniciado = true;
|
|
|
|
terminar(true);
|
|
|
|
return true;
|
|
};
|
|
|
|
this.preparar = svg => {
|
|
|
|
svg = svg.replace(/<title>World Map<\/title>/, "");
|
|
svg = svg.replace(/(<(g|path|circle) id="([^"]+)")([^>]+>)[\r\n]+\s+<title>[^<]+<\/title>/g, (...argumentos) => {
|
|
|
|
let html = argumentos[1];
|
|
|
|
[
|
|
["data_objetivo", argumentos[3]],
|
|
["data_habilitado", false],
|
|
["data_ver_titulo", false],
|
|
["data_acertado", false],
|
|
["data_i18n", "nombre_pais_" + argumentos[3]],
|
|
["data_title", mapeate.i18n("mapeate_pais_" + argumentos[3])],
|
|
["onmouseover", mapeate.nombre_objeto + ".mapas.mostrar_seleccion(this, event);"],
|
|
["onmouseout", mapeate.nombre_objeto + ".mapas.ocultar_seleccion(this, event);"],
|
|
["onclick", mapeate.nombre_objeto + ".mapas.elegir(this, event);"]
|
|
].forEach(([nombre, valor]) => html += ` ` + nombre.replace(/_/g, '-') + `="` + valor + `"`);
|
|
html += argumentos[4];
|
|
|
|
return html;
|
|
});
|
|
svg = svg.replace(/<style[^>]*>((?!<\/style)(.|[\r\n]))+<\/style>/, "");
|
|
|
|
return svg;
|
|
};
|
|
|
|
constructor();
|
|
|
|
}; |