ngEgg Demo

Demonstration of ngEgg by Scriptwerx.

HTML

<!-- Forgive the quick and dirty DOM -->
<div data-ng-app="EasterEggApp">
    
    <section data-ng-controller="EggController as eggTest">

        <!-- EASTER EGG -->
        <section data-ng-egg data-ng-model="eggTest.notifications.eggActivated" data-keycode="up,up,down,down">
            YOU FOUND THE EGG!
        </section>

        <!-- ACTUAL CONTENT (hidden when egg is activated) -->
        <section data-ng-if="!eggTest.notifications.eggActivated">
            <h1>WELCOME TO MY APP</h1>
            
            <form name="myForm" data-ng-submit="eggTest.submitUserData()">
            
                <label for="item1">Item 1</label>
                <input id="item1" type="text" data-ng-model="eggTest.userData.item1" />

                <br/><br/>

                <label for="item2">Item 2</label>
                <input id="item2" type="text" data-ng-model="eggTest.userData.item2" />
                
                <br/><br/>

                <label for="item3">Item 3</label>
                <textarea id="item3" type="text" data-ng-model="eggTest.userData.item3"></textarea>
                
                <br/><br/>
                
                <button type="submit">Submit</button>
            
            </form>
            
            <p data-ng-bind="eggTest.notifications.submittedData"></p>
                
        </section>

        <br/>
        
        <p data-ng-bind="'Egg active: ' + eggTest.notifications.eggActivated"></p>
        
        <br/>
        
        <p><a href="https://github.com/scriptwerx/angular-egg">GitHub Link</a></p>

    </section>
    
</div>

JavaScript

/**
 * angular-egg - An AngularJS Directive implementation of egg.js by Mike Flynn
 * @author Paul Massey, [email protected]
 * @version v0.0.5
 * @build 22 - Wed Sep 16 2015 15:43:06 GMT+0100 (BST)
 * @link http://www.scriptwerx.io
 * @license https://github.com/scriptwerx/ngEgg/blob/master/LICENSE
 */
!function(e){"use strict";function t(e){var t={up:38,down:40,left:37,right:39,enter:13,space:32,ctrl:7,alt:8,tab:9},n=Object.keys(t);e=e.split(",").map(function(e){return e.trim()});var i=e.map(function(e){return isNaN(parseInt(e,10))?n.indexOf(e)>-1?t[e]:e.charCodeAt(0):e});return i.join(",")}function n(e){function n(n,u,c,f){function l(e){var t,i=e.which,c=i>=65&&90>=i;if(!("keydown"!==e.type||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)){var l=e.target.tagName;if(("HTML"===l||"BODY"===l)&&c)return void e.preventDefault()}if("keyup"===e.type)if(c&&!e.shiftKey&&(i+=32),-1===r.indexOf(i)&&o.push(i),t=o.toString().indexOf(a)>=0)o=[],u.css("display","block"),n.$apply(function(){f.$setViewValue(!0)});else if(o.length>10){var s=o.toString(),d=a.split(",")[0];d&&-1!==s.indexOf(d)?(s=s.substr(s.indexOf(d)),s.length>a.length&&(o=[])):o=[]}}f.$setViewValue(!1),u.css("display","none"),a=t(c.keycode?c.keycode:i),e.on("keydown",l),e.on("keyup",l)}var a,o=[];return{restrict:"EA",require:"^ngModel",scope:!0,link:n}}var i="38,up,40,down,left,right,left,right,b,a",r=[16];n.$inject=["$document"],e.module("ngEgg",[]).directive("ngEgg",n)}(window.angular);
//# sourceMappingURL=angular-egg.min.js.map

// Forgive the quick and dirty code
(function(angular) {

  'use strict';
  
    function EggController() {
        
        var vm = this;
        
        vm.notifications = {
            eggActivated: false,
            submittedData: void 0
        };
        
        vm.userData = {
            item1: void 0,
            item2: void 0,
            item3: void 0
        };
        
        vm.submitUserData = function() {
          vm.notifications.submittedData =...