@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
80 lines (74 loc) • 4.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validarValorNumerico = validarValorNumerico;
const globais_1 = require("../atributos/globais");
const capturar_valor_1 = require("./capturar-valor");
const proibir_quantificador_1 = require("./proibir-quantificador");
const quantificador_1 = require("./quantificador");
function validarValorNumerico(nomePropriedade, valores, valoresAceitos, valoresExtra, quantificadoresAceitos, naoAceitaQuantificador = false) {
const valorModificador = (0, capturar_valor_1.capturarValor)(valores);
const valorNumericoTipado = valores[0];
if (naoAceitaQuantificador && valorModificador.numerico && valorNumericoTipado.quantificador) {
(0, proibir_quantificador_1.proibirQuantificador)(nomePropriedade, valorNumericoTipado.quantificador);
}
if (quantificadoresAceitos && valorModificador.numerico && valorNumericoTipado.quantificador) {
(0, quantificador_1.validarQuantificador)(nomePropriedade, valorNumericoTipado.quantificador, quantificadoresAceitos);
}
let valoresCss = [];
if (valoresAceitos) {
valoresCss = Object.values(valoresAceitos);
}
const valoresGlobaisCss = Object.values(globais_1.valoresGlobais);
valoresGlobaisCss.forEach((valor) => valoresCss.push(valor));
if (valoresAceitos === null && valoresExtra === null) {
if (typeof valorModificador.valor !== 'number' &&
!(valoresCss.includes(valorModificador.valor)) &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores aceitos:
número-quantificador (ex.: 12px);
Valores Foles aceitos:
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))}.
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
if (valoresAceitos !== null && valoresExtra === null) {
if (typeof valorModificador.valor !== 'number' &&
!(valorModificador.valor in valoresAceitos) &&
!(valoresCss.includes(valorModificador.valor)) &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores aceitos:
número-quantificador (ex.: 12px);
Valores FolEs aceitos:
${Object.keys(valoresAceitos).reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))}.
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
if (valoresAceitos !== null && valoresExtra !== null) {
let metodoValido = false;
if (valorModificador.metodo) {
for (let index = 0; index < valoresExtra.length; index++) {
if (metodoValido === false) {
metodoValido = valorModificador.valor === valoresExtra[index];
}
}
}
if (typeof valorModificador.valor !== 'number' &&
!(valorModificador.valor in valoresAceitos) &&
!(valoresCss.includes(valorModificador.valor)) &&
!metodoValido &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores aceitos:
número-quantificador (ex.: 12px);
Valores FolEs aceitos:
${Object.keys(valoresAceitos).reduce((final, atual) => (final += `, ${atual}`))},
${valoresExtra.reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))}.
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
}
//# sourceMappingURL=numerica.js.map