js.documents 14.4.46 → 14.4.48

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 (67) hide show
  1. package/dist/convert/composition.cjs +9 -4
  2. package/dist/convert/composition.js +9 -4
  3. package/dist/convert/variant-bridges.cjs +2 -1
  4. package/dist/convert/variant-bridges.js +2 -1
  5. package/dist/csv/records.cjs +2 -1
  6. package/dist/csv/records.js +2 -1
  7. package/dist/edit/geometry.cjs +2 -1
  8. package/dist/edit/geometry.js +2 -1
  9. package/dist/edit/odg/svg-path.cjs +2 -1
  10. package/dist/edit/odg/svg-path.js +2 -1
  11. package/dist/edit/ods/cell.cjs +2 -1
  12. package/dist/edit/ods/cell.js +2 -1
  13. package/dist/edit/pdf/util.cjs +2 -1
  14. package/dist/edit/pdf/util.js +2 -1
  15. package/dist/firebird/data.cjs +2 -1
  16. package/dist/firebird/data.js +2 -1
  17. package/dist/firebird/date.cjs +40 -21
  18. package/dist/firebird/date.js +40 -21
  19. package/dist/firebird/reader.cjs +30 -19
  20. package/dist/firebird/reader.js +30 -19
  21. package/dist/hsqldb/binary-script.cjs +5 -4
  22. package/dist/hsqldb/binary-script.js +5 -4
  23. package/dist/hsqldb/cache.cjs +4 -2
  24. package/dist/hsqldb/cache.js +4 -2
  25. package/dist/hsqldb/rowformat.cjs +93 -57
  26. package/dist/hsqldb/rowformat.js +93 -57
  27. package/dist/hsqldb/script.cjs +2 -1
  28. package/dist/hsqldb/script.js +2 -1
  29. package/dist/latex/lower.cjs +2 -1
  30. package/dist/latex/lower.js +2 -1
  31. package/dist/latex/rational.cjs +6 -3
  32. package/dist/latex/rational.js +6 -3
  33. package/dist/layout/cell-typing.cjs +7 -3
  34. package/dist/layout/cell-typing.js +7 -3
  35. package/dist/layout/reconstruct.cjs +17 -15
  36. package/dist/layout/reconstruct.js +17 -15
  37. package/dist/layout/shared.cjs +2 -1
  38. package/dist/layout/shared.js +2 -1
  39. package/dist/layout/sheets.cjs +2 -1
  40. package/dist/layout/sheets.js +2 -1
  41. package/dist/mathml/layout.cjs +11 -5
  42. package/dist/mathml/layout.js +11 -5
  43. package/dist/mathml/length.cjs +12 -10
  44. package/dist/mathml/length.js +12 -10
  45. package/dist/mathml/operators.cjs +7 -3
  46. package/dist/mathml/operators.js +7 -3
  47. package/dist/mathml/variant.cjs +116 -1142
  48. package/dist/mathml/variant.js +116 -1142
  49. package/dist/model/bytes.cjs +9 -16
  50. package/dist/model/bytes.js +9 -16
  51. package/dist/model/geometry.cjs +2 -1
  52. package/dist/model/geometry.js +2 -1
  53. package/dist/odb/read.cjs +10 -2
  54. package/dist/odb/read.js +10 -2
  55. package/dist/svg/paint.cjs +177 -749
  56. package/dist/svg/paint.js +177 -749
  57. package/dist/svg/path.cjs +11 -6
  58. package/dist/svg/path.js +11 -6
  59. package/dist/svg/read.cjs +7 -3
  60. package/dist/svg/read.js +8 -4
  61. package/dist/svg/transform.cjs +11 -7
  62. package/dist/svg/transform.js +11 -7
  63. package/dist/svg/units.cjs +9 -5
  64. package/dist/svg/units.d.cts +2 -1
  65. package/dist/svg/units.d.ts +2 -1
  66. package/dist/svg/units.js +9 -6
  67. package/package.json +12 -12
package/dist/svg/paint.js CHANGED
@@ -1,756 +1,184 @@
1
1
  //#region src/svg/paint.ts
