toosoon-utils 2.2.0 → 2.3.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/lib/classes/_pool.d.ts +56 -0
- package/lib/classes/_pool.js +92 -0
- package/lib/classes/color-scale.d.ts +52 -0
- package/lib/classes/color-scale.js +160 -0
- package/lib/classes/frame-rate.d.ts +25 -0
- package/lib/classes/frame-rate.js +48 -0
- package/lib/colors.d.ts +155 -0
- package/lib/colors.js +367 -0
- package/lib/constants.d.ts +162 -0
- package/lib/constants.js +170 -0
- package/lib/dom.d.ts +25 -0
- package/lib/dom.js +47 -0
- package/lib/files.d.ts +14 -0
- package/lib/files.js +38 -0
- package/lib/functions.d.ts +22 -0
- package/lib/functions.js +53 -0
- package/lib/geometry.d.ts +89 -0
- package/lib/geometry.js +128 -0
- package/lib/maths.d.ts +161 -0
- package/lib/maths.js +219 -0
- package/lib/prng.d.ts +123 -0
- package/lib/prng.js +234 -0
- package/lib/random.d.ts +91 -0
- package/lib/random.js +162 -0
- package/lib/strings.d.ts +14 -0
- package/lib/strings.js +18 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +18 -0
- package/lib/types.js +1 -0
- package/package.json +1 -1
package/lib/colors.js
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { W3CX11 } from './constants';
|
|
2
|
+
import { toDegrees, toRadians } from './geometry';
|
|
3
|
+
import { clamp } from './maths';
|
|
4
|
+
/**
|
|
5
|
+
* Normalize a color representation into RGB
|
|
6
|
+
*
|
|
7
|
+
* @param {ColorRepresentation} color Color representation
|
|
8
|
+
* @returns {[number,number,number]} Normalized RGB color
|
|
9
|
+
*/
|
|
10
|
+
export function normalizeColor(color) {
|
|
11
|
+
var _a;
|
|
12
|
+
if (typeof color === 'string') {
|
|
13
|
+
return hexToRgb((_a = W3CX11[color]) !== null && _a !== void 0 ? _a : color);
|
|
14
|
+
}
|
|
15
|
+
else if (typeof color === 'number') {
|
|
16
|
+
return hexToRgb(color);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
return color;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// ******************************************
|
|
23
|
+
// RGB & Hexadecimal color spaces
|
|
24
|
+
// ******************************************
|
|
25
|
+
/**
|
|
26
|
+
* Normalize an hexadecimal string
|
|
27
|
+
*
|
|
28
|
+
* @param {string} hex Hexadecimal string
|
|
29
|
+
* @returns {string} Normalized hexadecimal string
|
|
30
|
+
*/
|
|
31
|
+
export function normalizeHexString(hex) {
|
|
32
|
+
var match;
|
|
33
|
+
var result = '000000';
|
|
34
|
+
hex = hex.toLocaleLowerCase();
|
|
35
|
+
if ((match = hex.match(/(#|0x)?([a-f0-9]{6})/i))) {
|
|
36
|
+
result = match[2];
|
|
37
|
+
}
|
|
38
|
+
else if ((match = hex.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))) {
|
|
39
|
+
result = match[1] + match[1] + match[2] + match[2] + match[3] + match[3];
|
|
40
|
+
}
|
|
41
|
+
else if ((match = hex.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))) {
|
|
42
|
+
result =
|
|
43
|
+
parseInt(match[1]).toString(16).padStart(2, '0') +
|
|
44
|
+
parseInt(match[2]).toString(16).padStart(2, '0') +
|
|
45
|
+
parseInt(match[3]).toString(16).padStart(2, '0');
|
|
46
|
+
}
|
|
47
|
+
return "#".concat(result);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Convert RGB to hexadecimal
|
|
51
|
+
* Note: rgb values are contained in the interval [0, 1]
|
|
52
|
+
*
|
|
53
|
+
* @param {[number, number, number]} rgb RGB color
|
|
54
|
+
* @returns {number} Hexadecimal color
|
|
55
|
+
*/
|
|
56
|
+
export function rgbToHex(_a) {
|
|
57
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
58
|
+
return ((r * 255) << 16) ^ ((g * 255) << 8) ^ ((b * 255) << 0);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Convert RGB to hexadecimal string
|
|
62
|
+
* Note: rgb values are contained in the interval [0, 1]
|
|
63
|
+
*
|
|
64
|
+
* @param {[number, number, number]} rgb RGB color
|
|
65
|
+
* @returns {string} Hexadecimal string
|
|
66
|
+
*/
|
|
67
|
+
export function rgbToHexString(_a) {
|
|
68
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
69
|
+
r = clamp(Math.round(r * 255), 0, 255);
|
|
70
|
+
g = clamp(Math.round(g * 255), 0, 255);
|
|
71
|
+
b = clamp(Math.round(b * 255), 0, 255);
|
|
72
|
+
var result = (b | (g << 8) | (r << 16) | (1 << 24)).toString(16).slice(1);
|
|
73
|
+
return "#".concat(result);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Convert hexadecimal to RGB
|
|
77
|
+
* Note: rgb values are contained in the interval [0, 1]
|
|
78
|
+
*
|
|
79
|
+
* @param {(number|string)} hex Hexadecimal color
|
|
80
|
+
* @returns {[number, number, number]} RGB color
|
|
81
|
+
*/
|
|
82
|
+
export function hexToRgb(hex) {
|
|
83
|
+
if (typeof hex === 'number') {
|
|
84
|
+
hex = Math.floor(hex);
|
|
85
|
+
}
|
|
86
|
+
else if (typeof hex === 'string') {
|
|
87
|
+
hex = normalizeHexString(hex).replace(/^#/, '');
|
|
88
|
+
hex = parseInt(hex, 16);
|
|
89
|
+
}
|
|
90
|
+
var r = ((hex >> 16) & 255) / 255;
|
|
91
|
+
var g = ((hex >> 8) & 255) / 255;
|
|
92
|
+
var b = (hex & 255) / 255;
|
|
93
|
+
return [r, g, b];
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Lighten a color
|
|
97
|
+
*
|
|
98
|
+
* @param {string} hex Hexadecimal string
|
|
99
|
+
* @param {number} [amount=0] Amount of the color offset
|
|
100
|
+
* @returns {string} Computed hexadecimal
|
|
101
|
+
*/
|
|
102
|
+
export function lighten(hex, amount) {
|
|
103
|
+
if (amount === void 0) { amount = 0; }
|
|
104
|
+
var prefix = '';
|
|
105
|
+
if (hex[0] === '#') {
|
|
106
|
+
hex = hex.slice(1);
|
|
107
|
+
prefix = '#';
|
|
108
|
+
}
|
|
109
|
+
var value = parseInt(hex, 16);
|
|
110
|
+
var r = clamp((value >> 16) + amount, 0, 255);
|
|
111
|
+
var b = clamp(((value >> 8) & 0x00ff) + amount, 0, 255);
|
|
112
|
+
var g = clamp((value & 0x0000ff) + amount, 0, 255);
|
|
113
|
+
var result = g | (b << 8) | (r << 16);
|
|
114
|
+
if (r === 0 && g === 0 && b === 0 && amount !== 0) {
|
|
115
|
+
result = '000000';
|
|
116
|
+
}
|
|
117
|
+
return prefix + result.toString(16);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Darken a color
|
|
121
|
+
*
|
|
122
|
+
* @param {string} hex Hexadecimal string
|
|
123
|
+
* @param {number} [amount=0] Amount of the color offset
|
|
124
|
+
* @returns {string} Computed hexadecimal
|
|
125
|
+
*/
|
|
126
|
+
export function darken(hex, amount) {
|
|
127
|
+
if (amount === void 0) { amount = 0; }
|
|
128
|
+
return lighten(hex, -amount);
|
|
129
|
+
}
|
|
130
|
+
// ***************************************************
|
|
131
|
+
// RGB & Hue-Saturation-Lightness (HSL) color spaces
|
|
132
|
+
// ***************************************************
|
|
133
|
+
/**
|
|
134
|
+
* Normalize an HSL string
|
|
135
|
+
* Note: hsl values are contained in the intervals H: [0, 360], S: [0, 1], L: [0, 1]
|
|
136
|
+
*
|
|
137
|
+
* @param {string} hsl HSL string (format: 'hsl(360, 100%, 100%)')
|
|
138
|
+
* @returns {[number, number, number]} Normalized HSL color
|
|
139
|
+
*/
|
|
140
|
+
export function normalizeHslString(hsl) {
|
|
141
|
+
var _a, _b;
|
|
142
|
+
var _c = (_b = (_a = hsl.match(/\d+/g)) === null || _a === void 0 ? void 0 : _a.map(Number)) !== null && _b !== void 0 ? _b : [0, 0, 0], h = _c[0], s = _c[1], l = _c[2];
|
|
143
|
+
return [h, s / 100, l / 100];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Convert RGB to HSL
|
|
147
|
+
* Notes:
|
|
148
|
+
* - rgb values are contained in the interval [0, 1]
|
|
149
|
+
* - hsl values are contained in the intervals H: [0, 360], S: [0, 1], L: [0, 1]
|
|
150
|
+
*
|
|
151
|
+
* @param {[number, number, number]} rgb RGB color
|
|
152
|
+
* @returns {[number, number, number]} HSL color
|
|
153
|
+
*/
|
|
154
|
+
export function rgbToHsl(_a) {
|
|
155
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
156
|
+
var l = Math.max(r, g, b);
|
|
157
|
+
var s = l - Math.min(r, g, b);
|
|
158
|
+
var h = s ? (l === r ? (g - b) / s : l === g ? 2 + (b - r) / s : 4 + (r - g) / s) : 0;
|
|
159
|
+
return [
|
|
160
|
+
60 * h < 0 ? 60 * h + 360 : 60 * h,
|
|
161
|
+
s ? (l <= 0.5 ? s / (2 * l - s) : s / (2 - (2 * l - s))) : 0,
|
|
162
|
+
(2 * l - s) / 2
|
|
163
|
+
];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Convert HSL to RGB
|
|
167
|
+
* Notes:
|
|
168
|
+
* - rgb values are contained in the interval [0, 1]
|
|
169
|
+
* - hsl values are contained in the intervals H: [0, 360], S: [0, 1], L: [0, 1]
|
|
170
|
+
*
|
|
171
|
+
* @param {[number, number, number]} hsl HSL color
|
|
172
|
+
* @returns {[number, number, number]} RGB color
|
|
173
|
+
*/
|
|
174
|
+
export function hslToRgb(_a) {
|
|
175
|
+
var h = _a[0], s = _a[1], l = _a[2];
|
|
176
|
+
var a = s * Math.min(l, 1 - l);
|
|
177
|
+
var k = function (v) { return (v + h / 30) % 12; };
|
|
178
|
+
var f = function (v) { return l - a * Math.max(-1, Math.min(k(v) - 3, Math.min(9 - k(v), 1))); };
|
|
179
|
+
return [f(0), f(8), f(4)];
|
|
180
|
+
}
|
|
181
|
+
// ***************************************************
|
|
182
|
+
// RGB & Hue-Saturation-Brightness (HSB) color spaces
|
|
183
|
+
// ***************************************************
|
|
184
|
+
/**
|
|
185
|
+
* Convert RGB to HSB
|
|
186
|
+
* Notes:
|
|
187
|
+
* - rgb values are contained in the interval [0, 1]
|
|
188
|
+
* - hsb values are contained in the intervals H: [0, 360], S: [0, 1], B: [0, 1]
|
|
189
|
+
*
|
|
190
|
+
* @param {[number, number, number]} rgb RGB color
|
|
191
|
+
* @returns {[number, number, number]} HSB color
|
|
192
|
+
*/
|
|
193
|
+
export function rgbToHsb(_a) {
|
|
194
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
195
|
+
var max = Math.max(r, g, b);
|
|
196
|
+
var min = Math.min(r, g, b);
|
|
197
|
+
var delta = max - min;
|
|
198
|
+
var h = delta === 0 ? 0 : delta && max === r ? (g - b) / delta : max === g ? 2 + (b - r) / delta : 4 + (r - g) / delta;
|
|
199
|
+
return [60 * (h < 0 ? h + 6 : h), max && delta / max, max];
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Convert HSB to RGB
|
|
203
|
+
* Notes:
|
|
204
|
+
* - rgb values are contained in the interval [0, 1]
|
|
205
|
+
* - hsb values are contained in the intervals H: [0, 360], S: [0, 1], B: [0, 1]
|
|
206
|
+
*
|
|
207
|
+
* @param {[number, number, number]} hsb HSB color
|
|
208
|
+
* @returns {[number, number, number]} RGB color
|
|
209
|
+
*/
|
|
210
|
+
export function hsbToRgb(_a) {
|
|
211
|
+
var h = _a[0], s = _a[1], b = _a[2];
|
|
212
|
+
var k = function (v) { return (v + h / 60) % 6; };
|
|
213
|
+
var f = function (v) { return b * (1 - s * Math.max(0, Math.min(k(v), 4 - k(v), 1))); };
|
|
214
|
+
return [f(5), f(3), f(1)];
|
|
215
|
+
}
|
|
216
|
+
// *********************************************
|
|
217
|
+
// LAB & Hue-Chroma-Luminance (HCL) color spaces
|
|
218
|
+
// *********************************************
|
|
219
|
+
/**
|
|
220
|
+
* Convert LAB to HCL
|
|
221
|
+
* -> http://www.brucelindbloom.com/index.html?Eqn_Lab_to_LCH.html
|
|
222
|
+
*
|
|
223
|
+
* @param {[number, number, number]} lab LAB color
|
|
224
|
+
* @returns {[number, number, number]} HCL color
|
|
225
|
+
*/
|
|
226
|
+
export function labToHcl(_a) {
|
|
227
|
+
var l = _a[0], a = _a[1], b = _a[2];
|
|
228
|
+
var c = Math.sqrt(a * a + b * b);
|
|
229
|
+
var h = abToHue(a, b);
|
|
230
|
+
return [h, c, l];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Convert HCL to LAB
|
|
234
|
+
* -> http://www.brucelindbloom.com/index.html?Eqn_LCH_to_Lab.html
|
|
235
|
+
*
|
|
236
|
+
* @param {[number, number, number]} hcl HCL color
|
|
237
|
+
* @returns {[number, number, number]} LAB color space
|
|
238
|
+
*/
|
|
239
|
+
export function hclToLab(_a) {
|
|
240
|
+
var h = _a[0], c = _a[1], l = _a[2];
|
|
241
|
+
var a = c * Math.cos(toRadians(h));
|
|
242
|
+
var b = c * Math.sin(toRadians(h));
|
|
243
|
+
return [l, a, b];
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Convert A and B of LAB to Hue of LCH
|
|
247
|
+
* -> https://stackoverflow.com/questions/53733379/conversion-of-cielab-to-cielchab-not-yielding-correct-result
|
|
248
|
+
*
|
|
249
|
+
* @param {number} a A value of LAB color
|
|
250
|
+
* @param {number} b B value of LAB color
|
|
251
|
+
* @returns {number} Hue value
|
|
252
|
+
*/
|
|
253
|
+
function abToHue(a, b) {
|
|
254
|
+
if (a >= 0 && b === 0) {
|
|
255
|
+
return 0;
|
|
256
|
+
}
|
|
257
|
+
if (a < 0 && b === 0) {
|
|
258
|
+
return 180;
|
|
259
|
+
}
|
|
260
|
+
if (a === 0 && b > 0) {
|
|
261
|
+
return 90;
|
|
262
|
+
}
|
|
263
|
+
if (a === 0 && b < 0) {
|
|
264
|
+
return 270;
|
|
265
|
+
}
|
|
266
|
+
var xBias = 0;
|
|
267
|
+
if (a > 0 && b > 0) {
|
|
268
|
+
xBias = 0;
|
|
269
|
+
}
|
|
270
|
+
else if (a < 0) {
|
|
271
|
+
xBias = 180;
|
|
272
|
+
}
|
|
273
|
+
else if (a > 0 && b < 0) {
|
|
274
|
+
xBias = 360;
|
|
275
|
+
}
|
|
276
|
+
return toDegrees(Math.atan(b / a)) + xBias;
|
|
277
|
+
}
|
|
278
|
+
// ******************************************
|
|
279
|
+
// LAB & RGB color spaces
|
|
280
|
+
// ******************************************
|
|
281
|
+
var f1 = function (v) { return (v * v * v > 0.008856 ? v * v * v : (v - 16 / 116) / 7.787); };
|
|
282
|
+
var f2 = function (v) { return (v > 0.0031308 ? 1.055 * Math.pow(v, 1 / 2.4) - 0.055 : 12.92 * v); };
|
|
283
|
+
var f3 = function (v) { return (v > 0.04045 ? Math.pow((v + 0.055) / 1.055, 2.4) : v / 12.92); };
|
|
284
|
+
var f4 = function (v) { return (v > 0.008856 ? Math.pow(v, 1 / 3) : 7.787 * v + 16 / 116); };
|
|
285
|
+
/**
|
|
286
|
+
* Converts LAB to RGB
|
|
287
|
+
*
|
|
288
|
+
* @param {[number, number, number]} lab LAB color
|
|
289
|
+
* @returns {[number, number, number]} RGB color
|
|
290
|
+
*/
|
|
291
|
+
export function labToRgb(_a) {
|
|
292
|
+
var l = _a[0], a = _a[1], b = _a[2];
|
|
293
|
+
var y = (l + 16) / 116;
|
|
294
|
+
var x = a / 500 + y;
|
|
295
|
+
var z = y - b / 200;
|
|
296
|
+
x = 0.95047 * f1(x);
|
|
297
|
+
y = 1.0 * f1(y);
|
|
298
|
+
z = 1.08883 * f1(z);
|
|
299
|
+
return [
|
|
300
|
+
clamp(f2(x * 3.2406 + y * -1.5372 + z * -0.4986)),
|
|
301
|
+
clamp(f2(x * -0.9689 + y * 1.8758 + z * 0.0415)),
|
|
302
|
+
clamp(f2(x * 0.0557 + y * -0.204 + z * 1.057))
|
|
303
|
+
];
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Converts RGB to LAB
|
|
307
|
+
*
|
|
308
|
+
* @param {[number, number, number]} rgb RGB color
|
|
309
|
+
* @returns {[number, number, number]} LAB color
|
|
310
|
+
*/
|
|
311
|
+
export function rgbToLab(_a) {
|
|
312
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
313
|
+
r = f3(r);
|
|
314
|
+
g = f3(g);
|
|
315
|
+
b = f3(b);
|
|
316
|
+
var x = f4((r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047);
|
|
317
|
+
var y = f4((r * 0.2126 + g * 0.7152 + b * 0.0722) / 1);
|
|
318
|
+
var z = f4((r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883);
|
|
319
|
+
return [116 * y - 16, 500 * (x - y), 200 * (y - z)];
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Get the delta from two LAB colors
|
|
323
|
+
*
|
|
324
|
+
* @param {[number, number, number]} labA First LAB color
|
|
325
|
+
* @param {[number, number, number]} labB Second LAB color
|
|
326
|
+
* @returns {number} Delta
|
|
327
|
+
*/
|
|
328
|
+
export function deltaE(labA, labB) {
|
|
329
|
+
var deltaL = labA[0] - labB[0];
|
|
330
|
+
var deltaA = labA[1] - labB[1];
|
|
331
|
+
var deltaB = labA[2] - labB[2];
|
|
332
|
+
var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]);
|
|
333
|
+
var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]);
|
|
334
|
+
var deltaC = c1 - c2;
|
|
335
|
+
var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;
|
|
336
|
+
deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH);
|
|
337
|
+
var sc = 1.0 + 0.045 * c1;
|
|
338
|
+
var sh = 1.0 + 0.015 * c1;
|
|
339
|
+
var deltaLKlsl = deltaL / 1;
|
|
340
|
+
var deltaCkcsc = deltaC / sc;
|
|
341
|
+
var deltaHkhsh = deltaH / sh;
|
|
342
|
+
var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;
|
|
343
|
+
return i < 0 ? 0 : Math.sqrt(i);
|
|
344
|
+
}
|
|
345
|
+
// *********************************************
|
|
346
|
+
// RGB & Hue-Chroma-Luminance (HCL) color spaces
|
|
347
|
+
// *********************************************
|
|
348
|
+
/**
|
|
349
|
+
* Convert RGB to HCL
|
|
350
|
+
*
|
|
351
|
+
* @param {[number, number, number]} rgb RGB color
|
|
352
|
+
* @returns {[number, number, number]} HCL color
|
|
353
|
+
*/
|
|
354
|
+
export function rgbToHcl(_a) {
|
|
355
|
+
var r = _a[0], g = _a[1], b = _a[2];
|
|
356
|
+
return labToHcl(rgbToLab([r, g, b]));
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Converts HCL to RGB
|
|
360
|
+
*
|
|
361
|
+
* @param {[number, number, number]} hcl RGB color
|
|
362
|
+
* @returns {[number, number, number]} RGB color
|
|
363
|
+
*/
|
|
364
|
+
export function hclToRgb(_a) {
|
|
365
|
+
var h = _a[0], c = _a[1], l = _a[2];
|
|
366
|
+
return labToRgb(hclToLab([h, c, l]));
|
|
367
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
export declare const EPSILON = 1e-10;
|
|
2
|
+
export declare const PI: number;
|
|
3
|
+
export declare const TWO_PI: number;
|
|
4
|
+
export declare const HALF_PI: number;
|
|
5
|
+
export declare const QUARTER_PI: number;
|
|
6
|
+
export declare const W3CX11: {
|
|
7
|
+
aliceblue: number;
|
|
8
|
+
antiquewhite: number;
|
|
9
|
+
aqua: number;
|
|
10
|
+
aquamarine: number;
|
|
11
|
+
azure: number;
|
|
12
|
+
beige: number;
|
|
13
|
+
bisque: number;
|
|
14
|
+
black: number;
|
|
15
|
+
blanchedalmond: number;
|
|
16
|
+
blue: number;
|
|
17
|
+
blueviolet: number;
|
|
18
|
+
brown: number;
|
|
19
|
+
burlywood: number;
|
|
20
|
+
cadetblue: number;
|
|
21
|
+
chartreuse: number;
|
|
22
|
+
chocolate: number;
|
|
23
|
+
coral: number;
|
|
24
|
+
cornflower: number;
|
|
25
|
+
cornflowerblue: number;
|
|
26
|
+
cornsilk: number;
|
|
27
|
+
crimson: number;
|
|
28
|
+
cyan: number;
|
|
29
|
+
darkblue: number;
|
|
30
|
+
darkcyan: number;
|
|
31
|
+
darkgoldenrod: number;
|
|
32
|
+
darkgray: number;
|
|
33
|
+
darkgreen: number;
|
|
34
|
+
darkgrey: number;
|
|
35
|
+
darkkhaki: number;
|
|
36
|
+
darkmagenta: number;
|
|
37
|
+
darkolivegreen: number;
|
|
38
|
+
darkorange: number;
|
|
39
|
+
darkorchid: number;
|
|
40
|
+
darkred: number;
|
|
41
|
+
darksalmon: number;
|
|
42
|
+
darkseagreen: number;
|
|
43
|
+
darkslateblue: number;
|
|
44
|
+
darkslategray: number;
|
|
45
|
+
darkslategrey: number;
|
|
46
|
+
darkturquoise: number;
|
|
47
|
+
darkviolet: number;
|
|
48
|
+
deeppink: number;
|
|
49
|
+
deepskyblue: number;
|
|
50
|
+
dimgray: number;
|
|
51
|
+
dimgrey: number;
|
|
52
|
+
dodgerblue: number;
|
|
53
|
+
firebrick: number;
|
|
54
|
+
floralwhite: number;
|
|
55
|
+
forestgreen: number;
|
|
56
|
+
fuchsia: number;
|
|
57
|
+
gainsboro: number;
|
|
58
|
+
ghostwhite: number;
|
|
59
|
+
gold: number;
|
|
60
|
+
goldenrod: number;
|
|
61
|
+
gray: number;
|
|
62
|
+
green: number;
|
|
63
|
+
greenyellow: number;
|
|
64
|
+
grey: number;
|
|
65
|
+
honeydew: number;
|
|
66
|
+
hotpink: number;
|
|
67
|
+
indianred: number;
|
|
68
|
+
indigo: number;
|
|
69
|
+
ivory: number;
|
|
70
|
+
khaki: number;
|
|
71
|
+
laserlemon: number;
|
|
72
|
+
lavender: number;
|
|
73
|
+
lavenderblush: number;
|
|
74
|
+
lawngreen: number;
|
|
75
|
+
lemonchiffon: number;
|
|
76
|
+
lightblue: number;
|
|
77
|
+
lightcoral: number;
|
|
78
|
+
lightcyan: number;
|
|
79
|
+
lightgoldenrod: number;
|
|
80
|
+
lightgoldenrodyellow: number;
|
|
81
|
+
lightgray: number;
|
|
82
|
+
lightgreen: number;
|
|
83
|
+
lightgrey: number;
|
|
84
|
+
lightpink: number;
|
|
85
|
+
lightsalmon: number;
|
|
86
|
+
lightseagreen: number;
|
|
87
|
+
lightskyblue: number;
|
|
88
|
+
lightslategray: number;
|
|
89
|
+
lightslategrey: number;
|
|
90
|
+
lightsteelblue: number;
|
|
91
|
+
lightyellow: number;
|
|
92
|
+
lime: number;
|
|
93
|
+
limegreen: number;
|
|
94
|
+
linen: number;
|
|
95
|
+
magenta: number;
|
|
96
|
+
maroon: number;
|
|
97
|
+
maroon2: number;
|
|
98
|
+
maroon3: number;
|
|
99
|
+
mediumaquamarine: number;
|
|
100
|
+
mediumblue: number;
|
|
101
|
+
mediumorchid: number;
|
|
102
|
+
mediumpurple: number;
|
|
103
|
+
mediumseagreen: number;
|
|
104
|
+
mediumslateblue: number;
|
|
105
|
+
mediumspringgreen: number;
|
|
106
|
+
mediumturquoise: number;
|
|
107
|
+
mediumvioletred: number;
|
|
108
|
+
midnightblue: number;
|
|
109
|
+
mintcream: number;
|
|
110
|
+
mistyrose: number;
|
|
111
|
+
moccasin: number;
|
|
112
|
+
navajowhite: number;
|
|
113
|
+
navy: number;
|
|
114
|
+
oldlace: number;
|
|
115
|
+
olive: number;
|
|
116
|
+
olivedrab: number;
|
|
117
|
+
orange: number;
|
|
118
|
+
orangered: number;
|
|
119
|
+
orchid: number;
|
|
120
|
+
palegoldenrod: number;
|
|
121
|
+
palegreen: number;
|
|
122
|
+
paleturquoise: number;
|
|
123
|
+
palevioletred: number;
|
|
124
|
+
papayawhip: number;
|
|
125
|
+
peachpuff: number;
|
|
126
|
+
peru: number;
|
|
127
|
+
pink: number;
|
|
128
|
+
plum: number;
|
|
129
|
+
powderblue: number;
|
|
130
|
+
purple: number;
|
|
131
|
+
purple2: number;
|
|
132
|
+
purple3: number;
|
|
133
|
+
rebeccapurple: number;
|
|
134
|
+
red: number;
|
|
135
|
+
rosybrown: number;
|
|
136
|
+
royalblue: number;
|
|
137
|
+
saddlebrown: number;
|
|
138
|
+
salmon: number;
|
|
139
|
+
sandybrown: number;
|
|
140
|
+
seagreen: number;
|
|
141
|
+
seashell: number;
|
|
142
|
+
sienna: number;
|
|
143
|
+
silver: number;
|
|
144
|
+
skyblue: number;
|
|
145
|
+
slateblue: number;
|
|
146
|
+
slategray: number;
|
|
147
|
+
slategrey: number;
|
|
148
|
+
snow: number;
|
|
149
|
+
springgreen: number;
|
|
150
|
+
steelblue: number;
|
|
151
|
+
tan: number;
|
|
152
|
+
teal: number;
|
|
153
|
+
thistle: number;
|
|
154
|
+
tomato: number;
|
|
155
|
+
turquoise: number;
|
|
156
|
+
violet: number;
|
|
157
|
+
wheat: number;
|
|
158
|
+
white: number;
|
|
159
|
+
whitesmoke: number;
|
|
160
|
+
yellow: number;
|
|
161
|
+
yellowgreen: number;
|
|
162
|
+
};
|
package/lib/constants.js
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
// *********************
|
|
2
|
+
// Maths
|
|
3
|
+
// *********************
|
|
4
|
+
export var EPSILON = 1e-10;
|
|
5
|
+
export var PI = Math.PI;
|
|
6
|
+
export var TWO_PI = Math.PI * 2;
|
|
7
|
+
export var HALF_PI = Math.PI / 2;
|
|
8
|
+
export var QUARTER_PI = Math.PI / 4;
|
|
9
|
+
// *********************
|
|
10
|
+
// Colors
|
|
11
|
+
// *********************
|
|
12
|
+
// X11 colors
|
|
13
|
+
// -> https://www.w3.org/TR/css-color-3/#svg-color
|
|
14
|
+
export var W3CX11 = {
|
|
15
|
+
aliceblue: 0xf0f8ff,
|
|
16
|
+
antiquewhite: 0xfaebd7,
|
|
17
|
+
aqua: 0x00ffff,
|
|
18
|
+
aquamarine: 0x7fffd4,
|
|
19
|
+
azure: 0xf0ffff,
|
|
20
|
+
beige: 0xf5f5dc,
|
|
21
|
+
bisque: 0xffe4c4,
|
|
22
|
+
black: 0x000000,
|
|
23
|
+
blanchedalmond: 0xffebcd,
|
|
24
|
+
blue: 0x0000ff,
|
|
25
|
+
blueviolet: 0x8a2be2,
|
|
26
|
+
brown: 0xa52a2a,
|
|
27
|
+
burlywood: 0xdeb887,
|
|
28
|
+
cadetblue: 0x5f9ea0,
|
|
29
|
+
chartreuse: 0x7fff00,
|
|
30
|
+
chocolate: 0xd2691e,
|
|
31
|
+
coral: 0xff7f50,
|
|
32
|
+
cornflower: 0x6495ed,
|
|
33
|
+
cornflowerblue: 0x6495ed,
|
|
34
|
+
cornsilk: 0xfff8dc,
|
|
35
|
+
crimson: 0xdc143c,
|
|
36
|
+
cyan: 0x00ffff,
|
|
37
|
+
darkblue: 0x00008b,
|
|
38
|
+
darkcyan: 0x008b8b,
|
|
39
|
+
darkgoldenrod: 0xb8860b,
|
|
40
|
+
darkgray: 0xa9a9a9,
|
|
41
|
+
darkgreen: 0x006400,
|
|
42
|
+
darkgrey: 0xa9a9a9,
|
|
43
|
+
darkkhaki: 0xbdb76b,
|
|
44
|
+
darkmagenta: 0x8b008b,
|
|
45
|
+
darkolivegreen: 0x556b2f,
|
|
46
|
+
darkorange: 0xff8c00,
|
|
47
|
+
darkorchid: 0x9932cc,
|
|
48
|
+
darkred: 0x8b0000,
|
|
49
|
+
darksalmon: 0xe9967a,
|
|
50
|
+
darkseagreen: 0x8fbc8f,
|
|
51
|
+
darkslateblue: 0x483d8b,
|
|
52
|
+
darkslategray: 0x2f4f4f,
|
|
53
|
+
darkslategrey: 0x2f4f4f,
|
|
54
|
+
darkturquoise: 0x00ced1,
|
|
55
|
+
darkviolet: 0x9400d3,
|
|
56
|
+
deeppink: 0xff1493,
|
|
57
|
+
deepskyblue: 0x00bfff,
|
|
58
|
+
dimgray: 0x696969,
|
|
59
|
+
dimgrey: 0x696969,
|
|
60
|
+
dodgerblue: 0x1e90ff,
|
|
61
|
+
firebrick: 0xb22222,
|
|
62
|
+
floralwhite: 0xfffaf0,
|
|
63
|
+
forestgreen: 0x228b22,
|
|
64
|
+
fuchsia: 0xff00ff,
|
|
65
|
+
gainsboro: 0xdcdcdc,
|
|
66
|
+
ghostwhite: 0xf8f8ff,
|
|
67
|
+
gold: 0xffd700,
|
|
68
|
+
goldenrod: 0xdaa520,
|
|
69
|
+
gray: 0x808080,
|
|
70
|
+
green: 0x008000,
|
|
71
|
+
greenyellow: 0xadff2f,
|
|
72
|
+
grey: 0x808080,
|
|
73
|
+
honeydew: 0xf0fff0,
|
|
74
|
+
hotpink: 0xff69b4,
|
|
75
|
+
indianred: 0xcd5c5c,
|
|
76
|
+
indigo: 0x4b0082,
|
|
77
|
+
ivory: 0xfffff0,
|
|
78
|
+
khaki: 0xf0e68c,
|
|
79
|
+
laserlemon: 0xffff54,
|
|
80
|
+
lavender: 0xe6e6fa,
|
|
81
|
+
lavenderblush: 0xfff0f5,
|
|
82
|
+
lawngreen: 0x7cfc00,
|
|
83
|
+
lemonchiffon: 0xfffacd,
|
|
84
|
+
lightblue: 0xadd8e6,
|
|
85
|
+
lightcoral: 0xf08080,
|
|
86
|
+
lightcyan: 0xe0ffff,
|
|
87
|
+
lightgoldenrod: 0xfafad2,
|
|
88
|
+
lightgoldenrodyellow: 0xfafad2,
|
|
89
|
+
lightgray: 0xd3d3d3,
|
|
90
|
+
lightgreen: 0x90ee90,
|
|
91
|
+
lightgrey: 0xd3d3d3,
|
|
92
|
+
lightpink: 0xffb6c1,
|
|
93
|
+
lightsalmon: 0xffa07a,
|
|
94
|
+
lightseagreen: 0x20b2aa,
|
|
95
|
+
lightskyblue: 0x87cefa,
|
|
96
|
+
lightslategray: 0x778899,
|
|
97
|
+
lightslategrey: 0x778899,
|
|
98
|
+
lightsteelblue: 0xb0c4de,
|
|
99
|
+
lightyellow: 0xffffe0,
|
|
100
|
+
lime: 0x00ff00,
|
|
101
|
+
limegreen: 0x32cd32,
|
|
102
|
+
linen: 0xfaf0e6,
|
|
103
|
+
magenta: 0xff00ff,
|
|
104
|
+
maroon: 0x800000,
|
|
105
|
+
maroon2: 0x7f0000,
|
|
106
|
+
maroon3: 0xb03060,
|
|
107
|
+
mediumaquamarine: 0x66cdaa,
|
|
108
|
+
mediumblue: 0x0000cd,
|
|
109
|
+
mediumorchid: 0xba55d3,
|
|
110
|
+
mediumpurple: 0x9370db,
|
|
111
|
+
mediumseagreen: 0x3cb371,
|
|
112
|
+
mediumslateblue: 0x7b68ee,
|
|
113
|
+
mediumspringgreen: 0x00fa9a,
|
|
114
|
+
mediumturquoise: 0x48d1cc,
|
|
115
|
+
mediumvioletred: 0xc71585,
|
|
116
|
+
midnightblue: 0x191970,
|
|
117
|
+
mintcream: 0xf5fffa,
|
|
118
|
+
mistyrose: 0xffe4e1,
|
|
119
|
+
moccasin: 0xffe4b5,
|
|
120
|
+
navajowhite: 0xffdead,
|
|
121
|
+
navy: 0x000080,
|
|
122
|
+
oldlace: 0xfdf5e6,
|
|
123
|
+
olive: 0x808000,
|
|
124
|
+
olivedrab: 0x6b8e23,
|
|
125
|
+
orange: 0xffa500,
|
|
126
|
+
orangered: 0xff4500,
|
|
127
|
+
orchid: 0xda70d6,
|
|
128
|
+
palegoldenrod: 0xeee8aa,
|
|
129
|
+
palegreen: 0x98fb98,
|
|
130
|
+
paleturquoise: 0xafeeee,
|
|
131
|
+
palevioletred: 0xdb7093,
|
|
132
|
+
papayawhip: 0xffefd5,
|
|
133
|
+
peachpuff: 0xffdab9,
|
|
134
|
+
peru: 0xcd853f,
|
|
135
|
+
pink: 0xffc0cb,
|
|
136
|
+
plum: 0xdda0dd,
|
|
137
|
+
powderblue: 0xb0e0e6,
|
|
138
|
+
purple: 0x800080,
|
|
139
|
+
purple2: 0x7f007f,
|
|
140
|
+
purple3: 0xa020f0,
|
|
141
|
+
rebeccapurple: 0x663399,
|
|
142
|
+
red: 0xff0000,
|
|
143
|
+
rosybrown: 0xbc8f8f,
|
|
144
|
+
royalblue: 0x4169e1,
|
|
145
|
+
saddlebrown: 0x8b4513,
|
|
146
|
+
salmon: 0xfa8072,
|
|
147
|
+
sandybrown: 0xf4a460,
|
|
148
|
+
seagreen: 0x2e8b57,
|
|
149
|
+
seashell: 0xfff5ee,
|
|
150
|
+
sienna: 0xa0522d,
|
|
151
|
+
silver: 0xc0c0c0,
|
|
152
|
+
skyblue: 0x87ceeb,
|
|
153
|
+
slateblue: 0x6a5acd,
|
|
154
|
+
slategray: 0x708090,
|
|
155
|
+
slategrey: 0x708090,
|
|
156
|
+
snow: 0xfffafa,
|
|
157
|
+
springgreen: 0x00ff7f,
|
|
158
|
+
steelblue: 0x4682b4,
|
|
159
|
+
tan: 0xd2b48c,
|
|
160
|
+
teal: 0x008080,
|
|
161
|
+
thistle: 0xd8bfd8,
|
|
162
|
+
tomato: 0xff6347,
|
|
163
|
+
turquoise: 0x40e0d0,
|
|
164
|
+
violet: 0xee82ee,
|
|
165
|
+
wheat: 0xf5deb3,
|
|
166
|
+
white: 0xffffff,
|
|
167
|
+
whitesmoke: 0xf5f5f5,
|
|
168
|
+
yellow: 0xffff00,
|
|
169
|
+
yellowgreen: 0x9acd32
|
|
170
|
+
};
|