UNPKG

vben-aggregate-core-shared

Version:

vben-aggregate-core-shared package

69 lines (63 loc) 2.16 kB
'use strict'; const tinycolor = require('@ctrl/tinycolor'); const themeColors = require('theme-colors'); function isDarkColor(color) { return new tinycolor.TinyColor(color).isDark(); } function isLightColor(color) { return new tinycolor.TinyColor(color).isLight(); } function convertToHsl(color) { const { a, h, l, s } = new tinycolor.TinyColor(color).toHsl(); const hsl = `hsl(${Math.round(h)} ${Math.round(s * 100)}% ${Math.round(l * 100)}%)`; return a < 1 ? `${hsl} ${a}` : hsl; } function convertToHslCssVar(color) { const { a, h, l, s } = new tinycolor.TinyColor(color).toHsl(); const hsl = `${Math.round(h)} ${Math.round(s * 100)}% ${Math.round(l * 100)}%`; return a < 1 ? `${hsl} / ${a}` : hsl; } function convertToRgb(str) { return new tinycolor.TinyColor(str.replaceAll(/deg|grad|rad|turn/g, "")).toRgbString(); } function isValidColor(color) { if (!color) { return false; } return new tinycolor.TinyColor(color).isValid; } function generatorColorVariables(colorItems) { const colorVariables = {}; colorItems.forEach(({ alias, color, name }) => { if (color) { const colorsMap = themeColors.getColors(new tinycolor.TinyColor(color).toHexString()); let mainColor = colorsMap["500"]; const colorKeys = Object.keys(colorsMap); colorKeys.forEach((key) => { const colorValue = colorsMap[key]; if (colorValue) { const hslColor = convertToHslCssVar(colorValue); colorVariables[`--${name}-${key}`] = hslColor; if (alias) { colorVariables[`--${alias}-${key}`] = hslColor; } if (key === "500") { mainColor = hslColor; } } }); if (alias && mainColor) { colorVariables[`--${alias}`] = mainColor; } } }); return colorVariables; } exports.TinyColor = tinycolor.TinyColor; exports.convertToHsl = convertToHsl; exports.convertToHslCssVar = convertToHslCssVar; exports.convertToRgb = convertToRgb; exports.generatorColorVariables = generatorColorVariables; exports.isDarkColor = isDarkColor; exports.isLightColor = isLightColor; exports.isValidColor = isValidColor;