ngx-party-parrots
Version:
This gonna be easter egg library
74 lines • 5.54 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, EventEmitter, HostListener, Output } from '@angular/core';
export class CodeDetectorComponent {
constructor() {
this.codeProvided = new EventEmitter();
this.ppCode = ['p', 'a', 'r', 'r', 'o', 't'];
this.ppCodePosition = 0;
this.allowedKeys = {
'o': 'o',
'p': 'p',
'r': 'r',
't': 't',
'a': 'a',
};
}
/**
* @param {?} event
* @return {?}
*/
handleKeyboardEvent(event) {
// get the value of the key code from the key map
/** @type {?} */
const key = this.allowedKeys[event.key];
// get the value of the required key from the konami code
/** @type {?} */
const requiredKey = this.ppCode[this.ppCodePosition];
// compare the key with the required key
if (key === requiredKey) {
// move to the next key in the konami code sequence
this.ppCodePosition++;
// if the last key is reached, activate cheats
if (this.ppCodePosition === this.ppCode.length) {
this.codeProvided.emit();
this.ppCodePosition = 0;
}
}
else {
this.ppCodePosition = 0;
}
}
}
CodeDetectorComponent.decorators = [
{ type: Component, args: [{
selector: 'ngx-pp-code-detector',
template: ''
}] }
];
CodeDetectorComponent.propDecorators = {
codeProvided: [{ type: Output }],
handleKeyboardEvent: [{ type: HostListener, args: ['document:keydown', ['$event'],] }]
};
if (false) {
/** @type {?} */
CodeDetectorComponent.prototype.codeProvided;
/**
* @type {?}
* @private
*/
CodeDetectorComponent.prototype.ppCode;
/**
* @type {?}
* @private
*/
CodeDetectorComponent.prototype.ppCodePosition;
/**
* @type {?}
* @private
*/
CodeDetectorComponent.prototype.allowedKeys;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1kZXRlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtcGFydHktcGFycm90cy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvZGUtZGV0ZWN0b3IvY29kZS1kZXRlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPOUUsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU9ZLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMxQyxXQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLGdCQUFXLEdBQUc7WUFDcEIsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztZQUNSLEdBQUcsRUFBRSxHQUFHO1lBQ1IsR0FBRyxFQUFFLEdBQUc7WUFDUixHQUFHLEVBQUUsR0FBRztTQUNULENBQUM7SUEyQkosQ0FBQzs7Ozs7SUF2QkMsbUJBQW1CLENBQUMsS0FBb0I7OztjQUVoQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDOzs7Y0FHakMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVwRCx3Q0FBd0M7UUFDeEMsSUFBSSxHQUFHLEtBQUssV0FBVyxFQUFFO1lBRXZCLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdEIsOENBQThDO1lBQzlDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7YUFDekI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDOzs7WUF6Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFFBQVEsRUFBRSxFQUFFO2FBRWI7OzsyQkFHRSxNQUFNO2tDQVlOLFlBQVksU0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7OztJQVo1Qyw2Q0FBa0Q7Ozs7O0lBQ2xELHVDQUEyQzs7Ozs7SUFDM0MsK0NBQTJCOzs7OztJQUMzQiw0Q0FNRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtcHAtY29kZS1kZXRlY3RvcicsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBDb2RlRGV0ZWN0b3JDb21wb25lbnQge1xuXG4gIEBPdXRwdXQoKSBjb2RlUHJvdmlkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bGw+KCk7XG4gIHByaXZhdGUgcHBDb2RlID0gWydwJywnYScsJ3InLCdyJywnbycsJ3QnXTtcbiAgcHJpdmF0ZSBwcENvZGVQb3NpdGlvbiA9IDA7XG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSB7XG4gICAgJ28nOiAnbycsXG4gICAgJ3AnOiAncCcsXG4gICAgJ3InOiAncicsXG4gICAgJ3QnOiAndCcsXG4gICAgJ2EnOiAnYScsXG4gIH07XG5cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIC8vIGdldCB0aGUgdmFsdWUgb2YgdGhlIGtleSBjb2RlIGZyb20gdGhlIGtleSBtYXBcbiAgICBjb25zdCBrZXkgPSB0aGlzLmFsbG93ZWRLZXlzW2V2ZW50LmtleV07XG5cbiAgICAvLyBnZXQgdGhlIHZhbHVlIG9mIHRoZSByZXF1aXJlZCBrZXkgZnJvbSB0aGUga29uYW1pIGNvZGVcbiAgICBjb25zdCByZXF1aXJlZEtleSA9IHRoaXMucHBDb2RlW3RoaXMucHBDb2RlUG9zaXRpb25dO1xuXG4gICAgLy8gY29tcGFyZSB0aGUga2V5IHdpdGggdGhlIHJlcXVpcmVkIGtleVxuICAgIGlmIChrZXkgPT09IHJlcXVpcmVkS2V5KSB7XG5cbiAgICAgIC8vIG1vdmUgdG8gdGhlIG5leHQga2V5IGluIHRoZSBrb25hbWkgY29kZSBzZXF1ZW5jZVxuICAgICAgdGhpcy5wcENvZGVQb3NpdGlvbisrO1xuXG4gICAgICAvLyBpZiB0aGUgbGFzdCBrZXkgaXMgcmVhY2hlZCwgYWN0aXZhdGUgY2hlYXRzXG4gICAgICBpZiAodGhpcy5wcENvZGVQb3NpdGlvbiA9PT0gdGhpcy5wcENvZGUubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY29kZVByb3ZpZGVkLmVtaXQoKTtcbiAgICAgICAgdGhpcy5wcENvZGVQb3NpdGlvbiA9IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHBDb2RlUG9zaXRpb24gPSAwO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=