| // JS |
| import d3 from 'd3'; |
| |
| // CSS |
| require('./cal_heatmap.css'); |
| require('../node_modules/cal-heatmap/cal-heatmap.css'); |
| |
| const CalHeatMap = require('cal-heatmap'); |
| |
| function calHeatmap(slice, payload) { |
| const div = d3.select(slice.selector); |
| const data = payload.data; |
| |
| div.selectAll('*').remove(); |
| const cal = new CalHeatMap(); |
| |
| const timestamps = data.timestamps; |
| const extents = d3.extent(Object.keys(timestamps), key => timestamps[key]); |
| const step = (extents[1] - extents[0]) / 5; |
| |
| try { |
| cal.init({ |
| start: data.start, |
| data: timestamps, |
| itemSelector: slice.selector, |
| tooltip: true, |
| domain: data.domain, |
| subDomain: data.subdomain, |
| range: data.range, |
| browsing: true, |
| legend: [extents[0], extents[0] + step, extents[0] + (step * 2), extents[0] + (step * 3)], |
| }); |
| } catch (e) { |
| slice.error(e); |
| } |
| } |
| |
| module.exports = calHeatmap; |