{"version":3,"file":"static/chunks/2788-bdfeabe41219446f.js","mappings":"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","sources":["webpack://_N_E/../../node_modules/canvas-confetti/dist/confetti.module.mjs","webpack://_N_E/"],"sourcesContent":["// canvas-confetti v1.9.3 built on 2024-04-30T22:19:17.794Z\nvar module = {};\n\n// source content\n/* globals Map */\n\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n var canUsePaths = typeof Path2D === 'function' && typeof DOMMatrix === 'function';\n var canDrawBitmap = (function () {\n // this mostly supports ssr\n if (!global.OffscreenCanvas) {\n return false;\n }\n\n var canvas = new OffscreenCanvas(1, 1);\n var ctx = canvas.getContext('2d');\n ctx.fillRect(0, 0, 1, 1);\n var bitmap = canvas.transferToImageBitmap();\n\n try {\n ctx.createPattern(bitmap, 'no-repeat');\n } catch (e) {\n return false;\n }\n\n return true;\n })();\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var bitmapMapper = (function (skipTransform, map) {\n // see https://github.com/catdad/canvas-confetti/issues/209\n // creating canvases is actually pretty expensive, so we should create a\n // 1:1 map for bitmap:canvas, so that we can animate the confetti in\n // a performant manner, but also not store them forever so that we don't\n // have a memory leak\n return {\n transform: function(bitmap) {\n if (skipTransform) {\n return bitmap;\n }\n\n if (map.has(bitmap)) {\n return map.get(bitmap);\n }\n\n var canvas = new OffscreenCanvas(bitmap.width, bitmap.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(bitmap, 0, 0);\n\n map.set(bitmap, canvas);\n\n return canvas;\n },\n clear: function () {\n map.clear();\n }\n };\n })(canDrawBitmap, new Map());\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar,\n flat: opts.flat\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.velocity *= fetti.decay;\n\n if (fetti.flat) {\n fetti.wobble = 0;\n fetti.wobbleX = fetti.x + (10 * fetti.scalar);\n fetti.wobbleY = fetti.y + (10 * fetti.scalar);\n\n fetti.tiltSin = 0;\n fetti.tiltCos = 0;\n fetti.random = 1;\n } else {\n fetti.wobble += fetti.wobbleSpeed;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n }\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n\n context.beginPath();\n\n if (canUsePaths && fetti.shape.type === 'path' && typeof fetti.shape.path === 'string' && Array.isArray(fetti.shape.matrix)) {\n context.fill(transformPath2D(\n fetti.shape.path,\n fetti.shape.matrix,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * 0.1,\n Math.abs(y2 - y1) * 0.1,\n Math.PI / 10 * fetti.wobble\n ));\n } else if (fetti.shape.type === 'bitmap') {\n var rotation = Math.PI / 10 * fetti.wobble;\n var scaleX = Math.abs(x2 - x1) * 0.1;\n var scaleY = Math.abs(y2 - y1) * 0.1;\n var width = fetti.shape.bitmap.width * fetti.scalar;\n var height = fetti.shape.bitmap.height * fetti.scalar;\n\n var matrix = new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n fetti.x,\n fetti.y\n ]);\n\n // apply the transform matrix from the confetti shape\n matrix.multiplySelf(new DOMMatrix(fetti.shape.matrix));\n\n var pattern = context.createPattern(bitmapMapper.transform(fetti.shape.bitmap), 'no-repeat');\n pattern.setTransform(matrix);\n\n context.globalAlpha = (1 - progress);\n context.fillStyle = pattern;\n context.fillRect(\n fetti.x - (width / 2),\n fetti.y - (height / 2),\n width,\n height\n );\n context.globalAlpha = 1;\n } else if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n bitmapMapper.clear();\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var hasResizeEventRegistered = false;\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var flat = !!prop(options, 'flat');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar,\n flat: flat\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n hasResizeEventRegistered = false;\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n if (document.body.contains(canvas)) {\n document.body.removeChild(canvas); \n }\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize && !hasResizeEventRegistered) {\n hasResizeEventRegistered = true;\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n function transformPath2D(pathString, pathMatrix, x, y, scaleX, scaleY, rotation) {\n var path2d = new Path2D(pathString);\n\n var t1 = new Path2D();\n t1.addPath(path2d, new DOMMatrix(pathMatrix));\n\n var t2 = new Path2D();\n // see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix/DOMMatrix\n t2.addPath(t1, new DOMMatrix([\n Math.cos(rotation) * scaleX,\n Math.sin(rotation) * scaleX,\n -Math.sin(rotation) * scaleY,\n Math.cos(rotation) * scaleY,\n x,\n y\n ]));\n\n return t2;\n }\n\n function shapeFromPath(pathData) {\n if (!canUsePaths) {\n throw new Error('path confetti are not supported in this browser');\n }\n\n var path, matrix;\n\n if (typeof pathData === 'string') {\n path = pathData;\n } else {\n path = pathData.path;\n matrix = pathData.matrix;\n }\n\n var path2d = new Path2D(path);\n var tempCanvas = document.createElement('canvas');\n var tempCtx = tempCanvas.getContext('2d');\n\n if (!matrix) {\n // attempt to figure out the width of the path, up to 1000x1000\n var maxSize = 1000;\n var minX = maxSize;\n var minY = maxSize;\n var maxX = 0;\n var maxY = 0;\n var width, height;\n\n // do some line skipping... this is faster than checking\n // every pixel and will be mostly still correct\n for (var x = 0; x < maxSize; x += 2) {\n for (var y = 0; y < maxSize; y += 2) {\n if (tempCtx.isPointInPath(path2d, x, y, 'nonzero')) {\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n }\n }\n }\n\n width = maxX - minX;\n height = maxY - minY;\n\n var maxDesiredSize = 10;\n var scale = Math.min(maxDesiredSize/width, maxDesiredSize/height);\n\n matrix = [\n scale, 0, 0, scale,\n -Math.round((width/2) + minX) * scale,\n -Math.round((height/2) + minY) * scale\n ];\n }\n\n return {\n type: 'path',\n path: path,\n matrix: matrix\n };\n }\n\n function shapeFromText(textData) {\n var text,\n scalar = 1,\n color = '#000000',\n // see https://nolanlawson.com/2022/04/08/the-struggle-of-using-native-emoji-on-the-web/\n fontFamily = '\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\", \"EmojiOne Color\", \"Android Emoji\", \"Twemoji Mozilla\", \"system emoji\", sans-serif';\n\n if (typeof textData === 'string') {\n text = textData;\n } else {\n text = textData.text;\n scalar = 'scalar' in textData ? textData.scalar : scalar;\n fontFamily = 'fontFamily' in textData ? textData.fontFamily : fontFamily;\n color = 'color' in textData ? textData.color : color;\n }\n\n // all other confetti are 10 pixels,\n // so this pixel size is the de-facto 100% scale confetti\n var fontSize = 10 * scalar;\n var font = '' + fontSize + 'px ' + fontFamily;\n\n var canvas = new OffscreenCanvas(fontSize, fontSize);\n var ctx = canvas.getContext('2d');\n\n ctx.font = font;\n var size = ctx.measureText(text);\n var width = Math.ceil(size.actualBoundingBoxRight + size.actualBoundingBoxLeft);\n var height = Math.ceil(size.actualBoundingBoxAscent + size.actualBoundingBoxDescent);\n\n var padding = 2;\n var x = size.actualBoundingBoxLeft + padding;\n var y = size.actualBoundingBoxAscent + padding;\n width += padding + padding;\n height += padding + padding;\n\n canvas = new OffscreenCanvas(width, height);\n ctx = canvas.getContext('2d');\n ctx.font = font;\n ctx.fillStyle = color;\n\n ctx.fillText(text, x, y);\n\n var scale = 1 / scalar;\n\n return {\n type: 'bitmap',\n // TODO these probably need to be transfered for workers\n bitmap: canvas.transferToImageBitmap(),\n matrix: [scale, 0, 0, scale, -width * scale / 2, -height * scale / 2]\n };\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n module.exports.shapeFromPath = shapeFromPath;\n module.exports.shapeFromText = shapeFromText;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n"],"names":["module","main","global","isWorker","workerSize","skipTransform","map","frame","cancel","TIME","frames","lastFrameTime","worker","prom","resolves","defaultFire","canUseWorker","Worker","Blob","Promise","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","prototype","transferControlToOffscreen","URL","createObjectURL","canUsePaths","Path2D","DOMMatrix","noop","promise","func","ModulePromise","exports","Prom","bitmapMapper","canvas","ctx","getContext","fillRect","bitmap","transferToImageBitmap","createPattern","e","Map","transform","has","get","width","height","drawImage","set","clear","raf","Math","floor","requestAnimationFrame","cancelAnimationFrame","cb","id","random","onFrame","time","setTimeout","timer","clearTimeout","getWorker","code","toString","join","console","warn","decorate","execute","options","callback","postMessage","init","offscreen","fire","size","done","slice","resolve","workerDone","msg","data","removeEventListener","addEventListener","bind","reset","defaults","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","x","y","shapes","zIndex","colors","disableForReducedMotion","scalar","prop","name","val","onlyPositiveInt","number","toDecimal","str","parseInt","colorsToRgb","hexToRgb","String","replace","length","r","substring","g","b","setCanvasWindowSize","document","documentElement","clientWidth","clientHeight","setCanvasRectSize","rect","getBoundingClientRect","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","Boolean","shouldUseWorker","resizer","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","Number","createElement","style","position","top","left","pointerEvents","body","appendChild","onResize","obj","resize","contains","removeChild","fireLocal","origin","animationFrame","destroy","animatingFettis","context","flat","Object","temp","fettis","startX","startY","push","randomPhysics","opts","radAngle","PI","radSpread","wobble","wobbleSpeed","min","velocity","angle2D","tiltAngle","color","shape","tick","totalTicks","tiltSin","tiltCos","wobbleX","wobbleY","ovalScalar","max","addFettis","onDone","clearRect","update","filter","fetti","updateFetti","cos","sin","pathString","pathMatrix","scaleX","scaleY","rotation","path2d","t1","t2","radiusX","radiusY","progress","x1","y1","x2","y2","fillStyle","beginPath","type","path","Array","isArray","matrix","fill","abs","addPath","multiplySelf","pattern","setTransform","globalAlpha","ellipse","save","translate","rotate","scale","arc","antiClockwise","restore","rot","innerRadius","outerRadius","spikes","step","lineTo","moveTo","closePath","concat","getDefaultFire","useWorker","apply","arguments","create","shapeFromPath","pathData","tempCtx","tempCanvas","minX","minY","maxX","maxY","isPointInPath","maxDesiredSize","round","shapeFromText","textData","text","fontFamily","fontSize","font","measureText","ceil","actualBoundingBoxRight","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxDescent","padding","fillText","window","self","__webpack_exports__"],"sourceRoot":""}