2
- const NAMED_COLORS = {
3
- aliceblue: [
4
- 240,
5
- 248,
6
- 255
7
- ],
8
- antiquewhite: [
9
- 250,
10
- 235,
11
- 215
12
- ],
13
- aqua: [
14
- 0,
15
- 255,
16
- 255
17
- ],
18
- aquamarine: [
19
- 127,
20
- 255,
21
- 212
22
- ],
23
- azure: [
24
- 240,
25
- 255,
26
- 255
27
- ],
28
- beige: [
29
- 245,
30
- 245,
31
- 220
32
- ],
33
- bisque: [
34
- 255,
35
- 228,
36
- 196
37
- ],
38
- black: [
39
- 0,
40
- 0,
41
- 0
42
- ],
43
- blanchedalmond: [
44
- 255,
45
- 235,
46
- 205
47
- ],
48
- blue: [
49
- 0,
50
- 0,
51
- 255
52
- ],
53
- blueviolet: [
54
- 138,
55
- 43,
56
- 226
57
- ],
58
- brown: [
59
- 165,
60
- 42,
61
- 42
62
- ],
63
- burlywood: [
64
- 222,
65
- 184,
66
- 135
67
- ],
68
- cadetblue: [
69
- 95,
70
- 158,
71
- 160
72
- ],
73
- chartreuse: [
74
- 127,
75
- 255,
76
- 0
77
- ],
78
- chocolate: [
79
- 210,
80
- 105,
81
- 30
82
- ],
83
- coral: [
84
- 255,
85
- 127,
86
- 80
87
- ],
88
- cornflowerblue: [
89
- 100,
90
- 149,
91
- 237
92
- ],
93
- cornsilk: [
94
- 255,
95
- 248,
96
- 220
97
- ],
98
- crimson: [
99
- 220,
100
- 20,
101
- 60
102
- ],
103
- cyan: [
104
- 0,
105
- 255,
106
- 255
107
- ],
108
- darkblue: [
109
- 0,
110
- 0,
111
- 139
112
- ],
113
- darkcyan: [
114
- 0,
115
- 139,
116
- 139
117
- ],
118
- darkgoldenrod: [
119
- 184,
120
- 134,
121
- 11
122
- ],
123
- darkgray: [
124
- 169,
125
- 169,
126
- 169
127
- ],
128
- darkgreen: [
129
- 0,
130
- 100,
131
- 0
132
- ],
133
- darkgrey: [
134
- 169,
135
- 169,
136
- 169
137
- ],
138
- darkkhaki: [
139
- 189,
140
- 183,
141
- 107
142
- ],
143
- darkmagenta: [
144
- 139,
145
- 0,
146
- 139
147
- ],
148
- darkolivegreen: [
149
- 85,
150
- 107,
151
- 47
152
- ],
153
- darkorange: [
154
- 255,
155
- 140,
156
- 0
157
- ],
158
- darkorchid: [
159
- 153,
160
- 50,
161
- 204
162
- ],
163
- darkred: [
164
- 139,
165
- 0,
166
- 0
167
- ],
168
- darksalmon: [
169
- 233,
170
- 150,
171
- 122
172
- ],
173
- darkseagreen: [
174
- 143,
175
- 188,
176
- 143
177
- ],
178
- darkslateblue: [
179
- 72,
180
- 61,
181
- 139
182
- ],
183
- darkslategray: [
184
- 47,
185
- 79,
186
- 79
187
- ],
188
- darkslategrey: [
189
- 47,
190
- 79,
191
- 79
192
- ],
193
- darkturquoise: [
194
- 0,
195
- 206,
196
- 209
197
- ],
198
- darkviolet: [
199
- 148,
200
- 0,
201
- 211
202
- ],
203
- deeppink: [
204
- 255,
205
- 20,
206
- 147
207
- ],
208
- deepskyblue: [
209
- 0,
210
- 191,
211
- 255
212
- ],
213
- dimgray: [
214
- 105,
215
- 105,
216
- 105
217
- ],
218
- dimgrey: [
219
- 105,
220
- 105,
221
- 105
222
- ],
223
- dodgerblue: [
224
- 30,
225
- 144,
226
- 255
227
- ],
228
- firebrick: [
229
- 178,
230
- 34,
231
- 34
232
- ],
233
- floralwhite: [
234
- 255,
235
- 250,
236
- 240
237
- ],
238
- forestgreen: [
239
- 34,
240
- 139,
241
- 34
242
- ],
243
- fuchsia: [
244
- 255,
245
- 0,
246
- 255
247
- ],
248
- gainsboro: [
249
- 220,
250
- 220,
251
- 220
252
- ],
253
- ghostwhite: [
254
- 248,
255
- 248,
256
- 255
257
- ],
258
- gold: [
259
- 255,
260
- 215,
261
- 0
262
- ],
263
- goldenrod: [
264
- 218,
265
- 165,
266
- 32
267
- ],
268
- gray: [
269
- 128,
270
- 128,
271
- 128
272
- ],
273
- green: [
274
- 0,
275
- 128,
276
- 0
277
- ],
278
- greenyellow: [
279
- 173,
280
- 255,
281
- 47
282
- ],
283
- grey: [
284
- 128,
285
- 128,
286
- 128
287
- ],
288
- honeydew: [
289
- 240,
290
- 255,
291
- 240
292
- ],
293
- hotpink: [
294
- 255,
295
- 105,
296
- 180
297
- ],
298
- indianred: [
299
- 205,
300
- 92,
301
- 92
302
- ],
303
- indigo: [
304
- 75,
305
- 0,
306
- 130
307
- ],
308
- ivory: [
309
- 255,
310
- 255,
311
- 240
312
- ],
313
- khaki: [
314
- 240,
315
- 230,
316
- 140
317
- ],
318
- lavender: [
319
- 230,
320
- 230,
321
- 250
322
- ],
323
- lavenderblush: [
324
- 255,
325
- 240,
326
- 245
327
- ],
328
- lawngreen: [
329
- 124,
330
- 252,
331
- 0
332
- ],
333
- lemonchiffon: [
334
- 255,
335
- 250,
336
- 205
337
- ],
338
- lightblue: [
339
- 173,
340
- 216,
341
- 230
342
- ],
343
- lightcoral: [
344
- 240,
345
- 128,
346
- 128
347
- ],
348
- lightcyan: [
349
- 224,
350
- 255,
351
- 255
352
- ],
353
- lightgoldenrodyellow: [
354
- 250,
355
- 250,
356
- 210
357
- ],
358
- lightgray: [
359
- 211,
360
- 211,
361
- 211
362
- ],
363
- lightgreen: [
364
- 144,
365
- 238,
366
- 144
367
- ],
368
- lightgrey: [
369
- 211,
370
- 211,
371
- 211
372
- ],
373
- lightpink: [
374
- 255,
375
- 182,
376
- 193
377
- ],
378
- lightsalmon: [
379
- 255,
380
- 160,
381
- 122
382
- ],
383
- lightseagreen: [
384
- 32,
385
- 178,
386
- 170
387
- ],
388
- lightskyblue: [
389
- 135,
390
- 206,
391
- 250
392
- ],
393
- lightslategray: [
394
- 119,
395
- 136,
396
- 153
397
- ],
398
- lightslategrey: [
399
- 119,
400
- 136,
401
- 153
402
- ],
403
- lightsteelblue: [
404
- 176,
405
- 196,
406
- 222
407
- ],
408
- lightyellow: [
409
- 255,
410
- 255,
411
- 224
412
- ],
413
- lime: [
414
- 0,
415
- 255,
416
- 0
417
- ],
418
- limegreen: [
419
- 50,
420
- 205,
421
- 50
422
- ],
423
- linen: [
424
- 250,
425
- 240,
426
- 230
427
- ],
428
- magenta: [
429
- 255,
430
- 0,
431
- 255
432
- ],
433
- maroon: [
434
- 128,
435
- 0,
436
- 0
437
- ],
438
- mediumaquamarine: [
439
- 102,
440
- 205,
441
- 170
442
- ],
443
- mediumblue: [
444
- 0,
445
- 0,
446
- 205
447
- ],
448
- mediumorchid: [
449
- 186,
450
- 85,
451
- 211
452
- ],
453
- mediumpurple: [
454
- 147,
455
- 112,
456
- 219
457
- ],
458
- mediumseagreen: [
459
- 60,
460
- 179,
461
- 113
462
- ],
463
- mediumslateblue: [
464
- 123,
465
- 104,
466
- 238
467
- ],
468
- mediumspringgreen: [
469
- 0,
470
- 250,
471
- 154
472
- ],
473
- mediumturquoise: [
474
- 72,
475
- 209,
476
- 204
477
- ],
478
- mediumvioletred: [
479
- 199,
480
- 21,
481
- 133
482
- ],
483
- midnightblue: [
484
- 25,
485
- 25,
486
- 112
487
- ],
488
- mintcream: [
489
- 245,
490
- 255,
491
- 250
492
- ],
493
- mistyrose: [
494
- 255,
495
- 228,
496
- 225
497
- ],
498
- moccasin: [
499
- 255,
500
- 228,
501
- 181
502
- ],
503
- navajowhite: [
504
- 255,
505
- 222,
506
- 173
507
- ],
508
- navy: [
509
- 0,
510
- 0,
511
- 128
512
- ],
513
- oldlace: [
514
- 253,
515
- 245,
516
- 230
517
- ],
518
- olive: [
519
- 128,
520
- 128,
521
- 0
522
- ],
523
- olivedrab: [
524
- 107,
525
- 142,
526
- 35
527
- ],
528
- orange: [
529
- 255,
530
- 165,
531
- 0
532
- ],
533
- orangered: [
534
- 255,
535
- 69,
536
- 0
537
- ],
538
- orchid: [
539
- 218,
540
- 112,
541
- 214
542
- ],
543
- palegoldenrod: [
544
- 238,
545
- 232,
546
- 170
547
- ],
548
- palegreen: [
549
- 152,
550
- 251,
551
- 152
552
- ],
553
- paleturquoise: [
554
- 175,
555
- 238,
556
- 238
557
- ],
558
- palevioletred: [
559
- 219,
560
- 112,
561
- 147
562
- ],
563
- papayawhip: [
564
- 255,
565
- 239,
566
- 213
567
- ],
568
- peachpuff: [
569
- 255,
570
- 218,
571
- 185
572
- ],
573
- peru: [
574
- 205,
575
- 133,
576
- 63
577
- ],
578
- pink: [
579
- 255,
580
- 192,
581
- 203
582
- ],
583
- plum: [
584
- 221,
585
- 160,
586
- 221
587
- ],
588
- powderblue: [
589
- 176,
590
- 224,
591
- 230
592
- ],
593
- purple: [
594
- 128,
595
- 0,
596
- 128
597
- ],
598
- rebeccapurple: [
599
- 102,
600
- 51,
601
- 153
602
- ],
603
- red: [
604
- 255,
605
- 0,
606
- 0
607
- ],
608
- rosybrown: [
609
- 188,
610
- 143,
611
- 143
612
- ],
613
- royalblue: [
614
- 65,
615
- 105,
616
- 225
617
- ],
618
- saddlebrown: [
619
- 139,
620
- 69,
621
- 19
622
- ],
623
- salmon: [
624
- 250,
625
- 128,
626
- 114
627
- ],
628
- sandybrown: [
629
- 244,
630
- 164,
631
- 96
632
- ],
633
- seagreen: [
634
- 46,
635
- 139,
636
- 87
637
- ],
638
- seashell: [
639
- 255,
640
- 245,
641
- 238
642
- ],
643
- sienna: [
644
- 160,
645
- 82,
646
- 45
647
- ],
648
- silver: [
649
- 192,
650
- 192,
651
- 192
652
- ],
653
- skyblue: [
654
- 135,
655
- 206,
656
- 235
657
- ],
658
- slateblue: [
659
- 106,
660
- 90,
661
- 205
662
- ],
663
- slategray: [
664
- 112,
665
- 128,
666
- 144
667
- ],
668
- slategrey: [
669
- 112,
670
- 128,
671
- 144
672
- ],
673
- snow: [
674
- 255,
675
- 250,
676
- 250
677
- ],
678
- springgreen: [
679
- 0,
680
- 255,
681
- 127
682
- ],
683
- steelblue: [
684
- 70,
685
- 130,
686
- 180
687
- ],
688
- tan: [
689
- 210,
690
- 180,
691
- 140
692
- ],
693
- teal: [
694
- 0,
695
- 128,
696
- 128
697
- ],
698
- thistle: [
699
- 216,
700
- 191,
701
- 216
702
- ],
703
- tomato: [
704
- 255,
705
- 99,
706
- 71
707
- ],
708
- turquoise: [
709
- 64,
710
- 224,
711
- 208
712
- ],
713
- violet: [
714
- 238,
715
- 130,
716
- 238
717
- ],
718
- wheat: [
719
- 245,
720
- 222,
721
- 179
722
- ],
723
- white: [
724
- 255,
725
- 255,
726
- 255
727
- ],
728
- whitesmoke: [
729
- 245,
730
- 245,
731
- 245
732
- ],
733
- yellow: [
734
- 255,
735
- 255,
736
- 0
737
- ],
738
- yellowgreen: [
739
- 154,
740
- 205,
741
- 50
742
- ]
2
+ const NAMED_COLOR_HEX = {
3
+ aliceblue: "#f0f8ff",
4
+ antiquewhite: "#faebd7",
5
+ aqua: "#00ffff",
6
+ aquamarine: "#7fffd4",
7
+ azure: "#f0ffff",
8
+ beige: "#f5f5dc",
9
+ bisque: "#ffe4c4",
10
+ black: "#000000",
11
+ blanchedalmond: "#ffebcd",
12
+ blue: "#0000ff",
13
+ blueviolet: "#8a2be2",
14
+ brown: "#a52a2a",
15
+ burlywood: "#deb887",
16
+ cadetblue: "#5f9ea0",
17
+ chartreuse: "#7fff00",
18
+ chocolate: "#d2691e",
19
+ coral: "#ff7f50",
20
+ cornflowerblue: "#6495ed",
21
+ cornsilk: "#fff8dc",
22
+ crimson: "#dc143c",
23
+ cyan: "#00ffff",
24
+ darkblue: "#00008b",
25
+ darkcyan: "#008b8b",
26
+ darkgoldenrod: "#b8860b",
27
+ darkgray: "#a9a9a9",
28
+ darkgreen: "#006400",
29
+ darkgrey: "#a9a9a9",
30
+ darkkhaki: "#bdb76b",
31
+ darkmagenta: "#8b008b",
32
+ darkolivegreen: "#556b2f",
33
+ darkorange: "#ff8c00",
34
+ darkorchid: "#9932cc",
35
+ darkred: "#8b0000",
36
+ darksalmon: "#e9967a",
37
+ darkseagreen: "#8fbc8f",
38
+ darkslateblue: "#483d8b",
39
+ darkslategray: "#2f4f4f",
40
+ darkslategrey: "#2f4f4f",
41
+ darkturquoise: "#00ced1",
42
+ darkviolet: "#9400d3",
43
+ deeppink: "#ff1493",
44
+ deepskyblue: "#00bfff",
45
+ dimgray: "#696969",
46
+ dimgrey: "#696969",
47
+ dodgerblue: "#1e90ff",
48
+ firebrick: "#b22222",
49
+ floralwhite: "#fffaf0",
50
+ forestgreen: "#228b22",
51
+ fuchsia: "#ff00ff",
52
+ gainsboro: "#dcdcdc",
53
+ ghostwhite: "#f8f8ff",
54
+ gold: "#ffd700",
55
+ goldenrod: "#daa520",
56
+ gray: "#808080",
57
+ green: "#008000",
58
+ greenyellow: "#adff2f",
59
+ grey: "#808080",
60
+ honeydew: "#f0fff0",
61
+ hotpink: "#ff69b4",
62
+ indianred: "#cd5c5c",
63
+ indigo: "#4b0082",
64
+ ivory: "#fffff0",
65
+ khaki: "#f0e68c",
66
+ lavender: "#e6e6fa",
67
+ lavenderblush: "#fff0f5",
68
+ lawngreen: "#7cfc00",
69
+ lemonchiffon: "#fffacd",
70
+ lightblue: "#add8e6",
71
+ lightcoral: "#f08080",
72
+ lightcyan: "#e0ffff",
73
+ lightgoldenrodyellow: "#fafad2",
74
+ lightgray: "#d3d3d3",
75
+ lightgreen: "#90ee90",
76
+ lightgrey: "#d3d3d3",
77
+ lightpink: "#ffb6c1",
78
+ lightsalmon: "#ffa07a",
79
+ lightseagreen: "#20b2aa",
80
+ lightskyblue: "#87cefa",
81
+ lightslategray: "#778899",
82
+ lightslategrey: "#778899",
83
+ lightsteelblue: "#b0c4de",
84
+ lightyellow: "#ffffe0",
85
+ lime: "#00ff00",
86
+ limegreen: "#32cd32",
87
+ linen: "#faf0e6",
88
+ magenta: "#ff00ff",
89
+ maroon: "#800000",
90
+ mediumaquamarine: "#66cdaa",
91
+ mediumblue: "#0000cd",
92
+ mediumorchid: "#ba55d3",
93
+ mediumpurple: "#9370db",
94
+ mediumseagreen: "#3cb371",
95
+ mediumslateblue: "#7b68ee",
96
+ mediumspringgreen: "#00fa9a",
97
+ mediumturquoise: "#48d1cc",
98
+ mediumvioletred: "#c71585",
99
+ midnightblue: "#191970",
100
+ mintcream: "#f5fffa",
101
+ mistyrose: "#ffe4e1",
102
+ moccasin: "#ffe4b5",
103
+ navajowhite: "#ffdead",
104
+ navy: "#000080",
105
+ oldlace: "#fdf5e6",
106
+ olive: "#808000",
107
+ olivedrab: "#6b8e23",
108
+ orange: "#ffa500",
109
+ orangered: "#ff4500",
110
+ orchid: "#da70d6",
111
+ palegoldenrod: "#eee8aa",
112
+ palegreen: "#98fb98",
113
+ paleturquoise: "#afeeee",
114
+ palevioletred: "#db7093",
115
+ papayawhip: "#ffefd5",
116
+ peachpuff: "#ffdab9",
117
+ peru: "#cd853f",
118
+ pink: "#ffc0cb",
119
+ plum: "#dda0dd",
120
+ powderblue: "#b0e0e6",
121
+ purple: "#800080",
122
+ rebeccapurple: "#663399",
123
+ red: "#ff0000",
124
+ rosybrown: "#bc8f8f",
125
+ royalblue: "#4169e1",
126
+ saddlebrown: "#8b4513",
127
+ salmon: "#fa8072",
128
+ sandybrown: "#f4a460",
129
+ seagreen: "#2e8b57",
130
+ seashell: "#fff5ee",
131
+ sienna: "#a0522d",
132
+ silver: "#c0c0c0",
133
+ skyblue: "#87ceeb",
134
+ slateblue: "#6a5acd",
135
+ slategray: "#708090",
136
+ slategrey: "#708090",
137
+ snow: "#fffafa",
138
+ springgreen: "#00ff7f",
139
+ steelblue: "#4682b4",
140
+ tan: "#d2b48c",
141
+ teal: "#008080",
142
+ thistle: "#d8bfd8",
143
+ tomato: "#ff6347",
144
+ turquoise: "#40e0d0",
145
+ violet: "#ee82ee",
146
+ wheat: "#f5deb3",
147
+ white: "#ffffff",
148
+ whitesmoke: "#f5f5f5",
149
+ yellow: "#ffff00",
150
+ yellowgreen: "#9acd32"
743
151
  };
152
+ const HEX_RED_END = 3;
153
+ const HEX_GREEN_END = 5;
154
+ const HEX_BLUE_END = 7;
155
+ function hexTriplet(hex) {
156
+ return [
157
+ Number.parseInt(hex.slice(1, HEX_RED_END), 16),
158
+ Number.parseInt(hex.slice(HEX_RED_END, HEX_GREEN_END), 16),
159
+ Number.parseInt(hex.slice(HEX_GREEN_END, HEX_BLUE_END), 16)
160
+ ];
161
+ }
162
+ const NAMED_COLORS = Object.fromEntries(Object.entries(NAMED_COLOR_HEX).map(([name, hex]) => [name, hexTriplet(hex)]));
163
+ const EIGHT_BIT_CHANNEL_MAX = 255;
744
164
  function from8Bit(r, g, b) {
745
165
  return {
746
- r: r / 255,
747
- g: g / 255,
748
- b: b / 255
166
+ r: r / EIGHT_BIT_CHANNEL_MAX,
167
+ g: g / EIGHT_BIT_CHANNEL_MAX,
168
+ b: b / EIGHT_BIT_CHANNEL_MAX
749
169
  };
750
170
  }
751
171
  const HEX_PATTERN = /^#([0-9a-fA-F]{3,8})$/;
752
172
  const FUNCTION_COLOR_PATTERN = /^rgba?\(\s*([^)]*)\)$/;
