Skip to content

Commit

Permalink
Merge pull request #17 from webdevnerdstuff/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
webdevnerdstuff authored Jan 17, 2024
2 parents 129aa11 + 7c6ba41 commit a3d9346
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 218 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
# Change Log
All notable changes to the "vue3-easter-egg-trigger" plugin will be documented in this file.

## v3.0.1
2024-01-17
[main] (@webdevnerdstuff)
* README and CHANGELOG updates

## v3.0.0
2024-01-17
[main] (@webdevnerdstuff)
* Updating typescript support
* Refactoring
* Updating packages
* Moving V3 version to this repo

## v1.0.2
2023-07-20
[main] (@webdevnerdstuff)
Expand Down
235 changes: 23 additions & 212 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,246 +1,57 @@

<p align="center">
<img alt="Vue Logo" width="100" src="https://webdevnerdstuff.github.io/vue3-easter-egg-trigger/vue.svg">
<img alt="Egg" width="100" src="https://raw.githubusercontent.com/webdevnerdstuff/vue-easter-egg-trigger/main/src/assets/egg.png">
</p>

<p>
<h1 align="center">Vue 3 Easter Egg Trigger</h1>
<h1 align="center">Vue Easter Egg Trigger</h1>
</p>

<p align="center">
<a href="https://www.npmjs.com/package/vue3-easter-egg-trigger">
<img src="https://img.shields.io/npm/v/vue3-easter-egg-trigger?color=1867c0&logo=npm" alt="NPM Package">
<a href="https://www.npmjs.com/package/@wdns/vue-easter-egg-trigger">
<img src="https://img.shields.io/npm/v/%40wdns/vue-easter-egg-trigger?color=1867c0&logo=npm" alt="NPM Package">
</a>
&nbsp;
<a href="https://github.com/webdevnerdstuff/vue3-easter-egg-trigger">
<a href="https://github.com/webdevnerdstuff/vue-easter-egg-trigger">
<img src="https://img.shields.io/badge/GitHub-WebDevNerdStuff-brightgreen.svg?logo=github" alt="@WebDevNerdStuff">
</a>
</p>

## Description

