@taiga-ui/kit
Version:
Taiga UI Angular main components kit
23 lines • 2.69 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 stringHashToHsl(value) {
if (value === '') {
return '';
}
let hash = 0;
for (let i = 0; i < value.length; i++) {
/* tslint:disable: no-bitwise */
hash = value.charCodeAt(i) + ((hash << 5) - hash);
hash = hash & hash;
/* tslint:enable: no-bitwise */
}
const hue = hash % 360;
const saturation = 60 + (hash % 5);
const lightness = 80 + (hash % 5);
return `hsl(${hue},${saturation}%,${lightness}%)`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWhhc2gtdG8taHNsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC91dGlscy9mb3JtYXQvIiwic291cmNlcyI6WyJzdHJpbmctaGFzaC10by1oc2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILHdEQUF3RDtBQUN4RCxNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDekMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO1FBQ2QsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUVELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUViLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ25DLGdDQUFnQztRQUNoQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ25CLCtCQUErQjtLQUNsQztJQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7SUFDdkIsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUVsQyxPQUFPLE9BQU8sR0FBRyxJQUFJLFVBQVUsS0FBSyxTQUFTLElBQUksQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb252ZXJ0cyBhIHN0cmluZyB0byBhbiBIU0wgY29sb3JcbiAqIEBwYXJhbSB2YWx1ZSBzdHJpbmcgdG8gY29udmVydFxuICogQHJldHVybiBIU0wgY29sb3Igc3RyaW5nXG4gKi9cbi8vIEBiYWQgVE9ETzogY29udmVydCBzdHJpbmdIYXNoVG9Ic2wgdG8gc3RyaW5nSGFzaFRvUmdiXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nSGFzaFRvSHNsKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGxldCBoYXNoID0gMDtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgLyogdHNsaW50OmRpc2FibGU6IG5vLWJpdHdpc2UgKi9cbiAgICAgICAgaGFzaCA9IHZhbHVlLmNoYXJDb2RlQXQoaSkgKyAoKGhhc2ggPDwgNSkgLSBoYXNoKTtcbiAgICAgICAgaGFzaCA9IGhhc2ggJiBoYXNoO1xuICAgICAgICAvKiB0c2xpbnQ6ZW5hYmxlOiBuby1iaXR3aXNlICovXG4gICAgfVxuXG4gICAgY29uc3QgaHVlID0gaGFzaCAlIDM2MDtcbiAgICBjb25zdCBzYXR1cmF0aW9uID0gNjAgKyAoaGFzaCAlIDUpO1xuICAgIGNvbnN0IGxpZ2h0bmVzcyA9IDgwICsgKGhhc2ggJSA1KTtcblxuICAgIHJldHVybiBgaHNsKCR7aHVlfSwke3NhdHVyYXRpb259JSwke2xpZ2h0bmVzc30lKWA7XG59XG4iXX0=