UNPKG

@codegouvfr/react-dsfr

Version:

French State Design System React integration library

31 lines 1.38 kB
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