@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
74 lines (70 loc) • 3.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validarMultiplosQualitativos = validarMultiplosQualitativos;
const cores_1 = require("../atributos/cores");
const estilo_1 = require("../atributos/estilo");
const globais_1 = require("../atributos/globais");
const capturar_valor_1 = require("./capturar-valor");
const quantificador_1 = require("./quantificador");
function validarMultiplosQualitativos(nomePropriedade, valores, valoresAceitos, quantificadoresAceitos, quantificadoresAceitos2) {
const valorModificador = (0, capturar_valor_1.capturarValor)(valores);
const valorTipado = valores[0];
if (valorModificador.numerico && quantificadoresAceitos && valorTipado.quantificador) {
if (quantificadoresAceitos2)
quantificadoresAceitos = Object.assign(Object.assign({}, quantificadoresAceitos), quantificadoresAceitos2);
(0, quantificador_1.validarQuantificador)(nomePropriedade, valorTipado.quantificador, quantificadoresAceitos);
}
let validaçõesCor = true;
if (valorModificador.metodo) {
validaçõesCor = false;
}
let valoresCss = [];
if (valoresAceitos) {
valoresCss = Object.values(valoresAceitos);
}
const valoresCorCss = Object.values(cores_1.cores);
valoresCorCss.forEach((valor) => valoresCss.push(valor));
const valoresEstiloCss = Object.values(estilo_1.estilos);
valoresEstiloCss.forEach((valor) => valoresCss.push(valor));
const valoresGlobaisCss = Object.values(globais_1.valoresGlobais);
valoresGlobaisCss.forEach((valor) => valoresCss.push(valor));
// Eliminando valores duplicados
valoresCss = [...new Set(valoresCss)];
if (valoresAceitos === null) {
if (validaçõesCor &&
typeof valorModificador.valor !== 'number' &&
!(valorModificador.valor in estilo_1.estilos) &&
!(valorModificador.valor in cores_1.cores) &&
!(valorModificador.valor in globais_1.valoresGlobais) &&
!(valoresCss.includes(valorModificador.valor))) {
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(estilo_1.estilos).reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(cores_1.cores).reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(globais_1.valoresGlobais).reduce((final, atual) => (final += `, ${atual}`))};
Valores CSS aceitos:
${valoresCss.reduce((final, atual) => (final += `, ${atual}`))}.`);
}
}
else {
if (!(valorModificador.valor in valoresAceitos) &&
validaçõesCor &&
typeof valorModificador.valor !== 'number' &&
!(valorModificador.valor in estilo_1.estilos) &&
!(valorModificador.valor in cores_1.cores) &&
!(valorModificador.valor in globais_1.valoresGlobais) &&
!(valoresCss.includes(valorModificador.valor))) {
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(estilo_1.estilos).reduce((final, atual) => (final += `, ${atual}`))},
${Object.keys(cores_1.cores).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=multiplos-qualitativos.js.map