commit 12310fe83312435ca7932371b327e1aeeb8112f0 Author: root Date: Sun Feb 16 14:23:46 2020 +0100 Initial commit diff --git a/assets/cannon-2.png b/assets/cannon-2.png new file mode 100644 index 0000000..99c5df2 Binary files /dev/null and b/assets/cannon-2.png differ diff --git a/assets/cannon.png b/assets/cannon.png new file mode 100644 index 0000000..c3982b5 Binary files /dev/null and b/assets/cannon.png differ diff --git a/assets/icons/Airport-icon.png b/assets/icons/Airport-icon.png new file mode 100644 index 0000000..10ebea5 Binary files /dev/null and b/assets/icons/Airport-icon.png differ diff --git a/assets/icons/Beer-icon.png b/assets/icons/Beer-icon.png new file mode 100644 index 0000000..0f835f4 Binary files /dev/null and b/assets/icons/Beer-icon.png differ diff --git a/assets/icons/Bicep-icon.png b/assets/icons/Bicep-icon.png new file mode 100644 index 0000000..789240b Binary files /dev/null and b/assets/icons/Bicep-icon.png differ diff --git a/assets/icons/Bike-icon.png b/assets/icons/Bike-icon.png new file mode 100644 index 0000000..060e83e Binary files /dev/null and b/assets/icons/Bike-icon.png differ diff --git a/assets/icons/Birthday-icon.png b/assets/icons/Birthday-icon.png new file mode 100644 index 0000000..57046d3 Binary files /dev/null and b/assets/icons/Birthday-icon.png differ diff --git a/assets/icons/Bloody-Mary-icon.png b/assets/icons/Bloody-Mary-icon.png new file mode 100644 index 0000000..d79619e Binary files /dev/null and b/assets/icons/Bloody-Mary-icon.png differ diff --git a/assets/icons/Book-icon.png b/assets/icons/Book-icon.png new file mode 100644 index 0000000..5bb32f5 Binary files /dev/null and b/assets/icons/Book-icon.png differ diff --git a/assets/icons/Brunch-icon.png b/assets/icons/Brunch-icon.png new file mode 100644 index 0000000..7b0c6e0 Binary files /dev/null and b/assets/icons/Brunch-icon.png differ diff --git a/assets/icons/Candy-Cane-icon.png b/assets/icons/Candy-Cane-icon.png new file mode 100644 index 0000000..ac08986 Binary files /dev/null and b/assets/icons/Candy-Cane-icon.png differ diff --git a/assets/icons/Cat-icon.png b/assets/icons/Cat-icon.png new file mode 100644 index 0000000..358a294 Binary files /dev/null and b/assets/icons/Cat-icon.png differ diff --git a/assets/icons/Chicken-Leg-icon.png b/assets/icons/Chicken-Leg-icon.png new file mode 100644 index 0000000..7e91035 Binary files /dev/null and b/assets/icons/Chicken-Leg-icon.png differ diff --git a/assets/icons/Chinese-Take-Out-icon.png b/assets/icons/Chinese-Take-Out-icon.png new file mode 100644 index 0000000..6b15ca7 Binary files /dev/null and b/assets/icons/Chinese-Take-Out-icon.png differ diff --git a/assets/icons/Christmas-Tree-icon.png b/assets/icons/Christmas-Tree-icon.png new file mode 100644 index 0000000..7a60c77 Binary files /dev/null and b/assets/icons/Christmas-Tree-icon.png differ diff --git a/assets/icons/Clapper-icon.png b/assets/icons/Clapper-icon.png new file mode 100644 index 0000000..f10b9b3 Binary files /dev/null and b/assets/icons/Clapper-icon.png differ diff --git a/assets/icons/Coffee-2-icon.png b/assets/icons/Coffee-2-icon.png new file mode 100644 index 0000000..a455a9e Binary files /dev/null and b/assets/icons/Coffee-2-icon.png differ diff --git a/assets/icons/Coffee-icon.png b/assets/icons/Coffee-icon.png new file mode 100644 index 0000000..a4ed6d6 Binary files /dev/null and b/assets/icons/Coffee-icon.png differ diff --git a/assets/icons/Cosmo-icon.png b/assets/icons/Cosmo-icon.png new file mode 100644 index 0000000..e8a075b Binary files /dev/null and b/assets/icons/Cosmo-icon.png differ diff --git a/assets/icons/Croissant-icon.png b/assets/icons/Croissant-icon.png new file mode 100644 index 0000000..07b7312 Binary files /dev/null and b/assets/icons/Croissant-icon.png differ diff --git a/assets/icons/Dog-icon.png b/assets/icons/Dog-icon.png new file mode 100644 index 0000000..5f64f1f Binary files /dev/null and b/assets/icons/Dog-icon.png differ diff --git a/assets/icons/Dreidel-icon.png b/assets/icons/Dreidel-icon.png new file mode 100644 index 0000000..2c7ec44 Binary files /dev/null and b/assets/icons/Dreidel-icon.png differ diff --git a/assets/icons/Fast-Food-icon.png b/assets/icons/Fast-Food-icon.png new file mode 100644 index 0000000..477e1de Binary files /dev/null and b/assets/icons/Fast-Food-icon.png differ diff --git a/assets/icons/Fire-icon.png b/assets/icons/Fire-icon.png new file mode 100644 index 0000000..97f30f1 Binary files /dev/null and b/assets/icons/Fire-icon.png differ diff --git a/assets/icons/Fork-Knife-icon.png b/assets/icons/Fork-Knife-icon.png new file mode 100644 index 0000000..900b7d9 Binary files /dev/null and b/assets/icons/Fork-Knife-icon.png differ diff --git a/assets/icons/Gameboy-icon.png b/assets/icons/Gameboy-icon.png new file mode 100644 index 0000000..d2a4c89 Binary files /dev/null and b/assets/icons/Gameboy-icon.png differ diff --git a/assets/icons/Guacamole-icon.png b/assets/icons/Guacamole-icon.png new file mode 100644 index 0000000..194c9e9 Binary files /dev/null and b/assets/icons/Guacamole-icon.png differ diff --git a/assets/icons/Guitar-icon.png b/assets/icons/Guitar-icon.png new file mode 100644 index 0000000..e3051c8 Binary files /dev/null and b/assets/icons/Guitar-icon.png differ diff --git a/assets/icons/Hair-icon.png b/assets/icons/Hair-icon.png new file mode 100644 index 0000000..d54a837 Binary files /dev/null and b/assets/icons/Hair-icon.png differ diff --git a/assets/icons/Heart-icon.png b/assets/icons/Heart-icon.png new file mode 100644 index 0000000..c84dd44 Binary files /dev/null and b/assets/icons/Heart-icon.png differ diff --git a/assets/icons/Hot-Dog-icon.png b/assets/icons/Hot-Dog-icon.png new file mode 100644 index 0000000..e5ea769 Binary files /dev/null and b/assets/icons/Hot-Dog-icon.png differ diff --git a/assets/icons/Hungry-icon.png b/assets/icons/Hungry-icon.png new file mode 100644 index 0000000..db137ec Binary files /dev/null and b/assets/icons/Hungry-icon.png differ diff --git a/assets/icons/Ice-Cream-icon.png b/assets/icons/Ice-Cream-icon.png new file mode 100644 index 0000000..4d6efcd Binary files /dev/null and b/assets/icons/Ice-Cream-icon.png differ diff --git a/assets/icons/Juice-icon.png b/assets/icons/Juice-icon.png new file mode 100644 index 0000000..1c2a5fd Binary files /dev/null and b/assets/icons/Juice-icon.png differ diff --git a/assets/icons/Kebab-icon.png b/assets/icons/Kebab-icon.png new file mode 100644 index 0000000..dd96428 Binary files /dev/null and b/assets/icons/Kebab-icon.png differ diff --git a/assets/icons/Laptop-icon.png b/assets/icons/Laptop-icon.png new file mode 100644 index 0000000..97dcd43 Binary files /dev/null and b/assets/icons/Laptop-icon.png differ diff --git a/assets/icons/Lipstick-icon.png b/assets/icons/Lipstick-icon.png new file mode 100644 index 0000000..baabd20 Binary files /dev/null and b/assets/icons/Lipstick-icon.png differ diff --git a/assets/icons/Mayor-Airport-icon.png b/assets/icons/Mayor-Airport-icon.png new file mode 100644 index 0000000..d9442af Binary files /dev/null and b/assets/icons/Mayor-Airport-icon.png differ diff --git a/assets/icons/Mayor-Beer-icon.png b/assets/icons/Mayor-Beer-icon.png new file mode 100644 index 0000000..468631e Binary files /dev/null and b/assets/icons/Mayor-Beer-icon.png differ diff --git a/assets/icons/Mayor-Book-icon.png b/assets/icons/Mayor-Book-icon.png new file mode 100644 index 0000000..3e6eae1 Binary files /dev/null and b/assets/icons/Mayor-Book-icon.png differ diff --git a/assets/icons/Mayor-Brunch-icon.png b/assets/icons/Mayor-Brunch-icon.png new file mode 100644 index 0000000..26bb2f2 Binary files /dev/null and b/assets/icons/Mayor-Brunch-icon.png differ diff --git a/assets/icons/Mayor-Clapper-icon.png b/assets/icons/Mayor-Clapper-icon.png new file mode 100644 index 0000000..d0fe9ae Binary files /dev/null and b/assets/icons/Mayor-Clapper-icon.png differ diff --git a/assets/icons/Mayor-Coffee-icon.png b/assets/icons/Mayor-Coffee-icon.png new file mode 100644 index 0000000..d1dd3b7 Binary files /dev/null and b/assets/icons/Mayor-Coffee-icon.png differ diff --git a/assets/icons/Mayor-Croissant-icon.png b/assets/icons/Mayor-Croissant-icon.png new file mode 100644 index 0000000..a6ac78d Binary files /dev/null and b/assets/icons/Mayor-Croissant-icon.png differ diff --git a/assets/icons/Mayor-Fast-Food-icon.png b/assets/icons/Mayor-Fast-Food-icon.png new file mode 100644 index 0000000..8d6109d Binary files /dev/null and b/assets/icons/Mayor-Fast-Food-icon.png differ diff --git a/assets/icons/Mayor-Foam-Hand-icon.png b/assets/icons/Mayor-Foam-Hand-icon.png new file mode 100644 index 0000000..098adeb Binary files /dev/null and b/assets/icons/Mayor-Foam-Hand-icon.png differ diff --git a/assets/icons/Mayor-Fork-Knife-icon.png b/assets/icons/Mayor-Fork-Knife-icon.png new file mode 100644 index 0000000..dad572c Binary files /dev/null and b/assets/icons/Mayor-Fork-Knife-icon.png differ diff --git a/assets/icons/Mayor-Gym-icon.png b/assets/icons/Mayor-Gym-icon.png new file mode 100644 index 0000000..a61e1ac Binary files /dev/null and b/assets/icons/Mayor-Gym-icon.png differ diff --git a/assets/icons/Mayor-Hair-icon.png b/assets/icons/Mayor-Hair-icon.png new file mode 100644 index 0000000..2e1d3ab Binary files /dev/null and b/assets/icons/Mayor-Hair-icon.png differ diff --git a/assets/icons/Mayor-Ice-Cream-icon.png b/assets/icons/Mayor-Ice-Cream-icon.png new file mode 100644 index 0000000..6e51a60 Binary files /dev/null and b/assets/icons/Mayor-Ice-Cream-icon.png differ diff --git a/assets/icons/Mayor-Lap-Top-icon.png b/assets/icons/Mayor-Lap-Top-icon.png new file mode 100644 index 0000000..6432add Binary files /dev/null and b/assets/icons/Mayor-Lap-Top-icon.png differ diff --git a/assets/icons/Mayor-Music-icon.png b/assets/icons/Mayor-Music-icon.png new file mode 100644 index 0000000..85a274d Binary files /dev/null and b/assets/icons/Mayor-Music-icon.png differ diff --git a/assets/icons/Mayor-Park-icon.png b/assets/icons/Mayor-Park-icon.png new file mode 100644 index 0000000..174da98 Binary files /dev/null and b/assets/icons/Mayor-Park-icon.png differ diff --git a/assets/icons/Mayor-Pizza-icon.png b/assets/icons/Mayor-Pizza-icon.png new file mode 100644 index 0000000..2001bf3 Binary files /dev/null and b/assets/icons/Mayor-Pizza-icon.png differ diff --git a/assets/icons/Mayor-Shopping-icon.png b/assets/icons/Mayor-Shopping-icon.png new file mode 100644 index 0000000..3ff5a46 Binary files /dev/null and b/assets/icons/Mayor-Shopping-icon.png differ diff --git a/assets/icons/Mayor-Suitcase-icon.png b/assets/icons/Mayor-Suitcase-icon.png new file mode 100644 index 0000000..d8a3be8 Binary files /dev/null and b/assets/icons/Mayor-Suitcase-icon.png differ diff --git a/assets/icons/Mayor-Sunglasses-icon.png b/assets/icons/Mayor-Sunglasses-icon.png new file mode 100644 index 0000000..887c1ab Binary files /dev/null and b/assets/icons/Mayor-Sunglasses-icon.png differ diff --git a/assets/icons/Mayor-Surfer-icon.png b/assets/icons/Mayor-Surfer-icon.png new file mode 100644 index 0000000..a1ab614 Binary files /dev/null and b/assets/icons/Mayor-Surfer-icon.png differ diff --git a/assets/icons/Mayor-Ticket-icon.png b/assets/icons/Mayor-Ticket-icon.png new file mode 100644 index 0000000..593e324 Binary files /dev/null and b/assets/icons/Mayor-Ticket-icon.png differ diff --git a/assets/icons/Mayor-Underpants-icon.png b/assets/icons/Mayor-Underpants-icon.png new file mode 100644 index 0000000..1965d3a Binary files /dev/null and b/assets/icons/Mayor-Underpants-icon.png differ diff --git a/assets/icons/Mayor-Whiskey-icon.png b/assets/icons/Mayor-Whiskey-icon.png new file mode 100644 index 0000000..493b259 Binary files /dev/null and b/assets/icons/Mayor-Whiskey-icon.png differ diff --git a/assets/icons/Mayor-icon.png b/assets/icons/Mayor-icon.png new file mode 100644 index 0000000..1112964 Binary files /dev/null and b/assets/icons/Mayor-icon.png differ diff --git a/assets/icons/Microphone-icon.png b/assets/icons/Microphone-icon.png new file mode 100644 index 0000000..3be571d Binary files /dev/null and b/assets/icons/Microphone-icon.png differ diff --git a/assets/icons/Mona-Lisa-icon.png b/assets/icons/Mona-Lisa-icon.png new file mode 100644 index 0000000..566bf9b Binary files /dev/null and b/assets/icons/Mona-Lisa-icon.png differ diff --git a/assets/icons/Music-icon.png b/assets/icons/Music-icon.png new file mode 100644 index 0000000..d162ecb Binary files /dev/null and b/assets/icons/Music-icon.png differ diff --git a/assets/icons/Nerd-Glasses-icon.png b/assets/icons/Nerd-Glasses-icon.png new file mode 100644 index 0000000..5997a9b Binary files /dev/null and b/assets/icons/Nerd-Glasses-icon.png differ diff --git a/assets/icons/New-Year-icon.png b/assets/icons/New-Year-icon.png new file mode 100644 index 0000000..d4c1946 Binary files /dev/null and b/assets/icons/New-Year-icon.png differ diff --git a/assets/icons/Office-Stappler-icon.png b/assets/icons/Office-Stappler-icon.png new file mode 100644 index 0000000..fca7393 Binary files /dev/null and b/assets/icons/Office-Stappler-icon.png differ diff --git a/assets/icons/Park-icon.png b/assets/icons/Park-icon.png new file mode 100644 index 0000000..fdad8f8 Binary files /dev/null and b/assets/icons/Park-icon.png differ diff --git a/assets/icons/Party-Hat-icon.png b/assets/icons/Party-Hat-icon.png new file mode 100644 index 0000000..b7b7192 Binary files /dev/null and b/assets/icons/Party-Hat-icon.png differ diff --git a/assets/icons/Pie-icon.png b/assets/icons/Pie-icon.png new file mode 100644 index 0000000..a8c966c Binary files /dev/null and b/assets/icons/Pie-icon.png differ diff --git a/assets/icons/Pizza-icon.png b/assets/icons/Pizza-icon.png new file mode 100644 index 0000000..5ddad56 Binary files /dev/null and b/assets/icons/Pizza-icon.png differ diff --git a/assets/icons/Poop-icon.png b/assets/icons/Poop-icon.png new file mode 100644 index 0000000..bb46d4e Binary files /dev/null and b/assets/icons/Poop-icon.png differ diff --git a/assets/icons/Rain-icon.png b/assets/icons/Rain-icon.png new file mode 100644 index 0000000..e39b3c7 Binary files /dev/null and b/assets/icons/Rain-icon.png differ diff --git a/assets/icons/Running-icon.png b/assets/icons/Running-icon.png new file mode 100644 index 0000000..c7b7281 Binary files /dev/null and b/assets/icons/Running-icon.png differ diff --git a/assets/icons/Sandwhich-icon.png b/assets/icons/Sandwhich-icon.png new file mode 100644 index 0000000..a2fde7f Binary files /dev/null and b/assets/icons/Sandwhich-icon.png differ diff --git a/assets/icons/Shopping-icon.png b/assets/icons/Shopping-icon.png new file mode 100644 index 0000000..a99bb3d Binary files /dev/null and b/assets/icons/Shopping-icon.png differ diff --git a/assets/icons/Skateboard-icon.png b/assets/icons/Skateboard-icon.png new file mode 100644 index 0000000..51b89de Binary files /dev/null and b/assets/icons/Skateboard-icon.png differ diff --git a/assets/icons/Sofa-icon.png b/assets/icons/Sofa-icon.png new file mode 100644 index 0000000..0112969 Binary files /dev/null and b/assets/icons/Sofa-icon.png differ diff --git a/assets/icons/Space-Shuttle-icon.png b/assets/icons/Space-Shuttle-icon.png new file mode 100644 index 0000000..4503cf2 Binary files /dev/null and b/assets/icons/Space-Shuttle-icon.png differ diff --git a/assets/icons/Suitcase-icon.png b/assets/icons/Suitcase-icon.png new file mode 100644 index 0000000..bc9dda6 Binary files /dev/null and b/assets/icons/Suitcase-icon.png differ diff --git a/assets/icons/Sunglasses-icon.png b/assets/icons/Sunglasses-icon.png new file mode 100644 index 0000000..88ed812 Binary files /dev/null and b/assets/icons/Sunglasses-icon.png differ diff --git a/assets/icons/Sunshine-icon.png b/assets/icons/Sunshine-icon.png new file mode 100644 index 0000000..5dcafce Binary files /dev/null and b/assets/icons/Sunshine-icon.png differ diff --git a/assets/icons/Superuser-icon.png b/assets/icons/Superuser-icon.png new file mode 100644 index 0000000..1900a00 Binary files /dev/null and b/assets/icons/Superuser-icon.png differ diff --git a/assets/icons/Surfer-icon.png b/assets/icons/Surfer-icon.png new file mode 100644 index 0000000..2260bbb Binary files /dev/null and b/assets/icons/Surfer-icon.png differ diff --git a/assets/icons/Sushi-icon.png b/assets/icons/Sushi-icon.png new file mode 100644 index 0000000..923883d Binary files /dev/null and b/assets/icons/Sushi-icon.png differ diff --git a/assets/icons/Tako-icon.png b/assets/icons/Tako-icon.png new file mode 100644 index 0000000..0e4d004 Binary files /dev/null and b/assets/icons/Tako-icon.png differ diff --git a/assets/icons/Ticket-icon.png b/assets/icons/Ticket-icon.png new file mode 100644 index 0000000..f674eca Binary files /dev/null and b/assets/icons/Ticket-icon.png differ diff --git a/assets/icons/Turkey-icon.png b/assets/icons/Turkey-icon.png new file mode 100644 index 0000000..4b3187b Binary files /dev/null and b/assets/icons/Turkey-icon.png differ diff --git a/assets/icons/Underpants-icon.png b/assets/icons/Underpants-icon.png new file mode 100644 index 0000000..c2dd3d5 Binary files /dev/null and b/assets/icons/Underpants-icon.png differ diff --git a/assets/icons/Unicorn-icon.png b/assets/icons/Unicorn-icon.png new file mode 100644 index 0000000..a3bc82b Binary files /dev/null and b/assets/icons/Unicorn-icon.png differ diff --git a/assets/icons/Whiskey-icon.png b/assets/icons/Whiskey-icon.png new file mode 100644 index 0000000..1828fa5 Binary files /dev/null and b/assets/icons/Whiskey-icon.png differ diff --git a/assets/icons/Wine-icon.png b/assets/icons/Wine-icon.png new file mode 100644 index 0000000..83a4979 Binary files /dev/null and b/assets/icons/Wine-icon.png differ diff --git a/assets/icons/Zzz-icon.png b/assets/icons/Zzz-icon.png new file mode 100644 index 0000000..f399212 Binary files /dev/null and b/assets/icons/Zzz-icon.png differ diff --git a/assets/icons/gym-icon.png b/assets/icons/gym-icon.png new file mode 100644 index 0000000..a4bbc84 Binary files /dev/null and b/assets/icons/gym-icon.png differ diff --git a/assets/icons/hanukkah-icon.png b/assets/icons/hanukkah-icon.png new file mode 100644 index 0000000..95a5f5a Binary files /dev/null and b/assets/icons/hanukkah-icon.png differ diff --git a/assets/icons/ivoted-2014-icon.png b/assets/icons/ivoted-2014-icon.png new file mode 100644 index 0000000..684604e Binary files /dev/null and b/assets/icons/ivoted-2014-icon.png differ diff --git a/confetti.js b/confetti.js new file mode 100644 index 0000000..9a24b27 --- /dev/null +++ b/confetti.js @@ -0,0 +1,355 @@ +// utilities +function getLength(x0, y0, x1, y1) { + // returns the length of a line segment + const x = x1 - x0; + const y = y1 - y0; + return Math.sqrt(x * x + y * y); +} + +function getDegAngle(x0, y0, x1, y1) { + const y = y1 - y0; + const x = x1 - x0; + return Math.atan2(y, x) * (180 / Math.PI); +} + +// some constants +const DECAY = 4; // confetti decay in seconds +const SPREAD = 30*3.141592/180; // degrees to spread from the angle of the cannon +const GRAVITY = 120; + +class ConfettiCannon { + constructor() { + // setup a canvas + this.canvas = document.getElementById('canvas'); + this.dpr = window.devicePixelRatio || 1; + this.ctx = this.canvas.getContext('2d'); + this.ctx.scale(this.dpr, this.dpr); + + // add confetti here + this.confettiSpriteIds = []; + this.confettiSprites = {}; + + // vector line representing the firing angle + this.drawVector = false; + this.vector = [{ + x: window.innerWidth * 0.9, + y: window.innerHeight * 0.8, + }, { + x: window.innerWidth, + y: window.innerHeight, + }]; + + this.pointer = {}; + + // bind methods + this.render = this.render.bind(this); + this.handleMousedown = this.handleMousedown.bind(this); + this.handleMouseup = this.handleMouseup.bind(this); + this.handleMousemove = this.handleMousemove.bind(this); + this.handleTouchstart = this.handleTouchstart.bind(this); + this.handleTouchmove = this.handleTouchmove.bind(this); + this.setCanvasSize = this.setCanvasSize.bind(this); + + this.setupListeners(); + this.setCanvasSize(); + + // fire off for a demo + //this.timer = setTimeout(this.handleMouseup, 1000); + } + + setupListeners() { + // Use TweenLite tick event for the render loop + TweenLite.ticker.addEventListener('tick', this.render); + + // bind events + window.addEventListener('mousedown', this.handleMousedown); + window.addEventListener('mouseup', this.handleMouseup); + window.addEventListener('mousemove', this.handleMousemove); + window.addEventListener('touchstart', this.handleTouchstart); + window.addEventListener('touchend', this.handleMouseup); + window.addEventListener('touchmove', this.handleTouchmove); + window.addEventListener('resize', this.setCanvasSize); + } + + setCanvasSize() { + this.canvas.width = window.innerWidth * this.dpr; + this.canvas.height = window.innerHeight * this.dpr; + this.canvas.style.width = window.innerWidth + 'px'; + this.canvas.style.height = window.innerHeight + 'px'; + } + + handleMousedown(event) { + clearTimeout(this.timer); + const x = event.clientX * this.dpr; + const y = event.clientY * this.dpr; + + this.vector[0] = { + x, + y, + }; + this.drawVector = true; + } + + handleTouchstart(event) { + clearTimeout(this.timer); + event.preventDefault(); + const x = event.touches[0].clientX * this.dpr; + const y = event.touches[0].clientY * this.dpr; + this.vector[0] = { + x, + y, + }; + + this.drawVector = true; + } + + handleMouseup(event) { + this.drawVector = false; + + const x0 = this.vector[0].x; + const y0 = this.vector[0].y; + const x1 = this.vector[1].x; + const y1 = this.vector[1].y; + + const length = getLength(x0, y0, x1, y1); + const angle = (getDegAngle(x0, y0, x1, y1) - 180)*-3.141592/180; + + const particles = length / 3 + 5; + const velocity = length * 50; + this.addConfettiParticles(particles, angle, velocity, x0, y0); + } + + handleMousemove(event) { + const x = event.clientX * this.dpr; + const y = event.clientY * this.dpr; + this.vector[1] = { + x, + y, + }; + this.pointer = this.vector[1]; + } + + handleTouchmove(event) { + event.preventDefault(); + const x = event.changedTouches[0].clientX * this.dpr; + const y = event.changedTouches[0].clientY * this.dpr; + this.vector[1] = { + x, + y, + }; + this.pointer = this.vector[1]; + } + + drawVectorLine() { + this.ctx.strokeStyle = 'pink'; + this.ctx.lineWidth = 2 * this.dpr; + + const x0 = this.vector[0].x; + const y0 = this.vector[0].y; + const x1 = this.vector[1].x; + const y1 = this.vector[1].y; + + this.ctx.beginPath(); + this.ctx.moveTo(x0, y0); + this.ctx.lineTo(x1, y1); + this.ctx.stroke(); + } + + addConfettiParticles(amount, angleP, velocityP, x, y) { + let i = 0; + while (i < amount) { + // sprite + const r = _.random(4, 6) * this.dpr; + const d = _.random(15, 25) * this.dpr; + + const cr = _.random(30, 255); + const cg = _.random(30, 230); + const cb = _.random(30, 230); + const color = `rgb(${cr}, ${cg}, ${cb})`; + + const tilt = _.random(10, -10); + const tiltAngleIncremental = _.random(0.07, 0.05); + const tiltAngle = 0; + + const id = _.uniqueId(); + + const friction = _.random(0.10, 0.25); + + + + const minAngle = angleP - SPREAD / 2; + const maxAngle = angleP + SPREAD / 2; + const minVelocity = velocityP / 2; + const maxVelocity = velocityP; + // Physics Props + const velocity = _.random(minVelocity, maxVelocity); + const angle = _.random(minAngle, maxAngle); + + + + const sprite = { + [id]: { + angle, + velocity, + x, + y, + r, + d, + color, + tilt, + tiltAngleIncremental, + tiltAngle, + friction + }, + }; + + Object.assign(this.confettiSprites, sprite); + this.confettiSpriteIds.push(id); + //this.tweenConfettiParticle(id); + i++; + } + } + + tweenConfettiParticle(id) { + const minAngle = this.confettiSprites[id].angle - SPREAD / 2; + const maxAngle = this.confettiSprites[id].angle + SPREAD / 2; + + const minVelocity = this.confettiSprites[id].velocity / 4; + const maxVelocity = this.confettiSprites[id].velocity; + + // Physics Props + const velocity = _.random(minVelocity, maxVelocity); + const angle = _.random(minAngle, maxAngle); + const gravity = GRAVITY; + const friction = _.random(0.01, 0.025); + const d = 0; + + /*TweenLite.to(this.confettiSprites[id], DECAY, { + physics2D: { + velocity, + angle, + gravity, + friction, + }, + d, + ease: Power4.easeIn, + onComplete: () => { + // remove confetti sprite and id + _.pull(this.confettiSpriteIds, id); + delete this.confettiSprites[id]; + }, + });*/ + } + + updateConfettiParticle(id) { + + const sprite = this.confettiSprites[id]; + + const tiltAngle = 0.0005 * sprite.d; + + //sprite.angle -= 0.01; + var vx = Math.cos(sprite.angle)*sprite.velocity; + var vy = -Math.sin(sprite.angle)*sprite.velocity; + vx = Math.sign(vx)*Math.max(0, Math.abs(vx) - sprite.friction); + vy = vy + GRAVITY - sprite.friction; + sprite.angle = Math.atan2(-vy, vx); + + sprite.tiltAngle += tiltAngle; + sprite.tiltAngle += sprite.tiltAngleIncremental; + sprite.tilt = (Math.sin(sprite.tiltAngle - (sprite.r / 2))) * sprite.r * 2; + sprite.y += vy*0.002+Math.sin(sprite.r / 2);//+Math.sin(sprite.angle + sprite.r / 2); + sprite.x += vx*0.002;//Math.cos(sprite.angle) * 2; + } + + drawConfetti() { + var deletable = []; + this.confettiSpriteIds.map(id => { + const sprite = this.confettiSprites[id]; + + this.ctx.beginPath(); + this.ctx.lineWidth = sprite.d / 2; + this.ctx.strokeStyle = sprite.color; + this.ctx.moveTo(sprite.x + sprite.tilt + sprite.r, sprite.y); + this.ctx.lineTo(sprite.x + sprite.tilt, sprite.y + sprite.tilt + sprite.r); + this.ctx.stroke(); + + this.updateConfettiParticle(id); + }); + } + + drawPointer() { + const centerX = this.pointer.x; + const centerY = this.pointer.y; + const radius = 15 * this.dpr; + + this.ctx.beginPath(); + this.ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false); + this.ctx.fillStyle = 'transparent'; + this.ctx.fill(); + this.ctx.lineWidth = 2 * this.dpr; + this.ctx.strokeStyle = '#ffffff'; + this.ctx.stroke(); + } + + drawPower() { + const x0 = this.vector[0].x; + const y0 = this.vector[0].y; + const x1 = this.vector[1].x; + const y1 = this.vector[1].y; + + const length = getLength(x0, y0, x1, y1); + const centerX = x0; + const centerY = y0; + const radius = 1 * this.dpr * length / 20; + + this.ctx.beginPath(); + this.ctx.arc(centerX, centerY, radius, 0, 2 * Math.PI, false); + this.ctx.fillStyle = 'transparent'; + this.ctx.fill(); + this.ctx.lineWidth = 2 * this.dpr; + this.ctx.strokeStyle = '#333333'; + this.ctx.stroke(); + } + + render() { + this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + + // only draw the vector when the drawVector flag is on + this.drawVector && this.drawVectorLine(); + this.drawVector && this.drawPower(); + + this.drawPointer(); + this.drawConfetti(); + } + + fire(x1, y1, x2, y2) { + this.vector = [{ + x: x1, + y: y1, + }, { + x: x2, + y: y2, + }]; + this.handleMouseup(); + } +} +var isMobile = false; //initiate as false +// device detection +if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) + || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) isMobile = true; + +if (!isMobile) { + const confetti = new ConfettiCannon(); + setTimeout(() => { + confetti.fire(window.innerWidth * 0.9, window.innerHeight * 0.8, window.innerWidth, window.innerHeight); + }, 1000); + setTimeout(() => { + confetti.fire(window.innerWidth * 0.1, window.innerHeight * 0.8, 0, window.innerHeight); + }, 1050); + setTimeout(() => { + confetti.fire(window.innerWidth * 0.9, window.innerHeight * 0.8, window.innerWidth, window.innerHeight); + }, 2000); + setTimeout(() => { + confetti.fire(window.innerWidth * 0.1, window.innerHeight * 0.8, 0, window.innerHeight); + }, 2050); +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..6b0cfe3 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + Geburtstag + + + + + + + + +
+
22
+ + + + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..058259a --- /dev/null +++ b/style.css @@ -0,0 +1,118 @@ +@import url('https://fonts.googleapis.com/css?family=Love+Ya+Like+A+Sister|Lobster'); + +html, body { + padding: 0; + margin: 0; +} + +body { + background-color: #7B7AF2; + font-family: 'Lobster', cursive; + cursor: pointer; + + overflow: hidden; + right: -20px; /* Increase/Decrease this value for cross-browser compatibility */ + overflow-y: auto; + margin-top: -3vmin; +} + +#canvas { +} + +#number { + -webkit-user-select: none; /* Chrome all / Safari all */ + -moz-user-select: none; /* Firefox all */ + -ms-user-select: none; /* IE 10+ */ + user-select: none; /* Likely future */ + + position: absolute; + top: 50%; + height: 60vh; + width: 100%; + margin-top:-37vh; /* -1/2 height */ + font-size: 60vh; + color: #09093D; + + text-align: center; + + -webkit-text-shadow: 0px 13px 32px rgba(0,0,0,0.3); + -moz-text-shadow: 0px 13px 32px rgba(0,0,0,0.3); + text-shadow: 0px 13px 32px rgba(0,0,0,0.3); +} + +#text { + -webkit-user-select: none; /* Chrome all / Safari all */ + -moz-user-select: none; /* Firefox all */ + -ms-user-select: none; /* IE 10+ */ + user-select: none; /* Likely future */ + + position: absolute; + top: 10vmin; + height: 60vh; + max-width: 60vw; + margin-left: 20vw; + font-size: 1.3em; + color: #09093D/*#e0550c#F4702B*/; + + text-align: center; + + -webkit-text-shadow: 0px 13px 32px rgba(0,0,0,0.5); + -moz-text-shadow: 0px 13px 32px rgba(0,0,0,0.5); + text-shadow: 0px 13px 32px rgba(0,0,0,0.5); +} + +#circle { + position: absolute; + top: 50%; + height: 60vh; + width: 100%; + margin-top:-30vh; /* -1/2 height */ + font-size: 60vh; + color: #09093D; + + text-align: center; +} + +#inner-circle { + display: inline-block; + top: 50%; + height: 15vh; + width: 70vh; + background-color: rgba(0,0,0,0.3); + border-radius: 50%; + + text-align: center; + + -webkit-box-shadow: 0px 13px 32px rgba(0,0,0,0.3); + -moz-box-shadow: 0px 13px 32px rgba(0,0,0,0.3); + box-shadow: 0px 13px 32px rgba(0,0,0,0.3); +} +#cannon-left, #cannon-right { + position: fixed; + bottom: 0; + max-height: 20vmin; + width: auto; + margin-bottom: -7vmin; + + -webkit-user-select: none; /* Chrome all / Safari all */ + -moz-user-select: none; /* Firefox all */ + -ms-user-select: none; /* IE 10+ */ + user-select: none; /* Likely future */ +} + +#cannon-left { + left: 0; + transform: rotate(-45deg); + margin-left: -1vmin; +} + +#cannon-right { + right: 0; + transform: rotate(45deg) rotateY(180deg); + margin-right: -1vmin; +} + +#cat { + margin-left: 0 0 0 auto; + transform: scale(0.6) rotate(20deg) rotateY(180deg); +} \ No newline at end of file diff --git a/sublime.sublime-project b/sublime.sublime-project new file mode 100644 index 0000000..24db303 --- /dev/null +++ b/sublime.sublime-project @@ -0,0 +1,8 @@ +{ + "folders": + [ + { + "path": "." + } + ] +} diff --git a/sublime.sublime-workspace b/sublime.sublime-workspace new file mode 100644 index 0000000..fce2895 --- /dev/null +++ b/sublime.sublime-workspace @@ -0,0 +1,1178 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "mar", + "margin-right" + ], + [ + "met", + "meta\tTag" + ], + [ + "marg", + "margin-bottom" + ], + [ + "pu", + "push" + ], + [ + "ve", + "velocity" + ], + [ + "margin", + "margin-top" + ], + [ + "bor", + "border-radius" + ], + [ + "in", + "inline-block" + ], + [ + "font", + "font-size" + ], + [ + "tex", + "text-align" + ], + [ + "table", + "table-cell" + ], + [ + "background-c", + "background-color" + ], + [ + "time", + "timediff" + ], + [ + "st", + "startDate" + ], + [ + "prob", + "probmin" + ], + [ + "rand", + "randrange" + ], + [ + "file", + "fileData" + ], + [ + "the", + "theFileData" + ], + [ + "l", + "log" + ], + [ + "pla", + "playing" + ], + [ + "fit", + "fitness" + ], + [ + "new", + "newEvolution" + ], + [ + "pau", + "pausedInit" + ], + [ + "paused", + "pausedInit" + ], + [ + "fun", + "function" + ], + [ + "ev", + "evolution" + ], + [ + "nex", + "nextGeneration" + ], + [ + "fitness", + "fitnesses" + ], + [ + "gen", + "genNumber" + ], + [ + "ge", + "generation" + ], + [ + "ti", + "ticket" + ], + [ + "le", + "length" + ], + [ + "ne", + "needle" + ], + [ + "_", + "_weights" + ], + [ + "h", + "hunger" + ], + [ + "w", + "_workers" + ], + [ + "di", + "div\tTag" + ], + [ + "avg", + "avgLen" + ], + [ + "p", + "permission\tproperty" + ], + [ + "ty", + "getValueKeysTyped\tmethod" + ], + [ + "pa", + "param\tlet" + ], + [ + "re", + "ret\treturn statement" + ], + [ + "sta", + "startDate\tparameter" + ], + [ + "t", + "type\tproperty" + ], + [ + "a", + "attributesTyped\tmethod" + ], + [ + "F", + "FieldsValue\talias" + ], + [ + "meth", + "methods\tproperty" + ], + [ + "max", + "maxValue\tproperty" + ], + [ + "T", + "TEXT_LINE\tvar" + ], + [ + "mod", + "modNr\tparameter" + ], + [ + "D", + "DROPDOWN\tvar" + ], + [ + "Para", + "ParameterTypeEnum\talias" + ], + [ + "s", + "sendErrorJSON\tmethod" + ], + [ + "Data", + "DataRequestTypeEnum\talias" + ], + [ + "f", + "fields\tproperty" + ], + [ + "Fiel", + "FieldsValue\talias" + ], + [ + "Per", + "PermissionListInterface\talias" + ], + [ + "fk_", + "fk_fields_startDate\tproperty" + ], + [ + "ff", + "fformID\tproperty" + ], + [ + "Form", + "FormsRouter\talias" + ], + [ + "nam", + "name\tproperty" + ], + [ + "ex", + "export\texport … from …" + ], + [ + "pro", + "protected\tkeyword" + ], + [ + "for", + "foreign\tlet" + ], + [ + "pare", + "parentID\tproperty" + ], + [ + "cons", + "console\tvar" + ], + [ + "c", + "comparator\tproperty" + ], + [ + "fil", + "Filter\talias" + ], + [ + "Da", + "DataRequestLogicInterface\talias" + ], + [ + "val", + "values\tparameter" + ], + [ + "per", + "perms\tparameter" + ], + [ + "PAra", + "ParameterTypeEnum\talias" + ], + [ + "_pF", + "_pValuesFields\tmethod" + ], + [ + "con", + "console\tvar" + ], + [ + "Parameter", + "ParameterTypeEnum\talias" + ], + [ + "Appl", + "ApplyParameterEnum\talias" + ], + [ + "res", + "response\tlet" + ], + [ + "ins", + "instanceof\tkeyword" + ], + [ + "e", + "export\tkeyword" + ], + [ + "is", + "isFilter\tlet" + ], + [ + "type", + "typeof\tkeyword" + ], + [ + "nu", + "number\tkeyword" + ], + [ + "_pW", + "_pWhereString\tmethod" + ], + [ + "_p", + "_pWhereString\tmethod" + ], + [ + "DAtaRe", + "DataRequestWhereInterface\talias" + ], + [ + "es", + "escapeId\tmethod" + ], + [ + "wi", + "withAlias\tparameter" + ], + [ + "o", + "orderby\tproperty" + ], + [ + "req", + "requests\tparameter" + ], + [ + "impo", + "import\timports … from …" + ], + [ + "ca", + "catch\tkeyword" + ], + [ + "DataSource", + "DataSourceMySQLVers\talias" + ], + [ + "DataReq", + "DataRequestTypeEnum\talias" + ], + [ + "DataRe", + "DataRequestTypeEnum\talias" + ], + [ + "th", + "this\tkeyword" + ], + [ + "d", + "datasource\tdirectory" + ], + [ + "set", + "setTimeout\tfunction" + ], + [ + "C", + "Client\tinterface" + ], + [ + "tr", + "try\tkeyword" + ], + [ + "Object", + "Object\tinterface" + ], + [ + "expo", + "export\tkeyword" + ], + [ + "se", + "sendSuccessJSON\tmethod" + ], + [ + "u", + "use\tproperty" + ], + [ + "mo", + "modNr\tparameter" + ], + [ + "im", + "import\timports … from …" + ], + [ + "fore", + "foreign\tlet" + ], + [ + "get", + "getItem\tmethod" + ], + [ + "pr", + "properties\tproperty" + ], + [ + "r", + "router\tdirectory" + ], + [ + "Fi", + "FieldInterface\talias" + ], + [ + "string", + "string\tkeyword" + ], + [ + "_f", + "_foreignsRev\tproperty" + ], + [ + "fi", + "filterName\tparameter" + ], + [ + "i", + "ids\tlet" + ], + [ + "Fil", + "FilterConstructor\talias" + ], + [ + "Cla", + "class\tkeyword" + ], + [ + "to", + "toString\tmethod" + ], + [ + "pri", + "private\tkeyword" + ], + [ + "Re", + "Response\tinterface" + ], + [ + "import", + "import\timports … from …" + ], + [ + "Req", + "Request\tinterface" + ], + [ + "R", + "Router\tinterface" + ], + [ + "co", + "convertFieldToQuestion\tmethod" + ], + [ + "TEXT_", + "TEXT_LINE\tvar" + ], + [ + "Ba", + "BaseFieldInterface\talias" + ], + [ + "Pa", + "ParameterTypeEnum\talias" + ], + [ + "fr", + "from\tkeyword" + ], + [ + "Con", + "Controller\talias" + ] + ] + }, + "buffers": + [ + { + "file": "index.html", + "settings": + { + "buffer_size": 1664, + "encoding": "UTF-8", + "line_ending": "Windows" + } + }, + { + "file": "text.js", + "settings": + { + "buffer_size": 276, + "encoding": "UTF-8", + "line_ending": "Windows" + } + }, + { + "file": "confetti.js", + "settings": + { + "buffer_size": 10888, + "encoding": "UTF-8", + "line_ending": "Windows" + } + }, + { + "file": "style.css", + "settings": + { + "buffer_size": 2483, + "encoding": "UTF-8", + "line_ending": "Windows", + "name": "# style.css" + } + } + ], + "build_system": "Packages/Python/Python.sublime-build", + "build_system_choices": + [ + [ + [ + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ] + ], + [ + "Packages/Python/Python.sublime-build", + "" + ] + ] + ], + "build_varint": "", + "command_palette": + { + "height": 150.0, + "last_filter": "Package Control: ins", + "selected_items": + [ + [ + "Package Control: ins", + "Package Control: Install Package" + ], + [ + "Package Control: insta", + "Package Control: Install Package" + ] + ], + "width": 400.0 + }, + "console": + { + "height": 0.0, + "history": + [ + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "expanded_folders": + [ + "/C/Users/seedorf_s1/Documents/geburtstag", + "/C/Users/seedorf_s1/Documents/geburtstag/assets" + ], + "file_history": + [ + "/C/Users/SEEDOR~1/AppData/Local/Temp/u2zvvbf9.bmp", + "/C/Users/seedorf_s1/Documents/Zeiterfassung/index.html", + "/C/Users/seedorf_s1/Documents/Zeiterfassung/webserver.py", + "/C/Users/seedorf_s1/Documents/Zeiterfassung/run.py", + "/C/Users/seedorf_s1/Desktop/prohability.py", + "/C/Users/seedorf_s1/Documents/Zeiterfassung/data/times.csv", + "/C/Users/seedorf_s1/Documents/Zeiterfassung/START.BAT", + "/C/Users/seedorf_s1/Downloads/ai-snake-net.json", + "/C/Users/seedorf_s1/Desktop/snake-ai/index.html", + "/C/Users/seedorf_s1/Desktop/snake-ai/WorldSnake.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/index.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/play.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/DNANeuronal.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/DNA.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/World.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/DNANeuronalSnake.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/Evolution.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/EvolutionSnake.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/game.js", + "/C/Users/seedorf_s1/Documents/Ziele Weiterentwicklung von BIO-stada.txt", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/script.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/SERVER.js", + "/C/Users/seedorf_s1/Documents/Portables/Chrome/Data/profile/chrome_debug.log", + "/C/Users/seedorf_s1/Desktop/snake-ai/WorldTicTacToe.js", + "/C/Users/seedorf_s1/Desktop/snake-ai/índex.html", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/WorldTicTacToe.js", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/World.js", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/Evolution.js", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/DNA.js", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/index.html", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/DNANeuronalTicTacToe.js", + "/C/Users/seedorf_s1/Downloads/GA TicTacToe/DNANeuronal.js", + "/C/Users/seedorf_s1/Desktop/vnf.HTM", + "/C/Users/seedorf_s1/Desktop/ttt.TXT", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp45203/home/urbanczyk_o1/iMedNet_Export/bin/BACKUP_RUN.sh", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp45578/home/urbanczyk_o1/iMedNet_Export/bin/cronjob.sh", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp45078/home/urbanczyk_o1/iMedNet_Export/bin/EVAL_RUN_daily.sh", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp46842/home/urbanczyk_o1/MOUNT_DIR.sh", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp47526/home/urbanczyk_o1/iMedNet_Export/config/server.yml", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp46321/home/urbanczyk_o1/iMedNet_Export/bin/proxy_proxy.tcl", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-backend/src/services/LoginService.ts", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-backend/src/types/Question.interface.ts", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-backend/src/router/CrudCrf/Fields/FieldsConfig.ts", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-frontend/public/templates/input/dynamic-form-question.component.html", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-frontend/public/templates/input/dynamic-form.component.html", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-backend/src/router/Router.ts", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-backend/src/router/CrudCrf/Domains/DomainsConfig.ts", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp19562/home/webserver/studymanagement-backend/src/router/Router.ts", + "/C/Users/seedorf_s1/WebstormProjects/studymanagement-frontend/.idea/misc.xml", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Revisions/RevisionsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Revisions/RevisionsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Revisions/RevisionsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Revisions/RevisionsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/Router.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/Permission.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Revisions/RevisionsConfig.ts", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp59589/home/urbanczyk_o1/iMedNet_Export/config/studies/study_eac_id.csv", + "/C/Users/seedorf_s1/AppData/Local/Temp/scp58531/home/urbanczyk_o1/iMedNet_Export/config/dod_live4674.yml", + "/C/Users/seedorf_s1/Desktop/new 1.txt", + "/C/Users/seedorf_s1/Desktop/permissions.txt", + "/C/Users/seedorf_s1/Pictures/palette.xml", + "/C/Users/seedorf_s1/Downloads/Twemo/package.txt", + "/C/Users/SEEDOR~1/AppData/Local/Temp/7zE0BDD612F/palette.xml", + "/C/Users/seedorf_s1/AppData/Local/Temp/7zO007D0BD2/allemotes.txt", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/npm-debug.log.2847332337", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/npm-debug.log.4231371128", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/npm-debug.log.1650013983", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Fields/FieldsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/Controller.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/ParameterType.enum.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/utils/Validator.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/Field.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/Parameter.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Fields/FieldsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionItemsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/main.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/datasource/DataSourceMySQLVers.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/datasource/DataSource.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Fields/FieldsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/utils/Response.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Fields/FieldsValue.ts", + "/C/Users/SEEDOR~1/AppData/Local/Temp/7zE8BBB91E2/palette.xml", + "/C/Users/seedorf_s1/Documents/ReverseProxy/main.js", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/index.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Fields/FieldsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Forms/FormsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Forms/FormsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Forms/FormsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Forms/FormsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Forms/FormsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Sections/SectionsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Sections/SectionsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionItemsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionItemsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Sections/SectionsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Sections/SectionsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Sections/SectionsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/ReqStatuses/ReqStatusesRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/ReqStatuses/ReqStatusesFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/ReqStatuses/ReqStatusesConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/ReqStatuses/ReqStatusesId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/ReqStatuses/ReqStatusesValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/utils/Utilities.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/Constructor.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionItemsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionItemsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Domains/DomainsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionLists/OptionListsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Domains/DomainsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionListsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionListsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionListsValue.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionListsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionItems/OptionListsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionLists/OptionListsId.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionLists/OptionListsFilter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionLists/OptionListsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Domains/DomainsConfig.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/RouterConfig.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/Foreign.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/OptionLists/OptionListsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Domains/DomainsRouter.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/DataRequest.interface.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/ApplyParameter.enum.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/types/index.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/utils/index.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/utils/Errors.ts", + "/C/Users/seedorf_s1/Documents/repos/studymanagement-backend/src/router/CrudCrf/Domains/DomainsFilter.ts" + ], + "find": + { + "height": 34.0 + }, + "find_in_files": + { + "height": 90.0, + "where_history": + [ + "C:\\Users\\seedorf_s1\\Documents\\repos\\studymanagement-backend\\src", + "C:\\Users\\Sebastian\\Documents\\tmp" + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "0.4", + ";\n", + "10px", + "13px", + "10px", + "99", + "128px", + "box", + "n", + "this", + "that", + "16:51:55', '.{80, }', \\d\\d?, ", + "16:51:55', '.{50, }', \\d\\d?, ", + "(\\n\\()", + "(\\n\\([^,]*,[^,]*)", + "(\\([^,]*,[^,]*)", + "\\)\\n", + """, + "<", + "'", + " ", + "&ret;&car;", + "'", + " ", + "&ret;&car;", + "true", + "false\\)", + "\n .*\n (.*)\n (.*)\n (.*)\n (.*)\n (.*)\n .*\n .*\n .*\n", + "\\n", + "<", + """, + "&apos", + " +\\n", + "&ret;&car;", + " ", + "\n .*\n (.*)\n (.*)\n (.*)\n (.*)\n (.*)\n .*\n .*\n .*\n", + "\n .*\n (.*)\n (.*)\n (.*)\n (.*)\n .*\n .*\n .*\n .*\n", + "\n .*\n (.*)\n .*\n .*\n .*\n .*\n .*\n .*\n .*\n", + "/", + "methods", + "metho", + "ParameterInterface", + "ParameterError", + "domain", + "\n\n", + "(.*)", + ".*", + ".png", + "Kappa", + "kappa", + "domain", + "domains", + "name", + "code", + "name", + "Domains", + "crt", + "crf_domains", + "crf_fields", + "type", + ". ", + "\\nf", + " f.*:", + " fname:", + ": ;", + "\n noQuestion: true,", + "fk_olists_ID", + "console.log", + "attributes =", + "crt", + "unsetFilag_crt", + "crt", + "number", + "invalidChatWindow", + "stproxy", + "invalidChat", + "in", + "Section", + "domain", + "startDate", + "oam", + "field", + "domain", + "Form", + "option_item", + "domain", + "mdd", + "code", + "description", + "code", + "domain", + "ReqStatuse", + "domain", + "Domain", + "domain", + "Domain", + "domain", + "Domain", + "domain", + "Domain", + "domain", + "Domain", + "domain", + "Domain", + "domain", + "Domain", + "code", + "name", + "domain", + "Domain", + "domain", + "Domain", + "OptionItem", + "Domain", + "console", + "cosnole", + "this\\.[^\\s]*", + "fk_olists_ID", + "string", + "crt", + "Domains", + "addVersioniedTable", + "dsMySQL", + "Lists", + "list", + "OptionLists", + "Domain", + "domain" + ], + "highlight": true, + "in_selection": false, + "preserve_case": true, + "regex": true, + "replace_history": + [ + "\\n\\(1, '2017-07-18 16:51:55', ", + "\\n\\(1, ", + "$11, ", + "$1, '2017-07-18 16:51:55'", + "$1, 2017-07-18 16:51:55", + "\\),\\n", + "\"", + "<", + "\\\\'", + " ", + "\\\\n", + "\\'", + " ", + "\\n", + "1", + "0)", + "('$1', $2, '$3', '$4', $5)", + "($1, '$2', '$3', '$4', $5)", + "\\n", + "<", + "\"", + "'", + "\\n", + " ", + "\n$1\n$2\n$3\n$4\n$5\n", + "\\", + "revision", + "", + "\n\t\n\t\t\n\t\t\\1.png\n\t\t\n\t\t\n\t\n", + "\n\t\n\t\t\n\t\t\\0.png\n\t\t\n\t\t\n\t\n", + "", + "revision", + "revisions", + "field", + "section", + "form", + "item", + "umlautEscape(\\1" + ], + "reverse": false, + "show_context": true, + "use_buffer2": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "selected": 3, + "sheets": + [ + { + "buffer": 0, + "file": "index.html", + "semi_transient": false, + "settings": + { + "buffer_size": 1664, + "regions": + { + }, + "selection": + [ + [ + 692, + 692 + ], + [ + 1058, + 1058 + ] + ], + "settings": + { + "incomplete_sync": null, + "syntax": "Packages/HTML/HTML.sublime-syntax" + }, + "translation.x": 0.0, + "translation.y": 96.0, + "zoom_level": 1.0 + }, + "stack_index": 1, + "type": "text" + }, + { + "buffer": 1, + "file": "text.js", + "semi_transient": false, + "settings": + { + "buffer_size": 276, + "regions": + { + }, + "selection": + [ + [ + 264, + 264 + ] + ], + "settings": + { + "incomplete_sync": null, + "syntax": "Packages/JavaScript/JavaScript.sublime-syntax" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 2, + "type": "text" + }, + { + "buffer": 2, + "file": "confetti.js", + "semi_transient": false, + "settings": + { + "buffer_size": 10888, + "regions": + { + }, + "selection": + [ + [ + 5665, + 5665 + ] + ], + "settings": + { + "incomplete_sync": null, + "syntax": "Packages/JavaScript/JavaScript.sublime-syntax", + "tab_size": 4, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 3551.0, + "zoom_level": 1.0 + }, + "stack_index": 3, + "type": "text" + }, + { + "buffer": 3, + "file": "style.css", + "semi_transient": false, + "settings": + { + "buffer_size": 2483, + "regions": + { + }, + "selection": + [ + [ + 365, + 365 + ] + ], + "settings": + { + "auto_name": "# style.css", + "incomplete_sync": null, + "syntax": "Packages/CSS/CSS.sublime-syntax" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 28.0 + }, + "input": + { + "height": 34.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 1 + ] + ], + "cols": + [ + 0.0, + 1.0 + ], + "rows": + [ + 0.0, + 1.0 + ] + }, + "menu_visible": true, + "output.doc": + { + "height": 0.0 + }, + "output.exec": + { + "height": 252.0 + }, + "output.find_results": + { + "height": 0.0 + }, + "output.sftp": + { + "height": 118.0 + }, + "pinned_build_system": "Packages/Python/Python.sublime-build", + "project": "sublime.sublime-project", + "replace": + { + "height": 62.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "select_project": + { + "height": 500.0, + "last_filter": "", + "selected_items": + [ + [ + "", + "C:\\Users\\seedorf_s1\\Documents\\repos\\studymanagement-backend\\project.sublime-project" + ] + ], + "width": 679.0 + }, + "select_symbol": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + ], + "width": 0.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": true, + "show_open_files": false, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 240.0, + "status_bar_visible": true, + "template_settings": + { + } +} diff --git a/text.js b/text.js new file mode 100644 index 0000000..2cb0883 --- /dev/null +++ b/text.js @@ -0,0 +1,8 @@ +setTimeout(() => { + var text = document.getElementById('text'); + text.style.visibility = null; + var circle = document.getElementById('circle'); + circle.style.visibility = 'hidden'; + var number = document.getElementById('number'); + number.style.visibility = 'hidden'; +}, 4000); \ No newline at end of file