{"version":3,"names":["module","main","global","isWorker","workerSize","canUseWorker","Worker","Blob","Promise","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","prototype","transferControlToOffscreen","URL","createObjectURL","canUsePaths","Path2D","DOMMatrix","canDrawBitmap","canvas","ctx","getContext","fillRect","bitmap","transferToImageBitmap","createPattern","e","noop","promise","func","ModulePromise","exports","Prom","bitmapMapper","skipTransform","map","transform","has","get","width","height","drawImage","set","clear","Map","raf","TIME","Math","floor","frame","cancel","frames","lastFrameTime","requestAnimationFrame","cancelAnimationFrame","cb","id","random","onFrame","time","setTimeout","timer","clearTimeout","getWorker","worker","prom","resolves","decorate","execute","options","callback","postMessage","init","initWorker","offscreen","fire","fireWorker","size","done","toString","slice","resolve","workerDone","msg","data","removeEventListener","addEventListener","bind","reset","resetWorker","code","join","console","undefined","warn","defaults","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","x","y","shapes","zIndex","colors","disableForReducedMotion","scalar","convert","val","isOk","prop","name","onlyPositiveInt","number","randomInt","min","max","toDecimal","str","parseInt","colorsToRgb","hexToRgb","String","replace","length","r","substring","g","b","getOrigin","origin","Object","Number","setCanvasWindowSize","document","documentElement","clientWidth","clientHeight","setCanvasRectSize","rect","getBoundingClientRect","getCanvas","createElement","style","position","top","left","pointerEvents","ellipse","context","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","save","translate","rotate","scale","arc","restore","randomPhysics","opts","radAngle","PI","radSpread","wobble","wobbleSpeed","velocity","angle2D","tiltAngle","color","shape","tick","totalTicks","tiltSin","tiltCos","wobbleX","wobbleY","ovalScalar","flat","updateFetti","fetti","cos","sin","progress","x1","y1","x2","y2","fillStyle","beginPath","type","path","Array","isArray","matrix","fill","transformPath2D","abs","scaleX","scaleY","multiplySelf","pattern","setTransform","globalAlpha","rot","innerRadius","outerRadius","spikes","step","lineTo","moveTo","closePath","animate","fettis","resizer","animatingFettis","animationFrame","destroy","onDone","clearRect","update","filter","addFettis","concat","confettiCannon","globalOpts","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","Boolean","shouldUseWorker","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","animationObj","fireLocal","temp","startX","startY","push","body","appendChild","onResize","obj","resize","removeChild","defaultFire","getDefaultFire","useWorker","pathString","pathMatrix","path2d","t1","addPath","t2","shapeFromPath","pathData","Error","tempCanvas","tempCtx","maxSize","minX","minY","maxX","maxY","isPointInPath","maxDesiredSize","round","shapeFromText","textData","text","fontFamily","fontSize","font","measureText","ceil","actualBoundingBoxRight","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxDescent","padding","fillText","apply","this","arguments","create","window","self","confetti","async","getOrganizations","apiParams","fetchWithHeaders","url","ApiEndpoints","OrganizationApi","URLSearchParams","assign","maxItems","filterIds","selectedFilterIds","pageNumber","_a","onlyActiveOrganizations","_b","getOrganizationOpportunitiesInfo","opportunitiesKey","mapOrganizationToCard","organization","card","cardType","causes","headerImageUrl","organizationMedia","photoUrl","heading","logoUrl","teaserText","_c","organizationInfo","introduction","organizationPageUrl","getProjects","ProjectApi","states","withExternalProjects","withoutApplications","_d","getJobboardProjects","mapProjectToCard","project","key","title","subheading","organizationName","tagLine","projectUrl","organizationCauses","skills","primarySkills","projectAvailability","projectHoursText","projectWeeksText","isSpeedConsult","projectTemplate","projectInfoBubbleHours","csLabel","isUrgent","isExternal","mapJobboardProjectToCard","workingHours","salary","location","isFulfilled","getReviews","ReviewApi","reviewType","rating","ratingFilter","mapReviewToCard","review","projectTitle","reviewText","primaryCause","skillClusters","impactChips","projectKey","removeItem","array","value","index","indexOf","splice","getCardsByType","cards","items","getPreselectedProjectTemplates","mapProjectTemplateToCard","renderSadPing","response","totalItemCount","getGroupedCollectionResponseByCardType","getProjectTemplates","groupedCollection","collectionResponse","groupKey","groupTitle","collection","scrollToElement","behavior","block","inline","targetElement","getElementById","scrollIntoView","renderPopUp","templateId","preventDefault","dispatchEvent","CustomEvent","detail","checkIfElementExists","querySelector","timeout","reject","querySelectorAll","observer","MutationObserver","disconnect","observe","childList","subtree","showConfetti","end","Date","now","interval","setInterval","clearInterval"],"sources":["./node_modules/canvas-confetti/dist/confetti.module.mjs","./web-components/services/entities/organization/organization-api.ts","./web-components/services/entities/organization/organization-utils.ts","./web-components/services/entities/project/project-api.ts","./web-components/services/entities/project/project-utils.ts","./web-components/services/review/review-api.ts","./web-components/services/review/review-utils.ts","./web-components/utils/utils.ts"],"sourcesContent":["// canvas-confetti v1.9.2 built on 2023-11-25T06:01:06.267Z\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 document.body.removeChild(canvas);\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","import { CardOverviewApiParams } from '../../../interfaces/api/card-api-params';\r\nimport { CollectionResponse } from '../../../interfaces/api/collection-response';\r\nimport { SimpleContentApiResponse } from '../../../interfaces/api/api-response';\r\nimport { fetchWithHeaders } from '../../api/api';\r\nimport { ApiEndpoints } from '../../api/api-endpoints';\r\n\r\nexport async function getOrganizations(\r\n\tapiParams: CardOverviewApiParams\r\n): Promise {\r\n\treturn fetchWithHeaders({\r\n\t\turl: `${ApiEndpoints.OrganizationApi}/GetOrganizations?${new URLSearchParams({\r\n\t\t\t...(apiParams?.maxItems !== undefined && apiParams?.maxItems !== null\r\n\t\t\t\t? { maxItems: apiParams?.maxItems.toString() }\r\n\t\t\t\t: null),\r\n\t\t\t...(apiParams?.filterIds !== undefined && apiParams?.filterIds !== null\r\n\t\t\t\t? { selectedFilterIds: apiParams?.filterIds.toString() }\r\n\t\t\t\t: null),\r\n\t\t\tpageNumber: apiParams?.pageNumber?.toString(),\r\n\t\t\tonlyActiveOrganizations: apiParams?.onlyActiveOrganizations?.toString(),\r\n\t\t})}`,\r\n\t});\r\n}\r\n\r\nexport async function getOrganizationOpportunitiesInfo(\r\n\topportunitiesKey: string\r\n): Promise {\r\n\treturn fetchWithHeaders({\r\n\t\turl: `${ApiEndpoints.OrganizationApi}/GetOrganizationOpportunitiesInfo?key=${opportunitiesKey}`,\r\n\t});\r\n}\r\n","import { Card } from '../../../interfaces/cards/card';\r\nimport { CardType } from '../../../interfaces/cards/card-type';\r\nimport { Organization } from '../../../interfaces/entities/organization/organization';\r\n\r\nexport function mapOrganizationToCard(organization: Organization): Card {\r\n\tconst card: Card = {\r\n\t\tcardType: CardType.Organization,\r\n\t\tcauses: organization.causes,\r\n\t\theaderImageUrl: organization.organizationMedia?.photoUrl,\r\n\t\theading: organization.name,\r\n\t\tlogoUrl: organization.organizationMedia?.logoUrl,\r\n\t\tteaserText: organization.organizationInfo?.introduction,\r\n\t\turl: organization.organizationPageUrl,\r\n\t};\r\n\treturn card;\r\n}\r\n","import { CardOverviewApiParams } from '../../../interfaces/api/card-api-params';\r\nimport { CollectionResponse } from '../../../interfaces/api/collection-response';\r\nimport { fetchWithHeaders } from '../../api/api';\r\nimport { ApiEndpoints } from '../../api/api-endpoints';\r\n\r\nexport async function getProjects(apiParams: CardOverviewApiParams): Promise {\r\n\treturn fetchWithHeaders({\r\n\t\turl: `${ApiEndpoints.ProjectApi}/GetProjects?${new URLSearchParams({\r\n\t\t\t...(apiParams?.maxItems !== undefined && apiParams?.maxItems !== null\r\n\t\t\t\t? { maxItems: apiParams?.maxItems.toString() }\r\n\t\t\t\t: null),\r\n\t\t\t...(apiParams?.filterIds !== undefined && apiParams?.filterIds !== null\r\n\t\t\t\t? { selectedFilterIds: apiParams?.filterIds.toString() }\r\n\t\t\t\t: null),\r\n\t\t\tpageNumber: apiParams?.pageNumber?.toString(),\r\n\t\t\tstates: apiParams?.states?.toString(),\r\n\t\t\twithExternalProjects: apiParams?.withExternalProjects?.toString(),\r\n\t\t\twithoutApplications: apiParams?.withoutApplications?.toString(),\r\n\t\t})}`,\r\n\t});\r\n}\r\n\r\nexport async function getJobboardProjects(\r\n\tapiParams: CardOverviewApiParams\r\n): Promise {\r\n\treturn fetchWithHeaders({\r\n\t\turl: `${ApiEndpoints.ProjectApi}/GetJobboardProjects?${new URLSearchParams({\r\n\t\t\t...(apiParams?.filterIds !== undefined && apiParams?.filterIds !== null\r\n\t\t\t\t? { selectedFilterIds: apiParams?.filterIds.toString() }\r\n\t\t\t\t: null),\r\n\t\t\tpageNumber: apiParams?.pageNumber?.toString(),\r\n\t\t})}`,\r\n\t});\r\n}\r\n","import { Card } from '../../../interfaces/cards/card';\r\nimport { CardType } from '../../../interfaces/cards/card-type';\r\nimport { JobboardProject } from '../../../interfaces/entities/project/jobboard-project';\r\nimport { Project } from '../../../interfaces/entities/project/project';\r\n\r\nexport function mapProjectToCard(project: Project): Card {\r\n\tconst card: Card = {\r\n\t\tkey: project?.key,\r\n\t\tcardType: CardType.Project,\r\n\t\theaderImageUrl: project?.photoUrl,\r\n\t\theading: project?.title,\r\n\t\tsubheading: project?.organizationName,\r\n\t\tteaserText: project?.tagLine,\r\n\t\turl: project?.projectUrl,\r\n\t\tcauses: [project?.organizationCauses[0]],\r\n\t\tskills: project?.primarySkills?.slice(0, 2),\r\n\t\tprojectAvailability: project?.projectAvailability,\r\n\t\tprojectHoursText: project?.projectHoursText,\r\n\t\tprojectWeeksText: project?.projectWeeksText,\r\n\t\tisSpeedConsult: project?.projectTemplate?.isSpeedConsult,\r\n\t\tprojectInfoBubbleHours: project?.projectInfoBubbleHours,\r\n\t\tcsLabel: project?.csLabel,\r\n\t\tisUrgent: project?.isUrgent,\r\n\t\tisExternal: project?.isExternal,\r\n\t};\r\n\treturn card;\r\n}\r\n\r\nexport function mapJobboardProjectToCard(project: JobboardProject): Card {\r\n\tconst card: Card = {\r\n\t\tkey: project?.key,\r\n\t\tcardType: CardType.JobboardProject,\r\n\t\theaderImageUrl: project?.photoUrl,\r\n\t\theading: project?.title,\r\n\t\tsubheading: project?.organizationName,\r\n\t\tteaserText: project?.teaserText,\r\n\t\turl: project?.projectUrl,\r\n\t\tworkingHours: project?.workingHours,\r\n\t\tsalary: project?.salary,\r\n\t\tlocation: project?.location,\r\n\t\tisFulfilled: project?.isFulfilled,\r\n\t};\r\n\treturn card;\r\n}\r\n","import { CardOverviewApiParams } from '../../interfaces/api/card-api-params';\r\nimport { CollectionResponse } from '../../interfaces/api/collection-response';\r\nimport { ReviewType } from '../../interfaces/entities/review/review-type';\r\nimport { fetchWithHeaders } from '../api/api';\r\nimport { ApiEndpoints } from '../api/api-endpoints';\r\n\r\nexport async function getReviews(apiParams: CardOverviewApiParams): Promise {\r\n\treturn fetchWithHeaders({\r\n\t\turl: `${ApiEndpoints.ReviewApi}/GetReviews?${new URLSearchParams({\r\n\t\t\treviewType: ReviewType.WrittenByOrganization.toString(),\r\n\t\t\t...(apiParams?.rating ? { ratingFilter: apiParams?.rating.toString() } : null),\r\n\t\t\t...(apiParams?.maxItems ? { maxItems: apiParams?.maxItems.toString() } : null),\r\n\t\t\t...(apiParams?.filterIds ? { selectedFilterIds: apiParams?.filterIds.toString() } : null),\r\n\t\t\tpageNumber: apiParams?.pageNumber?.toString(),\r\n\t\t})}`,\r\n\t});\r\n}\r\n","import { Card } from '../../interfaces/cards/card';\r\nimport { CardType } from '../../interfaces/cards/card-type';\r\nimport { Review } from '../../interfaces/entities/review/review';\r\n\r\nexport function mapReviewToCard(review: Review): Card {\r\n\tconst card: Card = {\r\n\t\tcardType: CardType.Review,\r\n\t\theading: review?.projectTitle,\r\n\t\tteaserText: review?.reviewText,\r\n\t\tcauses: [review?.primaryCause],\r\n\t\tskillClusters: review?.skillClusters,\r\n\t\timpactChips: review?.impactChips,\r\n\t\trating: review?.rating,\r\n\t\tkey: review?.projectKey,\r\n\t};\r\n\treturn card;\r\n}\r\n","/* eslint-disable no-undef */\r\nimport confetti from 'canvas-confetti';\r\nimport { CardOverviewApiParams } from '../interfaces/api/card-api-params';\r\nimport { CollectionResponse } from '../interfaces/api/collection-response';\r\nimport { GroupedCollectionResponse } from '../interfaces/api/grouped-collection-response';\r\nimport { Card } from '../interfaces/cards/card';\r\nimport { CardType } from '../interfaces/cards/card-type';\r\nimport { Organization } from '../interfaces/entities/organization/organization';\r\nimport { Project } from '../interfaces/entities/project/project';\r\nimport { ProjectTemplate } from '../interfaces/entities/project-template';\r\nimport { getOrganizations } from '../services/entities/organization/organization-api';\r\nimport { mapOrganizationToCard } from '../services/entities/organization/organization-utils';\r\nimport { getProjects, getJobboardProjects } from '../services/entities/project/project-api';\r\nimport {\r\n\tmapProjectToCard,\r\n\tmapJobboardProjectToCard,\r\n} from '../services/entities/project/project-utils';\r\nimport {\r\n\tgetPreselectedProjectTemplates,\r\n\tgetProjectTemplates,\r\n} from '../services/entities/project-template/project-template-api';\r\nimport { mapProjectTemplateToCard } from '../services/entities/project-template/project-template-utils';\r\nimport { renderSadPing } from './ping-utils';\r\nimport { Review } from '../interfaces/entities/review/review';\r\nimport { getReviews } from '../services/review/review-api';\r\nimport { mapReviewToCard } from '../services/review/review-utils';\r\nimport { JobboardProject } from '../interfaces/entities/project/jobboard-project';\r\n\r\nexport function removeItem(array: Array, value: T): Array {\r\n\tconst index = array.indexOf(value);\r\n\tif (index > -1) {\r\n\t\tarray.splice(index, 1);\r\n\t}\r\n\treturn array;\r\n}\r\n\r\nexport async function getCardsByType(cardType: CardType, apiParams: CardOverviewApiParams = null) {\r\n\tlet cards: Card[];\r\n\tlet data: CollectionResponse;\r\n\r\n\tswitch (cardType) {\r\n\t\tcase CardType.Organization:\r\n\t\t\tdata = await getOrganizations(apiParams);\r\n\t\t\tcards = data.items.map((organization: Organization) => mapOrganizationToCard(organization));\r\n\t\t\tbreak;\r\n\t\tcase CardType.Project:\r\n\t\t\tdata = await getProjects(apiParams);\r\n\t\t\tcards = data.items.map((project: Project) => mapProjectToCard(project));\r\n\t\t\tbreak;\r\n\t\tcase CardType.ProjectTemplate:\r\n\t\t\tdata = await getPreselectedProjectTemplates();\r\n\t\t\tcards = data.items.map((projectTemplate: ProjectTemplate) =>\r\n\t\t\t\tmapProjectTemplateToCard(projectTemplate)\r\n\t\t\t);\r\n\t\t\tbreak;\r\n\t\tcase CardType.Review:\r\n\t\t\tdata = await getReviews(apiParams);\r\n\t\t\tcards = data.items.map((review: Review) => mapReviewToCard(review));\r\n\t\t\tbreak;\r\n\t\tcase CardType.JobboardProject:\r\n\t\t\tdata = await getJobboardProjects(apiParams);\r\n\t\t\tcards = data.items.map((project: JobboardProject) => mapJobboardProjectToCard(project));\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\trenderSadPing();\r\n\t}\r\n\tconst response: CollectionResponse = {\r\n\t\titems: cards,\r\n\t\tmaxItems: data.maxItems,\r\n\t\ttotalItemCount: data.totalItemCount,\r\n\t};\r\n\treturn response;\r\n}\r\n\r\nexport async function getGroupedCollectionResponseByCardType(\r\n\tcardType: CardType,\r\n\tapiParams: CardOverviewApiParams\r\n) {\r\n\tlet data: GroupedCollectionResponse[];\r\n\tlet response: GroupedCollectionResponse[];\r\n\tswitch (cardType) {\r\n\t\tcase CardType.ProjectTemplate:\r\n\t\t\tdata = await getProjectTemplates(apiParams);\r\n\t\t\tresponse = data.map((groupedCollection: GroupedCollectionResponse) => {\r\n\t\t\t\tconst collectionResponse = {\r\n\t\t\t\t\tgroupKey: groupedCollection.groupKey,\r\n\t\t\t\t\tgroupTitle: groupedCollection.groupTitle,\r\n\t\t\t\t\tcollection: {\r\n\t\t\t\t\t\titems: groupedCollection?.collection?.items.map((projectTemplate: ProjectTemplate) =>\r\n\t\t\t\t\t\t\tmapProjectTemplateToCard(projectTemplate)\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\tmaxItems: groupedCollection?.collection.maxItems,\r\n\t\t\t\t\t\ttotalItemCount: groupedCollection?.collection.totalItemCount,\r\n\t\t\t\t\t},\r\n\t\t\t\t};\r\n\t\t\t\treturn collectionResponse;\r\n\t\t\t});\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\trenderSadPing();\r\n\t}\r\n\treturn response;\r\n}\r\n\r\n// eslint-disable-next-line no-undef\r\nexport function scrollToElement(\r\n\tid: string,\r\n\tbehavior: ScrollBehavior = 'smooth',\r\n\tblock: ScrollLogicalPosition = 'start',\r\n\tinline: ScrollLogicalPosition = 'center'\r\n) {\r\n\tconst targetElement = document.getElementById(id);\r\n\ttargetElement.scrollIntoView({\r\n\t\tbehavior,\r\n\t\tblock,\r\n\t\tinline,\r\n\t});\r\n}\r\n\r\nexport function renderPopUp(e: Event, templateId: string) {\r\n\te.preventDefault();\r\n\twindow.dispatchEvent(\r\n\t\tnew CustomEvent('lightbox-show-by-template-id', {\r\n\t\t\tdetail: { templateId },\r\n\t\t})\r\n\t);\r\n}\r\n\r\nexport function isNearBottom(bottomOffset: number = 100) {\r\n\t// Get the current scroll position and viewport height\r\n\tconst scrollTop =\r\n\t\t(document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;\r\n\tconst windowHeight =\r\n\t\twindow.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n\r\n\t// Get the total height of the page\r\n\tconst totalHeight = document.body.scrollHeight;\r\n\r\n\t// Check if we're within 100 pixels of the bottom\r\n\treturn totalHeight - scrollTop - windowHeight < bottomOffset;\r\n}\r\n\r\nexport function debounce(func: any, delay: number) {\r\n\tlet timeoutId: any;\r\n\treturn () => {\r\n\t\tconst context = this;\r\n\t\t// eslint-disable-next-line prefer-rest-params\r\n\t\tconst args = arguments;\r\n\t\tclearTimeout(timeoutId);\r\n\t\ttimeoutId = setTimeout(() => {\r\n\t\t\tfunc.apply(context, args);\r\n\t\t}, delay);\r\n\t};\r\n}\r\n\r\n/**\r\n * Checks if an element to exist in the DOM\r\n * @param {String} querySelector - Selector of element to check for\r\n * @param {number} timeout - Milliseconds to wait before timing out, or 0 for no timeout (default is 1 second)\r\n */\r\nexport async function checkIfElementExists(querySelector: string, timeout: number = 1000) {\r\n\t// eslint-disable-next-line consistent-return\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tlet timer = null;\r\n\r\n\t\tif (document.querySelectorAll(querySelector).length) return resolve();\r\n\r\n\t\t// eslint-disable-next-line consistent-return\r\n\t\tconst observer = new MutationObserver(() => {\r\n\t\t\tif (document.querySelectorAll(querySelector).length) {\r\n\t\t\t\tobserver.disconnect();\r\n\t\t\t\tif (timer !== null) clearTimeout(timer);\r\n\t\t\t\treturn resolve();\r\n\t\t\t}\r\n\t\t});\r\n\t\tobserver.observe(document.body, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\r\n\t\tif (timeout)\r\n\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\tobserver.disconnect();\r\n\t\t\t\treject();\r\n\t\t\t}, timeout);\r\n\t});\r\n}\r\n\r\nexport function showConfetti() {\r\n\tconst end = Date.now() + 3 * 1000;\r\n\r\n\tconst interval = setInterval(() => {\r\n\t\tif (Date.now() > end) {\r\n\t\t\treturn clearInterval(interval);\r\n\t\t}\r\n\r\n\t\treturn confetti({\r\n\t\t\tstartVelocity: 30,\r\n\t\t\tspread: 360,\r\n\t\t\tticks: 60,\r\n\t\t\tshapes: ['square'],\r\n\t\t\torigin: {\r\n\t\t\t\tx: Math.random(),\r\n\t\t\t\t// since they fall down, start a bit higher than random\r\n\t\t\t\ty: Math.random() - 0.2,\r\n\t\t\t},\r\n\t\t});\r\n\t}, 200);\r\n}\r\n"],"mappings":"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"}