@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
128 lines • 5.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tratarValores = tratarValores;
exports.tratarValoresReversos = tratarValoresReversos;
const cores_1 = require("../../modificadores/atributos/cores");
function tratarValores(arrayValores, valoresAceitos) {
let traducaoRetorno = '';
const coresFolEs = Object.keys(cores_1.cores);
let valoresFolEs = [];
if (valoresAceitos)
valoresFolEs = Object.keys(valoresAceitos);
arrayValores.forEach((valor, index, array) => {
if (valor.tipo === 'NUMERO') {
if (index === 0 || array[index - 1].lexema === '#') {
traducaoRetorno += `${valor.lexema}`;
}
else {
traducaoRetorno += ` ${valor.lexema}`;
}
}
else if (valoresFolEs.includes(valor.lexema)) {
const semEspaco = index === 0 || valor.tipo === 'QUANTIFICADOR' || array[index - 1].tipo === 'NUMERO';
if (semEspaco) {
traducaoRetorno += `${valoresAceitos[valor.lexema]}`;
}
else {
traducaoRetorno += ` ${valoresAceitos[valor.lexema]}`;
}
}
else if (coresFolEs.includes(valor.lexema)) {
if (index === 0) {
traducaoRetorno += `${cores_1.cores[valor.lexema]}`;
}
else {
traducaoRetorno += ` ${cores_1.cores[valor.lexema]}`;
}
}
else if (valor.tipo === 'QUANTIFICADOR' || valor.tipo === 'VIRGULA') {
traducaoRetorno += `${valor.lexema}`;
}
else if (valor.tipo === 'PARENTESE_DIREITO') {
traducaoRetorno += ')';
}
else if (valor.tipo === 'PARENTESE_ESQUERDO') {
traducaoRetorno += '(';
}
else if (valor.lexema === '#') {
// Início de cor hexadecimal: adiciona espaço antes apenas se não for o primeiro token
traducaoRetorno += index === 0 ? '#' : ' #';
}
else if (index !== 0 && array[index - 1].lexema === '#') {
traducaoRetorno += `${valor.lexema}`;
}
else if (index > 1 && array[index - 1].tipo === 'NUMERO' && array[index - 2].lexema === '#') {
// Continuação de código hex que começa com dígitos (ex.: #0000001a)
traducaoRetorno += `${valor.lexema}`;
}
else if (index === 0 || (array[index - 1].tipo === 'PARENTESE_DIREITO' || array[index - 1].tipo === 'PARENTESE_ESQUERDO')) {
traducaoRetorno += `${valor.lexema}`;
}
else {
traducaoRetorno += ` ${valor.lexema}`;
}
});
return traducaoRetorno;
}
function tratarValoresReversos(arrayValores, valoresAceitos) {
let traducaoRetorno = '';
const coresCss = Object.values(cores_1.cores);
let valoresFolEs = [];
if (valoresAceitos)
valoresFolEs = Object.keys(valoresAceitos);
arrayValores.forEach((valor, index, array) => {
if (valor.tipo === 'NUMERO') {
if (index === 0 || array[index - 1].lexema === '#') {
traducaoRetorno += `${valor.lexema}`;
}
else {
traducaoRetorno += ` ${valor.lexema}`;
}
}
else if (valoresFolEs.includes(valor.lexema)) {
const semEspaco = index === 0 || valor.tipo === 'QUANTIFICADOR' || array[index - 1].tipo === 'NUMERO';
if (semEspaco) {
traducaoRetorno += `${valoresAceitos[valor.lexema]}`;
}
else {
traducaoRetorno += ` ${valoresAceitos[valor.lexema]}`;
}
}
else if (coresCss.includes(valor.lexema)) {
const corFolEs = Object.keys(cores_1.cores).find(chave => cores_1.cores[chave] === valor.lexema);
if (index === 0) {
traducaoRetorno += `${corFolEs}`;
}
else {
traducaoRetorno += ` ${corFolEs}`;
}
}
else if (valor.tipo === 'QUANTIFICADOR' || valor.tipo === 'VIRGULA') {
traducaoRetorno += `${valor.lexema}`;
}
else if (valor.tipo === 'PARENTESE_DIREITO') {
traducaoRetorno += ')';
}
else if (valor.tipo === 'PARENTESE_ESQUERDO') {
traducaoRetorno += '(';
}
else if (valor.lexema === '#') {
traducaoRetorno += index === 0 ? '#' : ' #';
}
else if (index !== 0 && array[index - 1].lexema === '#') {
traducaoRetorno += `${valor.lexema}`;
}
else if (index > 1 && array[index - 1].tipo === 'NUMERO' && array[index - 2].lexema === '#') {
// Continuação de código hex que começa com dígitos (ex.: #0000001a)
traducaoRetorno += `${valor.lexema}`;
}
else if (index === 0 || (array[index - 1].tipo === 'PARENTESE_DIREITO' || array[index - 1].tipo === 'PARENTESE_ESQUERDO')) {
traducaoRetorno += `${valor.lexema}`;
}
else {
traducaoRetorno += ` ${valor.lexema}`;
}
});
return traducaoRetorno;
}
//# sourceMappingURL=comum.js.map