The `vue3-easter-egg-trigger` component makes it nice and easy to add Easter Egg triggers to your Vue site. Also available for Vue 2 at [vue2-easter-egg-trigger](https://github.com/webdevnerdstuff/vue-easter-egg-trigger).

## Installation
#### pnpm
```
pnpm add vue3-easter-egg-trigger
```
#### npm
```
npm i vue3-easter-egg-trigger
```

## Register
#### As Plugin (Global)
```javascript
import { createApp } from 'vue';
import EasterEggTrigger from 'vue3-easter-egg-trigger';
## Description

createApp()
.use(EasterEggTrigger)
.mount('#app');
```

#### As Component (Global)
```javascript
import { createApp } from 'vue';
import EasterEggTrigger from 'vue3-easter-egg-trigger';
Presenting the Vue Easter Egg Trigger, a tool that discreetly injects a touch of unexpectedness into Vue.js projects. This unassuming plugin, which operates on both keystrokes (with click events also available), brings hidden surprises to your applications.

Picture users navigating through your Vue.js application, tapping out secret combinations akin to the infamous <a :href="links.konamiCode" target="_blank">Konami code</a>. Suddenly, a magical farting unicorn appears. While we must issue a PSA that this majestic creature isn't included, the plugin serves as an invitation for developers to infuse similar unexpected elements into their projects.

createApp()
.component('EasterEggTrigger', EasterEggTrigger)
.mount('#app');
```

#### As Component (Local)
##### Composition API
```javascript
<script setup>
import { EasterEggTrigger } from 'vue3-easter-egg-trigger';

function easterEggTriggered() {
// ...do something
}
</script>

<template>
<EasterEggTrigger @triggered="easterEggTriggered" />
</template>
```
## Installation

```javascript
<script>
import { EasterEggTrigger } from 'vue3-easter-egg-trigger';

export default {
components: {
EasterEggTrigger,
},
setup() {
function easterEggTriggered() {
// ...do something
}

return {
easterEggTriggered,
};
},
};
</script>

<template>
<EasterEggTrigger @triggered="easterEggTriggered" />
</template>

Using [pnpm](https://pnpm.io/):
```
##### Options API
```javascript
<script>
import { EasterEggTrigger } from 'vue3-easter-egg-trigger';

export default {
components: {
EasterEggTrigger,
},
data() {
return {};
},
methods: {
easterEggTriggered() {
// ...do something
},
},
};
</script>

<template>
<EasterEggTrigger @triggered="easterEggTriggered" />
</template>;
pnpm add @wdns/vue-easter-egg-trigger
```
## Usage

#### Demo
See it in action on the [Demo Page](https://webdevnerdstuff.github.io/vue3-easter-egg-trigger)

### Plugin Props

Name | Type | Default | Description
:----- | :------ | :----- | :-----
callback | Function | null | The callback function
delay | String, Integer | 500 | Determines the timeout before the event listener resets. The longer the delay, the more time a user has to complete the pattern.
pattern | Array | ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'] | The key/click combination a user does to trigger easter egg. The default combination is the konami code.
target | String | body | Use this to target DOM elements, Id's, or Class Names. Used with click events.
type | String | keydown | The type of action the trigger will be listening for. Available options: `keydown`, `keyup`, `click`, `dblclick`, `mouseup`, `mousedown`

### Events

Name | Type | Description
:----- | :------ | :-----
triggered | [MouseEvent, KeyboardEvent] | Emitted when the easter egg is triggered.

## Keyboard Event Examples

The default key combination to trigger the easter egg is the [Konami Code](https://en.wikipedia.org/wiki/Konami_Code).

ex. &#x2191; &#x2191; &#x2193; &#x2193; &#x2190; &#x2192; &#x2190; &#x2192; b a

##### Bare Egg Example.


```html
<EasterEggTrigger @triggered="easterEggTriggered" />
```

##### Custom Pattern

```html
<EasterEggTrigger
:pattern="['m', 'a', 'g', 'i', 'c']"
@triggered="easterEggTriggered"
/>
Using npm:
```

##### Delay (longer time to complete pattern)
```html
<EasterEggTrigger
delay="5000"
@triggered="easterEggTriggered"
/>
npm i @wdns/vue-easter-egg-trigger
```

##### Callback
## Documentation

[Documentation & Demo](https://webdevnerdstuff.github.io/vue-easter-egg-trigger/)

```html
<EasterEggTrigger :callback="easterEggTriggered" />
```

## Mouse Event Examples

First you will need to set the type prop.
## Dependencies

Available types of Mouse Events: `click`, `dblclick`, `mouseup`, `mousedown`.
When using `dblclick` the pattern will only work with one double click. Ex. pattern: `['dblclick']`
[Vue 3](https://vuejs.org/)
[Lodash](https://vueuse.org/)

```html
<EasterEggTrigger
:pattern="['click']"
target="#id-target"
type="click"
@triggered="easterEggTriggered"
/>
```

#### Multiple clicks required
```html
<EasterEggTrigger
:pattern="['click', 'click']"
target="#id-target"
type="click"
@triggered="easterEggTriggered"
/>
```

##### DOM element target

```html
<EasterEggTrigger
:pattern="['click']"
target="h1"
type="click"
@triggered="easterEggTriggered"
/>
```

##### ID target

```html
<EasterEggTrigger
:pattern="['click']"
target="#id-target"
type="click"
@triggered="easterEggTriggered"
/>
```
## Change Log

##### Class target
[CHANGELOG](https://github.com/webdevnerdstuff/vue-easter-egg-trigger/blob/main/CHANGELOG.md)

```html
<EasterEggTrigger
:pattern="['click']"
target=".double-click-target"
type="click"
@triggered="easterEggTriggered"
/>
```

## Change Log

[CHANGELOG](https://github.com/webdevnerdstuff/vue3-easter-egg-trigger/blob/main/CHANGELOG.md)

## License

Copyright (c) 2022 WebDevNerdStuff
Licensed under the MIT license.

[![GitHub license](https://img.shields.io/github/license/webdevnerdstuff/vue3-easter-egg-trigger)](https://github.com/webdevnerdstuff/vue3-easter-egg-trigger/blob/main/LICENSE.md) [![@WebDevNerdStuff](https://img.shields.io/badge/github-webdevnerdstuff-brightgreen.svg)](https://github.com/webdevnerdstuff)
Copyright (c) 2024 WebDevNerdStuff
Licensed under the [MIT license](https://github.com/webdevnerdstuff/vue-easter-egg-trigger/blob/main/LICENSE.md).
4 changes: 2 additions & 2 deletions dist/vue-easter-egg-trigger.cjs.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions dist/vue-easter-egg-trigger.es.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { defineComponent as D, inject as O, reactive as l, watchEffect as R, onM
import { includes as m, isEqual as U, uniq as E } from "lodash";
/**
* @name @wdns/vue-easter-egg-trigger
* @version 3.0.0
* @description This packages makes it nice and easy to add Easter Egg triggers to your Vue site.
* @version 3.0.1
* @description Presenting the Vue Easter Egg Trigger, a tool that discreetly injects a touch of unexpectedness into Vue.js projects. This unassuming plugin, which operates on both keystrokes (with click events also available), brings hidden surprises to your applications.
* @author WebDevNerdStuff & Bunnies... lots and lots of bunnies! <webdevnerdstuff@gmail.com> (https://webdevnerdstuff.com)
* @copyright Copyright 2024, WebDevNerdStuff
* @homepage https://github.com/webdevnerdstuff/vue-easter-egg-trigger
Expand Down
7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"name": "@wdns/vue-easter-egg-trigger",
"version": "3.0.0",
"description": "This packages makes it nice and easy to add Easter Egg triggers to your Vue site.",
"version": "3.0.1",
"description": "Presenting the Vue Easter Egg Trigger, a tool that discreetly injects a touch of unexpectedness into Vue.js projects. This unassuming plugin, which operates on both keystrokes (with click events also available), brings hidden surprises to your applications.",
"private": false,
"publishConfig": {
"access": "public"
},
"main": "dist/vue-easter-egg-trigger.cjs.js",
"module": "dist/vue-easter-egg-trigger.es.js",
"types": "dist/plugin/types/index.d.ts",
Expand Down

0 comments on commit a3d9346

Please sign in to comment.