UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = void 0;
7
8var _default = ({
9 hue,
10 saturation,
11 value,
12 alpha
13}) => {
14 const normalizedSaturation = saturation / 100;
15 const normalizedValue = value / 100;
16 const hueSextile = Math.floor(hue / 60 % 6);
17 const f = hue / 60 - hueSextile;
18 const p = normalizedValue * (1 - normalizedSaturation);
19 const q = normalizedValue * (1 - f * normalizedSaturation);
20 const t = normalizedValue * (1 - (1 - f) * normalizedSaturation);
21 let red;
22 let green;
23 let blue;
24
25 switch (hueSextile) {
26 case 0:
27 red = normalizedValue;
28 green = t;
29 blue = p;
30 break;
31
32 case 1:
33 red = q;
34 green = normalizedValue;
35 blue = p;
36 break;
37
38 case 2:
39 red = p;
40 green = normalizedValue;
41 blue = t;
42 break;
43
44 case 3:
45 red = p;
46 green = q;
47 blue = normalizedValue;
48 break;
49
50 case 4:
51 red = t;
52 green = p;
53 blue = normalizedValue;
54 break;
55
56 default:
57 red = normalizedValue;
58 green = p;
59 blue = q;
60 break;
61 }
62
63 return {
64 red: Math.min(255, Math.round(red * 256)),
65 green: Math.min(255, Math.round(green * 256)),
66 blue: Math.min(255, Math.round(blue * 256)),
67 alpha
68 };
69};
70
71exports.default = _default;
\No newline at end of file