mirror of
https://kevinblog.sytes.net/Code/Jibo-Revival-Group/RoboCommander.git
synced 2026-06-19 11:56:08 +00:00
Initial commit
This commit is contained in:
15
node_modules/d3-color/.eslintrc.json
generated
vendored
Normal file
15
node_modules/d3-color/.eslintrc.json
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "eslint:recommended",
|
||||
"parserOptions": {
|
||||
"sourceType": "module",
|
||||
"ecmaVersion": 8
|
||||
},
|
||||
"env": {
|
||||
"es6": true,
|
||||
"node": true,
|
||||
"browser": true
|
||||
},
|
||||
"rules": {
|
||||
"no-cond-assign": 0
|
||||
}
|
||||
}
|
||||
27
node_modules/d3-color/LICENSE
generated
vendored
Normal file
27
node_modules/d3-color/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
Copyright 2010-2016 Mike Bostock
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the author nor the names of contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
549
node_modules/d3-color/dist/d3-color.js
generated
vendored
Normal file
549
node_modules/d3-color/dist/d3-color.js
generated
vendored
Normal file
@@ -0,0 +1,549 @@
|
||||
// https://d3js.org/d3-color/ v1.2.3 Copyright 2018 Mike Bostock
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global.d3 = global.d3 || {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
|
||||
function define(constructor, factory, prototype) {
|
||||
constructor.prototype = factory.prototype = prototype;
|
||||
prototype.constructor = constructor;
|
||||
}
|
||||
|
||||
function extend(parent, definition) {
|
||||
var prototype = Object.create(parent.prototype);
|
||||
for (var key in definition) prototype[key] = definition[key];
|
||||
return prototype;
|
||||
}
|
||||
|
||||
function Color() {}
|
||||
|
||||
var darker = 0.7;
|
||||
var brighter = 1 / darker;
|
||||
|
||||
var reI = "\\s*([+-]?\\d+)\\s*",
|
||||
reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
|
||||
reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
|
||||
reHex3 = /^#([0-9a-f]{3})$/,
|
||||
reHex6 = /^#([0-9a-f]{6})$/,
|
||||
reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
|
||||
reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
|
||||
reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
|
||||
reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
|
||||
reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
|
||||
reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
|
||||
|
||||
var named = {
|
||||
aliceblue: 0xf0f8ff,
|
||||
antiquewhite: 0xfaebd7,
|
||||
aqua: 0x00ffff,
|
||||
aquamarine: 0x7fffd4,
|
||||
azure: 0xf0ffff,
|
||||
beige: 0xf5f5dc,
|
||||
bisque: 0xffe4c4,
|
||||
black: 0x000000,
|
||||
blanchedalmond: 0xffebcd,
|
||||
blue: 0x0000ff,
|
||||
blueviolet: 0x8a2be2,
|
||||
brown: 0xa52a2a,
|
||||
burlywood: 0xdeb887,
|
||||
cadetblue: 0x5f9ea0,
|
||||
chartreuse: 0x7fff00,
|
||||
chocolate: 0xd2691e,
|
||||
coral: 0xff7f50,
|
||||
cornflowerblue: 0x6495ed,
|
||||
cornsilk: 0xfff8dc,
|
||||
crimson: 0xdc143c,
|
||||
cyan: 0x00ffff,
|
||||
darkblue: 0x00008b,
|
||||
darkcyan: 0x008b8b,
|
||||
darkgoldenrod: 0xb8860b,
|
||||
darkgray: 0xa9a9a9,
|
||||
darkgreen: 0x006400,
|
||||
darkgrey: 0xa9a9a9,
|
||||
darkkhaki: 0xbdb76b,
|
||||
darkmagenta: 0x8b008b,
|
||||
darkolivegreen: 0x556b2f,
|
||||
darkorange: 0xff8c00,
|
||||
darkorchid: 0x9932cc,
|
||||
darkred: 0x8b0000,
|
||||
darksalmon: 0xe9967a,
|
||||
darkseagreen: 0x8fbc8f,
|
||||
darkslateblue: 0x483d8b,
|
||||
darkslategray: 0x2f4f4f,
|
||||
darkslategrey: 0x2f4f4f,
|
||||
darkturquoise: 0x00ced1,
|
||||
darkviolet: 0x9400d3,
|
||||
deeppink: 0xff1493,
|
||||
deepskyblue: 0x00bfff,
|
||||
dimgray: 0x696969,
|
||||
dimgrey: 0x696969,
|
||||
dodgerblue: 0x1e90ff,
|
||||
firebrick: 0xb22222,
|
||||
floralwhite: 0xfffaf0,
|
||||
forestgreen: 0x228b22,
|
||||
fuchsia: 0xff00ff,
|
||||
gainsboro: 0xdcdcdc,
|
||||
ghostwhite: 0xf8f8ff,
|
||||
gold: 0xffd700,
|
||||
goldenrod: 0xdaa520,
|
||||
gray: 0x808080,
|
||||
green: 0x008000,
|
||||
greenyellow: 0xadff2f,
|
||||
grey: 0x808080,
|
||||
honeydew: 0xf0fff0,
|
||||
hotpink: 0xff69b4,
|
||||
indianred: 0xcd5c5c,
|
||||
indigo: 0x4b0082,
|
||||
ivory: 0xfffff0,
|
||||
khaki: 0xf0e68c,
|
||||
lavender: 0xe6e6fa,
|
||||
lavenderblush: 0xfff0f5,
|
||||
lawngreen: 0x7cfc00,
|
||||
lemonchiffon: 0xfffacd,
|
||||
lightblue: 0xadd8e6,
|
||||
lightcoral: 0xf08080,
|
||||
lightcyan: 0xe0ffff,
|
||||
lightgoldenrodyellow: 0xfafad2,
|
||||
lightgray: 0xd3d3d3,
|
||||
lightgreen: 0x90ee90,
|
||||
lightgrey: 0xd3d3d3,
|
||||
lightpink: 0xffb6c1,
|
||||
lightsalmon: 0xffa07a,
|
||||
lightseagreen: 0x20b2aa,
|
||||
lightskyblue: 0x87cefa,
|
||||
lightslategray: 0x778899,
|
||||
lightslategrey: 0x778899,
|
||||
lightsteelblue: 0xb0c4de,
|
||||
lightyellow: 0xffffe0,
|
||||
lime: 0x00ff00,
|
||||
limegreen: 0x32cd32,
|
||||
linen: 0xfaf0e6,
|
||||
magenta: 0xff00ff,
|
||||
maroon: 0x800000,
|
||||
mediumaquamarine: 0x66cdaa,
|
||||
mediumblue: 0x0000cd,
|
||||
mediumorchid: 0xba55d3,
|
||||
mediumpurple: 0x9370db,
|
||||
mediumseagreen: 0x3cb371,
|
||||
mediumslateblue: 0x7b68ee,
|
||||
mediumspringgreen: 0x00fa9a,
|
||||
mediumturquoise: 0x48d1cc,
|
||||
mediumvioletred: 0xc71585,
|
||||
midnightblue: 0x191970,
|
||||
mintcream: 0xf5fffa,
|
||||
mistyrose: 0xffe4e1,
|
||||
moccasin: 0xffe4b5,
|
||||
navajowhite: 0xffdead,
|
||||
navy: 0x000080,
|
||||
oldlace: 0xfdf5e6,
|
||||
olive: 0x808000,
|
||||
olivedrab: 0x6b8e23,
|
||||
orange: 0xffa500,
|
||||
orangered: 0xff4500,
|
||||
orchid: 0xda70d6,
|
||||
palegoldenrod: 0xeee8aa,
|
||||
palegreen: 0x98fb98,
|
||||
paleturquoise: 0xafeeee,
|
||||
palevioletred: 0xdb7093,
|
||||
papayawhip: 0xffefd5,
|
||||
peachpuff: 0xffdab9,
|
||||
peru: 0xcd853f,
|
||||
pink: 0xffc0cb,
|
||||
plum: 0xdda0dd,
|
||||
powderblue: 0xb0e0e6,
|
||||
purple: 0x800080,
|
||||
rebeccapurple: 0x663399,
|
||||
red: 0xff0000,
|
||||
rosybrown: 0xbc8f8f,
|
||||
royalblue: 0x4169e1,
|
||||
saddlebrown: 0x8b4513,
|
||||
salmon: 0xfa8072,
|
||||
sandybrown: 0xf4a460,
|
||||
seagreen: 0x2e8b57,
|
||||
seashell: 0xfff5ee,
|
||||
sienna: 0xa0522d,
|
||||
silver: 0xc0c0c0,
|
||||
skyblue: 0x87ceeb,
|
||||
slateblue: 0x6a5acd,
|
||||
slategray: 0x708090,
|
||||
slategrey: 0x708090,
|
||||
snow: 0xfffafa,
|
||||
springgreen: 0x00ff7f,
|
||||
steelblue: 0x4682b4,
|
||||
tan: 0xd2b48c,
|
||||
teal: 0x008080,
|
||||
thistle: 0xd8bfd8,
|
||||
tomato: 0xff6347,
|
||||
turquoise: 0x40e0d0,
|
||||
violet: 0xee82ee,
|
||||
wheat: 0xf5deb3,
|
||||
white: 0xffffff,
|
||||
whitesmoke: 0xf5f5f5,
|
||||
yellow: 0xffff00,
|
||||
yellowgreen: 0x9acd32
|
||||
};
|
||||
|
||||
define(Color, color, {
|
||||
displayable: function() {
|
||||
return this.rgb().displayable();
|
||||
},
|
||||
hex: function() {
|
||||
return this.rgb().hex();
|
||||
},
|
||||
toString: function() {
|
||||
return this.rgb() + "";
|
||||
}
|
||||
});
|
||||
|
||||
function color(format) {
|
||||
var m;
|
||||
format = (format + "").trim().toLowerCase();
|
||||
return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00
|
||||
: (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
|
||||
: (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
|
||||
: (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
|
||||
: (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
|
||||
: (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
|
||||
: (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
|
||||
: (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
|
||||
: named.hasOwnProperty(format) ? rgbn(named[format])
|
||||
: format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
|
||||
: null;
|
||||
}
|
||||
|
||||
function rgbn(n) {
|
||||
return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
|
||||
}
|
||||
|
||||
function rgba(r, g, b, a) {
|
||||
if (a <= 0) r = g = b = NaN;
|
||||
return new Rgb(r, g, b, a);
|
||||
}
|
||||
|
||||
function rgbConvert(o) {
|
||||
if (!(o instanceof Color)) o = color(o);
|
||||
if (!o) return new Rgb;
|
||||
o = o.rgb();
|
||||
return new Rgb(o.r, o.g, o.b, o.opacity);
|
||||
}
|
||||
|
||||
function rgb(r, g, b, opacity) {
|
||||
return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Rgb(r, g, b, opacity) {
|
||||
this.r = +r;
|
||||
this.g = +g;
|
||||
this.b = +b;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Rgb, rgb, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
return this;
|
||||
},
|
||||
displayable: function() {
|
||||
return (0 <= this.r && this.r <= 255)
|
||||
&& (0 <= this.g && this.g <= 255)
|
||||
&& (0 <= this.b && this.b <= 255)
|
||||
&& (0 <= this.opacity && this.opacity <= 1);
|
||||
},
|
||||
hex: function() {
|
||||
return "#" + hex(this.r) + hex(this.g) + hex(this.b);
|
||||
},
|
||||
toString: function() {
|
||||
var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
|
||||
return (a === 1 ? "rgb(" : "rgba(")
|
||||
+ Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
|
||||
+ Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
|
||||
+ Math.max(0, Math.min(255, Math.round(this.b) || 0))
|
||||
+ (a === 1 ? ")" : ", " + a + ")");
|
||||
}
|
||||
}));
|
||||
|
||||
function hex(value) {
|
||||
value = Math.max(0, Math.min(255, Math.round(value) || 0));
|
||||
return (value < 16 ? "0" : "") + value.toString(16);
|
||||
}
|
||||
|
||||
function hsla(h, s, l, a) {
|
||||
if (a <= 0) h = s = l = NaN;
|
||||
else if (l <= 0 || l >= 1) h = s = NaN;
|
||||
else if (s <= 0) h = NaN;
|
||||
return new Hsl(h, s, l, a);
|
||||
}
|
||||
|
||||
function hslConvert(o) {
|
||||
if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
|
||||
if (!(o instanceof Color)) o = color(o);
|
||||
if (!o) return new Hsl;
|
||||
if (o instanceof Hsl) return o;
|
||||
o = o.rgb();
|
||||
var r = o.r / 255,
|
||||
g = o.g / 255,
|
||||
b = o.b / 255,
|
||||
min = Math.min(r, g, b),
|
||||
max = Math.max(r, g, b),
|
||||
h = NaN,
|
||||
s = max - min,
|
||||
l = (max + min) / 2;
|
||||
if (s) {
|
||||
if (r === max) h = (g - b) / s + (g < b) * 6;
|
||||
else if (g === max) h = (b - r) / s + 2;
|
||||
else h = (r - g) / s + 4;
|
||||
s /= l < 0.5 ? max + min : 2 - max - min;
|
||||
h *= 60;
|
||||
} else {
|
||||
s = l > 0 && l < 1 ? 0 : h;
|
||||
}
|
||||
return new Hsl(h, s, l, o.opacity);
|
||||
}
|
||||
|
||||
function hsl(h, s, l, opacity) {
|
||||
return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Hsl(h, s, l, opacity) {
|
||||
this.h = +h;
|
||||
this.s = +s;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Hsl, hsl, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var h = this.h % 360 + (this.h < 0) * 360,
|
||||
s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
|
||||
l = this.l,
|
||||
m2 = l + (l < 0.5 ? l : 1 - l) * s,
|
||||
m1 = 2 * l - m2;
|
||||
return new Rgb(
|
||||
hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
|
||||
hsl2rgb(h, m1, m2),
|
||||
hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
|
||||
this.opacity
|
||||
);
|
||||
},
|
||||
displayable: function() {
|
||||
return (0 <= this.s && this.s <= 1 || isNaN(this.s))
|
||||
&& (0 <= this.l && this.l <= 1)
|
||||
&& (0 <= this.opacity && this.opacity <= 1);
|
||||
}
|
||||
}));
|
||||
|
||||
/* From FvD 13.37, CSS Color Module Level 3 */
|
||||
function hsl2rgb(h, m1, m2) {
|
||||
return (h < 60 ? m1 + (m2 - m1) * h / 60
|
||||
: h < 180 ? m2
|
||||
: h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
|
||||
: m1) * 255;
|
||||
}
|
||||
|
||||
var deg2rad = Math.PI / 180;
|
||||
var rad2deg = 180 / Math.PI;
|
||||
|
||||
// https://beta.observablehq.com/@mbostock/lab-and-rgb
|
||||
var K = 18,
|
||||
Xn = 0.96422,
|
||||
Yn = 1,
|
||||
Zn = 0.82521,
|
||||
t0 = 4 / 29,
|
||||
t1 = 6 / 29,
|
||||
t2 = 3 * t1 * t1,
|
||||
t3 = t1 * t1 * t1;
|
||||
|
||||
function labConvert(o) {
|
||||
if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
|
||||
if (o instanceof Hcl) {
|
||||
if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
|
||||
var h = o.h * deg2rad;
|
||||
return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
|
||||
}
|
||||
if (!(o instanceof Rgb)) o = rgbConvert(o);
|
||||
var r = rgb2lrgb(o.r),
|
||||
g = rgb2lrgb(o.g),
|
||||
b = rgb2lrgb(o.b),
|
||||
y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
|
||||
if (r === g && g === b) x = z = y; else {
|
||||
x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
|
||||
z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
|
||||
}
|
||||
return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
|
||||
}
|
||||
|
||||
function gray(l, opacity) {
|
||||
return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function lab(l, a, b, opacity) {
|
||||
return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Lab(l, a, b, opacity) {
|
||||
this.l = +l;
|
||||
this.a = +a;
|
||||
this.b = +b;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Lab, lab, extend(Color, {
|
||||
brighter: function(k) {
|
||||
return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var y = (this.l + 16) / 116,
|
||||
x = isNaN(this.a) ? y : y + this.a / 500,
|
||||
z = isNaN(this.b) ? y : y - this.b / 200;
|
||||
x = Xn * lab2xyz(x);
|
||||
y = Yn * lab2xyz(y);
|
||||
z = Zn * lab2xyz(z);
|
||||
return new Rgb(
|
||||
lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
|
||||
lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
|
||||
lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
|
||||
this.opacity
|
||||
);
|
||||
}
|
||||
}));
|
||||
|
||||
function xyz2lab(t) {
|
||||
return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
|
||||
}
|
||||
|
||||
function lab2xyz(t) {
|
||||
return t > t1 ? t * t * t : t2 * (t - t0);
|
||||
}
|
||||
|
||||
function lrgb2rgb(x) {
|
||||
return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
|
||||
}
|
||||
|
||||
function rgb2lrgb(x) {
|
||||
return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
|
||||
function hclConvert(o) {
|
||||
if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
|
||||
if (!(o instanceof Lab)) o = labConvert(o);
|
||||
if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);
|
||||
var h = Math.atan2(o.b, o.a) * rad2deg;
|
||||
return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
|
||||
}
|
||||
|
||||
function lch(l, c, h, opacity) {
|
||||
return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function hcl(h, c, l, opacity) {
|
||||
return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Hcl(h, c, l, opacity) {
|
||||
this.h = +h;
|
||||
this.c = +c;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Hcl, hcl, extend(Color, {
|
||||
brighter: function(k) {
|
||||
return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
return labConvert(this).rgb();
|
||||
}
|
||||
}));
|
||||
|
||||
var A = -0.14861,
|
||||
B = +1.78277,
|
||||
C = -0.29227,
|
||||
D = -0.90649,
|
||||
E = +1.97294,
|
||||
ED = E * D,
|
||||
EB = E * B,
|
||||
BC_DA = B * C - D * A;
|
||||
|
||||
function cubehelixConvert(o) {
|
||||
if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
|
||||
if (!(o instanceof Rgb)) o = rgbConvert(o);
|
||||
var r = o.r / 255,
|
||||
g = o.g / 255,
|
||||
b = o.b / 255,
|
||||
l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
|
||||
bl = b - l,
|
||||
k = (E * (g - l) - C * bl) / D,
|
||||
s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
|
||||
h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;
|
||||
return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
|
||||
}
|
||||
|
||||
function cubehelix(h, s, l, opacity) {
|
||||
return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Cubehelix(h, s, l, opacity) {
|
||||
this.h = +h;
|
||||
this.s = +s;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Cubehelix, cubehelix, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,
|
||||
l = +this.l,
|
||||
a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
|
||||
cosh = Math.cos(h),
|
||||
sinh = Math.sin(h);
|
||||
return new Rgb(
|
||||
255 * (l + a * (A * cosh + B * sinh)),
|
||||
255 * (l + a * (C * cosh + D * sinh)),
|
||||
255 * (l + a * (E * cosh)),
|
||||
this.opacity
|
||||
);
|
||||
}
|
||||
}));
|
||||
|
||||
exports.color = color;
|
||||
exports.rgb = rgb;
|
||||
exports.hsl = hsl;
|
||||
exports.lab = lab;
|
||||
exports.hcl = hcl;
|
||||
exports.lch = lch;
|
||||
exports.gray = gray;
|
||||
exports.cubehelix = cubehelix;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
})));
|
||||
2
node_modules/d3-color/dist/d3-color.min.js
generated
vendored
Normal file
2
node_modules/d3-color/dist/d3-color.min.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
25
node_modules/d3-color/package.json
generated
vendored
Normal file
25
node_modules/d3-color/package.json
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "d3-color",
|
||||
"version": "1.2.3",
|
||||
"description": "Color spaces! RGB, HSL, Cubehelix, Lab and HCL (Lch).",
|
||||
"homepage": "https://d3js.org/d3-color/",
|
||||
"license": "BSD-3-Clause",
|
||||
"author": {
|
||||
"name": "Mike Bostock",
|
||||
"url": "http://bost.ocks.org/mike"
|
||||
},
|
||||
"main": "dist/d3-color.js",
|
||||
"unpkg": "dist/d3-color.min.js",
|
||||
"jsdelivr": "dist/d3-color.min.js",
|
||||
"module": "src/index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/d3/d3-color.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "5",
|
||||
"rollup": "0.64",
|
||||
"rollup-plugin-terser": "1",
|
||||
"tape": "4"
|
||||
}
|
||||
}
|
||||
36
node_modules/d3-color/rollup.config.js
generated
vendored
Normal file
36
node_modules/d3-color/rollup.config.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import {terser} from "rollup-plugin-terser";
|
||||
import * as meta from "./package.json";
|
||||
|
||||
const config = {
|
||||
input: "src/index.js",
|
||||
external: Object.keys(meta.dependencies || {}).filter(key => /^d3-/.test(key)),
|
||||
output: {
|
||||
file: `dist/${meta.name}.js`,
|
||||
name: "d3",
|
||||
format: "umd",
|
||||
indent: false,
|
||||
extend: true,
|
||||
banner: `// ${meta.homepage} v${meta.version} Copyright ${(new Date).getFullYear()} ${meta.author.name}`,
|
||||
globals: Object.assign({}, ...Object.keys(meta.dependencies || {}).filter(key => /^d3-/.test(key)).map(key => ({[key]: "d3"})))
|
||||
},
|
||||
plugins: []
|
||||
};
|
||||
|
||||
export default [
|
||||
config,
|
||||
{
|
||||
...config,
|
||||
output: {
|
||||
...config.output,
|
||||
file: `dist/${meta.name}.min.js`
|
||||
},
|
||||
plugins: [
|
||||
...config.plugins,
|
||||
terser({
|
||||
output: {
|
||||
preamble: config.output.banner
|
||||
}
|
||||
})
|
||||
]
|
||||
}
|
||||
];
|
||||
341
node_modules/d3-color/src/color.js
generated
vendored
Normal file
341
node_modules/d3-color/src/color.js
generated
vendored
Normal file
@@ -0,0 +1,341 @@
|
||||
import define, {extend} from "./define";
|
||||
|
||||
export function Color() {}
|
||||
|
||||
export var darker = 0.7;
|
||||
export var brighter = 1 / darker;
|
||||
|
||||
var reI = "\\s*([+-]?\\d+)\\s*",
|
||||
reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",
|
||||
reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",
|
||||
reHex3 = /^#([0-9a-f]{3})$/,
|
||||
reHex6 = /^#([0-9a-f]{6})$/,
|
||||
reRgbInteger = new RegExp("^rgb\\(" + [reI, reI, reI] + "\\)$"),
|
||||
reRgbPercent = new RegExp("^rgb\\(" + [reP, reP, reP] + "\\)$"),
|
||||
reRgbaInteger = new RegExp("^rgba\\(" + [reI, reI, reI, reN] + "\\)$"),
|
||||
reRgbaPercent = new RegExp("^rgba\\(" + [reP, reP, reP, reN] + "\\)$"),
|
||||
reHslPercent = new RegExp("^hsl\\(" + [reN, reP, reP] + "\\)$"),
|
||||
reHslaPercent = new RegExp("^hsla\\(" + [reN, reP, reP, reN] + "\\)$");
|
||||
|
||||
var named = {
|
||||
aliceblue: 0xf0f8ff,
|
||||
antiquewhite: 0xfaebd7,
|
||||
aqua: 0x00ffff,
|
||||
aquamarine: 0x7fffd4,
|
||||
azure: 0xf0ffff,
|
||||
beige: 0xf5f5dc,
|
||||
bisque: 0xffe4c4,
|
||||
black: 0x000000,
|
||||
blanchedalmond: 0xffebcd,
|
||||
blue: 0x0000ff,
|
||||
blueviolet: 0x8a2be2,
|
||||
brown: 0xa52a2a,
|
||||
burlywood: 0xdeb887,
|
||||
cadetblue: 0x5f9ea0,
|
||||
chartreuse: 0x7fff00,
|
||||
chocolate: 0xd2691e,
|
||||
coral: 0xff7f50,
|
||||
cornflowerblue: 0x6495ed,
|
||||
cornsilk: 0xfff8dc,
|
||||
crimson: 0xdc143c,
|
||||
cyan: 0x00ffff,
|
||||
darkblue: 0x00008b,
|
||||
darkcyan: 0x008b8b,
|
||||
darkgoldenrod: 0xb8860b,
|
||||
darkgray: 0xa9a9a9,
|
||||
darkgreen: 0x006400,
|
||||
darkgrey: 0xa9a9a9,
|
||||
darkkhaki: 0xbdb76b,
|
||||
darkmagenta: 0x8b008b,
|
||||
darkolivegreen: 0x556b2f,
|
||||
darkorange: 0xff8c00,
|
||||
darkorchid: 0x9932cc,
|
||||
darkred: 0x8b0000,
|
||||
darksalmon: 0xe9967a,
|
||||
darkseagreen: 0x8fbc8f,
|
||||
darkslateblue: 0x483d8b,
|
||||
darkslategray: 0x2f4f4f,
|
||||
darkslategrey: 0x2f4f4f,
|
||||
darkturquoise: 0x00ced1,
|
||||
darkviolet: 0x9400d3,
|
||||
deeppink: 0xff1493,
|
||||
deepskyblue: 0x00bfff,
|
||||
dimgray: 0x696969,
|
||||
dimgrey: 0x696969,
|
||||
dodgerblue: 0x1e90ff,
|
||||
firebrick: 0xb22222,
|
||||
floralwhite: 0xfffaf0,
|
||||
forestgreen: 0x228b22,
|
||||
fuchsia: 0xff00ff,
|
||||
gainsboro: 0xdcdcdc,
|
||||
ghostwhite: 0xf8f8ff,
|
||||
gold: 0xffd700,
|
||||
goldenrod: 0xdaa520,
|
||||
gray: 0x808080,
|
||||
green: 0x008000,
|
||||
greenyellow: 0xadff2f,
|
||||
grey: 0x808080,
|
||||
honeydew: 0xf0fff0,
|
||||
hotpink: 0xff69b4,
|
||||
indianred: 0xcd5c5c,
|
||||
indigo: 0x4b0082,
|
||||
ivory: 0xfffff0,
|
||||
khaki: 0xf0e68c,
|
||||
lavender: 0xe6e6fa,
|
||||
lavenderblush: 0xfff0f5,
|
||||
lawngreen: 0x7cfc00,
|
||||
lemonchiffon: 0xfffacd,
|
||||
lightblue: 0xadd8e6,
|
||||
lightcoral: 0xf08080,
|
||||
lightcyan: 0xe0ffff,
|
||||
lightgoldenrodyellow: 0xfafad2,
|
||||
lightgray: 0xd3d3d3,
|
||||
lightgreen: 0x90ee90,
|
||||
lightgrey: 0xd3d3d3,
|
||||
lightpink: 0xffb6c1,
|
||||
lightsalmon: 0xffa07a,
|
||||
lightseagreen: 0x20b2aa,
|
||||
lightskyblue: 0x87cefa,
|
||||
lightslategray: 0x778899,
|
||||
lightslategrey: 0x778899,
|
||||
lightsteelblue: 0xb0c4de,
|
||||
lightyellow: 0xffffe0,
|
||||
lime: 0x00ff00,
|
||||
limegreen: 0x32cd32,
|
||||
linen: 0xfaf0e6,
|
||||
magenta: 0xff00ff,
|
||||
maroon: 0x800000,
|
||||
mediumaquamarine: 0x66cdaa,
|
||||
mediumblue: 0x0000cd,
|
||||
mediumorchid: 0xba55d3,
|
||||
mediumpurple: 0x9370db,
|
||||
mediumseagreen: 0x3cb371,
|
||||
mediumslateblue: 0x7b68ee,
|
||||
mediumspringgreen: 0x00fa9a,
|
||||
mediumturquoise: 0x48d1cc,
|
||||
mediumvioletred: 0xc71585,
|
||||
midnightblue: 0x191970,
|
||||
mintcream: 0xf5fffa,
|
||||
mistyrose: 0xffe4e1,
|
||||
moccasin: 0xffe4b5,
|
||||
navajowhite: 0xffdead,
|
||||
navy: 0x000080,
|
||||
oldlace: 0xfdf5e6,
|
||||
olive: 0x808000,
|
||||
olivedrab: 0x6b8e23,
|
||||
orange: 0xffa500,
|
||||
orangered: 0xff4500,
|
||||
orchid: 0xda70d6,
|
||||
palegoldenrod: 0xeee8aa,
|
||||
palegreen: 0x98fb98,
|
||||
paleturquoise: 0xafeeee,
|
||||
palevioletred: 0xdb7093,
|
||||
papayawhip: 0xffefd5,
|
||||
peachpuff: 0xffdab9,
|
||||
peru: 0xcd853f,
|
||||
pink: 0xffc0cb,
|
||||
plum: 0xdda0dd,
|
||||
powderblue: 0xb0e0e6,
|
||||
purple: 0x800080,
|
||||
rebeccapurple: 0x663399,
|
||||
red: 0xff0000,
|
||||
rosybrown: 0xbc8f8f,
|
||||
royalblue: 0x4169e1,
|
||||
saddlebrown: 0x8b4513,
|
||||
salmon: 0xfa8072,
|
||||
sandybrown: 0xf4a460,
|
||||
seagreen: 0x2e8b57,
|
||||
seashell: 0xfff5ee,
|
||||
sienna: 0xa0522d,
|
||||
silver: 0xc0c0c0,
|
||||
skyblue: 0x87ceeb,
|
||||
slateblue: 0x6a5acd,
|
||||
slategray: 0x708090,
|
||||
slategrey: 0x708090,
|
||||
snow: 0xfffafa,
|
||||
springgreen: 0x00ff7f,
|
||||
steelblue: 0x4682b4,
|
||||
tan: 0xd2b48c,
|
||||
teal: 0x008080,
|
||||
thistle: 0xd8bfd8,
|
||||
tomato: 0xff6347,
|
||||
turquoise: 0x40e0d0,
|
||||
violet: 0xee82ee,
|
||||
wheat: 0xf5deb3,
|
||||
white: 0xffffff,
|
||||
whitesmoke: 0xf5f5f5,
|
||||
yellow: 0xffff00,
|
||||
yellowgreen: 0x9acd32
|
||||
};
|
||||
|
||||
define(Color, color, {
|
||||
displayable: function() {
|
||||
return this.rgb().displayable();
|
||||
},
|
||||
hex: function() {
|
||||
return this.rgb().hex();
|
||||
},
|
||||
toString: function() {
|
||||
return this.rgb() + "";
|
||||
}
|
||||
});
|
||||
|
||||
export default function color(format) {
|
||||
var m;
|
||||
format = (format + "").trim().toLowerCase();
|
||||
return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00
|
||||
: (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000
|
||||
: (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)
|
||||
: (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)
|
||||
: (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)
|
||||
: (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)
|
||||
: (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)
|
||||
: (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)
|
||||
: named.hasOwnProperty(format) ? rgbn(named[format])
|
||||
: format === "transparent" ? new Rgb(NaN, NaN, NaN, 0)
|
||||
: null;
|
||||
}
|
||||
|
||||
function rgbn(n) {
|
||||
return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);
|
||||
}
|
||||
|
||||
function rgba(r, g, b, a) {
|
||||
if (a <= 0) r = g = b = NaN;
|
||||
return new Rgb(r, g, b, a);
|
||||
}
|
||||
|
||||
export function rgbConvert(o) {
|
||||
if (!(o instanceof Color)) o = color(o);
|
||||
if (!o) return new Rgb;
|
||||
o = o.rgb();
|
||||
return new Rgb(o.r, o.g, o.b, o.opacity);
|
||||
}
|
||||
|
||||
export function rgb(r, g, b, opacity) {
|
||||
return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export function Rgb(r, g, b, opacity) {
|
||||
this.r = +r;
|
||||
this.g = +g;
|
||||
this.b = +b;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Rgb, rgb, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
return this;
|
||||
},
|
||||
displayable: function() {
|
||||
return (0 <= this.r && this.r <= 255)
|
||||
&& (0 <= this.g && this.g <= 255)
|
||||
&& (0 <= this.b && this.b <= 255)
|
||||
&& (0 <= this.opacity && this.opacity <= 1);
|
||||
},
|
||||
hex: function() {
|
||||
return "#" + hex(this.r) + hex(this.g) + hex(this.b);
|
||||
},
|
||||
toString: function() {
|
||||
var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));
|
||||
return (a === 1 ? "rgb(" : "rgba(")
|
||||
+ Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", "
|
||||
+ Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", "
|
||||
+ Math.max(0, Math.min(255, Math.round(this.b) || 0))
|
||||
+ (a === 1 ? ")" : ", " + a + ")");
|
||||
}
|
||||
}));
|
||||
|
||||
function hex(value) {
|
||||
value = Math.max(0, Math.min(255, Math.round(value) || 0));
|
||||
return (value < 16 ? "0" : "") + value.toString(16);
|
||||
}
|
||||
|
||||
function hsla(h, s, l, a) {
|
||||
if (a <= 0) h = s = l = NaN;
|
||||
else if (l <= 0 || l >= 1) h = s = NaN;
|
||||
else if (s <= 0) h = NaN;
|
||||
return new Hsl(h, s, l, a);
|
||||
}
|
||||
|
||||
export function hslConvert(o) {
|
||||
if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);
|
||||
if (!(o instanceof Color)) o = color(o);
|
||||
if (!o) return new Hsl;
|
||||
if (o instanceof Hsl) return o;
|
||||
o = o.rgb();
|
||||
var r = o.r / 255,
|
||||
g = o.g / 255,
|
||||
b = o.b / 255,
|
||||
min = Math.min(r, g, b),
|
||||
max = Math.max(r, g, b),
|
||||
h = NaN,
|
||||
s = max - min,
|
||||
l = (max + min) / 2;
|
||||
if (s) {
|
||||
if (r === max) h = (g - b) / s + (g < b) * 6;
|
||||
else if (g === max) h = (b - r) / s + 2;
|
||||
else h = (r - g) / s + 4;
|
||||
s /= l < 0.5 ? max + min : 2 - max - min;
|
||||
h *= 60;
|
||||
} else {
|
||||
s = l > 0 && l < 1 ? 0 : h;
|
||||
}
|
||||
return new Hsl(h, s, l, o.opacity);
|
||||
}
|
||||
|
||||
export function hsl(h, s, l, opacity) {
|
||||
return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
function Hsl(h, s, l, opacity) {
|
||||
this.h = +h;
|
||||
this.s = +s;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Hsl, hsl, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Hsl(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var h = this.h % 360 + (this.h < 0) * 360,
|
||||
s = isNaN(h) || isNaN(this.s) ? 0 : this.s,
|
||||
l = this.l,
|
||||
m2 = l + (l < 0.5 ? l : 1 - l) * s,
|
||||
m1 = 2 * l - m2;
|
||||
return new Rgb(
|
||||
hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
|
||||
hsl2rgb(h, m1, m2),
|
||||
hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
|
||||
this.opacity
|
||||
);
|
||||
},
|
||||
displayable: function() {
|
||||
return (0 <= this.s && this.s <= 1 || isNaN(this.s))
|
||||
&& (0 <= this.l && this.l <= 1)
|
||||
&& (0 <= this.opacity && this.opacity <= 1);
|
||||
}
|
||||
}));
|
||||
|
||||
/* From FvD 13.37, CSS Color Module Level 3 */
|
||||
function hsl2rgb(h, m1, m2) {
|
||||
return (h < 60 ? m1 + (m2 - m1) * h / 60
|
||||
: h < 180 ? m2
|
||||
: h < 240 ? m1 + (m2 - m1) * (240 - h) / 60
|
||||
: m1) * 255;
|
||||
}
|
||||
61
node_modules/d3-color/src/cubehelix.js
generated
vendored
Normal file
61
node_modules/d3-color/src/cubehelix.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
import define, {extend} from "./define";
|
||||
import {Color, rgbConvert, Rgb, darker, brighter} from "./color";
|
||||
import {deg2rad, rad2deg} from "./math";
|
||||
|
||||
var A = -0.14861,
|
||||
B = +1.78277,
|
||||
C = -0.29227,
|
||||
D = -0.90649,
|
||||
E = +1.97294,
|
||||
ED = E * D,
|
||||
EB = E * B,
|
||||
BC_DA = B * C - D * A;
|
||||
|
||||
function cubehelixConvert(o) {
|
||||
if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);
|
||||
if (!(o instanceof Rgb)) o = rgbConvert(o);
|
||||
var r = o.r / 255,
|
||||
g = o.g / 255,
|
||||
b = o.b / 255,
|
||||
l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),
|
||||
bl = b - l,
|
||||
k = (E * (g - l) - C * bl) / D,
|
||||
s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1
|
||||
h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;
|
||||
return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);
|
||||
}
|
||||
|
||||
export default function cubehelix(h, s, l, opacity) {
|
||||
return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export function Cubehelix(h, s, l, opacity) {
|
||||
this.h = +h;
|
||||
this.s = +s;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Cubehelix, cubehelix, extend(Color, {
|
||||
brighter: function(k) {
|
||||
k = k == null ? brighter : Math.pow(brighter, k);
|
||||
return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
k = k == null ? darker : Math.pow(darker, k);
|
||||
return new Cubehelix(this.h, this.s, this.l * k, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,
|
||||
l = +this.l,
|
||||
a = isNaN(this.s) ? 0 : this.s * l * (1 - l),
|
||||
cosh = Math.cos(h),
|
||||
sinh = Math.sin(h);
|
||||
return new Rgb(
|
||||
255 * (l + a * (A * cosh + B * sinh)),
|
||||
255 * (l + a * (C * cosh + D * sinh)),
|
||||
255 * (l + a * (E * cosh)),
|
||||
this.opacity
|
||||
);
|
||||
}
|
||||
}));
|
||||
10
node_modules/d3-color/src/define.js
generated
vendored
Normal file
10
node_modules/d3-color/src/define.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
export default function(constructor, factory, prototype) {
|
||||
constructor.prototype = factory.prototype = prototype;
|
||||
prototype.constructor = constructor;
|
||||
}
|
||||
|
||||
export function extend(parent, definition) {
|
||||
var prototype = Object.create(parent.prototype);
|
||||
for (var key in definition) prototype[key] = definition[key];
|
||||
return prototype;
|
||||
}
|
||||
3
node_modules/d3-color/src/index.js
generated
vendored
Normal file
3
node_modules/d3-color/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
export {default as color, rgb, hsl} from "./color";
|
||||
export {default as lab, hcl, lch, gray} from "./lab";
|
||||
export {default as cubehelix} from "./cubehelix";
|
||||
121
node_modules/d3-color/src/lab.js
generated
vendored
Normal file
121
node_modules/d3-color/src/lab.js
generated
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
import define, {extend} from "./define";
|
||||
import {Color, rgbConvert, Rgb} from "./color";
|
||||
import {deg2rad, rad2deg} from "./math";
|
||||
|
||||
// https://beta.observablehq.com/@mbostock/lab-and-rgb
|
||||
var K = 18,
|
||||
Xn = 0.96422,
|
||||
Yn = 1,
|
||||
Zn = 0.82521,
|
||||
t0 = 4 / 29,
|
||||
t1 = 6 / 29,
|
||||
t2 = 3 * t1 * t1,
|
||||
t3 = t1 * t1 * t1;
|
||||
|
||||
function labConvert(o) {
|
||||
if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
|
||||
if (o instanceof Hcl) {
|
||||
if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);
|
||||
var h = o.h * deg2rad;
|
||||
return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
|
||||
}
|
||||
if (!(o instanceof Rgb)) o = rgbConvert(o);
|
||||
var r = rgb2lrgb(o.r),
|
||||
g = rgb2lrgb(o.g),
|
||||
b = rgb2lrgb(o.b),
|
||||
y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;
|
||||
if (r === g && g === b) x = z = y; else {
|
||||
x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
|
||||
z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
|
||||
}
|
||||
return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);
|
||||
}
|
||||
|
||||
export function gray(l, opacity) {
|
||||
return new Lab(l, 0, 0, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export default function lab(l, a, b, opacity) {
|
||||
return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export function Lab(l, a, b, opacity) {
|
||||
this.l = +l;
|
||||
this.a = +a;
|
||||
this.b = +b;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Lab, lab, extend(Color, {
|
||||
brighter: function(k) {
|
||||
return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
var y = (this.l + 16) / 116,
|
||||
x = isNaN(this.a) ? y : y + this.a / 500,
|
||||
z = isNaN(this.b) ? y : y - this.b / 200;
|
||||
x = Xn * lab2xyz(x);
|
||||
y = Yn * lab2xyz(y);
|
||||
z = Zn * lab2xyz(z);
|
||||
return new Rgb(
|
||||
lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),
|
||||
lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),
|
||||
lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),
|
||||
this.opacity
|
||||
);
|
||||
}
|
||||
}));
|
||||
|
||||
function xyz2lab(t) {
|
||||
return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
|
||||
}
|
||||
|
||||
function lab2xyz(t) {
|
||||
return t > t1 ? t * t * t : t2 * (t - t0);
|
||||
}
|
||||
|
||||
function lrgb2rgb(x) {
|
||||
return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);
|
||||
}
|
||||
|
||||
function rgb2lrgb(x) {
|
||||
return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
|
||||
function hclConvert(o) {
|
||||
if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);
|
||||
if (!(o instanceof Lab)) o = labConvert(o);
|
||||
if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);
|
||||
var h = Math.atan2(o.b, o.a) * rad2deg;
|
||||
return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
|
||||
}
|
||||
|
||||
export function lch(l, c, h, opacity) {
|
||||
return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export function hcl(h, c, l, opacity) {
|
||||
return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);
|
||||
}
|
||||
|
||||
export function Hcl(h, c, l, opacity) {
|
||||
this.h = +h;
|
||||
this.c = +c;
|
||||
this.l = +l;
|
||||
this.opacity = +opacity;
|
||||
}
|
||||
|
||||
define(Hcl, hcl, extend(Color, {
|
||||
brighter: function(k) {
|
||||
return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
|
||||
},
|
||||
darker: function(k) {
|
||||
return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
|
||||
},
|
||||
rgb: function() {
|
||||
return labConvert(this).rgb();
|
||||
}
|
||||
}));
|
||||
2
node_modules/d3-color/src/math.js
generated
vendored
Normal file
2
node_modules/d3-color/src/math.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export var deg2rad = Math.PI / 180;
|
||||
export var rad2deg = 180 / Math.PI;
|
||||
Reference in New Issue
Block a user