1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _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 |
|
71 | exports.default = _default; |
\ | No newline at end of file |