{"version":3,"file":"blend.cjs","sources":["../../../../../../../../../.yarn/berry/cache/chroma-js-npm-3.2.0-d5c39f5077-10c0.zip/node_modules/chroma-js/src/generator/blend.js"],"sourcesContent":["/*\n * interpolates between a set of colors uzing a bezier spline\n * blend mode formulas taken from https://web.archive.org/web/20180110014946/http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/\n */\n\nimport '../io/rgb/index.js';\nimport chroma from '../chroma.js';\n\nconst blend = (bottom, top, mode) => {\n    if (!blend[mode]) {\n        throw new Error('unknown blend mode ' + mode);\n    }\n    return blend[mode](bottom, top);\n};\n\nconst blend_f = (f) => (bottom, top) => {\n    const c0 = chroma(top).rgb();\n    const c1 = chroma(bottom).rgb();\n    return chroma.rgb(f(c0, c1));\n};\n\nconst each = (f) => (c0, c1) => {\n    const out = [];\n    out[0] = f(c0[0], c1[0]);\n    out[1] = f(c0[1], c1[1]);\n    out[2] = f(c0[2], c1[2]);\n    return out;\n};\n\nconst normal = (a) => a;\nconst multiply = (a, b) => (a * b) / 255;\nconst darken = (a, b) => (a > b ? b : a);\nconst lighten = (a, b) => (a > b ? a : b);\nconst screen = (a, b) => 255 * (1 - (1 - a / 255) * (1 - b / 255));\nconst overlay = (a, b) =>\n    b < 128 ? (2 * a * b) / 255 : 255 * (1 - 2 * (1 - a / 255) * (1 - b / 255));\nconst burn = (a, b) => 255 * (1 - (1 - b / 255) / (a / 255));\nconst dodge = (a, b) => {\n    if (a === 255) return 255;\n    a = (255 * (b / 255)) / (1 - a / 255);\n    return a > 255 ? 255 : a;\n};\n\n// # add = (a,b) ->\n// #     if (a + b > 255) then 255 else a + b\n\nblend.normal = blend_f(each(normal));\nblend.multiply = blend_f(each(multiply));\nblend.screen = blend_f(each(screen));\nblend.overlay = blend_f(each(overlay));\nblend.darken = blend_f(each(darken));\nblend.lighten = blend_f(each(lighten));\nblend.dodge = blend_f(each(dodge));\nblend.burn = blend_f(each(burn));\n// blend.add = blend_f(each(add));\n\nexport default blend;\n"],"names":[],"mappings":";;;AAQK,MAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS;AACjC,MAAI,CAAC,MAAM,IAAI,GAAG;AACd,UAAM,IAAI,MAAM,wBAAwB,IAAI;AAAA,EAChD;AACA,SAAO,MAAM,IAAI,EAAE,QAAQ,GAAG;AAClC;AAEA,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,QAAQ;AACpC,QAAM,KAAK,OAAO,GAAG,EAAE,IAAG;AAC1B,QAAM,KAAK,OAAO,MAAM,EAAE,IAAG;AAC7B,SAAO,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/B;AAEA,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO;AAC5B,QAAM,MAAM,CAAA;AACZ,MAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACvB,MAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACvB,MAAI,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AACvB,SAAO;AACX;AAEA,MAAM,SAAS,CAAC,MAAM;AACtB,MAAM,WAAW,CAAC,GAAG,MAAO,IAAI,IAAK;AACrC,MAAM,SAAS,CAAC,GAAG,MAAO,IAAI,IAAI,IAAI;AACtC,MAAM,UAAU,CAAC,GAAG,MAAO,IAAI,IAAI,IAAI;AACvC,MAAM,SAAS,CAAC,GAAG,MAAM,OAAO,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI;AAC7D,MAAM,UAAU,CAAC,GAAG,MAChB,IAAI,MAAO,IAAI,IAAI,IAAK,MAAM,OAAO,IAAI,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI;AAC1E,MAAM,OAAO,CAAC,GAAG,MAAM,OAAO,KAAK,IAAI,IAAI,QAAQ,IAAI;AACvD,MAAM,QAAQ,CAAC,GAAG,MAAM;AACpB,MAAI,MAAM,IAAK,QAAO;AACtB,MAAK,OAAO,IAAI,QAAS,IAAI,IAAI;AACjC,SAAO,IAAI,MAAM,MAAM;AAC3B;AAKA,MAAM,SAAS,QAAQ,KAAK,MAAM,CAAC;AACnC,MAAM,WAAW,QAAQ,KAAK,QAAQ,CAAC;AACvC,MAAM,SAAS,QAAQ,KAAK,MAAM,CAAC;AACnC,MAAM,UAAU,QAAQ,KAAK,OAAO,CAAC;AACrC,MAAM,SAAS,QAAQ,KAAK,MAAM,CAAC;AACnC,MAAM,UAAU,QAAQ,KAAK,OAAO,CAAC;AACrC,MAAM,QAAQ,QAAQ,KAAK,KAAK,CAAC;AACjC,MAAM,OAAO,QAAQ,KAAK,IAAI,CAAC;;","x_google_ignoreList":[0]}