vue3-calendar-heatmap
NOTE
This is primary a Typescript rewrite of vue-calendar-heatmap for Vue 3.
A lightweight calendar heatmap Vuejs component built on SVG, inspired by github's contribution calendar graph. With vertical mode, tooltip powered by Tippy.js.
Table of contents
Installation
npm install --save vue3-calendar-heatmap
Default import
Global Install:
import VueCalendarHeatmap from 'vue3-calendar-heatmap'
app.use(VueCalendarHeatmap)
Use specific components:
import { CalendarHeatmap } from 'vue3-calendar-heatmap'
app.component('CalendarHeatmap', CalendarHeatmap)
or in a parent components .vue
file
<script>
import { CalendarHeatmap } from 'vue3-calendar-heatmap'
export default {
components: {
CalendarHeatmap
},
// ...
}
</script>
Usage
Availables props
values
- required
values - Array of objects with date
and count
keys. date
values can be a date parseable string, a millisecond timestamp, or a Date object. count
value should be
a number.
<calendar-heatmap :values="[{ date: '2018-9-22', count: 6 }, ...]" .../>
end-date
- required
endDate - Can be a date parseable string, a millisecond timestamp, or a Date object. The calendar will start automatically one year before this date.
<calendar-heatmap :end-date="2018-9-22" .../>
range-color
rangeColor - Array of 6 strings which represents the colors of the progression.
-
The color at
rangeColor[0]
will always represent the values for acount: null
-
The color at
rangeColor[1]
will always represent the values for acount: 0
-
The others are automatically distributed over the maximum value of count, unless you specify
max
props. -
Default value is equal to the example.
<calendar-heatmap :range-color="['#ebedf0', '#dae2ef', '#c0ddf9', '#73b3f3', '#3886e1', '#17459e']" .../>
max
max - Any number which should be the max color.
<calendar-heatmap :max="10" .../>
no-data-text
noDataText - Tooltip text to display on days without data. null
by default (shows no tooltip at all).
<calendar-heatmap :no-data-text="no data for this day" .../>
tooltip
tooltip - Boolean for enable/disable tooltip on square hover. true
by default.
<calendar-heatmap :tooltip="false" .../>
tooltip-unit
tooltipUnit - String representing heatmap's unit of measure. Value is "contributions"
by default.
<calendar-heatmap tooltip-unit="stars" .../>
tooltip-formatter
tooltipFormatter - A method to have full control about tooltip content.
<calendar-heatmap :tooltip-formatter="(v) => v.count" .../>
vertical
vertical - Boolean to switch to vertical mode. false
by default.
<calendar-heatmap :vertical="true" .../>
round
round - Number to create rounded corners or cirlces in heatmap. 0
by default.
<calendar-heatmap :round="2" .../>
Examples: