UNPKG

@designliquido/foles

Version:

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

42 lines 2.4 kB
"use strict"; 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