@tsparticles/plugin-hsv-color 3.0.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/385.min.js +2 -0
- package/385.min.js.LICENSE.txt +1 -0
- package/browser/HsvColorManager.js +47 -35
- package/browser/index.js +1 -1
- package/cjs/HsvColorManager.js +46 -34
- package/cjs/index.js +25 -2
- package/dist_browser_HsvColorManager_js.js +30 -0
- package/esm/HsvColorManager.js +47 -35
- package/esm/index.js +1 -1
- package/package.json +2 -2
- package/report.html +3 -3
- package/tsparticles.plugin.hsvColor.js +241 -197
- package/tsparticles.plugin.hsvColor.min.js +1 -1
- package/tsparticles.plugin.hsvColor.min.js.LICENSE.txt +1 -1
- package/umd/HsvColorManager.js +46 -34
- package/umd/index.js +27 -3
package/umd/HsvColorManager.js
CHANGED
|
@@ -11,27 +11,33 @@
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.HsvColorManager = exports.hsvaToRgba = exports.hsvToRgb = exports.hsvaToHsla = exports.hsvToHsl = exports.hslaToHsva = exports.hslToHsv = exports.getStyleFromHsv = exports.rgbaToHsva = exports.rgbToHsv = void 0;
|
|
13
13
|
const engine_1 = require("@tsparticles/engine");
|
|
14
|
+
const rgbFactor = 255, double = 2, half = 0.5;
|
|
14
15
|
function rgbToHsv(rgb) {
|
|
15
16
|
const rgbPercent = {
|
|
16
|
-
r: rgb.r /
|
|
17
|
-
g: rgb.g /
|
|
18
|
-
b: rgb.b /
|
|
17
|
+
r: rgb.r / rgbFactor,
|
|
18
|
+
g: rgb.g / rgbFactor,
|
|
19
|
+
b: rgb.b / rgbFactor,
|
|
19
20
|
}, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;
|
|
20
21
|
let h = 0;
|
|
22
|
+
const phaseOffset = {
|
|
23
|
+
r: 0,
|
|
24
|
+
g: 2,
|
|
25
|
+
b: 4,
|
|
26
|
+
}, phaseValue = 60;
|
|
21
27
|
if (v === rgbPercent.r) {
|
|
22
|
-
h =
|
|
28
|
+
h = phaseValue * (phaseOffset.r + (rgbPercent.g - rgbPercent.b) / c);
|
|
23
29
|
}
|
|
24
30
|
else if (v === rgbPercent.g) {
|
|
25
|
-
h =
|
|
31
|
+
h = phaseValue * (phaseOffset.g + (rgbPercent.b - rgbPercent.r) / c);
|
|
26
32
|
}
|
|
27
33
|
else if (v === rgbPercent.b) {
|
|
28
|
-
h =
|
|
34
|
+
h = phaseValue * (phaseOffset.b + (rgbPercent.r - rgbPercent.g) / c);
|
|
29
35
|
}
|
|
30
|
-
const s = !v ?
|
|
36
|
+
const defaultSaturation = 0, s = !v ? defaultSaturation : c / v;
|
|
31
37
|
return {
|
|
32
38
|
h,
|
|
33
|
-
s: s *
|
|
34
|
-
v: v *
|
|
39
|
+
s: s * engine_1.percentDenominator,
|
|
40
|
+
v: v * engine_1.percentDenominator,
|
|
35
41
|
};
|
|
36
42
|
}
|
|
37
43
|
exports.rgbToHsv = rgbToHsv;
|
|
@@ -47,11 +53,11 @@
|
|
|
47
53
|
}
|
|
48
54
|
exports.getStyleFromHsv = getStyleFromHsv;
|
|
49
55
|
function hslToHsv(hsl) {
|
|
50
|
-
const l = hsl.l /
|
|
56
|
+
const l = hsl.l / engine_1.percentDenominator, sl = hsl.s / engine_1.percentDenominator, offset = 1, noValue = 0, v = l + sl * Math.min(l, offset - l), sv = !v ? noValue : double * (offset - l / v);
|
|
51
57
|
return {
|
|
52
58
|
h: hsl.h,
|
|
53
|
-
s: sv *
|
|
54
|
-
v: v *
|
|
59
|
+
s: sv * engine_1.percentDenominator,
|
|
60
|
+
v: v * engine_1.percentDenominator,
|
|
55
61
|
};
|
|
56
62
|
}
|
|
57
63
|
exports.hslToHsv = hslToHsv;
|
|
@@ -63,11 +69,11 @@
|
|
|
63
69
|
}
|
|
64
70
|
exports.hslaToHsva = hslaToHsva;
|
|
65
71
|
function hsvToHsl(hsv) {
|
|
66
|
-
const v = hsv.v /
|
|
72
|
+
const v = hsv.v / engine_1.percentDenominator, sv = hsv.s / engine_1.percentDenominator, offset = 1, noValue = 0, l = v * (offset - sv * half), sl = !l || l === offset ? noValue : (v - l) / Math.min(l, offset - l);
|
|
67
73
|
return {
|
|
68
74
|
h: hsv.h,
|
|
69
|
-
l: l *
|
|
70
|
-
s: sl *
|
|
75
|
+
l: l * engine_1.percentDenominator,
|
|
76
|
+
s: sl * engine_1.percentDenominator,
|
|
71
77
|
};
|
|
72
78
|
}
|
|
73
79
|
exports.hsvToHsl = hsvToHsl;
|
|
@@ -79,48 +85,49 @@
|
|
|
79
85
|
}
|
|
80
86
|
exports.hsvaToHsla = hsvaToHsla;
|
|
81
87
|
function hsvToRgb(hsv) {
|
|
82
|
-
const result = { b: 0, g: 0, r: 0 }, hsvPercent = {
|
|
83
|
-
h: hsv.h /
|
|
84
|
-
s: hsv.s /
|
|
85
|
-
v: hsv.v /
|
|
86
|
-
}, c = hsvPercent.v * hsvPercent.s, x = c * (
|
|
88
|
+
const result = { b: 0, g: 0, r: 0 }, phase = 60, hsvPercent = {
|
|
89
|
+
h: hsv.h / phase,
|
|
90
|
+
s: hsv.s / engine_1.percentDenominator,
|
|
91
|
+
v: hsv.v / engine_1.percentDenominator,
|
|
92
|
+
}, offset = 1, hPercentFactor = 2, c = hsvPercent.v * hsvPercent.s, x = c * (offset - Math.abs((hsvPercent.h % hPercentFactor) - offset));
|
|
87
93
|
let tempRgb;
|
|
88
|
-
|
|
94
|
+
const cxzRange = { min: 0, max: 1 }, xczRange = { min: 1, max: 2 }, zcxRange = { min: 2, max: 3 }, zxcRange = { min: 3, max: 4 }, xzcRange = { min: 4, max: 5 }, czxRange = { min: 5, max: 6 };
|
|
95
|
+
if (hsvPercent.h >= cxzRange.min && hsvPercent.h <= cxzRange.max) {
|
|
89
96
|
tempRgb = {
|
|
90
97
|
r: c,
|
|
91
98
|
g: x,
|
|
92
99
|
b: 0,
|
|
93
100
|
};
|
|
94
101
|
}
|
|
95
|
-
else if (hsvPercent.h >
|
|
102
|
+
else if (hsvPercent.h > xczRange.min && hsvPercent.h <= xczRange.max) {
|
|
96
103
|
tempRgb = {
|
|
97
104
|
r: x,
|
|
98
105
|
g: c,
|
|
99
106
|
b: 0,
|
|
100
107
|
};
|
|
101
108
|
}
|
|
102
|
-
else if (hsvPercent.h >
|
|
109
|
+
else if (hsvPercent.h > zcxRange.min && hsvPercent.h <= zcxRange.max) {
|
|
103
110
|
tempRgb = {
|
|
104
111
|
r: 0,
|
|
105
112
|
g: c,
|
|
106
113
|
b: x,
|
|
107
114
|
};
|
|
108
115
|
}
|
|
109
|
-
else if (hsvPercent.h >
|
|
116
|
+
else if (hsvPercent.h > zxcRange.min && hsvPercent.h <= zxcRange.max) {
|
|
110
117
|
tempRgb = {
|
|
111
118
|
r: 0,
|
|
112
119
|
g: x,
|
|
113
120
|
b: c,
|
|
114
121
|
};
|
|
115
122
|
}
|
|
116
|
-
else if (hsvPercent.h >
|
|
123
|
+
else if (hsvPercent.h > xzcRange.min && hsvPercent.h <= xzcRange.max) {
|
|
117
124
|
tempRgb = {
|
|
118
125
|
r: x,
|
|
119
126
|
g: 0,
|
|
120
127
|
b: c,
|
|
121
128
|
};
|
|
122
129
|
}
|
|
123
|
-
else if (hsvPercent.h >
|
|
130
|
+
else if (hsvPercent.h > czxRange.min && hsvPercent.h <= czxRange.max) {
|
|
124
131
|
tempRgb = {
|
|
125
132
|
r: c,
|
|
126
133
|
g: 0,
|
|
@@ -129,9 +136,9 @@
|
|
|
129
136
|
}
|
|
130
137
|
if (tempRgb) {
|
|
131
138
|
const m = hsvPercent.v - c;
|
|
132
|
-
result.r = Math.floor((tempRgb.r + m) *
|
|
133
|
-
result.g = Math.floor((tempRgb.g + m) *
|
|
134
|
-
result.b = Math.floor((tempRgb.b + m) *
|
|
139
|
+
result.r = Math.floor((tempRgb.r + m) * rgbFactor);
|
|
140
|
+
result.g = Math.floor((tempRgb.g + m) * rgbFactor);
|
|
141
|
+
result.b = Math.floor((tempRgb.b + m) * rgbFactor);
|
|
135
142
|
}
|
|
136
143
|
return result;
|
|
137
144
|
}
|
|
@@ -168,13 +175,18 @@
|
|
|
168
175
|
if (!input.startsWith("hsv")) {
|
|
169
176
|
return;
|
|
170
177
|
}
|
|
171
|
-
const regex = /hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input)
|
|
178
|
+
const regex = /hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i, result = regex.exec(input), fullLength = 4, indexes = {
|
|
179
|
+
h: 1,
|
|
180
|
+
s: 2,
|
|
181
|
+
v: 3,
|
|
182
|
+
a: 5,
|
|
183
|
+
}, defaultAlpha = 1, radix = 10;
|
|
172
184
|
return result
|
|
173
185
|
? hsvaToRgba({
|
|
174
|
-
a: result.length >
|
|
175
|
-
h: parseInt(result[
|
|
176
|
-
s: parseInt(result[
|
|
177
|
-
v: parseInt(result[
|
|
186
|
+
a: result.length > fullLength ? (0, engine_1.parseAlpha)(result[indexes.a]) : defaultAlpha,
|
|
187
|
+
h: parseInt(result[indexes.h], radix),
|
|
188
|
+
s: parseInt(result[indexes.s], radix),
|
|
189
|
+
v: parseInt(result[indexes.v], radix),
|
|
178
190
|
})
|
|
179
191
|
: undefined;
|
|
180
192
|
}
|
package/umd/index.js
CHANGED
|
@@ -1,19 +1,43 @@
|
|
|
1
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
|
+
if (k2 === undefined) k2 = k;
|
|
3
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
5
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
6
|
+
}
|
|
7
|
+
Object.defineProperty(o, k2, desc);
|
|
8
|
+
}) : (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
o[k2] = m[k];
|
|
11
|
+
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
18
|
+
if (mod && mod.__esModule) return mod;
|
|
19
|
+
var result = {};
|
|
20
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
__setModuleDefault(result, mod);
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
1
24
|
(function (factory) {
|
|
2
25
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
26
|
var v = factory(require, exports);
|
|
4
27
|
if (v !== undefined) module.exports = v;
|
|
5
28
|
}
|
|
6
29
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "
|
|
30
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
31
|
}
|
|
9
32
|
})(function (require, exports) {
|
|
10
33
|
"use strict";
|
|
34
|
+
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
|
11
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
36
|
exports.loadHsvColorPlugin = void 0;
|
|
13
|
-
const HsvColorManager_js_1 = require("./HsvColorManager.js");
|
|
14
37
|
const engine_1 = require("@tsparticles/engine");
|
|
15
38
|
async function loadHsvColorPlugin() {
|
|
16
|
-
(
|
|
39
|
+
const { HsvColorManager } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./HsvColorManager.js"))) : new Promise((resolve_1, reject_1) => { require(["./HsvColorManager.js"], resolve_1, reject_1); }).then(__importStar));
|
|
40
|
+
(0, engine_1.addColorManager)(new HsvColorManager());
|
|
17
41
|
}
|
|
18
42
|
exports.loadHsvColorPlugin = loadHsvColorPlugin;
|
|
19
43
|
});
|