storybook
Version:
Storybook: Develop, document, and test UI components in isolation
569 lines (563 loc) • 24.1 kB
JavaScript
import {
__commonJS
} from "./chunk-A242L54C.js";
// ../../node_modules/color-name/index.js
var require_color_name = __commonJS({
"../../node_modules/color-name/index.js"(exports, module) {
"use strict";
module.exports = {
aliceblue: [240, 248, 255],
antiquewhite: [250, 235, 215],
aqua: [0, 255, 255],
aquamarine: [127, 255, 212],
azure: [240, 255, 255],
beige: [245, 245, 220],
bisque: [255, 228, 196],
black: [0, 0, 0],
blanchedalmond: [255, 235, 205],
blue: [0, 0, 255],
blueviolet: [138, 43, 226],
brown: [165, 42, 42],
burlywood: [222, 184, 135],
cadetblue: [95, 158, 160],
chartreuse: [127, 255, 0],
chocolate: [210, 105, 30],
coral: [255, 127, 80],
cornflowerblue: [100, 149, 237],
cornsilk: [255, 248, 220],
crimson: [220, 20, 60],
cyan: [0, 255, 255],
darkblue: [0, 0, 139],
darkcyan: [0, 139, 139],
darkgoldenrod: [184, 134, 11],
darkgray: [169, 169, 169],
darkgreen: [0, 100, 0],
darkgrey: [169, 169, 169],
darkkhaki: [189, 183, 107],
darkmagenta: [139, 0, 139],
darkolivegreen: [85, 107, 47],
darkorange: [255, 140, 0],
darkorchid: [153, 50, 204],
darkred: [139, 0, 0],
darksalmon: [233, 150, 122],
darkseagreen: [143, 188, 143],
darkslateblue: [72, 61, 139],
darkslategray: [47, 79, 79],
darkslategrey: [47, 79, 79],
darkturquoise: [0, 206, 209],
darkviolet: [148, 0, 211],
deeppink: [255, 20, 147],
deepskyblue: [0, 191, 255],
dimgray: [105, 105, 105],
dimgrey: [105, 105, 105],
dodgerblue: [30, 144, 255],
firebrick: [178, 34, 34],
floralwhite: [255, 250, 240],
forestgreen: [34, 139, 34],
fuchsia: [255, 0, 255],
gainsboro: [220, 220, 220],
ghostwhite: [248, 248, 255],
gold: [255, 215, 0],
goldenrod: [218, 165, 32],
gray: [128, 128, 128],
green: [0, 128, 0],
greenyellow: [173, 255, 47],
grey: [128, 128, 128],
honeydew: [240, 255, 240],
hotpink: [255, 105, 180],
indianred: [205, 92, 92],
indigo: [75, 0, 130],
ivory: [255, 255, 240],
khaki: [240, 230, 140],
lavender: [230, 230, 250],
lavenderblush: [255, 240, 245],
lawngreen: [124, 252, 0],
lemonchiffon: [255, 250, 205],
lightblue: [173, 216, 230],
lightcoral: [240, 128, 128],
lightcyan: [224, 255, 255],
lightgoldenrodyellow: [250, 250, 210],
lightgray: [211, 211, 211],
lightgreen: [144, 238, 144],
lightgrey: [211, 211, 211],
lightpink: [255, 182, 193],
lightsalmon: [255, 160, 122],
lightseagreen: [32, 178, 170],
lightskyblue: [135, 206, 250],
lightslategray: [119, 136, 153],
lightslategrey: [119, 136, 153],
lightsteelblue: [176, 196, 222],
lightyellow: [255, 255, 224],
lime: [0, 255, 0],
limegreen: [50, 205, 50],
linen: [250, 240, 230],
magenta: [255, 0, 255],
maroon: [128, 0, 0],
mediumaquamarine: [102, 205, 170],
mediumblue: [0, 0, 205],
mediumorchid: [186, 85, 211],
mediumpurple: [147, 112, 219],
mediumseagreen: [60, 179, 113],
mediumslateblue: [123, 104, 238],
mediumspringgreen: [0, 250, 154],
mediumturquoise: [72, 209, 204],
mediumvioletred: [199, 21, 133],
midnightblue: [25, 25, 112],
mintcream: [245, 255, 250],
mistyrose: [255, 228, 225],
moccasin: [255, 228, 181],
navajowhite: [255, 222, 173],
navy: [0, 0, 128],
oldlace: [253, 245, 230],
olive: [128, 128, 0],
olivedrab: [107, 142, 35],
orange: [255, 165, 0],
orangered: [255, 69, 0],
orchid: [218, 112, 214],
palegoldenrod: [238, 232, 170],
palegreen: [152, 251, 152],
paleturquoise: [175, 238, 238],
palevioletred: [219, 112, 147],
papayawhip: [255, 239, 213],
peachpuff: [255, 218, 185],
peru: [205, 133, 63],
pink: [255, 192, 203],
plum: [221, 160, 221],
powderblue: [176, 224, 230],
purple: [128, 0, 128],
rebeccapurple: [102, 51, 153],
red: [255, 0, 0],
rosybrown: [188, 143, 143],
royalblue: [65, 105, 225],
saddlebrown: [139, 69, 19],
salmon: [250, 128, 114],
sandybrown: [244, 164, 96],
seagreen: [46, 139, 87],
seashell: [255, 245, 238],
sienna: [160, 82, 45],
silver: [192, 192, 192],
skyblue: [135, 206, 235],
slateblue: [106, 90, 205],
slategray: [112, 128, 144],
slategrey: [112, 128, 144],
snow: [255, 250, 250],
springgreen: [0, 255, 127],
steelblue: [70, 130, 180],
tan: [210, 180, 140],
teal: [0, 128, 128],
thistle: [216, 191, 216],
tomato: [255, 99, 71],
turquoise: [64, 224, 208],
violet: [238, 130, 238],
wheat: [245, 222, 179],
white: [255, 255, 255],
whitesmoke: [245, 245, 245],
yellow: [255, 255, 0],
yellowgreen: [154, 205, 50]
};
}
});
// ../../node_modules/color-convert/conversions.js
var require_conversions = __commonJS({
"../../node_modules/color-convert/conversions.js"(exports, module) {
var cssKeywords = require_color_name(), reverseKeywords = {};
for (let key of Object.keys(cssKeywords))
reverseKeywords[cssKeywords[key]] = key;
var convert = {
rgb: { channels: 3, labels: "rgb" },
hsl: { channels: 3, labels: "hsl" },
hsv: { channels: 3, labels: "hsv" },
hwb: { channels: 3, labels: "hwb" },
cmyk: { channels: 4, labels: "cmyk" },
xyz: { channels: 3, labels: "xyz" },
lab: { channels: 3, labels: "lab" },
lch: { channels: 3, labels: "lch" },
hex: { channels: 1, labels: ["hex"] },
keyword: { channels: 1, labels: ["keyword"] },
ansi16: { channels: 1, labels: ["ansi16"] },
ansi256: { channels: 1, labels: ["ansi256"] },
hcg: { channels: 3, labels: ["h", "c", "g"] },
apple: { channels: 3, labels: ["r16", "g16", "b16"] },
gray: { channels: 1, labels: ["gray"] }
};
module.exports = convert;
for (let model of Object.keys(convert)) {
if (!("channels" in convert[model]))
throw new Error("missing channels property: " + model);
if (!("labels" in convert[model]))
throw new Error("missing channel labels property: " + model);
if (convert[model].labels.length !== convert[model].channels)
throw new Error("channel and label counts mismatch: " + model);
let { channels, labels } = convert[model];
delete convert[model].channels, delete convert[model].labels, Object.defineProperty(convert[model], "channels", { value: channels }), Object.defineProperty(convert[model], "labels", { value: labels });
}
convert.rgb.hsl = function(rgb) {
let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), delta = max - min, h, s;
max === min ? h = 0 : r === max ? h = (g - b) / delta : g === max ? h = 2 + (b - r) / delta : b === max && (h = 4 + (r - g) / delta), h = Math.min(h * 60, 360), h < 0 && (h += 360);
let l = (min + max) / 2;
return max === min ? s = 0 : l <= 0.5 ? s = delta / (max + min) : s = delta / (2 - max - min), [h, s * 100, l * 100];
};
convert.rgb.hsv = function(rgb) {
let rdif, gdif, bdif, h, s, r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255, v = Math.max(r, g, b), diff = v - Math.min(r, g, b), diffc = function(c) {
return (v - c) / 6 / diff + 1 / 2;
};
return diff === 0 ? (h = 0, s = 0) : (s = diff / v, rdif = diffc(r), gdif = diffc(g), bdif = diffc(b), r === v ? h = bdif - gdif : g === v ? h = 1 / 3 + rdif - bdif : b === v && (h = 2 / 3 + gdif - rdif), h < 0 ? h += 1 : h > 1 && (h -= 1)), [
h * 360,
s * 100,
v * 100
];
};
convert.rgb.hwb = function(rgb) {
let r = rgb[0], g = rgb[1], b = rgb[2], h = convert.rgb.hsl(rgb)[0], w = 1 / 255 * Math.min(r, Math.min(g, b));
return b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)), [h, w * 100, b * 100];
};
convert.rgb.cmyk = function(rgb) {
let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255, k = Math.min(1 - r, 1 - g, 1 - b), c = (1 - r - k) / (1 - k) || 0, m = (1 - g - k) / (1 - k) || 0, y = (1 - b - k) / (1 - k) || 0;
return [c * 100, m * 100, y * 100, k * 100];
};
function comparativeDistance(x, y) {
return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
}
convert.rgb.keyword = function(rgb) {
let reversed = reverseKeywords[rgb];
if (reversed)
return reversed;
let currentClosestDistance = 1 / 0, currentClosestKeyword;
for (let keyword of Object.keys(cssKeywords)) {
let value = cssKeywords[keyword], distance = comparativeDistance(rgb, value);
distance < currentClosestDistance && (currentClosestDistance = distance, currentClosestKeyword = keyword);
}
return currentClosestKeyword;
};
convert.keyword.rgb = function(keyword) {
return cssKeywords[keyword];
};
convert.rgb.xyz = function(rgb) {
let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255;
r = r > 0.04045 ? ((r + 0.055) / 1.055) ** 2.4 : r / 12.92, g = g > 0.04045 ? ((g + 0.055) / 1.055) ** 2.4 : g / 12.92, b = b > 0.04045 ? ((b + 0.055) / 1.055) ** 2.4 : b / 12.92;
let x = r * 0.4124 + g * 0.3576 + b * 0.1805, y = r * 0.2126 + g * 0.7152 + b * 0.0722, z = r * 0.0193 + g * 0.1192 + b * 0.9505;
return [x * 100, y * 100, z * 100];
};
convert.rgb.lab = function(rgb) {
let xyz = convert.rgb.xyz(rgb), x = xyz[0], y = xyz[1], z = xyz[2];
x /= 95.047, y /= 100, z /= 108.883, x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116, y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116, z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
let l = 116 * y - 16, a = 500 * (x - y), b = 200 * (y - z);
return [l, a, b];
};
convert.hsl.rgb = function(hsl) {
let h = hsl[0] / 360, s = hsl[1] / 100, l = hsl[2] / 100, t2, t3, val;
if (s === 0)
return val = l * 255, [val, val, val];
l < 0.5 ? t2 = l * (1 + s) : t2 = l + s - l * s;
let t1 = 2 * l - t2, rgb = [0, 0, 0];
for (let i = 0; i < 3; i++)
t3 = h + 1 / 3 * -(i - 1), t3 < 0 && t3++, t3 > 1 && t3--, 6 * t3 < 1 ? val = t1 + (t2 - t1) * 6 * t3 : 2 * t3 < 1 ? val = t2 : 3 * t3 < 2 ? val = t1 + (t2 - t1) * (2 / 3 - t3) * 6 : val = t1, rgb[i] = val * 255;
return rgb;
};
convert.hsl.hsv = function(hsl) {
let h = hsl[0], s = hsl[1] / 100, l = hsl[2] / 100, smin = s, lmin = Math.max(l, 0.01);
l *= 2, s *= l <= 1 ? l : 2 - l, smin *= lmin <= 1 ? lmin : 2 - lmin;
let v = (l + s) / 2, sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);
return [h, sv * 100, v * 100];
};
convert.hsv.rgb = function(hsv) {
let h = hsv[0] / 60, s = hsv[1] / 100, v = hsv[2] / 100, hi = Math.floor(h) % 6, f = h - Math.floor(h), p = 255 * v * (1 - s), q = 255 * v * (1 - s * f), t = 255 * v * (1 - s * (1 - f));
switch (v *= 255, hi) {
case 0:
return [v, t, p];
case 1:
return [q, v, p];
case 2:
return [p, v, t];
case 3:
return [p, q, v];
case 4:
return [t, p, v];
case 5:
return [v, p, q];
}
};
convert.hsv.hsl = function(hsv) {
let h = hsv[0], s = hsv[1] / 100, v = hsv[2] / 100, vmin = Math.max(v, 0.01), sl, l;
l = (2 - s) * v;
let lmin = (2 - s) * vmin;
return sl = s * vmin, sl /= lmin <= 1 ? lmin : 2 - lmin, sl = sl || 0, l /= 2, [h, sl * 100, l * 100];
};
convert.hwb.rgb = function(hwb) {
let h = hwb[0] / 360, wh = hwb[1] / 100, bl = hwb[2] / 100, ratio = wh + bl, f;
ratio > 1 && (wh /= ratio, bl /= ratio);
let i = Math.floor(6 * h), v = 1 - bl;
f = 6 * h - i, (i & 1) !== 0 && (f = 1 - f);
let n = wh + f * (v - wh), r, g, b;
switch (i) {
default:
case 6:
case 0:
r = v, g = n, b = wh;
break;
case 1:
r = n, g = v, b = wh;
break;
case 2:
r = wh, g = v, b = n;
break;
case 3:
r = wh, g = n, b = v;
break;
case 4:
r = n, g = wh, b = v;
break;
case 5:
r = v, g = wh, b = n;
break;
}
return [r * 255, g * 255, b * 255];
};
convert.cmyk.rgb = function(cmyk) {
let c = cmyk[0] / 100, m = cmyk[1] / 100, y = cmyk[2] / 100, k = cmyk[3] / 100, r = 1 - Math.min(1, c * (1 - k) + k), g = 1 - Math.min(1, m * (1 - k) + k), b = 1 - Math.min(1, y * (1 - k) + k);
return [r * 255, g * 255, b * 255];
};
convert.xyz.rgb = function(xyz) {
let x = xyz[0] / 100, y = xyz[1] / 100, z = xyz[2] / 100, r, g, b;
return r = x * 3.2406 + y * -1.5372 + z * -0.4986, g = x * -0.9689 + y * 1.8758 + z * 0.0415, b = x * 0.0557 + y * -0.204 + z * 1.057, r = r > 31308e-7 ? 1.055 * r ** (1 / 2.4) - 0.055 : r * 12.92, g = g > 31308e-7 ? 1.055 * g ** (1 / 2.4) - 0.055 : g * 12.92, b = b > 31308e-7 ? 1.055 * b ** (1 / 2.4) - 0.055 : b * 12.92, r = Math.min(Math.max(0, r), 1), g = Math.min(Math.max(0, g), 1), b = Math.min(Math.max(0, b), 1), [r * 255, g * 255, b * 255];
};
convert.xyz.lab = function(xyz) {
let x = xyz[0], y = xyz[1], z = xyz[2];
x /= 95.047, y /= 100, z /= 108.883, x = x > 8856e-6 ? x ** (1 / 3) : 7.787 * x + 16 / 116, y = y > 8856e-6 ? y ** (1 / 3) : 7.787 * y + 16 / 116, z = z > 8856e-6 ? z ** (1 / 3) : 7.787 * z + 16 / 116;
let l = 116 * y - 16, a = 500 * (x - y), b = 200 * (y - z);
return [l, a, b];
};
convert.lab.xyz = function(lab) {
let l = lab[0], a = lab[1], b = lab[2], x, y, z;
y = (l + 16) / 116, x = a / 500 + y, z = y - b / 200;
let y2 = y ** 3, x2 = x ** 3, z2 = z ** 3;
return y = y2 > 8856e-6 ? y2 : (y - 16 / 116) / 7.787, x = x2 > 8856e-6 ? x2 : (x - 16 / 116) / 7.787, z = z2 > 8856e-6 ? z2 : (z - 16 / 116) / 7.787, x *= 95.047, y *= 100, z *= 108.883, [x, y, z];
};
convert.lab.lch = function(lab) {
let l = lab[0], a = lab[1], b = lab[2], h;
h = Math.atan2(b, a) * 360 / 2 / Math.PI, h < 0 && (h += 360);
let c = Math.sqrt(a * a + b * b);
return [l, c, h];
};
convert.lch.lab = function(lch) {
let l = lch[0], c = lch[1], hr = lch[2] / 360 * 2 * Math.PI, a = c * Math.cos(hr), b = c * Math.sin(hr);
return [l, a, b];
};
convert.rgb.ansi16 = function(args, saturation = null) {
let [r, g, b] = args, value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;
if (value = Math.round(value / 50), value === 0)
return 30;
let ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));
return value === 2 && (ansi += 60), ansi;
};
convert.hsv.ansi16 = function(args) {
return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
};
convert.rgb.ansi256 = function(args) {
let r = args[0], g = args[1], b = args[2];
return r === g && g === b ? r < 8 ? 16 : r > 248 ? 231 : Math.round((r - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);
};
convert.ansi16.rgb = function(args) {
let color = args % 10;
if (color === 0 || color === 7)
return args > 50 && (color += 3.5), color = color / 10.5 * 255, [color, color, color];
let mult = (~~(args > 50) + 1) * 0.5, r = (color & 1) * mult * 255, g = (color >> 1 & 1) * mult * 255, b = (color >> 2 & 1) * mult * 255;
return [r, g, b];
};
convert.ansi256.rgb = function(args) {
if (args >= 232) {
let c = (args - 232) * 10 + 8;
return [c, c, c];
}
args -= 16;
let rem, r = Math.floor(args / 36) / 5 * 255, g = Math.floor((rem = args % 36) / 6) / 5 * 255, b = rem % 6 / 5 * 255;
return [r, g, b];
};
convert.rgb.hex = function(args) {
let string = (((Math.round(args[0]) & 255) << 16) + ((Math.round(args[1]) & 255) << 8) + (Math.round(args[2]) & 255)).toString(16).toUpperCase();
return "000000".substring(string.length) + string;
};
convert.hex.rgb = function(args) {
let match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);
if (!match)
return [0, 0, 0];
let colorString = match[0];
match[0].length === 3 && (colorString = colorString.split("").map((char) => char + char).join(""));
let integer = parseInt(colorString, 16), r = integer >> 16 & 255, g = integer >> 8 & 255, b = integer & 255;
return [r, g, b];
};
convert.rgb.hcg = function(rgb) {
let r = rgb[0] / 255, g = rgb[1] / 255, b = rgb[2] / 255, max = Math.max(Math.max(r, g), b), min = Math.min(Math.min(r, g), b), chroma = max - min, grayscale, hue;
return chroma < 1 ? grayscale = min / (1 - chroma) : grayscale = 0, chroma <= 0 ? hue = 0 : max === r ? hue = (g - b) / chroma % 6 : max === g ? hue = 2 + (b - r) / chroma : hue = 4 + (r - g) / chroma, hue /= 6, hue %= 1, [hue * 360, chroma * 100, grayscale * 100];
};
convert.hsl.hcg = function(hsl) {
let s = hsl[1] / 100, l = hsl[2] / 100, c = l < 0.5 ? 2 * s * l : 2 * s * (1 - l), f = 0;
return c < 1 && (f = (l - 0.5 * c) / (1 - c)), [hsl[0], c * 100, f * 100];
};
convert.hsv.hcg = function(hsv) {
let s = hsv[1] / 100, v = hsv[2] / 100, c = s * v, f = 0;
return c < 1 && (f = (v - c) / (1 - c)), [hsv[0], c * 100, f * 100];
};
convert.hcg.rgb = function(hcg) {
let h = hcg[0] / 360, c = hcg[1] / 100, g = hcg[2] / 100;
if (c === 0)
return [g * 255, g * 255, g * 255];
let pure = [0, 0, 0], hi = h % 1 * 6, v = hi % 1, w = 1 - v, mg = 0;
switch (Math.floor(hi)) {
case 0:
pure[0] = 1, pure[1] = v, pure[2] = 0;
break;
case 1:
pure[0] = w, pure[1] = 1, pure[2] = 0;
break;
case 2:
pure[0] = 0, pure[1] = 1, pure[2] = v;
break;
case 3:
pure[0] = 0, pure[1] = w, pure[2] = 1;
break;
case 4:
pure[0] = v, pure[1] = 0, pure[2] = 1;
break;
default:
pure[0] = 1, pure[1] = 0, pure[2] = w;
}
return mg = (1 - c) * g, [
(c * pure[0] + mg) * 255,
(c * pure[1] + mg) * 255,
(c * pure[2] + mg) * 255
];
};
convert.hcg.hsv = function(hcg) {
let c = hcg[1] / 100, g = hcg[2] / 100, v = c + g * (1 - c), f = 0;
return v > 0 && (f = c / v), [hcg[0], f * 100, v * 100];
};
convert.hcg.hsl = function(hcg) {
let c = hcg[1] / 100, l = hcg[2] / 100 * (1 - c) + 0.5 * c, s = 0;
return l > 0 && l < 0.5 ? s = c / (2 * l) : l >= 0.5 && l < 1 && (s = c / (2 * (1 - l))), [hcg[0], s * 100, l * 100];
};
convert.hcg.hwb = function(hcg) {
let c = hcg[1] / 100, g = hcg[2] / 100, v = c + g * (1 - c);
return [hcg[0], (v - c) * 100, (1 - v) * 100];
};
convert.hwb.hcg = function(hwb) {
let w = hwb[1] / 100, v = 1 - hwb[2] / 100, c = v - w, g = 0;
return c < 1 && (g = (v - c) / (1 - c)), [hwb[0], c * 100, g * 100];
};
convert.apple.rgb = function(apple) {
return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];
};
convert.rgb.apple = function(rgb) {
return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];
};
convert.gray.rgb = function(args) {
return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];
};
convert.gray.hsl = function(args) {
return [0, 0, args[0]];
};
convert.gray.hsv = convert.gray.hsl;
convert.gray.hwb = function(gray) {
return [0, 100, gray[0]];
};
convert.gray.cmyk = function(gray) {
return [0, 0, 0, gray[0]];
};
convert.gray.lab = function(gray) {
return [gray[0], 0, 0];
};
convert.gray.hex = function(gray) {
let val = Math.round(gray[0] / 100 * 255) & 255, string = ((val << 16) + (val << 8) + val).toString(16).toUpperCase();
return "000000".substring(string.length) + string;
};
convert.rgb.gray = function(rgb) {
return [(rgb[0] + rgb[1] + rgb[2]) / 3 / 255 * 100];
};
}
});
// ../../node_modules/color-convert/route.js
var require_route = __commonJS({
"../../node_modules/color-convert/route.js"(exports, module) {
var conversions = require_conversions();
function buildGraph() {
let graph = {}, models = Object.keys(conversions);
for (let len = models.length, i = 0; i < len; i++)
graph[models[i]] = {
// http://jsperf.com/1-vs-infinity
// micro-opt, but this is simple.
distance: -1,
parent: null
};
return graph;
}
function deriveBFS(fromModel) {
let graph = buildGraph(), queue = [fromModel];
for (graph[fromModel].distance = 0; queue.length; ) {
let current = queue.pop(), adjacents = Object.keys(conversions[current]);
for (let len = adjacents.length, i = 0; i < len; i++) {
let adjacent = adjacents[i], node = graph[adjacent];
node.distance === -1 && (node.distance = graph[current].distance + 1, node.parent = current, queue.unshift(adjacent));
}
}
return graph;
}
function link(from, to) {
return function(args) {
return to(from(args));
};
}
function wrapConversion(toModel, graph) {
let path = [graph[toModel].parent, toModel], fn = conversions[graph[toModel].parent][toModel], cur = graph[toModel].parent;
for (; graph[cur].parent; )
path.unshift(graph[cur].parent), fn = link(conversions[graph[cur].parent][cur], fn), cur = graph[cur].parent;
return fn.conversion = path, fn;
}
module.exports = function(fromModel) {
let graph = deriveBFS(fromModel), conversion = {}, models = Object.keys(graph);
for (let len = models.length, i = 0; i < len; i++) {
let toModel = models[i];
graph[toModel].parent !== null && (conversion[toModel] = wrapConversion(toModel, graph));
}
return conversion;
};
}
});
// ../../node_modules/color-convert/index.js
var require_color_convert = __commonJS({
"../../node_modules/color-convert/index.js"(exports, module) {
var conversions = require_conversions(), route = require_route(), convert = {}, models = Object.keys(conversions);
function wrapRaw(fn) {
let wrappedFn = function(...args) {
let arg0 = args[0];
return arg0 == null ? arg0 : (arg0.length > 1 && (args = arg0), fn(args));
};
return "conversion" in fn && (wrappedFn.conversion = fn.conversion), wrappedFn;
}
function wrapRounded(fn) {
let wrappedFn = function(...args) {
let arg0 = args[0];
if (arg0 == null)
return arg0;
arg0.length > 1 && (args = arg0);
let result = fn(args);
if (typeof result == "object")
for (let len = result.length, i = 0; i < len; i++)
result[i] = Math.round(result[i]);
return result;
};
return "conversion" in fn && (wrappedFn.conversion = fn.conversion), wrappedFn;
}
models.forEach((fromModel) => {
convert[fromModel] = {}, Object.defineProperty(convert[fromModel], "channels", { value: conversions[fromModel].channels }), Object.defineProperty(convert[fromModel], "labels", { value: conversions[fromModel].labels });
let routes = route(fromModel);
Object.keys(routes).forEach((toModel) => {
let fn = routes[toModel];
convert[fromModel][toModel] = wrapRounded(fn), convert[fromModel][toModel].raw = wrapRaw(fn);
});
});
module.exports = convert;
}
});
export {
require_color_convert
};