You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
66 KiB

{"ast":null,"code":"var _slicedToArray = require(\"@babel/runtime/helpers/slicedToArray\");\nvar cssKeywords = require('color-name');\nvar reverseKeywords = {};\nfor (var key of Object.keys(cssKeywords)) {\n reverseKeywords[cssKeywords[key]] = key;\n}\nvar convert = {\n rgb: {\n channels: 3,\n labels: 'rgb'\n },\n hsl: {\n channels: 3,\n labels: 'hsl'\n },\n hsv: {\n channels: 3,\n labels: 'hsv'\n },\n hwb: {\n channels: 3,\n labels: 'hwb'\n },\n cmyk: {\n channels: 4,\n labels: 'cmyk'\n },\n xyz: {\n channels: 3,\n labels: 'xyz'\n },\n lab: {\n channels: 3,\n labels: 'lab'\n },\n lch: {\n channels: 3,\n labels: 'lch'\n },\n hex: {\n channels: 1,\n labels: ['hex']\n },\n keyword: {\n channels: 1,\n labels: ['keyword']\n },\n ansi16: {\n channels: 1,\n labels: ['ansi16']\n },\n ansi256: {\n channels: 1,\n labels: ['ansi256']\n },\n hcg: {\n channels: 3,\n labels: ['h', 'c', 'g']\n },\n apple: {\n channels: 3,\n labels: ['r16', 'g16', 'b16']\n },\n gray: {\n channels: 1,\n labels: ['gray']\n }\n};\nmodule.exports = convert;\nfor (var model of Object.keys(convert)) {\n if (!('channels' in convert[model])) {\n throw new Error('missing channels property: ' + model);\n }\n if (!('labels' in convert[model])) {\n throw new Error('missing channel labels property: ' + model);\n }\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error('channel and label counts mismatch: ' + model);\n }\n var _convert$model = convert[model],\n channels = _convert$model.channels,\n labels = _convert$model.labels;\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], 'channels', {\n value: channels\n });\n Object.defineProperty(convert[model], 'labels', {\n value: labels\n });\n}\nconvert.rgb.hsl = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var h;\n var s;\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h = Math.min(h * 60, 360);\n if (h < 0) {\n h += 360;\n }\n var l = (min + max) / 2;\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n return [h, s * 100, l * 100];\n};\nconvert.rgb.hsv = function (rgb) {\n var rdif;\n var gdif;\n var bdif;\n var h;\n var s;\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var v = Math.max(r, g, b);\n var diff = v - Math.min(r, g, b);\n var diffc = function diffc(c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n if (diff === 0) {\n h = 0;\n s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n return [h * 360, s * 100, v * 100];\n};\nconvert.rgb.hwb = function (rgb) {\n var r = rgb[0];\n var g = rgb[1];\n var b = rgb[2];\n var h = convert.rgb.hsl(rgb)[0];\n var w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n};\nconvert.rgb.cmyk = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var k = Math.min(1 - r, 1 - g, 1 - b);\n var c = (1 - r - k) / (1 - k) || 0;\n var m = (1 - g - k) / (1 - k) || 0;\n var y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n};\nfunction comparativeDistance(x, y) {\n return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);\n}\nconvert.rgb.keyword = function (rgb) {\n var reversed = reverseKeywords[rgb];\n if (reversed) {\n return reversed;\n }\n var currentClosestDistance = Infinity;\n var currentClosestKeyword;\n for (var keyword of Object.keys(cssKeywords)) {\n var value = cssKeywords[keyword];\n var distance = comparativeDistance(rgb, value);\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n return currentClosestKeyword;\n};\nconvert.keyword.rgb = function (keyword) {\n return cssKeywords[keyword];\n};\nconvert.rgb.xyz = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x * 100, y * 100, z * 100];\n};\nconvert.rgb.lab = function (rgb) {\n var xyz = convert.rgb.xyz(rgb);\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var l = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [l, a, b];\n};\nconvert.hsl.rgb = function (hsl) {\n var h = hsl[0] / 360;\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var t2;\n var t3;\n var val;\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n var t1 = 2 * l - t2;\n var rgb = [0, 0, 0];\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n if (t3 < 0) {\n t3++;\n }\n if (t3 > 1) {\n t3--;\n }\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n rgb[i] = val * 255;\n }\n return rgb;\n};\nconvert.hsl.hsv = function (hsl) {\n var h = hsl[0];\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var smin = s;\n var lmin = Math.max(l, 0.01);\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n var v = (l + s) / 2;\n var sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n};\nconvert.hsv.rgb = function (hsv) {\n var h = hsv[0] / 60;\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var hi = Math.floor(h) % 6;\n var f = h - Math.floor(h);\n var p = 255 * v * (1 - s);\n var q = 255 * v * (1 - s * f);\n var t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n switch (hi) {\n case 0:\n return [v, t, p];\n case 1:\n return [q, v, p];\n case 2:\n return [p, v, t];\n case 3:\n return [p, q, v];\n case 4:\n return [t, p, v];\n case 5:\n return [v, p, q];\n }\n};\nconvert.hsv.hsl = function (hsv) {\n var h = hsv[0];\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var vmin = Math.max(v, 0.01);\n var sl;\n var l;\n l = (2 - s) * v;\n var lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n};\nconvert.hwb.rgb = function (hwb) {\n var h = hwb[0] / 360;\n var wh = hwb[1] / 100;\n var bl = hwb[2] / 100;\n var ratio = wh + bl;\n var f;\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n var i = Math.floor(6 * h);\n var v = 1 - bl;\n f = 6 * h - i;\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n var n = wh + f * (v - wh);\n var r;\n var g;\n var b;\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n return [r * 255, g * 255, b * 255];\n};\nconvert.cmyk.rgb = function (cmyk) {\n var c = cmyk[0] / 100;\n var m = cmyk[1] / 100;\n var y = cmyk[2] / 100;\n var k = cmyk[3] / 100;\n var r = 1 - Math.min(1, c * (1 - k) + k);\n var g = 1 - Math.min(1, m * (1 - k) + k);\n var b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.rgb = function (xyz) {\n var x = xyz[0] / 100;\n var y = xyz[1] / 100;\n var z = xyz[2] / 100;\n var r;\n var g;\n var b;\n r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n b = x * 0.0557 + y * -0.2040 + z * 1.0570;\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n};\nconvert.xyz.lab = function (xyz) {\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n var l = 116 * y - 16;\n var a = 500 * (x - y);\n var b = 200 * (y - z);\n return [l, a, b];\n};\nconvert.lab.xyz = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var x;\n var y;\n var z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n var y2 = Math.pow(y, 3);\n var x2 = Math.pow(x, 3);\n var z2 = Math.pow(z, 3);\n y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n};\nconvert.lab.lch = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var h;\n var hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n if (h < 0) {\n h += 360;\n }\n var c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n};\nconvert.lch.lab = function (lch) {\n var l = lch[0];\n var c = lch[1];\n var h = lch[2];\n var hr = h / 360 * 2 * Math.PI;\n var a = c * Math.cos(hr);\n var b = c * Math.sin(hr);\n return [l, a, b];\n};\nconvert.rgb.ansi16 = function (args) {\n var saturation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _args = _slicedToArray(args, 3),\n r = _args[0],\n g = _args[1],\n b = _args[2];\n var value = saturation === null ? convert.rgb.hsv(args)[2] : saturation;\n value = Math.round(value / 50);\n if (value === 0) {\n return 30;\n }\n var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n if (value === 2) {\n ansi += 60;\n }\n return ansi;\n};\nconvert.hsv.ansi16 = function (args) {\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\nconvert.rgb.ansi256 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2];\n if (r === g && g === b) {\n if (r < 8) {\n return 16;\n }\n if (r > 248) {\n return 231;\n }\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n};\nconvert.ansi16.rgb = function (args) {\n var color = args % 10;\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n var mult = (~~(args > 50) + 1) * 0.5;\n var r = (color & 1) * mult * 255;\n var g = (color >> 1 & 1) * mult * 255;\n var b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n};\nconvert.ansi256.rgb = function (args) {\n if (args >= 232) {\n var c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n args -= 16;\n var rem;\n var r = Math.floor(args / 36) / 5 * 255;\n var g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n var b = rem % 6 / 5 * 255;\n return [r, g, b];\n};\nconvert.rgb.hex = function (args) {\n var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n};\nconvert.hex.rgb = function (args) {\n var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n if (!match) {\n return [0, 0, 0];\n }\n var colorString = match[0];\n if (match[0].length === 3) {\n colorString = colorString.split('').map(function (char) {\n return char + char;\n }).join('');\n }\n var integer = parseInt(colorString, 16);\n var r = integer >> 16 & 0xFF;\n var g = integer >> 8 & 0xFF;\n var b = integer & 0xFF;\n return [r, g, b];\n};\nconvert.rgb.hcg = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var max = Math.max(Math.max(r, g), b);\n var min = Math.min(Math.min(r, g), b);\n var chroma = max - min;\n var grayscale;\n var hue;\n if (chroma < 1) {\n grayscale = min / (1 - chroma);\n } else {\n grayscale = 0;\n }\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma;\n }\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n};\nconvert.hsl.hcg = function (hsl) {\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var c = l < 0.5 ? 2.0 * s * l : 2.0 * s * (1.0 - l);\n var f = 0;\n if (c < 1.0) {\n f = (l - 0.5 * c) / (1.0 - c);\n }\n return [hsl[0], c * 100, f * 100];\n};\nconvert.hsv.hcg = function (hsv) {\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var c = s * v;\n var f = 0;\n if (c < 1.0) {\n f = (v - c) / (1 - c);\n }\n return [hsv[0], c * 100, f * 100];\n};\nconvert.hcg.rgb = function (hcg) {\n var h = hcg[0] / 360;\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n if (c === 0.0) {\n return [g * 255, g * 255, g * 255];\n }\n var pure = [0, 0, 0];\n var hi = h % 1 * 6;\n var v = hi % 1;\n var w = 1 - v;\n var mg = 0;\n switch (Math.floor(hi)) {\n case 0:\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n case 1:\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n case 2:\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n case 3:\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n case 4:\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n default:\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n mg = (1.0 - c) * g;\n return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];\n};\nconvert.hcg.hsv = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n var f = 0;\n if (v > 0.0) {\n f = c / v;\n }\n return [hcg[0], f * 100, v * 100];\n};\nconvert.hcg.hsl = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var l = g * (1.0 - c) + 0.5 * c;\n var s = 0;\n if (l > 0.0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1.0) {\n s = c / (2 * (1 - l));\n }\n return [hcg[0], s * 100, l * 100];\n};\nconvert.hcg.hwb = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\nconvert.hwb.hcg = function (hwb) {\n var w = hwb[1] / 100;\n var b = hwb[2] / 100;\n var v = 1 - b;\n var c = v - w;\n var g = 0;\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n return [hwb[0], c * 100, g * 100];\n};\nconvert.apple.rgb = function (apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\nconvert.rgb.apple = function (rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\nconvert.gray.rgb = function (args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\nconvert.gray.hsl = function (args) {\n return [0, 0, args[0]];\n};\nconvert.gray.hsv = convert.gray.hsl;\nconvert.gray.hwb = function (gray) {\n return [0, 100, gray[0]];\n};\nconvert.gray.cmyk = function (gray) {\n return [0, 0, 0, gray[0]];\n};\nconvert.gray.lab = function (gray) {\n return [gray[0], 0, 0];\n};\nconvert.gray.hex = function (gray) {\n var val = Math.round(gray[0] / 100 * 255) & 0xFF;\n var integer = (val << 16) + (val << 8) + val;\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n};\nconvert.rgb.gray = function (rgb) {\n var val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [val / 255 * 100];\n};","map":{"version":3,"names":["cssKeywords","require","reverseKeywords","key","Object","keys","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","module","exports","model","Error","length","defineProperty","value","r","g","b","min","Math","max","delta","h","s","l","rdif","gdif","bdif","v","diff","diffc","c","w","k","m","y","comparativeDistance","x","reversed","currentClosestDistance","Infinity","currentClosestKeyword","distance","z","a","t2","t3","val","t1","i","smin","lmin","sv","hi","floor","f","p","q","t","vmin","sl","wh","bl","ratio","n","y2","x2","z2","hr","atan2","PI","sqrt","cos","sin","args","saturation","round","ansi","color","mult","rem","integer","string","toString","toUpperCase","substring","match","colorString","split","map","char","join","parseInt","chroma","grayscale","hue","pure","mg"],"sources":["/Users/thomaschazot/Documents/But2A/LaSuperMeteo/iut-expo-starter/node_modules/@react-navigation/stack/node_modules/color-convert/conversions.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"],"mappings":"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"},"metadata":{},"sourceType":"script"}