UNPKG

ngx-party-parrots

Version:
74 lines 5.54 kB
/** * @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=