File: //opt/textanalyse/web_console/node_modules/vega-time/build/vega-time.min.js.map
{"version":3,"file":"vega-time.min.js","sources":["../src/units.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/ticks.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","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\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';\nimport {\n localDate, localDayOfYear, localFirst, localWeekNum,\n utcDate, utcDayOfYear, utcFirst, utcWeekNum\n} from './util';\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';\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';\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","sort","a","b","defaultSpecifiers","t0","Date","t1","timeInterval","floori","offseti","count","field","interval","date","arguments","floor","ceil","round","d0","d1","offset","step","Math","range","start","stop","previous","push","filter","test","setTime","end","every","isFinite","d","millisecond","k","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ascending","NaN","descending","zero","e10","sqrt","e5","e2","tickSpec","max","power","log10","pow","factor","i1","i2","inc","tickIncrement","tickStep","reverse","localYear","y","localDayOfYear","localWeekNum","timeWeek","localFirst","localDate","H","M","S","L","utcDayOfYear","UTC","utcWeekNum","utcWeek","utcFirst","utcDate","get","inv","newDate","s","peek","_","p","key","f","phase","getUnit","t","toSet","constant","one","v","year","weekday","week","day","firstDay","localGet","localInv","q","w","utcGet","getUTCMilliseconds","utcInv","timeIntervals","timeSecond","timeMillisecond","utcIntervals","utcSecond","utcMillisecond","utcInterval","ival","undefined","sequence","durationMonth","durationYear","Milli","Seconds","Minutes","Hours","Day","Month","Year","intervals","opt","ext","extent","maxbins","target","abs","span","compare1","compare2","delta","left","x","lo","hi","mid","center","right","bisector","specifiers","extend","n","fmt","join","trim"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14]}