UNPKG

opendash

Version:

open.DASH data visualization framework

44 lines 1.54 kB
// selectUnit is from: https://github.com/formatjs/formatjs/blob/master/packages/intl-utils/src/diff.ts var MS_PER_SECOND = 1000; var SECS_PER_MIN = 60; var SECS_PER_HOUR = SECS_PER_MIN * 60; var SECS_PER_DAY = SECS_PER_HOUR * 24; var SECS_PER_WEEK = SECS_PER_DAY * 7; var THRESHOLDS = { second: 60, minute: 60, hour: 24, day: 7, }; export function intlSelectUnit(from, to) { if (to === void 0) { to = Date.now(); } var secs = (from.valueOf() - to.valueOf()) / MS_PER_SECOND; if (Math.abs(secs) < THRESHOLDS.second) { return [Math.round(secs), "second"]; } var mins = secs / SECS_PER_MIN; if (Math.abs(mins) < THRESHOLDS.minute) { return [Math.round(mins), "minute"]; } var hours = secs / SECS_PER_HOUR; if (Math.abs(hours) < THRESHOLDS.hour) { return [Math.round(hours), "hour"]; } var days = secs / SECS_PER_DAY; if (Math.abs(days) < THRESHOLDS.day) { return [Math.round(days), "day"]; } var fromDate = new Date(from); var toDate = new Date(to); var years = fromDate.getFullYear() - toDate.getFullYear(); if (Math.round(Math.abs(years)) > 0) { return [Math.round(years), "year"]; } var months = years * 12 + fromDate.getMonth() - toDate.getMonth(); if (Math.round(Math.abs(months)) > 0) { return [Math.round(months), "month"]; } var weeks = secs / SECS_PER_WEEK; return [Math.round(weeks), "week"]; } //# sourceMappingURL=intlSelectUnit.js.map