{
  "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"]
}