x4js 1.4.3 → 1.4.4

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.
Files changed (56) hide show
  1. package/lib/index.d.ts +55 -0
  2. package/lib/index.js +55 -56
  3. package/lib/router.d.ts +1 -8
  4. package/lib/router.js +1 -1
  5. package/package.json +2 -1
  6. package/src/index.ts +55 -0
  7. package/src/router.ts +1 -1
  8. package/tsconfig.json +2 -1
  9. package/lib/application.d.ts +0 -95
  10. package/lib/application.js +0 -137
  11. package/lib/base64.d.ts +0 -31
  12. package/lib/base64.js +0 -135
  13. package/lib/base_component.d.ts +0 -64
  14. package/lib/base_component.js +0 -77
  15. package/lib/button.d.ts +0 -145
  16. package/lib/button.js +0 -235
  17. package/lib/calendar.d.ts +0 -77
  18. package/lib/calendar.js +0 -236
  19. package/lib/canvas.d.ts +0 -88
  20. package/lib/canvas.js +0 -354
  21. package/lib/cardview.d.ts +0 -83
  22. package/lib/cardview.js +0 -152
  23. package/lib/checkbox.d.ts +0 -72
  24. package/lib/checkbox.js +0 -126
  25. package/lib/color.d.ts +0 -144
  26. package/lib/color.js +0 -584
  27. package/lib/component.d.ts +0 -572
  28. package/lib/component.js +0 -1712
  29. package/lib/dom_events.d.ts +0 -284
  30. package/lib/dom_events.js +0 -13
  31. package/lib/hosts/host.d.ts +0 -44
  32. package/lib/hosts/host.js +0 -69
  33. package/lib/i18n.d.ts +0 -67
  34. package/lib/i18n.js +0 -169
  35. package/lib/icon.d.ts +0 -56
  36. package/lib/icon.js +0 -173
  37. package/lib/input.d.ts +0 -86
  38. package/lib/input.js +0 -172
  39. package/lib/label.d.ts +0 -54
  40. package/lib/label.js +0 -86
  41. package/lib/layout.d.ts +0 -77
  42. package/lib/layout.js +0 -261
  43. package/lib/list.txt +0 -56
  44. package/lib/menu.d.ts +0 -122
  45. package/lib/menu.js +0 -276
  46. package/lib/popup.d.ts +0 -71
  47. package/lib/popup.js +0 -373
  48. package/lib/settings.d.ts +0 -33
  49. package/lib/settings.js +0 -63
  50. package/lib/styles.d.ts +0 -81
  51. package/lib/styles.js +0 -262
  52. package/lib/tools.d.ts +0 -382
  53. package/lib/tools.js +0 -1096
  54. package/lib/x4_events.d.ts +0 -253
  55. package/lib/x4_events.js +0 -363
  56. package/list.txt +0 -0
