UNPKG

@vimeo/iris

Version:
44 lines (41 loc) 1.63 kB
import { _ as __read } from '../tslib.es6-7f0e734f.js'; import { hsl, parseToRgb, toColorString } from 'polished'; var HSVtoHSL = function (_a) { var hue = _a.hue, saturation = _a.saturation, value = _a.value; return ({ hue: round(hue), saturation: round(saturation), lightness: round(((2 - saturation) * value) / 2), }); }; function HSLtoHSV(_a) { var hue = _a.hue, HSL_S = _a.saturation, lightness = _a.lightness; HSL_S *= lightness < 0.5 ? lightness : 1 - lightness; var saturation = Math.abs(round((2 * HSL_S) / (lightness + HSL_S))) || 0; var value = round(lightness + saturation); return { hue: hue, saturation: saturation, value: value }; } function colorSpaces(payload) { var HSV = roundValues(HSLtoHSV(payload)); var HEX = SixDigitHEX(hsl(payload).toUpperCase()); var RGB = RGBObject(payload); return { HSV: HSV, HEX: HEX, RGB: RGB, HSL: payload }; } var round = function (num) { return Math.round(num * 1000) / 1000; }; var roundValues = function (obj) { return Object.keys(obj).map(function (key) { return (obj[key] = round(obj[key])); }); }; function RGBObject(HSL) { var RGBArray = roundValues(parseToRgb(toColorString(HSL))); var _a = __read(RGBArray, 3), red = _a[0], green = _a[1], blue = _a[2]; return { red: red, green: green, blue: blue }; } function SixDigitHEX(HEX) { HEX = HEX.replace('#', ''); if (HEX.length === 3) HEX = HEX.split('') .map(function (hex) { return hex + hex; }) .join(''); return '#' + HEX; } export { HSLtoHSV, HSVtoHSL, colorSpaces, round, roundValues };