UNPKG

@designliquido/foles

Version:

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

80 lines (74 loc) 4.26 kB
"use strict"; 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