# vue2vis
**Repository Path**: cqdx/vue2vis
## Basic Information
- **Project Name**: vue2vis
- **Description**: A Vuejs 2 adapter for Visjs
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-01-07
- **Last Updated**: 2024-09-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# vue2vis
> Vue2 component that helps with Visjs interaction
### Installation
```
npm install --save vue2vis
```
or
```
yarn add vue2vis
```
## Usage
Declare the component
``` javascript
Vue.component('timeline', vue2vis.Timeline);
```
Add the component in the template.
```html
```
Add groups, items and options in your observed data or computed.
``` javascript
new Vue({
el: '#app',
data() {
return {
groups: [{
id: 0,
content: 'Group 1'
}],
items: [{
id: 0,
group: 0,
start: new Date(),
content: 'Item 1'
}],
options: {
editable: true,
}
}
},
});
```
Add Visjs CSS
``` css
@import "vue2vis/dist/vue2vis.css";
```
Here is a basic working demo with item generation:
[JS Fiddle Basic Demo](https://jsfiddle.net/alexkodo/ejdut8fm/)
You can also create items or group labels as Vue Components:
[JS Fiddle Item Vue Component Demo](https://jsfiddle.net/alexkodo/n978c58d/)
## Events
### Component Events
By default all Vis events are emitted by your component. You can subscribe to a subset by passing an array in the prop `events` [Visjs event](http://visjs.org/docs/timeline/#Events).
```html
```
### Data Events
When you pass an Array of data object, it is converted internally as a DataSet.
An event with the DataSet object will be fired at mounted. It's name will be prepend with the prop name (Ex: `items-mounted`, `groups-mounted`). You could use it to interact with the DataSet.
All the [Visjs DataSet event](http://visjs.org/docs/data/dataset.html#Events) will be prepened the same fashion (`items-add`, `items-remove`, `items-update`). For example, pushing a new object to the `items` prop will fire a `items-add` event with the following payload:
```javascript
{
event: 'add',
properties: {
items: [7],
},
senderId: null,
}
```
#### Advanced
You can also manage your own data bindings by passing your own DataSet or DataView instead of an Array.
``` javascript
import { DataSet } from 'vue2vis';
new Vue({
el: '#app',
data() {
return {
groups: new DataSet([{
id: 0,
content: 'Group 1'
}]),
items: new DataSet([{
id: 0,
group: 0,
start: new Date(),
content: 'Item 1'
}]),
options: {
editable: true,
}
}
},
});
```
## Visjs documentation
Full reference of Item and Group formats, options properties and events: [Timeline](http://visjs.org/docs/timeline), [Network](http://visjs.org/docs/network), [Graph2d](http://visjs.org/docs/graph2d), [DataSet](http://visjs.org/docs/dataset), [DataView](http://visjs.org/docs/dataview)
## List of currently implemented modules
- [x] Timeline
- [x] Graph2d
- [ ] Graph3d
- [x] Network
## Change log
Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.
## Testing
``` bash
$ npm run test
```
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.
### Build Setup
``` bash
# Once you have cloned this repo, install dependencies
$ npm install
# build for development and production with minification
$ npm run build
```
### Run demo locally
``` bash
# Run demo at localhost:8080
$ npm link
$ cd examples
$ npm install
$ npm link vue2vis
# serve with hot reload at localhost:8080
$ npm run dev
```
Go to to see running examples
NOTE: If you make changes to the library you should run 'npm run build' again in the root folder.
The dev server should detect modification and reload the demo
## Security
If you discover any security related issues, please email infocontact.alex@gmail.com instead of using the issue tracker.
## Credits
- [Alex Couturon][link-author]
- [João Menighin](https://github.com/Menighin)
- [All Contributors][link-contributors]
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
[link-author]: https://github.com/alexcode
[link-contributors]: ../../contributors