@nebula.js/stardust 4.6.0 → 4.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/esm/dev.js +1632 -33
- package/core/esm/dev.js.map +1 -1
- package/core/esm/index.js +4 -4
- package/core/esm/index.js.map +1 -1
- package/core/package.json +2 -2
- package/dist/stardust.dev.js +1656 -49
- package/dist/stardust.dev.js.map +1 -1
- package/dist/stardust.js +14 -14
- package/dist/stardust.js.map +1 -1
- package/package.json +11 -11
package/dist/stardust.dev.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @nebula.js/stardust v4.6.
|
|
2
|
+
* @nebula.js/stardust v4.6.2
|
|
3
3
|
* Copyright (c) 2023 QlikTech International AB
|
|
4
4
|
* Released under the MIT license.
|
|
5
5
|
*/
|
|
@@ -2363,7 +2363,7 @@
|
|
|
2363
2363
|
return prototype;
|
|
2364
2364
|
}
|
|
2365
2365
|
|
|
2366
|
-
function Color() {}
|
|
2366
|
+
function Color$1() {}
|
|
2367
2367
|
|
|
2368
2368
|
var darker = 0.7;
|
|
2369
2369
|
var brighter = 1 / darker;
|
|
@@ -2530,7 +2530,7 @@
|
|
|
2530
2530
|
yellowgreen: 0x9acd32
|
|
2531
2531
|
};
|
|
2532
2532
|
|
|
2533
|
-
define(Color, color$3, {
|
|
2533
|
+
define(Color$1, color$3, {
|
|
2534
2534
|
copy(channels) {
|
|
2535
2535
|
return Object.assign(new this.constructor, this, channels);
|
|
2536
2536
|
},
|
|
@@ -2566,15 +2566,15 @@
|
|
|
2566
2566
|
format = (format + "").trim().toLowerCase();
|
|
2567
2567
|
return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000
|
|
2568
2568
|
: l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00
|
|
2569
|
-
: l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
|
|
2570
|
-
: l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
|
|
2569
|
+
: l === 8 ? rgba$1(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000
|
|
2570
|
+
: l === 4 ? rgba$1((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000
|
|
2571
2571
|
: null) // invalid hex
|
|
2572
2572
|
: (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
|
|
2573
2573
|
: (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
|
|
2574
|
-
: (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
|
|
2575
|
-
: (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
|
|
2576
|
-
: (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
|
|
2577
|
-
: (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
|
|
2574
|
+
: (m = reRgbaInteger.exec(format)) ? rgba$1(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
|
|
2575
|
+
: (m = reRgbaPercent.exec(format)) ? rgba$1(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
|
|
2576
|
+
: (m = reHslPercent.exec(format)) ? hsla$1(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
|
|
2577
|
+
: (m = reHslaPercent.exec(format)) ? hsla$1(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
|
|
2578
2578
|
: named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins
|
|
2579
2579
|
: format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
|
|
2580
2580
|
: null;
|
|
@@ -2584,19 +2584,19 @@
|
|
|
2584
2584
|
return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
|
|
2585
2585
|
}
|
|
2586
2586
|
|
|
2587
|
-
function rgba(r, g, b, a) {
|
|
2587
|
+
function rgba$1(r, g, b, a) {
|
|
2588
2588
|
if (a <= 0) r = g = b = NaN;
|
|
2589
2589
|
return new Rgb(r, g, b, a);
|
|
2590
2590
|
}
|
|
2591
2591
|
|
|
2592
2592
|
function rgbConvert(o) {
|
|
2593
|
-
if (!(o instanceof Color)) o = color$3(o);
|
|
2593
|
+
if (!(o instanceof Color$1)) o = color$3(o);
|
|
2594
2594
|
if (!o) return new Rgb;
|
|
2595
2595
|
o = o.rgb();
|
|
2596
2596
|
return new Rgb(o.r, o.g, o.b, o.opacity);
|
|
2597
2597
|
}
|
|
2598
2598
|
|
|
2599
|
-
function rgb(r, g, b, opacity) {
|
|
2599
|
+
function rgb$1(r, g, b, opacity) {
|
|
2600
2600
|
return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
|
|
2601
2601
|
}
|
|
2602
2602
|
|
|
@@ -2607,7 +2607,7 @@
|
|
|
2607
2607
|
this.opacity = +opacity;
|
|
2608
2608
|
}
|
|
2609
2609
|
|
|
2610
|
-
define(Rgb, rgb, extend$3(Color, {
|
|
2610
|
+
define(Rgb, rgb$1, extend$3(Color$1, {
|
|
2611
2611
|
brighter(k) {
|
|
2612
2612
|
k = k == null ? brighter : Math.pow(brighter, k);
|
|
2613
2613
|
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
|
@@ -2636,11 +2636,11 @@
|
|
|
2636
2636
|
}));
|
|
2637
2637
|
|
|
2638
2638
|
function rgb_formatHex() {
|
|
2639
|
-
return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
|
|
2639
|
+
return `#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}`;
|
|
2640
2640
|
}
|
|
2641
2641
|
|
|
2642
2642
|
function rgb_formatHex8() {
|
|
2643
|
-
return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
|
|
2643
|
+
return `#${hex$1(this.r)}${hex$1(this.g)}${hex$1(this.b)}${hex$1((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
|
|
2644
2644
|
}
|
|
2645
2645
|
|
|
2646
2646
|
function rgb_formatRgb() {
|
|
@@ -2656,12 +2656,12 @@
|
|
|
2656
2656
|
return Math.max(0, Math.min(255, Math.round(value) || 0));
|
|
2657
2657
|
}
|
|
2658
2658
|
|
|
2659
|
-
function hex(value) {
|
|
2659
|
+
function hex$1(value) {
|
|
2660
2660
|
value = clampi(value);
|
|
2661
2661
|
return (value < 16 ? "0" : "") + value.toString(16);
|
|
2662
2662
|
}
|
|
2663
2663
|
|
|
2664
|
-
function hsla(h, s, l, a) {
|
|
2664
|
+
function hsla$1(h, s, l, a) {
|
|
2665
2665
|
if (a <= 0) h = s = l = NaN;
|
|
2666
2666
|
else if (l <= 0 || l >= 1) h = s = NaN;
|
|
2667
2667
|
else if (s <= 0) h = NaN;
|
|
@@ -2670,7 +2670,7 @@
|
|
|
2670
2670
|
|
|
2671
2671
|
function hslConvert(o) {
|
|
2672
2672
|
if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
|
|
2673
|
-
if (!(o instanceof Color)) o = color$3(o);
|
|
2673
|
+
if (!(o instanceof Color$1)) o = color$3(o);
|
|
2674
2674
|
if (!o) return new Hsl;
|
|
2675
2675
|
if (o instanceof Hsl) return o;
|
|
2676
2676
|
o = o.rgb();
|
|
@@ -2694,7 +2694,7 @@
|
|
|
2694
2694
|
return new Hsl(h, s, l, o.opacity);
|
|
2695
2695
|
}
|
|
2696
2696
|
|
|
2697
|
-
function hsl(h, s, l, opacity) {
|
|
2697
|
+
function hsl$1(h, s, l, opacity) {
|
|
2698
2698
|
return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
|
|
2699
2699
|
}
|
|
2700
2700
|
|
|
@@ -2705,7 +2705,7 @@
|
|
|
2705
2705
|
this.opacity = +opacity;
|
|
2706
2706
|
}
|
|
2707
2707
|
|
|
2708
|
-
define(Hsl, hsl, extend$3(Color, {
|
|
2708
|
+
define(Hsl, hsl$1, extend$3(Color$1, {
|
|
2709
2709
|
brighter(k) {
|
|
2710
2710
|
k = k == null ? brighter : Math.pow(brighter, k);
|
|
2711
2711
|
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
|
@@ -3298,7 +3298,7 @@
|
|
|
3298
3298
|
const g = Math.floor(c1.g + (c2.g - c1.g) * t);
|
|
3299
3299
|
const b = Math.floor(c1.b + (c2.b - c1.b) * t);
|
|
3300
3300
|
const a = Math.floor(c1.opacity + (c2.opacity - c1.opacity) * t);
|
|
3301
|
-
return rgb(r, g, b, a);
|
|
3301
|
+
return rgb$1(r, g, b, a);
|
|
3302
3302
|
}
|
|
3303
3303
|
class ColorScale {
|
|
3304
3304
|
constructor(nanColor) {
|
|
@@ -4540,10 +4540,10 @@
|
|
|
4540
4540
|
useEnhancedEffect$1(() => {
|
|
4541
4541
|
ref.current = fn;
|
|
4542
4542
|
});
|
|
4543
|
-
return reactExports.
|
|
4543
|
+
return reactExports.useRef((...args) =>
|
|
4544
4544
|
// @ts-expect-error hide `this`
|
|
4545
4545
|
// tslint:disable-next-line:ban-comma-operator
|
|
4546
|
-
(0, ref.current)(...args)
|
|
4546
|
+
(0, ref.current)(...args)).current;
|
|
4547
4547
|
}
|
|
4548
4548
|
|
|
4549
4549
|
function useForkRef(...refs) {
|
|
@@ -6952,7 +6952,7 @@
|
|
|
6952
6952
|
}
|
|
6953
6953
|
|
|
6954
6954
|
/**
|
|
6955
|
-
* @mui/styled-engine v5.14.
|
|
6955
|
+
* @mui/styled-engine v5.14.16
|
|
6956
6956
|
*
|
|
6957
6957
|
* @license MIT
|
|
6958
6958
|
* This source code is licensed under the MIT license found in the
|
|
@@ -9533,7 +9533,7 @@
|
|
|
9533
9533
|
}
|
|
9534
9534
|
|
|
9535
9535
|
const _excluded$I = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"];
|
|
9536
|
-
function round$
|
|
9536
|
+
function round$3(value) {
|
|
9537
9537
|
return Math.round(value * 1e5) / 1e5;
|
|
9538
9538
|
}
|
|
9539
9539
|
const caseAllCaps = {
|
|
@@ -9573,7 +9573,7 @@
|
|
|
9573
9573
|
// Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/
|
|
9574
9574
|
lineHeight
|
|
9575
9575
|
}, fontFamily === defaultFontFamily ? {
|
|
9576
|
-
letterSpacing: `${round$
|
|
9576
|
+
letterSpacing: `${round$3(letterSpacing / size)}em`
|
|
9577
9577
|
} : {}, casing, allVariants);
|
|
9578
9578
|
const variants = {
|
|
9579
9579
|
h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),
|
|
@@ -11599,6 +11599,7 @@
|
|
|
11599
11599
|
excluded: '#BEBEBE',
|
|
11600
11600
|
selectedExcluded: '#BEBEBE',
|
|
11601
11601
|
possible: colors.grey100,
|
|
11602
|
+
selectedContrastText: colors.grey100,
|
|
11602
11603
|
mainContrastText: colors.grey100,
|
|
11603
11604
|
alternativeContrastText: colors.grey25,
|
|
11604
11605
|
excludedContrastText: colors.grey25,
|
|
@@ -11666,6 +11667,7 @@
|
|
|
11666
11667
|
excluded: colors.grey10,
|
|
11667
11668
|
selectedExcluded: colors.grey10,
|
|
11668
11669
|
possible: colors.grey80,
|
|
11670
|
+
selectedContrastText: colors.grey100,
|
|
11669
11671
|
mainContrastText: colors.grey100,
|
|
11670
11672
|
alternativeContrastText: colors.grey100,
|
|
11671
11673
|
excludedContrastText: colors.grey100,
|
|
@@ -11818,7 +11820,7 @@
|
|
|
11818
11820
|
return cache[key];
|
|
11819
11821
|
}
|
|
11820
11822
|
|
|
11821
|
-
const NEBULA_VERSION_HASH = "
|
|
11823
|
+
const NEBULA_VERSION_HASH = "ca95" ;
|
|
11822
11824
|
ClassNameGenerator$1.configure(componentName => {
|
|
11823
11825
|
return "njs-".concat(NEBULA_VERSION_HASH, "-").concat(componentName.replace('Mui', ''));
|
|
11824
11826
|
});
|
|
@@ -12079,7 +12081,7 @@
|
|
|
12079
12081
|
const appRef = React.createRef();
|
|
12080
12082
|
const element = document.createElement('div');
|
|
12081
12083
|
element.style.display = 'none';
|
|
12082
|
-
element.setAttribute('data-nebulajs-version', "4.6.
|
|
12084
|
+
element.setAttribute('data-nebulajs-version', "4.6.2" );
|
|
12083
12085
|
element.setAttribute('data-app-id', app.id);
|
|
12084
12086
|
document.body.appendChild(element);
|
|
12085
12087
|
if (context) {
|
|
@@ -12785,7 +12787,7 @@
|
|
|
12785
12787
|
if (!getSlotProps) {
|
|
12786
12788
|
// The simpler case - getSlotProps is not defined, so no internal event handlers are defined,
|
|
12787
12789
|
// so we can simply merge all the props without having to worry about extracting event handlers.
|
|
12788
|
-
const joinedClasses = clsx(
|
|
12790
|
+
const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);
|
|
12789
12791
|
const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);
|
|
12790
12792
|
const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);
|
|
12791
12793
|
if (joinedClasses.length > 0) {
|
|
@@ -13326,7 +13328,7 @@
|
|
|
13326
13328
|
|
|
13327
13329
|
var max = Math.max;
|
|
13328
13330
|
var min = Math.min;
|
|
13329
|
-
var round$
|
|
13331
|
+
var round$2 = Math.round;
|
|
13330
13332
|
|
|
13331
13333
|
function getUAString() {
|
|
13332
13334
|
var uaData = navigator.userAgentData;
|
|
@@ -13358,8 +13360,8 @@
|
|
|
13358
13360
|
var scaleY = 1;
|
|
13359
13361
|
|
|
13360
13362
|
if (includeScale && isHTMLElement$1(element)) {
|
|
13361
|
-
scaleX = element.offsetWidth > 0 ? round$
|
|
13362
|
-
scaleY = element.offsetHeight > 0 ? round$
|
|
13363
|
+
scaleX = element.offsetWidth > 0 ? round$2(clientRect.width) / element.offsetWidth || 1 : 1;
|
|
13364
|
+
scaleY = element.offsetHeight > 0 ? round$2(clientRect.height) / element.offsetHeight || 1 : 1;
|
|
13363
13365
|
}
|
|
13364
13366
|
|
|
13365
13367
|
var _ref = isElement(element) ? getWindow(element) : window,
|
|
@@ -13654,8 +13656,8 @@
|
|
|
13654
13656
|
y = _ref.y;
|
|
13655
13657
|
var dpr = win.devicePixelRatio || 1;
|
|
13656
13658
|
return {
|
|
13657
|
-
x: round$
|
|
13658
|
-
y: round$
|
|
13659
|
+
x: round$2(x * dpr) / dpr || 0,
|
|
13660
|
+
y: round$2(y * dpr) / dpr || 0
|
|
13659
13661
|
};
|
|
13660
13662
|
}
|
|
13661
13663
|
|
|
@@ -14644,8 +14646,8 @@
|
|
|
14644
14646
|
|
|
14645
14647
|
function isElementScaled(element) {
|
|
14646
14648
|
var rect = element.getBoundingClientRect();
|
|
14647
|
-
var scaleX = round$
|
|
14648
|
-
var scaleY = round$
|
|
14649
|
+
var scaleX = round$2(rect.width) / element.offsetWidth || 1;
|
|
14650
|
+
var scaleY = round$2(rect.height) / element.offsetHeight || 1;
|
|
14649
14651
|
return scaleX !== 1 || scaleY !== 1;
|
|
14650
14652
|
} // Returns the composite rect of an element relative to its offsetParent.
|
|
14651
14653
|
// Composite means it takes into account transforms as well as layout.
|
|
@@ -16922,7 +16924,9 @@
|
|
|
16922
16924
|
}, ownerState.edge === 'end' && {
|
|
16923
16925
|
marginRight: ownerState.size === 'small' ? -3 : -12
|
|
16924
16926
|
}));
|
|
16925
|
-
const SwitchBaseInput = styled$1('input'
|
|
16927
|
+
const SwitchBaseInput = styled$1('input', {
|
|
16928
|
+
shouldForwardProp: rootShouldForwardProp
|
|
16929
|
+
})({
|
|
16926
16930
|
cursor: 'inherit',
|
|
16927
16931
|
position: 'absolute',
|
|
16928
16932
|
opacity: 0,
|
|
@@ -17087,7 +17091,7 @@
|
|
|
17087
17091
|
const {
|
|
17088
17092
|
ownerState
|
|
17089
17093
|
} = props;
|
|
17090
|
-
return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];
|
|
17094
|
+
return [styles.root, ownerState.indeterminate && styles.indeterminate, styles[`size${capitalize(ownerState.size)}`], ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];
|
|
17091
17095
|
}
|
|
17092
17096
|
})(({
|
|
17093
17097
|
theme,
|
|
@@ -19848,7 +19852,9 @@
|
|
|
19848
19852
|
|
|
19849
19853
|
var _span;
|
|
19850
19854
|
const _excluded$8 = ["children", "classes", "className", "label", "notched"];
|
|
19851
|
-
const NotchedOutlineRoot$1 = styled$1('fieldset'
|
|
19855
|
+
const NotchedOutlineRoot$1 = styled$1('fieldset', {
|
|
19856
|
+
shouldForwardProp: rootShouldForwardProp
|
|
19857
|
+
})({
|
|
19852
19858
|
textAlign: 'left',
|
|
19853
19859
|
position: 'absolute',
|
|
19854
19860
|
bottom: 0,
|
|
@@ -19864,7 +19870,9 @@
|
|
|
19864
19870
|
overflow: 'hidden',
|
|
19865
19871
|
minWidth: '0%'
|
|
19866
19872
|
});
|
|
19867
|
-
const NotchedOutlineLegend = styled$1('legend'
|
|
19873
|
+
const NotchedOutlineLegend = styled$1('legend', {
|
|
19874
|
+
shouldForwardProp: rootShouldForwardProp
|
|
19875
|
+
})(({
|
|
19868
19876
|
ownerState,
|
|
19869
19877
|
theme
|
|
19870
19878
|
}) => _extends$5({
|
|
@@ -20120,7 +20128,9 @@
|
|
|
20120
20128
|
d: "M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z"
|
|
20121
20129
|
}), 'RadioButtonChecked');
|
|
20122
20130
|
|
|
20123
|
-
const RadioButtonIconRoot = styled$1('span'
|
|
20131
|
+
const RadioButtonIconRoot = styled$1('span', {
|
|
20132
|
+
shouldForwardProp: rootShouldForwardProp
|
|
20133
|
+
})({
|
|
20124
20134
|
position: 'relative',
|
|
20125
20135
|
display: 'flex'
|
|
20126
20136
|
});
|
|
@@ -20210,7 +20220,7 @@
|
|
|
20210
20220
|
const {
|
|
20211
20221
|
ownerState
|
|
20212
20222
|
} = props;
|
|
20213
|
-
return [styles.root, styles[`color${capitalize(ownerState.color)}`]];
|
|
20223
|
+
return [styles.root, ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], styles[`color${capitalize(ownerState.color)}`]];
|
|
20214
20224
|
}
|
|
20215
20225
|
})(({
|
|
20216
20226
|
theme,
|
|
@@ -20306,7 +20316,7 @@
|
|
|
20306
20316
|
var tooltipClasses$1 = tooltipClasses;
|
|
20307
20317
|
|
|
20308
20318
|
const _excluded$5 = ["arrow", "children", "classes", "components", "componentsProps", "describeChild", "disableFocusListener", "disableHoverListener", "disableInteractive", "disableTouchListener", "enterDelay", "enterNextDelay", "enterTouchDelay", "followCursor", "id", "leaveDelay", "leaveTouchDelay", "onClose", "onOpen", "open", "placement", "PopperComponent", "PopperProps", "slotProps", "slots", "title", "TransitionComponent", "TransitionProps"];
|
|
20309
|
-
function round(value) {
|
|
20319
|
+
function round$1(value) {
|
|
20310
20320
|
return Math.round(value * 1e5) / 1e5;
|
|
20311
20321
|
}
|
|
20312
20322
|
const useUtilityClasses = ownerState => {
|
|
@@ -20415,7 +20425,7 @@
|
|
|
20415
20425
|
}, ownerState.touch && {
|
|
20416
20426
|
padding: '8px 16px',
|
|
20417
20427
|
fontSize: theme.typography.pxToRem(14),
|
|
20418
|
-
lineHeight: `${round(16 / 14)}em`,
|
|
20428
|
+
lineHeight: `${round$1(16 / 14)}em`,
|
|
20419
20429
|
fontWeight: theme.typography.fontWeightRegular
|
|
20420
20430
|
}, {
|
|
20421
20431
|
[`.${tooltipClasses$1.popper}[data-popper-placement*="left"] &`]: _extends$5({
|
|
@@ -27349,18 +27359,1614 @@
|
|
|
27349
27359
|
return totalCounts > 0;
|
|
27350
27360
|
}
|
|
27351
27361
|
|
|
27362
|
+
const colorStruct = {
|
|
27363
|
+
aliceblue: {
|
|
27364
|
+
r: 240,
|
|
27365
|
+
g: 248,
|
|
27366
|
+
b: 255
|
|
27367
|
+
},
|
|
27368
|
+
antiquewhite: {
|
|
27369
|
+
r: 250,
|
|
27370
|
+
g: 235,
|
|
27371
|
+
b: 215
|
|
27372
|
+
},
|
|
27373
|
+
aqua: {
|
|
27374
|
+
r: 0,
|
|
27375
|
+
g: 255,
|
|
27376
|
+
b: 255
|
|
27377
|
+
},
|
|
27378
|
+
aquamarine: {
|
|
27379
|
+
r: 127,
|
|
27380
|
+
g: 255,
|
|
27381
|
+
b: 212
|
|
27382
|
+
},
|
|
27383
|
+
azure: {
|
|
27384
|
+
r: 240,
|
|
27385
|
+
g: 255,
|
|
27386
|
+
b: 255
|
|
27387
|
+
},
|
|
27388
|
+
beige: {
|
|
27389
|
+
r: 245,
|
|
27390
|
+
g: 245,
|
|
27391
|
+
b: 220
|
|
27392
|
+
},
|
|
27393
|
+
bisque: {
|
|
27394
|
+
r: 255,
|
|
27395
|
+
g: 228,
|
|
27396
|
+
b: 196
|
|
27397
|
+
},
|
|
27398
|
+
black: {
|
|
27399
|
+
r: 0,
|
|
27400
|
+
g: 0,
|
|
27401
|
+
b: 0
|
|
27402
|
+
},
|
|
27403
|
+
blanchedalmond: {
|
|
27404
|
+
r: 255,
|
|
27405
|
+
g: 235,
|
|
27406
|
+
b: 205
|
|
27407
|
+
},
|
|
27408
|
+
blue: {
|
|
27409
|
+
r: 0,
|
|
27410
|
+
g: 0,
|
|
27411
|
+
b: 255
|
|
27412
|
+
},
|
|
27413
|
+
blueviolet: {
|
|
27414
|
+
r: 138,
|
|
27415
|
+
g: 43,
|
|
27416
|
+
b: 226
|
|
27417
|
+
},
|
|
27418
|
+
brown: {
|
|
27419
|
+
r: 165,
|
|
27420
|
+
g: 42,
|
|
27421
|
+
b: 42
|
|
27422
|
+
},
|
|
27423
|
+
burlywood: {
|
|
27424
|
+
r: 222,
|
|
27425
|
+
g: 184,
|
|
27426
|
+
b: 135
|
|
27427
|
+
},
|
|
27428
|
+
cadetblue: {
|
|
27429
|
+
r: 95,
|
|
27430
|
+
g: 158,
|
|
27431
|
+
b: 160
|
|
27432
|
+
},
|
|
27433
|
+
chartreuse: {
|
|
27434
|
+
r: 127,
|
|
27435
|
+
g: 255,
|
|
27436
|
+
b: 0
|
|
27437
|
+
},
|
|
27438
|
+
chocolate: {
|
|
27439
|
+
r: 210,
|
|
27440
|
+
g: 105,
|
|
27441
|
+
b: 30
|
|
27442
|
+
},
|
|
27443
|
+
coral: {
|
|
27444
|
+
r: 255,
|
|
27445
|
+
g: 127,
|
|
27446
|
+
b: 80
|
|
27447
|
+
},
|
|
27448
|
+
cornflowerblue: {
|
|
27449
|
+
r: 100,
|
|
27450
|
+
g: 149,
|
|
27451
|
+
b: 237
|
|
27452
|
+
},
|
|
27453
|
+
cornsilk: {
|
|
27454
|
+
r: 255,
|
|
27455
|
+
g: 248,
|
|
27456
|
+
b: 220
|
|
27457
|
+
},
|
|
27458
|
+
crimson: {
|
|
27459
|
+
r: 220,
|
|
27460
|
+
g: 20,
|
|
27461
|
+
b: 60
|
|
27462
|
+
},
|
|
27463
|
+
cyan: {
|
|
27464
|
+
r: 0,
|
|
27465
|
+
g: 255,
|
|
27466
|
+
b: 255
|
|
27467
|
+
},
|
|
27468
|
+
darkblue: {
|
|
27469
|
+
r: 0,
|
|
27470
|
+
g: 0,
|
|
27471
|
+
b: 139
|
|
27472
|
+
},
|
|
27473
|
+
darkcyan: {
|
|
27474
|
+
r: 0,
|
|
27475
|
+
g: 139,
|
|
27476
|
+
b: 139
|
|
27477
|
+
},
|
|
27478
|
+
darkgoldenrod: {
|
|
27479
|
+
r: 184,
|
|
27480
|
+
g: 134,
|
|
27481
|
+
b: 11
|
|
27482
|
+
},
|
|
27483
|
+
darkgray: {
|
|
27484
|
+
r: 169,
|
|
27485
|
+
g: 169,
|
|
27486
|
+
b: 169
|
|
27487
|
+
},
|
|
27488
|
+
darkgreen: {
|
|
27489
|
+
r: 0,
|
|
27490
|
+
g: 100,
|
|
27491
|
+
b: 0
|
|
27492
|
+
},
|
|
27493
|
+
darkgrey: {
|
|
27494
|
+
r: 169,
|
|
27495
|
+
g: 169,
|
|
27496
|
+
b: 169
|
|
27497
|
+
},
|
|
27498
|
+
darkkhaki: {
|
|
27499
|
+
r: 189,
|
|
27500
|
+
g: 183,
|
|
27501
|
+
b: 107
|
|
27502
|
+
},
|
|
27503
|
+
darkmagenta: {
|
|
27504
|
+
r: 139,
|
|
27505
|
+
g: 0,
|
|
27506
|
+
b: 139
|
|
27507
|
+
},
|
|
27508
|
+
darkolivegreen: {
|
|
27509
|
+
r: 85,
|
|
27510
|
+
g: 107,
|
|
27511
|
+
b: 47
|
|
27512
|
+
},
|
|
27513
|
+
darkorange: {
|
|
27514
|
+
r: 255,
|
|
27515
|
+
g: 140,
|
|
27516
|
+
b: 0
|
|
27517
|
+
},
|
|
27518
|
+
darkorchid: {
|
|
27519
|
+
r: 153,
|
|
27520
|
+
g: 50,
|
|
27521
|
+
b: 204
|
|
27522
|
+
},
|
|
27523
|
+
darkred: {
|
|
27524
|
+
r: 139,
|
|
27525
|
+
g: 0,
|
|
27526
|
+
b: 0
|
|
27527
|
+
},
|
|
27528
|
+
darksalmon: {
|
|
27529
|
+
r: 233,
|
|
27530
|
+
g: 150,
|
|
27531
|
+
b: 122
|
|
27532
|
+
},
|
|
27533
|
+
darkseagreen: {
|
|
27534
|
+
r: 143,
|
|
27535
|
+
g: 188,
|
|
27536
|
+
b: 143
|
|
27537
|
+
},
|
|
27538
|
+
darkslateblue: {
|
|
27539
|
+
r: 72,
|
|
27540
|
+
g: 61,
|
|
27541
|
+
b: 139
|
|
27542
|
+
},
|
|
27543
|
+
darkslategray: {
|
|
27544
|
+
r: 47,
|
|
27545
|
+
g: 79,
|
|
27546
|
+
b: 79
|
|
27547
|
+
},
|
|
27548
|
+
darkslategrey: {
|
|
27549
|
+
r: 47,
|
|
27550
|
+
g: 79,
|
|
27551
|
+
b: 79
|
|
27552
|
+
},
|
|
27553
|
+
darkturquoise: {
|
|
27554
|
+
r: 0,
|
|
27555
|
+
g: 206,
|
|
27556
|
+
b: 209
|
|
27557
|
+
},
|
|
27558
|
+
darkviolet: {
|
|
27559
|
+
r: 148,
|
|
27560
|
+
g: 0,
|
|
27561
|
+
b: 211
|
|
27562
|
+
},
|
|
27563
|
+
deeppink: {
|
|
27564
|
+
r: 255,
|
|
27565
|
+
g: 20,
|
|
27566
|
+
b: 147
|
|
27567
|
+
},
|
|
27568
|
+
deepskyblue: {
|
|
27569
|
+
r: 0,
|
|
27570
|
+
g: 191,
|
|
27571
|
+
b: 255
|
|
27572
|
+
},
|
|
27573
|
+
dimgray: {
|
|
27574
|
+
r: 105,
|
|
27575
|
+
g: 105,
|
|
27576
|
+
b: 105
|
|
27577
|
+
},
|
|
27578
|
+
dimgrey: {
|
|
27579
|
+
r: 105,
|
|
27580
|
+
g: 105,
|
|
27581
|
+
b: 105
|
|
27582
|
+
},
|
|
27583
|
+
dodgerblue: {
|
|
27584
|
+
r: 30,
|
|
27585
|
+
g: 144,
|
|
27586
|
+
b: 255
|
|
27587
|
+
},
|
|
27588
|
+
firebrick: {
|
|
27589
|
+
r: 178,
|
|
27590
|
+
g: 34,
|
|
27591
|
+
b: 34
|
|
27592
|
+
},
|
|
27593
|
+
floralwhite: {
|
|
27594
|
+
r: 255,
|
|
27595
|
+
g: 250,
|
|
27596
|
+
b: 240
|
|
27597
|
+
},
|
|
27598
|
+
forestgreen: {
|
|
27599
|
+
r: 34,
|
|
27600
|
+
g: 139,
|
|
27601
|
+
b: 34
|
|
27602
|
+
},
|
|
27603
|
+
fuchsia: {
|
|
27604
|
+
r: 255,
|
|
27605
|
+
g: 0,
|
|
27606
|
+
b: 255
|
|
27607
|
+
},
|
|
27608
|
+
gainsboro: {
|
|
27609
|
+
r: 220,
|
|
27610
|
+
g: 220,
|
|
27611
|
+
b: 220
|
|
27612
|
+
},
|
|
27613
|
+
ghostwhite: {
|
|
27614
|
+
r: 248,
|
|
27615
|
+
g: 248,
|
|
27616
|
+
b: 255
|
|
27617
|
+
},
|
|
27618
|
+
gold: {
|
|
27619
|
+
r: 255,
|
|
27620
|
+
g: 215,
|
|
27621
|
+
b: 0
|
|
27622
|
+
},
|
|
27623
|
+
goldenrod: {
|
|
27624
|
+
r: 218,
|
|
27625
|
+
g: 165,
|
|
27626
|
+
b: 32
|
|
27627
|
+
},
|
|
27628
|
+
gray: {
|
|
27629
|
+
r: 128,
|
|
27630
|
+
g: 128,
|
|
27631
|
+
b: 128
|
|
27632
|
+
},
|
|
27633
|
+
green: {
|
|
27634
|
+
r: 0,
|
|
27635
|
+
g: 128,
|
|
27636
|
+
b: 0
|
|
27637
|
+
},
|
|
27638
|
+
greenyellow: {
|
|
27639
|
+
r: 173,
|
|
27640
|
+
g: 255,
|
|
27641
|
+
b: 47
|
|
27642
|
+
},
|
|
27643
|
+
grey: {
|
|
27644
|
+
r: 128,
|
|
27645
|
+
g: 128,
|
|
27646
|
+
b: 128
|
|
27647
|
+
},
|
|
27648
|
+
honeydew: {
|
|
27649
|
+
r: 240,
|
|
27650
|
+
g: 255,
|
|
27651
|
+
b: 240
|
|
27652
|
+
},
|
|
27653
|
+
hotpink: {
|
|
27654
|
+
r: 255,
|
|
27655
|
+
g: 105,
|
|
27656
|
+
b: 180
|
|
27657
|
+
},
|
|
27658
|
+
indianred: {
|
|
27659
|
+
r: 205,
|
|
27660
|
+
g: 92,
|
|
27661
|
+
b: 92
|
|
27662
|
+
},
|
|
27663
|
+
indigo: {
|
|
27664
|
+
r: 75,
|
|
27665
|
+
g: 0,
|
|
27666
|
+
b: 130
|
|
27667
|
+
},
|
|
27668
|
+
ivory: {
|
|
27669
|
+
r: 255,
|
|
27670
|
+
g: 255,
|
|
27671
|
+
b: 240
|
|
27672
|
+
},
|
|
27673
|
+
khaki: {
|
|
27674
|
+
r: 240,
|
|
27675
|
+
g: 230,
|
|
27676
|
+
b: 140
|
|
27677
|
+
},
|
|
27678
|
+
lavender: {
|
|
27679
|
+
r: 230,
|
|
27680
|
+
g: 230,
|
|
27681
|
+
b: 250
|
|
27682
|
+
},
|
|
27683
|
+
lavenderblush: {
|
|
27684
|
+
r: 255,
|
|
27685
|
+
g: 240,
|
|
27686
|
+
b: 245
|
|
27687
|
+
},
|
|
27688
|
+
lawngreen: {
|
|
27689
|
+
r: 124,
|
|
27690
|
+
g: 252,
|
|
27691
|
+
b: 0
|
|
27692
|
+
},
|
|
27693
|
+
lemonchiffon: {
|
|
27694
|
+
r: 255,
|
|
27695
|
+
g: 250,
|
|
27696
|
+
b: 205
|
|
27697
|
+
},
|
|
27698
|
+
lightblue: {
|
|
27699
|
+
r: 173,
|
|
27700
|
+
g: 216,
|
|
27701
|
+
b: 230
|
|
27702
|
+
},
|
|
27703
|
+
lightcoral: {
|
|
27704
|
+
r: 240,
|
|
27705
|
+
g: 128,
|
|
27706
|
+
b: 128
|
|
27707
|
+
},
|
|
27708
|
+
lightcyan: {
|
|
27709
|
+
r: 224,
|
|
27710
|
+
g: 255,
|
|
27711
|
+
b: 255
|
|
27712
|
+
},
|
|
27713
|
+
lightgoldenrodyellow: {
|
|
27714
|
+
r: 250,
|
|
27715
|
+
g: 250,
|
|
27716
|
+
b: 210
|
|
27717
|
+
},
|
|
27718
|
+
lightgray: {
|
|
27719
|
+
r: 211,
|
|
27720
|
+
g: 211,
|
|
27721
|
+
b: 211
|
|
27722
|
+
},
|
|
27723
|
+
lightgreen: {
|
|
27724
|
+
r: 144,
|
|
27725
|
+
g: 238,
|
|
27726
|
+
b: 144
|
|
27727
|
+
},
|
|
27728
|
+
lightgrey: {
|
|
27729
|
+
r: 211,
|
|
27730
|
+
g: 211,
|
|
27731
|
+
b: 211
|
|
27732
|
+
},
|
|
27733
|
+
lightpink: {
|
|
27734
|
+
r: 255,
|
|
27735
|
+
g: 182,
|
|
27736
|
+
b: 193
|
|
27737
|
+
},
|
|
27738
|
+
lightsalmon: {
|
|
27739
|
+
r: 255,
|
|
27740
|
+
g: 160,
|
|
27741
|
+
b: 122
|
|
27742
|
+
},
|
|
27743
|
+
lightseagreen: {
|
|
27744
|
+
r: 32,
|
|
27745
|
+
g: 178,
|
|
27746
|
+
b: 170
|
|
27747
|
+
},
|
|
27748
|
+
lightskyblue: {
|
|
27749
|
+
r: 135,
|
|
27750
|
+
g: 206,
|
|
27751
|
+
b: 250
|
|
27752
|
+
},
|
|
27753
|
+
lightslategray: {
|
|
27754
|
+
r: 119,
|
|
27755
|
+
g: 136,
|
|
27756
|
+
b: 153
|
|
27757
|
+
},
|
|
27758
|
+
lightslategrey: {
|
|
27759
|
+
r: 119,
|
|
27760
|
+
g: 136,
|
|
27761
|
+
b: 153
|
|
27762
|
+
},
|
|
27763
|
+
lightsteelblue: {
|
|
27764
|
+
r: 176,
|
|
27765
|
+
g: 196,
|
|
27766
|
+
b: 222
|
|
27767
|
+
},
|
|
27768
|
+
lightyellow: {
|
|
27769
|
+
r: 255,
|
|
27770
|
+
g: 255,
|
|
27771
|
+
b: 224
|
|
27772
|
+
},
|
|
27773
|
+
lime: {
|
|
27774
|
+
r: 0,
|
|
27775
|
+
g: 255,
|
|
27776
|
+
b: 0
|
|
27777
|
+
},
|
|
27778
|
+
limegreen: {
|
|
27779
|
+
r: 50,
|
|
27780
|
+
g: 205,
|
|
27781
|
+
b: 50
|
|
27782
|
+
},
|
|
27783
|
+
linen: {
|
|
27784
|
+
r: 250,
|
|
27785
|
+
g: 240,
|
|
27786
|
+
b: 230
|
|
27787
|
+
},
|
|
27788
|
+
magenta: {
|
|
27789
|
+
r: 255,
|
|
27790
|
+
g: 0,
|
|
27791
|
+
b: 255
|
|
27792
|
+
},
|
|
27793
|
+
maroon: {
|
|
27794
|
+
r: 128,
|
|
27795
|
+
g: 0,
|
|
27796
|
+
b: 0
|
|
27797
|
+
},
|
|
27798
|
+
mediumaquamarine: {
|
|
27799
|
+
r: 102,
|
|
27800
|
+
g: 205,
|
|
27801
|
+
b: 170
|
|
27802
|
+
},
|
|
27803
|
+
mediumblue: {
|
|
27804
|
+
r: 0,
|
|
27805
|
+
g: 0,
|
|
27806
|
+
b: 205
|
|
27807
|
+
},
|
|
27808
|
+
mediumorchid: {
|
|
27809
|
+
r: 186,
|
|
27810
|
+
g: 85,
|
|
27811
|
+
b: 211
|
|
27812
|
+
},
|
|
27813
|
+
mediumpurple: {
|
|
27814
|
+
r: 147,
|
|
27815
|
+
g: 112,
|
|
27816
|
+
b: 219
|
|
27817
|
+
},
|
|
27818
|
+
mediumseagreen: {
|
|
27819
|
+
r: 60,
|
|
27820
|
+
g: 179,
|
|
27821
|
+
b: 113
|
|
27822
|
+
},
|
|
27823
|
+
mediumslateblue: {
|
|
27824
|
+
r: 123,
|
|
27825
|
+
g: 104,
|
|
27826
|
+
b: 238
|
|
27827
|
+
},
|
|
27828
|
+
mediumspringgreen: {
|
|
27829
|
+
r: 0,
|
|
27830
|
+
g: 250,
|
|
27831
|
+
b: 154
|
|
27832
|
+
},
|
|
27833
|
+
mediumturquoise: {
|
|
27834
|
+
r: 72,
|
|
27835
|
+
g: 209,
|
|
27836
|
+
b: 204
|
|
27837
|
+
},
|
|
27838
|
+
mediumvioletred: {
|
|
27839
|
+
r: 199,
|
|
27840
|
+
g: 21,
|
|
27841
|
+
b: 133
|
|
27842
|
+
},
|
|
27843
|
+
midnightblue: {
|
|
27844
|
+
r: 25,
|
|
27845
|
+
g: 25,
|
|
27846
|
+
b: 112
|
|
27847
|
+
},
|
|
27848
|
+
mintcream: {
|
|
27849
|
+
r: 245,
|
|
27850
|
+
g: 255,
|
|
27851
|
+
b: 250
|
|
27852
|
+
},
|
|
27853
|
+
mistyrose: {
|
|
27854
|
+
r: 255,
|
|
27855
|
+
g: 228,
|
|
27856
|
+
b: 225
|
|
27857
|
+
},
|
|
27858
|
+
moccasin: {
|
|
27859
|
+
r: 255,
|
|
27860
|
+
g: 228,
|
|
27861
|
+
b: 181
|
|
27862
|
+
},
|
|
27863
|
+
navajowhite: {
|
|
27864
|
+
r: 255,
|
|
27865
|
+
g: 222,
|
|
27866
|
+
b: 173
|
|
27867
|
+
},
|
|
27868
|
+
navy: {
|
|
27869
|
+
r: 0,
|
|
27870
|
+
g: 0,
|
|
27871
|
+
b: 128
|
|
27872
|
+
},
|
|
27873
|
+
oldlace: {
|
|
27874
|
+
r: 253,
|
|
27875
|
+
g: 245,
|
|
27876
|
+
b: 230
|
|
27877
|
+
},
|
|
27878
|
+
olive: {
|
|
27879
|
+
r: 128,
|
|
27880
|
+
g: 128,
|
|
27881
|
+
b: 0
|
|
27882
|
+
},
|
|
27883
|
+
olivedrab: {
|
|
27884
|
+
r: 107,
|
|
27885
|
+
g: 142,
|
|
27886
|
+
b: 35
|
|
27887
|
+
},
|
|
27888
|
+
orange: {
|
|
27889
|
+
r: 255,
|
|
27890
|
+
g: 165,
|
|
27891
|
+
b: 0
|
|
27892
|
+
},
|
|
27893
|
+
orangered: {
|
|
27894
|
+
r: 255,
|
|
27895
|
+
g: 69,
|
|
27896
|
+
b: 0
|
|
27897
|
+
},
|
|
27898
|
+
orchid: {
|
|
27899
|
+
r: 218,
|
|
27900
|
+
g: 112,
|
|
27901
|
+
b: 214
|
|
27902
|
+
},
|
|
27903
|
+
palegoldenrod: {
|
|
27904
|
+
r: 238,
|
|
27905
|
+
g: 232,
|
|
27906
|
+
b: 170
|
|
27907
|
+
},
|
|
27908
|
+
palegreen: {
|
|
27909
|
+
r: 152,
|
|
27910
|
+
g: 251,
|
|
27911
|
+
b: 152
|
|
27912
|
+
},
|
|
27913
|
+
paleturquoise: {
|
|
27914
|
+
r: 175,
|
|
27915
|
+
g: 238,
|
|
27916
|
+
b: 238
|
|
27917
|
+
},
|
|
27918
|
+
palevioletred: {
|
|
27919
|
+
r: 219,
|
|
27920
|
+
g: 112,
|
|
27921
|
+
b: 147
|
|
27922
|
+
},
|
|
27923
|
+
papayawhip: {
|
|
27924
|
+
r: 255,
|
|
27925
|
+
g: 239,
|
|
27926
|
+
b: 213
|
|
27927
|
+
},
|
|
27928
|
+
peachpuff: {
|
|
27929
|
+
r: 255,
|
|
27930
|
+
g: 218,
|
|
27931
|
+
b: 185
|
|
27932
|
+
},
|
|
27933
|
+
peru: {
|
|
27934
|
+
r: 205,
|
|
27935
|
+
g: 133,
|
|
27936
|
+
b: 63
|
|
27937
|
+
},
|
|
27938
|
+
pink: {
|
|
27939
|
+
r: 255,
|
|
27940
|
+
g: 192,
|
|
27941
|
+
b: 203
|
|
27942
|
+
},
|
|
27943
|
+
plum: {
|
|
27944
|
+
r: 221,
|
|
27945
|
+
g: 160,
|
|
27946
|
+
b: 221
|
|
27947
|
+
},
|
|
27948
|
+
powderblue: {
|
|
27949
|
+
r: 176,
|
|
27950
|
+
g: 224,
|
|
27951
|
+
b: 230
|
|
27952
|
+
},
|
|
27953
|
+
purple: {
|
|
27954
|
+
r: 128,
|
|
27955
|
+
g: 0,
|
|
27956
|
+
b: 128
|
|
27957
|
+
},
|
|
27958
|
+
red: {
|
|
27959
|
+
r: 255,
|
|
27960
|
+
g: 0,
|
|
27961
|
+
b: 0
|
|
27962
|
+
},
|
|
27963
|
+
rosybrown: {
|
|
27964
|
+
r: 188,
|
|
27965
|
+
g: 143,
|
|
27966
|
+
b: 143
|
|
27967
|
+
},
|
|
27968
|
+
royalblue: {
|
|
27969
|
+
r: 65,
|
|
27970
|
+
g: 105,
|
|
27971
|
+
b: 225
|
|
27972
|
+
},
|
|
27973
|
+
saddlebrown: {
|
|
27974
|
+
r: 139,
|
|
27975
|
+
g: 69,
|
|
27976
|
+
b: 19
|
|
27977
|
+
},
|
|
27978
|
+
salmon: {
|
|
27979
|
+
r: 250,
|
|
27980
|
+
g: 128,
|
|
27981
|
+
b: 114
|
|
27982
|
+
},
|
|
27983
|
+
sandybrown: {
|
|
27984
|
+
r: 244,
|
|
27985
|
+
g: 164,
|
|
27986
|
+
b: 96
|
|
27987
|
+
},
|
|
27988
|
+
seagreen: {
|
|
27989
|
+
r: 46,
|
|
27990
|
+
g: 139,
|
|
27991
|
+
b: 87
|
|
27992
|
+
},
|
|
27993
|
+
seashell: {
|
|
27994
|
+
r: 255,
|
|
27995
|
+
g: 245,
|
|
27996
|
+
b: 238
|
|
27997
|
+
},
|
|
27998
|
+
sienna: {
|
|
27999
|
+
r: 160,
|
|
28000
|
+
g: 82,
|
|
28001
|
+
b: 45
|
|
28002
|
+
},
|
|
28003
|
+
silver: {
|
|
28004
|
+
r: 192,
|
|
28005
|
+
g: 192,
|
|
28006
|
+
b: 192
|
|
28007
|
+
},
|
|
28008
|
+
skyblue: {
|
|
28009
|
+
r: 135,
|
|
28010
|
+
g: 206,
|
|
28011
|
+
b: 235
|
|
28012
|
+
},
|
|
28013
|
+
slateblue: {
|
|
28014
|
+
r: 106,
|
|
28015
|
+
g: 90,
|
|
28016
|
+
b: 205
|
|
28017
|
+
},
|
|
28018
|
+
slategray: {
|
|
28019
|
+
r: 112,
|
|
28020
|
+
g: 128,
|
|
28021
|
+
b: 144
|
|
28022
|
+
},
|
|
28023
|
+
slategrey: {
|
|
28024
|
+
r: 112,
|
|
28025
|
+
g: 128,
|
|
28026
|
+
b: 144
|
|
28027
|
+
},
|
|
28028
|
+
snow: {
|
|
28029
|
+
r: 255,
|
|
28030
|
+
g: 250,
|
|
28031
|
+
b: 250
|
|
28032
|
+
},
|
|
28033
|
+
springgreen: {
|
|
28034
|
+
r: 0,
|
|
28035
|
+
g: 255,
|
|
28036
|
+
b: 127
|
|
28037
|
+
},
|
|
28038
|
+
steelblue: {
|
|
28039
|
+
r: 70,
|
|
28040
|
+
g: 130,
|
|
28041
|
+
b: 180
|
|
28042
|
+
},
|
|
28043
|
+
tan: {
|
|
28044
|
+
r: 210,
|
|
28045
|
+
g: 180,
|
|
28046
|
+
b: 140
|
|
28047
|
+
},
|
|
28048
|
+
teal: {
|
|
28049
|
+
r: 0,
|
|
28050
|
+
g: 128,
|
|
28051
|
+
b: 128
|
|
28052
|
+
},
|
|
28053
|
+
thistle: {
|
|
28054
|
+
r: 216,
|
|
28055
|
+
g: 191,
|
|
28056
|
+
b: 216
|
|
28057
|
+
},
|
|
28058
|
+
tomato: {
|
|
28059
|
+
r: 255,
|
|
28060
|
+
g: 99,
|
|
28061
|
+
b: 71
|
|
28062
|
+
},
|
|
28063
|
+
transparent: {
|
|
28064
|
+
r: 255,
|
|
28065
|
+
g: 255,
|
|
28066
|
+
b: 255,
|
|
28067
|
+
a: 0
|
|
28068
|
+
},
|
|
28069
|
+
turquoise: {
|
|
28070
|
+
r: 64,
|
|
28071
|
+
g: 224,
|
|
28072
|
+
b: 208
|
|
28073
|
+
},
|
|
28074
|
+
violet: {
|
|
28075
|
+
r: 238,
|
|
28076
|
+
g: 130,
|
|
28077
|
+
b: 238
|
|
28078
|
+
},
|
|
28079
|
+
wheat: {
|
|
28080
|
+
r: 245,
|
|
28081
|
+
g: 222,
|
|
28082
|
+
b: 179
|
|
28083
|
+
},
|
|
28084
|
+
white: {
|
|
28085
|
+
r: 255,
|
|
28086
|
+
g: 255,
|
|
28087
|
+
b: 255
|
|
28088
|
+
},
|
|
28089
|
+
whitesmoke: {
|
|
28090
|
+
r: 245,
|
|
28091
|
+
g: 245,
|
|
28092
|
+
b: 245
|
|
28093
|
+
},
|
|
28094
|
+
yellow: {
|
|
28095
|
+
r: 255,
|
|
28096
|
+
g: 255,
|
|
28097
|
+
b: 0
|
|
28098
|
+
},
|
|
28099
|
+
yellowgreen: {
|
|
28100
|
+
r: 154,
|
|
28101
|
+
g: 205,
|
|
28102
|
+
b: 50
|
|
28103
|
+
}
|
|
28104
|
+
};
|
|
28105
|
+
|
|
28106
|
+
/* eslint-disable no-param-reassign */
|
|
28107
|
+
/* eslint-disable camelcase */
|
|
28108
|
+
/* eslint-disable no-nested-ternary */
|
|
28109
|
+
/* eslint-disable no-cond-assign */
|
|
28110
|
+
/* eslint-disable prefer-destructuring */
|
|
28111
|
+
/* eslint-disable no-underscore-dangle */
|
|
28112
|
+
|
|
28113
|
+
|
|
28114
|
+
/**
|
|
28115
|
+
* Module which defines a color object
|
|
28116
|
+
* @private
|
|
28117
|
+
* @exports objects.views/charts/representation/color
|
|
28118
|
+
* @expose module:objects.views/charts/representation/color~Color
|
|
28119
|
+
*/
|
|
28120
|
+
|
|
28121
|
+
// color formats
|
|
28122
|
+
const rgb = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/i;
|
|
28123
|
+
const rgba = /^rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(\d(\.\d+)?)\)$/i;
|
|
28124
|
+
const hex = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i;
|
|
28125
|
+
const hexShort = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i;
|
|
28126
|
+
const hsl = /^hsl\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*\)$/i;
|
|
28127
|
+
const hsla = /^hsla\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*,(\d(\.\d+)?)\)$/i;
|
|
28128
|
+
const {
|
|
28129
|
+
floor
|
|
28130
|
+
} = Math;
|
|
28131
|
+
const {
|
|
28132
|
+
round
|
|
28133
|
+
} = Math;
|
|
28134
|
+
|
|
28135
|
+
/**
|
|
28136
|
+
* @class
|
|
28137
|
+
* @classdesc Class which provides color transformation functionality
|
|
28138
|
+
* @description This is a constructor.
|
|
28139
|
+
* @private This is a constructor.
|
|
28140
|
+
* @param {object} - Parameters to create a color from different notations
|
|
28141
|
+
* @example
|
|
28142
|
+
* // a few ways of instantiating a red color
|
|
28143
|
+
* var red;
|
|
28144
|
+
* red = new Color(255, 0, 0, 1); // rgba as parameters
|
|
28145
|
+
* red = new Color('#ff0000'); // hex
|
|
28146
|
+
* red = new Color('rgb(255,0,0)');//rgb as string
|
|
28147
|
+
* red = new Color('hsl(0, 100, 50)');// hsl as string
|
|
28148
|
+
* red = new Color(16711680);// uint
|
|
28149
|
+
*/
|
|
28150
|
+
class Color {
|
|
28151
|
+
constructor() {
|
|
28152
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28153
|
+
args[_key] = arguments[_key];
|
|
28154
|
+
}
|
|
28155
|
+
let r = 0;
|
|
28156
|
+
let g = 0;
|
|
28157
|
+
let b = 0;
|
|
28158
|
+
let a = 1;
|
|
28159
|
+
let h;
|
|
28160
|
+
let s;
|
|
28161
|
+
let lcs;
|
|
28162
|
+
let l;
|
|
28163
|
+
let v;
|
|
28164
|
+
let c;
|
|
28165
|
+
let h_;
|
|
28166
|
+
let x;
|
|
28167
|
+
let rgb_;
|
|
28168
|
+
let m;
|
|
28169
|
+
let matches;
|
|
28170
|
+
let colorString;
|
|
28171
|
+
this._invalid = false;
|
|
28172
|
+
if (args[0] instanceof Color) {
|
|
28173
|
+
r = args[0]._r;
|
|
28174
|
+
g = args[0]._g;
|
|
28175
|
+
b = args[0]._b;
|
|
28176
|
+
a = args[0]._a;
|
|
28177
|
+
this._invalid = args[0]._invalid;
|
|
28178
|
+
} else if (args.length < 3) {
|
|
28179
|
+
if (typeof args[0] === 'string') {
|
|
28180
|
+
colorString = args[0];
|
|
28181
|
+
if (matches = /^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i.exec(colorString)) {
|
|
28182
|
+
r = parseInt(matches[1], 10);
|
|
28183
|
+
g = parseInt(matches[2], 10);
|
|
28184
|
+
b = parseInt(matches[3], 10);
|
|
28185
|
+
} else if (matches = /^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d(\.\d+)?)\s*\)$/i.exec(colorString)) {
|
|
28186
|
+
// rgba(1, 2, 3, 0.4)
|
|
28187
|
+
r = parseInt(matches[1], 10);
|
|
28188
|
+
g = parseInt(matches[2], 10);
|
|
28189
|
+
b = parseInt(matches[3], 10);
|
|
28190
|
+
a = parseFloat(matches[4]);
|
|
28191
|
+
} else if (matches = /^ARGB\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i.exec(colorString)) {
|
|
28192
|
+
// ARGB(255,255,255,255)
|
|
28193
|
+
a = parseInt(matches[1], 10) / 255;
|
|
28194
|
+
r = parseInt(matches[2], 10);
|
|
28195
|
+
g = parseInt(matches[3], 10);
|
|
28196
|
+
b = parseInt(matches[4], 10);
|
|
28197
|
+
} else if (matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString)) {
|
|
28198
|
+
// #aBc123
|
|
28199
|
+
r = parseInt(matches[1], 16);
|
|
28200
|
+
g = parseInt(matches[2], 16);
|
|
28201
|
+
b = parseInt(matches[3], 16);
|
|
28202
|
+
a = 1;
|
|
28203
|
+
} else if (matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString)) {
|
|
28204
|
+
// #a5F
|
|
28205
|
+
r = parseInt(matches[1] + matches[1], 16);
|
|
28206
|
+
g = parseInt(matches[2] + matches[2], 16);
|
|
28207
|
+
b = parseInt(matches[3] + matches[3], 16);
|
|
28208
|
+
a = 1;
|
|
28209
|
+
} else if (matches = /^hsl\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*\)$/i.exec(colorString)) {
|
|
28210
|
+
// hsl(1, 2, 3)
|
|
28211
|
+
h = parseFloat(matches[1]);
|
|
28212
|
+
s = parseFloat(matches[3]);
|
|
28213
|
+
l = parseFloat(matches[5]);
|
|
28214
|
+
h %= 360;
|
|
28215
|
+
s /= 100;
|
|
28216
|
+
l /= 100;
|
|
28217
|
+
h = h < 0 ? 0 : h > 360 ? 360 : h;
|
|
28218
|
+
s = s < 0 ? 0 : s > 1 ? 1 : s;
|
|
28219
|
+
l = l < 0 ? 0 : l > 1 ? 1 : l;
|
|
28220
|
+
c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;
|
|
28221
|
+
h_ = h / 60;
|
|
28222
|
+
x = c * (1 - Math.abs(h_ % 2 - 1));
|
|
28223
|
+
rgb_ = [];
|
|
28224
|
+
h_ = Math.floor(h_);
|
|
28225
|
+
switch (h_) {
|
|
28226
|
+
case 0:
|
|
28227
|
+
rgb_ = [c, x, 0];
|
|
28228
|
+
break;
|
|
28229
|
+
case 1:
|
|
28230
|
+
rgb_ = [x, c, 0];
|
|
28231
|
+
break;
|
|
28232
|
+
case 2:
|
|
28233
|
+
rgb_ = [0, c, x];
|
|
28234
|
+
break;
|
|
28235
|
+
case 3:
|
|
28236
|
+
rgb_ = [0, x, c];
|
|
28237
|
+
break;
|
|
28238
|
+
case 4:
|
|
28239
|
+
rgb_ = [x, 0, c];
|
|
28240
|
+
break;
|
|
28241
|
+
case 5:
|
|
28242
|
+
rgb_ = [c, 0, x];
|
|
28243
|
+
break;
|
|
28244
|
+
default:
|
|
28245
|
+
rgb_ = [0, 0, 0];
|
|
28246
|
+
}
|
|
28247
|
+
m = l - 0.5 * c;
|
|
28248
|
+
r = rgb_[0] + m;
|
|
28249
|
+
g = rgb_[1] + m;
|
|
28250
|
+
b = rgb_[2] + m;
|
|
28251
|
+
r = round(255 * r);
|
|
28252
|
+
g = round(255 * g);
|
|
28253
|
+
b = round(255 * b);
|
|
28254
|
+
a = 1.0;
|
|
28255
|
+
} else if (matches = /^hsla\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*,(\d(\.\d+)?)\)$/i.exec(colorString)) {
|
|
28256
|
+
// hsla(1,2,3,0.4)
|
|
28257
|
+
h = parseFloat(matches[1]);
|
|
28258
|
+
s = parseFloat(matches[3]);
|
|
28259
|
+
l = parseFloat(matches[5]);
|
|
28260
|
+
a = parseFloat(matches[7]);
|
|
28261
|
+
h %= 360;
|
|
28262
|
+
s /= 100;
|
|
28263
|
+
l /= 100;
|
|
28264
|
+
h = h < 0 ? 0 : h > 360 ? 360 : h;
|
|
28265
|
+
s = s < 0 ? 0 : s > 1 ? 1 : s;
|
|
28266
|
+
l = l < 0 ? 0 : l > 1 ? 1 : l;
|
|
28267
|
+
c = l <= 0.5 ? 2 * l * s : (2 - 2 * l) * s;
|
|
28268
|
+
h_ = h / 60;
|
|
28269
|
+
x = c * (1 - Math.abs(h_ % 2 - 1));
|
|
28270
|
+
rgb_ = [];
|
|
28271
|
+
h_ = Math.floor(h_);
|
|
28272
|
+
switch (h_) {
|
|
28273
|
+
case 0:
|
|
28274
|
+
rgb_ = [c, x, 0];
|
|
28275
|
+
break;
|
|
28276
|
+
case 1:
|
|
28277
|
+
rgb_ = [x, c, 0];
|
|
28278
|
+
break;
|
|
28279
|
+
case 2:
|
|
28280
|
+
rgb_ = [0, c, x];
|
|
28281
|
+
break;
|
|
28282
|
+
case 3:
|
|
28283
|
+
rgb_ = [0, x, c];
|
|
28284
|
+
break;
|
|
28285
|
+
case 4:
|
|
28286
|
+
rgb_ = [x, 0, c];
|
|
28287
|
+
break;
|
|
28288
|
+
case 5:
|
|
28289
|
+
rgb_ = [c, 0, x];
|
|
28290
|
+
break;
|
|
28291
|
+
default:
|
|
28292
|
+
rgb_ = [0, 0, 0];
|
|
28293
|
+
}
|
|
28294
|
+
m = l - 0.5 * c;
|
|
28295
|
+
r = rgb_[0] + m;
|
|
28296
|
+
g = rgb_[1] + m;
|
|
28297
|
+
b = rgb_[2] + m;
|
|
28298
|
+
r = round(255 * r);
|
|
28299
|
+
g = round(255 * g);
|
|
28300
|
+
b = round(255 * b);
|
|
28301
|
+
} else if (matches = /^hsv\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*\)$/i.exec(colorString)) {
|
|
28302
|
+
// hsv(1, 2, 3) {
|
|
28303
|
+
h = parseFloat(matches[1]);
|
|
28304
|
+
s = parseFloat(matches[3]);
|
|
28305
|
+
v = parseFloat(matches[5]);
|
|
28306
|
+
h %= 360;
|
|
28307
|
+
s /= 100;
|
|
28308
|
+
v /= 100;
|
|
28309
|
+
h = h < 0 ? 0 : h > 360 ? 360 : h;
|
|
28310
|
+
s = s < 0 ? 0 : s > 1 ? 1 : s;
|
|
28311
|
+
v = v < 0 ? 0 : v > 1 ? 1 : v;
|
|
28312
|
+
c = v * s;
|
|
28313
|
+
h_ = h / 60;
|
|
28314
|
+
x = c * (1 - Math.abs(h_ % 2 - 1));
|
|
28315
|
+
rgb_ = [];
|
|
28316
|
+
h_ = Math.floor(h_);
|
|
28317
|
+
switch (h_) {
|
|
28318
|
+
case 0:
|
|
28319
|
+
rgb_ = [c, x, 0];
|
|
28320
|
+
break;
|
|
28321
|
+
case 1:
|
|
28322
|
+
rgb_ = [x, c, 0];
|
|
28323
|
+
break;
|
|
28324
|
+
case 2:
|
|
28325
|
+
rgb_ = [0, c, x];
|
|
28326
|
+
break;
|
|
28327
|
+
case 3:
|
|
28328
|
+
rgb_ = [0, x, c];
|
|
28329
|
+
break;
|
|
28330
|
+
case 4:
|
|
28331
|
+
rgb_ = [x, 0, c];
|
|
28332
|
+
break;
|
|
28333
|
+
case 5:
|
|
28334
|
+
rgb_ = [c, 0, x];
|
|
28335
|
+
break;
|
|
28336
|
+
default:
|
|
28337
|
+
rgb_ = [0, 0, 0];
|
|
28338
|
+
}
|
|
28339
|
+
m = v - c;
|
|
28340
|
+
r = rgb_[0] + m;
|
|
28341
|
+
g = rgb_[1] + m;
|
|
28342
|
+
b = rgb_[2] + m;
|
|
28343
|
+
r = round(255 * r);
|
|
28344
|
+
g = round(255 * g);
|
|
28345
|
+
b = round(255 * b);
|
|
28346
|
+
a = 1.0;
|
|
28347
|
+
} else if (colorStruct[colorString.toLowerCase()]) {
|
|
28348
|
+
lcs = colorString.toLowerCase();
|
|
28349
|
+
r = colorStruct[lcs].r;
|
|
28350
|
+
g = colorStruct[lcs].g;
|
|
28351
|
+
b = colorStruct[lcs].b;
|
|
28352
|
+
a = typeof colorStruct[lcs].a === 'number' ? colorStruct[lcs].a : 1.0;
|
|
28353
|
+
} else {
|
|
28354
|
+
this._invalid = true;
|
|
28355
|
+
}
|
|
28356
|
+
} else if (typeof args[0] === 'number' && args[0] >= 0 && args[1] === 'argb') {
|
|
28357
|
+
a = (0xff000000 & args[0]) >>> 24;
|
|
28358
|
+
a /= 255;
|
|
28359
|
+
r = (0xff0000 & args[0]) >> 16;
|
|
28360
|
+
g = (0x00ff00 & args[0]) >> 8;
|
|
28361
|
+
b = 0x0000ff & args[0];
|
|
28362
|
+
} else if (typeof args[0] === 'number' && args[0] >= 0) {
|
|
28363
|
+
r = (0xff0000 & args[0]) >> 16;
|
|
28364
|
+
g = (0x00ff00 & args[0]) >> 8;
|
|
28365
|
+
b = 0x0000ff & args[0];
|
|
28366
|
+
} else {
|
|
28367
|
+
this._invalid = true;
|
|
28368
|
+
}
|
|
28369
|
+
} else if (args.length >= 3) {
|
|
28370
|
+
r = args[0];
|
|
28371
|
+
g = args[1];
|
|
28372
|
+
b = args[2];
|
|
28373
|
+
a = arguments.length >= 4 ? args[3] : 1;
|
|
28374
|
+
} else {
|
|
28375
|
+
this._invalid = true;
|
|
28376
|
+
}
|
|
28377
|
+
if (Number.isNaN(+r + g + b + a)) {
|
|
28378
|
+
this._invalid = true;
|
|
28379
|
+
}
|
|
28380
|
+
this._r = floor(r);
|
|
28381
|
+
this._g = floor(g);
|
|
28382
|
+
this._b = floor(b);
|
|
28383
|
+
this._a = a;
|
|
28384
|
+
|
|
28385
|
+
// object to cache string representations in various color spaces
|
|
28386
|
+
this._spaces = {};
|
|
28387
|
+
}
|
|
28388
|
+
isInvalid() {
|
|
28389
|
+
return this._invalid;
|
|
28390
|
+
}
|
|
28391
|
+
|
|
28392
|
+
/**
|
|
28393
|
+
* Sets alpha value of color
|
|
28394
|
+
* @private
|
|
28395
|
+
* @param {number} a - Alpha value of the color
|
|
28396
|
+
*/
|
|
28397
|
+
setAlpha(a) {
|
|
28398
|
+
this._a = a;
|
|
28399
|
+
this._spaces = {};
|
|
28400
|
+
}
|
|
28401
|
+
|
|
28402
|
+
/**
|
|
28403
|
+
* Gets the alpha value of this color
|
|
28404
|
+
* @private
|
|
28405
|
+
* @returns {number}
|
|
28406
|
+
*/
|
|
28407
|
+
getAlpha() {
|
|
28408
|
+
return this._a;
|
|
28409
|
+
}
|
|
28410
|
+
|
|
28411
|
+
/**
|
|
28412
|
+
* Returns an rgb string representation of this color.
|
|
28413
|
+
* @private
|
|
28414
|
+
* @return {string} An rgb string representation of this color
|
|
28415
|
+
*/
|
|
28416
|
+
toRGB() {
|
|
28417
|
+
if (!this._spaces.rgb) {
|
|
28418
|
+
this._spaces.rgb = Color.toRGB(this);
|
|
28419
|
+
}
|
|
28420
|
+
return this._spaces.rgb;
|
|
28421
|
+
}
|
|
28422
|
+
|
|
28423
|
+
/**
|
|
28424
|
+
* Returns an rgba string representation of this color.
|
|
28425
|
+
* @private
|
|
28426
|
+
* @return {string} An rgba string representation of this color.
|
|
28427
|
+
*/
|
|
28428
|
+
toRGBA() {
|
|
28429
|
+
if (!this._spaces.rgba) {
|
|
28430
|
+
this._spaces.rgba = Color.toRGBA(this);
|
|
28431
|
+
}
|
|
28432
|
+
return this._spaces.rgba;
|
|
28433
|
+
}
|
|
28434
|
+
toString() {
|
|
28435
|
+
if (!this._spaces.rgb) {
|
|
28436
|
+
this._spaces.rgb = Color.toRGB(this);
|
|
28437
|
+
}
|
|
28438
|
+
return this._spaces.rgb;
|
|
28439
|
+
}
|
|
28440
|
+
|
|
28441
|
+
/**
|
|
28442
|
+
* Returns a hex string representation of this color.
|
|
28443
|
+
* @private
|
|
28444
|
+
* @return {string}
|
|
28445
|
+
*/
|
|
28446
|
+
toHex() {
|
|
28447
|
+
if (!this._spaces.hex) {
|
|
28448
|
+
this._spaces.hex = Color.toHex(this);
|
|
28449
|
+
}
|
|
28450
|
+
return this._spaces.hex;
|
|
28451
|
+
}
|
|
28452
|
+
|
|
28453
|
+
/**
|
|
28454
|
+
* Returns a hsl string representation of this color using "bi-hexcone" model for lightness
|
|
28455
|
+
* @private
|
|
28456
|
+
* @param {boolean} luma - Whether to use luma calculation
|
|
28457
|
+
* @return {string} In format hsl(0,0,0)
|
|
28458
|
+
*/
|
|
28459
|
+
toHSL(luma) {
|
|
28460
|
+
if (!this._spaces.hsl) {
|
|
28461
|
+
this._spaces.hsl = Color.toHSL(this, luma);
|
|
28462
|
+
}
|
|
28463
|
+
return this._spaces.hsl;
|
|
28464
|
+
}
|
|
28465
|
+
|
|
28466
|
+
/**
|
|
28467
|
+
* Returns a hsla string representation of this color using "bi-hexcone" model for lightness
|
|
28468
|
+
* @private
|
|
28469
|
+
* @param {boolean} luma - Whether to use luma calculation
|
|
28470
|
+
* @return {string} In format hsla(0,0,0,0)
|
|
28471
|
+
*/
|
|
28472
|
+
toHSLA(luma) {
|
|
28473
|
+
if (!this._spaces.hsla) {
|
|
28474
|
+
this._spaces.hsla = Color.toHSLA(this, luma);
|
|
28475
|
+
}
|
|
28476
|
+
return this._spaces.hsla;
|
|
28477
|
+
}
|
|
28478
|
+
|
|
28479
|
+
/**
|
|
28480
|
+
* Return the color components in hsv space using "hexcone" model for value (lightness)
|
|
28481
|
+
* @private
|
|
28482
|
+
* @param {Color|string} c
|
|
28483
|
+
* @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}
|
|
28484
|
+
*/
|
|
28485
|
+
toHSV() {
|
|
28486
|
+
const hsvComp = this.toHSVComponents();
|
|
28487
|
+
return "hsv(".concat(hsvComp.h, ",").concat(hsvComp.s, ",").concat(hsvComp.v, ")");
|
|
28488
|
+
}
|
|
28489
|
+
|
|
28490
|
+
/**
|
|
28491
|
+
* Return the color components in hsv space using "hexcone" model for value (lightness)
|
|
28492
|
+
* @private
|
|
28493
|
+
* @param {Color|string} c
|
|
28494
|
+
* @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}
|
|
28495
|
+
*/
|
|
28496
|
+
toHSVComponents() {
|
|
28497
|
+
if (!this._spaces.hsvComp) {
|
|
28498
|
+
this._spaces.hsvComp = Color.toHSVComponents(this);
|
|
28499
|
+
}
|
|
28500
|
+
return this._spaces.hsvComp;
|
|
28501
|
+
}
|
|
28502
|
+
|
|
28503
|
+
/**
|
|
28504
|
+
* Returns a uint representation of this color
|
|
28505
|
+
* @private
|
|
28506
|
+
* @return {number}
|
|
28507
|
+
*/
|
|
28508
|
+
toNumber() {
|
|
28509
|
+
if (!this._spaces.num) {
|
|
28510
|
+
this._spaces.num = Color.toNumber(this);
|
|
28511
|
+
}
|
|
28512
|
+
return this._spaces.num;
|
|
28513
|
+
}
|
|
28514
|
+
|
|
28515
|
+
/**
|
|
28516
|
+
* Checks if this color is perceived as dark.
|
|
28517
|
+
* @private
|
|
28518
|
+
* @return {string} True if the luminance is below 160, false otherwise.
|
|
28519
|
+
*/
|
|
28520
|
+
isDark() {
|
|
28521
|
+
return this.isInvalid() || this.getLuminance() < 125; // luminace calc option #2
|
|
28522
|
+
// return this.getLuminance() < 160; //luminace calc option #3
|
|
28523
|
+
}
|
|
28524
|
+
|
|
28525
|
+
/**
|
|
28526
|
+
* Calculates the perceived luminance of the color.
|
|
28527
|
+
* @private
|
|
28528
|
+
* @return {number} A value in the range 0-255 where a low value is considered dark and vice versa.
|
|
28529
|
+
*/
|
|
28530
|
+
getLuminance() {
|
|
28531
|
+
// alpha channel is not considered
|
|
28532
|
+
if (typeof this._lumi === 'undefined') {
|
|
28533
|
+
// calculate luminance
|
|
28534
|
+
// this._lumi = 0.2126 * this._r + 0.7152 * this._g + 0.0722 * this._b; // option 1
|
|
28535
|
+
this._lumi = 0.299 * this._r + 0.587 * this._g + 0.114 * this._b; // option 2
|
|
28536
|
+
// this._lumi = Math.sqrt( 0.241 * this._r * this._r + 0.691 * this._g * this._g + 0.068 * this._b * this._b ); // option 3
|
|
28537
|
+
}
|
|
28538
|
+
|
|
28539
|
+
return this._lumi;
|
|
28540
|
+
}
|
|
28541
|
+
|
|
28542
|
+
/**
|
|
28543
|
+
* Shifts the color towards a lighter or darker shade
|
|
28544
|
+
* @private
|
|
28545
|
+
* @param {number} value - A value in the range -100-100 to shift the color with along the HSL lightness.
|
|
28546
|
+
* @return {string} The shifted color as hsla string.
|
|
28547
|
+
*/
|
|
28548
|
+
shiftLuminance(value) {
|
|
28549
|
+
const chsla = this.toHSLA();
|
|
28550
|
+
const matches = /^hsla\(\s*(\d+(\.\d+)?)\s*,\s*(\d+(\.\d+)?%?)\s*,\s*(\d+(\.\d+)?%?)\s*,(\d(\.\d+)?)\)$/i.exec(chsla);
|
|
28551
|
+
const h = parseFloat(matches[1]);
|
|
28552
|
+
const s = parseFloat(matches[3]);
|
|
28553
|
+
let l = parseFloat(matches[5]);
|
|
28554
|
+
const a = parseFloat(matches[7]);
|
|
28555
|
+
// l *= 1 + value / 100;
|
|
28556
|
+
// l = Math.max( 0, l % 100 );
|
|
28557
|
+
l += value;
|
|
28558
|
+
l = Math.max(0, Math.min(l, 100));
|
|
28559
|
+
|
|
28560
|
+
// if( value > 0 ){
|
|
28561
|
+
// s = s*0.2; //removing saturation to avoid the border from being too light
|
|
28562
|
+
// }
|
|
28563
|
+
|
|
28564
|
+
return "hsla(".concat(h, ",").concat(s, ",").concat(l, ",").concat(a, ")");
|
|
28565
|
+
}
|
|
28566
|
+
|
|
28567
|
+
/**
|
|
28568
|
+
* Compares two colors.
|
|
28569
|
+
* @private
|
|
28570
|
+
* @param {Color} c The color to compare with.
|
|
28571
|
+
* @return {boolean} True if the rgba channels are the same, false otherwise
|
|
28572
|
+
*/
|
|
28573
|
+
isEqual(c) {
|
|
28574
|
+
if (c instanceof Color) {
|
|
28575
|
+
return this._r === c._r && this._g === c._g && this._b === c._b && this._a === c._a;
|
|
28576
|
+
}
|
|
28577
|
+
c = new Color(c);
|
|
28578
|
+
return this._r === c._r && this._g === c._g && this._b === c._b && this._a === c._a;
|
|
28579
|
+
}
|
|
28580
|
+
|
|
28581
|
+
/**
|
|
28582
|
+
* Linearly interpolates each channel of two colors.
|
|
28583
|
+
* @private
|
|
28584
|
+
* @param {Color} c2 The other color.
|
|
28585
|
+
* @param {number} t The interpolation value in the range (0-1).
|
|
28586
|
+
* @return {string} The blend as an rgb string.
|
|
28587
|
+
*/
|
|
28588
|
+
blend(c2, t) {
|
|
28589
|
+
const r = floor(this._r + (c2._r - this._r) * t);
|
|
28590
|
+
const g = floor(this._g + (c2._g - this._g) * t);
|
|
28591
|
+
const b = floor(this._b + (c2._b - this._b) * t);
|
|
28592
|
+
const a = floor(this._a + (c2._a - this._a) * t);
|
|
28593
|
+
return "rgba(".concat([r, g, b, a].join(','), ")");
|
|
28594
|
+
}
|
|
28595
|
+
createShiftedColor(v) {
|
|
28596
|
+
if (v === undefined || Number.isNaN(+v)) {
|
|
28597
|
+
v = 1;
|
|
28598
|
+
}
|
|
28599
|
+
const lumi = this.getLuminance();
|
|
28600
|
+
const greenMultiplier = this._g < 126 ? 1 : 1 + this._g / 512;
|
|
28601
|
+
const hsla_string = this.shiftLuminance((lumi * greenMultiplier < 220 ? 0.8 + 4 * (1 / (lumi + 1)) : -(0.8 + 1 * (lumi / 255))) * 20 * v);
|
|
28602
|
+
return new Color(hsla_string);
|
|
28603
|
+
}
|
|
28604
|
+
|
|
28605
|
+
/**
|
|
28606
|
+
* Returns an rgb string representation of this color
|
|
28607
|
+
* @private
|
|
28608
|
+
* @param {Color|string} c
|
|
28609
|
+
* @returns {string} An rgb string with channel values within range 0-255.
|
|
28610
|
+
*/
|
|
28611
|
+
static toRGB(c) {
|
|
28612
|
+
if (c instanceof Color) {
|
|
28613
|
+
return "rgb(".concat([c._r, c._g, c._b].join(','), ")");
|
|
28614
|
+
}
|
|
28615
|
+
if (typeof c === 'string') {
|
|
28616
|
+
c = Color.toNumber(c);
|
|
28617
|
+
}
|
|
28618
|
+
const r = (c & 0xff0000) >> 16;
|
|
28619
|
+
const g = (c & 0x00ff00) >> 8;
|
|
28620
|
+
const b = c & 0x0000ff;
|
|
28621
|
+
return "rgb(".concat(r, ",").concat(g, ",").concat(b, ")");
|
|
28622
|
+
}
|
|
28623
|
+
|
|
28624
|
+
/**
|
|
28625
|
+
*
|
|
28626
|
+
* @private
|
|
28627
|
+
* @param c
|
|
28628
|
+
* @param a
|
|
28629
|
+
* @returns {string} The color rgb format.
|
|
28630
|
+
*/
|
|
28631
|
+
static toRGBA(c, a) {
|
|
28632
|
+
if (c instanceof Color) {
|
|
28633
|
+
return "rgba(".concat([c._r, c._g, c._b, typeof a !== 'undefined' ? a : c._a].join(','), ")");
|
|
28634
|
+
}
|
|
28635
|
+
if (typeof c === 'string') {
|
|
28636
|
+
c = Color.toNumber(c);
|
|
28637
|
+
}
|
|
28638
|
+
const r = (c & 0xff0000) >> 16;
|
|
28639
|
+
const g = (c & 0x00ff00) >> 8;
|
|
28640
|
+
const b = c & 0x0000ff;
|
|
28641
|
+
return "rgba(".concat(r, ",").concat(g, ",").concat(b, ",").concat(typeof a !== 'undefined' ? a : c._a, ")");
|
|
28642
|
+
}
|
|
28643
|
+
|
|
28644
|
+
/**
|
|
28645
|
+
*
|
|
28646
|
+
* @private
|
|
28647
|
+
* @param {Color|string} c
|
|
28648
|
+
* @returns {string} The color in hexadecimal space.
|
|
28649
|
+
*/
|
|
28650
|
+
static toHex(c) {
|
|
28651
|
+
let r;
|
|
28652
|
+
let g;
|
|
28653
|
+
let b;
|
|
28654
|
+
if (c instanceof Color) {
|
|
28655
|
+
r = c._r.toString(16);
|
|
28656
|
+
g = c._g.toString(16);
|
|
28657
|
+
b = c._b.toString(16);
|
|
28658
|
+
if (r.length === 1) {
|
|
28659
|
+
r = "0".concat(r);
|
|
28660
|
+
}
|
|
28661
|
+
if (g.length === 1) {
|
|
28662
|
+
g = "0".concat(g);
|
|
28663
|
+
}
|
|
28664
|
+
if (b.length === 1) {
|
|
28665
|
+
b = "0".concat(b);
|
|
28666
|
+
}
|
|
28667
|
+
return "#".concat([r, g, b].join(''));
|
|
28668
|
+
}
|
|
28669
|
+
if (typeof c === 'string') {
|
|
28670
|
+
c = Color.toNumber(c);
|
|
28671
|
+
}
|
|
28672
|
+
r = ((c & 0xff0000) >> 16).toString(16);
|
|
28673
|
+
g = ((c & 0x00ff00) >> 8).toString(16);
|
|
28674
|
+
b = (c & 0x0000ff).toString(16);
|
|
28675
|
+
if (r.length === 1) {
|
|
28676
|
+
r = "0".concat(r);
|
|
28677
|
+
}
|
|
28678
|
+
if (g.length === 1) {
|
|
28679
|
+
g = "0".concat(g);
|
|
28680
|
+
}
|
|
28681
|
+
if (b.length === 1) {
|
|
28682
|
+
b = "0".concat(b);
|
|
28683
|
+
}
|
|
28684
|
+
return "#".concat(r).concat(g).concat(b);
|
|
28685
|
+
}
|
|
28686
|
+
|
|
28687
|
+
/**
|
|
28688
|
+
* Return the color in hsl space using "bi-hexcone" model for lightness
|
|
28689
|
+
* @private
|
|
28690
|
+
* @param {Color|string} c
|
|
28691
|
+
* @param {boolean} luma - Whether to use luma calculation
|
|
28692
|
+
* @returns {string} The color in hsl space.
|
|
28693
|
+
*/
|
|
28694
|
+
static toHSL(c, luma) {
|
|
28695
|
+
let h = 0;
|
|
28696
|
+
let s;
|
|
28697
|
+
let l;
|
|
28698
|
+
let ch;
|
|
28699
|
+
if (typeof c === 'string') {
|
|
28700
|
+
c = new Color(c);
|
|
28701
|
+
}
|
|
28702
|
+
|
|
28703
|
+
// red, green, blue, hue, saturation, lightness/luma, max, min, chroma
|
|
28704
|
+
const r = c._r / 255;
|
|
28705
|
+
const g = c._g / 255;
|
|
28706
|
+
const b = c._b / 255;
|
|
28707
|
+
const max = Math.max(r, g, b);
|
|
28708
|
+
const min = Math.min(r, g, b);
|
|
28709
|
+
if (luma) {
|
|
28710
|
+
// Y'709 http://en.wikipedia.org/wiki/Rec._709
|
|
28711
|
+
// Y′709 = 0.21R + 0.72G + 0.07B
|
|
28712
|
+
l = 0.21 * r + 0.72 * g + 0.07 * b;
|
|
28713
|
+
} else {
|
|
28714
|
+
l = (max + min) / 2;
|
|
28715
|
+
}
|
|
28716
|
+
if (max === min) {
|
|
28717
|
+
// greyscale
|
|
28718
|
+
s = 0;
|
|
28719
|
+
h = 0;
|
|
28720
|
+
} else {
|
|
28721
|
+
ch = max - min;
|
|
28722
|
+
s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);
|
|
28723
|
+
switch (max) {
|
|
28724
|
+
case r:
|
|
28725
|
+
h = (g - b) / ch + (g < b ? 6 : 0);
|
|
28726
|
+
break;
|
|
28727
|
+
case g:
|
|
28728
|
+
h = (b - r) / ch + 2;
|
|
28729
|
+
break;
|
|
28730
|
+
case b:
|
|
28731
|
+
h = (r - g) / ch + 4;
|
|
28732
|
+
break;
|
|
28733
|
+
}
|
|
28734
|
+
h /= 6;
|
|
28735
|
+
}
|
|
28736
|
+
return "hsl(".concat(h * 360, ",").concat(s * 100, ",").concat(l * 100, ")");
|
|
28737
|
+
}
|
|
28738
|
+
|
|
28739
|
+
/**
|
|
28740
|
+
* Return the color in hsla space using "bi-hexcone" model for lightness
|
|
28741
|
+
* @private
|
|
28742
|
+
* @param {Color|string} c
|
|
28743
|
+
* @param {boolean} luma - Whether to use luma calculation
|
|
28744
|
+
* @returns {string} The color in hsla space.
|
|
28745
|
+
*/
|
|
28746
|
+
static toHSLA(c, luma) {
|
|
28747
|
+
let h = 0;
|
|
28748
|
+
let s;
|
|
28749
|
+
let l;
|
|
28750
|
+
let ch;
|
|
28751
|
+
if (typeof c === 'string') {
|
|
28752
|
+
c = new Color(c);
|
|
28753
|
+
}
|
|
28754
|
+
|
|
28755
|
+
// red, green, blue, hue, saturation, lightness/luma, max, min, chroma
|
|
28756
|
+
const r = c._r / 255;
|
|
28757
|
+
const g = c._g / 255;
|
|
28758
|
+
const b = c._b / 255;
|
|
28759
|
+
const a = c._a;
|
|
28760
|
+
const max = Math.max(r, g, b);
|
|
28761
|
+
const min = Math.min(r, g, b);
|
|
28762
|
+
if (luma) {
|
|
28763
|
+
// Y'709 http://en.wikipedia.org/wiki/Rec._709
|
|
28764
|
+
// Y′709 = 0.21R + 0.72G + 0.07B
|
|
28765
|
+
l = 0.21 * r + 0.72 * g + 0.07 * b;
|
|
28766
|
+
} else {
|
|
28767
|
+
l = (max + min) / 2;
|
|
28768
|
+
}
|
|
28769
|
+
if (max === min) {
|
|
28770
|
+
// greyscale
|
|
28771
|
+
s = 0;
|
|
28772
|
+
h = 0;
|
|
28773
|
+
} else {
|
|
28774
|
+
ch = max - min;
|
|
28775
|
+
s = l > 0.5 ? ch / (2 - max - min) : ch / (max + min);
|
|
28776
|
+
switch (max) {
|
|
28777
|
+
case r:
|
|
28778
|
+
h = (g - b) / ch + (g < b ? 6 : 0);
|
|
28779
|
+
break;
|
|
28780
|
+
case g:
|
|
28781
|
+
h = (b - r) / ch + 2;
|
|
28782
|
+
break;
|
|
28783
|
+
case b:
|
|
28784
|
+
h = (r - g) / ch + 4;
|
|
28785
|
+
break;
|
|
28786
|
+
}
|
|
28787
|
+
h /= 6;
|
|
28788
|
+
}
|
|
28789
|
+
return "hsla(".concat(h * 360, ",").concat(s * 100, ",").concat(l * 100, ",").concat(a, ")");
|
|
28790
|
+
}
|
|
28791
|
+
|
|
28792
|
+
/**
|
|
28793
|
+
* Return the color components in hsv space using "hexcone" model for value (lightness)
|
|
28794
|
+
* @private
|
|
28795
|
+
* @param {Color|string} c
|
|
28796
|
+
* @returns {object} The color components in hsv space {h:0-360, s:0-100, v:0-100}
|
|
28797
|
+
*/
|
|
28798
|
+
static toHSVComponents(c) {
|
|
28799
|
+
let h = 0;
|
|
28800
|
+
let s;
|
|
28801
|
+
let ch;
|
|
28802
|
+
if (typeof c === 'string') {
|
|
28803
|
+
c = new Color(c);
|
|
28804
|
+
}
|
|
28805
|
+
|
|
28806
|
+
// red, green, blue, hue, saturation, value/luma, max, min, chroma
|
|
28807
|
+
const r = c._r / 255;
|
|
28808
|
+
const g = c._g / 255;
|
|
28809
|
+
const b = c._b / 255;
|
|
28810
|
+
const max = Math.max(r, g, b);
|
|
28811
|
+
const min = Math.min(r, g, b);
|
|
28812
|
+
const v = max;
|
|
28813
|
+
if (max === min) {
|
|
28814
|
+
// greyscale
|
|
28815
|
+
s = 0;
|
|
28816
|
+
h = 0;
|
|
28817
|
+
} else {
|
|
28818
|
+
ch = max - min;
|
|
28819
|
+
s = ch === 0 ? 0 : ch / v;
|
|
28820
|
+
switch (max) {
|
|
28821
|
+
case r:
|
|
28822
|
+
h = (g - b) / ch + (g < b ? 6 : 0);
|
|
28823
|
+
break;
|
|
28824
|
+
case g:
|
|
28825
|
+
h = (b - r) / ch + 2;
|
|
28826
|
+
break;
|
|
28827
|
+
case b:
|
|
28828
|
+
h = (r - g) / ch + 4;
|
|
28829
|
+
break;
|
|
28830
|
+
}
|
|
28831
|
+
h /= 6;
|
|
28832
|
+
}
|
|
28833
|
+
return {
|
|
28834
|
+
h: h * 360 % 360,
|
|
28835
|
+
s: s * 100,
|
|
28836
|
+
v: v * 100
|
|
28837
|
+
};
|
|
28838
|
+
}
|
|
28839
|
+
|
|
28840
|
+
/**
|
|
28841
|
+
* Returns an number representation of the color
|
|
28842
|
+
* @private
|
|
28843
|
+
* @param {Color|string} c
|
|
28844
|
+
* @returns {Number} Unsigned integer in the range 0-16 777 216
|
|
28845
|
+
*/
|
|
28846
|
+
static toNumber() {
|
|
28847
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
28848
|
+
args[_key2] = arguments[_key2];
|
|
28849
|
+
}
|
|
28850
|
+
if (args.length === 1 && args[0] instanceof Color) {
|
|
28851
|
+
return (args[0]._r << 16) + (args[0]._g << 8) + args[0]._b;
|
|
28852
|
+
}
|
|
28853
|
+
let r = 0;
|
|
28854
|
+
let g = 0;
|
|
28855
|
+
let b = 0;
|
|
28856
|
+
let matches;
|
|
28857
|
+
let colorString;
|
|
28858
|
+
if (args.length === 1) {
|
|
28859
|
+
if (typeof args[0] === 'string') {
|
|
28860
|
+
colorString = args[0];
|
|
28861
|
+
if (matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/i.exec(colorString)) {
|
|
28862
|
+
r = parseInt(matches[1], 10);
|
|
28863
|
+
g = parseInt(matches[2], 10);
|
|
28864
|
+
b = parseInt(matches[3], 10);
|
|
28865
|
+
} else if (matches = /^#([A-f0-9]{2})([A-f0-9]{2})([A-f0-9]{2})$/i.exec(colorString)) {
|
|
28866
|
+
r = parseInt(matches[1], 16);
|
|
28867
|
+
g = parseInt(matches[2], 16);
|
|
28868
|
+
b = parseInt(matches[3], 16);
|
|
28869
|
+
} else if (matches = /^#([A-f0-9])([A-f0-9])([A-f0-9])$/i.exec(colorString)) {
|
|
28870
|
+
r = parseInt(matches[1] + matches[1], 16);
|
|
28871
|
+
g = parseInt(matches[2] + matches[2], 16);
|
|
28872
|
+
b = parseInt(matches[3] + matches[3], 16);
|
|
28873
|
+
}
|
|
28874
|
+
}
|
|
28875
|
+
}
|
|
28876
|
+
return (r << 16) + (g << 8) + b;
|
|
28877
|
+
}
|
|
28878
|
+
static blend(c1, c2, t) {
|
|
28879
|
+
c1 = Color.toNumber(c1);
|
|
28880
|
+
c2 = Color.toNumber(c2);
|
|
28881
|
+
const r1 = (c1 & 0xff0000) >> 16;
|
|
28882
|
+
const g1 = (c1 & 0x00ff00) >> 8;
|
|
28883
|
+
const b1 = c1 & 0x0000ff;
|
|
28884
|
+
const r2 = (c2 & 0xff0000) >> 16;
|
|
28885
|
+
const g2 = (c2 & 0x00ff00) >> 8;
|
|
28886
|
+
const b2 = c2 & 0x0000ff;
|
|
28887
|
+
const r = r1 + (r2 - r1) * t;
|
|
28888
|
+
const g = g1 + (g2 - g1) * t;
|
|
28889
|
+
const b = b1 + (b2 - b1) * t;
|
|
28890
|
+
return (r << 16) + (g << 8) + b;
|
|
28891
|
+
}
|
|
28892
|
+
static getBlend(c1, c2, t) {
|
|
28893
|
+
const r = c1._r + (c2._r - c1._r) * t;
|
|
28894
|
+
const g = c1._g + (c2._g - c1._g) * t;
|
|
28895
|
+
const b = c1._b + (c2._b - c1._b) * t;
|
|
28896
|
+
const a = c1._a + (c2._a - c1._a) * t;
|
|
28897
|
+
return new Color(r, g, b, a);
|
|
28898
|
+
}
|
|
28899
|
+
static isCSSColor(color) {
|
|
28900
|
+
if (arguments.length > 1 || typeof color !== 'string') {
|
|
28901
|
+
return false;
|
|
28902
|
+
}
|
|
28903
|
+
return rgb.test(color) || rgba.test(color) || hex.test(color) || hexShort.test(color) || hsl.test(color) || hsla.test(color) || colorStruct[color.toLowerCase()];
|
|
28904
|
+
}
|
|
28905
|
+
static getBestContrast(color, cl, cd) {
|
|
28906
|
+
const lum = color.getLuminance();
|
|
28907
|
+
return Math.abs(lum - cl.getLuminance()) > Math.abs(lum - cd.getLuminance()) ? cl : cd;
|
|
28908
|
+
}
|
|
28909
|
+
static getContrast(color1, color2) {
|
|
28910
|
+
if (!color1 || !color2) {
|
|
28911
|
+
return undefined;
|
|
28912
|
+
}
|
|
28913
|
+
const l1 = color1.getLuminance() / 100;
|
|
28914
|
+
const l2 = color2.getLuminance() / 100;
|
|
28915
|
+
if (l1 > l2) {
|
|
28916
|
+
return (l1 + 0.05) / (l2 + 0.05);
|
|
28917
|
+
}
|
|
28918
|
+
return (l2 + 0.05) / (l1 + 0.05);
|
|
28919
|
+
}
|
|
28920
|
+
static isDark() {
|
|
28921
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
28922
|
+
args[_key3] = arguments[_key3];
|
|
28923
|
+
}
|
|
28924
|
+
const C = new Color(...args);
|
|
28925
|
+
return C.isDark(...args);
|
|
28926
|
+
}
|
|
28927
|
+
static useDarkLabel(areaColor, bgIsDark) {
|
|
28928
|
+
return areaColor._a > 0.5 ? !areaColor.isDark() : !bgIsDark;
|
|
28929
|
+
}
|
|
28930
|
+
}
|
|
28931
|
+
|
|
27352
28932
|
const LIGHT = '#FFF';
|
|
27353
28933
|
const DARK = '#000';
|
|
28934
|
+
const CONTRAST_THRESHOLD = 1.5;
|
|
28935
|
+
const LIGHT_PREFERRED_THRESHOLD = 3;
|
|
28936
|
+
const getContrast = (desired, background) => {
|
|
28937
|
+
let contrast = false;
|
|
28938
|
+
const des = new Color(desired);
|
|
28939
|
+
const bg = new Color(background);
|
|
28940
|
+
if (bg.isInvalid() || des.isInvalid() || bg.getAlpha() < 1 || des.getAlpha() < 1) {
|
|
28941
|
+
return undefined;
|
|
28942
|
+
}
|
|
28943
|
+
try {
|
|
28944
|
+
contrast = Color.getContrast(des, bg);
|
|
28945
|
+
} catch (err) {
|
|
28946
|
+
contrast = undefined;
|
|
28947
|
+
}
|
|
28948
|
+
return contrast;
|
|
28949
|
+
};
|
|
27354
28950
|
function getContrastingColor(backgroundColor) {
|
|
27355
28951
|
let desiredTextColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
|
27356
28952
|
let dark = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DARK;
|
|
27357
28953
|
let light = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : LIGHT;
|
|
27358
|
-
const
|
|
28954
|
+
const lightColor = new Color(light);
|
|
28955
|
+
const bg = new Color(backgroundColor);
|
|
28956
|
+
const des = new Color(desiredTextColor);
|
|
28957
|
+
if (bg.isInvalid() || des.isInvalid() || bg.getAlpha() < 1 || des.getAlpha() < 1) {
|
|
28958
|
+
return desiredTextColor;
|
|
28959
|
+
}
|
|
28960
|
+
|
|
28961
|
+
// Always prioritise light color if it gives better contrast than desired color's.
|
|
28962
|
+
const lightColorContrast = getContrast(lightColor, bg);
|
|
28963
|
+
const desiredColorContrast = getContrast(des, bg);
|
|
28964
|
+
const useLightColor = lightColorContrast > desiredColorContrast || lightColorContrast > LIGHT_PREFERRED_THRESHOLD;
|
|
27359
28965
|
let contrastingColor;
|
|
27360
|
-
if (desiredTextColor &&
|
|
28966
|
+
if (desiredTextColor && desiredColorContrast > CONTRAST_THRESHOLD && !useLightColor) {
|
|
27361
28967
|
contrastingColor = desiredTextColor;
|
|
27362
28968
|
} else {
|
|
27363
|
-
contrastingColor =
|
|
28969
|
+
contrastingColor = useLightColor ? light : dark;
|
|
27364
28970
|
}
|
|
27365
28971
|
return contrastingColor;
|
|
27366
28972
|
}
|
|
@@ -27379,7 +28985,8 @@
|
|
|
27379
28985
|
}
|
|
27380
28986
|
function getSelectionColors(theme, getListboxStyle, overrides) {
|
|
27381
28987
|
var _overrides$theme, _theme$palette, _overrides$theme$cont, _overrides$theme2, _overrides$selections, _selectionColors$sele, _theme$palette2, _selectionColors$alte, _theme$palette3, _selectionColors$excl, _theme$palette4, _selectionColors$sele2, _theme$palette5, _selectionColors$poss, _theme$palette6, _theme$palette7, _theme$palette8, _theme$palette9, _theme$palette10, _theme$palette11;
|
|
27382
|
-
const
|
|
28988
|
+
const componentContentTextColor = (_overrides$theme = overrides.theme) === null || _overrides$theme === void 0 || (_overrides$theme = _overrides$theme.content) === null || _overrides$theme === void 0 || (_overrides$theme = _overrides$theme.fontColor) === null || _overrides$theme === void 0 ? void 0 : _overrides$theme.color;
|
|
28989
|
+
const desiredTextColor = componentContentTextColor || getListboxStyle('content', 'color') || ((_theme$palette = theme.palette) === null || _theme$palette === void 0 ? void 0 : _theme$palette.text.primary);
|
|
27383
28990
|
const useContrastTextColor = (_overrides$theme$cont = (_overrides$theme2 = overrides.theme) === null || _overrides$theme2 === void 0 || (_overrides$theme2 = _overrides$theme2.content) === null || _overrides$theme2 === void 0 ? void 0 : _overrides$theme2.useContrastColor) !== null && _overrides$theme$cont !== void 0 ? _overrides$theme$cont : true;
|
|
27384
28991
|
|
|
27385
28992
|
// Background colors
|
|
@@ -27391,7 +28998,7 @@
|
|
|
27391
28998
|
const possible = ((_selectionColors$poss = selectionColors.possible) === null || _selectionColors$poss === void 0 ? void 0 : _selectionColors$poss.color) || getListboxStyle('', 'backgroundColor') || ((_theme$palette6 = theme.palette) === null || _theme$palette6 === void 0 ? void 0 : _theme$palette6.selected.possible) || '#FFFFFF';
|
|
27392
28999
|
|
|
27393
29000
|
// Font colors
|
|
27394
|
-
let selectedContrast = desiredTextColor || ((_theme$palette7 = theme.palette) === null || _theme$palette7 === void 0 ? void 0 : _theme$palette7.selected.
|
|
29001
|
+
let selectedContrast = desiredTextColor || ((_theme$palette7 = theme.palette) === null || _theme$palette7 === void 0 ? void 0 : _theme$palette7.selected.selectedContrastText);
|
|
27395
29002
|
let alternativeContrast = desiredTextColor || ((_theme$palette8 = theme.palette) === null || _theme$palette8 === void 0 ? void 0 : _theme$palette8.selected.alternativeContrastText);
|
|
27396
29003
|
let excludedContrast = desiredTextColor || ((_theme$palette9 = theme.palette) === null || _theme$palette9 === void 0 ? void 0 : _theme$palette9.selected.excludedContrastText);
|
|
27397
29004
|
let selectedExcludedContrast = desiredTextColor || ((_theme$palette10 = theme.palette) === null || _theme$palette10 === void 0 ? void 0 : _theme$palette10.selected.selectedExcludedContrastText);
|