npm package: @kpsahnai/vue-draggable-cal-kps
Description: A datepicker Vue component. Compatible with Vue 2.x
Author: kpsahani
Latest version: 2.6.3

# DraggableCal

A datepicker Vue component. Compatible with Vue 2.x

- [Demo](#demo)
- [Install](#install)
- [Usage](#usage)
- [Available Languages](#available-languages)
- [Dev & Build](#dev-&-build)
- [Licence](#licence)
- [Thanks](#thanks)

## Demo

To view a demo online: [demo](https://liloow.github.io/vue-draggableCal/demo/)

To view demo examples locally clone the repo and run `npm i && npm serve --open App.vue`

![gif](https://raw.githubusercontent.com/liloow/vue-draggableCal/master/screenshot.gif)

## What the future holds

I am planning to add a few more customizations props in the near future, but I don't let my lack of imagination/creativity stop yours ! I strongly encourage you ton open Issues or pull requests if you have any ideas/needs that you'd like to see added to the component !

- [ ] Add more languages
- [ ] Add props for easy custom styling
- [x] ~~Add the possibility to append years as well~~
- [ ] Optimize the Array of days rendered

## Install

```bash
npm i @kpsahnai/vue-draggable-cal-kps --save
```

or

```bash
yarn add @kpsahnai/vue-draggable-cal-kps
```

```javascript
import DraggableCal from '@kpsahnai/vue-draggable-cal-kps';

export default {
  // ...
  components: {
    DraggableCal,
  },
  // ...
};
```

Or use directly from a CDN

```html
<div id="app">
  <DraggableCal></DraggableCal>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/@kpsahnai/vue-draggable-cal-kps"></script>
<script>
new Vue({
  el: '#app',
  components: {
    DraggableCal,
  }
})
</script>
```

## Usage

```html
<draggable-cal></draggable-cal>

<!-- OR -->

<DraggableCal></DraggableCal>
```

Emits events

```html
<DraggableCal @selectedDate="doSomething($event)"></DraggableCal>
```

## Available props

| Prop            | Type    | Default | Description                                                                                                           |
| :-------------- | :------ | :------ | :-------------------------------------------------------------------------------------------------------------------- |
| days            | Number  | 365     | Number of days to append                                                                                              |
| months          | Number  | 12      | Numbers of months to append (has precedence over `days` if custom set)                                                |
| years           | Number  | 0       | Number of years to append and enable year mode (see [Demo](#demo) )                                                   |
| prependedYears  | Number  | 0       | Number of years to preppend. **Note:** this prop is ignored if years is not set                                       |
| prependedMonths | Number  | 1       | Number of month to preppend                                                                                           |
| disabledWeekDays| Object  | {}      | Disable a specific week day by setting it's day number to true. ie. `{0: true}` will disable sundays                  |
| disabledDates   | Array   | []      | Disable a specific date. Format of the day should be a string `YYYY-MM-DD` ie. `['2018-01-01']`                       |
| pastIsDisabled  | Boolean | true    | Allows the selection of alreay past days and predend the days of `prepended` months                                   |
| fullMonths      | Boolean | false   | Weither or not to always use complete months (i.e. `days=1` if set to `true` the whole month is going to be appended) |
| accentColor     | String  | #00008b | Set the accent color (`HEX` or `CSS color names`)                                                                     |
| lang            | String  | EN      | Language (see available in [Transations](#Translation))       


attributes | array | []                                                        |

## Events

These events are emitted on actions in the datepicker

| Event        | Output | Description                                                                                                                                                                                   |
| :----------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| selectedDate | Object | A date has been selected. It outputs an object : `formatedDate`: String of the date and`raw`: An array of [YYYY, MM, DD] that can be used to build the date object via `Date.UTC(YYYY,MM,DD)` |
| dateCleared  | null   | The previously selected date has been unselected by the user                                                                                                                                  |

## Available languages

| Abbr | Language |           |
| ---- | -------- | --------- |
| EN   | English  | _Default_ |
| FR   | French   |           |

## Dev & Build

**Dev server**
```bash
  yarn serve # Or npm run serve
```

**Build App**
```bash
  yarn build # Or npm run build
```

**Build Lib**
```bash
  yarn bundle # Or npm run bundle
```

## License

MIT

## Thanks

Credits to [@webAngelo](https://github.com/webangelo) for his range-calendar from which this is highly inspired.



Note: this is customizable libarary so you have need to use real libraries as per your use below

link : https://www.npmjs.com/package/vue-draggable-cal