{"version":3,"file":"lab2rgb.mjs","sources":["../../../../../../../../../node_modules/chroma-js/src/io/lab/lab2rgb.js"],"sourcesContent":["import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst lab2rgb = (...args) => {\n    args = unpack(args, 'lab');\n    const [L, a, b] = args;\n    const [x, y, z] = lab2xyz(L, a, b);\n    const [r, g, b_] = xyz2rgb(x, y, z);\n    return [r, g, b_, args.length > 3 ? args[3] : 1];\n};\n\nconst lab2xyz = (L, a, b) => {\n    const { kE, kK, kKE, Xn, Yn, Zn } = LAB_CONSTANTS;\n\n    const fy = (L + 16.0) / 116.0;\n    const fx = 0.002 * a + fy;\n    const fz = fy - 0.005 * b;\n\n    const fx3 = fx * fx * fx;\n    const fz3 = fz * fz * fz;\n\n    const xr = fx3 > kE ? fx3 : (116.0 * fx - 16.0) / kK;\n    const yr = L > kKE ? Math.pow((L + 16.0) / 116.0, 3.0) : L / kK;\n    const zr = fz3 > kE ? fz3 : (116.0 * fz - 16.0) / kK;\n\n    const x = xr * Xn;\n    const y = yr * Yn;\n    const z = zr * Zn;\n\n    return [x, y, z];\n};\n\nconst compand = (linear) => {\n    /* sRGB */\n    const sign = Math.sign(linear);\n    linear = Math.abs(linear);\n    return (\n        (linear <= 0.0031308\n            ? linear * 12.92\n            : 1.055 * Math.pow(linear, 1.0 / 2.4) - 0.055) * sign\n    );\n};\n\nconst xyz2rgb = (x, y, z) => {\n    const { MtxAdaptMa, MtxAdaptMaI, MtxXYZ2RGB, RefWhiteRGB, Xn, Yn, Zn } =\n        LAB_CONSTANTS;\n\n    const As = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n    const Bs = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n    const Cs = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n    const Ad =\n        RefWhiteRGB.X * MtxAdaptMa.m00 +\n        RefWhiteRGB.Y * MtxAdaptMa.m10 +\n        RefWhiteRGB.Z * MtxAdaptMa.m20;\n    const Bd =\n        RefWhiteRGB.X * MtxAdaptMa.m01 +\n        RefWhiteRGB.Y * MtxAdaptMa.m11 +\n        RefWhiteRGB.Z * MtxAdaptMa.m21;\n    const Cd =\n        RefWhiteRGB.X * MtxAdaptMa.m02 +\n        RefWhiteRGB.Y * MtxAdaptMa.m12 +\n        RefWhiteRGB.Z * MtxAdaptMa.m22;\n\n    const X1 =\n        (x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20) *\n        (Ad / As);\n    const Y1 =\n        (x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21) *\n        (Bd / Bs);\n    const Z1 =\n        (x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22) *\n        (Cd / Cs);\n\n    const X2 =\n        X1 * MtxAdaptMaI.m00 + Y1 * MtxAdaptMaI.m10 + Z1 * MtxAdaptMaI.m20;\n    const Y2 =\n        X1 * MtxAdaptMaI.m01 + Y1 * MtxAdaptMaI.m11 + Z1 * MtxAdaptMaI.m21;\n    const Z2 =\n        X1 * MtxAdaptMaI.m02 + Y1 * MtxAdaptMaI.m12 + Z1 * MtxAdaptMaI.m22;\n\n    const r = compand(\n        X2 * MtxXYZ2RGB.m00 + Y2 * MtxXYZ2RGB.m10 + Z2 * MtxXYZ2RGB.m20\n    );\n    const g = compand(\n        X2 * MtxXYZ2RGB.m01 + Y2 * MtxXYZ2RGB.m11 + Z2 * MtxXYZ2RGB.m21\n    );\n    const b = compand(\n        X2 * MtxXYZ2RGB.m02 + Y2 * MtxXYZ2RGB.m12 + Z2 * MtxXYZ2RGB.m22\n    );\n\n    return [r * 255, g * 255, b * 255];\n};\n\nexport default lab2rgb;\nexport { xyz2rgb };\n"],"names":["LAB_CONSTANTS"],"mappings":"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","x_google_ignoreList":[0]}