UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

128 lines 5.2 kB
"use strict"; 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