{"version":3,"file":"confetti-Cwumg6b5.js","sources":["../../../node_modules/.pnpm/vuetify@2.7.2_vue@2.7.16/node_modules/vuetify/lib/components/VItemGroup/VItem.js","../../../app/javascript/views/evalmee_student/StudentHomeFooter.vue","../../../app/javascript/components/shared/progress-dots.vue","../../../node_modules/.pnpm/canvas-confetti@1.9.3/node_modules/canvas-confetti/dist/confetti.module.mjs","../../../app/javascript/components/quiz/scores/confetti.vue"],"sourcesContent":["// Styles\nimport \"../../../src/components/VItemGroup/VItem.sass\"; // Mixins\n\nimport { factory as GroupableFactory } from '../../mixins/groupable'; // Utilities\n\nimport mixins from '../../util/mixins';\nimport { consoleWarn } from '../../util/console'; // Types\n\nimport Vue from 'vue';\n/* @vue/component */\n\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false\n },\n disabled: Boolean\n },\n data: () => ({\n isActive: false\n }),\n methods: {\n toggle() {\n this.isActive = !this.isActive;\n }\n\n },\n\n render() {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this);\n return null;\n }\n\n let element;\n /* istanbul ignore else */\n\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle\n });\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0];\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this);\n return element;\n }\n\n element.data = this._b(element.data || {}, element.tag, {\n class: {\n [this.activeClass]: this.isActive,\n 'v-item--disabled': this.disabled\n }\n });\n\n if (this.disabled) {\n element.data.attrs = { ...element.data.attrs,\n tabindex: -1\n };\n }\n\n return element;\n }\n\n});\nexport default mixins(BaseItem, GroupableFactory('itemGroup', 'v-item', 'v-item-group')).extend({\n name: 'v-item'\n});\n//# sourceMappingURL=VItem.js.map","\n\n","\n\n\n\n\n","// 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","\n\n\n\n\n"],"names":["BaseItem","Vue","consoleWarn","element","__spreadProps","__spreadValues","__unplugin_components_1","mixins","GroupableFactory","_sfc_main","module","main","global","isWorker","workerSize","canUseWorker","canUsePaths","canDrawBitmap","canvas","ctx","bitmap","e","noop","promise","func","ModulePromise","Prom","bitmapMapper","skipTransform","map","raf","TIME","frame","cancel","frames","lastFrameTime","cb","id","onFrame","time","timer","getWorker","worker","prom","resolves","decorate","execute","options","callback","offscreen","size","done","resolve","workerDone","msg","code","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","transformPath2D","scaleX","scaleY","width","height","matrix","pattern","rot","innerRadius","outerRadius","spikes","step","animate","fettis","resizer","animatingFettis","animationFrame","destroy","onDone","update","confettiCannon","globalOpts","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","shouldUseWorker","initialized","preferLessMotion","animationObj","fireLocal","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","scalar","flat","temp","startX","startY","fire","disableForReducedMotion","onResize","obj","defaultFire","getDefaultFire","pathString","pathMatrix","path2d","t1","t2","shapeFromPath","pathData","path","tempCanvas","tempCtx","maxSize","minX","minY","maxX","maxY","maxDesiredSize","scale","shapeFromText","textData","text","color","fontFamily","fontSize","font","padding","confetti","target","myCanvas","myConfetti","duration","animationEnd","randomInRange","interval","timeLeft"],"mappings":"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","x_google_ignoreList":[0,3]}