UNPKG

@yookue/ts-lang-utils

Version:

Common lang utilities for typescript

28 lines 800 B
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; export function hslToHex(hsl) { if (!hsl) { return undefined; } var alias = null; if (typeof hsl === 'string') { var arr = /hsl\((\d+),\s*([\d.]+),\s*([\d.]+)\)/.exec(hsl); if (!arr || arr.length !== 4) { return undefined; } alias = arr.slice(1).map(Number); } else { alias = hsl; } var _alias = alias, _alias2 = _slicedToArray(_alias, 3), h = _alias2[0], s = _alias2[1], l = _alias2[2]; var a = s * Math.min(l, 1 - l); var f = function f(n) { var k = (n + h / 30) % 12; var color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1); return Math.round(255 * color).toString(16).padStart(2, '0'); }; return "#".concat(f(0)).concat(f(8)).concat(f(4)); }