753
173
  const SPLIT_COMPONENTS = /[\s,]+/;
174
+ const SHORT_HEX_DIGIT_COUNT = 3;
175
+ const SHORT_HEX_ALPHA_DIGIT_COUNT = 4;
176
+ const LONG_HEX_DIGIT_COUNT = 6;
177
+ const LONG_HEX_ALPHA_DIGIT_COUNT = 8;
178
+ const LONG_HEX_GREEN_END = 4;
179
+ const RGB_COMPONENT_COUNT = 3;
180
+ const RGBA_COMPONENT_COUNT = 4;
181
+ const PERCENT_SCALE = 100;
754
182
  function parseSvgColor(raw) {
755
183
  const value = raw.trim();
756
184
  const named = NAMED_COLORS[value.toLowerCase()];
@@ -758,24 +186,24 @@ function parseSvgColor(raw) {
758
186
  const hex = HEX_PATTERN.exec(value);
759
187
  if (hex !== null) {
760
188
  const digits = hex[1];
761
- if (digits.length === 3 || digits.length === 4) {
189
+ if (digits.length === SHORT_HEX_DIGIT_COUNT || digits.length === SHORT_HEX_ALPHA_DIGIT_COUNT) {
762
190
  const expand = (char) => Number.parseInt(char + char, 16);
763
191
  return from8Bit(expand(digits[0]), expand(digits[1]), expand(digits[2]));
764
192
  }
765
- if (digits.length === 6 || digits.length === 8) return from8Bit(Number.parseInt(digits.slice(0, 2), 16), Number.parseInt(digits.slice(2, 4), 16), Number.parseInt(digits.slice(4, 6), 16));
193
+ if (digits.length === LONG_HEX_DIGIT_COUNT || digits.length === LONG_HEX_ALPHA_DIGIT_COUNT) return from8Bit(Number.parseInt(digits.slice(0, 2), 16), Number.parseInt(digits.slice(2, LONG_HEX_GREEN_END), 16), Number.parseInt(digits.slice(LONG_HEX_GREEN_END, LONG_HEX_DIGIT_COUNT), 16));
766
194
  return;
767
195
  }
768
196
  const fn = FUNCTION_COLOR_PATTERN.exec(value);
769
197
  if (fn !== null) {
770
198
  const parts = fn[1].trim().split(SPLIT_COMPONENTS).filter((part) => part !== "");
771
- if (parts.length !== 3 && parts.length !== 4) return;
199
+ if (parts.length !== RGB_COMPONENT_COUNT && parts.length !== RGBA_COMPONENT_COUNT) return;
772
200
  const channel = (part) => {
773
201
  if (part.endsWith("%")) {
774
202
  const pct = Number(part.slice(0, -1));
775
- return Number.isFinite(pct) ? pct / 100 * 255 : void 0;
203
+ return Number.isFinite(pct) ? pct / PERCENT_SCALE * EIGHT_BIT_CHANNEL_MAX : void 0;
776
204
  }
777
205
  const num = Number(part);
778
- return Number.isFinite(num) ? Math.min(255, Math.max(0, num)) : void 0;
206
+ return Number.isFinite(num) ? Math.min(EIGHT_BIT_CHANNEL_MAX, Math.max(0, num)) : void 0;
779
207
  };
780
208
  const r = channel(parts[0]);
781
209
  const g = channel(parts[1]);