css-color-parser-h 1.0.5 → 2.0.1

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.
@@ -0,0 +1,2167 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define([], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["Parser"] = factory();
8
+ else
9
+ root["Parser"] = factory();
10
+ })(this, function() {
11
+ return /******/ (function() { // webpackBootstrap
12
+ /******/ var __webpack_modules__ = ({
13
+
14
+ /***/ 208:
15
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
16
+
17
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
22
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
+ /* MIT license */
24
+ /* eslint-disable no-mixed-operators */
25
+ var cssKeywords = __webpack_require__(101);
26
+
27
+ // NOTE: conversions should only return primitive values (i.e. arrays, or
28
+ // values that give correct `typeof` results).
29
+ // do not use box values types (i.e. Number(), String(), etc.)
30
+
31
+ var reverseKeywords = {};
32
+ for (var _i = 0, _Object$keys = Object.keys(cssKeywords); _i < _Object$keys.length; _i++) {
33
+ var key = _Object$keys[_i];
34
+ reverseKeywords[cssKeywords[key]] = key;
35
+ }
36
+ var convert = {
37
+ rgb: {
38
+ channels: 3,
39
+ labels: 'rgb'
40
+ },
41
+ hsl: {
42
+ channels: 3,
43
+ labels: 'hsl'
44
+ },
45
+ hsv: {
46
+ channels: 3,
47
+ labels: 'hsv'
48
+ },
49
+ hwb: {
50
+ channels: 3,
51
+ labels: 'hwb'
52
+ },
53
+ cmyk: {
54
+ channels: 4,
55
+ labels: 'cmyk'
56
+ },
57
+ xyz: {
58
+ channels: 3,
59
+ labels: 'xyz'
60
+ },
61
+ lab: {
62
+ channels: 3,
63
+ labels: 'lab'
64
+ },
65
+ lch: {
66
+ channels: 3,
67
+ labels: 'lch'
68
+ },
69
+ hex: {
70
+ channels: 1,
71
+ labels: ['hex']
72
+ },
73
+ keyword: {
74
+ channels: 1,
75
+ labels: ['keyword']
76
+ },
77
+ ansi16: {
78
+ channels: 1,
79
+ labels: ['ansi16']
80
+ },
81
+ ansi256: {
82
+ channels: 1,
83
+ labels: ['ansi256']
84
+ },
85
+ hcg: {
86
+ channels: 3,
87
+ labels: ['h', 'c', 'g']
88
+ },
89
+ apple: {
90
+ channels: 3,
91
+ labels: ['r16', 'g16', 'b16']
92
+ },
93
+ gray: {
94
+ channels: 1,
95
+ labels: ['gray']
96
+ }
97
+ };
98
+ module.exports = convert;
99
+
100
+ // Hide .channels and .labels properties
101
+ for (var _i2 = 0, _Object$keys2 = Object.keys(convert); _i2 < _Object$keys2.length; _i2++) {
102
+ var model = _Object$keys2[_i2];
103
+ if (!('channels' in convert[model])) {
104
+ throw new Error('missing channels property: ' + model);
105
+ }
106
+ if (!('labels' in convert[model])) {
107
+ throw new Error('missing channel labels property: ' + model);
108
+ }
109
+ if (convert[model].labels.length !== convert[model].channels) {
110
+ throw new Error('channel and label counts mismatch: ' + model);
111
+ }
112
+ var _convert$model = convert[model],
113
+ channels = _convert$model.channels,
114
+ labels = _convert$model.labels;
115
+ delete convert[model].channels;
116
+ delete convert[model].labels;
117
+ Object.defineProperty(convert[model], 'channels', {
118
+ value: channels
119
+ });
120
+ Object.defineProperty(convert[model], 'labels', {
121
+ value: labels
122
+ });
123
+ }
124
+ convert.rgb.hsl = function (rgb) {
125
+ var r = rgb[0] / 255;
126
+ var g = rgb[1] / 255;
127
+ var b = rgb[2] / 255;
128
+ var min = Math.min(r, g, b);
129
+ var max = Math.max(r, g, b);
130
+ var delta = max - min;
131
+ var h;
132
+ var s;
133
+ if (max === min) {
134
+ h = 0;
135
+ } else if (r === max) {
136
+ h = (g - b) / delta;
137
+ } else if (g === max) {
138
+ h = 2 + (b - r) / delta;
139
+ } else if (b === max) {
140
+ h = 4 + (r - g) / delta;
141
+ }
142
+ h = Math.min(h * 60, 360);
143
+ if (h < 0) {
144
+ h += 360;
145
+ }
146
+ var l = (min + max) / 2;
147
+ if (max === min) {
148
+ s = 0;
149
+ } else if (l <= 0.5) {
150
+ s = delta / (max + min);
151
+ } else {
152
+ s = delta / (2 - max - min);
153
+ }
154
+ return [h, s * 100, l * 100];
155
+ };
156
+ convert.rgb.hsv = function (rgb) {
157
+ var rdif;
158
+ var gdif;
159
+ var bdif;
160
+ var h;
161
+ var s;
162
+ var r = rgb[0] / 255;
163
+ var g = rgb[1] / 255;
164
+ var b = rgb[2] / 255;
165
+ var v = Math.max(r, g, b);
166
+ var diff = v - Math.min(r, g, b);
167
+ var diffc = function diffc(c) {
168
+ return (v - c) / 6 / diff + 1 / 2;
169
+ };
170
+ if (diff === 0) {
171
+ h = 0;
172
+ s = 0;
173
+ } else {
174
+ s = diff / v;
175
+ rdif = diffc(r);
176
+ gdif = diffc(g);
177
+ bdif = diffc(b);
178
+ if (r === v) {
179
+ h = bdif - gdif;
180
+ } else if (g === v) {
181
+ h = 1 / 3 + rdif - bdif;
182
+ } else if (b === v) {
183
+ h = 2 / 3 + gdif - rdif;
184
+ }
185
+ if (h < 0) {
186
+ h += 1;
187
+ } else if (h > 1) {
188
+ h -= 1;
189
+ }
190
+ }
191
+ return [h * 360, s * 100, v * 100];
192
+ };
193
+ convert.rgb.hwb = function (rgb) {
194
+ var r = rgb[0];
195
+ var g = rgb[1];
196
+ var b = rgb[2];
197
+ var h = convert.rgb.hsl(rgb)[0];
198
+ var w = 1 / 255 * Math.min(r, Math.min(g, b));
199
+ b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
200
+ return [h, w * 100, b * 100];
201
+ };
202
+ convert.rgb.cmyk = function (rgb) {
203
+ var r = rgb[0] / 255;
204
+ var g = rgb[1] / 255;
205
+ var b = rgb[2] / 255;
206
+ var k = Math.min(1 - r, 1 - g, 1 - b);
207
+ var c = (1 - r - k) / (1 - k) || 0;
208
+ var m = (1 - g - k) / (1 - k) || 0;
209
+ var y = (1 - b - k) / (1 - k) || 0;
210
+ return [c * 100, m * 100, y * 100, k * 100];
211
+ };
212
+ function comparativeDistance(x, y) {
213
+ /*
214
+ See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance
215
+ */
216
+ return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);
217
+ }
218
+ convert.rgb.keyword = function (rgb) {
219
+ var reversed = reverseKeywords[rgb];
220
+ if (reversed) {
221
+ return reversed;
222
+ }
223
+ var currentClosestDistance = Infinity;
224
+ var currentClosestKeyword;
225
+ for (var _i3 = 0, _Object$keys3 = Object.keys(cssKeywords); _i3 < _Object$keys3.length; _i3++) {
226
+ var keyword = _Object$keys3[_i3];
227
+ var value = cssKeywords[keyword];
228
+
229
+ // Compute comparative distance
230
+ var distance = comparativeDistance(rgb, value);
231
+
232
+ // Check if its less, if so set as closest
233
+ if (distance < currentClosestDistance) {
234
+ currentClosestDistance = distance;
235
+ currentClosestKeyword = keyword;
236
+ }
237
+ }
238
+ return currentClosestKeyword;
239
+ };
240
+ convert.keyword.rgb = function (keyword) {
241
+ return cssKeywords[keyword];
242
+ };
243
+ convert.rgb.xyz = function (rgb) {
244
+ var r = rgb[0] / 255;
245
+ var g = rgb[1] / 255;
246
+ var b = rgb[2] / 255;
247
+
248
+ // Assume sRGB
249
+ r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;
250
+ g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;
251
+ b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;
252
+ var x = r * 0.4124 + g * 0.3576 + b * 0.1805;
253
+ var y = r * 0.2126 + g * 0.7152 + b * 0.0722;
254
+ var z = r * 0.0193 + g * 0.1192 + b * 0.9505;
255
+ return [x * 100, y * 100, z * 100];
256
+ };
257
+ convert.rgb.lab = function (rgb) {
258
+ var xyz = convert.rgb.xyz(rgb);
259
+ var x = xyz[0];
260
+ var y = xyz[1];
261
+ var z = xyz[2];
262
+ x /= 95.047;
263
+ y /= 100;
264
+ z /= 108.883;
265
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
266
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
267
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
268
+ var l = 116 * y - 16;
269
+ var a = 500 * (x - y);
270
+ var b = 200 * (y - z);
271
+ return [l, a, b];
272
+ };
273
+ convert.hsl.rgb = function (hsl) {
274
+ var h = hsl[0] / 360;
275
+ var s = hsl[1] / 100;
276
+ var l = hsl[2] / 100;
277
+ var t2;
278
+ var t3;
279
+ var val;
280
+ if (s === 0) {
281
+ val = l * 255;
282
+ return [val, val, val];
283
+ }
284
+ if (l < 0.5) {
285
+ t2 = l * (1 + s);
286
+ } else {
287
+ t2 = l + s - l * s;
288
+ }
289
+ var t1 = 2 * l - t2;
290
+ var rgb = [0, 0, 0];
291
+ for (var i = 0; i < 3; i++) {
292
+ t3 = h + 1 / 3 * -(i - 1);
293
+ if (t3 < 0) {
294
+ t3++;
295
+ }
296
+ if (t3 > 1) {
297
+ t3--;
298
+ }
299
+ if (6 * t3 < 1) {
300
+ val = t1 + (t2 - t1) * 6 * t3;
301
+ } else if (2 * t3 < 1) {
302
+ val = t2;
303
+ } else if (3 * t3 < 2) {
304
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
305
+ } else {
306
+ val = t1;
307
+ }
308
+ rgb[i] = val * 255;
309
+ }
310
+ return rgb;
311
+ };
312
+ convert.hsl.hsv = function (hsl) {
313
+ var h = hsl[0];
314
+ var s = hsl[1] / 100;
315
+ var l = hsl[2] / 100;
316
+ var smin = s;
317
+ var lmin = Math.max(l, 0.01);
318
+ l *= 2;
319
+ s *= l <= 1 ? l : 2 - l;
320
+ smin *= lmin <= 1 ? lmin : 2 - lmin;
321
+ var v = (l + s) / 2;
322
+ var sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
323
+ return [h, sv * 100, v * 100];
324
+ };
325
+ convert.hsv.rgb = function (hsv) {
326
+ var h = hsv[0] / 60;
327
+ var s = hsv[1] / 100;
328
+ var v = hsv[2] / 100;
329
+ var hi = Math.floor(h) % 6;
330
+ var f = h - Math.floor(h);
331
+ var p = 255 * v * (1 - s);
332
+ var q = 255 * v * (1 - s * f);
333
+ var t = 255 * v * (1 - s * (1 - f));
334
+ v *= 255;
335
+ switch (hi) {
336
+ case 0:
337
+ return [v, t, p];
338
+ case 1:
339
+ return [q, v, p];
340
+ case 2:
341
+ return [p, v, t];
342
+ case 3:
343
+ return [p, q, v];
344
+ case 4:
345
+ return [t, p, v];
346
+ case 5:
347
+ return [v, p, q];
348
+ }
349
+ };
350
+ convert.hsv.hsl = function (hsv) {
351
+ var h = hsv[0];
352
+ var s = hsv[1] / 100;
353
+ var v = hsv[2] / 100;
354
+ var vmin = Math.max(v, 0.01);
355
+ var sl;
356
+ var l;
357
+ l = (2 - s) * v;
358
+ var lmin = (2 - s) * vmin;
359
+ sl = s * vmin;
360
+ sl /= lmin <= 1 ? lmin : 2 - lmin;
361
+ sl = sl || 0;
362
+ l /= 2;
363
+ return [h, sl * 100, l * 100];
364
+ };
365
+
366
+ // http://dev.w3.org/csswg/css-color/#hwb-to-rgb
367
+ convert.hwb.rgb = function (hwb) {
368
+ var h = hwb[0] / 360;
369
+ var wh = hwb[1] / 100;
370
+ var bl = hwb[2] / 100;
371
+ var ratio = wh + bl;
372
+ var f;
373
+
374
+ // Wh + bl cant be > 1
375
+ if (ratio > 1) {
376
+ wh /= ratio;
377
+ bl /= ratio;
378
+ }
379
+ var i = Math.floor(6 * h);
380
+ var v = 1 - bl;
381
+ f = 6 * h - i;
382
+ if ((i & 0x01) !== 0) {
383
+ f = 1 - f;
384
+ }
385
+ var n = wh + f * (v - wh); // Linear interpolation
386
+
387
+ var r;
388
+ var g;
389
+ var b;
390
+ /* eslint-disable max-statements-per-line,no-multi-spaces */
391
+ switch (i) {
392
+ default:
393
+ case 6:
394
+ case 0:
395
+ r = v;
396
+ g = n;
397
+ b = wh;
398
+ break;
399
+ case 1:
400
+ r = n;
401
+ g = v;
402
+ b = wh;
403
+ break;
404
+ case 2:
405
+ r = wh;
406
+ g = v;
407
+ b = n;
408
+ break;
409
+ case 3:
410
+ r = wh;
411
+ g = n;
412
+ b = v;
413
+ break;
414
+ case 4:
415
+ r = n;
416
+ g = wh;
417
+ b = v;
418
+ break;
419
+ case 5:
420
+ r = v;
421
+ g = wh;
422
+ b = n;
423
+ break;
424
+ }
425
+ /* eslint-enable max-statements-per-line,no-multi-spaces */
426
+
427
+ return [r * 255, g * 255, b * 255];
428
+ };
429
+ convert.cmyk.rgb = function (cmyk) {
430
+ var c = cmyk[0] / 100;
431
+ var m = cmyk[1] / 100;
432
+ var y = cmyk[2] / 100;
433
+ var k = cmyk[3] / 100;
434
+ var r = 1 - Math.min(1, c * (1 - k) + k);
435
+ var g = 1 - Math.min(1, m * (1 - k) + k);
436
+ var b = 1 - Math.min(1, y * (1 - k) + k);
437
+ return [r * 255, g * 255, b * 255];
438
+ };
439
+ convert.xyz.rgb = function (xyz) {
440
+ var x = xyz[0] / 100;
441
+ var y = xyz[1] / 100;
442
+ var z = xyz[2] / 100;
443
+ var r;
444
+ var g;
445
+ var b;
446
+ r = x * 3.2406 + y * -1.5372 + z * -0.4986;
447
+ g = x * -0.9689 + y * 1.8758 + z * 0.0415;
448
+ b = x * 0.0557 + y * -0.2040 + z * 1.0570;
449
+
450
+ // Assume sRGB
451
+ r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;
452
+ g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;
453
+ b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;
454
+ r = Math.min(Math.max(0, r), 1);
455
+ g = Math.min(Math.max(0, g), 1);
456
+ b = Math.min(Math.max(0, b), 1);
457
+ return [r * 255, g * 255, b * 255];
458
+ };
459
+ convert.xyz.lab = function (xyz) {
460
+ var x = xyz[0];
461
+ var y = xyz[1];
462
+ var z = xyz[2];
463
+ x /= 95.047;
464
+ y /= 100;
465
+ z /= 108.883;
466
+ x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;
467
+ y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;
468
+ z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;
469
+ var l = 116 * y - 16;
470
+ var a = 500 * (x - y);
471
+ var b = 200 * (y - z);
472
+ return [l, a, b];
473
+ };
474
+ convert.lab.xyz = function (lab) {
475
+ var l = lab[0];
476
+ var a = lab[1];
477
+ var b = lab[2];
478
+ var x;
479
+ var y;
480
+ var z;
481
+ y = (l + 16) / 116;
482
+ x = a / 500 + y;
483
+ z = y - b / 200;
484
+ var y2 = Math.pow(y, 3);
485
+ var x2 = Math.pow(x, 3);
486
+ var z2 = Math.pow(z, 3);
487
+ y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;
488
+ x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;
489
+ z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;
490
+ x *= 95.047;
491
+ y *= 100;
492
+ z *= 108.883;
493
+ return [x, y, z];
494
+ };
495
+ convert.lab.lch = function (lab) {
496
+ var l = lab[0];
497
+ var a = lab[1];
498
+ var b = lab[2];
499
+ var h;
500
+ var hr = Math.atan2(b, a);
501
+ h = hr * 360 / 2 / Math.PI;
502
+ if (h < 0) {
503
+ h += 360;
504
+ }
505
+ var c = Math.sqrt(a * a + b * b);
506
+ return [l, c, h];
507
+ };
508
+ convert.lch.lab = function (lch) {
509
+ var l = lch[0];
510
+ var c = lch[1];
511
+ var h = lch[2];
512
+ var hr = h / 360 * 2 * Math.PI;
513
+ var a = c * Math.cos(hr);
514
+ var b = c * Math.sin(hr);
515
+ return [l, a, b];
516
+ };
517
+ convert.rgb.ansi16 = function (args) {
518
+ var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
519
+ var _args = _slicedToArray(args, 3),
520
+ r = _args[0],
521
+ g = _args[1],
522
+ b = _args[2];
523
+ var value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization
524
+
525
+ value = Math.round(value / 50);
526
+ if (value === 0) {
527
+ return 30;
528
+ }
529
+ var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
530
+ if (value === 2) {
531
+ ansi += 60;
532
+ }
533
+ return ansi;
534
+ };
535
+ convert.hsv.ansi16 = function (args) {
536
+ // Optimization here; we already know the value and don't need to get
537
+ // it converted for us.
538
+ return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
539
+ };
540
+ convert.rgb.ansi256 = function (args) {
541
+ var r = args[0];
542
+ var g = args[1];
543
+ var b = args[2];
544
+
545
+ // We use the extended greyscale palette here, with the exception of
546
+ // black and white. normal palette only has 4 greyscale shades.
547
+ if (r === g && g === b) {
548
+ if (r < 8) {
549
+ return 16;
550
+ }
551
+ if (r > 248) {
552
+ return 231;
553
+ }
554
+ return Math.round((r - 8) / 247 * 24) + 232;
555
+ }
556
+ var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
557
+ return ansi;
558
+ };
559
+ convert.ansi16.rgb = function (args) {
560
+ var color = args % 10;
561
+
562
+ // Handle greyscale
563
+ if (color === 0 || color === 7) {
564
+ if (args > 50) {
565
+ color += 3.5;
566
+ }
567
+ color = color / 10.5 * 255;
568
+ return [color, color, color];
569
+ }
570
+ var mult = (~~(args > 50) + 1) * 0.5;
571
+ var r = (color & 1) * mult * 255;
572
+ var g = (color >> 1 & 1) * mult * 255;
573
+ var b = (color >> 2 & 1) * mult * 255;
574
+ return [r, g, b];
575
+ };
576
+ convert.ansi256.rgb = function (args) {
577
+ // Handle greyscale
578
+ if (args >= 232) {
579
+ var c = (args - 232) * 10 + 8;
580
+ return [c, c, c];
581
+ }
582
+ args -= 16;
583
+ var rem;
584
+ var r = Math.floor(args / 36) / 5 * 255;
585
+ var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
586
+ var b = rem % 6 / 5 * 255;
587
+ return [r, g, b];
588
+ };
589
+ convert.rgb.hex = function (args) {
590
+ var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);
591
+ var string = integer.toString(16).toUpperCase();
592
+ return '000000'.substring(string.length) + string;
593
+ };
594
+ convert.hex.rgb = function (args) {
595
+ var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
596
+ if (!match) {
597
+ return [0, 0, 0];
598
+ }
599
+ var colorString = match[0];
600
+ if (match[0].length === 3) {
601
+ colorString = colorString.split('').map(function (_char) {
602
+ return _char + _char;
603
+ }).join('');
604
+ }
605
+ var integer = parseInt(colorString, 16);
606
+ var r = integer >> 16 & 0xFF;
607
+ var g = integer >> 8 & 0xFF;
608
+ var b = integer & 0xFF;
609
+ return [r, g, b];
610
+ };
611
+ convert.rgb.hcg = function (rgb) {
612
+ var r = rgb[0] / 255;
613
+ var g = rgb[1] / 255;
614
+ var b = rgb[2] / 255;
615
+ var max = Math.max(Math.max(r, g), b);
616
+ var min = Math.min(Math.min(r, g), b);
617
+ var chroma = max - min;
618
+ var grayscale;
619
+ var hue;
620
+ if (chroma < 1) {
621
+ grayscale = min / (1 - chroma);
622
+ } else {
623
+ grayscale = 0;
624
+ }
625
+ if (chroma <= 0) {
626
+ hue = 0;
627
+ } else if (max === r) {
628
+ hue = (g - b) / chroma % 6;
629
+ } else if (max === g) {
630
+ hue = 2 + (b - r) / chroma;
631
+ } else {
632
+ hue = 4 + (r - g) / chroma;
633
+ }
634
+ hue /= 6;
635
+ hue %= 1;
636
+ return [hue * 360, chroma * 100, grayscale * 100];
637
+ };
638
+ convert.hsl.hcg = function (hsl) {
639
+ var s = hsl[1] / 100;
640
+ var l = hsl[2] / 100;
641
+ var c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l);
642
+ var f = 0;
643
+ if (c < 1.0) {
644
+ f = (l - 0.5 * c) / (1.0 - c);
645
+ }
646
+ return [hsl[0], c * 100, f * 100];
647
+ };
648
+ convert.hsv.hcg = function (hsv) {
649
+ var s = hsv[1] / 100;
650
+ var v = hsv[2] / 100;
651
+ var c = s * v;
652
+ var f = 0;
653
+ if (c < 1.0) {
654
+ f = (v - c) / (1 - c);
655
+ }
656
+ return [hsv[0], c * 100, f * 100];
657
+ };
658
+ convert.hcg.rgb = function (hcg) {
659
+ var h = hcg[0] / 360;
660
+ var c = hcg[1] / 100;
661
+ var g = hcg[2] / 100;
662
+ if (c === 0.0) {
663
+ return [g * 255, g * 255, g * 255];
664
+ }
665
+ var pure = [0, 0, 0];
666
+ var hi = h % 1 * 6;
667
+ var v = hi % 1;
668
+ var w = 1 - v;
669
+ var mg = 0;
670
+
671
+ /* eslint-disable max-statements-per-line */
672
+ switch (Math.floor(hi)) {
673
+ case 0:
674
+ pure[0] = 1;
675
+ pure[1] = v;
676
+ pure[2] = 0;
677
+ break;
678
+ case 1:
679
+ pure[0] = w;
680
+ pure[1] = 1;
681
+ pure[2] = 0;
682
+ break;
683
+ case 2:
684
+ pure[0] = 0;
685
+ pure[1] = 1;
686
+ pure[2] = v;
687
+ break;
688
+ case 3:
689
+ pure[0] = 0;
690
+ pure[1] = w;
691
+ pure[2] = 1;
692
+ break;
693
+ case 4:
694
+ pure[0] = v;
695
+ pure[1] = 0;
696
+ pure[2] = 1;
697
+ break;
698
+ default:
699
+ pure[0] = 1;
700
+ pure[1] = 0;
701
+ pure[2] = w;
702
+ }
703
+ /* eslint-enable max-statements-per-line */
704
+
705
+ mg = (1.0 - c) * g;
706
+ return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];
707
+ };
708
+ convert.hcg.hsv = function (hcg) {
709
+ var c = hcg[1] / 100;
710
+ var g = hcg[2] / 100;
711
+ var v = c + g * (1.0 - c);
712
+ var f = 0;
713
+ if (v > 0.0) {
714
+ f = c / v;
715
+ }
716
+ return [hcg[0], f * 100, v * 100];
717
+ };
718
+ convert.hcg.hsl = function (hcg) {
719
+ var c = hcg[1] / 100;
720
+ var g = hcg[2] / 100;
721
+ var l = g * (1.0 - c) + 0.5 * c;
722
+ var s = 0;
723
+ if (l > 0.0 && l < 0.5) {
724
+ s = c / (2 * l);
725
+ } else if (l >= 0.5 && l < 1.0) {
726
+ s = c / (2 * (1 - l));
727
+ }
728
+ return [hcg[0], s * 100, l * 100];
729
+ };
730
+ convert.hcg.hwb = function (hcg) {
731
+ var c = hcg[1] / 100;
732
+ var g = hcg[2] / 100;
733
+ var v = c + g * (1.0 - c);
734
+ return [hcg[0], (v - c) * 100, (1 - v) * 100];
735
+ };
736
+ convert.hwb.hcg = function (hwb) {
737
+ var w = hwb[1] / 100;
738
+ var b = hwb[2] / 100;
739
+ var v = 1 - b;
740
+ var c = v - w;
741
+ var g = 0;
742
+ if (c < 1) {
743
+ g = (v - c) / (1 - c);
744
+ }
745
+ return [hwb[0], c * 100, g * 100];
746
+ };
747
+ convert.apple.rgb = function (apple) {
748
+ return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
749
+ };
750
+ convert.rgb.apple = function (rgb) {
751
+ return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
752
+ };
753
+ convert.gray.rgb = function (args) {
754
+ return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
755
+ };
756
+ convert.gray.hsl = function (args) {
757
+ return [0, 0, args[0]];
758
+ };
759
+ convert.gray.hsv = convert.gray.hsl;
760
+ convert.gray.hwb = function (gray) {
761
+ return [0, 100, gray[0]];
762
+ };
763
+ convert.gray.cmyk = function (gray) {
764
+ return [0, 0, 0, gray[0]];
765
+ };
766
+ convert.gray.lab = function (gray) {
767
+ return [gray[0], 0, 0];
768
+ };
769
+ convert.gray.hex = function (gray) {
770
+ var val = Math.round(gray[0] / 100 * 255) & 0xFF;
771
+ var integer = (val << 16) + (val << 8) + val;
772
+ var string = integer.toString(16).toUpperCase();
773
+ return '000000'.substring(string.length) + string;
774
+ };
775
+ convert.rgb.gray = function (rgb) {
776
+ var val = (rgb[0] + rgb[1] + rgb[2]) / 3;
777
+ return [val / 255 * 100];
778
+ };
779
+
780
+ /***/ }),
781
+
782
+ /***/ 907:
783
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
784
+
785
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
786
+ var conversions = __webpack_require__(208);
787
+ var route = __webpack_require__(171);
788
+ var convert = {};
789
+ var models = Object.keys(conversions);
790
+ function wrapRaw(fn) {
791
+ var wrappedFn = function wrappedFn() {
792
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
793
+ args[_key] = arguments[_key];
794
+ }
795
+ var arg0 = args[0];
796
+ if (arg0 === undefined || arg0 === null) {
797
+ return arg0;
798
+ }
799
+ if (arg0.length > 1) {
800
+ args = arg0;
801
+ }
802
+ return fn(args);
803
+ };
804
+
805
+ // Preserve .conversion property if there is one
806
+ if ('conversion' in fn) {
807
+ wrappedFn.conversion = fn.conversion;
808
+ }
809
+ return wrappedFn;
810
+ }
811
+ function wrapRounded(fn) {
812
+ var wrappedFn = function wrappedFn() {
813
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
814
+ args[_key2] = arguments[_key2];
815
+ }
816
+ var arg0 = args[0];
817
+ if (arg0 === undefined || arg0 === null) {
818
+ return arg0;
819
+ }
820
+ if (arg0.length > 1) {
821
+ args = arg0;
822
+ }
823
+ var result = fn(args);
824
+
825
+ // We're assuming the result is an array here.
826
+ // see notice in conversions.js; don't use box types
827
+ // in conversion functions.
828
+ if (_typeof(result) === 'object') {
829
+ for (var len = result.length, i = 0; i < len; i++) {
830
+ result[i] = Math.round(result[i]);
831
+ }
832
+ }
833
+ return result;
834
+ };
835
+
836
+ // Preserve .conversion property if there is one
837
+ if ('conversion' in fn) {
838
+ wrappedFn.conversion = fn.conversion;
839
+ }
840
+ return wrappedFn;
841
+ }
842
+ models.forEach(function (fromModel) {
843
+ convert[fromModel] = {};
844
+ Object.defineProperty(convert[fromModel], 'channels', {
845
+ value: conversions[fromModel].channels
846
+ });
847
+ Object.defineProperty(convert[fromModel], 'labels', {
848
+ value: conversions[fromModel].labels
849
+ });
850
+ var routes = route(fromModel);
851
+ var routeModels = Object.keys(routes);
852
+ routeModels.forEach(function (toModel) {
853
+ var fn = routes[toModel];
854
+ convert[fromModel][toModel] = wrapRounded(fn);
855
+ convert[fromModel][toModel].raw = wrapRaw(fn);
856
+ });
857
+ });
858
+ module.exports = convert;
859
+
860
+ /***/ }),
861
+
862
+ /***/ 171:
863
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
864
+
865
+ var conversions = __webpack_require__(208);
866
+
867
+ /*
868
+ This function routes a model to all other models.
869
+
870
+ all functions that are routed have a property `.conversion` attached
871
+ to the returned synthetic function. This property is an array
872
+ of strings, each with the steps in between the 'from' and 'to'
873
+ color models (inclusive).
874
+
875
+ conversions that are not possible simply are not included.
876
+ */
877
+
878
+ function buildGraph() {
879
+ var graph = {};
880
+ // https://jsperf.com/object-keys-vs-for-in-with-closure/3
881
+ var models = Object.keys(conversions);
882
+ for (var len = models.length, i = 0; i < len; i++) {
883
+ graph[models[i]] = {
884
+ // http://jsperf.com/1-vs-infinity
885
+ // micro-opt, but this is simple.
886
+ distance: -1,
887
+ parent: null
888
+ };
889
+ }
890
+ return graph;
891
+ }
892
+
893
+ // https://en.wikipedia.org/wiki/Breadth-first_search
894
+ function deriveBFS(fromModel) {
895
+ var graph = buildGraph();
896
+ var queue = [fromModel]; // Unshift -> queue -> pop
897
+
898
+ graph[fromModel].distance = 0;
899
+ while (queue.length) {
900
+ var current = queue.pop();
901
+ var adjacents = Object.keys(conversions[current]);
902
+ for (var len = adjacents.length, i = 0; i < len; i++) {
903
+ var adjacent = adjacents[i];
904
+ var node = graph[adjacent];
905
+ if (node.distance === -1) {
906
+ node.distance = graph[current].distance + 1;
907
+ node.parent = current;
908
+ queue.unshift(adjacent);
909
+ }
910
+ }
911
+ }
912
+ return graph;
913
+ }
914
+ function link(from, to) {
915
+ return function (args) {
916
+ return to(from(args));
917
+ };
918
+ }
919
+ function wrapConversion(toModel, graph) {
920
+ var path = [graph[toModel].parent, toModel];
921
+ var fn = conversions[graph[toModel].parent][toModel];
922
+ var cur = graph[toModel].parent;
923
+ while (graph[cur].parent) {
924
+ path.unshift(graph[cur].parent);
925
+ fn = link(conversions[graph[cur].parent][cur], fn);
926
+ cur = graph[cur].parent;
927
+ }
928
+ fn.conversion = path;
929
+ return fn;
930
+ }
931
+ module.exports = function (fromModel) {
932
+ var graph = deriveBFS(fromModel);
933
+ var conversion = {};
934
+ var models = Object.keys(graph);
935
+ for (var len = models.length, i = 0; i < len; i++) {
936
+ var toModel = models[i];
937
+ var node = graph[toModel];
938
+ if (node.parent === null) {
939
+ // No possible conversion, or this node is the source model.
940
+ continue;
941
+ }
942
+ conversion[toModel] = wrapConversion(toModel, graph);
943
+ }
944
+ return conversion;
945
+ };
946
+
947
+ /***/ }),
948
+
949
+ /***/ 101:
950
+ /***/ (function(module) {
951
+
952
+ "use strict";
953
+
954
+
955
+ module.exports = {
956
+ "aliceblue": [240, 248, 255],
957
+ "antiquewhite": [250, 235, 215],
958
+ "aqua": [0, 255, 255],
959
+ "aquamarine": [127, 255, 212],
960
+ "azure": [240, 255, 255],
961
+ "beige": [245, 245, 220],
962
+ "bisque": [255, 228, 196],
963
+ "black": [0, 0, 0],
964
+ "blanchedalmond": [255, 235, 205],
965
+ "blue": [0, 0, 255],
966
+ "blueviolet": [138, 43, 226],
967
+ "brown": [165, 42, 42],
968
+ "burlywood": [222, 184, 135],
969
+ "cadetblue": [95, 158, 160],
970
+ "chartreuse": [127, 255, 0],
971
+ "chocolate": [210, 105, 30],
972
+ "coral": [255, 127, 80],
973
+ "cornflowerblue": [100, 149, 237],
974
+ "cornsilk": [255, 248, 220],
975
+ "crimson": [220, 20, 60],
976
+ "cyan": [0, 255, 255],
977
+ "darkblue": [0, 0, 139],
978
+ "darkcyan": [0, 139, 139],
979
+ "darkgoldenrod": [184, 134, 11],
980
+ "darkgray": [169, 169, 169],
981
+ "darkgreen": [0, 100, 0],
982
+ "darkgrey": [169, 169, 169],
983
+ "darkkhaki": [189, 183, 107],
984
+ "darkmagenta": [139, 0, 139],
985
+ "darkolivegreen": [85, 107, 47],
986
+ "darkorange": [255, 140, 0],
987
+ "darkorchid": [153, 50, 204],
988
+ "darkred": [139, 0, 0],
989
+ "darksalmon": [233, 150, 122],
990
+ "darkseagreen": [143, 188, 143],
991
+ "darkslateblue": [72, 61, 139],
992
+ "darkslategray": [47, 79, 79],
993
+ "darkslategrey": [47, 79, 79],
994
+ "darkturquoise": [0, 206, 209],
995
+ "darkviolet": [148, 0, 211],
996
+ "deeppink": [255, 20, 147],
997
+ "deepskyblue": [0, 191, 255],
998
+ "dimgray": [105, 105, 105],
999
+ "dimgrey": [105, 105, 105],
1000
+ "dodgerblue": [30, 144, 255],
1001
+ "firebrick": [178, 34, 34],
1002
+ "floralwhite": [255, 250, 240],
1003
+ "forestgreen": [34, 139, 34],
1004
+ "fuchsia": [255, 0, 255],
1005
+ "gainsboro": [220, 220, 220],
1006
+ "ghostwhite": [248, 248, 255],
1007
+ "gold": [255, 215, 0],
1008
+ "goldenrod": [218, 165, 32],
1009
+ "gray": [128, 128, 128],
1010
+ "green": [0, 128, 0],
1011
+ "greenyellow": [173, 255, 47],
1012
+ "grey": [128, 128, 128],
1013
+ "honeydew": [240, 255, 240],
1014
+ "hotpink": [255, 105, 180],
1015
+ "indianred": [205, 92, 92],
1016
+ "indigo": [75, 0, 130],
1017
+ "ivory": [255, 255, 240],
1018
+ "khaki": [240, 230, 140],
1019
+ "lavender": [230, 230, 250],
1020
+ "lavenderblush": [255, 240, 245],
1021
+ "lawngreen": [124, 252, 0],
1022
+ "lemonchiffon": [255, 250, 205],
1023
+ "lightblue": [173, 216, 230],
1024
+ "lightcoral": [240, 128, 128],
1025
+ "lightcyan": [224, 255, 255],
1026
+ "lightgoldenrodyellow": [250, 250, 210],
1027
+ "lightgray": [211, 211, 211],
1028
+ "lightgreen": [144, 238, 144],
1029
+ "lightgrey": [211, 211, 211],
1030
+ "lightpink": [255, 182, 193],
1031
+ "lightsalmon": [255, 160, 122],
1032
+ "lightseagreen": [32, 178, 170],
1033
+ "lightskyblue": [135, 206, 250],
1034
+ "lightslategray": [119, 136, 153],
1035
+ "lightslategrey": [119, 136, 153],
1036
+ "lightsteelblue": [176, 196, 222],
1037
+ "lightyellow": [255, 255, 224],
1038
+ "lime": [0, 255, 0],
1039
+ "limegreen": [50, 205, 50],
1040
+ "linen": [250, 240, 230],
1041
+ "magenta": [255, 0, 255],
1042
+ "maroon": [128, 0, 0],
1043
+ "mediumaquamarine": [102, 205, 170],
1044
+ "mediumblue": [0, 0, 205],
1045
+ "mediumorchid": [186, 85, 211],
1046
+ "mediumpurple": [147, 112, 219],
1047
+ "mediumseagreen": [60, 179, 113],
1048
+ "mediumslateblue": [123, 104, 238],
1049
+ "mediumspringgreen": [0, 250, 154],
1050
+ "mediumturquoise": [72, 209, 204],
1051
+ "mediumvioletred": [199, 21, 133],
1052
+ "midnightblue": [25, 25, 112],
1053
+ "mintcream": [245, 255, 250],
1054
+ "mistyrose": [255, 228, 225],
1055
+ "moccasin": [255, 228, 181],
1056
+ "navajowhite": [255, 222, 173],
1057
+ "navy": [0, 0, 128],
1058
+ "oldlace": [253, 245, 230],
1059
+ "olive": [128, 128, 0],
1060
+ "olivedrab": [107, 142, 35],
1061
+ "orange": [255, 165, 0],
1062
+ "orangered": [255, 69, 0],
1063
+ "orchid": [218, 112, 214],
1064
+ "palegoldenrod": [238, 232, 170],
1065
+ "palegreen": [152, 251, 152],
1066
+ "paleturquoise": [175, 238, 238],
1067
+ "palevioletred": [219, 112, 147],
1068
+ "papayawhip": [255, 239, 213],
1069
+ "peachpuff": [255, 218, 185],
1070
+ "peru": [205, 133, 63],
1071
+ "pink": [255, 192, 203],
1072
+ "plum": [221, 160, 221],
1073
+ "powderblue": [176, 224, 230],
1074
+ "purple": [128, 0, 128],
1075
+ "rebeccapurple": [102, 51, 153],
1076
+ "red": [255, 0, 0],
1077
+ "rosybrown": [188, 143, 143],
1078
+ "royalblue": [65, 105, 225],
1079
+ "saddlebrown": [139, 69, 19],
1080
+ "salmon": [250, 128, 114],
1081
+ "sandybrown": [244, 164, 96],
1082
+ "seagreen": [46, 139, 87],
1083
+ "seashell": [255, 245, 238],
1084
+ "sienna": [160, 82, 45],
1085
+ "silver": [192, 192, 192],
1086
+ "skyblue": [135, 206, 235],
1087
+ "slateblue": [106, 90, 205],
1088
+ "slategray": [112, 128, 144],
1089
+ "slategrey": [112, 128, 144],
1090
+ "snow": [255, 250, 250],
1091
+ "springgreen": [0, 255, 127],
1092
+ "steelblue": [70, 130, 180],
1093
+ "tan": [210, 180, 140],
1094
+ "teal": [0, 128, 128],
1095
+ "thistle": [216, 191, 216],
1096
+ "tomato": [255, 99, 71],
1097
+ "turquoise": [64, 224, 208],
1098
+ "violet": [238, 130, 238],
1099
+ "wheat": [245, 222, 179],
1100
+ "white": [255, 255, 255],
1101
+ "whitesmoke": [245, 245, 245],
1102
+ "yellow": [255, 255, 0],
1103
+ "yellowgreen": [154, 205, 50]
1104
+ };
1105
+
1106
+ /***/ })
1107
+
1108
+ /******/ });
1109
+ /************************************************************************/
1110
+ /******/ // The module cache
1111
+ /******/ var __webpack_module_cache__ = {};
1112
+ /******/
1113
+ /******/ // The require function
1114
+ /******/ function __webpack_require__(moduleId) {
1115
+ /******/ // Check if module is in cache
1116
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
1117
+ /******/ if (cachedModule !== undefined) {
1118
+ /******/ return cachedModule.exports;
1119
+ /******/ }
1120
+ /******/ // Create a new module (and put it into the cache)
1121
+ /******/ var module = __webpack_module_cache__[moduleId] = {
1122
+ /******/ // no module.id needed
1123
+ /******/ // no module.loaded needed
1124
+ /******/ exports: {}
1125
+ /******/ };
1126
+ /******/
1127
+ /******/ // Execute the module function
1128
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
1129
+ /******/
1130
+ /******/ // Return the exports of the module
1131
+ /******/ return module.exports;
1132
+ /******/ }
1133
+ /******/
1134
+ /************************************************************************/
1135
+ /******/ /* webpack/runtime/compat get default export */
1136
+ /******/ !function() {
1137
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
1138
+ /******/ __webpack_require__.n = function(module) {
1139
+ /******/ var getter = module && module.__esModule ?
1140
+ /******/ function() { return module['default']; } :
1141
+ /******/ function() { return module; };
1142
+ /******/ __webpack_require__.d(getter, { a: getter });
1143
+ /******/ return getter;
1144
+ /******/ };
1145
+ /******/ }();
1146
+ /******/
1147
+ /******/ /* webpack/runtime/define property getters */
1148
+ /******/ !function() {
1149
+ /******/ // define getter functions for harmony exports
1150
+ /******/ __webpack_require__.d = function(exports, definition) {
1151
+ /******/ for(var key in definition) {
1152
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1153
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1154
+ /******/ }
1155
+ /******/ }
1156
+ /******/ };
1157
+ /******/ }();
1158
+ /******/
1159
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
1160
+ /******/ !function() {
1161
+ /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
1162
+ /******/ }();
1163
+ /******/
1164
+ /******/ /* webpack/runtime/make namespace object */
1165
+ /******/ !function() {
1166
+ /******/ // define __esModule on exports
1167
+ /******/ __webpack_require__.r = function(exports) {
1168
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1169
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1170
+ /******/ }
1171
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
1172
+ /******/ };
1173
+ /******/ }();
1174
+ /******/
1175
+ /************************************************************************/
1176
+ var __webpack_exports__ = {};
1177
+ // This entry need to be wrapped in an IIFE because it need to be in strict mode.
1178
+ !function() {
1179
+ "use strict";
1180
+ // ESM COMPAT FLAG
1181
+ __webpack_require__.r(__webpack_exports__);
1182
+
1183
+ // EXPORTS
1184
+ __webpack_require__.d(__webpack_exports__, {
1185
+ "default": function() { return /* binding */ main; }
1186
+ });
1187
+
1188
+ // NAMESPACE OBJECT: ./src/utils/parsers.ts
1189
+ var parsers_namespaceObject = {};
1190
+ __webpack_require__.r(parsers_namespaceObject);
1191
+ __webpack_require__.d(parsers_namespaceObject, {
1192
+ "fromArray": function() { return fromArray; },
1193
+ "fromColorStr": function() { return fromColorStr; },
1194
+ "fromHSL": function() { return fromHSL; },
1195
+ "fromHWB": function() { return fromHWB; },
1196
+ "fromJson": function() { return fromJson; },
1197
+ "fromRandom": function() { return fromRandom; },
1198
+ "parseCssColorStr": function() { return parseCssColorStr; },
1199
+ "parseHEX": function() { return parseHEX; },
1200
+ "parseHSLA": function() { return parseHSLA; },
1201
+ "parseHWB": function() { return parseHWB; },
1202
+ "parseKeyWord": function() { return parseKeyWord; },
1203
+ "parseRGBA": function() { return parseRGBA; }
1204
+ });
1205
+
1206
+ ;// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js
1207
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1208
+ /******************************************************************************
1209
+ Copyright (c) Microsoft Corporation.
1210
+
1211
+ Permission to use, copy, modify, and/or distribute this software for any
1212
+ purpose with or without fee is hereby granted.
1213
+
1214
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1215
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1216
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1217
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1218
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1219
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1220
+ PERFORMANCE OF THIS SOFTWARE.
1221
+ ***************************************************************************** */
1222
+ /* global Reflect, Promise */
1223
+
1224
+ var _extendStatics = function extendStatics(d, b) {
1225
+ _extendStatics = Object.setPrototypeOf || {
1226
+ __proto__: []
1227
+ } instanceof Array && function (d, b) {
1228
+ d.__proto__ = b;
1229
+ } || function (d, b) {
1230
+ for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
1231
+ };
1232
+ return _extendStatics(d, b);
1233
+ };
1234
+ function __extends(d, b) {
1235
+ if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
1236
+ _extendStatics(d, b);
1237
+ function __() {
1238
+ this.constructor = d;
1239
+ }
1240
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
1241
+ }
1242
+ var _assign = function __assign() {
1243
+ _assign = Object.assign || function __assign(t) {
1244
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
1245
+ s = arguments[i];
1246
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
1247
+ }
1248
+ return t;
1249
+ };
1250
+ return _assign.apply(this, arguments);
1251
+ };
1252
+
1253
+ function __rest(s, e) {
1254
+ var t = {};
1255
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
1256
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
1257
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
1258
+ }
1259
+ return t;
1260
+ }
1261
+ function __decorate(decorators, target, key, desc) {
1262
+ var c = arguments.length,
1263
+ r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
1264
+ d;
1265
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1266
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1267
+ }
1268
+ function __param(paramIndex, decorator) {
1269
+ return function (target, key) {
1270
+ decorator(target, key, paramIndex);
1271
+ };
1272
+ }
1273
+ function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
1274
+ function accept(f) {
1275
+ if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected");
1276
+ return f;
1277
+ }
1278
+ var kind = contextIn.kind,
1279
+ key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
1280
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
1281
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
1282
+ var _,
1283
+ done = false;
1284
+ for (var i = decorators.length - 1; i >= 0; i--) {
1285
+ var context = {};
1286
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
1287
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
1288
+ context.addInitializer = function (f) {
1289
+ if (done) throw new TypeError("Cannot add initializers after decoration has completed");
1290
+ extraInitializers.push(accept(f || null));
1291
+ };
1292
+ var result = (0, decorators[i])(kind === "accessor" ? {
1293
+ get: descriptor.get,
1294
+ set: descriptor.set
1295
+ } : descriptor[key], context);
1296
+ if (kind === "accessor") {
1297
+ if (result === void 0) continue;
1298
+ if (result === null || _typeof(result) !== "object") throw new TypeError("Object expected");
1299
+ if (_ = accept(result.get)) descriptor.get = _;
1300
+ if (_ = accept(result.set)) descriptor.set = _;
1301
+ if (_ = accept(result.init)) initializers.unshift(_);
1302
+ } else if (_ = accept(result)) {
1303
+ if (kind === "field") initializers.unshift(_);else descriptor[key] = _;
1304
+ }
1305
+ }
1306
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
1307
+ done = true;
1308
+ }
1309
+ ;
1310
+ function __runInitializers(thisArg, initializers, value) {
1311
+ var useValue = arguments.length > 2;
1312
+ for (var i = 0; i < initializers.length; i++) {
1313
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
1314
+ }
1315
+ return useValue ? value : void 0;
1316
+ }
1317
+ ;
1318
+ function __propKey(x) {
1319
+ return _typeof(x) === "symbol" ? x : "".concat(x);
1320
+ }
1321
+ ;
1322
+ function __setFunctionName(f, name, prefix) {
1323
+ if (_typeof(name) === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
1324
+ return Object.defineProperty(f, "name", {
1325
+ configurable: true,
1326
+ value: prefix ? "".concat(prefix, " ", name) : name
1327
+ });
1328
+ }
1329
+ ;
1330
+ function __metadata(metadataKey, metadataValue) {
1331
+ if ((typeof Reflect === "undefined" ? "undefined" : _typeof(Reflect)) === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
1332
+ }
1333
+ function __awaiter(thisArg, _arguments, P, generator) {
1334
+ function adopt(value) {
1335
+ return value instanceof P ? value : new P(function (resolve) {
1336
+ resolve(value);
1337
+ });
1338
+ }
1339
+ return new (P || (P = Promise))(function (resolve, reject) {
1340
+ function fulfilled(value) {
1341
+ try {
1342
+ step(generator.next(value));
1343
+ } catch (e) {
1344
+ reject(e);
1345
+ }
1346
+ }
1347
+ function rejected(value) {
1348
+ try {
1349
+ step(generator["throw"](value));
1350
+ } catch (e) {
1351
+ reject(e);
1352
+ }
1353
+ }
1354
+ function step(result) {
1355
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
1356
+ }
1357
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
1358
+ });
1359
+ }
1360
+ function __generator(thisArg, body) {
1361
+ var _ = {
1362
+ label: 0,
1363
+ sent: function sent() {
1364
+ if (t[0] & 1) throw t[1];
1365
+ return t[1];
1366
+ },
1367
+ trys: [],
1368
+ ops: []
1369
+ },
1370
+ f,
1371
+ y,
1372
+ t,
1373
+ g;
1374
+ return g = {
1375
+ next: verb(0),
1376
+ "throw": verb(1),
1377
+ "return": verb(2)
1378
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
1379
+ return this;
1380
+ }), g;
1381
+ function verb(n) {
1382
+ return function (v) {
1383
+ return step([n, v]);
1384
+ };
1385
+ }
1386
+ function step(op) {
1387
+ if (f) throw new TypeError("Generator is already executing.");
1388
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
1389
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
1390
+ if (y = 0, t) op = [op[0] & 2, t.value];
1391
+ switch (op[0]) {
1392
+ case 0:
1393
+ case 1:
1394
+ t = op;
1395
+ break;
1396
+ case 4:
1397
+ _.label++;
1398
+ return {
1399
+ value: op[1],
1400
+ done: false
1401
+ };
1402
+ case 5:
1403
+ _.label++;
1404
+ y = op[1];
1405
+ op = [0];
1406
+ continue;
1407
+ case 7:
1408
+ op = _.ops.pop();
1409
+ _.trys.pop();
1410
+ continue;
1411
+ default:
1412
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
1413
+ _ = 0;
1414
+ continue;
1415
+ }
1416
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
1417
+ _.label = op[1];
1418
+ break;
1419
+ }
1420
+ if (op[0] === 6 && _.label < t[1]) {
1421
+ _.label = t[1];
1422
+ t = op;
1423
+ break;
1424
+ }
1425
+ if (t && _.label < t[2]) {
1426
+ _.label = t[2];
1427
+ _.ops.push(op);
1428
+ break;
1429
+ }
1430
+ if (t[2]) _.ops.pop();
1431
+ _.trys.pop();
1432
+ continue;
1433
+ }
1434
+ op = body.call(thisArg, _);
1435
+ } catch (e) {
1436
+ op = [6, e];
1437
+ y = 0;
1438
+ } finally {
1439
+ f = t = 0;
1440
+ }
1441
+ if (op[0] & 5) throw op[1];
1442
+ return {
1443
+ value: op[0] ? op[1] : void 0,
1444
+ done: true
1445
+ };
1446
+ }
1447
+ }
1448
+ var __createBinding = Object.create ? function (o, m, k, k2) {
1449
+ if (k2 === undefined) k2 = k;
1450
+ var desc = Object.getOwnPropertyDescriptor(m, k);
1451
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
1452
+ desc = {
1453
+ enumerable: true,
1454
+ get: function get() {
1455
+ return m[k];
1456
+ }
1457
+ };
1458
+ }
1459
+ Object.defineProperty(o, k2, desc);
1460
+ } : function (o, m, k, k2) {
1461
+ if (k2 === undefined) k2 = k;
1462
+ o[k2] = m[k];
1463
+ };
1464
+ function __exportStar(m, o) {
1465
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
1466
+ }
1467
+ function __values(o) {
1468
+ var s = typeof Symbol === "function" && Symbol.iterator,
1469
+ m = s && o[s],
1470
+ i = 0;
1471
+ if (m) return m.call(o);
1472
+ if (o && typeof o.length === "number") return {
1473
+ next: function next() {
1474
+ if (o && i >= o.length) o = void 0;
1475
+ return {
1476
+ value: o && o[i++],
1477
+ done: !o
1478
+ };
1479
+ }
1480
+ };
1481
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
1482
+ }
1483
+ function __read(o, n) {
1484
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
1485
+ if (!m) return o;
1486
+ var i = m.call(o),
1487
+ r,
1488
+ ar = [],
1489
+ e;
1490
+ try {
1491
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
1492
+ } catch (error) {
1493
+ e = {
1494
+ error: error
1495
+ };
1496
+ } finally {
1497
+ try {
1498
+ if (r && !r.done && (m = i["return"])) m.call(i);
1499
+ } finally {
1500
+ if (e) throw e.error;
1501
+ }
1502
+ }
1503
+ return ar;
1504
+ }
1505
+
1506
+ /** @deprecated */
1507
+ function __spread() {
1508
+ for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
1509
+ return ar;
1510
+ }
1511
+
1512
+ /** @deprecated */
1513
+ function __spreadArrays() {
1514
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
1515
+ for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];
1516
+ return r;
1517
+ }
1518
+ function __spreadArray(to, from, pack) {
1519
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1520
+ if (ar || !(i in from)) {
1521
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1522
+ ar[i] = from[i];
1523
+ }
1524
+ }
1525
+ return to.concat(ar || Array.prototype.slice.call(from));
1526
+ }
1527
+ function __await(v) {
1528
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
1529
+ }
1530
+ function __asyncGenerator(thisArg, _arguments, generator) {
1531
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
1532
+ var g = generator.apply(thisArg, _arguments || []),
1533
+ i,
1534
+ q = [];
1535
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
1536
+ return this;
1537
+ }, i;
1538
+ function verb(n) {
1539
+ if (g[n]) i[n] = function (v) {
1540
+ return new Promise(function (a, b) {
1541
+ q.push([n, v, a, b]) > 1 || resume(n, v);
1542
+ });
1543
+ };
1544
+ }
1545
+ function resume(n, v) {
1546
+ try {
1547
+ step(g[n](v));
1548
+ } catch (e) {
1549
+ settle(q[0][3], e);
1550
+ }
1551
+ }
1552
+ function step(r) {
1553
+ r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
1554
+ }
1555
+ function fulfill(value) {
1556
+ resume("next", value);
1557
+ }
1558
+ function reject(value) {
1559
+ resume("throw", value);
1560
+ }
1561
+ function settle(f, v) {
1562
+ if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
1563
+ }
1564
+ }
1565
+ function __asyncDelegator(o) {
1566
+ var i, p;
1567
+ return i = {}, verb("next"), verb("throw", function (e) {
1568
+ throw e;
1569
+ }), verb("return"), i[Symbol.iterator] = function () {
1570
+ return this;
1571
+ }, i;
1572
+ function verb(n, f) {
1573
+ i[n] = o[n] ? function (v) {
1574
+ return (p = !p) ? {
1575
+ value: __await(o[n](v)),
1576
+ done: false
1577
+ } : f ? f(v) : v;
1578
+ } : f;
1579
+ }
1580
+ }
1581
+ function __asyncValues(o) {
1582
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
1583
+ var m = o[Symbol.asyncIterator],
1584
+ i;
1585
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
1586
+ return this;
1587
+ }, i);
1588
+ function verb(n) {
1589
+ i[n] = o[n] && function (v) {
1590
+ return new Promise(function (resolve, reject) {
1591
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
1592
+ });
1593
+ };
1594
+ }
1595
+ function settle(resolve, reject, d, v) {
1596
+ Promise.resolve(v).then(function (v) {
1597
+ resolve({
1598
+ value: v,
1599
+ done: d
1600
+ });
1601
+ }, reject);
1602
+ }
1603
+ }
1604
+ function __makeTemplateObject(cooked, raw) {
1605
+ if (Object.defineProperty) {
1606
+ Object.defineProperty(cooked, "raw", {
1607
+ value: raw
1608
+ });
1609
+ } else {
1610
+ cooked.raw = raw;
1611
+ }
1612
+ return cooked;
1613
+ }
1614
+ ;
1615
+ var __setModuleDefault = Object.create ? function (o, v) {
1616
+ Object.defineProperty(o, "default", {
1617
+ enumerable: true,
1618
+ value: v
1619
+ });
1620
+ } : function (o, v) {
1621
+ o["default"] = v;
1622
+ };
1623
+ function __importStar(mod) {
1624
+ if (mod && mod.__esModule) return mod;
1625
+ var result = {};
1626
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
1627
+ __setModuleDefault(result, mod);
1628
+ return result;
1629
+ }
1630
+ function __importDefault(mod) {
1631
+ return mod && mod.__esModule ? mod : {
1632
+ "default": mod
1633
+ };
1634
+ }
1635
+ function __classPrivateFieldGet(receiver, state, kind, f) {
1636
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
1637
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
1638
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
1639
+ }
1640
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
1641
+ if (kind === "m") throw new TypeError("Private method is not writable");
1642
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
1643
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
1644
+ return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
1645
+ }
1646
+ function __classPrivateFieldIn(state, receiver) {
1647
+ if (receiver === null || _typeof(receiver) !== "object" && typeof receiver !== "function") throw new TypeError("Cannot use 'in' operator on non-object");
1648
+ return typeof state === "function" ? receiver === state : state.has(receiver);
1649
+ }
1650
+ /* harmony default export */ var tslib_es6 = ({
1651
+ __extends: __extends,
1652
+ __assign: _assign,
1653
+ __rest: __rest,
1654
+ __decorate: __decorate,
1655
+ __param: __param,
1656
+ __metadata: __metadata,
1657
+ __awaiter: __awaiter,
1658
+ __generator: __generator,
1659
+ __createBinding: __createBinding,
1660
+ __exportStar: __exportStar,
1661
+ __values: __values,
1662
+ __read: __read,
1663
+ __spread: __spread,
1664
+ __spreadArrays: __spreadArrays,
1665
+ __spreadArray: __spreadArray,
1666
+ __await: __await,
1667
+ __asyncGenerator: __asyncGenerator,
1668
+ __asyncDelegator: __asyncDelegator,
1669
+ __asyncValues: __asyncValues,
1670
+ __makeTemplateObject: __makeTemplateObject,
1671
+ __importStar: __importStar,
1672
+ __importDefault: __importDefault,
1673
+ __classPrivateFieldGet: __classPrivateFieldGet,
1674
+ __classPrivateFieldSet: __classPrivateFieldSet,
1675
+ __classPrivateFieldIn: __classPrivateFieldIn
1676
+ });
1677
+ ;// CONCATENATED MODULE: ./src/utils/common.ts
1678
+ var Check = /** @class */ (function () {
1679
+ function Check() {
1680
+ }
1681
+ Check.type = function (type, paramName, value) {
1682
+ var valueType = typeof value;
1683
+ if (valueType !== type) {
1684
+ throw new Error("Expected ".concat(paramName, " to be typeof ").concat(type, ", actual typeof was ").concat(valueType));
1685
+ }
1686
+ };
1687
+ Check.types = function (types, paramName, value) {
1688
+ var valueType = typeof value;
1689
+ var isContained = types.includes(valueType);
1690
+ if (!isContained) {
1691
+ throw new Error("Expected ".concat(paramName, " to be typeof ").concat(types.join('|'), ", actual typeof was ").concat(valueType));
1692
+ }
1693
+ };
1694
+ return Check;
1695
+ }());
1696
+
1697
+ var ColorJson = /** @class */ (function () {
1698
+ function ColorJson() {
1699
+ }
1700
+ return ColorJson;
1701
+ }());
1702
+
1703
+ function defaultValue(v, defaultV) {
1704
+ if (v === undefined || v === null) {
1705
+ return defaultV;
1706
+ }
1707
+ if (isNaN(v) && typeof defaultV === 'number') {
1708
+ return defaultV;
1709
+ }
1710
+ return v;
1711
+ }
1712
+ function limitNumber(min, max, v) {
1713
+ if (v > max) {
1714
+ v = max;
1715
+ }
1716
+ else if (v < min) {
1717
+ v = min;
1718
+ }
1719
+ return v;
1720
+ }
1721
+ function setNumberPrecision(number, precision) {
1722
+ return Number(number.toFixed(precision));
1723
+ }
1724
+
1725
+ ;// CONCATENATED MODULE: ./src/CssColorParser.ts
1726
+ /*
1727
+ * @Descripttion: 颜色解析器
1728
+ * @version: 1.0.0
1729
+ * @Author: roman_123
1730
+ * @Date: 2021-01-19 09:22:11
1731
+ * @LastEditors: Please set LastEditors
1732
+ * @LastEditTime: 2023-05-26 11:20:17
1733
+ */
1734
+
1735
+ var CssColorParser = /** @class */ (function () {
1736
+ function CssColorParser(red, green, blue, alpha) {
1737
+ this.r = 255;
1738
+ this.g = 255;
1739
+ this.b = 255;
1740
+ this.a = 1;
1741
+ this.setColor(red, green, blue, alpha);
1742
+ }
1743
+ /**
1744
+ * 设置颜色
1745
+ * @param red
1746
+ * @param green
1747
+ * @param blue
1748
+ * @param alpha
1749
+ * @example: this.setColor(255,255,255,1)
1750
+ */
1751
+ CssColorParser.prototype.setColor = function (red, green, blue, alpha) {
1752
+ this.r = limitNumber(0, 255, defaultValue(Number(red), 0));
1753
+ this.g = limitNumber(0, 255, defaultValue(Number(green), 0));
1754
+ this.b = limitNumber(0, 255, defaultValue(Number(blue), 0));
1755
+ this.a = limitNumber(0, 1, defaultValue(Number(alpha), 1));
1756
+ };
1757
+ /**
1758
+ * @description: 返回rgba格式的css字符串
1759
+ * @return {*}
1760
+ * @author: roman_123
1761
+ */
1762
+ CssColorParser.prototype.toRGBA = function () {
1763
+ var color = this.toJson();
1764
+ if (color.a === 1) {
1765
+ return "rgb(".concat(color.r, ",").concat(color.g, ",").concat(color.b, ")");
1766
+ }
1767
+ return "rgba(".concat(color.r, ",").concat(color.g, ",").concat(color.b, ",").concat(color.a, ")");
1768
+ };
1769
+ /**
1770
+ * @description: 返回字符串
1771
+ * @return {*}
1772
+ * @author: roman_123
1773
+ */
1774
+ CssColorParser.prototype.toString = function () {
1775
+ return this.toRGBA();
1776
+ };
1777
+ /**
1778
+ * @description: 归一化
1779
+ * @return {*}
1780
+ * @author: roman_123
1781
+ */
1782
+ CssColorParser.prototype.toNormalize = function () {
1783
+ return {
1784
+ r: setNumberPrecision(this.r / 255, 2),
1785
+ g: setNumberPrecision(this.g / 255, 2),
1786
+ b: setNumberPrecision(this.b / 255, 2),
1787
+ a: setNumberPrecision(this.a, 2)
1788
+ };
1789
+ };
1790
+ /**
1791
+ * @description: 返回16进制格式的css字符串
1792
+ * @return {*}
1793
+ * @author: roman_123
1794
+ */
1795
+ CssColorParser.prototype.toHEX = function () {
1796
+ var color = this.toJson();
1797
+ var r = color.r.toString(16);
1798
+ if (r.length < 2) {
1799
+ r = "0".concat(r);
1800
+ }
1801
+ var g = color.g.toString(16);
1802
+ if (g.length < 2) {
1803
+ g = "0".concat(g);
1804
+ }
1805
+ var b = color.b.toString(16);
1806
+ if (b.length < 2) {
1807
+ b = "0".concat(b);
1808
+ }
1809
+ // 由于tojson后a会丢失精度,此处使用this.a
1810
+ if (this.a < 1) {
1811
+ var hexAlpha = parseInt((this.a * 255).toFixed()).toString(16);
1812
+ if (hexAlpha.length < 2) {
1813
+ hexAlpha = "0".concat(hexAlpha);
1814
+ }
1815
+ return "#".concat(r).concat(g).concat(b).concat(hexAlpha);
1816
+ }
1817
+ return "#".concat(r).concat(g).concat(b);
1818
+ };
1819
+ /**
1820
+ * @description: 返回rgba数组
1821
+ * @return {*}
1822
+ * @author: roman_123
1823
+ */
1824
+ CssColorParser.prototype.toArray = function () {
1825
+ var color = this.toJson();
1826
+ return [color.r, color.g, color.b, color.a];
1827
+ };
1828
+ /**
1829
+ * @description: 返回ColorJson
1830
+ * @return {*}
1831
+ * @author: roman_123
1832
+ */
1833
+ CssColorParser.prototype.toJson = function () {
1834
+ return {
1835
+ r: parseInt(this.r.toFixed()),
1836
+ g: parseInt(this.g.toFixed()),
1837
+ b: parseInt(this.b.toFixed()),
1838
+ a: parseFloat(this.a.toFixed(2))
1839
+ };
1840
+ };
1841
+ /**
1842
+ * @description: 拷贝
1843
+ * @return {*}
1844
+ * @author: roman_123
1845
+ */
1846
+ CssColorParser.prototype.clone = function () {
1847
+ return new CssColorParser(this.r, this.g, this.b, this.a);
1848
+ };
1849
+ /**
1850
+ * @description: 比较两个解析对象的数据是否相等
1851
+ * @param {*} color
1852
+ * @return {*}
1853
+ * @author: roman_123
1854
+ */
1855
+ CssColorParser.prototype.equals = function (color) {
1856
+ if (this === color) {
1857
+ return true;
1858
+ }
1859
+ else {
1860
+ return (this.r === color.r &&
1861
+ this.g === color.g &&
1862
+ this.b === color.g &&
1863
+ this.a === color.a);
1864
+ }
1865
+ };
1866
+ return CssColorParser;
1867
+ }());
1868
+ /* harmony default export */ var src_CssColorParser = (CssColorParser);
1869
+
1870
+ ;// CONCATENATED MODULE: ./src/utils/color-tools.ts
1871
+
1872
+ /*
1873
+ * @Author: roman_123
1874
+ * @Description: 部分核心代码修改自cesium
1875
+ * @Date: 2022-11-28 17:32:57
1876
+ * @LastEditTime: 2022-12-06 00:02:21
1877
+ */
1878
+ var CssColorStringParser = /** @class */ (function () {
1879
+ function CssColorStringParser() {
1880
+ }
1881
+ // 去除字符串内所有空格
1882
+ CssColorStringParser.clearStrSpace = function (v) {
1883
+ return v.replace(/\s/g, '');
1884
+ };
1885
+ // 去除字符串两边空格,将中间多个空格合并为一个
1886
+ CssColorStringParser.trimStr = function (v) {
1887
+ v = v.replace(/\s+/g, ' ');
1888
+ return v.trim();
1889
+ };
1890
+ // 解析3位16进制 #fff #fff0
1891
+ CssColorStringParser.parse3BitsHEX = function (v) {
1892
+ var regx = /^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i;
1893
+ var res = regx.exec(v);
1894
+ if (res) {
1895
+ var res4 = defaultValue(res[4], 'f');
1896
+ var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1] + res[1], 16));
1897
+ var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2] + res[2], 16));
1898
+ var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3] + res[3], 16));
1899
+ var a = CssColorStringParser._parsePercent(parseInt(res4 + res4, 16) / 255);
1900
+ return [r, g, b, a];
1901
+ }
1902
+ return null;
1903
+ };
1904
+ // 解析6位16进制 #ffffff #ffffff00
1905
+ CssColorStringParser.parse6BitsHEX = function (v) {
1906
+ var regx = /^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i;
1907
+ var res = regx.exec(v);
1908
+ if (res) {
1909
+ var res4 = defaultValue(res[4], 'ff');
1910
+ var r = CssColorStringParser._parseResStrForRgb(parseInt(res[1], 16));
1911
+ var g = CssColorStringParser._parseResStrForRgb(parseInt(res[2], 16));
1912
+ var b = CssColorStringParser._parseResStrForRgb(parseInt(res[3], 16));
1913
+ var a = CssColorStringParser._parsePercent(parseInt(res4, 16) / 255.0);
1914
+ return [r, g, b, a];
1915
+ }
1916
+ return null;
1917
+ };
1918
+ // 解析rgb rgba rgb(255,255,255) rgba(255,255,255,1) rgba(100%,100%,100%, 1)
1919
+ CssColorStringParser.parseRGBA = function (v) {
1920
+ var regx = /^rgba?\(([0-9.]+%?),([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1921
+ var res = regx.exec(v);
1922
+ if (res) {
1923
+ var r = CssColorStringParser._parseResStrForRgb(res[1]);
1924
+ var g = CssColorStringParser._parseResStrForRgb(res[2]);
1925
+ var b = CssColorStringParser._parseResStrForRgb(res[3]);
1926
+ var a = CssColorStringParser._parsePercent(res[4]);
1927
+ return [r, g, b, a];
1928
+ }
1929
+ return null;
1930
+ };
1931
+ // 解析hsl hsla hsl(360,100%,100%) hsla(360,100%,100%,1)
1932
+ CssColorStringParser.parseHSLA = function (v) {
1933
+ var regx = /^hsla?\(([0-9.]+)(?:deg)?,([0-9.]+%?),([0-9.]+%?)(?:,([0-9.]+%?))?\)$/i;
1934
+ var res = regx.exec(v);
1935
+ if (res) {
1936
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1937
+ var s = CssColorStringParser._parsePercent(res[2]);
1938
+ var l = CssColorStringParser._parsePercent(res[3]);
1939
+ var a = CssColorStringParser._parsePercent(res[4]);
1940
+ return [h, s, l, a];
1941
+ }
1942
+ return null;
1943
+ };
1944
+ // 解析hwb
1945
+ CssColorStringParser.parseHWB = function (v) {
1946
+ var regx = /^hwb\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1947
+ var res = regx.exec(v);
1948
+ if (res) {
1949
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1950
+ var w = CssColorStringParser._parsePercent(res[2]);
1951
+ var b = CssColorStringParser._parsePercent(res[3]);
1952
+ var a = CssColorStringParser._parsePercent(res[4]);
1953
+ return [h, w, b, a];
1954
+ }
1955
+ return null;
1956
+ };
1957
+ // 解析rgb rgb(178 57 57 / 44%) 字符串中存在空格,因此使用清除两侧空格的原始字符串
1958
+ CssColorStringParser.parseRGBA2 = function (v) {
1959
+ var regx = /^rgba?\s?\(\s?([0-9.]+%?)\s?([0-9.]+%?)\s?([0-9.]+%?)(?:\s?\/\s?([0-9.]+%?))?\s?\)$/i;
1960
+ var res = regx.exec(v);
1961
+ if (res) {
1962
+ var r = CssColorStringParser._parseResStrForRgb(res[1]);
1963
+ var g = CssColorStringParser._parseResStrForRgb(res[2]);
1964
+ var b = CssColorStringParser._parseResStrForRgb(res[3]);
1965
+ var a = CssColorStringParser._parsePercent(res[4]);
1966
+ return [r, g, b, a];
1967
+ }
1968
+ return null;
1969
+ };
1970
+ // 解析hsl hsl(215 85% 62% / 1)
1971
+ CssColorStringParser.parseHSLA2 = function (v) {
1972
+ var regx = /^hsla?\s?\(\s?([0-9.]+)(?:deg)?\s([0-9.]+%?)\s([0-9.]+%?)\s?(?:\/\s?([0-9.]+%?))?\s?\)$/i;
1973
+ var res = regx.exec(v);
1974
+ if (res) {
1975
+ var h = CssColorStringParser._parseResStrForHue(res[1]);
1976
+ var s = CssColorStringParser._parsePercent(res[2]);
1977
+ var l = CssColorStringParser._parsePercent(res[3]);
1978
+ var a = CssColorStringParser._parsePercent(res[4]);
1979
+ return [h, s, l, a];
1980
+ }
1981
+ return null;
1982
+ };
1983
+ // 将结果解析为数字
1984
+ CssColorStringParser._parseResStrForRgb = function (v) {
1985
+ if (typeof v === 'string') {
1986
+ v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 / 255 : 1);
1987
+ }
1988
+ if (isNaN(v)) {
1989
+ v = 1;
1990
+ }
1991
+ return limitNumber(0, 255, v);
1992
+ };
1993
+ CssColorStringParser._parseResStrForHue = function (v) {
1994
+ if (typeof v === 'string') {
1995
+ v = parseFloat(v);
1996
+ }
1997
+ if (isNaN(v)) {
1998
+ v = 0;
1999
+ }
2000
+ return limitNumber(0, 360, v);
2001
+ };
2002
+ CssColorStringParser._parsePercent = function (v) {
2003
+ if (typeof v === 'string') {
2004
+ v = parseFloat(v) / ('%' === v.substr(-1) ? 100.0 : 1);
2005
+ }
2006
+ if (isNaN(v)) {
2007
+ v = 1;
2008
+ }
2009
+ return limitNumber(0, 1, v);
2010
+ };
2011
+ return CssColorStringParser;
2012
+ }());
2013
+
2014
+
2015
+ // EXTERNAL MODULE: ./node_modules/color-convert/index.js
2016
+ var color_convert = __webpack_require__(907);
2017
+ var color_convert_default = /*#__PURE__*/__webpack_require__.n(color_convert);
2018
+ ;// CONCATENATED MODULE: ./src/utils/parsers.ts
2019
+
2020
+
2021
+
2022
+
2023
+ function parseKeyWord(v) {
2024
+ var cssStr = CssColorStringParser.clearStrSpace(v);
2025
+ var res = color_convert_default().keyword.rgb(cssStr);
2026
+ return res && fromArray(res);
2027
+ }
2028
+ function parseHEX(v) {
2029
+ var cssStr = CssColorStringParser.clearStrSpace(v);
2030
+ var res = CssColorStringParser.parse3BitsHEX(cssStr);
2031
+ if (!res) {
2032
+ res = CssColorStringParser.parse6BitsHEX(cssStr);
2033
+ }
2034
+ return res && fromArray(res);
2035
+ }
2036
+ function parseRGBA(v) {
2037
+ var cssStr = CssColorStringParser.clearStrSpace(v);
2038
+ var res = CssColorStringParser.parseRGBA(cssStr);
2039
+ if (!res) {
2040
+ var cssStr2 = CssColorStringParser.trimStr(v);
2041
+ res = CssColorStringParser.parseRGBA2(cssStr2);
2042
+ }
2043
+ return res && fromArray(res);
2044
+ }
2045
+ function parseHSLA(v) {
2046
+ var cssStr = CssColorStringParser.clearStrSpace(v);
2047
+ var res = CssColorStringParser.parseHSLA(cssStr);
2048
+ if (!res) {
2049
+ var cssStr2 = CssColorStringParser.trimStr(v);
2050
+ res = CssColorStringParser.parseHSLA2(cssStr2);
2051
+ }
2052
+ return res && fromHSL(res[0], res[1], res[2], res[3]);
2053
+ }
2054
+ function parseHWB(v) {
2055
+ var cssStr2 = CssColorStringParser.trimStr(v);
2056
+ var res = CssColorStringParser.parseHWB(cssStr2);
2057
+ return res && fromHWB(res[0], res[1], res[2], res[3]);
2058
+ }
2059
+ /**
2060
+ * @description: 将css字符串转换为解析对象
2061
+ * @param {string} v
2062
+ * @return {CssColorParser}
2063
+ * @example: parseCssColorStr('rgba(255,255,255,1)')
2064
+ */
2065
+ function parseCssColorStr(v) {
2066
+ Check.type('string', 'color', v);
2067
+ return parseHEX(v) || parseRGBA(v) || parseKeyWord(v) || parseHSLA(v) || parseHWB(v);
2068
+ }
2069
+ /**
2070
+ * **Deprecated method.** Use `parseCssColorStr()` instead.
2071
+ * @description: since 2.0.1
2072
+ * @deprecated
2073
+ * @param {string} v
2074
+ * @return {CssColorParser}
2075
+ * @example: fromColorStr('rgba(255,255,255,1)')
2076
+ */
2077
+ function fromColorStr(v) {
2078
+ Check.type('string', 'color', v);
2079
+ return parseHEX(v) || parseRGBA(v) || parseKeyWord(v) || parseHSLA(v) || parseHWB(v);
2080
+ }
2081
+ /**
2082
+ * @description: 将HSL色彩模式转换为解析对象
2083
+ * @param {number} hue 色相
2084
+ * @param {number} saturation 饱和度
2085
+ * @param {number} lightness 亮度
2086
+ * @param {number} alpha 不透明度
2087
+ * @return {CssColorParser}
2088
+ * @example: fromHSL(0,1,1,1)
2089
+ */
2090
+ function fromHSL(h, s, l, a) {
2091
+ var res = color_convert_default().hsl.rgb(limitNumber(0, 360, h), limitNumber(0, 100, s * 100), limitNumber(0, 100, l * 100));
2092
+ return new src_CssColorParser(res[0], res[1], res[2], defaultValue(Number(a), 1));
2093
+ }
2094
+ /**
2095
+ * @description: 将HWB色彩模式转换为解析对象
2096
+ * @param {number} h 色调
2097
+ * @param {number} w 白度
2098
+ * @param {number} b 黑度
2099
+ * @param {number} a 不透明度
2100
+ * @return {CssColorParser}
2101
+ * @example: fromHSL(0,1,1,1)
2102
+ */
2103
+ function fromHWB(h, w, b, a) {
2104
+ var res = color_convert_default().hwb.rgb(limitNumber(0, 360, h), limitNumber(0, 100, w * 100), limitNumber(0, 100, b * 100));
2105
+ return new src_CssColorParser(res[0], res[1], res[2], defaultValue(Number(a), 1));
2106
+ }
2107
+ /**
2108
+ * @description: 从解析器中产生随机颜色
2109
+ * @return {CssColorParser}
2110
+ * @author: roman_123
2111
+ */
2112
+ function fromRandom(color1, color2) {
2113
+ if (typeof color1 === 'string') {
2114
+ color1 = parseCssColorStr(color1);
2115
+ }
2116
+ if (typeof color2 === 'string') {
2117
+ color2 = parseCssColorStr(color2);
2118
+ }
2119
+ if (!color1 || !color2) {
2120
+ throw new Error('fail to create object from random');
2121
+ }
2122
+ var r = Math.random() * Math.abs(color2.r - color1.r) +
2123
+ Math.min(color1.r, color2.r);
2124
+ var g = Math.random() * Math.abs(color2.g - color1.g) +
2125
+ Math.min(color1.g, color2.g);
2126
+ var b = Math.random() * Math.abs(color2.b - color1.b) +
2127
+ Math.min(color1.b, color2.b);
2128
+ var a = Math.random() * Math.abs(color2.a - color1.a) +
2129
+ Math.min(color1.a, color2.a);
2130
+ return new src_CssColorParser(r, g, b, a);
2131
+ }
2132
+ /**
2133
+ * @description: 将ColorJson格式的json数据转换为解析对象
2134
+ * @param {ColorJson} json
2135
+ * @return {CssColorParser}
2136
+ * @author: roman_123
2137
+ */
2138
+ function fromJson(json) {
2139
+ return new src_CssColorParser(json.r, json.g, json.b, json.a);
2140
+ }
2141
+ /**
2142
+ * @description: 将rgba数组转换为解析对象
2143
+ * @param {Array} color
2144
+ * @return {CssColorParser}
2145
+ * @author: roman_123
2146
+ */
2147
+ function fromArray(color) {
2148
+ return new src_CssColorParser(color[0], color[1], color[2], color[3]);
2149
+ }
2150
+
2151
+ ;// CONCATENATED MODULE: ./src/main.ts
2152
+
2153
+ /*
2154
+ * @Author: roman_123
2155
+ * @Description:
2156
+ * @Date: 2023-05-25 17:45:22
2157
+ * @LastEditTime: 2023-05-26 15:01:18
2158
+ */
2159
+
2160
+
2161
+ /* harmony default export */ var main = (_assign({ CssColorParser: src_CssColorParser }, parsers_namespaceObject));
2162
+
2163
+ }();
2164
+ /******/ return __webpack_exports__;
2165
+ /******/ })()
2166
+ ;
2167
+ });