vue-draggable-cal

A datepicker Vue component. Compatible with Vue 2.x

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
vue-draggable-cal
2.6.04 years ago4 years agoMinified + gzip package size for vue-draggable-cal in KB

Readme

DraggableCal
A datepicker Vue component. Compatible with Vue 2.x

Demo

To view a demo online: demo
To view demo examples locally clone the repo and run npm i && npm serve --open App.vue
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

npm i vue-draggable-cal --save

or
yarn add vue-draggable-cal

import DraggableCal from 'vue-draggable-cal';

export default {
  // ...
  components: {
    DraggableCal,
  },
  // ...
};

Or use directly from a CDN
<div id="app">
  <DraggableCal></DraggableCal>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-draggable-cal"></script>
<script>
new Vue({
  el: '#app',
  components: {
    DraggableCal,
  }
})
</script>

Usage

<draggable-cal></draggable-cal>

<!-- OR -->

<DraggableCal></DraggableCal>

Emits events
<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 ) | | 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) |

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 andraw: 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
yarn serve # Or npm run serve

Build App
yarn build # Or npm run build

Build Lib
yarn bundle # Or npm run bundle

License

MIT

Thanks

Credits to @webAngelo for his range-calendar from which this is highly inspired.