{"version":3,"file":"index.umd.js","sources":["../src/index.js"],"sourcesContent":["// Defaults\nconst defaultOptions = {\n\tformat: 'image/png',\n\tquality: 0.92,\n\twidth: undefined,\n\theight: undefined,\n\tCanvas: undefined,\n\tcrossOrigin: undefined\n};\n\n// Return Promise\nconst mergeImages = (sources = [], options = {}) => new Promise(resolve => {\n\toptions = Object.assign({}, defaultOptions, options);\n\n\t// Setup browser/Node.js specific variables\n\tconst canvas = options.Canvas ? new options.Canvas() : window.document.createElement('canvas');\n\tconst Image = options.Image || window.Image;\n\n\t// Load sources\n\tconst images = sources.map(source => new Promise((resolve, reject) => {\n\t\t// Convert sources to objects\n\t\tif (source.constructor.name !== 'Object') {\n\t\t\tsource = { src: source };\n\t\t}\n\n\t\t// Resolve source and img when loaded\n\t\tconst img = new Image();\n\t\timg.crossOrigin = options.crossOrigin;\n\t\timg.onerror = () => reject(new Error('Couldn\\'t load image'));\n\t\timg.onload = () => resolve(Object.assign({}, source, { img }));\n\t\timg.src = source.src;\n\t}));\n\n\t// Get canvas context\n\tconst ctx = canvas.getContext('2d');\n\n\t// When sources have loaded\n\tresolve(Promise.all(images)\n\t\t.then(images => {\n\t\t\t// Set canvas dimensions\n\t\t\tconst getSize = dim => options[dim] || Math.max(...images.map(image => image.img[dim]));\n\t\t\tcanvas.width = getSize('width');\n\t\t\tcanvas.height = getSize('height');\n\n\t\t\t// Draw images to canvas\n\t\t\timages.forEach(image => {\n\t\t\t\tctx.globalAlpha = image.opacity ? image.opacity : 1;\n\t\t\t\treturn ctx.drawImage(image.img, image.x || 0, image.y || 0);\n\t\t\t});\n\n\t\t\tif (options.Canvas && options.format === 'image/jpeg') {\n\t\t\t\t// Resolve data URI for node-canvas jpeg async\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\tcanvas.toDataURL(options.format, {\n\t\t\t\t\t\tquality: options.quality,\n\t\t\t\t\t\tprogressive: false\n\t\t\t\t\t}, (err, jpeg) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(jpeg);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Resolve all other data URIs sync\n\t\t\treturn canvas.toDataURL(options.format, options.quality);\n\t\t}));\n});\n\nexport default mergeImages;\n"],"names":["const"],"mappings":"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"}