# ngxyz-konami

> * Inspired by original Konami Cheat Codes * You can also use it to Show/Hide features in your production website. * You can use localstorage in combination and preserve the state of Showing/Hiding that feature, once revealed.

Latest version **2.0.0** (published 2019-12-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install ngxyz-konami
pnpm add ngxyz-konami
yarn add ngxyz-konami
bun add ngxyz-konami
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.0 |
| Published | 2019-12-19 |
| First published | 2019-12-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 27.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Maintainers | dabalyan |
| Keywords | angular, javascript, typescript, angular-library, angular-module, konami, konamicode, konamicodes, cheat, cheatcode, cheatcodes, keyboard, keyboardshortcut, easter, easteregg |

## Links

- npm: https://www.npmjs.com/package/ngxyz-konami
- Repository: https://github.com/dabalyan/ngxyz/tree/master/projects/ngxyz-konami
- Homepage: https://ngxyz.github.io/#ngxyz-konami
- npm.io page: https://npm.io/package/ngxyz-konami

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 2.0.0 (latest) — 2019-12-19
- 1.2.0 — 2019-12-14
- 1.1.0 — 2019-12-08
- 1.0.0 — 2019-12-07
- 0.0.2 — 2019-12-03

## README

# ngXYZ-Konami [![npm version](https://badge.fury.io/js/ngxyz-konami.svg)](https://www.npmjs.com/package/ngxyz-konami)

##An Angular Module to add Konami Codes (Cheat Codes / Easter Eggs) to your Angular App
 * Inspired by original Konami Cheat Codes
 * You can also use it to Show/Hide features in your production website.
 * You can use localstorage in combination and preserve the state of Showing/Hiding that feature, once revealed.

Basically, provided a code like "HELLO" and a Callback function. When the user types "HELLO"
, the callback function will be called. You can do whatever you want in that callback.

## Setup
    npm i ngxyz-konami
    
## Usage
- Well, first you gotta import **NgxyzKonamiModule** into your **AppModule** (or any other Module where you intend to use it)
```typescript
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';

import {NgxyzKonamiModule} from 'ngxyz-konami';

@NgModule({
  declarations: [
    // your components, directives, pipes
  ],
  imports: [
    BrowserModule,

    NgxyzKonamiModule // this module officer, right here
  ],
  providers: [],
  bootstrap: [AppComponent] // your bootstrapped component
})
export class AppModule {
}
```

Inject the Service
```typescript
import {NgxyzKonamiService} from 'ngxyz-konami';

// inject the service
constructor(private konamiService: NgxyzKonamiService) {
}
```

Simplest usage, a cheat when triggered shows the message in a message-dialog.
```typescript
// register a cheat
this.konamiService.addCheat({code: 'hello', message: 'Say Hello Back'});
// now click in an empty space, and type 'hello' without the quotes.
```

A cheat with callback, once triggered the callback will be called
```typescript
// register a cheat
this.konamiService.addCheat({code: 'hello', action: () => {alert('A different kind of hello.')}});
// now click in an empty space, and type 'hello' without the quotes.
```

Configure it in one go, register all the cheats at once.
```typescript
// configure the service, all of this is optional, every option is optional
this.konamiService.configure({
    activationCode: 'ActivateKonamiServiceWhenThisIsTyped', // none of the cheats will be triggered before this
    deactivationCode: 'DeactivateKonamiServiceWhenThisIsTyped',  // none of the cheats will be triggered after this
    logEvents: true, // this will let you know when a cheat gets triggered in the browser console
    showMessages: true, // by default it's true, all cheats with message will show the message-dialog once triggered
    ignoreFormElements: true, // now cheats will be triggered even if you are filling up a form
    cheats: [{
        code: 'hello',
        message: 'Hey There'
    },
    {
        code: 'bye',
        message: 'Sayonara my friend, see you later.'
    },
    {
        code: 'youtubeTime',
        action: () => {
            // now we youtube, don't resist
            location.href="//youtube.com"
        }
    }]
});
// now click in an empty space, and type a code eg: 'bye' without the quotes.
```

Remove an already registered cheat.
```typescript
this.konamiService.removeCheat('youtubeTime');
```

Get the original, already registered cheat.
```typescript
this.konamiService.getCheat('youtubeTime');
```

Remove all the registered cheats.
```typescript
this.konamiService.clearCheats();
```

Disable KonamiService manually.
```typescript
this.konamiService.disable();
```

Enable KonamiService manually.
```typescript
this.konamiService.enable();
```

# For Contributors / Tinkerers
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.

## Code scaffolding

Run `ng generate component component-name --project ngxyz-konami` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngxyz-konami`.
> Note: Don't forget to add `--project ngxyz-konami` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build ngxyz-konami` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build ngxyz-konami`, go to the dist folder `cd dist/ngxyz-konami` and run `npm publish`.

## Running unit tests

Run `ng test ngxyz-konami` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

---
_Source: https://npm.io/package/ngxyz-konami · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
