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