UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

84 lines (69 loc) 2.86 kB
import '../../d3-time/src/index.js'; import '../../d3-time-format/src/index.js'; import continuous, { copy } from './continuous.js'; import { initRange } from './init.js'; import nice from './nice.js'; import { timeTicks, timeTickInterval } from '../../d3-time/src/ticks.js'; import { timeYear } from '../../d3-time/src/year.js'; import { timeMonth } from '../../d3-time/src/month.js'; import { timeSunday } from '../../d3-time/src/week.js'; import { timeDay } from '../../d3-time/src/day.js'; import { timeHour } from '../../d3-time/src/hour.js'; import { timeMinute } from '../../d3-time/src/minute.js'; import { second } from '../../d3-time/src/second.js'; import { timeFormat } from '../../d3-time-format/src/defaultLocale.js'; function date(t) { return new Date(t); } function number(t) { return t instanceof Date ? +t : +new Date(+t); } function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) { var scale = continuous(), invert = scale.invert, domain = scale.domain; var formatMillisecond = format(".%L"), formatSecond = format(":%S"), formatMinute = format("%I:%M"), formatHour = format("%I %p"), formatDay = format("%a %d"), formatWeek = format("%b %d"), formatMonth = format("%B"), formatYear = format("%Y"); function tickFormat(date) { return (second(date) < date ? formatMillisecond : minute(date) < date ? formatSecond : hour(date) < date ? formatMinute : day(date) < date ? formatHour : month(date) < date ? (week(date) < date ? formatDay : formatWeek) : year(date) < date ? formatMonth : formatYear)(date); } scale.invert = function(y) { return new Date(invert(y)); }; scale.domain = function(_) { return arguments.length ? domain(Array.from(_, number)) : domain().map(date); }; scale.ticks = function(interval) { var d = domain(); return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval); }; scale.tickFormat = function(count, specifier) { return specifier == null ? tickFormat : format(specifier); }; scale.nice = function(interval) { var d = domain(); if (!interval || typeof interval.range !== "function") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval); return interval ? domain(nice(d, interval)) : scale; }; scale.copy = function() { return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format)); }; return scale; } function time() { return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute, second, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments); } export { calendar, time as default }; //# sourceMappingURL=time.js.map