package/lib/color.js DELETED
@@ -1,584 +0,0 @@
1
- /**
2
- * ___ ___ __
3
- * \ \/ / / _
4
- * \ / /_| |_
5
- * / \____ _|
6
- * /__/\__\ |_|
7
- *
8
- * @file color.ts
9
- * @author Etienne Cochard
10
- * @license
11
- * Copyright (c) 2019-2021 R-libre ingenierie
12
- *
13
- * This program is free software; you can redistribute it and/or modify
14
- * it under the terms of the GNU General Public License as published by
15
- * the Free Software Foundation; either version 3 of the License, or
16
- * (at your option) any later version.
17
- *
18
- * This program is distributed in the hope that it will be useful,
19
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
- * GNU General Public License for more details.
22
- *
23
- * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
24
- **/
25
- import { Stylesheet } from './styles';
26
- const colorValues = {
27
- 'lightsalmon': 0xFFFFA07A,
28
- 'lightseagreen': 0xFF20B2AA,
29
- 'lightskyblue': 0xFF87CEFA,
30
- 'lightslategray': 0xFF778899,
31
- 'lightsteelblue': 0xFFB0C4DE,
32
- 'lightyellow': 0xFFFFFFE0,
33
- 'lime': 0xFF00FF00,
34
- 'limegreen': 0xFF32CD32,
35
- 'linen': 0xFFFAF0E6,
36
- 'magenta': 0xFFFF00FF,
37
- 'maroon': 0xFF800000,
38
- 'mediumaquamarine': 0xFF66CDAA,
39
- 'mediumblue': 0xFF0000CD,
40
- 'mediumorchid': 0xFFBA55D3,
41
- 'mediumpurple': 0xFF9370DB,
42
- 'mediumseagreen': 0xFF3CB371,
43
- 'mediumslateblue': 0xFF7B68EE,
44
- 'mediumspringgreen': 0xFF00FA9A,
45
- 'mediumturquoise': 0xFF48D1CC,
46
- 'mediumvioletred': 0xFFC71585,
47
- 'midnightblue': 0xFF191970,
48
- 'mintcream': 0xFFF5FFFA,
49
- 'mistyrose': 0xFFFFE4E1,
50
- 'moccasin': 0xFFFFE4B5,
51
- 'navajowhite': 0xFFFFDEAD,
52
- 'navy': 0xFF000080,
53
- 'oldlace': 0xFFFDF5E6,
54
- 'olive': 0xFF808000,
55
- 'olivedrab': 0xFF6B8E23,
56
- 'orange': 0xFFFFA500,
57
- 'orangered': 0xFFFF4500,
58
- 'orchid': 0xFFDA70D6,
59
- 'palegoldenrod': 0xFFEEE8AA,
60
- 'palegreen': 0xFF98FB98,
61
- 'paleturquoise': 0xFFAFEEEE,
62
- 'palevioletred': 0xFFDB7093,
63
- 'papayawhip': 0xFFFFEFD5,
64
- 'peachpuff': 0xFFFFDAB9,
65
- 'peru': 0xFFCD853F,
66
- 'pink': 0xFFFFC0CB,
67
- 'plum': 0xFFDDA0DD,
68
- 'powderblue': 0xFFB0E0E6,
69
- 'purple': 0xFF800080,
70
- 'red': 0xFFFF0000,
71
- 'rosybrown': 0xFFBC8F8F,
72
- 'royalblue': 0xFF4169E1,
73
- 'saddlebrown': 0xFF8B4513,
74
- 'salmon': 0xFFFA8072,
75
- 'sandybrown': 0xFFFAA460,
76
- 'seagreen': 0xFF2E8B57,
77
- 'seashell': 0xFFFFF5EE,
78
- 'sienna': 0xFFA0522D,
79
- 'silver': 0xFFC0C0C0,
80
- 'skyblue': 0xFF87CEEB,
81
- 'slateblue': 0xFF6A5ACD,
82
- 'slategray': 0xFF708090,
83
- 'snow': 0xFFFFFAFA,
84
- 'springgreen': 0xFF00FF7F,
85
- 'steelblue': 0xFF4682B4,
86
- 'tan': 0xFFD2B48C,
87
- 'teal': 0xFF008080,
88
- 'thistle': 0xFFD8BFD8,
89
- 'tomato': 0xFFFF6347,
90
- 'turquoise': 0xFF40E0D0,
91
- 'violet': 0xFFEE82EE,
92
- 'wheat': 0xFFF5DEB3,
93
- 'white': 0xFFFFFFFF,
94
- 'whitesmoke': 0xFFF5F5F5,
95
- 'yellow': 0xFFFFFF00,
96
- 'yellowgreen': 0xFF9ACD32,
97
- 'aliceblue': 0xFFF0F8FF,
98
- 'antiquewhite': 0xFFFAEBD7,
99
- 'aqua': 0xFF00FFFF,
100
- 'aquamarine': 0xFF7FFFD4,
101
- 'azure': 0xFFF0FFFF,
102
- 'beige': 0xFFF5F5DC,
103
- 'bisque': 0xFFFFE4C4,
104
- 'black': 0xFF000000,
105
- 'blanchedalmond': 0xFFFFEBCD,
106
- 'blue': 0xFF0000FF,
107
- 'blueviolet': 0xFF8A2BE2,
108
- 'brown': 0xFFA52A2A,
109
- 'burlywood': 0xFFDEB887,
110
- 'cadetblue': 0xFF5F9EA0,
111
- 'chartreuse': 0xFF7FFF00,
112
- 'chocolate': 0xFFD2691E,
113
- 'coral': 0xFFFF7F50,
114
- 'cornflowerblue': 0xFF6495ED,
115
- 'cornsilk': 0xFFFFF8DC,
116
- 'crimson': 0xFFDC143C,
117
- 'cyan': 0xFF00FFFF,
118
- 'darkblue': 0xFF00008B,
119
- 'darkcyan': 0xFF008B8B,
120
- 'darkgoldenrod': 0xFFB8860B,
121
- 'darkgray': 0xFFA9A9A9,
122
- 'darkgreen': 0xFF006400,
123
- 'darkkhaki': 0xFFBDB76B,
124
- 'darkmagenta': 0xFF8B008B,
125
- 'darkolivegreen': 0xFF556B2F,
126
- 'darkorange': 0xFFFF8C00,
127
- 'darkorchid': 0xFF9932CC,
128
- 'darkred': 0xFF8B0000,
129
- 'darksalmon': 0xFFE9967A,
130
- 'darkseagreen': 0xFF8FBC8F,
131
- 'darkslateblue': 0xFF483D8B,
132
- 'darkslategray': 0xFF2F4F4F,
133
- 'darkturquoise': 0xFF00CED1,
134
- 'darkviolet': 0xFF9400D3,
135
- 'deeppink': 0xFFFF1493,
136
- 'deepskyblue': 0xFF00BFFF,
137
- 'dimgray': 0xFF696969,
138
- 'dodgerblue': 0xFF1E90FF,
139
- 'firebrick': 0xFFB22222,
140
- 'floralwhite': 0xFFFFFAF0,
141
- 'forestgreen': 0xFF228B22,
142
- 'fuchsia': 0xFFFF00FF,
143
- 'gainsboro': 0xFFDCDCDC,
144
- 'ghostwhite': 0xFFF8F8FF,
145
- 'gold': 0xFFFFD700,
146
- 'goldenrod': 0xFFDAA520,
147
- 'gray': 0xFF808080,
148
- 'green': 0xFF008000,
149
- 'greenyellow': 0xFFADFF2F,
150
- 'honeydew': 0xFFF0FFF0,
151
- 'hotpink': 0xFFFF69B4,
152
- 'indianred': 0xFFCD5C5C,
153
- 'indigo': 0xFF4B0082,
154
- 'ivory': 0xFFFFFFF0,
155
- 'khaki': 0xFFF0E68C,
156
- 'lavender': 0xFFE6E6FA,
157
- 'lavenderblush': 0xFFFFF0F5,
158
- 'lawngreen': 0xFF7CFC00,
159
- 'lemonchiffon': 0xFFFFFACD,
160
- 'lightblue': 0xFFADD8E6,
161
- 'lightcoral': 0xFFF08080,
162
- 'lightcyan': 0xFFE0FFFF,
163
- 'lightgoldenrodyellow': 0xFFFAFAD2,
164
- 'lightgreen': 0xFF90EE90,
165
- 'lightgrey': 0xFFD3D3D3,
166
- 'lightpink': 0xFFFFB6C1,
167
- 'none': 0,
168
- 'transparent': 0,
169
- };
170
- export class Color {
171
- m_value;
172
- static custom = [];
173
- constructor(r, g, b, a) {
174
- let argc = arguments.length;
175
- let self = this;
176
- function _init() {
177
- if (!argc) {
178
- return 0xff000000;
179
- }
180
- if (argc == 1) {
181
- if (Number.isSafeInteger(r)) {
182
- return 0xff000000 | (r & 0xffffff);
183
- }
184
- return self._getCustomColor(r);
185
- }
186
- else if (argc == 2) {
187
- let base, alpha = (((g * 255) | 0) & 0xff) << 24;
188
- if (Number.isSafeInteger(r)) {
189
- base = r;
190
- }
191
- else {
192
- base = self._getCustomColor(r);
193
- }
194
- return (base & 0xffffff) | alpha;
195
- }
196
- else if (argc == 4 && a !== undefined && a <= 1.0) {
197
- if (a <= 0) {
198
- return 0;
199
- }
200
- a = a * 255;
201
- a |= 0; // convert to int
202
- return ((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
203
- }
204
- return 0xff000000 | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff);
205
- }
206
- this.m_value = _init();
207
- }
208
- /**
209
- *
210
- */
211
- _shade(percent) {
212
- let t = percent < 0 ? 0 : 255, p = percent < 0 ? -percent : percent;
213
- let v = this._split();
214
- return new Color(Math.round((t - v.r) * p) + v.r, Math.round((t - v.g) * p) + v.g, Math.round((t - v.b) * p) + v.b, v.a / 255);
215
- }
216
- /**
217
- * return a color darken by percent
218
- * @param percent
219
- */
220
- darken(percent) {
221
- if (percent < 0)
222
- percent = 0;
223
- if (percent > 100)
224
- percent = 100;
225
- return this._shade(-percent / 100);
226
- }
227
- /**
228
- * return a color lighten by percent
229
- * @param percent
230
- */
231
- lighten(percent) {
232
- if (percent < 0)
233
- percent = 0;
234
- if (percent > 100)
235
- percent = 100;
236
- return this._shade(percent / 100);
237
- }
238
- /**
239
- * mix 2 colors
240
- * @param {rgb} c1 - color 1
241
- * @param {rgb} c2 - color 2
242
- * @param {float} percent - 0.0 to 1.0
243
- * @example
244
- * ```js
245
- * let clr = Color.mix( color1, color2, 0.5 );
246
- * ```
247
- */
248
- static mix(c1, c2, p) {
249
- let e1 = c1._split(), e2 = c2._split();
250
- let A = e1.a === e2.a ? e1.a : Math.round(e2.a * p + e1.a * (1 - p)), R = e1.r === e2.r ? e1.r : Math.round(e2.r * p + e1.r * (1 - p)), G = e1.g === e2.g ? e1.g : Math.round(e2.g * p + e1.g * (1 - p)), B = e1.b === e2.b ? e1.b : Math.round(e2.b * p + e1.b * (1 - p));
251
- return new Color(R, G, B, A / 255);
252
- }
253
- /**
254
- * split the color into it's base element r,g,b & a (!a 1-255)
255
- */
256
- _split() {
257
- let f = this.m_value;
258
- return {
259
- a: (f >> 24) & 0xff,
260
- r: (f >> 16) & 0xff,
261
- g: (f >> 8) & 0xff,
262
- b: (f & 0xff)
263
- };
264
- }
265
- /**
266
- * change the alpha value
267
- */
268
- fadeout(percent) {
269
- let el = this._split();
270
- el.a = el.a / 255;
271
- el.a = el.a - el.a * percent / 100.0;
272
- if (el.a > 1.0) {
273
- el.a = 1.0;
274
- }
275
- else if (el.a <= 0.0) {
276
- return Color.NONE;
277
- }
278
- return new Color(el.r, el.g, el.b, el.a);
279
- }
280
- /**
281
- *
282
- */
283
- static fromHSV(h, s, v, a = 1) {
284
- let i = Math.min(5, Math.floor(h * 6)), f = h * 6 - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s);
285
- let R, G, B;
286
- switch (i) {
287
- case 0:
288
- R = v;
289
- G = t;
290
- B = p;
291
- break;
292
- case 1:
293
- R = q;
294
- G = v;
295
- B = p;
296
- break;
297
- case 2:
298
- R = p;
299
- G = v;
300
- B = t;
301
- break;
302
- case 3:
303
- R = p;
304
- G = q;
305
- B = v;
306
- break;
307
- case 4:
308
- R = t;
309
- G = p;
310
- B = v;
311
- break;
312
- case 5:
313
- R = v;
314
- G = p;
315
- B = q;
316
- break;
317
- }
318
- return new Color(R * 255, G * 255, B * 255, a);
319
- }
320
- /**
321
- *
322
- */
323
- static toHSV(c) {
324
- let el = c._split();
325
- el.r /= 255.0;
326
- el.g /= 255.0;
327
- el.b /= 255.0;
328
- el.a /= 255.0;
329
- let max = Math.max(el.r, el.g, el.b), min = Math.min(el.r, el.g, el.b), delta = max - min, saturation = (max === 0) ? 0 : (delta / max), value = max;
330
- let hue;
331
- if (delta === 0) {
332
- hue = 0;
333
- }
334
- else {
335
- switch (max) {
336
- case el.r:
337
- hue = (el.g - el.b) / delta / 6 + (el.g < el.b ? 1 : 0);
338
- break;
339
- case el.g:
340
- hue = (el.b - el.r) / delta / 6 + 1 / 3;
341
- break;
342
- case el.b:
343
- hue = (el.r - el.g) / delta / 6 + 2 / 3;
344
- break;
345
- }
346
- }
347
- return { h: hue, s: saturation, v: value, a: el.a };
348
- }
349
- /**
350
- *
351
- */
352
- static fromHLS(h, l, s) {
353
- let r, g, b;
354
- if (s == 0) {
355
- r = g = b = l; // achromatic
356
- }
357
- else {
358
- function hue2rgb(p, q, t) {
359
- if (t < 0)
360
- t += 1.0;
361
- if (t > 1)
362
- t -= 1.0;
363
- if (t < 1 / 6)
364
- return p + (q - p) * 6 * t;
365
- if (t < 1 / 2)
366
- return q;
367
- if (t < 2 / 3)
368
- return p + (q - p) * (2 / 3 - t) * 6;
369
- return p;
370
- }
371
- let q = l < 0.5 ? l * (1 + s) : l + s - l * s;
372
- let p = 2 * l - q;
373
- r = hue2rgb(p, q, h + 1 / 3);
374
- g = hue2rgb(p, q, h);
375
- b = hue2rgb(p, q, h - 1 / 3);
376
- }
377
- r = ((r * 255) | 0) & 0xff;
378
- g = ((g * 255) | 0) & 0xff;
379
- b = ((b * 255) | 0) & 0xff;
380
- return new Color(r, g, b);
381
- }
382
- /**
383
- *
384
- */
385
- static toHLS(color) {
386
- let f = color.m_value, r = ((f >> 16) & 0xff) / 255, g = ((f >> 8) & 0xff) / 255, b = (f & 0xff) / 255;
387
- let minval = r, maxval = r;
388
- if (g < minval) {
389
- minval = g;
390
- }
391
- if (b < minval) {
392
- minval = b;
393
- }
394
- if (g > maxval) {
395
- maxval = g;
396
- }
397
- if (b > maxval) {
398
- maxval = b;
399
- }
400
- let rnorm = 0, gnorm = 0, bnorm = 0;
401
- let mdiff = maxval - minval;
402
- let msum = maxval + minval;
403
- let light = 0.5 * msum;
404
- let satur, hue;
405
- if (maxval != minval) {
406
- rnorm = (maxval - r) / mdiff;
407
- gnorm = (maxval - g) / mdiff;
408
- bnorm = (maxval - b) / mdiff;
409
- }
410
- else {
411
- return { h: 0, l: light, s: 0 };
412
- }
413
- if (light < 0.5) {
414
- satur = mdiff / msum;
415
- }
416
- else {
417
- satur = mdiff / (2.0 - msum);
418
- }
419
- if (r == maxval) {
420
- hue = 60.0 * (6.0 + bnorm - gnorm);
421
- }
422
- else if (g == maxval) {
423
- hue = 60.0 * (2.0 + rnorm - bnorm);
424
- }
425
- else {
426
- hue = 60.0 * (4.0 + gnorm - rnorm);
427
- }
428
- if (hue > 360) {
429
- hue = hue - 360;
430
- }
431
- return { h: hue / 360.0, l: light, s: satur };
432
- }
433
- /**
434
- * get the red value of the color
435
- */
436
- red() {
437
- return (this.m_value >> 16) & 0xff;
438
- }
439
- /**
440
- * get the green value of the color
441
- */
442
- green() {
443
- return (this.m_value >> 8) & 0xff;
444
- }
445
- /**
446
- * get the blue value of the color
447
- */
448
- blue() {
449
- return this.m_value & 0xff;
450
- }
451
- /**
452
- * get the alpha value of the color
453
- */
454
- alpha() {
455
- return ((this.m_value >> 24) & 0xff) / 255;
456
- }
457
- /**
458
- *
459
- */
460
- value() {
461
- return this.m_value;
462
- }
463
- /**
464
- * convert the color into string value
465
- */
466
- toString() {
467
- let color = this.m_value;
468
- if (color === 0) {
469
- return 'transparent';
470
- }
471
- let el = this._split();
472
- if (el.a === 0xff) {
473
- return `rgb(${el.r},${el.g},${el.b})`;
474
- }
475
- else {
476
- el.a /= 255;
477
- let alpha = el.a.toFixed(3);
478
- return `rgba(${el.r},${el.g},${el.b},${alpha})`;
479
- }
480
- }
481
- toHex(with_alpha = true) {
482
- let color = this.m_value;
483
- if (color === 0) {
484
- return 'transparent';
485
- }
486
- let el = this._split();
487
- if (el.a === 0xff || !with_alpha) {
488
- return `#${_hx(el.r)}${_hx(el.g)}${_hx(el.b)}`;
489
- }
490
- else {
491
- return `#${_hx(el.r)}${_hx(el.g)}${_hx(el.b)}${_hx(el.a)}`;
492
- }
493
- }
494
- static addCustomColor(name, value) {
495
- Color.custom[name] = value;
496
- }
497
- static addCssColor(name) {
498
- let c = Stylesheet.getVar(name);
499
- Color.custom['css:' + name] = Color.parse(c.trim());
500
- }
501
- static parse(str) {
502
- let m;
503
- if (str[0] == '#') {
504
- const re1 = /#(?<r>[a-fA-F0-9]{2})(?<g>[a-fA-F0-9]{2})(?<b>[a-fA-F0-9]{2})(?<a>[a-fA-F0-9]{2})?/;
505
- if ((m = re1.exec(str)) !== null) {
506
- let g = m.groups;
507
- return new Color(parseInt(g.r, 16), parseInt(g.g, 16), parseInt(g.b, 16), g.a !== undefined ? parseInt(g.a, 16) / 255.0 : 1.0);
508
- }
509
- const re4 = /#(?<r>[a-fA-F0-9])(?<g>[a-fA-F0-9])(?<b>[a-fA-F0-9])/;
510
- if ((m = re4.exec(str)) !== null) {
511
- let gr = m.groups;
512
- const r = parseInt(gr.r, 16);
513
- const g = parseInt(gr.g, 16);
514
- const b = parseInt(gr.b, 16);
515
- return new Color(r << 4 | r, g << 4 | g, b << 4 | b, 1.0);
516
- }
517
- }
518
- if (str[0] == 'r') {
519
- const re2 = /rgb\(\s*(?<r>\d+)\s*\,\s*(?<g>\d+)\s*\,\s*(?<b>\d+)\s*\)/;
520
- if ((m = re2.exec(str)) !== null) {
521
- let g = m.groups;
522
- return new Color(parseInt(g.r, 10), parseInt(g.g, 10), parseInt(g.b, 10), 1.0);
523
- }
524
- const re3 = /rgba\(\s*(?<r>\d+)\s*\,\s*(?<g>\d+)\s*\,\s*(?<b>\d+)\s*\,\s*(?<a>[0-9.]+)\s*\)/;
525
- if ((m = re3.exec(str)) !== null) {
526
- let g = m.groups;
527
- return new Color(parseInt(g.r, 10), parseInt(g.g, 10), parseInt(g.b, 10), parseFloat(g.a));
528
- }
529
- }
530
- console.log("invalid color value: " + str);
531
- return new Color(0);
532
- }
533
- _getCustomColor(name) {
534
- if (name === null) {
535
- return 0;
536
- }
537
- let std = colorValues[name];
538
- if (std !== undefined) {
539
- return std;
540
- }
541
- if (Color.custom[name] !== undefined) {
542
- return Color.custom[name].m_value;
543
- }
544
- if (name.substr(0, 4) == 'css:') {
545
- Color.addCssColor(name.substr(4));
546
- return Color.custom[name].m_value;
547
- }
548
- return Color.parse(name).m_value;
549
- }
550
- static contrastColor(color) {
551
- let el = color._split();
552
- // Calculate the perceptive luminance (aka luma) - human eye favors green color...
553
- let luma = ((0.299 * el.r) + (0.587 * el.g) + (0.114 * el.b)) / 255;
554
- // Return black for bright colors, white for dark colors
555
- return luma > 0.5 ? Color.BLACK : Color.WHITE;
556
- }
557
- /**
558
- *
559
- */
560
- static WHITE = new Color(255, 255, 255);
561
- /**
562
- *
563
- */
564
- static BLACK = new Color(0, 0, 0);
565
- /**
566
- *
567
- */
568
- static NONE = new Color(0, 0, 0, 0);
569
- static valueFromColorName(name) {
570
- let v = colorValues[name];
571
- if (v) {
572
- return new Color(v);
573
- }
574
- else {
575
- return null;
576
- }
577
- }
578
- static fromCssVar(varName) {
579
- return new Color(varName).toString();
580
- }
581
- }
582
- function _hx(n) {
583
- return ('00' + n.toString(16)).substr(-2).toUpperCase();
584
- }