{ "version": 3, "sources": ["../../misc/_confetti.ts", "../../misc/confetti.tsx"], "sourcesContent": ["/* eslint-disable */\n// @ts-nocheck\n// Copied from https://github.com/catdad/canvas-confetti/blob/master/src/confetti.js\n// We had to copy the code because we don't want any Worker related code and esbuild throws\n// an error (https://github.com/evanw/esbuild/issues/607#issuecomment-804011666) ...\nvar raf = (function () {\n var TIME = Math.floor(1000 / 60)\n var frame, cancel\n var frames: Record<string, ReturnType<typeof requestAnimationFrame>> = {}\n var lastFrameTime = 0\n\n if (typeof requestAnimationFrame === \"function\" && typeof cancelAnimationFrame === \"function\") {\n frame = function (cb: () => void) {\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\nvar 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: [\"#26ccff\", \"#a25afd\", \"#ff5e7e\", \"#88ff5a\", \"#fcff42\", \"#ffa62d\", \"#ff36ff\"],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1,\n}\n\nfunction convert(val, transform) {\n return transform ? transform(val) : val\n}\n\nfunction isOk(val) {\n return !(val === null || val === undefined)\n}\n\nfunction prop(options, name, transform) {\n return convert(options && isOk(options[name]) ? options[name] : defaults[name], transform)\n}\n\nfunction onlyPositiveInt(number) {\n return number < 0 ? 0 : Math.floor(number)\n}\n\nfunction randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min\n}\n\nfunction toDecimal(str) {\n return parseInt(str, 16)\n}\n\nfunction colorsToRgb(colors) {\n return colors.map(hexToRgb)\n}\n\nfunction 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\nfunction 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\nfunction setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth\n canvas.height = document.documentElement.clientHeight\n}\n\nfunction setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect()\n canvas.width = rect.width\n canvas.height = rect.height\n}\n\nfunction 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\nfunction 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\nfunction 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 velocity: opts.startVelocity * 0.5 + Math.random() * opts.startVelocity,\n angle2D: -radAngle + (0.5 * radSpread - Math.random() * radSpread),\n tiltAngle: Math.random() * 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() + 5,\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 }\n}\n\nfunction 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.wobble += 0.1\n fetti.velocity *= fetti.decay\n fetti.tiltAngle += 0.1\n fetti.tiltSin = Math.sin(fetti.tiltAngle)\n fetti.tiltCos = Math.cos(fetti.tiltAngle)\n fetti.random = Math.random() + 5\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 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 =\n \"rgba(\" +\n fetti.color.r +\n \", \" +\n fetti.color.g +\n \", \" +\n fetti.color.b +\n \", \" +\n (1 - progress) +\n \")\"\n context.beginPath()\n\n if (fetti.shape === \"circle\") {\n context.ellipse\n ? context.ellipse(\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * fetti.ovalScalar,\n Math.abs(y2 - y1) * fetti.ovalScalar,\n (Math.PI / 10) * fetti.wobble,\n 0,\n 2 * Math.PI,\n )\n : ellipse(\n context,\n fetti.x,\n fetti.y,\n Math.abs(x2 - x1) * fetti.ovalScalar,\n Math.abs(y2 - y1) * fetti.ovalScalar,\n (Math.PI / 10) * fetti.wobble,\n 0,\n 2 * Math.PI,\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\nfunction 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 = new Promise<void>(function (resolve) {\n function onDone() {\n animationFrame = destroy = null\n\n context.clearRect(0, 0, size.width, size.height)\n\n done()\n resolve()\n }\n\n function update() {\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\nexport function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas\n var allowResize = !!prop(globalOpts || {}, \"resize\")\n var globalDisableForReducedMotion = prop(globalOpts, \"disableForReducedMotion\", Boolean)\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize\n var initialized = false\n var preferLessMotion =\n 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 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 }),\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 =\n globalDisableForReducedMotion || prop(options, \"disableForReducedMotion\", Boolean)\n var zIndex = prop(options, \"zIndex\", Number)\n\n if (disableForReducedMotion && preferLessMotion) {\n return new Promise<void>(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 initialized = true\n\n function onResize() {\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 global.removeEventListener(\"resize\", onResize)\n }\n\n if (isLibCanvas && canvas) {\n document.body.removeChild(canvas)\n canvas = null\n initialized = false\n }\n }\n\n if (allowResize) {\n global.addEventListener(\"resize\", onResize, false)\n }\n\n return fireLocal(options, size, done)\n }\n\n fire.reset = function () {\n if (animationObj) {\n animationObj.reset()\n }\n }\n\n return fire\n}\n", "import {memoize, nop} from \"@cling/lib.shared.utils\"\nimport {confettiCannon} from \"./_confetti\"\n\nexport function confetti({x, y}: {x: number; y: number}) {\n canvas_confetti()({\n particleCount: 20,\n spread: 40,\n decay: 0.9,\n gravity: 2,\n ticks: 40,\n startVelocity: 20,\n origin: {x: x / window.innerWidth, y: y / window.innerHeight},\n })?.catch(nop)\n}\n\nconst canvas_confetti = memoize(() => {\n return confettiCannon(null as any, {useWorker: false, resize: true})\n})\n"], "mappings": "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", "names": ["raf", "TIME", "frame", "cancel", "frames", "lastFrameTime", "__name", "cb", "id", "onFrame", "time", "timer", "defaults", "convert", "val", "transform", "isOk", "prop", "options", "name", "onlyPositiveInt", "number", "randomInt", "min", "max", "toDecimal", "str", "colorsToRgb", "colors", "hexToRgb", "getOrigin", "origin", "setCanvasWindowSize", "canvas", "setCanvasRectSize", "rect", "getCanvas", "zIndex", "ellipse", "context", "x", "y", "radiusX", "radiusY", "rotation", "startAngle", "endAngle", "antiClockwise", "randomPhysics", "opts", "radAngle", "radSpread", "updateFetti", "fetti", "progress", "x1", "y1", "x2", "y2", "animate", "fettis", "resizer", "size", "done", "animatingFettis", "animationFrame", "destroy", "prom", "resolve", "onDone", "update", "confettiCannon", "globalOpts", "isLibCanvas", "allowResize", "globalDisableForReducedMotion", "initialized", "preferLessMotion", "animationObj", "fireLocal", "particleCount", "angle", "spread", "startVelocity", "decay", "gravity", "drift", "ticks", "shapes", "scalar", "temp", "startX", "startY", "fire", "disableForReducedMotion", "onResize", "confetti", "x", "y", "canvas_confetti", "nop", "__name", "memoize", "confettiCannon"] }