Socket
Socket
Sign inDemoInstall

culori

Package Overview
Dependencies
Maintainers
5
Versions
256
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

culori - npm Package Compare versions

Comparing version 0.6.0 to 0.7.0

624

build/culori.js

@@ -264,3 +264,5 @@ function parseNumber (color, len) {

var match;
return (match = color.match(hex)) ? parseNumber(parseInt(match[1], 16), match[1].length) : undefined;
return (match = color.match(hex))
? parseNumber(parseInt(match[1], 16), match[1].length)
: undefined;
}

@@ -301,150 +303,57 @@

/*
Interpolation of simple numeric values.
In linear interpolation, when one value is undefined,
the other value is returned.
function identity (d) { return d; }
Known issues:
var get_classes = function (arr) {
var classes = [];
for (var i = 0; i < arr.length - 1; i++) {
var a = arr[i];
var b = arr[i + 1];
* Spline interpolation can't interpolate when some values
are undefined and others aren't.
*/
function interpolateNumber () { return function (values) {
if (values.length === 2) {
// Linear Number interpolation
// ---------------------------
// If both values are undefined, return undefined
if (values[0] === undefined && values[1] === undefined) {
return undefined;
}
// if both values are defined, return them back
if (values[0] !== undefined && values[1] !== undefined) {
return values;
}
// if just one value is undefined, use the defined value
return values[0] === undefined ? values[1] : values[0];
if (a === undefined && b === undefined) {
classes.push(undefined);
} else if (a !== undefined && b !== undefined) {
classes.push([a, b]);
} else {
// Spline Number interpolation
// ---------------------------
// If all values are undefined, return undefined
if (
values[0] === undefined &&
values[1] === undefined &&
values[2] === undefined &&
values[3] === undefined
) {
return undefined;
}
// If all values are defined, return them back
// if (
// values[0] !== undefined &&
// values[1] !== undefined &&
// values[2] !== undefined &&
// values[3] !== undefined
// ) {
// return values;
// }
// If some values are defined and others are undefined...
// we need to decide what to do. Right now we send them back
// but probably we should do something smarter here.
return values;
classes.push(a !== undefined ? [a, a] : [b, b]);
}
}; }
}
/*
Interpolation of alpha values.
Colors with an implicit alpha of 1 will have an undefined alpha channel.
We try to keep it undefined through the interpolation process.
return classes;
};
Known issues:
function interpolateLinear (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
* For spline interpolation, alphas will be filled with 1 when undefined
(unless all four values in the interpolation are undefined).
*/
return function (arr) {
var normalized_arr = normalize(arr);
var classes = get_classes(normalized_arr);
function interpolateAlpha () { return function (values, t) {
if (values.length === 2) {
// Linear Alpha interpolation
// --------------------------
// If both alphas are undefined,
// or if t is next to the undefined alpha,
// return undefined to preserve assumption
// about undefined alpha being 1.
if (
(values[0] === undefined && values[1] === undefined) ||
(values[0] === undefined && t === 0) ||
(values[1] === undefined && t === 1)
) { return undefined; }
// If at least one alpha is defined,
// assume alpha = 1 for any undefined values.
return [ values[0] === undefined ? 1 : values[0], values[1] === undefined ? 1 : values[1]];
} else {
// Spline Alpha interpolation
// --------------------------
// If all values are undefined, return undefined
if (
values[0] === undefined &&
values[1] === undefined &&
values[2] === undefined &&
values[3] === undefined
) {
return undefined;
}
// If some values are defined and others are undefined,
// put alpha = 1 for any undefined values
return values.map(function (v) { return v === undefined ? 1 : v; });
}
}; }
function identity (d) { return d; }
function interpolateFunctionLinear (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (arr, t) {
return function (t) {
t = Math.pow(t, Ξ³);
var cls = t * (arr.length - 1),
idx = Math.floor(cls),
a = arr[idx],
b = arr[idx + 1],
t0 = cls - idx;
var cls = t * classes.length;
var idx = t === 1 ? classes.length - 1 : Math.floor(cls);
var pair = classes[idx];
var values = normalize([a, b], t0);
return typeof values === 'object' ?
(a = values[0], b = values[1], a + t0 * (b - a)) :
values;
return pair === undefined
? undefined
: pair[0] + (cls - idx) * (pair[1] - pair[0]);
};
};
}
function interpolateAlpha (arr) { return arr.map(function (val, idx, arr) {
return val === undefined && arr[idx + 1] !== undefined ? 1 : val;
}); }
var rgbDef = {
mode: 'rgb',
channels: ['r', 'g', 'b', 'alpha'],
parsers: [ parseHex, parseRgb, parseNamed, parseTransparent ],
parsers: [parseHex, parseRgb, parseNamed, parseTransparent],
interpolate: {
r: interpolateFunctionLinear(interpolateNumber()),
g: interpolateFunctionLinear(interpolateNumber()),
b: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
r: interpolateLinear(),
g: interpolateLinear(),
b: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -494,3 +403,3 @@ };

},
input: {
input: {
rgb: convertRgbToLrgb

@@ -500,6 +409,6 @@ },

interpolate: {
r: interpolateFunctionLinear(interpolateNumber()),
g: interpolateFunctionLinear(interpolateNumber()),
b: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
r: interpolateLinear(),
g: interpolateLinear(),
b: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -582,81 +491,19 @@ };

/*
Interpolation of hue values.
Hues can be interpolated either on the shortest path around the cyllinder
or the normal (long) way.
Known issues:
* For spline interpolation, undefined behavior when some values are undefined
and others are not.
* Spline interpolation does not support the shortPath hue interpolation, but it
will normalize all hues to the [0, 360) range.
*/
function interpolateHue (shortPath) {
if ( shortPath === void 0 ) shortPath = true;
return function (values) {
if (values.length === 2) {
// Linear Hue interpolation
// ------------------------
// if both hues are undefined, return undefined
if (values[0] === undefined && values[1] === undefined) {
return undefined;
}
// if both hues are defined, interpolate between
// the start hue and the end hue brought closest
// to the start hue.
if (values[0] !== undefined && values[1] !== undefined) {
if (shortPath) {
var na = normalizeHue(values[0]);
var nb = normalizeHue(values[1]);
if (Math.abs(nb - na) > 180) {
// todo this result should be somehow normalized
return [na, nb - 360 * Math.sign(nb - na)];
}
return [na, nb];
}
return values;
}
// if just one hue is undefined, use the defined hue throughout
return values[0] === undefined ? values[1] : values[0];
} else {
// Spline Hue interpolation
// ------------------------
// If all values are undefined, return undefined
if (
values[0] === undefined &&
values[1] === undefined &&
values[2] === undefined &&
values[3] === undefined
) {
return undefined;
}
if (shortPath) {
return values.map(function (v) { return normalizeHue(v); });
}
// If some values are defined, return them back for now
return values;
function interpolateHue (arr) { return arr.map(function (val, idx, arr) {
var a = arr[idx - 1];
var b = arr[idx];
if (a !== undefined && b !== undefined) {
var na = normalizeHue(a);
var nb = normalizeHue(b);
return Math.abs(nb - na) > 180
? normalizeHue(nb - 360 * Math.sign(nb - na))
: val;
}
};
}
// todo hue short vs. hue long
// todo normalize hue before and after interpolateHue
return val;
}); }
var hslDef = {
mode: 'hsl',
output: {
rgb: convertHslToRgb
output: {
rgb: convertHslToRgb
},

@@ -667,8 +514,8 @@ input: {

channels: ['h', 's', 'l', 'alpha'],
parsers: [ parseHsl ],
parsers: [parseHsl],
interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
s: interpolateFunctionLinear(interpolateNumber()),
l: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
s: interpolateLinear(),
l: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -723,4 +570,4 @@ };

mode: 'hsv',
output: {
rgb: convertHsvToRgb
output: {
rgb: convertHsvToRgb
},

@@ -732,6 +579,6 @@ input: {

interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
s: interpolateFunctionLinear(interpolateNumber()),
v: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
s: interpolateLinear(),
v: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -824,4 +671,4 @@ };

mode: 'hsi',
output: {
rgb: convertHsiToRgb
output: {
rgb: convertHsiToRgb
},

@@ -833,6 +680,6 @@ input: {

interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
s: interpolateFunctionLinear(interpolateNumber()),
i: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
s: interpolateLinear(),
i: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -881,3 +728,3 @@ };

function convertRgbToHwb (rgba) {
function convertRgbToHwb(rgba) {
var hsv = convertRgbToHsv(rgba);

@@ -923,4 +770,4 @@ if (hsv === undefined) { return undefined; }

mode: 'hwb',
output: {
rgb: convertHwbToRgb
output: {
rgb: convertHwbToRgb
},

@@ -931,8 +778,8 @@ input: {

channels: ['h', 'w', 'b', 'alpha'],
parsers: [ parseHwb ],
parsers: [parseHwb],
interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
w: interpolateFunctionLinear(interpolateNumber()),
b: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
w: interpolateLinear(),
b: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1097,6 +944,6 @@ };

interpolate: {
l: interpolateFunctionLinear(interpolateNumber()),
a: interpolateFunctionLinear(interpolateNumber()),
b: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
l: interpolateLinear(),
a: interpolateLinear(),
b: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1184,3 +1031,3 @@ };

},
input: {
input: {
rgb: convertRgbToLch,

@@ -1190,8 +1037,8 @@ lch: convertLabToLch

channels: ['l', 'c', 'h', 'alpha'],
parsers: [ parseLch ],
parsers: [parseLch],
interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
c: interpolateFunctionLinear(interpolateNumber()),
l: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
c: interpolateLinear(),
l: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1317,6 +1164,6 @@ };

interpolate: {
h: interpolateFunctionLinear(interpolateHue()),
s: interpolateFunctionLinear(interpolateNumber()),
l: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
h: interpolateLinear(interpolateHue),
s: interpolateLinear(),
l: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1432,3 +1279,3 @@ };

mode: 'dlab',
output: {
output: {
lab: convertDlabToLab,

@@ -1443,6 +1290,6 @@ rgb: convertDlabToRgb

interpolate: {
l: interpolateFunctionLinear(interpolateNumber()),
a: interpolateFunctionLinear(interpolateNumber()),
b: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
l: interpolateLinear(),
a: interpolateLinear(),
b: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1457,3 +1304,3 @@ };

mode: 'dlch',
output: {
output: {
lab: convertDlchToLab,

@@ -1470,6 +1317,6 @@ dlab: convertDlchToDlab,

interpolate: {
l: interpolateFunctionLinear(interpolateNumber()),
c: interpolateFunctionLinear(interpolateNumber()),
h: interpolateFunctionLinear(interpolateHue()),
alpha: interpolateFunctionLinear(interpolateAlpha())
l: interpolateLinear(),
c: interpolateLinear(),
h: interpolateLinear(interpolateHue),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1538,6 +1385,6 @@ };

interpolate: {
y: interpolateFunctionLinear(interpolateNumber()),
i: interpolateFunctionLinear(interpolateNumber()),
q: interpolateFunctionLinear(interpolateNumber()),
alpha: interpolateFunctionLinear(interpolateAlpha())
y: interpolateLinear(),
i: interpolateLinear(),
q: interpolateLinear(),
alpha: interpolateLinear(interpolateAlpha)
}

@@ -1657,41 +1504,80 @@ };

function zip (colors, mode) {
function interpolate (colors, mode, interpolations) {
if ( mode === void 0 ) mode = 'rgb';
var channels = getModeDefinition(mode).channels;
var res = {
mode: mode
};
var loop = function ( i ) {
res[channels[i]] = colors.map(function (c) { return c[channels[i]]; });
};
var def = getModeDefinition(mode);
for (var i = 0; i < channels.length; i++) loop( i );
return res;
}
var converted = colors.map(converter(mode));
function interpolate (colors, mode, interpolations) {
if ( mode === void 0 ) mode = 'rgb';
var zipped = def.channels.reduce(function (res, channel) {
res[channel] = converted.map(function (color) { return color[channel]; });
return res;
}, {});
var zipped = zip(colors.map(converter(mode)), mode);
interpolations = Object.assign({}, getModeDefinition(mode).interpolate, interpolations);
var keys = Object.keys(interpolations);
// override the default interpolators
// from the color space definition with any custom ones
var interpolators = def.channels.reduce(
function (res, channel) {
res[channel] = res[channel](zipped[channel]);
return res;
},
Object.assign({}, def.interpolate,
interpolations)
);
return function (t) {
// clamp t to the [0, 1] interval
t = Math.min(Math.max(0, t), 1);
var res = { mode: mode }, val;
for (var i = 0; i < keys.length; i++) {
if ((val = interpolations[keys[i]](zipped[keys[i]], t)) !== undefined) {
res[keys[i]] = val;
}
}
return def.channels.reduce(
function (res, channel) {
var val = interpolators[channel](t);
if (val !== undefined) {
res[channel] = val;
}
return res;
},
{ mode: mode }
);
return res;
}
};
}
/*
====================
Spline interpolation
====================
Cosine interpolation
------------------------------------
*/
function cosine (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (original_arr) {
var arr = normalize(arr);
return function (t) {
t = Math.pow(t, Ξ³);
var cls = t * (arr.length - 1),
idx = Math.floor(cls),
a = arr[idx],
b = arr[idx + 1],
t0 = cls - idx;
var values = normalize([a, b], t0);
if (typeof values === 'object') {
a = values[0];
b = values[1];
var c = (1 - Math.cos(t0 * Math.PI)) / 2;
return a * (1 - c) + b * c;
} else {
return values;
}
};
};
}
/*
Basis spline

@@ -1722,11 +1608,41 @@ ------------

return (
(1 - 3 * t + 3 * t2 - t3) * Vim2 +
(4 - 6 * t2 + 3 * t3) * Vim1 +
(1 + 3 * t + 3 * t2 - 3 * t3) * Vi +
t3 * Vip1
) / 6;
((1 - 3 * t + 3 * t2 - t3) * Vim2 +
(4 - 6 * t2 + 3 * t3) * Vim1 +
(1 + 3 * t + 3 * t2 - 3 * t3) * Vi +
t3 * Vip1) /
6
);
};
function splineBasis (
normalize,
type,
Ξ³
) {
if ( normalize === void 0 ) normalize = identity;
if ( type === void 0 ) type = 'default';
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (original_arr) {
var arr = normalize(original_arr);
return function (t) {
t = Math.pow(t, Ξ³);
var classes = arr.length - 1;
var i = t === 1 ? classes - 1 : Math.floor(t * classes);
return bspline(
i > 0 ? arr[i - 1] : 2 * arr[i] - arr[i + 1],
arr[i],
arr[i + 1],
i < classes - 1 ? arr[i + 2] : 2 * arr[i + 1] - arr[i],
(t - i / classes) * classes
);
};
};
}
var solve = function (v) {
var i;
var i;
var n = v.length - 1;

@@ -1736,86 +1652,40 @@ var c = new Array(n);

var sol = new Array(n);
c[1] = 1/4, _v[1] = (6 * v[1] - v[0])/4;
c[1] = 1 / 4;
_v[1] = (6 * v[1] - v[0]) / 4;
for (i = 2; i < n; ++i) {
c[i] = 1 / (4 - c[i-1]);
_v[i] = (6 * v[i] - (i == n-1 ? v[n] : 0) - _v[i-1]) * c[i];
c[i] = 1 / (4 - c[i - 1]);
_v[i] = (6 * v[i] - (i == n - 1 ? v[n] : 0) - _v[i - 1]) * c[i];
}
sol[0] = v[0];
sol[n] = v[n];
if (n - 1 > 0) {
sol[n-1] = _v[n-1];
sol[n - 1] = _v[n - 1];
}
for (i = n-2; i > 0; --i) {
sol[i] = _v[i] - c[i] * sol[i+1];
for (i = n - 2; i > 0; --i) {
sol[i] = _v[i] - c[i] * sol[i + 1];
}
return sol;
};
function interpolateFunctionSpline (normalize, method, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( method === void 0 ) method = 'bspline';
if ( Ξ³ === void 0 ) Ξ³ = 1;
function splineNatural (
normalize,
type,
Ξ³
) {
if ( normalize === void 0 ) normalize = identity;
if ( type === void 0 ) type = 'default';
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (arr, t) {
t = Math.pow(t, Ξ³);
var classes = arr.length - 1;
var i = t === 1 ? classes - 1 : Math.floor(t * classes);
if (method === 'natural') {
arr = solve(arr);
}
var Vim1 = arr[i];
var Vi = arr[i+1];
var Vim2 = i > 0 ? arr[i-1] : 2 * Vim1 - Vi;
var Vip1 = i < classes - 1 ? arr[i+2] : 2 * Vi - Vim1;
var v = normalize([Vim2, Vim1, Vi, Vip1]);
return typeof v === 'object' ?
bspline(v[0], v[1], v[2], v[3], (t - i / classes) * classes)
: v;
};
return function (original_arr) {
var arr = normalize(original_arr);
return splineBasis(identity, type, Ξ³)(solve(arr));
};
}
/*
Cosine interpolation
------------------------------------
*/
function interpolateFunctionCosine (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (arr, t) {
t = Math.pow(t, Ξ³);
var cls = t * (arr.length - 1),
idx = Math.floor(cls),
a = arr[idx],
b = arr[idx + 1],
t0 = cls - idx;
var values = normalize([a, b], t0);
if (typeof values === 'object') {
a = values[0];
b = values[1];
var c = (1 - Math.cos(t0 * Math.PI)) / 2;
return (a * (1 - c) + b * c);
} else {
return values;
}
};
}
var monotone = function (v0, v1, v2, v3, h, t) {
var h2 = h * h;

@@ -1830,4 +1700,4 @@ var t2 = t * t;

return (
(s20 + s31 - 2 * s21) / h2 * t3 +
(3 * s21 - 2 * s20 - s31) / h * t2 +
((s20 + s31 - 2 * s21) / h2) * t3 +
((3 * s21 - 2 * s20 - s31) / h) * t2 +
s20 * t +

@@ -1838,8 +1708,10 @@ v1

function interpolateFunctionMonotone (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
function splineMonotone (normalize, Ξ³) {
if ( normalize === void 0 ) normalize = identity;
if ( Ξ³ === void 0 ) Ξ³ = 1;
return function (arr, t) {
return function (original_arr) {
var arr = normalize(original_arr);
return function (t) {
t = Math.pow(t, Ξ³);

@@ -1864,5 +1736,7 @@

return typeof v === 'object' ?
monotone(v[0], v[1], v[2], v[3], 1 / n, t - i / n) : v;
return typeof v === 'object'
? monotone(v[0], v[1], v[2], v[3], 1 / n, t - i / n)
: v;
};
};
}

@@ -2318,2 +2192,2 @@

export { defineMode, converter, hsl, hsv, hsi, hwb$1 as hwb, rgb$3 as rgb, lab$1 as lab, lch$2 as lch, lrgb, cubehelix, dlab, dlch, yiq, formatter, round, interpolate, interpolateNumber, interpolateAlpha, interpolateHue, interpolateFunctionLinear, interpolateFunctionSpline, interpolateFunctionCosine, interpolateFunctionMonotone, samples, zip, displayable, clamp, nearest, getModeDefinition, parse, differenceEuclidean, differenceCie76, differenceCie94, differenceCiede2000, differenceCmc, differenceDin99o, differenceKotsarenkoRamos, named as colorsNamed };
export { defineMode, converter, hsl, hsv, hsi, hwb$1 as hwb, rgb$3 as rgb, lab$1 as lab, lch$2 as lch, lrgb, cubehelix, dlab, dlch, yiq, formatter, round, interpolate, interpolateHue, interpolateAlpha, interpolateLinear, cosine as interpolateCosine, splineBasis as interpolateSplineBasis, splineNatural as interpolateSplineNatural, splineMonotone as interpolateSplineMonotone, samples, displayable, clamp, nearest, getModeDefinition, parse, differenceEuclidean, differenceCie76, differenceCie94, differenceCiede2000, differenceCmc, differenceDin99o, differenceKotsarenkoRamos, named as colorsNamed };

@@ -1,1 +0,1 @@

!function(i,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(i.culori={})}(this,function(i){"use strict";function r(i,r){if("number"==typeof i)return 3===r?{mode:"rgb",r:(i>>8&15|i>>4&240)/255,g:(i>>4&15|240&i)/255,b:(15&i|i<<4&240)/255}:4===r?{mode:"rgb",r:(i>>12&15|i>>8&240)/255,g:(i>>8&15|i>>4&240)/255,b:(i>>4&15|240&i)/255,alpha:(15&i|i<<4&240)/255}:6===r?{mode:"rgb",r:(i>>16&255)/255,g:(i>>8&255)/255,b:(255&i)/255}:8===r?{mode:"rgb",r:(i>>24&255)/255,g:(i>>16&255)/255,b:(i>>8&255)/255,alpha:(255&i)/255}:void 0}var o={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};var t=(/([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)/+"").replace(/^\/|\/$/g,""),n=t+"%",e="(?:"+t+"%|"+t+")",a="(?:"+t+"(deg|grad|rad|turn)|"+t+")",d="\\s*,\\s*",v="\\s+",u=new RegExp("^rgba?\\(\\s*"+t+d+t+d+t+"\\s*(?:,\\s*"+e+"\\s*)?\\)$"),h=new RegExp("^rgba?\\(\\s*"+n+d+n+d+n+"\\s*(?:,\\s*"+e+"\\s*)?\\)$"),l=new RegExp("^rgba?\\(\\s*"+t+v+t+v+t+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),f=new RegExp("^rgba?\\(\\s*"+n+v+n+v+n+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),c=new RegExp("^hsla?\\(\\s*"+a+d+n+d+n+"\\s*(?:,\\s*"+e+"\\s*)?\\)$"),s=new RegExp("^hsla?\\(\\s*"+a+v+n+v+n+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),p=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,b=new RegExp("^hwb\\(\\s*"+a+v+n+v+n+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),g=new RegExp("^lab\\(\\s*"+t+v+t+v+t+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),M=new RegExp("^lch\\(\\s*"+t+v+t+v+a+"\\s*(?:\\/\\s*"+e+"\\s*)?\\)$"),m=new RegExp("^gray\\(\\s*"+t+"()()\\s*(?:\\/\\s*"+e+"\\s*)?\\)$");function w(){return function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}}function y(){return function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})}}function k(i){return i}function q(i,r){return void 0===i&&(i=k),void 0===r&&(r=1),function(o,t){var n=(t=Math.pow(t,r))*(o.length-1),e=Math.floor(n),a=o[e],d=o[e+1],v=n-e,u=i([a,d],v);return"object"==typeof u?(a=u[0])+v*((d=u[1])-a):u}}var x={mode:"rgb",channels:["r","g","b","alpha"],parsers:[function(i){var o;return(o=i.match(p))?r(parseInt(o[1],16),o[1].length):void 0},function(i){var r,o;if(r=i.match(u)||i.match(l))o={mode:"rgb",r:r[1]/255,g:r[2]/255,b:r[3]/255};else{if(!(r=i.match(h)||i.match(f)))return;o={mode:"rgb",r:r[1]/100,g:r[2]/100,b:r[3]/100}}return void 0!==r[4]?o.alpha=r[4]/100:void 0!==r[5]&&(o.alpha=+r[5]),o},function(i){return"string"==typeof i&&r(o[i.toLowerCase()],6)||void 0},function(i){return"transparent"===i?r(0,8):void 0}],interpolate:{r:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),g:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),b:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}},I=function(i){return i<.04045?i/12.92:Math.pow((i+.055)/1.055,2.4)};function P(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e={mode:"lrgb",r:I(r),g:I(o),b:I(t)};return void 0!==n&&(e.alpha=n),e}var j=function(i){return i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i};function E(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e={mode:"rgb",r:j(r),g:j(o),b:j(t)};return void 0!==n&&(e.alpha=n),e}var $={mode:"lrgb",output:{rgb:E},input:{rgb:P},channels:["r","g","b","alpha"],interpolate:{r:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),g:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),b:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};function R(i){return(i%=360)<0?i+360:i}var O=function(i,r){switch(r){case"deg":return+i;case"rad":return i/Math.PI*180;case"grad":return i/10*9;case"turn":return 360*i}};function z(i){return void 0===i&&(i=!0),function(r){if(2===r.length){if(void 0===r[0]&&void 0===r[1])return;if(void 0!==r[0]&&void 0!==r[1]){if(i){var o=R(r[0]),t=R(r[1]);return Math.abs(t-o)>180?[o,t-360*Math.sign(t-o)]:[o,t]}return r}return void 0===r[0]?r[1]:r[0]}if(void 0!==r[0]||void 0!==r[1]||void 0!==r[2]||void 0!==r[3])return i?r.map(function(i){return R(i)}):r}}var C={mode:"hsl",output:{rgb:function(i){var r=i.h,o=i.s,t=i.l,n=i.alpha;r=R(r);var e,a=t+o*(t<.5?t:1-t),d=a-2*(a-t)*Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:e={r:a,g:d,b:2*t-a};break;case 1:e={r:d,g:a,b:2*t-a};break;case 2:e={r:2*t-a,g:a,b:d};break;case 3:e={r:2*t-a,g:d,b:a};break;case 4:e={r:d,g:2*t-a,b:a};break;case 5:e={r:a,g:2*t-a,b:d};break;default:e={r:2*t-a,g:2*t-a,b:2*t-a}}return e.mode="rgb",void 0!==n&&(e.alpha=n),e}},input:{rgb:function(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e=Math.max(r,o,t),a=Math.min(r,o,t),d={mode:"hsl",s:e===a?0:(e-a)/(1-Math.abs(e+a-1)),l:.5*(e+a)};return e-a!=0&&(d.h=60*(e===r?(o-t)/(e-a)+6*(o<t):e===o?(t-r)/(e-a)+2:(r-o)/(e-a)+4)),void 0!==n&&(d.alpha=n),d}},channels:["h","s","l","alpha"],parsers:[function(i){if("string"==typeof i){var r=i.match(c)||i.match(s);if(r){var o={mode:"hsl",h:void 0===r[3]?O(r[1],r[2]):+r[3],s:Math.min(Math.max(0,r[4]/100),1),l:Math.min(Math.max(0,r[5]/100),1)};return void 0!==r[6]?o.alpha=r[6]/100:void 0!==r[7]&&(o.alpha=r[7]/255),o}}}],interpolate:{h:q(z()),s:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};function F(i){var r=i.h,o=i.s,t=i.v,n=i.alpha;r=R(r);var e,a=Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:e={r:t,g:t*(1-o*a),b:t*(1-o)};break;case 1:e={r:t*(1-o*a),g:t,b:t*(1-o)};break;case 2:e={r:t*(1-o),g:t,b:t*(1-o*a)};break;case 3:e={r:t*(1-o),g:t*(1-o*a),b:t};break;case 4:e={r:t*(1-o*a),g:t*(1-o),b:t};break;case 5:e={r:t,g:t*(1-o),b:t*(1-o*a)};break;default:e={r:t*(1-o),g:t*(1-o),b:t*(1-o)}}return e.mode="rgb",void 0!==n&&(e.alpha=n),e}function A(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e=Math.max(r,o,t),a=Math.min(r,o,t),d={mode:"hsv",s:0===e?0:1-a/e,v:e};return e-a!=0&&(d.h=60*(e===r?(o-t)/(e-a)+6*(o<t):e===o?(t-r)/(e-a)+2:(r-o)/(e-a)+4)),void 0!==n&&(d.alpha=n),d}var N={mode:"hsv",output:{rgb:F},input:{rgb:A},channels:["h","s","v","alpha"],interpolate:{h:q(z()),s:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),v:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};var D={mode:"hsi",output:{rgb:function(i){var r=i.h,o=i.s,t=i.i,n=i.alpha;r=R(r);var e,a=Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:e={r:t*(1+o*(3/(2-a)-1)),g:t*(1+o*(3*(1-a)/(2-a)-1)),b:t*(1-o)};break;case 1:e={r:t*(1+o*(3*(1-a)/(2-a)-1)),g:t*(1+o*(3/(2-a)-1)),b:t*(1-o)};break;case 2:e={r:t*(1-o),g:t*(1+o*(3/(2-a)-1)),b:t*(1+o*(3*(1-a)/(2-a)-1))};break;case 3:e={r:t*(1-o),g:t*(1+o*(3*(1-a)/(2-a)-1)),b:t*(1+o*(3/(2-a)-1))};break;case 4:e={r:t*(1+o*(3*(1-a)/(2-a)-1)),g:t*(1-o),b:t*(1+o*(3/(2-a)-1))};break;case 5:e={r:t*(1+o*(3/(2-a)-1)),g:t*(1-o),b:t*(1+o*(3*(1-a)/(2-a)-1))};break;default:e={r:t*(1-o),g:t*(1-o),b:t*(1-o)}}return e.mode="rgb",void 0!==n&&(e.alpha=n),e}},input:{rgb:function(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e=Math.max(r,o,t),a=Math.min(r,o,t),d={mode:"hsi",s:r+o+t===0?0:1-3*a/(r+o+t),i:(r+o+t)/3};return e-a!=0&&(d.h=60*(e===r?(o-t)/(e-a)+6*(o<t):e===o?(t-r)/(e-a)+2:(r-o)/(e-a)+4)),void 0!==n&&(d.alpha=n),d}},channels:["h","s","i","alpha"],interpolate:{h:q(z()),s:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),i:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};var L={mode:"hwb",output:{rgb:function(i){var r=i.h,o=i.w,t=i.b;if(o+t>1){var n=o+t;o/=n,t/=n}return F({h:r,s:1===t?1:1-o/(1-t),v:1-t,alpha:i.alpha})}},input:{rgb:function(i){var r=A(i);if(void 0!==r){var o={mode:"hwb",w:(1-r.s)*r.v,b:1-r.v};return void 0!==r.h&&(o.h=r.h),void 0!==r.alpha&&(o.alpha=r.alpha),o}}},channels:["h","w","b","alpha"],parsers:[function(i){if("string"==typeof i){var r=i.match(b);if(r){var o={mode:"hwb",h:void 0===r[3]?O(r[1],r[2]):+r[3],w:r[4]/100,b:r[5]/100};if(o.w+o.b>1){var t=o.w+o.b;o.w/=t,o.b/=t}return void 0!==r[6]?o.alpha=r[6]/100:void 0!==r[7]&&(o.alpha=r[7]/255),o}}}],interpolate:{h:q(z()),w:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),b:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}},S=.96422,_=1,H=.82521,K=Math.pow(29,3)/Math.pow(3,3),B=Math.pow(6,3)/Math.pow(29,3),G=function(i){return Math.pow(i,3)>B?Math.pow(i,3):(116*i-16)/K};function J(i){var r,o,t,n,e,a=function(i){var r=i.x,o=i.y,t=i.z;return E({r:3.1338561*r-1.6168667*o-.4906146*t,g:-.9787684*r+1.9161415*o+.033454*t,b:.0719453*r-.2289914*o+1.4052427*t})}((o=(r=i).l,t=r.a,e=(n=(o+16)/116)-r.b/200,{x:G(t/500+n)*S,y:G(n)*_,z:G(e)*H}));return a.mode="rgb",void 0!==i.alpha&&(a.alpha=i.alpha),a}var Q=function(i){return i>B?Math.cbrt(i):(K*i+16)/116};function T(i){var r,o,t,n,e,a,d=(r=function(i){var r=P(i),o=r.r,t=r.g,n=r.b;return{x:.4360747*o+.3850649*t+.1430804*n,y:.2225045*o+.7168786*t+.0606169*n,z:.0139322*o+.0971045*t+.7141733*n}}(i),o=r.x,t=r.y,n=r.z,e=Q(o/S),{mode:"lab",l:116*(a=Q(t/_))-16,a:500*(e-a),b:200*(a-Q(n/H))});return i.r===i.b===i.g&&(d.a=d.b=0),void 0!==i.alpha&&(d.alpha=i.alpha),d}var U={mode:"lab",output:{rgb:J},input:{rgb:T},channels:["l","a","b","alpha"],parsers:[function(i){if("string"==typeof i){var r,o;if(r=i.match(g))o={mode:"lab",l:+r[1],a:+r[2],b:+r[3]};else{if(!(r=i.match(m)))return;o={mode:"lab",l:+r[1],a:0,b:0}}return void 0!==r[4]?o.alpha=r[4]/100:void 0!==r[5]&&(o.alpha=+r[5]),o}}],interpolate:{l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),a:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),b:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};function V(i){var r=i.l,o=i.a,t=i.b,n=i.alpha,e=Math.sqrt(o*o+t*t),a={mode:"lch",l:r,c:e};return e&&(a.h=R(180*Math.atan2(t,o)/Math.PI)),void 0!==n&&(a.alpha=n),a}function W(i){var r=i.l,o=i.c,t=i.h,n=i.alpha,e={mode:"lab",l:r,a:0===o?0:o*Math.cos(t/180*Math.PI),b:0===o?0:o*Math.sin(t/180*Math.PI)};return void 0!==n&&(e.alpha=n),e}var X={mode:"lch",output:{lab:W,rgb:function(i){return J(W(i))}},input:{rgb:function(i){return V(T(i))},lch:V},channels:["l","c","h","alpha"],parsers:[function(i){if("string"==typeof i){var r=i.match(M);if(r){var o={mode:"lch",l:+r[1],c:Math.max(0,+r[2]),h:void 0===r[5]?O(r[3],r[4]):+r[5]};return void 0!==r[6]?o.alpha=r[6]/100:void 0!==r[7]&&(o.alpha=+r[7]),o}}}],interpolate:{h:q(z()),c:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}},Y=[-.14861,1.78277,-.29227,-.90649,1.97294,0],Z=Math.PI/180,ii=180/Math.PI,ri=Y[3]*Y[4],oi=Y[1]*Y[4],ti=Y[1]*Y[2]-Y[0]*Y[3];var ni={mode:"cubehelix",channels:["h","s","l","alpha"],input:{rgb:function(i){var r=i.r,o=i.g,t=i.b,n=i.alpha,e=(ti*t+r*ri-o*oi)/(ti+ri-oi),a=t-e,d=(Y[4]*(o-e)-Y[2]*a)/Y[3],v={mode:"cubehelix",l:e,s:0===e||1===e?void 0:Math.sqrt(a*a+d*d)/(Y[4]*e*(1-e))};return v.s&&(v.h=Math.atan2(d,a)*ii-120),void 0!==n&&(v.alpha=n),v}},output:{rgb:function(i){var r=i.h,o=i.s,t=i.l,n=i.alpha,e={mode:"rgb"};r=(void 0===r?0:r+120)*Z;var a=void 0===o?0:o*t*(1-t),d=Math.cos(r),v=Math.sin(r);return e.r=t+a*(Y[0]*d+Y[1]*v),e.g=t+a*(Y[2]*d+Y[3]*v),e.b=t+a*(Y[4]*d+Y[5]*v),void 0!==n&&(e.alpha=n),e}},interpolate:{h:q(z()),s:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};function ei(i){var r=i.l,o=i.a,t=i.b,n=i.alpha,e=Math.sqrt(o*o+t*t),a={mode:"dlch",l:r,c:e};return e&&(a.h=R(180*Math.atan2(t,o)/Math.PI)),void 0!==n&&(a.alpha=n),a}var ai=1,di=1,vi=26/180*Math.PI,ui=Math.cos(vi),hi=Math.sin(vi),li=100/Math.log(1.39);function fi(i){var r=i.l,o=i.c,t=i.h,n=i.alpha,e={mode:"lab",l:(Math.exp(r*ai/li)-1)/.0039};if(void 0===t)e.a=e.b=0;else{var a=(Math.exp(.0435*o*di*ai)-1)/.075,d=a*Math.cos(t/180*Math.PI-vi),v=a*Math.sin(t/180*Math.PI-vi);e.a=d*ui-v/.83*hi,e.b=d*hi+v/.83*ui}return void 0!==n&&(e.alpha=n),e}function ci(i){return fi(ei(i))}function si(i){var r=i.l,o=i.a,t=i.b,n=i.alpha,e=o*ui+t*hi,a=.83*(t*ui-o*hi),d=Math.sqrt(e*e+a*a),v={mode:"dlch",l:li/ai*Math.log(1+.0039*r),c:Math.log(1+.075*d)/(.0435*di*ai)};return v.c&&(v.h=(Math.atan2(a,e)+vi)/Math.PI*180),void 0!==n&&(v.alpha=n),v}function pi(i){var r=i.l,o=i.c,t=i.h,n=i.alpha,e={mode:"dlab",l:r,a:0===o?0:o*Math.cos(t/180*Math.PI),b:0===o?0:o*Math.sin(t/180*Math.PI)};return void 0!==n&&(e.alpha=n),e}function bi(i){return pi(si(i))}var gi={mode:"dlab",output:{lab:ci,rgb:function(i){return J(ci(i))}},input:{lab:bi,rgb:function(i){return bi(T(i))}},channels:["l","a","b","alpha"],interpolate:{l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),a:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),b:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};var Mi={mode:"dlch",output:{lab:fi,dlab:pi,rgb:function(i){return J(fi(i))}},input:{lab:si,dlab:ei,rgb:function(i){return si(T(i))}},channels:["l","c","h","alpha"],interpolate:{l:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),c:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),h:q(z()),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}};var mi={mode:"yiq",output:{rgb:function(i){var r=i.y,o=i.i,t=i.q;return E({r:r+.95608445*o+.6208885*t,g:r-.27137664*o-.6486059*t,b:r-1.10561724*o+1.70250126*t,alpha:i.alpha})}},input:{rgb:function(i){var r=P(i),o=r.r,t=r.g,n=r.b,e=r.alpha,a={mode:"yiq",y:.29889531*o+.58662247*t+.11448223*n,i:.59597799*o-.2741761*t-.32180189*n,q:.21147017*o-.52261711*t+.31114694*n};return void 0!==e&&(a.alpha=e),a}},channels:["y","i","q","alpha"],interpolate:{y:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),i:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),q:q(function(i){if(2===i.length){if(void 0===i[0]&&void 0===i[1])return;return void 0!==i[0]&&void 0!==i[1]?i:void 0===i[0]?i[1]:i[0]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i}),alpha:q(function(i,r){if(2===i.length){if(void 0===i[0]&&void 0===i[1]||void 0===i[0]&&0===r||void 0===i[1]&&1===r)return;return[void 0===i[0]?1:i[0],void 0===i[1]?1:i[1]]}if(void 0!==i[0]||void 0!==i[1]||void 0!==i[2]||void 0!==i[3])return i.map(function(i){return void 0===i?1:i})})}},wi={},yi={},ki=[],qi=function(i){wi[i.mode]=Object.assign(wi[i.mode]||{},i.output),Object.keys(i.input||{}).forEach(function(r){wi[r]||(wi[r]={}),wi[r][i.mode]=i.input[r]}),yi[i.mode]=i,(i.parsers||[]).forEach(function(i){return ki.push(i)})},xi=function(i){return yi[i]},Ii=function(i){for(var r,o=0,t=ki.length;o<t&&void 0===(r=ki[o++](i)););return r},Pi=function(i){return void 0===i&&(i="rgb"),function(r){return void 0!==(r=function(i,r){return void 0===i?void 0:"object"!=typeof i?Ii(i):void 0===i.mode?Object.assign({},i,{mode:r}):i}(r,i))?r.mode===i?r:wi[r.mode][i]?wi[r.mode][i](r):"rgb"===i?wi[r.mode].rgb(r):wi.rgb[i](wi[r.mode].rgb(r)):void 0}},ji=function(i,r){return Math.round(i*(r=Math.pow(10,r)))/r};function Ei(i){return void 0===i&&(i=4),function(r){return"number"==typeof r?ji(r,i):r}}function $i(i){return Math.round(255*Math.max(0,Math.min(i,1)))}var Ri=Pi("rgb"),Oi=Ei(2);function zi(i,r){void 0===r&&(r="rgb");for(var o=xi(r).channels,t={mode:r},n=function(r){t[o[r]]=i.map(function(i){return i[o[r]]})},e=0;e<o.length;e++)n(e);return t}var Ci=function(i,r,o,t,n){var e=n*n,a=e*n;return((1-3*n+3*e-a)*i+(4-6*e+3*a)*r+(1+3*n+3*e-3*a)*o+a*t)/6},Fi=function(i){var r,o=i.length-1,t=new Array(o),n=new Array(o),e=new Array(o);for(t[1]=.25,n[1]=(6*i[1]-i[0])/4,r=2;r<o;++r)t[r]=1/(4-t[r-1]),n[r]=(6*i[r]-(r==o-1?i[o]:0)-n[r-1])*t[r];for(e[0]=i[0],e[o]=i[o],o-1>0&&(e[o-1]=n[o-1]),r=o-2;r>0;--r)e[r]=n[r]-t[r]*e[r+1];return e};var Ai=function(i,r,o,t,n,e){var a=e*e,d=(o-i)/(2*n),v=(t-r)/(2*n),u=(o-r)/n;return(d+v-2*u)/(n*n)*(a*e)+(3*u-2*d-v)/n*a+d*e+r};var Ni=Pi("rgb");function Di(i){var r=Ni(i);return void 0!==r&&r.r>=0&&r.r<=1&&r.g>=0&&r.g<=1&&r.b>=0&&r.b<=1}var Li=Pi("lch"),Si=Pi("rgb"),_i=function(i){return void 0===i?void 0:"object"!=typeof i?Ii(i):void 0===i.mode?void 0:i},Hi=function(i){return Math.max(0,Math.min(i,1))},Ki=function(i){var r=Si(i);return r.r=Hi(r.r),r.g=Hi(r.g),r.b=Hi(r.b),r};var Bi=function(i,r){void 0===i&&(i="rgb"),void 0===r&&(r=[1,1,1,0]);var o=xi(i).channels,t=Pi(i);return function(i,n){var e=t(i),a=t(n);return Math.sqrt(o.reduce(function(i,o,t){var n,d,v,u,h="h"===o?(n=e[o],d=a[o],v=R(n),u=R(d),Math.abs(u-v)>180?v-(u-360*Math.sign(u-v)):v-u):e[o]-a[o];return i+(r[t]||0)*Math.pow(isNaN(h)?0:h,2)},0))}},Gi=function(i){return i};qi(x),qi($),qi(C),qi(N),qi(D),qi(L),qi(U),qi(X),qi(ni),qi(gi),qi(Mi),qi(mi);var Ji=Pi("rgb"),Qi=Pi("lrgb"),Ti=Pi("hsl"),Ui=Pi("hsv"),Vi=Pi("hsi"),Wi=Pi("hwb"),Xi=Pi("lab"),Yi=Pi("lch"),Zi=Pi("cubehelix"),ir=Pi("dlab"),rr=Pi("dlch"),or=Pi("yiq");i.defineMode=qi,i.converter=Pi,i.hsl=Ti,i.hsv=Ui,i.hsi=Vi,i.hwb=Wi,i.rgb=Ji,i.lab=Xi,i.lch=Yi,i.lrgb=Qi,i.cubehelix=Zi,i.dlab=ir,i.dlch=rr,i.yiq=or,i.formatter=function(i){return void 0===i&&(i="rgb"),function(r){var o=Ri(r);if(void 0!==o){var t=$i(o.r),n=$i(o.g),e=$i(o.b);return"hex"===i?"#"+(1<<24|t<<16|n<<8|e).toString(16).slice(1):"rgb"===i?void 0===r.alpha||1===r.alpha?"rgb("+t+", "+n+", "+e+")":"rgba("+t+", "+n+", "+e+", "+Oi(r.alpha)+")":void 0}}},i.round=Ei,i.interpolate=function(i,r,o){void 0===r&&(r="rgb");var t=zi(i.map(Pi(r)),r);o=Object.assign({},xi(r).interpolate,o);var n=Object.keys(o);return function(i){i=Math.min(Math.max(0,i),1);for(var e,a={mode:r},d=0;d<n.length;d++)void 0!==(e=o[n[d]](t[n[d]],i))&&(a[n[d]]=e);return a}},i.interpolateNumber=w,i.interpolateAlpha=y,i.interpolateHue=z,i.interpolateFunctionLinear=q,i.interpolateFunctionSpline=function(i,r,o){return void 0===i&&(i=k),void 0===r&&(r="bspline"),void 0===o&&(o=1),function(t,n){n=Math.pow(n,o);var e=t.length-1,a=1===n?e-1:Math.floor(n*e);"natural"===r&&(t=Fi(t));var d=t[a],v=t[a+1],u=a>0?t[a-1]:2*d-v,h=a<e-1?t[a+2]:2*v-d,l=i([u,d,v,h]);return"object"==typeof l?Ci(l[0],l[1],l[2],l[3],(n-a/e)*e):l}},i.interpolateFunctionCosine=function(i,r){return void 0===i&&(i=k),void 0===r&&(r=1),function(o,t){var n=(t=Math.pow(t,r))*(o.length-1),e=Math.floor(n),a=o[e],d=o[e+1],v=n-e,u=i([a,d],v);if("object"==typeof u){a=u[0],d=u[1];var h=(1-Math.cos(v*Math.PI))/2;return a*(1-h)+d*h}return u}},i.interpolateFunctionMonotone=function(i,r){return void 0===i&&(i=k),void 0===r&&(r=1),function(o,t){t=Math.pow(t,r);var n,e=o.length-1;1===t?(n=e-1,t=1):n=Math.floor(t*e);var a=o[n],d=o[n+1],v=n>0?o[n-1]:2*a-d,u=n<e-1?o[n+2]:2*d-a,h=i([v,a,d,u]);return"object"==typeof h?Ai(h[0],h[1],h[2],h[3],1/e,t-n/e):h}},i.samples=function(i,r){if(void 0===i&&(i=2),void 0===r&&(r=1),i<2)return i<1?[]:[Math.pow(.5,r)];for(var o=[],t=0;t<i;t++)o.push(Math.pow(t/(i-1),r));return o},i.zip=zi,i.displayable=Di,i.clamp=function(i){return void 0===i&&(i="rgb"),function(r){if(void 0===(r=_i(r))||Di(r))return r;var o=Pi(r.mode);if("rgb"===i)return o(Ki(r));r=Li(r);var t=Object.assign({},r,{c:0});if(!Di(t))return o(Ki(t));for(var n=0,e=r.c;e-n>.01;)t.c=n+.5*(e-n),Di(t)?n=t.c:e=t.c;return o(t)}},i.nearest=function(i,r,o){void 0===r&&(r=Bi()),void 0===o&&(o=Gi);var t=i.map(function(i,r){return{color:o(i),i:r}});return function(o,n,e){return void 0===n&&(n=1),void 0===e&&(e=1/0),isFinite(n)&&(n=Math.max(1,Math.min(n,t.length-1))),t.forEach(function(i){i.d=r(o,i.color)}),t.sort(function(i,r){return i.d-r.d}).slice(0,n).filter(function(i){return i.d<e}).map(function(r){return i[r.i]})}},i.getModeDefinition=xi,i.parse=Ii,i.differenceEuclidean=Bi,i.differenceCie76=function(){return Bi("lab")},i.differenceCie94=function(i,r,o){void 0===i&&(i=1),void 0===r&&(r=.045),void 0===o&&(o=.015);var t=Pi("lab");return function(n,e){var a=t(n),d=t(e),v=a.l,u=a.a,h=a.b,l=Math.sqrt(u*u+h*h),f=d.l,c=d.a,s=d.b,p=Math.sqrt(c*c+s*s),b=Math.pow(v-f,2),g=Math.pow(l-p,2),M=Math.pow(u-c,2)+Math.pow(h-s,2)-g;return Math.sqrt(b/Math.pow(i,2)+g/Math.pow(1+r*l,2)+M/Math.pow(1+o*l,2))}},i.differenceCiede2000=function(i,r,o){void 0===i&&(i=1),void 0===r&&(r=1),void 0===o&&(o=1);var t=Pi("lab");return function(n,e){var a=t(n),d=t(e),v=a.l,u=a.a,h=a.b,l=Math.sqrt(u*u+h*h),f=d.l,c=d.a,s=d.b,p=(l+Math.sqrt(c*c+s*s))/2,b=.5*(1-Math.sqrt(Math.pow(p,7)/(Math.pow(p,7)+Math.pow(25,7)))),g=u*(1+b),M=c*(1+b),m=Math.sqrt(g*g+h*h),w=Math.sqrt(M*M+s*s),y=Math.abs(g)+Math.abs(h)===0?0:Math.atan2(h,g);y+=2*(y<0)*Math.PI;var k=Math.abs(M)+Math.abs(s)===0?0:Math.atan2(s,M);k+=2*(k<0)*Math.PI;var q=f-v,x=w-m,I=m*w==0?0:k-y;I-=2*(I>Math.PI)*Math.PI,I+=2*(I<-Math.PI)*Math.PI;var P,j=2*Math.sqrt(m*w)*Math.sin(I/2),E=(v+f)/2,$=(m+w)/2;m*w==0?P=y+k:(P=(y+k)/2,P-=(Math.abs(y-k)>Math.PI)*Math.PI,P+=2*(P<0)*Math.PI);var R=Math.pow(E-50,2),O=1-.17*Math.cos(P-Math.PI/6)+.24*Math.cos(2*P)+.32*Math.cos(3*P+Math.PI/30)-.2*Math.cos(4*P-63*Math.PI/180),z=1+.015*R/Math.sqrt(20+R),C=1+.045*$,F=1+.015*$*O,A=30*Math.PI/180*Math.exp(-1*Math.pow((180/Math.PI*P-275)/25,2)),N=2*Math.sqrt(Math.pow($,7)/(Math.pow($,7)+Math.pow(25,7))),D=-1*Math.sin(2*A)*N;return Math.sqrt(Math.pow(q/(i*z),2)+Math.pow(x/(r*C),2)+Math.pow(j/(o*F),2)+D*x/(r*C)*j/(o*F))}},i.differenceCmc=function(i,r){void 0===i&&(i=1),void 0===r&&(r=1);var o=Pi("lab");return function(t,n){var e=o(t),a=e.l,d=e.a,v=e.b,u=Math.sqrt(d*d+v*v),h=Math.atan2(v,d);h+=2*Math.PI*(h<0);var l=o(n),f=l.l,c=l.a,s=l.b,p=Math.sqrt(c*c+s*s),b=Math.pow(a-f,2),g=Math.pow(u-p,2),M=Math.pow(d-c,2)+Math.pow(v-s,2)-g,m=Math.sqrt(Math.pow(u,4)/(Math.pow(u,4)+1900)),w=a<16?.511:.040975*a/(1+.01765*a),y=.0638*u/(1+.0131*u)+.638,k=y*(m*(h>=164/180*Math.PI&&h<=345/180*Math.PI?.56+Math.abs(.2*Math.cos(h+168/180*Math.PI)):.36+Math.abs(.4*Math.cos(h+35/180*Math.PI)))+1-m);return Math.sqrt(b/Math.pow(i*w,2)+g/Math.pow(r*y,2)+M/Math.pow(k,2))}},i.differenceDin99o=function(){return Bi("dlab")},i.differenceKotsarenkoRamos=function(){return Bi("yiq",[.5053,.299,.1957])},i.colorsNamed=o,Object.defineProperty(i,"__esModule",{value:!0})});
!function(a,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(a.culori={})}(this,function(a){"use strict";function r(a,r){if("number"==typeof a)return 3===r?{mode:"rgb",r:(a>>8&15|a>>4&240)/255,g:(a>>4&15|240&a)/255,b:(15&a|a<<4&240)/255}:4===r?{mode:"rgb",r:(a>>12&15|a>>8&240)/255,g:(a>>8&15|a>>4&240)/255,b:(a>>4&15|240&a)/255,alpha:(15&a|a<<4&240)/255}:6===r?{mode:"rgb",r:(a>>16&255)/255,g:(a>>8&255)/255,b:(255&a)/255}:8===r?{mode:"rgb",r:(a>>24&255)/255,g:(a>>16&255)/255,b:(a>>8&255)/255,alpha:(255&a)/255}:void 0}var t={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};var e=(/([+-]?\d*\.?\d+(?:[eE][+-]?\d+)?)/+"").replace(/^\/|\/$/g,""),n=e+"%",o="(?:"+e+"%|"+e+")",i="(?:"+e+"(deg|grad|rad|turn)|"+e+")",h="\\s*,\\s*",l="\\s+",u=new RegExp("^rgba?\\(\\s*"+e+h+e+h+e+"\\s*(?:,\\s*"+o+"\\s*)?\\)$"),d=new RegExp("^rgba?\\(\\s*"+n+h+n+h+n+"\\s*(?:,\\s*"+o+"\\s*)?\\)$"),c=new RegExp("^rgba?\\(\\s*"+e+l+e+l+e+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),s=new RegExp("^rgba?\\(\\s*"+n+l+n+l+n+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),p=new RegExp("^hsla?\\(\\s*"+i+h+n+h+n+"\\s*(?:,\\s*"+o+"\\s*)?\\)$"),b=new RegExp("^hsla?\\(\\s*"+i+l+n+l+n+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),v=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,g=new RegExp("^hwb\\(\\s*"+i+l+n+l+n+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),f=new RegExp("^lab\\(\\s*"+e+l+e+l+e+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),M=new RegExp("^lch\\(\\s*"+e+l+e+l+i+"\\s*(?:\\/\\s*"+o+"\\s*)?\\)$"),m=new RegExp("^gray\\(\\s*"+e+"()()\\s*(?:\\/\\s*"+o+"\\s*)?\\)$");function w(a){return a}var y=function(a){for(var r=[],t=0;t<a.length-1;t++){var e=a[t],n=a[t+1];void 0===e&&void 0===n?r.push(void 0):void 0!==e&&void 0!==n?r.push([e,n]):r.push(void 0!==e?[e,e]:[n,n])}return r};function k(a,r){return void 0===a&&(a=w),void 0===r&&(r=1),function(t){var e=a(t),n=y(e);return function(a){var t=(a=Math.pow(a,r))*n.length,e=1===a?n.length-1:Math.floor(t),o=n[e];return void 0===o?void 0:o[0]+(t-e)*(o[1]-o[0])}}}function q(a){return a.map(function(a,r,t){return void 0===a&&void 0!==t[r+1]?1:a})}var x={mode:"rgb",channels:["r","g","b","alpha"],parsers:[function(a){var t;return(t=a.match(v))?r(parseInt(t[1],16),t[1].length):void 0},function(a){var r,t;if(r=a.match(u)||a.match(c))t={mode:"rgb",r:r[1]/255,g:r[2]/255,b:r[3]/255};else{if(!(r=a.match(d)||a.match(s)))return;t={mode:"rgb",r:r[1]/100,g:r[2]/100,b:r[3]/100}}return void 0!==r[4]?t.alpha=r[4]/100:void 0!==r[5]&&(t.alpha=+r[5]),t},function(a){return"string"==typeof a&&r(t[a.toLowerCase()],6)||void 0},function(a){return"transparent"===a?r(0,8):void 0}],interpolate:{r:k(),g:k(),b:k(),alpha:k(q)}},I=function(a){return a<.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)};function P(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o={mode:"lrgb",r:I(r),g:I(t),b:I(e)};return void 0!==n&&(o.alpha=n),o}var E=function(a){return a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a};function j(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o={mode:"rgb",r:E(r),g:E(t),b:E(e)};return void 0!==n&&(o.alpha=n),o}var $={mode:"lrgb",output:{rgb:j},input:{rgb:P},channels:["r","g","b","alpha"],interpolate:{r:k(),g:k(),b:k(),alpha:k(q)}};function R(a){return(a%=360)<0?a+360:a}var C=function(a,r){switch(r){case"deg":return+a;case"rad":return a/Math.PI*180;case"grad":return a/10*9;case"turn":return 360*a}};function O(a){return a.map(function(a,r,t){var e=t[r-1],n=t[r];if(void 0!==e&&void 0!==n){var o=R(e),i=R(n);return Math.abs(i-o)>180?R(i-360*Math.sign(i-o)):a}return a})}var z={mode:"hsl",output:{rgb:function(a){var r=a.h,t=a.s,e=a.l,n=a.alpha;r=R(r);var o,i=e+t*(e<.5?e:1-e),h=i-2*(i-e)*Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:o={r:i,g:h,b:2*e-i};break;case 1:o={r:h,g:i,b:2*e-i};break;case 2:o={r:2*e-i,g:i,b:h};break;case 3:o={r:2*e-i,g:h,b:i};break;case 4:o={r:h,g:2*e-i,b:i};break;case 5:o={r:i,g:2*e-i,b:h};break;default:o={r:2*e-i,g:2*e-i,b:2*e-i}}return o.mode="rgb",void 0!==n&&(o.alpha=n),o}},input:{rgb:function(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o=Math.max(r,t,e),i=Math.min(r,t,e),h={mode:"hsl",s:o===i?0:(o-i)/(1-Math.abs(o+i-1)),l:.5*(o+i)};return o-i!=0&&(h.h=60*(o===r?(t-e)/(o-i)+6*(t<e):o===t?(e-r)/(o-i)+2:(r-t)/(o-i)+4)),void 0!==n&&(h.alpha=n),h}},channels:["h","s","l","alpha"],parsers:[function(a){if("string"==typeof a){var r=a.match(p)||a.match(b);if(r){var t={mode:"hsl",h:void 0===r[3]?C(r[1],r[2]):+r[3],s:Math.min(Math.max(0,r[4]/100),1),l:Math.min(Math.max(0,r[5]/100),1)};return void 0!==r[6]?t.alpha=r[6]/100:void 0!==r[7]&&(t.alpha=r[7]/255),t}}}],interpolate:{h:k(O),s:k(),l:k(),alpha:k(q)}};function A(a){var r=a.h,t=a.s,e=a.v,n=a.alpha;r=R(r);var o,i=Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:o={r:e,g:e*(1-t*i),b:e*(1-t)};break;case 1:o={r:e*(1-t*i),g:e,b:e*(1-t)};break;case 2:o={r:e*(1-t),g:e,b:e*(1-t*i)};break;case 3:o={r:e*(1-t),g:e*(1-t*i),b:e};break;case 4:o={r:e*(1-t*i),g:e*(1-t),b:e};break;case 5:o={r:e,g:e*(1-t),b:e*(1-t*i)};break;default:o={r:e*(1-t),g:e*(1-t),b:e*(1-t)}}return o.mode="rgb",void 0!==n&&(o.alpha=n),o}function N(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o=Math.max(r,t,e),i=Math.min(r,t,e),h={mode:"hsv",s:0===o?0:1-i/o,v:o};return o-i!=0&&(h.h=60*(o===r?(t-e)/(o-i)+6*(t<e):o===t?(e-r)/(o-i)+2:(r-t)/(o-i)+4)),void 0!==n&&(h.alpha=n),h}var S={mode:"hsv",output:{rgb:A},input:{rgb:N},channels:["h","s","v","alpha"],interpolate:{h:k(O),s:k(),v:k(),alpha:k(q)}};var D={mode:"hsi",output:{rgb:function(a){var r=a.h,t=a.s,e=a.i,n=a.alpha;r=R(r);var o,i=Math.abs(r/60%2-1);switch(Math.floor(r/60)){case 0:o={r:e*(1+t*(3/(2-i)-1)),g:e*(1+t*(3*(1-i)/(2-i)-1)),b:e*(1-t)};break;case 1:o={r:e*(1+t*(3*(1-i)/(2-i)-1)),g:e*(1+t*(3/(2-i)-1)),b:e*(1-t)};break;case 2:o={r:e*(1-t),g:e*(1+t*(3/(2-i)-1)),b:e*(1+t*(3*(1-i)/(2-i)-1))};break;case 3:o={r:e*(1-t),g:e*(1+t*(3*(1-i)/(2-i)-1)),b:e*(1+t*(3/(2-i)-1))};break;case 4:o={r:e*(1+t*(3*(1-i)/(2-i)-1)),g:e*(1-t),b:e*(1+t*(3/(2-i)-1))};break;case 5:o={r:e*(1+t*(3/(2-i)-1)),g:e*(1-t),b:e*(1+t*(3*(1-i)/(2-i)-1))};break;default:o={r:e*(1-t),g:e*(1-t),b:e*(1-t)}}return o.mode="rgb",void 0!==n&&(o.alpha=n),o}},input:{rgb:function(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o=Math.max(r,t,e),i=Math.min(r,t,e),h={mode:"hsi",s:r+t+e===0?0:1-3*i/(r+t+e),i:(r+t+e)/3};return o-i!=0&&(h.h=60*(o===r?(t-e)/(o-i)+6*(t<e):o===t?(e-r)/(o-i)+2:(r-t)/(o-i)+4)),void 0!==n&&(h.alpha=n),h}},channels:["h","s","i","alpha"],interpolate:{h:k(O),s:k(),i:k(),alpha:k(q)}};var L={mode:"hwb",output:{rgb:function(a){var r=a.h,t=a.w,e=a.b;if(t+e>1){var n=t+e;t/=n,e/=n}return A({h:r,s:1===e?1:1-t/(1-e),v:1-e,alpha:a.alpha})}},input:{rgb:function(a){var r=N(a);if(void 0!==r){var t={mode:"hwb",w:(1-r.s)*r.v,b:1-r.v};return void 0!==r.h&&(t.h=r.h),void 0!==r.alpha&&(t.alpha=r.alpha),t}}},channels:["h","w","b","alpha"],parsers:[function(a){if("string"==typeof a){var r=a.match(g);if(r){var t={mode:"hwb",h:void 0===r[3]?C(r[1],r[2]):+r[3],w:r[4]/100,b:r[5]/100};if(t.w+t.b>1){var e=t.w+t.b;t.w/=e,t.b/=e}return void 0!==r[6]?t.alpha=r[6]/100:void 0!==r[7]&&(t.alpha=r[7]/255),t}}}],interpolate:{h:k(O),w:k(),b:k(),alpha:k(q)}},_=.96422,B=1,F=.82521,H=Math.pow(29,3)/Math.pow(3,3),K=Math.pow(6,3)/Math.pow(29,3),G=function(a){return Math.pow(a,3)>K?Math.pow(a,3):(116*a-16)/H};function J(a){var r,t,e,n,o,i=function(a){var r=a.x,t=a.y,e=a.z;return j({r:3.1338561*r-1.6168667*t-.4906146*e,g:-.9787684*r+1.9161415*t+.033454*e,b:.0719453*r-.2289914*t+1.4052427*e})}((t=(r=a).l,e=r.a,o=(n=(t+16)/116)-r.b/200,{x:G(e/500+n)*_,y:G(n)*B,z:G(o)*F}));return i.mode="rgb",void 0!==a.alpha&&(i.alpha=a.alpha),i}var Q=function(a){return a>K?Math.cbrt(a):(H*a+16)/116};function T(a){var r,t,e,n,o,i,h=(r=function(a){var r=P(a),t=r.r,e=r.g,n=r.b;return{x:.4360747*t+.3850649*e+.1430804*n,y:.2225045*t+.7168786*e+.0606169*n,z:.0139322*t+.0971045*e+.7141733*n}}(a),t=r.x,e=r.y,n=r.z,o=Q(t/_),{mode:"lab",l:116*(i=Q(e/B))-16,a:500*(o-i),b:200*(i-Q(n/F))});return a.r===a.b===a.g&&(h.a=h.b=0),void 0!==a.alpha&&(h.alpha=a.alpha),h}var U={mode:"lab",output:{rgb:J},input:{rgb:T},channels:["l","a","b","alpha"],parsers:[function(a){if("string"==typeof a){var r,t;if(r=a.match(f))t={mode:"lab",l:+r[1],a:+r[2],b:+r[3]};else{if(!(r=a.match(m)))return;t={mode:"lab",l:+r[1],a:0,b:0}}return void 0!==r[4]?t.alpha=r[4]/100:void 0!==r[5]&&(t.alpha=+r[5]),t}}],interpolate:{l:k(),a:k(),b:k(),alpha:k(q)}};function V(a){var r=a.l,t=a.a,e=a.b,n=a.alpha,o=Math.sqrt(t*t+e*e),i={mode:"lch",l:r,c:o};return o&&(i.h=R(180*Math.atan2(e,t)/Math.PI)),void 0!==n&&(i.alpha=n),i}function W(a){var r=a.l,t=a.c,e=a.h,n=a.alpha,o={mode:"lab",l:r,a:0===t?0:t*Math.cos(e/180*Math.PI),b:0===t?0:t*Math.sin(e/180*Math.PI)};return void 0!==n&&(o.alpha=n),o}var X={mode:"lch",output:{lab:W,rgb:function(a){return J(W(a))}},input:{rgb:function(a){return V(T(a))},lch:V},channels:["l","c","h","alpha"],parsers:[function(a){if("string"==typeof a){var r=a.match(M);if(r){var t={mode:"lch",l:+r[1],c:Math.max(0,+r[2]),h:void 0===r[5]?C(r[3],r[4]):+r[5]};return void 0!==r[6]?t.alpha=r[6]/100:void 0!==r[7]&&(t.alpha=+r[7]),t}}}],interpolate:{h:k(O),c:k(),l:k(),alpha:k(q)}},Y=[-.14861,1.78277,-.29227,-.90649,1.97294,0],Z=Math.PI/180,aa=180/Math.PI,ra=Y[3]*Y[4],ta=Y[1]*Y[4],ea=Y[1]*Y[2]-Y[0]*Y[3];var na={mode:"cubehelix",channels:["h","s","l","alpha"],input:{rgb:function(a){var r=a.r,t=a.g,e=a.b,n=a.alpha,o=(ea*e+r*ra-t*ta)/(ea+ra-ta),i=e-o,h=(Y[4]*(t-o)-Y[2]*i)/Y[3],l={mode:"cubehelix",l:o,s:0===o||1===o?void 0:Math.sqrt(i*i+h*h)/(Y[4]*o*(1-o))};return l.s&&(l.h=Math.atan2(h,i)*aa-120),void 0!==n&&(l.alpha=n),l}},output:{rgb:function(a){var r=a.h,t=a.s,e=a.l,n=a.alpha,o={mode:"rgb"};r=(void 0===r?0:r+120)*Z;var i=void 0===t?0:t*e*(1-e),h=Math.cos(r),l=Math.sin(r);return o.r=e+i*(Y[0]*h+Y[1]*l),o.g=e+i*(Y[2]*h+Y[3]*l),o.b=e+i*(Y[4]*h+Y[5]*l),void 0!==n&&(o.alpha=n),o}},interpolate:{h:k(O),s:k(),l:k(),alpha:k(q)}};function oa(a){var r=a.l,t=a.a,e=a.b,n=a.alpha,o=Math.sqrt(t*t+e*e),i={mode:"dlch",l:r,c:o};return o&&(i.h=R(180*Math.atan2(e,t)/Math.PI)),void 0!==n&&(i.alpha=n),i}var ia=1,ha=1,la=26/180*Math.PI,ua=Math.cos(la),da=Math.sin(la),ca=100/Math.log(1.39);function sa(a){var r=a.l,t=a.c,e=a.h,n=a.alpha,o={mode:"lab",l:(Math.exp(r*ia/ca)-1)/.0039};if(void 0===e)o.a=o.b=0;else{var i=(Math.exp(.0435*t*ha*ia)-1)/.075,h=i*Math.cos(e/180*Math.PI-la),l=i*Math.sin(e/180*Math.PI-la);o.a=h*ua-l/.83*da,o.b=h*da+l/.83*ua}return void 0!==n&&(o.alpha=n),o}function pa(a){return sa(oa(a))}function ba(a){var r=a.l,t=a.a,e=a.b,n=a.alpha,o=t*ua+e*da,i=.83*(e*ua-t*da),h=Math.sqrt(o*o+i*i),l={mode:"dlch",l:ca/ia*Math.log(1+.0039*r),c:Math.log(1+.075*h)/(.0435*ha*ia)};return l.c&&(l.h=(Math.atan2(i,o)+la)/Math.PI*180),void 0!==n&&(l.alpha=n),l}function va(a){var r=a.l,t=a.c,e=a.h,n=a.alpha,o={mode:"dlab",l:r,a:0===t?0:t*Math.cos(e/180*Math.PI),b:0===t?0:t*Math.sin(e/180*Math.PI)};return void 0!==n&&(o.alpha=n),o}function ga(a){return va(ba(a))}var fa={mode:"dlab",output:{lab:pa,rgb:function(a){return J(pa(a))}},input:{lab:ga,rgb:function(a){return ga(T(a))}},channels:["l","a","b","alpha"],interpolate:{l:k(),a:k(),b:k(),alpha:k(q)}};var Ma={mode:"dlch",output:{lab:sa,dlab:va,rgb:function(a){return J(sa(a))}},input:{lab:ba,dlab:oa,rgb:function(a){return ba(T(a))}},channels:["l","c","h","alpha"],interpolate:{l:k(),c:k(),h:k(O),alpha:k(q)}};var ma={mode:"yiq",output:{rgb:function(a){var r=a.y,t=a.i,e=a.q;return j({r:r+.95608445*t+.6208885*e,g:r-.27137664*t-.6486059*e,b:r-1.10561724*t+1.70250126*e,alpha:a.alpha})}},input:{rgb:function(a){var r=P(a),t=r.r,e=r.g,n=r.b,o=r.alpha,i={mode:"yiq",y:.29889531*t+.58662247*e+.11448223*n,i:.59597799*t-.2741761*e-.32180189*n,q:.21147017*t-.52261711*e+.31114694*n};return void 0!==o&&(i.alpha=o),i}},channels:["y","i","q","alpha"],interpolate:{y:k(),i:k(),q:k(),alpha:k(q)}},wa={},ya={},ka=[],qa=function(a){wa[a.mode]=Object.assign(wa[a.mode]||{},a.output),Object.keys(a.input||{}).forEach(function(r){wa[r]||(wa[r]={}),wa[r][a.mode]=a.input[r]}),ya[a.mode]=a,(a.parsers||[]).forEach(function(a){return ka.push(a)})},xa=function(a){return ya[a]},Ia=function(a){for(var r,t=0,e=ka.length;t<e&&void 0===(r=ka[t++](a)););return r},Pa=function(a){return void 0===a&&(a="rgb"),function(r){return void 0!==(r=function(a,r){return void 0===a?void 0:"object"!=typeof a?Ia(a):void 0===a.mode?Object.assign({},a,{mode:r}):a}(r,a))?r.mode===a?r:wa[r.mode][a]?wa[r.mode][a](r):"rgb"===a?wa[r.mode].rgb(r):wa.rgb[a](wa[r.mode].rgb(r)):void 0}},Ea=function(a,r){return Math.round(a*(r=Math.pow(10,r)))/r};function ja(a){return void 0===a&&(a=4),function(r){return"number"==typeof r?Ea(r,a):r}}function $a(a){return Math.round(255*Math.max(0,Math.min(a,1)))}var Ra=Pa("rgb"),Ca=ja(2);var Oa=function(a,r,t,e,n){var o=n*n,i=o*n;return((1-3*n+3*o-i)*a+(4-6*o+3*i)*r+(1+3*n+3*o-3*i)*t+i*e)/6};function za(a,r,t){return void 0===a&&(a=w),void 0===r&&(r="default"),void 0===t&&(t=1),function(r){var e=a(r);return function(a){a=Math.pow(a,t);var r=e.length-1,n=1===a?r-1:Math.floor(a*r);return Oa(n>0?e[n-1]:2*e[n]-e[n+1],e[n],e[n+1],n<r-1?e[n+2]:2*e[n+1]-e[n],(a-n/r)*r)}}}var Aa=function(a){var r,t=a.length-1,e=new Array(t),n=new Array(t),o=new Array(t);for(e[1]=.25,n[1]=(6*a[1]-a[0])/4,r=2;r<t;++r)e[r]=1/(4-e[r-1]),n[r]=(6*a[r]-(r==t-1?a[t]:0)-n[r-1])*e[r];for(o[0]=a[0],o[t]=a[t],t-1>0&&(o[t-1]=n[t-1]),r=t-2;r>0;--r)o[r]=n[r]-e[r]*o[r+1];return o};var Na=function(a,r,t,e,n,o){var i=o*o,h=(t-a)/(2*n),l=(e-r)/(2*n),u=(t-r)/n;return(h+l-2*u)/(n*n)*(i*o)+(3*u-2*h-l)/n*i+h*o+r};var Sa=Pa("rgb");function Da(a){var r=Sa(a);return void 0!==r&&r.r>=0&&r.r<=1&&r.g>=0&&r.g<=1&&r.b>=0&&r.b<=1}var La=Pa("lch"),_a=Pa("rgb"),Ba=function(a){return void 0===a?void 0:"object"!=typeof a?Ia(a):void 0===a.mode?void 0:a},Fa=function(a){return Math.max(0,Math.min(a,1))},Ha=function(a){var r=_a(a);return r.r=Fa(r.r),r.g=Fa(r.g),r.b=Fa(r.b),r};var Ka=function(a,r){void 0===a&&(a="rgb"),void 0===r&&(r=[1,1,1,0]);var t=xa(a).channels,e=Pa(a);return function(a,n){var o=e(a),i=e(n);return Math.sqrt(t.reduce(function(a,t,e){var n,h,l,u,d="h"===t?(n=o[t],h=i[t],l=R(n),u=R(h),Math.abs(u-l)>180?l-(u-360*Math.sign(u-l)):l-u):o[t]-i[t];return a+(r[e]||0)*Math.pow(isNaN(d)?0:d,2)},0))}},Ga=function(a){return a};qa(x),qa($),qa(z),qa(S),qa(D),qa(L),qa(U),qa(X),qa(na),qa(fa),qa(Ma),qa(ma);var Ja=Pa("rgb"),Qa=Pa("lrgb"),Ta=Pa("hsl"),Ua=Pa("hsv"),Va=Pa("hsi"),Wa=Pa("hwb"),Xa=Pa("lab"),Ya=Pa("lch"),Za=Pa("cubehelix"),ar=Pa("dlab"),rr=Pa("dlch"),tr=Pa("yiq");a.defineMode=qa,a.converter=Pa,a.hsl=Ta,a.hsv=Ua,a.hsi=Va,a.hwb=Wa,a.rgb=Ja,a.lab=Xa,a.lch=Ya,a.lrgb=Qa,a.cubehelix=Za,a.dlab=ar,a.dlch=rr,a.yiq=tr,a.formatter=function(a){return void 0===a&&(a="rgb"),function(r){var t=Ra(r);if(void 0!==t){var e=$a(t.r),n=$a(t.g),o=$a(t.b);return"hex"===a?"#"+(1<<24|e<<16|n<<8|o).toString(16).slice(1):"rgb"===a?void 0===r.alpha||1===r.alpha?"rgb("+e+", "+n+", "+o+")":"rgba("+e+", "+n+", "+o+", "+Ca(r.alpha)+")":void 0}}},a.round=ja,a.interpolate=function(a,r,t){void 0===r&&(r="rgb");var e=xa(r),n=a.map(Pa(r)),o=e.channels.reduce(function(a,r){return a[r]=n.map(function(a){return a[r]}),a},{}),i=e.channels.reduce(function(a,r){return a[r]=a[r](o[r]),a},Object.assign({},e.interpolate,t));return function(a){return a=Math.min(Math.max(0,a),1),e.channels.reduce(function(r,t){var e=i[t](a);return void 0!==e&&(r[t]=e),r},{mode:r})}},a.interpolateHue=O,a.interpolateAlpha=q,a.interpolateLinear=k,a.interpolateCosine=function(a,r){return void 0===a&&(a=w),void 0===r&&(r=1),function(t){var e=a(e);return function(t){var n=(t=Math.pow(t,r))*(e.length-1),o=Math.floor(n),i=e[o],h=e[o+1],l=n-o,u=a([i,h],l);if("object"==typeof u){i=u[0],h=u[1];var d=(1-Math.cos(l*Math.PI))/2;return i*(1-d)+h*d}return u}}},a.interpolateSplineBasis=za,a.interpolateSplineNatural=function(a,r,t){return void 0===a&&(a=w),void 0===r&&(r="default"),void 0===t&&(t=1),function(e){var n=a(e);return za(w,r,t)(Aa(n))}},a.interpolateSplineMonotone=function(a,r){return void 0===a&&(a=w),void 0===r&&(r=1),function(t){var e=a(t);return function(t){t=Math.pow(t,r);var n,o=e.length-1;1===t?(n=o-1,t=1):n=Math.floor(t*o);var i=e[n],h=e[n+1],l=n>0?e[n-1]:2*i-h,u=n<o-1?e[n+2]:2*h-i,d=a([l,i,h,u]);return"object"==typeof d?Na(d[0],d[1],d[2],d[3],1/o,t-n/o):d}}},a.samples=function(a,r){if(void 0===a&&(a=2),void 0===r&&(r=1),a<2)return a<1?[]:[Math.pow(.5,r)];for(var t=[],e=0;e<a;e++)t.push(Math.pow(e/(a-1),r));return t},a.displayable=Da,a.clamp=function(a){return void 0===a&&(a="rgb"),function(r){if(void 0===(r=Ba(r))||Da(r))return r;var t=Pa(r.mode);if("rgb"===a)return t(Ha(r));r=La(r);var e=Object.assign({},r,{c:0});if(!Da(e))return t(Ha(e));for(var n=0,o=r.c;o-n>.01;)e.c=n+.5*(o-n),Da(e)?n=e.c:o=e.c;return t(e)}},a.nearest=function(a,r,t){void 0===r&&(r=Ka()),void 0===t&&(t=Ga);var e=a.map(function(a,r){return{color:t(a),i:r}});return function(t,n,o){return void 0===n&&(n=1),void 0===o&&(o=1/0),isFinite(n)&&(n=Math.max(1,Math.min(n,e.length-1))),e.forEach(function(a){a.d=r(t,a.color)}),e.sort(function(a,r){return a.d-r.d}).slice(0,n).filter(function(a){return a.d<o}).map(function(r){return a[r.i]})}},a.getModeDefinition=xa,a.parse=Ia,a.differenceEuclidean=Ka,a.differenceCie76=function(){return Ka("lab")},a.differenceCie94=function(a,r,t){void 0===a&&(a=1),void 0===r&&(r=.045),void 0===t&&(t=.015);var e=Pa("lab");return function(n,o){var i=e(n),h=e(o),l=i.l,u=i.a,d=i.b,c=Math.sqrt(u*u+d*d),s=h.l,p=h.a,b=h.b,v=Math.sqrt(p*p+b*b),g=Math.pow(l-s,2),f=Math.pow(c-v,2),M=Math.pow(u-p,2)+Math.pow(d-b,2)-f;return Math.sqrt(g/Math.pow(a,2)+f/Math.pow(1+r*c,2)+M/Math.pow(1+t*c,2))}},a.differenceCiede2000=function(a,r,t){void 0===a&&(a=1),void 0===r&&(r=1),void 0===t&&(t=1);var e=Pa("lab");return function(n,o){var i=e(n),h=e(o),l=i.l,u=i.a,d=i.b,c=Math.sqrt(u*u+d*d),s=h.l,p=h.a,b=h.b,v=(c+Math.sqrt(p*p+b*b))/2,g=.5*(1-Math.sqrt(Math.pow(v,7)/(Math.pow(v,7)+Math.pow(25,7)))),f=u*(1+g),M=p*(1+g),m=Math.sqrt(f*f+d*d),w=Math.sqrt(M*M+b*b),y=Math.abs(f)+Math.abs(d)===0?0:Math.atan2(d,f);y+=2*(y<0)*Math.PI;var k=Math.abs(M)+Math.abs(b)===0?0:Math.atan2(b,M);k+=2*(k<0)*Math.PI;var q=s-l,x=w-m,I=m*w==0?0:k-y;I-=2*(I>Math.PI)*Math.PI,I+=2*(I<-Math.PI)*Math.PI;var P,E=2*Math.sqrt(m*w)*Math.sin(I/2),j=(l+s)/2,$=(m+w)/2;m*w==0?P=y+k:(P=(y+k)/2,P-=(Math.abs(y-k)>Math.PI)*Math.PI,P+=2*(P<0)*Math.PI);var R=Math.pow(j-50,2),C=1-.17*Math.cos(P-Math.PI/6)+.24*Math.cos(2*P)+.32*Math.cos(3*P+Math.PI/30)-.2*Math.cos(4*P-63*Math.PI/180),O=1+.015*R/Math.sqrt(20+R),z=1+.045*$,A=1+.015*$*C,N=30*Math.PI/180*Math.exp(-1*Math.pow((180/Math.PI*P-275)/25,2)),S=2*Math.sqrt(Math.pow($,7)/(Math.pow($,7)+Math.pow(25,7))),D=-1*Math.sin(2*N)*S;return Math.sqrt(Math.pow(q/(a*O),2)+Math.pow(x/(r*z),2)+Math.pow(E/(t*A),2)+D*x/(r*z)*E/(t*A))}},a.differenceCmc=function(a,r){void 0===a&&(a=1),void 0===r&&(r=1);var t=Pa("lab");return function(e,n){var o=t(e),i=o.l,h=o.a,l=o.b,u=Math.sqrt(h*h+l*l),d=Math.atan2(l,h);d+=2*Math.PI*(d<0);var c=t(n),s=c.l,p=c.a,b=c.b,v=Math.sqrt(p*p+b*b),g=Math.pow(i-s,2),f=Math.pow(u-v,2),M=Math.pow(h-p,2)+Math.pow(l-b,2)-f,m=Math.sqrt(Math.pow(u,4)/(Math.pow(u,4)+1900)),w=i<16?.511:.040975*i/(1+.01765*i),y=.0638*u/(1+.0131*u)+.638,k=y*(m*(d>=164/180*Math.PI&&d<=345/180*Math.PI?.56+Math.abs(.2*Math.cos(d+168/180*Math.PI)):.36+Math.abs(.4*Math.cos(d+35/180*Math.PI)))+1-m);return Math.sqrt(g/Math.pow(a*w,2)+f/Math.pow(r*y,2)+M/Math.pow(k,2))}},a.differenceDin99o=function(){return Ka("dlab")},a.differenceKotsarenkoRamos=function(){return Ka("yiq",[.5053,.299,.1957])},a.colorsNamed=t,Object.defineProperty(a,"__esModule",{value:!0})});
## Culori Changelog
### 0.7.0
#### Breaking changes
Revamped the interpolation UI to be terser ([#55](https://github.com/Evercoder/culori/issues/55)). The interpolation functions have been renamed, and their implementation has been refactored.
### 0.6.0

@@ -4,0 +10,0 @@

{
"name": "culori",
"version": "0.6.0",
"version": "0.7.0",
"main": "build/culori.umd.js",

@@ -5,0 +5,0 @@ "browser": "build/culori.umd.js",

@@ -212,22 +212,18 @@ # Culori

> πŸ•³ expand section
<a name="culoriInterpolateLinear" href="#culoriInterpolateLinear">#</a> culori.**interpolateLinear** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/linear.js 'Source')
<a name="culoriInterpolateFunctionLinear" href="#culoriInterpolateFunctionLinear">#</a> culori.**interpolateFunctionLinear** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateFunctionLinear.js 'Source')
<a name="culoriInterpolateSplineBasis" href="#culoriInterpolateSplineBasis">#</a> culori.**interpolateSplineBasis** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/splineBasis.js 'Source')
<a name="culoriInterpolateFunctionSpline" href="#culoriInterpolateFunctionSpline">#</a> culori.**interpolateFunctionSpline** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateFunctionSpline.js 'Source')
<a name="culoriInterpolateSplineNatural" href="#culoriInterpolateSplineNatural">#</a> culori.**interpolateSplineNatural** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/splineNatural.js 'Source')
<a name="culoriInterpolateFunctionMonotone" href="#culoriInterpolateFunctionMonotone">#</a> culori.**interpolateFunctionMonotone** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateFunctionMonotone.js 'Source')
<a name="culoriInterpolateSplineMonotone" href="#culoriInterpolateSplineMonotone">#</a> culori.**interpolateSplineMonotone** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/splineMonotone.js 'Source')
<a name="culoriInterpolateFunctionCosine" href="#culoriInterpolateFunctionCosine">#</a> culori.**interpolateFunctionCosine** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateFunctionCosine.js 'Source')
<a name="culoriInterpolateCosine" href="#culoriInterpolateCosine">#</a> culori.**interpolateCosine** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/cosine.js 'Source')
#### Interpolation modes
> πŸ•³ expand section
<a name="culoriInterpolateHue" href="#culoriInterpolateHue">#</a> culori.**interpolateHue** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/hue.js 'Source')
<a name="culoriInterpolateNumber" href="#culoriInterpolateNumber">#</a> culori.**interpolateNumber** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateNumber.js 'Source')
<a name="culoriInterpolateAlpha" href="#culoriInterpolateAlpha">#</a> culori.**interpolateAlpha** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/alpha.js 'Source')
<a name="culoriInterpolateHue" href="#culoriInterpolateHue">#</a> culori.**interpolateHue** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateHue.js 'Source')
<a name="culoriInterpolateNumber" href="#culoriInterpolateNumber">#</a> culori.**interpolateAlpha** [<>](https://github.com/evercoder/culori/blob/master/src/interpolate/interpolateNumber.js 'Source')
### Difference

@@ -356,16 +352,18 @@

| Channel | Range | Description |
| ------- | ----- | ----------- |
| `l` | ? | Lightness |
| `a` | ? |
| `b` | ? |
| Channel | Range | Description |
| ------- | ---------------------- | --------------------- |
| `l` | `[0 β€” 100]` | Lightness |
| `a` | `[-79.2872, 93.55]` | Green–red component |
| `b` | `[-112.0294, 93.3884]` | Blue–yellow component |
#### `lch`
| Channel | Range | Description |
| ------- | ----- | ----------- |
| `l` | ? | Lightness |
| `c` | ? | Chroma |
| `h` | ? | Hue |
| Channel | Range | Description |
| ------- | --------------- | ----------- |
| `l` | `[0 - 100]` | Lightness |
| `c` | `[0 - 131.207]` | Chroma |
| `h` | `[0 - 360]` | Hue |
> πŸ’‘ The range for the `a` and `b` channels in Lab, and the `c` channel in LCh, depend on the specific implementation. I've obtained the ranges from the tables above by converting all sRGB colors defined by `r, g, b ∈ β„• β‹‚ [0, 255]` into Lab and LCh respectively.
### DIN99 Lab / LCh

@@ -417,7 +415,7 @@

| Channel | Range | Description |
| ------- | ---------- | ------------------------------------------------------------------------ |
| `h` | `[0, 360)` | Hue (Based on _start color_ and _rotations_ as defined in Green's paper) |
| `s` | `[0, 1]` | Saturation (Called _hue_ in op. cit.) |
| `l` | `[0, 1]` | Lightness |
| Channel | Range | Description |
| ------- | ------------- | ------------------------------------------------------------------------ |
| `h` | `[0, 360)` | Hue (Based on _start color_ and _rotations_ as defined in Green's paper) |
| `s` | `[0, 4.6143]` | Saturation (Called _hue_ in op. cit.) |
| `l` | `[0, 1]` | Lightness |

@@ -424,0 +422,0 @@ ## Culori Recipes

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚑️ by Socket Inc