konamimojisplosion
Version:
Connects konami-code-js to emojisplosion for a glorious easter egg.
2 lines โข 11.7 kB
JavaScript
/*! For license information please see global.js.LICENSE.txt */
(()=>{var e={306:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmojiActor=void 0;const o=n(169),i=n(993);t.EmojiActor=class{constructor(e){this.opacity=1,this.element=document.createElement(e.tagName),this.element.className=e.className,this.element.style.transition="16ms opacity, 16ms transform",this.element.textContent=i.randomArrayMember(e.emojis),this.element.setAttribute("aria-label","Random emoji"),this.element.setAttribute("role","img"),this.element.style.fontSize=`${o.randomInRange(e.physics.fontSize)}px`,this.physics=e.physics,this.position={rotation:o.randomInRange(e.physics.rotation),x:e.position.x,y:e.position.y},this.velocity={rotation:o.randomInRange(e.physics.initialVelocities.rotation),x:o.randomInRange(e.physics.initialVelocities.x),y:o.randomInRange(e.physics.initialVelocities.y)},this.updateElement(),e.process(this.element),e.container.appendChild(this.element)}act(e){if(this.physics.opacityDecay&&(this.opacity-=e/(this.physics.opacityDecay*this.physics.framerate),this.opacity<=0))return!0;this.velocity.rotation*=this.physics.rotationDeceleration,this.velocity.y+=this.physics.gravity,this.position.rotation+=this.velocity.rotation,this.position.x+=this.velocity.x*e/this.physics.framerate,this.position.y+=this.velocity.y*e/this.physics.framerate;const t=window.outerHeight||document.documentElement.clientHeight,n=window.outerWidth||document.documentElement.clientWidth;if(!this.physics.preserveOutOfBounds){if(this.position.y-this.element.clientHeight>t+350)return!0;if(this.position.y+this.element.clientHeight<-350)return!0;if(this.position.x-this.element.clientWidth>n+350)return!0;if(this.position.x+this.element.clientWidth<-350)return!0}return this.updateElement(),!1}dispose(){null!==this.element.parentElement&&this.element.parentElement.removeChild(this.element)}updateElement(){this.element.style.opacity=`${this.opacity}`,this.element.style.transform=`translate(${this.position.x}px, ${this.position.y}px) rotate(${Math.round(this.position.rotation)}deg)`}}},124:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Animator=void 0,t.Animator=class{constructor(){this.actors=[],this.tick=e=>{const t=e-this.previousTime;for(let e=0;e<this.actors.length;e+=1){const n=this.actors[e];n.act(t)&&(n.dispose(),this.actors.splice(e,1),e-=1)}0!==this.actors.length&&(this.previousTime=e,requestAnimationFrame(this.tick))}}add(e){this.actors.push(e)}start(){return this.previousTime=performance.now(),requestAnimationFrame(this.tick),this}}},34:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.defaultEmojis=void 0,t.defaultEmojis=["๐","๐","๐คฃ","๐","๐
","๐","๐","๐คฉ","๐","๐ค","๐","๐ญ","๐ฑ","๐ค","๐ป","๐","๐","๐","๐","๐","๐ช","๐","๐","๐","๐","๐","๐","๐งก","๐","๐","๐","๐","๐","โ","๐ฅ","๐ฅ","โจ","โจ","๐","๐","๐ฏ","๐ฏ"]},185:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.emojisplosion=t.defaultTagName=t.defaultPosition=t.defaultPhysics=t.defaultEmojiCount=t.defaultCreateContainer=t.defaultClassName=void 0;const o=n(306),i=n(124),s=n(34),a=n(101),r=n(993);t.defaultClassName="emoji-styles",t.defaultCreateContainer=(()=>{let e;return()=>((null==e?void 0:e.parentNode)===document.body||(e=document.createElement("div"),document.body.prepend(e)),e)})(),t.defaultEmojiCount=()=>Math.floor(14*Math.random())+14,t.defaultPhysics={fontSize:{max:28,min:14},framerate:60,gravity:.35,initialVelocities:{rotation:{max:7,min:-7},x:{max:7,min:-7},y:{max:-7,min:-21}},preserveOutOfBounds:!1,rotation:{max:45,min:-45},rotationDeceleration:.98},t.defaultPosition=()=>({x:Math.random()*innerWidth,y:Math.random()*innerHeight});const u=()=>{};t.defaultTagName="span",t.emojisplosion=(e={})=>{const{animator:n=(new i.Animator).start(),className:c=t.defaultClassName,container:l=t.defaultCreateContainer,emojiCount:d=t.defaultEmojiCount,emojis:h=s.defaultEmojis,position:m=t.defaultPosition,process:p=u,tagName:f=t.defaultTagName,uniqueness:b=1/0}=e;a.createStyleElementAndClass(c);const y=Object.assign(Object.assign(Object.assign({},t.defaultPhysics),e.physics),{initialVelocities:Object.assign(Object.assign({},t.defaultPhysics.initialVelocities),void 0!==e.physics?e.physics.initialVelocities:{})}),C={className:c,container:r.obtainValue(l),emojis:r.shuffleArray(r.obtainValue(h)).slice(0,r.obtainValue(b)),physics:y,position:r.obtainValue(m),process:p,tagName:r.obtainValue(f)},v=r.obtainValue(d);for(let e=0;e<v;e+=1)n.add(new o.EmojiActor(C));return n}},946:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.emojisplosions=void 0;const o=n(185),i=n(993),s=()=>700+Math.floor(1401*Math.random());t.emojisplosions=(e={})=>{const{interval:t=s,scheduler:n=setTimeout}=e;let a=!1;const r=()=>o.emojisplosion(e),u=()=>{a||("visible"===document.visibilityState&&r(),n(u,i.obtainValue(t)))};return n(u,0),{blast:r,cancel(){a=!0}}}},125:function(e,t,n){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||t.hasOwnProperty(n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(34),t),i(n(185),t),i(n(946),t)},169:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomInRange=void 0,t.randomInRange=e=>"number"==typeof e?e:Math.floor(Math.random()*(e.max-e.min+1))+e.min},101:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createStyleElementAndClass=void 0;const n=new Set;t.createStyleElementAndClass=e=>{if(n.has(e))return;n.add(e);const t=document.createElement("style");t.type="text/css",t.appendChild(document.createTextNode(`\n .${e} {\n cursor: default;\n margin-left: -1em;\n margin-top: -1em;\n position: fixed;\n user-select: none;\n z-index: 2147483647;\n }\n `)),document.head.appendChild(t)}},993:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shuffleArray=t.randomArrayMember=t.obtainValue=void 0,t.obtainValue=e=>"function"==typeof e?e():e,t.randomArrayMember=e=>e[Math.floor(Math.random()*e.length)],t.shuffleArray=e=>{const t=e.slice();for(let e=t.length-1;e>0;e-=1){const n=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[n],t[n]=o}return t}},269:function(e,t,n){var o,i,s,a,r;s=function e(t){var n=this,o={},i=e;i.getNumberOfInstance=function(){return i._numberOfInstance},n.enable=function(){return o.listenCodeCharSequence(),o.listenCodeGestureSequence(),o.debug&&o.debug("Listener enabled for all."),n},n.enableKeyboardKeys=function(){return o.listenCodeCharSequence(),o.debug&&o.debug("Listener enabled for Keyboard Keys."),n},n.enableTouchGesture=function(){return o.listenCodeGestureSequence(),o.debug&&o.debug("Listener enabled for Touch Gesture."),n},n.disable=function(){return o.stopCodeCharSequence(),o.stopCodeGestureSequence(),o.debug&&o.debug("Listener disabled for all."),n},n.disableKeyboardKeys=function(){return o.stopCodeCharSequence(),o.debug&&o.debug("Listener disabled for Keyboard Keys."),n},n.disableTouchGesture=function(){return o.stopCodeGestureSequence(),o.debug&&o.debug("Listener disabled for Touch Gesture."),n},n.setListener=function(e){return o.stopCodeCharSequence(),o.stopCodeGestureSequence(),o.listener=e||document,o.listenCodeCharSequence(),o.listenCodeGestureSequence(),o.debug&&o.debug("Listener changed.",e),n},n.setCallback=function(e){return o.afterCodeSequenceCallback="function"==typeof e&&e||o.defaultCallback,o.debug&&o.debug("Callback changed.",e),n},n.setOptions=function(e){return o.initOptions(e),n},o.keptLastCodeChar=function(){o.input.length>o.konamiCodeChar.length&&(o.input=o.input.substr(o.input.length-o.konamiCodeChar.length))},o.defaultCallback=function(){o.debug&&o.debug("Konami Code Sequence Entered. There is no action defined.")},o.checkIfCodeCharIsValid=function(){o.input===o.konamiCodeChar&&o.afterCodeSequenceCallback(n)},o.codeSequenceEventKeyDown=function(e){o.input+=e.keyCode,o.keptLastCodeChar(),o.checkIfCodeCharIsValid()},o.codeSequenceEventTouchMove=function(e){var t;1===e.touches.length&&!0===o.capture&&(t=e.touches[0],o.stopX=t.pageX,o.stopY=t.pageY,o.tap=!1,o.capture=!1,o.checkIfCodeGestureIsValid())},o.codeSequenceEventTouchEnd=function(){!0===o.tap&&o.checkIfCodeGestureIsValid()},o.codeSequenceEventTouchStart=function(e){o.startX=e.changedTouches[0].pageX,o.startY=e.changedTouches[0].pageY,o.tap=!0,o.capture=!0},o.stopCodeCharSequence=function(){o.listener.removeEventListener("keydown",o.codeSequenceEventKeyDown)},o.stopCodeGestureSequence=function(){o.listener.removeEventListener("touchstart",o.codeSequenceEventTouchStart),o.listener.removeEventListener("touchmove",o.codeSequenceEventTouchMove),o.listener.removeEventListener("touchend",o.codeSequenceEventTouchEnd)},o.listenCodeCharSequence=function(){o.stopCodeCharSequence(),o.listener.addEventListener("keydown",o.codeSequenceEventKeyDown)},o.listenCodeGestureSequence=function(){o.originalCodeGesture=o.konamiCodeGesture,o.stopCodeGestureSequence(),o.listener.addEventListener("touchstart",o.codeSequenceEventTouchStart),o.listener.addEventListener("touchmove",o.codeSequenceEventTouchMove),o.listener.addEventListener("touchend",o.codeSequenceEventTouchEnd,!1)},o.checkIfCodeGestureIsValid=function(){var e=Math.abs(o.startX-o.stopX),t=Math.abs(o.startY-o.stopY),i=o.startX-o.stopX<0?"rt":"lt",s=o.startY-o.stopY<0?"dn":"up",a=e>t?i:s;(a=!0===o.tap?"tp":a)===o.konamiCodeGesture.substr(0,2)?o.konamiCodeGesture=o.konamiCodeGesture.substr(2,o.konamiCodeGesture.length-2):o.konamiCodeGesture=o.originalCodeGesture,0===o.konamiCodeGesture.length&&(o.konamiCodeGesture=o.originalCodeGesture,o.afterCodeSequenceCallback(n))},o.checkDebugMode=function(e){e&&!0===e.debug?(o.debug=function(e,t){void 0!==t?console.log(e,t):console.log(e)},o.debug&&o.debug("Debug Mode On.")):o.debug=!1},o.initOptions=function(e){o.checkDebugMode(e),o.listener=e&&e.listener||document,o.afterCodeSequenceCallback="function"==typeof e&&e||e&&"function"==typeof e.callback&&e.callback||o.defaultCallback},o.init=function(){o.input="",o.konamiCodeChar="38384040373937396665",o.konamiCodeGesture="upupdndnltrtltrttptp",o.startX=0,o.startY=0,o.stopX=0,o.stopY=0,o.tap=!1,o.capture=!1,i._numberOfInstance=i._numberOfInstance?i._numberOfInstance+1:1,o.initOptions(t),o.listenCodeCharSequence(),o.listenCodeGestureSequence()},o.init()},a=(i=this).KonamiCode,(r=i.KonamiCode=s).noConflict=function(){return i.KonamiCode=a,r},void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o),e.exports&&(e.exports=s)},231:function(e,t,n){"use strict";var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.initializeKonamimojisplosion=void 0;const i=n(125),s=o(n(269));t.initializeKonamimojisplosion=e=>{let t;const n=new s.default((()=>{t?(t.cancel(),t=void 0):(t=(0,i.emojisplosions)(),null==e||e())}));return()=>{null==t||t.cancel(),n.disable()}}}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o].call(s.exports,s,s.exports,n),s.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";(0,n(231).initializeKonamimojisplosion)()})()})();