vega-time 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"vega-time.js","sources":["../src/units.js","../src/util.js","../src/floor.js","../src/interval.js","../src/bin.js"],"sourcesContent":["import {array, error, extend, hasOwnProperty} from 'vega-util';\n\nexport const YEAR = 'year';\nexport const QUARTER = 'quarter';\nexport const MONTH = 'month';\nexport const WEEK = 'week';\nexport const DATE = 'date';\nexport const DAY = 'day';\nexport const DAYOFYEAR = 'dayofyear';\nexport const HOURS = 'hours';\nexport const MINUTES = 'minutes';\nexport const SECONDS = 'seconds';\nexport const MILLISECONDS = 'milliseconds';\n\nexport const TIME_UNITS = [\n YEAR,\n QUARTER,\n MONTH,\n WEEK,\n DATE,\n DAY,\n DAYOFYEAR,\n HOURS,\n MINUTES,\n SECONDS,\n MILLISECONDS\n];\n\nconst UNITS = TIME_UNITS.reduce((o, u, i) => (o[u] = 1 + i, o), {});\n\nexport function timeUnits(units) {\n const u = array(units).slice(),\n m = {};\n\n // check validity\n if (!u.length) error('Missing time unit.');\n\n u.forEach(unit => {\n if (hasOwnProperty(UNITS, unit)) {\n m[unit] = 1;\n } else {\n error(`Invalid time unit: ${unit}.`);\n }\n });\n\n const numTypes = (\n (m[WEEK] || m[DAY] ? 1 : 0) +\n (m[QUARTER] || m[MONTH] || m[DATE] ? 1 : 0) +\n (m[DAYOFYEAR] ? 1 : 0)\n );\n\n if (numTypes > 1) {\n error(`Incompatible time units: ${units}`);\n }\n\n // ensure proper sort order\n u.sort((a, b) => UNITS[a] - UNITS[b]);\n\n return u;\n}\n\nconst defaultSpecifiers = {\n [YEAR]: '%Y ',\n [QUARTER]: 'Q%q ',\n [MONTH]: '%b ',\n [DATE]: '%d ',\n [WEEK]: 'W%U ',\n [DAY]: '%a ',\n [DAYOFYEAR]: '%j ',\n [HOURS]: '%H:00',\n [MINUTES]: '00:%M',\n [SECONDS]: ':%S',\n [MILLISECONDS]: '.%L',\n [`${YEAR}-${MONTH}`]: '%Y-%m ',\n [`${YEAR}-${MONTH}-${DATE}`]: '%Y-%m-%d ',\n [`${HOURS}-${MINUTES}`]: '%H:%M'\n};\n\nexport function timeUnitSpecifier(units, specifiers) {\n const s = extend({}, defaultSpecifiers, specifiers),\n u = timeUnits(units),\n n = u.length;\n\n let fmt = '', start = 0, end, key;\n\n for (start=0; start<n; ) {\n for (end=u.length; end > start; --end) {\n key = u.slice(start, end).join('-');\n if (s[key] != null) {\n fmt += s[key];\n start = end;\n break;\n }\n }\n }\n\n return fmt.trim();\n}\n","import {timeDay, timeWeek, utcDay, utcWeek} from 'd3-time';\n\nconst t0 = new Date;\n\nfunction localYear(y) {\n t0.setFullYear(y);\n t0.setMonth(0);\n t0.setDate(1);\n t0.setHours(0, 0, 0, 0);\n return t0;\n}\n\nexport function dayofyear(d) {\n return localDayOfYear(new Date(d));\n}\n\nexport function week(d) {\n return localWeekNum(new Date(d));\n}\n\nexport function localDayOfYear(d) {\n return timeDay.count(localYear(d.getFullYear()) - 1, d);\n}\n\nexport function localWeekNum(d) {\n return timeWeek.count(localYear(d.getFullYear()) - 1, d);\n}\n\nexport function localFirst(y) {\n return localYear(y).getDay();\n}\n\nexport function localDate(y, m, d, H, M, S, L) {\n if (0 <= y && y < 100) {\n const date = new Date(-1, m, d, H, M, S, L);\n date.setFullYear(y);\n return date;\n }\n return new Date(y, m, d, H, M, S, L);\n}\n\nexport function utcdayofyear(d) {\n return utcDayOfYear(new Date(d));\n}\n\nexport function utcweek(d) {\n return utcWeekNum(new Date(d));\n}\n\nexport function utcDayOfYear(d) {\n const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n return utcDay.count(y - 1, d);\n}\n\nexport function utcWeekNum(d) {\n const y = Date.UTC(d.getUTCFullYear(), 0, 1);\n return utcWeek.count(y - 1, d);\n}\n\nexport function utcFirst(y) {\n t0.setTime(Date.UTC(y, 0, 1));\n return t0.getUTCDay();\n}\n\nexport function utcDate(y, m, d, H, M, S, L) {\n if (0 <= y && y < 100) {\n const date = new Date(Date.UTC(-1, m, d, H, M, S, L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(y, m, d, H, M, S, L));\n}\n","import {\n DATE,\n DAY,\n DAYOFYEAR,\n HOURS,\n MILLISECONDS,\n MINUTES,\n MONTH,\n QUARTER,\n SECONDS,\n WEEK,\n YEAR\n} from './units.js';\nimport {\n localDate, localDayOfYear, localFirst, localWeekNum,\n utcDate, utcDayOfYear, utcFirst, utcWeekNum\n} from './util.js';\nimport {constant, one, peek, toSet, zero} from 'vega-util';\n\nfunction floor(units, step, get, inv, newDate) {\n const s = step || 1,\n b = peek(units),\n _ = (unit, p, key) => {\n key = key || unit;\n return getUnit(get[key], inv[key], unit === b && s, p);\n };\n\n const t = new Date,\n u = toSet(units),\n y = u[YEAR] ? _(YEAR) : constant(2012),\n m = u[MONTH] ? _(MONTH)\n : u[QUARTER] ? _(QUARTER)\n : zero,\n d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY)\n : u[WEEK] ? _(WEEK, 1)\n : u[DAY] ? _(DAY, 1)\n : u[DATE] ? _(DATE, 1)\n : u[DAYOFYEAR] ? _(DAYOFYEAR, 1)\n : one,\n H = u[HOURS] ? _(HOURS) : zero,\n M = u[MINUTES] ? _(MINUTES) : zero,\n S = u[SECONDS] ? _(SECONDS) : zero,\n L = u[MILLISECONDS] ? _(MILLISECONDS) : zero;\n\n return function(v) {\n t.setTime(+v);\n const year = y(t);\n return newDate(year, m(t), d(t, year), H(t), M(t), S(t), L(t));\n };\n}\n\nfunction getUnit(f, inv, step, phase) {\n const u = step <= 1 ? f\n : phase ? (d, y) => phase + step * Math.floor((f(d, y) - phase) / step)\n : (d, y) => step * Math.floor(f(d, y) / step);\n return inv ? (d, y) => inv(u(d, y), y) : u;\n}\n\n// returns the day of the year based on week number, day of week,\n// and the day of the week for the first day of the year\nfunction weekday(week, day, firstDay) {\n return day + week * 7 - (firstDay + 6) % 7;\n}\n\n// -- LOCAL TIME --\n\nconst localGet = {\n [YEAR]: d => d.getFullYear(),\n [QUARTER]: d => Math.floor(d.getMonth() / 3),\n [MONTH]: d => d.getMonth(),\n [DATE]: d => d.getDate(),\n [HOURS]: d => d.getHours(),\n [MINUTES]: d => d.getMinutes(),\n [SECONDS]: d => d.getSeconds(),\n [MILLISECONDS]: d => d.getMilliseconds(),\n [DAYOFYEAR]: d => localDayOfYear(d),\n [WEEK]: d => localWeekNum(d),\n [WEEK + DAY]: (d, y) => weekday(localWeekNum(d), d.getDay(), localFirst(y)),\n [DAY]: (d, y) => weekday(1, d.getDay(), localFirst(y))\n};\n\nconst localInv = {\n [QUARTER]: q => 3 * q,\n [WEEK]: (w, y) => weekday(w, 0, localFirst(y))\n};\n\nexport function timeFloor(units, step) {\n return floor(units, step || 1, localGet, localInv, localDate);\n}\n\n// -- UTC TIME --\n\nconst utcGet = {\n [YEAR]: d => d.getUTCFullYear(),\n [QUARTER]: d => Math.floor(d.getUTCMonth() / 3),\n [MONTH]: d => d.getUTCMonth(),\n [DATE]: d => d.getUTCDate(),\n [HOURS]: d => d.getUTCHours(),\n [MINUTES]: d => d.getUTCMinutes(),\n [SECONDS]: d => d.getUTCSeconds(),\n [MILLISECONDS]: d => d.getUTCMilliseconds(),\n [DAYOFYEAR]: d => utcDayOfYear(d),\n [WEEK]: d => utcWeekNum(d),\n [DAY]: (d, y) => weekday(1, d.getUTCDay(), utcFirst(y)),\n [WEEK + DAY]: (d, y) => weekday(utcWeekNum(d), d.getUTCDay(), utcFirst(y))\n};\n\nconst utcInv = {\n [QUARTER]: q => 3 * q,\n [WEEK]: (w, y) => weekday(w, 0, utcFirst(y))\n};\n\nexport function utcFloor(units, step) {\n return floor(units, step || 1, utcGet, utcInv, utcDate);\n}\n","import {\n DATE,\n DAY,\n DAYOFYEAR,\n HOURS,\n MILLISECONDS,\n MINUTES,\n MONTH,\n QUARTER,\n SECONDS,\n WEEK,\n YEAR\n} from './units.js';\n\nimport {\n timeDay,\n timeHour,\n timeMillisecond,\n timeMinute,\n timeMonth,\n timeSecond,\n timeWeek,\n timeYear,\n utcDay,\n utcHour,\n utcMillisecond,\n utcMinute,\n utcMonth,\n utcSecond,\n utcWeek,\n utcYear\n} from 'd3-time';\n\nconst timeIntervals = {\n [YEAR]: timeYear,\n [QUARTER]: timeMonth.every(3),\n [MONTH]: timeMonth,\n [WEEK]: timeWeek,\n [DATE]: timeDay,\n [DAY]: timeDay,\n [DAYOFYEAR]: timeDay,\n [HOURS]: timeHour,\n [MINUTES]: timeMinute,\n [SECONDS]: timeSecond,\n [MILLISECONDS]: timeMillisecond\n};\n\nconst utcIntervals = {\n [YEAR]: utcYear,\n [QUARTER]: utcMonth.every(3),\n [MONTH]: utcMonth,\n [WEEK]: utcWeek,\n [DATE]: utcDay,\n [DAY]: utcDay,\n [DAYOFYEAR]: utcDay,\n [HOURS]: utcHour,\n [MINUTES]: utcMinute,\n [SECONDS]: utcSecond,\n [MILLISECONDS]: utcMillisecond\n};\n\nexport function timeInterval(unit) {\n return timeIntervals[unit];\n}\n\nexport function utcInterval(unit) {\n return utcIntervals[unit];\n}\n\nfunction offset(ival, date, step) {\n return ival ? ival.offset(date, step) : undefined;\n}\n\nexport function timeOffset(unit, date, step) {\n return offset(timeInterval(unit), date, step);\n}\n\nexport function utcOffset(unit, date, step) {\n return offset(utcInterval(unit), date, step);\n}\n\nfunction sequence(ival, start, stop, step) {\n return ival ? ival.range(start, stop, step) : undefined;\n}\n\nexport function timeSequence(unit, start, stop, step) {\n return sequence(timeInterval(unit), start, stop, step);\n}\n\nexport function utcSequence(unit, start, stop, step) {\n return sequence(utcInterval(unit), start, stop, step);\n}\n","import {DATE, HOURS, MILLISECONDS, MINUTES, MONTH, SECONDS, WEEK, YEAR} from './units.js';\nimport {span} from 'vega-util';\nimport {bisector, tickStep} from 'd3-array';\n\nconst durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nconst Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],\n Seconds = Milli.slice(0, -1),\n Minutes = Seconds.slice(0, -1),\n Hours = Minutes.slice(0, -1),\n Day = Hours.slice(0, -1),\n Week = [YEAR, WEEK],\n Month = [YEAR, MONTH],\n Year = [YEAR];\n\nconst intervals = [\n [Seconds, 1, durationSecond],\n [Seconds, 5, 5 * durationSecond],\n [Seconds, 15, 15 * durationSecond],\n [Seconds, 30, 30 * durationSecond],\n [Minutes, 1, durationMinute],\n [Minutes, 5, 5 * durationMinute],\n [Minutes, 15, 15 * durationMinute],\n [Minutes, 30, 30 * durationMinute],\n [ Hours, 1, durationHour ],\n [ Hours, 3, 3 * durationHour ],\n [ Hours, 6, 6 * durationHour ],\n [ Hours, 12, 12 * durationHour ],\n [ Day, 1, durationDay ],\n [ Week, 1, durationWeek ],\n [ Month, 1, durationMonth ],\n [ Month, 3, 3 * durationMonth ],\n [ Year, 1, durationYear ]\n];\n\nexport default function(opt) {\n const ext = opt.extent,\n max = opt.maxbins || 40,\n target = Math.abs(span(ext)) / max;\n\n let i = bisector(i => i[2]).right(intervals, target),\n units, step;\n\n if (i === intervals.length) {\n units = Year,\n step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);\n } else if (i) {\n i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];\n units = i[0];\n step = i[1];\n } else {\n units = Milli;\n step = Math.max(tickStep(ext[0], ext[1], max), 1);\n }\n\n return {units, step};\n}\n"],"names":["YEAR","QUARTER","MONTH","WEEK","DATE","DAY","DAYOFYEAR","HOURS","MINUTES","SECONDS","MILLISECONDS","TIME_UNITS","UNITS","reduce","o","u","i","timeUnits","units","array","slice","m","length","error","forEach","unit","hasOwnProperty","numTypes","sort","a","b","defaultSpecifiers","timeUnitSpecifier","specifiers","s","extend","n","fmt","start","end","key","join","trim","t0","Date","localYear","y","setFullYear","setMonth","setDate","setHours","dayofyear","d","localDayOfYear","week","localWeekNum","timeDay","count","getFullYear","timeWeek","localFirst","getDay","localDate","H","M","S","L","date","utcdayofyear","utcDayOfYear","utcweek","utcWeekNum","UTC","getUTCFullYear","utcDay","utcWeek","utcFirst","setTime","getUTCDay","utcDate","setUTCFullYear","floor","step","get","inv","newDate","peek","_","p","getUnit","t","toSet","constant","zero","one","v","year","f","phase","Math","weekday","day","firstDay","localGet","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","localInv","q","w","timeFloor","utcGet","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","utcInv","utcFloor","timeIntervals","timeYear","timeMonth","every","timeHour","timeMinute","timeSecond","timeMillisecond","utcIntervals","utcYear","utcMonth","utcHour","utcMinute","utcSecond","utcMillisecond","timeInterval","utcInterval","offset","ival","undefined","timeOffset","utcOffset","sequence","stop","range","timeSequence","utcSequence","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","Milli","Seconds","Minutes","Hours","Day","Week","Month","Year","intervals","opt","ext","extent","max","maxbins","target","abs","span","bisector","right","tickStep"],"mappings":"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"}