# @lassehaslev/vue-dropzone

> Upload files with ease!

Latest version **1.0.2** (published 2017-02-17) · 0 weekly downloads

## Install

```sh
npm install @lassehaslev/vue-dropzone
pnpm add @lassehaslev/vue-dropzone
yarn add @lassehaslev/vue-dropzone
bun add @lassehaslev/vue-dropzone
```

## 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 | 1.0.2 |
| Published | 2017-02-17 |
| First published | 2016-07-07 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 (+26 in 2 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Lasse S. Haslev |
| Maintainers | lassehaslev |

## Links

- npm: https://www.npmjs.com/package/@lassehaslev/vue-dropzone
- Repository: https://github.com/lassehaslev/vue-dropzone
- Homepage: https://github.com/lassehaslev/vue-dropzone#readme
- Issues: https://github.com/lassehaslev/vue-dropzone/issues
- npm.io page: https://npm.io/package/@lassehaslev/vue-dropzone

## Dependencies (2)

- [vue](https://npm.io/package/vue.md) ^2.1.0
- [axios](https://npm.io/package/axios.md) ^0.15.3

## Recent versions

- 1.0.2 (latest) — 2017-02-17
- 1.0.1 — 2016-12-30
- 1.0.0 — 2016-12-29
- 0.1.2 — 2016-07-08
- 0.1.1 — 2016-07-08
- 0.1.0 — 2016-07-07

## README

# @lassehaslev/vue-dropzone
> Drop upload with Vue2

## Install
Run ```npm install @lassehaslev/vue-dropzone --save``` in your project folder

## Usage
```js
import {Dropzone} from '@lassehaslev/vue-dropzone';
export default {
    template: `
        <section class="section">
            <div class="container">
                <h1 class="title">Normal dropzone</h1>
                <dropzone @state-change="onStateChanged" @upload="onUpload" @error="onError" url="http://localhost:1337/api/images" ref="dropzone">
                    <div style="width: 300px; height:300px;" :style="{ 'background-color': color }">&nbsp;</div>
                </dropzone>
            </div>

            <div v-for="file in files">
                {{ file.name }}
            </div>
        </section>
    `,

    data() {
        return {
            color: '#FF0000',
            files: [],
        }
    },

    methods: {
        onStateChanged( enter ) {
            this.color = enter ? '#0000FF' : '#FF0000';
        },
        onUpload( file ) {
            this.files.push( file );
        },
        onError( response ) {
            console.log('Error');
            console.log(response);
        },
    },

    components: {
        Dropzone,
    },
}
```

#### Build your own
```js
import BaseDropzone from './BaseDropzone';
export default {
    template: `
        <div>
            <form 
                @dragover.stop.prevent="addDragOver"
                @dragenter.stop.prevent="addDragOver"

                @dragleave.stop.prevent="removeDragOver"
                @dragend.stop.prevent="removeDragOver"
                @drop.stop.prevent="drop"

                @submit.prevent="submit"

                @click="onClick"

                method="post" action="" enctype="multipart/form-data">

                <slot></slot>
            </form>
            <input v-if="multiple" @change="inputChanged" style="visibility:hidden; position:aboslute;top: -99999; left:-9999999;" type="file" :name="name" multiple />
            <input v-else @change="inputChanged" style="visibility:hidden; position:aboslute;top: -99999; left:-9999999;" type="file" :name="name" />
        </div>
    `,
    mixins: [ BaseDropzone ],
}
```

## Development

``` bash
# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build
```

For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader).

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