{"version":3,"file":"mapCanvasBlendModesToPixi.mjs","sources":["../../src/utils/mapCanvasBlendModesToPixi.ts"],"sourcesContent":["import { BLEND_MODES } from 'pixijs/core';\nimport { canUseNewCanvasBlendModes } from './canUseNewCanvasBlendModes';\n\n/**\n * Maps blend combinations to Canvas.\n * @memberof PIXI\n * @function mapCanvasBlendModesToPixi\n * @private\n * @param {string[]} [array=[]] - The array to output into.\n * @returns {string[]} Mapped modes.\n */\n// TODO after upgrading to typeScript 4.6, replace `string[]` with `GlobalCompositeOperation[]`\nexport function mapCanvasBlendModesToPixi(array: string[] = []): string[]\n{\n    if (canUseNewCanvasBlendModes())\n    {\n        array[BLEND_MODES.NORMAL] = 'source-over';\n        array[BLEND_MODES.ADD] = 'lighter'; // IS THIS OK???\n        array[BLEND_MODES.MULTIPLY] = 'multiply';\n        array[BLEND_MODES.SCREEN] = 'screen';\n        array[BLEND_MODES.OVERLAY] = 'overlay';\n        array[BLEND_MODES.DARKEN] = 'darken';\n        array[BLEND_MODES.LIGHTEN] = 'lighten';\n        array[BLEND_MODES.COLOR_DODGE] = 'color-dodge';\n        array[BLEND_MODES.COLOR_BURN] = 'color-burn';\n        array[BLEND_MODES.HARD_LIGHT] = 'hard-light';\n        array[BLEND_MODES.SOFT_LIGHT] = 'soft-light';\n        array[BLEND_MODES.DIFFERENCE] = 'difference';\n        array[BLEND_MODES.EXCLUSION] = 'exclusion';\n        array[BLEND_MODES.HUE] = 'hue';\n        array[BLEND_MODES.SATURATION] = 'saturation';\n        array[BLEND_MODES.COLOR] = 'color';\n        array[BLEND_MODES.LUMINOSITY] = 'luminosity';\n    }\n    else\n    {\n        // this means that the browser does not support the cool new blend modes in canvas 'cough' ie 'cough'\n        array[BLEND_MODES.NORMAL] = 'source-over';\n        array[BLEND_MODES.ADD] = 'lighter'; // IS THIS OK???\n        array[BLEND_MODES.MULTIPLY] = 'source-over';\n        array[BLEND_MODES.SCREEN] = 'source-over';\n        array[BLEND_MODES.OVERLAY] = 'source-over';\n        array[BLEND_MODES.DARKEN] = 'source-over';\n        array[BLEND_MODES.LIGHTEN] = 'source-over';\n        array[BLEND_MODES.COLOR_DODGE] = 'source-over';\n        array[BLEND_MODES.COLOR_BURN] = 'source-over';\n        array[BLEND_MODES.HARD_LIGHT] = 'source-over';\n        array[BLEND_MODES.SOFT_LIGHT] = 'source-over';\n        array[BLEND_MODES.DIFFERENCE] = 'source-over';\n        array[BLEND_MODES.EXCLUSION] = 'source-over';\n        array[BLEND_MODES.HUE] = 'source-over';\n        array[BLEND_MODES.SATURATION] = 'source-over';\n        array[BLEND_MODES.COLOR] = 'source-over';\n        array[BLEND_MODES.LUMINOSITY] = 'source-over';\n    }\n    // not-premultiplied, only for webgl\n    array[BLEND_MODES.NORMAL_NPM] = array[BLEND_MODES.NORMAL];\n    array[BLEND_MODES.ADD_NPM] = array[BLEND_MODES.ADD];\n    array[BLEND_MODES.SCREEN_NPM] = array[BLEND_MODES.SCREEN];\n\n    // composite operations\n    array[BLEND_MODES.SRC_IN] = 'source-in';\n    array[BLEND_MODES.SRC_OUT] = 'source-out';\n    array[BLEND_MODES.SRC_ATOP] = 'source-atop';\n    array[BLEND_MODES.DST_OVER] = 'destination-over';\n    array[BLEND_MODES.DST_IN] = 'destination-in';\n    array[BLEND_MODES.DST_OUT] = 'destination-out';\n    array[BLEND_MODES.DST_ATOP] = 'destination-atop';\n    array[BLEND_MODES.XOR] = 'xor';\n\n    // SUBTRACT from flash, does not exist in canvas\n    array[BLEND_MODES.SUBTRACT] = 'source-over';\n\n    return array;\n}\n"],"names":[],"mappings":"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"}