@gravitano/vue-date-range-picker
Version:
Vue.js Date Range Picker Plugin
184 lines (140 loc) • 3.87 kB
Markdown
# Vue.js Date Range Picker
`@gravitano/vue-date-range-picker` is a Vue.js wrapper for [daterangepicker](http://www.daterangepicker.com) plugin.
## Installation
To install the package, use one of those commands:
```
npm i @gravitano/vue-date-range-picker
# OR
yarn add @gravitano/vue-date-range-picker
```
## Usage
### Global Usage
Basically, just register the DateRangePicker component as vue plugin via `Vue.use` method.
```js
// main.js
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
// import the plugin
import DateRangePicker from "@gravitano/vue-date-range-picker";
Vue.config.productionTip = false;
// use the plugin
Vue.use(DateRangePicker);
new Vue({
router,
render: h => h(App)
}).$mount("#app");
```
Once the plugin installed, you can use it like so:
```html
<template>
<div>
<date-range-picker v-model="range" />
</div>
</template>
<script>
export default {
data: () => ({
range: ["01/09/2018", "01/10/2018"]
})
};
</script>
```
### Per-component Usage
If you want to use the DateRangePicker component only on certain components, you can do it like this:
```html
<template>
<div>
<date-range-picker v-model="range" />
</div>
</template>
<script>
// import the package
import DateRangePicker from "@gravitano/vue-date-range-picker";
export default {
components: {
DateRangePicker
},
data: () => ({
range: ["01/09/2018", "01/10/2018"]
})
};
</script>
```
### Options
```html
<template>
<div>
<h3>DateRangePicker with options</h3>
<date-range-picker v-model="range" :options="options" />
</div>
</template>
<script>
import moment from 'moment'
export default {
data: () => ({
range: ["01/09/2018", "01/10/2018"],
options: {
timePicker: true,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'M/DD hh:mm A'
}
}
})
};
</script>
```
### Single Date Picker
```html
<template>
<div>
<h3>Single Date Picker Example</h3>
<date-range-picker v-model="myDate" :options="options" />
</div>
</template>
<script>
import moment from 'moment'
export default {
data: () => ({
myDate: "01/10/2018",
options: {
singleDatePicker: true,
// showDropdowns: true,
minYear: 2001,
maxYear: +moment().format("YYYY")
}
})
};
</script>
```
# Props
| Name | Type | Default | Description |
| --------- | ------ | ------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| v-model | Array | `[]` | Set v-model to the the content or data property you wish to bind it to |
| format | String | `DD/MM/YYYY` | Date format |
| className | String | - | Additional class name for the input |
| options | Object | `{}` | The [daterangepicker](http://www.daterangepicker.com)'s options. Learn more [here](http://www.daterangepicker.com/#options). |
# Development Setup
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```
### Run your tests
```
npm run test
```
### Lints and fixes files
```
npm run lint
```
# License
MIT