@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
55 lines (53 loc) • 3.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validarValorCor = validarValorCor;
const hexadecimal_cor_1 = require("../../valores/metodos/foles/hexadecimal-cor");
const cores_1 = require("../atributos/cores");
const globais_1 = require("../atributos/globais");
const capturar_valor_1 = require("./capturar-valor");
function validarValorCor(nomePropriedade, valores, valoresAceitos) {
const valorModificador = (0, capturar_valor_1.capturarValor)(valores);
const valoresCss = Object.values(cores_1.cores);
const valoresGlobaisCss = Object.values(globais_1.valoresGlobais);
valoresGlobaisCss.forEach((valor) => valoresCss.push(valor));
if (valorModificador.metodo) {
if (valores[0] instanceof hexadecimal_cor_1.HexadecimalCor) {
const codigoHexadecimal = valores[0]["codigo"];
if (codigoHexadecimal.length !== 3 && codigoHexadecimal.length !== 6 && codigoHexadecimal.length !== 8) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com hexadecimal inválido: '${codigoHexadecimal}'. Hexadecimais
devem ter 3, 6 ou 8 caracteres após a cerquilha, sendo cada caracter de 0 até 9 ou de A até F.`);
}
}
else if (!["rgb", "rgba", "hsl", "hsla"].includes(valores[0].constructor.name.toLowerCase())) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com método '${valores[0].constructor.name}' inválido. Métodos aceitos:
rgb(), rgba(), hsl(), hsla().`);
}
}
else {
if (valoresAceitos === null || valoresAceitos === undefined) {
if (!(valorModificador.valor in cores_1.cores) &&
!(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 FolEs aceitos:
${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 cores_1.cores) &&
!(valoresCss.includes(valorModificador.valor)) &&
!(valorModificador.valor in valoresAceitos) &&
!(valorModificador.valor in globais_1.valoresGlobais)) {
throw new Error(`Modificador ou variável '${nomePropriedade}' com valor ${valorModificador.valor} inválido. Valores FolEs aceitos:
${Object.keys(cores_1.cores).reduce((final, atual) => (final += `, ${atual}`))},
${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}`))}.`);
}
}
}
}
//# sourceMappingURL=cor.js.map