@codegouvfr/react-dsfr
Version:
French State Design System React integration library
31 lines • 1.38 kB
JavaScript
import { colorOptions, colorDecisions } from "./generatedFromCss/colorResolution";
import { exclude } from "tsafe/exclude";
import { threeDigitColorHexToSixDigitsColorHex } from "../tools/threeDigitColorHexToSixDigitsColorHex";
export function resolveColorHexCodeToDecision(params) {
let { hexColorCode } = params;
hexColorCode = hexColorCode.toLowerCase();
if (hexColorCode.length === 4) {
hexColorCode = threeDigitColorHexToSixDigitsColorHex(hexColorCode);
}
const options = colorOptions
.filter(({ color }) => typeof color === "string"
? color === hexColorCode
: color.dark === hexColorCode || color.light === hexColorCode)
.map((colorOption) => ({
"color": colorOption.color,
"optionObjectPath": colorOption.themePath,
"cssVarName": colorOption.colorOptionName
}));
return colorDecisions
.map(colorDecision => {
const option = options.find(({ optionObjectPath }) => optionObjectPath.join(".") === colorDecision.optionThemePath.join("."));
return option === undefined ? undefined : [colorDecision, option];
})
.filter(exclude(undefined))
.map(([{ colorDecisionName, themePath }, option]) => ({
"cssVarName": colorDecisionName,
"decisionObjectPath": themePath,
option
}));
}
//# sourceMappingURL=colorResolver.js.map