@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
21 lines • 2.46 kB
JavaScript
/**
* Converts a string to an HSL color
* @param value string to convert
* @return HSL color string
*/
// @bad TODO: convert stringHashToHsl to stringHashToRgb
export function tuiStringHashToHsl(value) {
if (value === '') {
return '';
}
let hash = 0;
for (let i = 0; i < value.length; i++) {
hash = value.charCodeAt(i) + ((hash << 5) - hash);
hash &= hash;
}
const hue = hash % 360;
const saturation = 60 + (hash % 5);
const lightness = 80 + (hash % 5);
return `hsl(${hue},${saturation}%,${lightness}%)`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWhhc2gtdG8taHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91dGlscy9mb3JtYXQvc3RyaW5nLWhhc2gtdG8taHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCx3REFBd0Q7QUFDeEQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDNUMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ2QsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUViLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ25DLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLElBQUksQ0FBQztLQUNoQjtJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7SUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVsQyxPQUFPLE9BQU8sR0FBRyxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhbiBIU0wgY29sb3JcbiAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdG8gY29udmVydFxuICogQHJldHVybiBIU0wgY29sb3Igc3RyaW5nXG4gKi9cbi8vIEBiYWQgVE9ETzogY29udmVydCBzdHJpbmdIYXNoVG9Ic2wgdG8gc3RyaW5nSGFzaFRvUmdiXG5leHBvcnQgZnVuY3Rpb24gdHVpU3RyaW5nSGFzaFRvSHNsKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBoYXNoID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaGFzaCA9IHZhbHVlLmNoYXJDb2RlQXQoaSkgKyAoKGhhc2ggPDwgNSkgLSBoYXNoKTtcbiAgICAgICAgaGFzaCAmPSBoYXNoO1xuICAgIH1cblxuICAgIGNvbnN0IGh1ZSA9IGhhc2ggJSAzNjA7XG4gICAgY29uc3Qgc2F0dXJhdGlvbiA9IDYwICsgKGhhc2ggJSA1KTtcbiAgICBjb25zdCBsaWdodG5lc3MgPSA4MCArIChoYXNoICUgNSk7XG5cbiAgICByZXR1cm4gYGhzbCgke2h1ZX0sJHtzYXR1cmF0aW9ufSUsJHtsaWdodG5lc3N9JSlgO1xufVxuIl19