{"version":3,"file":"cubehelix.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/generator/cubehelix.js"],"sourcesContent":["// cubehelix interpolation\n// based on D.A. Green \"A colour scheme for the display of astronomical intensity images\"\n// http://astron-soc.in/bulletin/11June/289392011.pdf\nimport { type, clip_rgb, TWOPI } from '../utils/index.js';\nimport chroma from '../chroma.js';\nconst { pow, sin, cos } = Math;\n\nexport default function (\n    start = 300,\n    rotations = -1.5,\n    hue = 1,\n    gamma = 1,\n    lightness = [0, 1]\n) {\n    let dh = 0,\n        dl;\n    if (type(lightness) === 'array') {\n        dl = lightness[1] - lightness[0];\n    } else {\n        dl = 0;\n        lightness = [lightness, lightness];\n    }\n    const f = function (fract) {\n        const a = TWOPI * ((start + 120) / 360 + rotations * fract);\n        const l = pow(lightness[0] + dl * fract, gamma);\n        const h = dh !== 0 ? hue[0] + fract * dh : hue;\n        const amp = (h * l * (1 - l)) / 2;\n        const cos_a = cos(a);\n        const sin_a = sin(a);\n        const r = l + amp * (-0.14861 * cos_a + 1.78277 * sin_a);\n        const g = l + amp * (-0.29227 * cos_a - 0.90649 * sin_a);\n        const b = l + amp * (+1.97294 * cos_a);\n        return chroma(clip_rgb([r * 255, g * 255, b * 255, 1]));\n    };\n    f.start = function (s) {\n        if (s == null) {\n            return start;\n        }\n        start = s;\n        return f;\n    };\n    f.rotations = function (r) {\n        if (r == null) {\n            return rotations;\n        }\n        rotations = r;\n        return f;\n    };\n    f.gamma = function (g) {\n        if (g == null) {\n            return gamma;\n        }\n        gamma = g;\n        return f;\n    };\n    f.hue = function (h) {\n        if (h == null) {\n            return hue;\n        }\n        hue = h;\n        if (type(hue) === 'array') {\n            dh = hue[1] - hue[0];\n            if (dh === 0) {\n                hue = hue[1];\n            }\n        } else {\n            dh = 0;\n        }\n        return f;\n    };\n    f.lightness = function (h) {\n        if (h == null) {\n            return lightness;\n        }\n        if (type(h) === 'array') {\n            lightness = h;\n            dl = h[1] - h[0];\n        } else {\n            lightness = [h, h];\n            dl = 0;\n        }\n        return f;\n    };\n    f.scale = () => chroma.scale(f);\n    f.hue(hue);\n    return f;\n}\n"],"names":["TWOPI"],"mappings":";;;;;AAKA,MAAM,EAAE,KAAK,KAAK,IAAG,IAAK;AAEX,SAAA,UACX,QAAQ,KACR,YAAY,MACZ,MAAM,GACN,QAAQ,GACR,YAAY,CAAC,GAAG,CAAC,GACnB;AACE,MAAI,KAAK,GACL;AACJ,MAAI,KAAK,SAAS,MAAM,SAAS;AAC7B,SAAK,UAAU,CAAC,IAAI,UAAU,CAAC;AAAA,EACnC,OAAO;AACH,SAAK;AACL,gBAAY,CAAC,WAAW,SAAS;AAAA,EACrC;AACA,QAAM,IAAI,SAAU,OAAO;AACvB,UAAM,IAAIA,MAAAA,UAAU,QAAQ,OAAO,MAAM,YAAY;AACrD,UAAM,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,KAAK;AAC9C,UAAM,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,QAAQ,KAAK;AAC3C,UAAM,MAAO,IAAI,KAAK,IAAI,KAAM;AAChC,UAAM,QAAQ,IAAI,CAAC;AACnB,UAAM,QAAQ,IAAI,CAAC;AACnB,UAAM,IAAI,IAAI,OAAO,WAAW,QAAQ,UAAU;AAClD,UAAM,IAAI,IAAI,OAAO,WAAW,QAAQ,UAAU;AAClD,UAAM,IAAI,IAAI,OAAO,UAAW;AAChC,WAAO,OAAO,SAAS,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;AAAA,EAC1D;AACA,IAAE,QAAQ,SAAU,GAAG;AACnB,QAAI,KAAK,MAAM;AACX,aAAO;AAAA,IACX;AACA,YAAQ;AACR,WAAO;AAAA,EACX;AACA,IAAE,YAAY,SAAU,GAAG;AACvB,QAAI,KAAK,MAAM;AACX,aAAO;AAAA,IACX;AACA,gBAAY;AACZ,WAAO;AAAA,EACX;AACA,IAAE,QAAQ,SAAU,GAAG;AACnB,QAAI,KAAK,MAAM;AACX,aAAO;AAAA,IACX;AACA,YAAQ;AACR,WAAO;AAAA,EACX;AACA,IAAE,MAAM,SAAU,GAAG;AACjB,QAAI,KAAK,MAAM;AACX,aAAO;AAAA,IACX;AACA,UAAM;AACN,QAAI,KAAK,GAAG,MAAM,SAAS;AACvB,WAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AACnB,UAAI,OAAO,GAAG;AACV,cAAM,IAAI,CAAC;AAAA,MACf;AAAA,IACJ,OAAO;AACH,WAAK;AAAA,IACT;AACA,WAAO;AAAA,EACX;AACA,IAAE,YAAY,SAAU,GAAG;AACvB,QAAI,KAAK,MAAM;AACX,aAAO;AAAA,IACX;AACA,QAAI,KAAK,CAAC,MAAM,SAAS;AACrB,kBAAY;AACZ,WAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IACnB,OAAO;AACH,kBAAY,CAAC,GAAG,CAAC;AACjB,WAAK;AAAA,IACT;AACA,WAAO;AAAA,EACX;AACA,IAAE,QAAQ,MAAM,OAAO,MAAM,CAAC;AAC9B,IAAE,IAAI,GAAG;AACT,SAAO;AACX;;","x_google_ignoreList":[0]}