UNPKG

liquido

Version:

Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português

48 lines 1.93 kB
"use strict"; 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