{"version":3,"file":"confetti_controller-1Q9aufCv.js","sources":["../../../node_modules/.pnpm/canvas-confetti@1.5.1/node_modules/canvas-confetti/dist/confetti.module.mjs","../../../frontend/common/controllers/confetti_controller.js"],"sourcesContent":["// canvas-confetti v1.5.1 built on 2022-02-08T22:20:40.944Z\nvar module = {};\n\n// source content\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 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 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 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.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 };\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.wobble += fetti.wobbleSpeed;\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() + 2;\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 = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n context.beginPath();\n\n 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 {\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\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 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 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 = 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 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 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 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}((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","import { Controller } from '@hotwired/stimulus'\nimport confetti from 'canvas-confetti'\n\nexport default class extends Controller {\n\n static values = {\n delayTime: Number,\n }\n\n connect() {\n if (this.canvas === undefined) this.createCanvas()\n\n // Create confetti object\n const { canvas } = this\n this.confetti = confetti.create(canvas, { resize: true })\n\n setTimeout(() => {\n this.fireAll()\n }, this.delayTimeValue)\n\n // Remove canvas after 5 seconds\n setTimeout(() => {\n document.body.removeChild(canvas)\n }, this.delayTimeValue + 5000)\n }\n\n fireAll() {\n // Fire!\n this.fire(0.6, { spread: 26, startVelocity: 55, scalar: 1.5 })\n this.fire(0.8, { spread: 60, scalar: 1.3 })\n this.fire(0.7, { spread: 100, decay: 0.91, scalar: 1.3 })\n this.fire(0.4, { startVelocity: 25, decay: 0.92, scalar: 1.5 })\n this.fire(0.4, { startVelocity: 45, scalar: 1.4 })\n this.fire(0.6, { startVelocity: 50, angle: 45, spread: 50, scalar: 1.5 })\n this.fire(0.6, { startVelocity: 55, angle: 140, spread: 50, scalar: 1.6 })\n }\n\n fire(particleRatio, options) {\n const count = 200\n const defaults = { origin: { y: 0.7 }, disableForReducedMotion: true }\n\n this.confetti({ ...defaults, ...options, particleCount: Math.floor(count * particleRatio) })\n }\n\n createCanvas() {\n document.body.insertAdjacentHTML(\n 'beforeend',\n '<canvas id=\"confetti\" class=\"fixed inset-0 w-full h-full pointer-events-none z-50\"></canvas>'\n )\n }\n\n get canvas() {\n return document.querySelector('#confetti')\n }\n}\n"],"names":["module","main","global","isWorker","workerSize","canUseWorker","noop","promise","func","ModulePromise","Prom","raf","TIME","frame","cancel","frames","lastFrameTime","cb","id","onFrame","time","timer","getWorker","worker","prom","resolves","decorate","execute","options","callback","canvas","offscreen","size","done","resolve","workerDone","msg","code","e","defaults","convert","val","transform","isOk","prop","name","onlyPositiveInt","number","randomInt","min","max","toDecimal","str","colorsToRgb","colors","hexToRgb","getOrigin","origin","setCanvasWindowSize","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","animatingFettis","animationFrame","destroy","onDone","update","confettiCannon","globalOpts","isLibCanvas","allowResize","globalDisableForReducedMotion","shouldUseWorker","initialized","preferLessMotion","animationObj","fireLocal","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","scalar","temp","startX","startY","fire","disableForReducedMotion","onResize","obj","defaultFire","getDefaultFire","confetti","ConfettiController","Controller","particleRatio","__publicField"],"mappings":"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","x_google_ignoreList":[0]}