{"version":3,"file":"color-convert-C7BUnLh1.js","sources":["../../node_modules/color-convert/conversions.js","../../node_modules/color-convert/route.js","../../node_modules/color-convert/index.js"],"sourcesContent":["/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n"],"names":["cssKeywords","require$$0","reverseKeywords","key","convert","conversions","model","channels","labels","rgb","r","g","b","min","max","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","c","w","k","m","y","comparativeDistance","x","reversed","currentClosestDistance","currentClosestKeyword","keyword","value","distance","z","xyz","a","hsl","t2","t3","val","t1","i","smin","lmin","sv","hsv","hi","f","p","q","t","vmin","sl","hwb","wh","bl","ratio","n","cmyk","lab","y2","x2","z2","lch","hr","args","saturation","ansi","color","mult","rem","string","match","colorString","char","integer","chroma","grayscale","hue","hcg","pure","mg","apple","gray","buildGraph","graph","models","len","deriveBFS","fromModel","queue","current","adjacents","adjacent","node","link","from","to","wrapConversion","toModel","path","fn","cur","route","conversion","require$$1","wrapRaw","wrappedFn","arg0","wrapRounded","result","routes","colorConvert"],"mappings":"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","x_google_ignoreList":[0,1,2]}