# yy-input

> basic input support for touch, mouse, and keyboard

Latest version **0.11.3** (published 2017-12-29) · MIT license · 0 weekly downloads

## Install

```sh
npm install yy-input
pnpm add yy-input
yarn add yy-input
bun add yy-input
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.11.3 |
| Published | 2017-12-29 |
| First published | 2017-09-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | David Figatner |
| Maintainers | davidfig |
| Keywords | input, mouse, keyboard, wheel, mouse wheel |

## Links

- npm: https://www.npmjs.com/package/yy-input
- Repository: https://github.com/davidfig/input
- Homepage: https://github.com/davidfig/input#readme
- Issues: https://github.com/davidfig/input/issues
- npm.io page: https://npm.io/package/yy-input

## Dependencies (1)

- [eventemitter3](https://npm.io/package/eventemitter3.md) ^3.0.0

## Recent versions

- 0.11.3 (latest) — 2017-12-29
- 0.11.2 — 2017-12-15
- 0.11.1 — 2017-12-15
- 0.11.0 — 2017-12-15
- 0.10.4 — 2017-11-15
- 0.10.3 — 2017-11-14
- 0.10.2 — 2017-11-14
- 0.10.1 — 2017-11-14
- 0.10.0 — 2017-11-07
- 0.9.0 — 2017-10-24
- 0.8.0 — 2017-10-17
- 0.7.0 — 2017-10-15
- 0.6.0 — 2017-10-15
- 0.5.0 — 2017-10-15
- 0.4.0 — 2017-10-08
- … 7 more at https://npm.io/package/yy-input/versions

## README

# yy-input
basic input support for touch, mouse, and keyboard

## rationale

I used this in all my games, so I decided to centralize and share it. This is a very simple class that emits events after a touch, mouse, or keyboard event. The events are tied to an HTMLElement.

## installation

    npm i yy-input

## simple example

    const Input = require('yy-input')

    this.input = new Input()
    this.input.on('down', 
        function down(x, y)
        {
            console.log('You clicked at ' + x + ', ' + y)
        })

## live example
https://davidfig.github.io/input/

## API
```js
    /**
     * basic input support for touch, mouse, and keyboard
     *
     * @param {object} [options]
     * @param {HTMLElement} [options.div=document] object to attach listener to
     * @param {boolean} [options.noPointers] turns off mouse/touch/pen listeners
     * @param {boolean} [options.noKeyboard] turns off key listener
     * @param {boolean} [options.chromeDebug] ignore chrome debug keys, and force page reload with ctrl/cmd+r
     * @param {number} [options.threshold=5] maximum number of pixels to move while mouse/touch downbefore cancelling 'click'
     * @param {boolean} [options.preventDefault] call on handle, otherwise let client handle
     *
     * @event down(x, y, { input, event, id }) emits when touch or mouse is first down
     * @event up(x, y, { input, event, id }) emits when touch or mouse is up or cancelled
     * @event move(x, y, { input, event, id }) emits when touch or mouse moves (even if mouse is still up)
     * @event click(x, y, { input, event, id }) emits when "click" for touch or mouse
     * @event wheel(dx, dy, dz, { event, id, x, y }) emits when "wheel" scroll for mouse
     *
     * @event keydown(keyCode:number, {shift:boolean, meta:boolean, ctrl: boolean}, { event, input }) emits when key is pressed
     * @event keyup(keyCode:number, {shift:boolean, meta:boolean, ctrl: boolean}, { event, input }) emits when key is released
     */
    constructor(options)

    /**
     * remove all listeners
     */
    destroy()

    /**
     * turns on pointer listeners (on by default); can be used after removePointers()
     */
    addPointers()

    /**
     * remove pointers listener
     */
    removePointers()

    /**
     * turns on keyboard listener (off by default); can be used after removeKeyboard()
     */
    addKeyboard()

    /**
     * removes keyboard listener
     */
    removeKeyboard()

```
## License  
MIT License  
(c) 2017 [YOPEY YOPEY LLC](https://yopeyopey.com/) by [David Figatner](https://twitter.com/yopey_yopey/)

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