vega-time
Version:
JavaScript date/time utilities for Vega.
93 lines (81 loc) • 1.83 kB
JavaScript
import {
DATE,
DAY,
DAYOFYEAR,
HOURS,
MILLISECONDS,
MINUTES,
MONTH,
QUARTER,
SECONDS,
WEEK,
YEAR
} from './units.js';
import {
timeDay,
timeHour,
timeMillisecond,
timeMinute,
timeMonth,
timeSecond,
timeWeek,
timeYear,
utcDay,
utcHour,
utcMillisecond,
utcMinute,
utcMonth,
utcSecond,
utcWeek,
utcYear
} from 'd3-time';
const timeIntervals = {
[]: timeYear,
[]: timeMonth.every(3),
[]: timeMonth,
[]: timeWeek,
[]: timeDay,
[]: timeDay,
[]: timeDay,
[]: timeHour,
[]: timeMinute,
[]: timeSecond,
[]: timeMillisecond
};
const utcIntervals = {
[]: utcYear,
[]: utcMonth.every(3),
[]: utcMonth,
[]: utcWeek,
[]: utcDay,
[]: utcDay,
[]: utcDay,
[]: utcHour,
[]: utcMinute,
[]: utcSecond,
[]: utcMillisecond
};
export function timeInterval(unit) {
return timeIntervals[unit];
}
export function utcInterval(unit) {
return utcIntervals[unit];
}
function offset(ival, date, step) {
return ival ? ival.offset(date, step) : undefined;
}
export function timeOffset(unit, date, step) {
return offset(timeInterval(unit), date, step);
}
export function utcOffset(unit, date, step) {
return offset(utcInterval(unit), date, step);
}
function sequence(ival, start, stop, step) {
return ival ? ival.range(start, stop, step) : undefined;
}
export function timeSequence(unit, start, stop, step) {
return sequence(timeInterval(unit), start, stop, step);
}
export function utcSequence(unit, start, stop, step) {
return sequence(utcInterval(unit), start, stop, step);
}