Son CV dans un terminal web en Javascript! https://terminal-cv.gregandev.fr
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
terminal-cv/dist/index.95584cc1.js.map

1 lines
69 KiB

{"mappings":"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","sources":["src/resources/commands.json","node_modules/canvas-confetti/dist/confetti.module.mjs","src/custom-comands.js","node_modules/fireworks-js/dist/fireworks.js","src/app.js","src/draggable.js"],"sourcesContent":["[\n {\n \"command\":\"help\",\n \"responseType\":\"list\",\n \"value\":[\n \"<code>a-propos</code> : Affiche les informations me concernant\",\n \"<code>clear</code> : Nettoie le terminal\",\n \"<code>experiences</code> : Affiche la liste de mes expériences\",\n \"<code>get cv</code> : Télécharge le CV\",\n \"<code>help</code> : Affiche l'aide\",\n \"<code>hobby</code> : Affiche la liste de mes passes temps\",\n \"<code>projets-perso</code> : Affiche la liste de mes projets personnels\",\n \"<code>dark/light</code> : Change le thème de la page\",\n \"<em>Vous pouvez utiliser la touche TAB afin de compléter une commande</em>\",\n \"<em>Vous pouvez retrouver les anciennes commandes avec les flèches haut et bas.</em>\"\n ]\n },\n {\n \"command\":\"a-propos\",\n \"responseType\":\"code\",\n \"value\":[\n \"{\",\n \" \\\"nom\\\" : \\\"Gregory Lebreton\\\",\",\n \" \\\"poste\\\" : \\\"Formateur Devops\\\",\",\n \" \\\"experience\\\" : \\\"6\\\",\",\n \" \\\"ville\\\" : \\\"Paris, France\\\"\",\n \"}\"\n ]\n },\n {\n \"command\":\"experiences\",\n \"responseType\":\"table\",\n \"headers\":[\n \"Date\",\n \"Client\",\n \"Description\",\n \"Tech\"\n ],\n \"rows\":[\n [\n \"maintenant<br/>03/2021\",\n \"<br/><em>Le garage numérique</em>\",\n \"Formateur Devops pour le CNAM,<br/>administrateur système et intégrateur pour le Garage\",\n \"Docker<br/>Python<br/>Bash\"\n ],\n [\n \"09/2019<br/>06/2019\",\n \"<br/><em>Safran, S.A.E</em>\",\n \"Mise en place d'une plateforme mettant en relation les<br/>différents acteurs de la DSI sur une plateforme logicielle.\",\n \"Docker<br/>Kubernetes<br/>Jenkins\"\n ],\n [\n \"03/2019<br/>12/2017\",\n \"PHP dev<br/><em>Leading Frog</em>\",\n \"Module PHP permettant l'envoie de cartes postales<br/>numériques avec implémentation API Stripe.\",\n \"PHP<br/>JavaScript<br/>SQL\"\n ]\n ]\n },\n {\n \"command\":\"hobby\",\n \"responseType\":\"list\",\n \"value\":[\n \"Musique: Skateboard, Unity, VR\",\n \"Programmation: Python, bash, PHP, C#\",\n \"Autre: Famille, Cinéma, Environnement\"\n ]\n },\n {\n \"command\":\"projets-perso\",\n \"responseType\":\"table\",\n \"headers\":[\n \"Nom\",\n \"Description\",\n \"Tech\",\n \"Liens\"\n ],\n \"rows\":[\n [\n \"Personal website<br/>(2021)\",\n \"Site web personnel me permettant de montrer mes projets et tester des applicatifs<br/>\",\n \"PHP/JS\",\n \"<a href=\\\"https://www.gregandev.fr\\\" target=\\\"blank\\\">Lien</a>\"\n ],\n [\n \"GoldeneyeVR<br/>(2020)\",\n \"Implémentation VR au célèbre jeux de 1997.\",\n \"C# WPF\",\n \"<a href=\\\"https://www.gregandev.fr/page/goldeneyevr\\\" target=\\\"blank\\\">Lien</a>\"\n ]\n ]\n }\n]\n","// 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 confetti from \"canvas-confetti\";\nimport { Fireworks } from \"fireworks-js\";\n\n/**\n * Affiche des confettis sur la page\n */\nexport function pif() {\n const count = 200;\n const defaults = {\n origin: { y: 0.7 },\n };\n\n function fire(particleRatio, opts) {\n confetti(\n Object.assign({}, defaults, opts, {\n particleCount: Math.floor(count * particleRatio),\n })\n );\n }\n\n fire(0.25, {\n spread: 26,\n startVelocity: 55,\n });\n fire(0.2, {\n spread: 60,\n });\n fire(0.35, {\n spread: 100,\n decay: 0.91,\n scalar: 0.8,\n });\n fire(0.1, {\n spread: 120,\n startVelocity: 25,\n decay: 0.92,\n scalar: 1.2,\n });\n fire(0.1, {\n spread: 120,\n startVelocity: 45,\n });\n}\n\nexport function setDarkMode(value) {\n if (value) {\n document.body.classList.add(\"dark-mode\");\n } else {\n document.body.classList.remove(\"dark-mode\");\n }\n}\n\nexport function getCV() {\n const a = document.createElement(\"a\");\n a.href = \"resources/resume.pdf\";\n a.setAttribute(\"download\", \"CV - Antoine DAUTRY.pdf\");\n a.click();\n}\n\nexport function rmRf() {\n setDarkMode(true);\n document.body.classList.add(\"firework\");\n const fireworks = new Fireworks(document.body, {\n mouse: { click: true, move: false, max: 7 },\n });\n fireworks.start();\n}\n","/*!\n * fireworks-js 1.3.5 by Vitalij Ryndin (https://crashmax.ru)\n * https://fireworks.js.org\n * License MIT\n */\n!function(t,i){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=i();else if(\"function\"==typeof define&&define.amd)define([],i);else{var s=i();for(var e in s)(\"object\"==typeof exports?exports:t)[e]=s[e]}}(this,(function(){return(()=>{\"use strict\";var t={511:(t,i,s)=>{Object.defineProperty(i,\"__esModule\",{value:!0}),i.Explosion=void 0;var e=s(909);i.Explosion=class{constructor(t){var{x:i,y:s,ctx:h,hue:n,exp:o,gravity:a,friction:r,brightness:c,explosionLength:_}=t;for(this._coordinates=[],this._alpha=1,this._x=i,this._y=s,this._exp=o,this._ctx=h,this._gravity=a,this._friction=r,this._explosionLength=_;this._explosionLength--;)this._coordinates.push([i,s]);this._angle=(0,e.randomFloat)(0,2*Math.PI),this._speed=(0,e.randomInt)(1,10),this._hue=(0,e.randomInt)(n-20,n+20),this._brightness=(0,e.randomInt)(c.min,c.max),this._decay=(0,e.randomFloat)(c.decay.min,c.decay.max)}update(t){this._coordinates.pop(),this._coordinates.unshift([this._x,this._y]),this._speed*=this._friction,this._x+=Math.cos(this._angle)*this._speed,this._y+=Math.sin(this._angle)*this._speed+this._gravity,this._alpha-=this._decay,this._alpha<=this._decay&&t()}draw(){var t=this._coordinates.length-1;this._ctx.beginPath(),this._exp&&(this._ctx.arc(this._x,this._y,(0,e.randomFloat)(.5,1.5),0,2*Math.PI),this._ctx.fill()),this._ctx.fillStyle=(0,e.hsla)(this._hue,this._brightness,this._alpha),this._ctx.moveTo(this._coordinates[t][0],this._coordinates[t][1]),this._ctx.lineTo(this._x,this._y),this._ctx.strokeStyle=(0,e.hsla)(this._hue,this._brightness,this._alpha),this._ctx.stroke()}}},909:(t,i)=>{Object.defineProperty(i,\"__esModule\",{value:!0}),i.hsla=i.getDistance=i.randomInt=i.randomFloat=void 0,i.randomFloat=function(t,i){return Math.random()*(i-t)+t},i.randomInt=function(t,i){return Math.floor(t+Math.random()*(i+1-t))},i.getDistance=function(t,i,s,e){var h=Math.pow;return Math.sqrt(h(t-s,2)+h(i-e,2))},i.hsla=function(t,i){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return\"hsla(\".concat(t,\", 100%, \").concat(i,\"%, \").concat(s,\")\")}},449:function(t,i,s){var e=this&&this.__awaiter||function(t,i,s,e){return new(s||(s=Promise))((function(h,n){function o(t){try{r(e.next(t))}catch(t){n(t)}}function a(t){try{r(e.throw(t))}catch(t){n(t)}}function r(t){var i;t.done?h(t.value):(i=t.value,i instanceof s?i:new s((function(t){t(i)}))).then(o,a)}r((e=e.apply(t,i||[])).next())}))};Object.defineProperty(i,\"__esModule\",{value:!0}),i.Sound=void 0;var h=s(909);i.Sound=class{constructor(t){this._buffer=[],this.onInit=!0,this._audioContext=new(window.AudioContext||window.webkitAudioContext),this.options=Object.assign({enabled:!1,files:[\"explosion0.mp3\",\"explosion1.mp3\",\"explosion2.mp3\"],volume:{min:4,max:8}},t),this.init()}init(){this.onInit&&this.options.enabled&&(this.onInit=!1,this.load())}load(){return e(this,void 0,void 0,(function*(){for(var t of this.options.files){var i=yield(yield fetch(t)).arrayBuffer();this._audioContext.decodeAudioData(i).then((t=>{this._buffer.push(t)})).catch((t=>{throw t}))}}))}play(){if(this.options.enabled&&this._buffer.length){var t=this._audioContext.createBufferSource(),i=this._buffer[(0,h.randomInt)(0,this._buffer.length-1)],s=this._audioContext.createGain();t.buffer=i,s.gain.value=(0,h.randomFloat)(this.options.volume.min/100,this.options.volume.max/100),s.connect(this._audioContext.destination),t.connect(s),t.start(0)}else this.init()}}},668:(t,i,s)=>{Object.defineProperty(i,\"__esModule\",{value:!0}),i.Trace=void 0;var e=s(909);i.Trace=class{constructor(t){var{x:i,y:s,dx:h,dy:n,ctx:o,hue:a,speed:r,traceLength:c,acceleration:_}=t;for(this._coordinates=[],this._currentDistance=0,this._x=i,this._y=s,this._sx=i,this._sy=s,this._dx=h,this._dy=n,this._ctx=o,this._hue=a,this._speed=r,this._traceLength=c,this._acceleration=_,this._totalDistance=(0,e.getDistance)(i,s,h,n);this._traceLength--;)this._coordinates.push([i,s]);this._angle=Math.atan2(n-s,h-i),this._brightness=(0,e.randomInt)(50,70)}update(t){this._coordinates.pop(),this._coordinates.unshift([this._x,this._y]),this._speed*=this._acceleration;var i=Math.cos(this._angle)*this._speed,s=Math.sin(this._angle)*this._speed;this._currentDistance=(0,e.getDistance)(this._sx,this._sy,this._x+i,this._y+s),this._currentDistance>=this._totalDistance?t(this._dx,this._dy,this._hue):(this._x+=i,this._y+=s)}draw(){var t=this._coordinates.length-1;this._ctx.beginPath(),this._ctx.moveTo(this._coordinates[t][0],this._coordinates[t][1]),this._ctx.lineTo(this._x,this._y),this._ctx.strokeStyle=(0,e.hsla)(this._hue,this._brightness),this._ctx.stroke()}}}},i={};function s(e){var h=i[e];if(void 0!==h)return h.exports;var n=i[e]={exports:{}};return t[e].call(n.exports,n,n.exports,s),n.exports}var e={};return(()=>{var t=e;Object.defineProperty(t,\"__esModule\",{value:!0}),t.Fireworks=void 0;var i=s(668),h=s(449),n=s(511),o=s(909);t.Fireworks=class{constructor(t){var{autoresize:i=!0,boundaries:s,brightness:e,delay:n,hue:o,mouse:a,sound:r,trace:c=3,speed:_=2,explosion:d=5,gravity:u=1.5,opacity:l=.5,particles:p=50,friction:x=.95,rocketsPoint:m=50,acceleration:v=1.05}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._tick=0,this._version=\"1.3.5\",this._running=!1,this._randomRocketsPoint=!1,this._experimentals=!1,this._m=!1,this._container=t,this._canvas=document.createElement(\"canvas\"),this._ctx=this._canvas.getContext(\"2d\"),this._container.appendChild(this._canvas),this._sound=new h.Sound(r),this.setSize(),this.setBoundaries(Object.assign({visible:!1,x:50,y:50},s)),this.autoresize=i,this.trace=c,this.speed=_,this.explosion=d,this.gravity=u,this.opacity=l,this.particles=p,this.friction=x,this.rocketsPoint=m,this.acceleration=v,this.hue=Object.assign({min:0,max:360},o),this.mouse=Object.assign({click:!1,move:!1,max:1},a),this.delay=Object.assign({min:15,max:30},n),this.brightness=Object.assign({min:50,max:80,decay:{min:.015,max:.03}},e),this.autoresize&&window.addEventListener(\"resize\",(()=>this.windowResize())),this._canvas.addEventListener(\"mousedown\",(t=>this.mouseDown(t))),this._canvas.addEventListener(\"mouseup\",(t=>this.mouseUp(t))),this._canvas.addEventListener(\"mousemove\",(t=>this.mouseMove(t)))}get isRunning(){return this._running}get version(){return this._version}start(){this._running||(this._running=!0,this.clear(),this.render())}stop(){this._running&&(this._running=!1,this.clear())}unmount(){window.removeEventListener(\"resize\",this.windowResize),this._canvas.addEventListener(\"mousedown\",this.mouseDown),this._canvas.addEventListener(\"mouseup\",this.mouseUp),this._canvas.addEventListener(\"mousemove\",this.mouseMove)}pause(){this._running=!this._running}clear(){this._ctx&&(this._traces=[],this._explosions=[],this._ctx.clearRect(0,0,this._width,this._height))}setOptions(t){for(var[i,s]of Object.entries(t)){var e=Object.prototype.hasOwnProperty.call(this,i);if(\"function\"==typeof this[i])throw new Error(\"You cannot change the methods of the class!\");e&&(\"object\"==typeof this[i]?Object.assign(this[i],s):this[i]=s),\"sound\"===i&&Object.assign(this._sound.options,s)}}setSize(){var{width:t=this._container.clientWidth,height:i=this._container.clientHeight}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._width=t,this._height=i,this._canvas.width=t,this._canvas.height=i,this.setBoundaries({width:t,height:i})}setBoundaries(t){this.boundaries=Object.assign(Object.assign({},this.boundaries),t)}useMouse(t,i){(this.mouse.click||this.mouse.move)&&(this._mx=t.pageX-this._canvas.offsetLeft,this._my=t.pageY-this._canvas.offsetTop,this._m=i)}windowResize(){this.setSize()}mouseDown(t){this.useMouse(t,this.mouse.click)}mouseUp(t){this.useMouse(t,!1)}mouseMove(t){this.useMouse(t,this._m)}render(){this._ctx&&this._running&&(requestAnimationFrame((()=>this.render())),this._ctx.globalCompositeOperation=\"destination-out\",this._ctx.fillStyle=\"rgba(0, 0, 0, \".concat(this.opacity,\")\"),this._ctx.fillRect(0,0,this._width,this._height),this._ctx.globalCompositeOperation=\"lighter\",this.drawBoundaries(),this.initTrace(),this.drawTrace(),this.drawExplosion(),this._tick++)}drawBoundaries(){this.boundaries.visible&&(this._ctx.beginPath(),this._ctx.strokeStyle=\"red\",this._ctx.rect(this.boundaries.x,this.boundaries.y,this.boundaries.width-2*this.boundaries.x,.5*this.boundaries.height),this._ctx.stroke())}initTrace(){this._ds=(0,o.randomInt)(this.delay.min,this.delay.max),(2*this._ds<this._tick||this._m&&this.mouse.max>this._traces.length)&&(this._traces.push(new i.Trace({x:this._width*(this._randomRocketsPoint?(0,o.randomInt)(0,100):this.rocketsPoint)/100,y:this._height,dx:this._mx&&this.mouse.move||this._m?this._mx:(0,o.randomInt)(this.boundaries.x,this.boundaries.width-2*this.boundaries.x),dy:this._my&&this.mouse.move||this._m?this._my:(0,o.randomInt)(this.boundaries.y,.5*this.boundaries.height),ctx:this._ctx,hue:(0,o.randomInt)(this.hue.min,this.hue.max),speed:this.speed,acceleration:this.acceleration,traceLength:this.trace})),this._tick=0)}drawTrace(){for(var t=this._traces.length;t--;)this._traces[t].draw(),this._traces[t].update(((i,s,e)=>{this.initExplosion(i,s,e),this._sound.play(),this._traces.splice(t,1)}))}initExplosion(t,i,s){for(var e=this.particles;e--;)this._explosions.push(new n.Explosion({x:t,y:i,ctx:this._ctx,hue:s,friction:this.friction,gravity:this.gravity,explosionLength:this.explosion,brightness:this.brightness,exp:this._experimentals}))}drawExplosion(){for(var t=this._explosions.length;t--;)this._explosions[t].draw(),this._explosions[t].update((()=>{this._explosions.splice(t,1)}))}}})(),e})()}));","/**\n * @typedef Command\n * @property {string} command\n * @property {string} responseType\n * @property {string?} value\n * @property {string[]?} headers\n * @property {string[]?} rows\n */\n\n/**\n * @type {Command[]} commands\n */\nimport commands from \"./resources/commands.json\";\nimport { getCV, pif, rmRf, setDarkMode } from \"./custom-comands\";\nimport { dragElement } from \"./draggable\";\n\n// Table containing the orders (useful for the completion of the orders)\nlet commandsList = [];\ncommands.forEach((c) => {\n commandsList.push(c.command);\n});\n\n// Commands that require JS processing\nconst customCommands = [\"clear\", \"dark\", \"light\", \"get cv\"];\ncommandsList = commandsList.concat(customCommands);\n\n// Eyster eggs' commands not available for autocompletion\nconst hiddenCommands = [\"pif\", \"rm -rf /\"];\n\n// Added the ability to move the window for PCs\nif (window.innerWidth > 1024) {\n dragElement(document.querySelector(\".terminal\"));\n}\n\n// Order history table\nconst commandsHistory = [];\nlet historyMode = false;\nlet historyIndex = -1;\nconst terminalBody = document.querySelector(\".terminal__body\");\n\n// Adding the default line\naddNewLine();\n\n// December Easter egg, adding snowflakes\nconst now = new Date();\nif (now.getMonth() === 11) {\n let htmlFlakes = \"\";\n for (let i = 0; i < 6; i++) {\n htmlFlakes += `<div class=\"snowflake\">❅</div><div class=\"snowflake\">❆</div>`;\n }\n const html = `<div class=\"snowflakes\" aria-hidden=\"true\">${htmlFlakes}</div>`;\n document.body.append(stringToDom(html));\n}\n\n// Set to dark mode if the browser theme is dark\nif (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n setDarkMode(true);\n}\n\n/**\n * Returns the HTML of the response for a given command\n * @param {string} command\n */\nfunction getDomForCommand(command) {\n const commandObj = commands.find((el) => el.command === command);\n let html = \"\";\n if (commandObj === undefined) {\n html = `'${\n command.split(\" \")[0]\n }' is not recognized as an internal command or external command, operable program or batch file. Type the <code>help</code> command to display a list of available commands.`;\n } else {\n if (commandObj.responseType === \"list\" && Array.isArray(commandObj.value)) {\n html = \"<ul>\";\n html += commandObj.value.map((s) => `<li>${s}</li>`).join(\"\");\n html += \"</ul>\";\n } else if (commandObj.responseType === \"text\") {\n html = commandObj.value;\n } else if (commandObj.responseType === \"table\") {\n const headers = commandObj.headers;\n const rows = commandObj.rows;\n const thsHtml = headers.map((h) => `<th>${h}</th>`).join(\"\");\n const tdsHtml = rows\n .map((r) => `<tr>${r.map((rtd) => `<td>${rtd}</td>`).join(\"\")}</tr>`)\n .join(\"\");\n html = `<table><thead><tr>${thsHtml}</tr></thead><tbody>${tdsHtml}</tbody></table>`;\n } else if (commandObj.responseType === \"code\") {\n html = `<pre>${commandObj.value.join(\"\\n\")}</pre>`;\n }\n }\n\n return html;\n}\n\n/**\n * Adds a new command input line and disables the previous one.\n * @param {string|null} previousUid uid de la ligne précédente.\n */\nfunction addNewLine(previousUid = null) {\n const uid = Math.random().toString(36).replace(\"0.\", \"\");\n // terminal__line\n const terminalLineEl = document.createElement(\"div\");\n terminalLineEl.classList.add(\"terminal__line\");\n\n // terminal__response\n const terminalResponseEl = document.createElement(\"div\");\n terminalResponseEl.classList.add(\"terminal__response\");\n terminalResponseEl.id = `response-${uid}`;\n\n // input text\n const inputEl = document.createElement(\"input\");\n inputEl.type = \"text\";\n inputEl.id = `input-${uid}`;\n inputEl.autocapitalize = \"off\";\n inputEl.dataset.uid = uid;\n inputEl.dataset.active = \"1\"; // Needed for focus\n inputEl.addEventListener(\"keydown\", onCommandInput);\n\n terminalLineEl.appendChild(inputEl);\n if (previousUid) {\n const previousInputEl = document.getElementById(previousUid);\n if (previousInputEl) {\n previousInputEl.setAttribute(\"disabled\", \"true\");\n previousInputEl.removeEventListener(\"keydown\", onCommandInput);\n delete previousInputEl.dataset.active;\n }\n }\n document.getElementById(\"terminal\").appendChild(terminalLineEl);\n document.getElementById(\"terminal\").appendChild(terminalResponseEl);\n\n inputEl.focus(); // Adds the focus as soon as the field is created\n}\n\n/**\n * Manages the keydown on the command input.\n * @param e\n */\nfunction onCommandInput(e) {\n const commandValue = e.target.value.trim().toLowerCase();\n if (e.keyCode === 13) {\n // ENTER\n if (commandValue !== \"\") {\n historyMode = false;\n const idResponse = `response-${e.target.dataset.uid}`;\n const responseEl = document.getElementById(idResponse);\n let html;\n if (\n hiddenCommands.includes(commandValue) ||\n customCommands.includes(commandValue)\n ) {\n html = handleCustomCommands(commandValue);\n } else {\n html = getDomForCommand(commandValue);\n }\n if (responseEl) {\n responseEl.innerHTML = html;\n commandsHistory.push(commandValue);\n addNewLine(e.target.id);\n }\n }\n } else if (e.keyCode === 9) {\n // TAB\n e.preventDefault();\n if (commandValue === \"\") {\n this.value = \"help\";\n } else {\n const matchingCommand = commandsList.find((c) =>\n c.startsWith(commandValue)\n );\n if (matchingCommand) {\n this.value = matchingCommand;\n }\n }\n historyMode = false;\n } else if (e.keyCode === 38 || e.keyCode === 40) {\n // UP / DOWN\n // History management\n if (commandsHistory.length > 0) {\n if (historyMode === false) {\n historyIndex = commandsHistory.length - 1;\n } else {\n if (e.keyCode === 38 && historyIndex !== 0) {\n // UP\n historyIndex--;\n } else if (\n e.keyCode === 40 &&\n historyIndex !== commandsHistory.length - 1\n ) {\n historyIndex++;\n }\n }\n this.value = commandsHistory[historyIndex];\n }\n historyMode = true;\n }\n}\n\n/**\n * Allows to manage hidden commands (not proposed in the autocompletion)\n * @param {string} command\n * @returns {string|void} Html to be displayed in the response of the command\n */\nfunction handleCustomCommands(command) {\n switch (command) {\n case \"pif\":\n pif();\n return \"Let's go !\";\n case \"light\":\n if (!document.body.classList.contains(\"dark-mode\"))\n return \"You are already in light mode.\";\n setDarkMode(false);\n return \"Your are now in light mode.\";\n case \"dark\":\n if (document.body.classList.contains(\"dark-mode\"))\n return \"You are already in dark mode.\";\n setDarkMode(true);\n return \"You are now in dark mode.\";\n case \"get cv\":\n getCV();\n return \"The CV will be downloaded.\";\n case \"rm -rf /\":\n rmRf();\n return \"🎆\";\n case \"clear\":\n terminalBody.innerHTML = `<div id=\"terminal\"></div>`;\n return;\n }\n}\n\n/**\n * Convert HTML to DOM object\n * @param html\n * @returns {DocumentFragment}\n */\nfunction stringToDom(html) {\n return document.createRange().createContextualFragment(html);\n}\n\n// ------------------------------------------------------------------------------------\n// EVENT LISTENNER\n// ------------------------------------------------------------------------------------\n\n// Added focus on the input even if you click on the body (to keep the cursor)\ndocument.body.addEventListener(\"click\", function (e) {\n if (e.target.tagName !== \"INPUT\") {\n const activeInput = document.querySelector(\"input[data-active]\");\n activeInput.focus();\n }\n});\n\ndocument.querySelector(\".fake-close\").addEventListener(\"click\", function (e) {\n const terminalEl = document.querySelector(\".terminal\");\n terminalEl.parentElement.removeChild(terminalEl);\n});\n","export function dragElement(elmnt) {\n var pos1 = 0,\n pos2 = 0,\n pos3 = 0,\n pos4 = 0;\n const element = document.querySelector(\".terminal__header\");\n if (element) {\n // if present, the header is where you move the DIV from:\n element.onmousedown = dragMouseDown;\n } else {\n // otherwise, move the DIV from anywhere inside the DIV:\n elmnt.onmousedown = dragMouseDown;\n }\n\n function dragMouseDown(e) {\n e = e || window.event;\n e.preventDefault();\n // get the mouse cursor position at startup:\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n // call a function whenever the cursor moves:\n document.onmousemove = elementDrag;\n }\n\n function elementDrag(e) {\n e = e || window.event;\n e.preventDefault();\n // calculate the new cursor position:\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n // set the element's new position:\n elmnt.style.top = elmnt.offsetTop - pos2 + \"px\";\n elmnt.style.left = elmnt.offsetLeft - pos1 + \"px\";\n }\n\n function closeDragElement() {\n // stop moving when mouse button is released:\n document.onmouseup = null;\n document.onmousemove = null;\n }\n}\n"],"names":["$d92092a09195f7d1$exports","JSON","parse","$34c903c393c5d006$var$module","main","global","module","isWorker","workerSize","canUseWorker","Worker","Blob","Promise","OffscreenCanvas","OffscreenCanvasRenderingContext2D","HTMLCanvasElement","prototype","transferControlToOffscreen","URL","createObjectURL","noop","promise","func","ModulePromise","exports","Prom","frame","cancel","TIME","frames","lastFrameTime","worker","prom","resolves","defaultFire","raf","Math","floor","requestAnimationFrame","cancelAnimationFrame","cb","id","random","onFrame","time","setTimeout","timer","clearTimeout","getWorker","code","toString","join","e","console","warn","execute","options","callback","postMessage","init","canvas","offscreen","fire","size","done","slice","resolve","workerDone","msg","data","removeEventListener","addEventListener","bind","reset","decorate","defaults","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","x","y","shapes","zIndex","colors","disableForReducedMotion","scalar","prop","name","transform","val","convert","onlyPositiveInt","number","toDecimal","str","parseInt","colorsToRgb","map","hexToRgb","String","replace","length","r","substring","g","b","setCanvasWindowSize","width","document","documentElement","clientWidth","height","clientHeight","setCanvasRectSize","rect","getBoundingClientRect","animate","fettis","resizer","animationFrame","destroy","animatingFettis","context","getContext","onDone","clearRect","update","filter","fetti","cos","angle2D","velocity","sin","wobble","wobbleSpeed","tiltAngle","tiltSin","tiltCos","wobbleX","wobbleY","progress","tick","totalTicks","x1","y1","x2","y2","fillStyle","color","beginPath","shape","ellipse","abs","ovalScalar","PI","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","save","translate","rotate","scale","arc","restore","moveTo","lineTo","closePath","fill","updateFetti","addFettis","concat","confettiCannon","globalOpts","animationObj","isLibCanvas","allowResize","globalDisableForReducedMotion","Boolean","initialized","__confetti_initialized","preferLessMotion","matchMedia","matches","fireLocal","opts","radAngle","radSpread","min","max","Number","origin","Object","getOrigin","temp","startX","startY","push","createElement","style","position","top","left","pointerEvents","getCanvas","body","appendChild","onResize","obj","resize","removeChild","getDefaultFire","useWorker","apply","this","arguments","create","window","self","$34c903c393c5d006$export$2e2bcd8739ae039","$f36443a0b7a43964$export$faf76607d863714d","value","classList","add","remove","t","i","$96ebb6bf3d64fea6$exports","define","amd","s","t1","defineProperty","Explosion","ctx","h","hue","n","exp","o","a","friction","brightness","c","explosionLength","_","_coordinates","_alpha","_x","_y","_exp","_ctx","_gravity","_friction","_explosionLength","_angle","randomFloat","_speed","randomInt","_hue","_brightness","_decay","pop","unshift","draw","hsla","strokeStyle","stroke","getDistance","pow","sqrt","__awaiter","next","throw","then","Sound","_buffer","onInit","_audioContext","AudioContext","webkitAudioContext","assign","enabled","files","volume","load","fetch","arrayBuffer","decodeAudioData","catch","play","createBufferSource","createGain","buffer","gain","connect","destination","start","Trace","dx","dy","speed","traceLength","acceleration","_currentDistance","_sx","_sy","_dx","_dy","_traceLength","_acceleration","_totalDistance","atan2","call","t2","Fireworks","autoresize","boundaries","delay","mouse","sound","trace","explosion","d","u","opacity","l","particles","p","rocketsPoint","m","v","_tick","_version","_running","_randomRocketsPoint","_experimentals","_m","_container","_canvas","_sound","setSize","setBoundaries","visible","click","move","windowResize","mouseDown","mouseUp","mouseMove","isRunning","version","clear","render","stop","unmount","pause","_traces","_explosions","_width","_height","setOptions","entries","hasOwnProperty","Error","useMouse","_mx","pageX","offsetLeft","_my","pageY","offsetTop","globalCompositeOperation","fillRect","drawBoundaries","initTrace","drawTrace","drawExplosion","_ds","initExplosion","splice","$02a59f831d44c109$var$commandsList","$parcel$interopDefault","forEach","command","$02a59f831d44c109$var$customCommands","$02a59f831d44c109$var$hiddenCommands","innerWidth","elmnt","pos1","pos2","pos3","pos4","element","querySelector","dragMouseDown","event","preventDefault","clientX","clientY","onmouseup","closeDragElement","onmousemove","elementDrag","onmousedown","$83df960a9e28805f$export$69374dc2b307e4","$02a59f831d44c109$var$commandsHistory","$02a59f831d44c109$var$historyMode","$02a59f831d44c109$var$historyIndex","$02a59f831d44c109$var$terminalBody","$02a59f831d44c109$var$addNewLine","Date","getMonth","htmlFlakes","html","append","createRange","createContextualFragment","$02a59f831d44c109$var$stringToDom","param","previousUid","uid","terminalLineEl","terminalResponseEl","inputEl","type","autocapitalize","dataset","active","$02a59f831d44c109$var$onCommandInput","previousInputEl","getElementById","setAttribute","focus","commandValue","target","trim","toLowerCase","keyCode","idResponse","responseEl","includes","particleRatio","$f36443a0b7a43964$export$6de48e3f8be72096","contains","href","innerHTML","$02a59f831d44c109$var$handleCustomCommands","commandObj","find","el","undefined","split","responseType","Array","isArray","headers","rows","thsHtml","tdsHtml","rtd","$02a59f831d44c109$var$getDomForCommand","matchingCommand","startsWith","tagName","terminalEl","parentElement"],"version":3,"file":"index.95584cc1.js.map"}