Skip to content

Commit 210880d

Browse files
committed
adding new functions
1 parent 41e747d commit 210880d

File tree

11 files changed

+80
-50
lines changed

11 files changed

+80
-50
lines changed

lib/converts/hexToHsl.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default function hexToHsl(hex: string): number[];

lib/converts/hexToHsl.js

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
export default function hexToHsl(hex) {
2+
let rgb = hex
3+
.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (m, r, g, b) => "#" + r + r + g + g + b + b)
4+
.substring(1)
5+
.match(/.{2}/g)
6+
.map((x) => parseInt(x, 16));
7+
(rgb[0] /= 255), (rgb[1] /= 255), (rgb[2] /= 255);
8+
var max = Math.max(rgb[0], rgb[1], rgb[2]), min = Math.min(rgb[0], rgb[1], rgb[2]);
9+
var h, s, l = (max + min) / 2;
10+
if (max == min) {
11+
h = s = 0;
12+
}
13+
else {
14+
var d = max - min;
15+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
16+
switch (max) {
17+
case rgb[0]:
18+
h = (rgb[1] - rgb[2]) / d + (rgb[1] < rgb[2] ? 6 : 0);
19+
break;
20+
case rgb[1]:
21+
h = (rgb[2] - rgb[1]) / d + 2;
22+
break;
23+
case rgb[2]:
24+
h = (rgb[0] - rgb[1]) / d + 4;
25+
break;
26+
}
27+
h /= 6;
28+
}
29+
return [h, s, l];
30+
}

lib/converts/hslToRgb.d.ts

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* Converts HSL color to RGB color
3+
*
4+
* @param {number} h
5+
* @param {number} s
6+
* @param {number} l
7+
* @returns {number[]}
8+
*/
9+
export default function hslToRgb(h: number, s: number, l: number): number[];

lib/converts/hslToRgb.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* Converts HSL color to RGB color
3+
*
4+
* @param {number} h
5+
* @param {number} s
6+
* @param {number} l
7+
* @returns {number[]}
8+
*/
9+
export default function hslToRgb(h, s, l) {
10+
s /= 100;
11+
l /= 100;
12+
const k = (n) => (n + h / 30) % 12;
13+
const a = s * Math.min(l, 1 - l);
14+
const f = (n) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));
15+
return [
16+
Math.trunc(255 * f(0)),
17+
Math.trunc(255 * f(8)),
18+
Math.trunc(255 * f(4)),
19+
];
20+
}

lib/converts/rgbToHsl.d.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
/**
2+
* Converts RGB Color To HSL
23
*
3-
* @param r
4-
* @param g
5-
* @param b
6-
* @returns
4+
* @param {number} r
5+
* @param {number} g
6+
* @param {number} b
7+
* @returns {number[]}
78
*/
89
export default function rgbToHsl(r: number, g: number, b: number): number[];

lib/converts/rgbToHsl.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/**
2+
* Converts RGB Color To HSL
23
*
3-
* @param r
4-
* @param g
5-
* @param b
6-
* @returns
4+
* @param {number} r
5+
* @param {number} g
6+
* @param {number} b
7+
* @returns {number[]}
78
*/
89
export default function rgbToHsl(r, g, b) {
910
(r /= 255), (g /= 255), (b /= 255);

lib/main.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import randomPassword from "./randoms/randomPassword";
2525
import rgbToHex from "./converts/rgbToHex";
2626
import hexToRgb from "./converts/hexToRgb";
2727
import rgbToHsl from "./converts/rgbToHsl";
28+
import hslToRgb from "./converts/hslToRgb";
2829
import removeInnerSpace from "./strings/removeInnerSpace";
2930
import getBrowser from "./user/getBrowser";
3031
import getMonths from "./user/getMonths";
@@ -62,6 +63,7 @@ declare const functionality: {
6263
rgbToHex: typeof rgbToHex;
6364
hexToRgb: typeof hexToRgb;
6465
rgbToHsl: typeof rgbToHsl;
66+
hslToRgb: typeof hslToRgb;
6567
removeInnerSpace: typeof removeInnerSpace;
6668
getBrowser: typeof getBrowser;
6769
getMonths: typeof getMonths;

lib/main.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import hexToRgb from "./converts/hexToRgb";
2727
import rgbToHsl from "./converts/rgbToHsl";
2828
// import hexToHsl from "./converts/hexToHsl";
2929
// import hslToHex from "./converts/hslToHex";
30-
// import hslToRgb from "./converts/hslToRgb";
30+
import hslToRgb from "./converts/hslToRgb";
3131
import removeInnerSpace from "./strings/removeInnerSpace";
3232
import getBrowser from "./user/getBrowser";
3333
import getMonths from "./user/getMonths";
@@ -65,6 +65,7 @@ const functionality = {
6565
rgbToHex,
6666
hexToRgb,
6767
rgbToHsl,
68+
hslToRgb,
6869
removeInnerSpace,
6970
getBrowser,
7071
getMonths,

project/ts/functionality/converts/hexToHsl.ts

-35
This file was deleted.

project/ts/functionality/converts/rgbToHsl.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/**
2+
* Converts RGB Color To HSL
23
*
3-
* @param r
4-
* @param g
5-
* @param b
6-
* @returns
4+
* @param {number} r
5+
* @param {number} g
6+
* @param {number} b
7+
* @returns {number[]}
78
*/
89
export default function rgbToHsl(r: number, g: number, b: number): number[] {
910
(r /= 255), (g /= 255), (b /= 255);

project/ts/functionality/main.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import randomPassword from "./randoms/randomPassword";
2525
import rgbToHex from "./converts/rgbToHex";
2626
import hexToRgb from "./converts/hexToRgb";
2727
import rgbToHsl from "./converts/rgbToHsl";
28-
import hexToHsl from "./converts/hexToHsl";
28+
// import hexToHsl from "./converts/hexToHsl";
2929
// import hslToHex from "./converts/hslToHex";
3030
import hslToRgb from "./converts/hslToRgb";
3131
import removeInnerSpace from "./strings/removeInnerSpace";
@@ -67,7 +67,6 @@ const functionality = {
6767
hexToRgb,
6868
rgbToHsl,
6969
hslToRgb,
70-
hexToHsl,
7170
removeInnerSpace,
7271
getBrowser,
7372
getMonths,

0 commit comments

Comments
 (0)