liquido
Version:
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
48 lines • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PreprocessadorFolEs = void 0;
const foles_1 = require("@designliquido/foles");
const xml2js_1 = require("xml2js");
class PreprocessadorFolEs {
constructor() {
this.construtorLmht = new xml2js_1.Builder();
this.foles = new foles_1.FolEs(false);
}
async processar(conteudoLmht) {
var _a, _b;
let objetoVisao;
let cabeca;
try {
objetoVisao = await (0, xml2js_1.parseStringPromise)(conteudoLmht /*, options */);
if (!objetoVisao)
return '';
cabeca = ((_a = objetoVisao.lmht) === null || _a === void 0 ? void 0 : _a.cabeca) || ((_b = objetoVisao.lmht) === null || _b === void 0 ? void 0 : _b.cabeça);
}
catch (erro) {
// TODO: Tratar melhor este erro.
return Promise.reject(`LMHT com problema de conteúdo: ${erro}`);
}
if (cabeca) {
// Procurar por estruturas de estilo.
const estilos = [];
for (const elemento of cabeca) {
if (elemento.hasOwnProperty('estilo') && elemento.estilo.length > 0) {
estilos.push(elemento.estilo[0]);
break;
}
}
if (estilos.length > 0) {
for (const estilo of estilos) {
const estiloConvertido = this.foles.converterTextoParaCss(estilo);
cabeca.push({ style: [estiloConvertido] });
}
// TODO: Melhorar essa lógica. Isso pode excluir outra coisa que não uma tag de estilo.
cabeca.shift();
}
}
const xmlContent = this.construtorLmht.buildObject(objetoVisao);
return xmlContent;
}
}
exports.PreprocessadorFolEs = PreprocessadorFolEs;
//# sourceMappingURL=preprocessador-foles.js.map