vega-time 2.0.4 → 2.1.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.
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015-2018, University of Washington Interactive Data Lab
1
+ Copyright (c) 2015-2021, University of Washington Interactive Data Lab
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
package/README.md CHANGED
@@ -69,7 +69,7 @@ Determine a temporal binning scheme, for example to create a histogram. Based on
69
69
  The supported options properties are:
70
70
 
71
71
  - _extent_: (required) A two-element (`[min, max]`) array indicating the date range over which the bin values are defined.
72
- - _maxbins_: The maximum number of allowable bins (default `40`).
72
+ - _maxbins_: The maximum number of allowable bins (default `40`). There will often be fewer bins as the domain gets sliced at "nicely" rounded values.
73
73
 
74
74
  ### Local Time Utilities
75
75
 
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vega-util'), require('d3-time'), require('d3-array')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'vega-util', 'd3-time', 'd3-array'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vega = {}, global.vega, global.d3, global.d3));
5
- }(this, (function (exports, vegaUtil, d3Time, d3Array) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vega-util')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'vega-util'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.vega = {}, global.vega));
5
+ })(this, (function (exports, vegaUtil) { 'use strict';
6
6
 
7
7
  const YEAR = 'year';
8
8
  const QUARTER = 'quarter';
@@ -79,6 +79,350 @@
79
79
  return fmt.trim();
80
80
  }
81
81
 
82
+ var t0$1 = new Date(),
83
+ t1 = new Date();
84
+ function newInterval(floori, offseti, count, field) {
85
+ function interval(date) {
86
+ return floori(date = arguments.length === 0 ? new Date() : new Date(+date)), date;
87
+ }
88
+
89
+ interval.floor = function (date) {
90
+ return floori(date = new Date(+date)), date;
91
+ };
92
+
93
+ interval.ceil = function (date) {
94
+ return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
95
+ };
96
+
97
+ interval.round = function (date) {
98
+ var d0 = interval(date),
99
+ d1 = interval.ceil(date);
100
+ return date - d0 < d1 - date ? d0 : d1;
101
+ };
102
+
103
+ interval.offset = function (date, step) {
104
+ return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
105
+ };
106
+
107
+ interval.range = function (start, stop, step) {
108
+ var range = [],
109
+ previous;
110
+ start = interval.ceil(start);
111
+ step = step == null ? 1 : Math.floor(step);
112
+ if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
113
+
114
+ do range.push(previous = new Date(+start)), offseti(start, step), floori(start); while (previous < start && start < stop);
115
+
116
+ return range;
117
+ };
118
+
119
+ interval.filter = function (test) {
120
+ return newInterval(function (date) {
121
+ if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
122
+ }, function (date, step) {
123
+ if (date >= date) {
124
+ if (step < 0) while (++step <= 0) {
125
+ while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
126
+
127
+ } else while (--step >= 0) {
128
+ while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
129
+
130
+ }
131
+ }
132
+ });
133
+ };
134
+
135
+ if (count) {
136
+ interval.count = function (start, end) {
137
+ t0$1.setTime(+start), t1.setTime(+end);
138
+ floori(t0$1), floori(t1);
139
+ return Math.floor(count(t0$1, t1));
140
+ };
141
+
142
+ interval.every = function (step) {
143
+ step = Math.floor(step);
144
+ return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function (d) {
145
+ return field(d) % step === 0;
146
+ } : function (d) {
147
+ return interval.count(0, d) % step === 0;
148
+ });
149
+ };
150
+ }
151
+
152
+ return interval;
153
+ }
154
+
155
+ var millisecond = newInterval(function () {// noop
156
+ }, function (date, step) {
157
+ date.setTime(+date + step);
158
+ }, function (start, end) {
159
+ return end - start;
160
+ }); // An optimized implementation for this simple case.
161
+
162
+ millisecond.every = function (k) {
163
+ k = Math.floor(k);
164
+ if (!isFinite(k) || !(k > 0)) return null;
165
+ if (!(k > 1)) return millisecond;
166
+ return newInterval(function (date) {
167
+ date.setTime(Math.floor(date / k) * k);
168
+ }, function (date, step) {
169
+ date.setTime(+date + step * k);
170
+ }, function (start, end) {
171
+ return (end - start) / k;
172
+ });
173
+ };
174
+
175
+ var utcMillisecond = millisecond;
176
+
177
+ const durationSecond$1 = 1000;
178
+ const durationMinute$1 = durationSecond$1 * 60;
179
+ const durationHour$1 = durationMinute$1 * 60;
180
+ const durationDay$1 = durationHour$1 * 24;
181
+ const durationWeek$1 = durationDay$1 * 7;
182
+
183
+ var second = newInterval(function (date) {
184
+ date.setTime(date - date.getMilliseconds());
185
+ }, function (date, step) {
186
+ date.setTime(+date + step * durationSecond$1);
187
+ }, function (start, end) {
188
+ return (end - start) / durationSecond$1;
189
+ }, function (date) {
190
+ return date.getUTCSeconds();
191
+ });
192
+ var utcSecond = second;
193
+
194
+ var minute = newInterval(function (date) {
195
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1);
196
+ }, function (date, step) {
197
+ date.setTime(+date + step * durationMinute$1);
198
+ }, function (start, end) {
199
+ return (end - start) / durationMinute$1;
200
+ }, function (date) {
201
+ return date.getMinutes();
202
+ });
203
+ var timeMinute = minute;
204
+
205
+ var hour = newInterval(function (date) {
206
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1 - date.getMinutes() * durationMinute$1);
207
+ }, function (date, step) {
208
+ date.setTime(+date + step * durationHour$1);
209
+ }, function (start, end) {
210
+ return (end - start) / durationHour$1;
211
+ }, function (date) {
212
+ return date.getHours();
213
+ });
214
+ var timeHour = hour;
215
+
216
+ var day = newInterval(date => date.setHours(0, 0, 0, 0), (date, step) => date.setDate(date.getDate() + step), (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationDay$1, date => date.getDate() - 1);
217
+ var timeDay = day;
218
+
219
+ function weekday$1(i) {
220
+ return newInterval(function (date) {
221
+ date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
222
+ date.setHours(0, 0, 0, 0);
223
+ }, function (date, step) {
224
+ date.setDate(date.getDate() + step * 7);
225
+ }, function (start, end) {
226
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationWeek$1;
227
+ });
228
+ }
229
+
230
+ var sunday = weekday$1(0);
231
+ weekday$1(1);
232
+ weekday$1(2);
233
+ weekday$1(3);
234
+ weekday$1(4);
235
+ weekday$1(5);
236
+ weekday$1(6);
237
+
238
+ var month = newInterval(function (date) {
239
+ date.setDate(1);
240
+ date.setHours(0, 0, 0, 0);
241
+ }, function (date, step) {
242
+ date.setMonth(date.getMonth() + step);
243
+ }, function (start, end) {
244
+ return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
245
+ }, function (date) {
246
+ return date.getMonth();
247
+ });
248
+ var timeMonth = month;
249
+
250
+ var year = newInterval(function (date) {
251
+ date.setMonth(0, 1);
252
+ date.setHours(0, 0, 0, 0);
253
+ }, function (date, step) {
254
+ date.setFullYear(date.getFullYear() + step);
255
+ }, function (start, end) {
256
+ return end.getFullYear() - start.getFullYear();
257
+ }, function (date) {
258
+ return date.getFullYear();
259
+ }); // An optimized implementation for this simple case.
260
+
261
+ year.every = function (k) {
262
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {
263
+ date.setFullYear(Math.floor(date.getFullYear() / k) * k);
264
+ date.setMonth(0, 1);
265
+ date.setHours(0, 0, 0, 0);
266
+ }, function (date, step) {
267
+ date.setFullYear(date.getFullYear() + step * k);
268
+ });
269
+ };
270
+
271
+ var timeYear = year;
272
+
273
+ var utcMinute = newInterval(function (date) {
274
+ date.setUTCSeconds(0, 0);
275
+ }, function (date, step) {
276
+ date.setTime(+date + step * durationMinute$1);
277
+ }, function (start, end) {
278
+ return (end - start) / durationMinute$1;
279
+ }, function (date) {
280
+ return date.getUTCMinutes();
281
+ });
282
+ var utcMinute$1 = utcMinute;
283
+
284
+ var utcHour = newInterval(function (date) {
285
+ date.setUTCMinutes(0, 0, 0);
286
+ }, function (date, step) {
287
+ date.setTime(+date + step * durationHour$1);
288
+ }, function (start, end) {
289
+ return (end - start) / durationHour$1;
290
+ }, function (date) {
291
+ return date.getUTCHours();
292
+ });
293
+ var utcHour$1 = utcHour;
294
+
295
+ var utcDay = newInterval(function (date) {
296
+ date.setUTCHours(0, 0, 0, 0);
297
+ }, function (date, step) {
298
+ date.setUTCDate(date.getUTCDate() + step);
299
+ }, function (start, end) {
300
+ return (end - start) / durationDay$1;
301
+ }, function (date) {
302
+ return date.getUTCDate() - 1;
303
+ });
304
+ var utcDay$1 = utcDay;
305
+
306
+ function utcWeekday(i) {
307
+ return newInterval(function (date) {
308
+ date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
309
+ date.setUTCHours(0, 0, 0, 0);
310
+ }, function (date, step) {
311
+ date.setUTCDate(date.getUTCDate() + step * 7);
312
+ }, function (start, end) {
313
+ return (end - start) / durationWeek$1;
314
+ });
315
+ }
316
+
317
+ var utcSunday = utcWeekday(0);
318
+ utcWeekday(1);
319
+ utcWeekday(2);
320
+ utcWeekday(3);
321
+ utcWeekday(4);
322
+ utcWeekday(5);
323
+ utcWeekday(6);
324
+
325
+ var utcMonth = newInterval(function (date) {
326
+ date.setUTCDate(1);
327
+ date.setUTCHours(0, 0, 0, 0);
328
+ }, function (date, step) {
329
+ date.setUTCMonth(date.getUTCMonth() + step);
330
+ }, function (start, end) {
331
+ return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
332
+ }, function (date) {
333
+ return date.getUTCMonth();
334
+ });
335
+ var utcMonth$1 = utcMonth;
336
+
337
+ var utcYear = newInterval(function (date) {
338
+ date.setUTCMonth(0, 1);
339
+ date.setUTCHours(0, 0, 0, 0);
340
+ }, function (date, step) {
341
+ date.setUTCFullYear(date.getUTCFullYear() + step);
342
+ }, function (start, end) {
343
+ return end.getUTCFullYear() - start.getUTCFullYear();
344
+ }, function (date) {
345
+ return date.getUTCFullYear();
346
+ }); // An optimized implementation for this simple case.
347
+
348
+ utcYear.every = function (k) {
349
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function (date) {
350
+ date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
351
+ date.setUTCMonth(0, 1);
352
+ date.setUTCHours(0, 0, 0, 0);
353
+ }, function (date, step) {
354
+ date.setUTCFullYear(date.getUTCFullYear() + step * k);
355
+ });
356
+ };
357
+
358
+ var utcYear$1 = utcYear;
359
+
360
+ function ascending(a, b) {
361
+ return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
362
+ }
363
+
364
+ function bisector(f) {
365
+ let delta = f;
366
+ let compare1 = f;
367
+ let compare2 = f;
368
+
369
+ if (f.length !== 2) {
370
+ delta = (d, x) => f(d) - x;
371
+
372
+ compare1 = ascending;
373
+
374
+ compare2 = (d, x) => ascending(f(d), x);
375
+ }
376
+
377
+ function left(a, x, lo = 0, hi = a.length) {
378
+ if (lo < hi) {
379
+ if (compare1(x, x) !== 0) return hi;
380
+
381
+ do {
382
+ const mid = lo + hi >>> 1;
383
+ if (compare2(a[mid], x) < 0) lo = mid + 1;else hi = mid;
384
+ } while (lo < hi);
385
+ }
386
+
387
+ return lo;
388
+ }
389
+
390
+ function right(a, x, lo = 0, hi = a.length) {
391
+ if (lo < hi) {
392
+ if (compare1(x, x) !== 0) return hi;
393
+
394
+ do {
395
+ const mid = lo + hi >>> 1;
396
+ if (compare2(a[mid], x) <= 0) lo = mid + 1;else hi = mid;
397
+ } while (lo < hi);
398
+ }
399
+
400
+ return lo;
401
+ }
402
+
403
+ function center(a, x, lo = 0, hi = a.length) {
404
+ const i = left(a, x, lo, hi - 1);
405
+ return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;
406
+ }
407
+
408
+ return {
409
+ left,
410
+ center,
411
+ right
412
+ };
413
+ }
414
+
415
+ var e10 = Math.sqrt(50),
416
+ e5 = Math.sqrt(10),
417
+ e2 = Math.sqrt(2);
418
+ function tickStep(start, stop, count) {
419
+ var step0 = Math.abs(stop - start) / Math.max(0, count),
420
+ step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),
421
+ error = step0 / step1;
422
+ if (error >= e10) step1 *= 10;else if (error >= e5) step1 *= 5;else if (error >= e2) step1 *= 2;
423
+ return stop < start ? -step1 : step1;
424
+ }
425
+
82
426
  const t0 = new Date();
83
427
 
84
428
  function localYear(y) {
@@ -96,10 +440,10 @@
96
440
  return localWeekNum(new Date(d));
97
441
  }
98
442
  function localDayOfYear(d) {
99
- return d3Time.timeDay.count(localYear(d.getFullYear()) - 1, d);
443
+ return timeDay.count(localYear(d.getFullYear()) - 1, d);
100
444
  }
101
445
  function localWeekNum(d) {
102
- return d3Time.timeWeek.count(localYear(d.getFullYear()) - 1, d);
446
+ return sunday.count(localYear(d.getFullYear()) - 1, d);
103
447
  }
104
448
  function localFirst(y) {
105
449
  return localYear(y).getDay();
@@ -121,11 +465,11 @@
121
465
  }
122
466
  function utcDayOfYear(d) {
123
467
  const y = Date.UTC(d.getUTCFullYear(), 0, 1);
124
- return d3Time.utcDay.count(y - 1, d);
468
+ return utcDay$1.count(y - 1, d);
125
469
  }
126
470
  function utcWeekNum(d) {
127
471
  const y = Date.UTC(d.getUTCFullYear(), 0, 1);
128
- return d3Time.utcWeek.count(y - 1, d);
472
+ return utcSunday.count(y - 1, d);
129
473
  }
130
474
  function utcFirst(y) {
131
475
  t0.setTime(Date.UTC(y, 0, 1));
@@ -222,30 +566,30 @@
222
566
  }
223
567
 
224
568
  const timeIntervals = {
225
- [YEAR]: d3Time.timeYear,
226
- [QUARTER]: d3Time.timeMonth.every(3),
227
- [MONTH]: d3Time.timeMonth,
228
- [WEEK]: d3Time.timeWeek,
229
- [DATE]: d3Time.timeDay,
230
- [DAY]: d3Time.timeDay,
231
- [DAYOFYEAR]: d3Time.timeDay,
232
- [HOURS]: d3Time.timeHour,
233
- [MINUTES]: d3Time.timeMinute,
234
- [SECONDS]: d3Time.timeSecond,
235
- [MILLISECONDS]: d3Time.timeMillisecond
569
+ [YEAR]: timeYear,
570
+ [QUARTER]: timeMonth.every(3),
571
+ [MONTH]: timeMonth,
572
+ [WEEK]: sunday,
573
+ [DATE]: timeDay,
574
+ [DAY]: timeDay,
575
+ [DAYOFYEAR]: timeDay,
576
+ [HOURS]: timeHour,
577
+ [MINUTES]: timeMinute,
578
+ [SECONDS]: utcSecond,
579
+ [MILLISECONDS]: utcMillisecond
236
580
  };
237
581
  const utcIntervals = {
238
- [YEAR]: d3Time.utcYear,
239
- [QUARTER]: d3Time.utcMonth.every(3),
240
- [MONTH]: d3Time.utcMonth,
241
- [WEEK]: d3Time.utcWeek,
242
- [DATE]: d3Time.utcDay,
243
- [DAY]: d3Time.utcDay,
244
- [DAYOFYEAR]: d3Time.utcDay,
245
- [HOURS]: d3Time.utcHour,
246
- [MINUTES]: d3Time.utcMinute,
247
- [SECONDS]: d3Time.utcSecond,
248
- [MILLISECONDS]: d3Time.utcMillisecond
582
+ [YEAR]: utcYear$1,
583
+ [QUARTER]: utcMonth$1.every(3),
584
+ [MONTH]: utcMonth$1,
585
+ [WEEK]: utcSunday,
586
+ [DATE]: utcDay$1,
587
+ [DAY]: utcDay$1,
588
+ [DAYOFYEAR]: utcDay$1,
589
+ [HOURS]: utcHour$1,
590
+ [MINUTES]: utcMinute$1,
591
+ [SECONDS]: utcSecond,
592
+ [MILLISECONDS]: utcMillisecond
249
593
  };
250
594
  function timeInterval(unit) {
251
595
  return timeIntervals[unit];
@@ -296,19 +640,19 @@
296
640
  const ext = opt.extent,
297
641
  max = opt.maxbins || 40,
298
642
  target = Math.abs(vegaUtil.span(ext)) / max;
299
- let i = d3Array.bisector(i => i[2]).right(intervals, target),
643
+ let i = bisector(i => i[2]).right(intervals, target),
300
644
  units,
301
645
  step;
302
646
 
303
647
  if (i === intervals.length) {
304
- units = Year, step = d3Array.tickStep(ext[0] / durationYear, ext[1] / durationYear, max);
648
+ units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);
305
649
  } else if (i) {
306
650
  i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];
307
651
  units = i[0];
308
652
  step = i[1];
309
653
  } else {
310
654
  units = Milli;
311
- step = Math.max(d3Array.tickStep(ext[0], ext[1], max), 1);
655
+ step = Math.max(tickStep(ext[0], ext[1], max), 1);
312
656
  }
313
657
 
314
658
  return {
@@ -347,4 +691,4 @@
347
691
 
348
692
  Object.defineProperty(exports, '__esModule', { value: true });
349
693
 
350
- })));
694
+ }));
@@ -1,2 +1,2 @@
1
- var vega=function(t,e){"use strict";const n="year",r="quarter",u="month",o="week",i="date",c="day",a="dayofyear",f="hours",s="minutes",l="seconds",g="milliseconds",T=[n,r,u,o,i,c,a,f,s,l,g],h=T.reduce((t,e,n)=>(t[e]=1+n,t),{});function U(t){const n=e.array(t).slice(),r={};n.length||e.error("Missing time unit."),n.forEach(t=>{e.hasOwnProperty(h,t)?r[t]=1:e.error("Invalid time unit: ".concat(t,"."))});return(r.week||r.day?1:0)+(r.quarter||r.month||r.date?1:0)+(r.dayofyear?1:0)>1&&e.error("Incompatible time units: ".concat(t)),n.sort((t,e)=>h[t]-h[e]),n}const M={[n]:"%Y ",[r]:"Q%q ",[u]:"%b ",[i]:"%d ",[o]:"W%U ",[c]:"%a ",[a]:"%j ",[f]:"%H:00",[s]:"00:%M",[l]:":%S",[g]:".%L",["".concat(n,"-").concat(u)]:"%Y-%m ",["".concat(n,"-").concat(u,"-").concat(i)]:"%Y-%m-%d ",["".concat(f,"-").concat(s)]:"%H:%M"};var C=new Date,D=new Date;function m(t,e,n,r){function u(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return u.floor=function(e){return t(e=new Date(+e)),e},u.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},u.round=function(t){var e=u(t),n=u.ceil(t);return t-e<n-t?e:n},u.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},u.range=function(n,r,o){var i,c=[];if(n=u.ceil(n),o=null==o?1:Math.floor(o),!(n<r&&o>0))return c;do{c.push(i=new Date(+n)),e(n,o),t(n)}while(i<n&&n<r);return c},u.filter=function(n){return m((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(u.count=function(e,r){return C.setTime(+e),D.setTime(+r),t(C),t(D),Math.floor(n(C,D))},u.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?u.filter(r?function(e){return r(e)%t==0}:function(e){return u.count(0,e)%t==0}):u:null}),u}var F=m((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));F.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?m((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):F:null};var Y=1e3,d=6e4,y=36e5,w=864e5,v=6048e5,H=m((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getUTCSeconds()})),S=m((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Y)}),(function(t,e){t.setTime(+t+e*d)}),(function(t,e){return(e-t)/d}),(function(t){return t.getMinutes()})),O=m((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*Y-t.getMinutes()*d)}),(function(t,e){t.setTime(+t+e*y)}),(function(t,e){return(e-t)/y}),(function(t){return t.getHours()})),E=m(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*d)/w,t=>t.getDate()-1);function q(t){return m((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*d)/v}))}var z=q(0),I=(q(1),q(2),q(3),q(4),q(5),q(6),m((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}))),k=m((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));k.every=function(t){return isFinite(t=Math.floor(t))&&t>0?m((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var p=m((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*d)}),(function(t,e){return(e-t)/d}),(function(t){return t.getUTCMinutes()})),N=m((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*y)}),(function(t,e){return(e-t)/y}),(function(t){return t.getUTCHours()})),b=m((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/w}),(function(t){return t.getUTCDate()-1}));function A(t){return m((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/v}))}var x=A(0),R=(A(1),A(2),A(3),A(4),A(5),A(6),m((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}))),L=m((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));L.every=function(t){return isFinite(t=Math.floor(t))&&t>0?m((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};const j=new Date;function Q(t){return j.setFullYear(t),j.setMonth(0),j.setDate(1),j.setHours(0,0,0,0),j}function W(t){return E.count(Q(t.getFullYear())-1,t)}function B(t){return z.count(Q(t.getFullYear())-1,t)}function K(t){return Q(t).getDay()}function P(t,e,n,r,u,o,i){if(0<=t&&t<100){const c=new Date(-1,e,n,r,u,o,i);return c.setFullYear(t),c}return new Date(t,e,n,r,u,o,i)}function _(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return b.count(e-1,t)}function G(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return x.count(e-1,t)}function J(t){return j.setTime(Date.UTC(t,0,1)),j.getUTCDay()}function V(t,e,n,r,u,o,i){if(0<=t&&t<100){const t=new Date(Date.UTC(-1,e,n,r,u,o,i));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(t,e,n,r,u,o,i))}function X(t,T,h,U,M){const C=T||1,D=e.peek(t),m=(t,e,n)=>function(t,e,n,r){const u=n<=1?t:r?(e,u)=>r+n*Math.floor((t(e,u)-r)/n):(e,r)=>n*Math.floor(t(e,r)/n);return e?(t,n)=>e(u(t,n),n):u}(h[n=n||t],U[n],t===D&&C,e),F=new Date,Y=e.toSet(t),d=Y.year?m(n):e.constant(2012),y=Y.month?m(u):Y.quarter?m(r):e.zero,w=Y.week&&Y.day?m(c,1,o+c):Y.week?m(o,1):Y.day?m(c,1):Y.date?m(i,1):Y.dayofyear?m(a,1):e.one,v=Y.hours?m(f):e.zero,H=Y.minutes?m(s):e.zero,S=Y.seconds?m(l):e.zero,O=Y.milliseconds?m(g):e.zero;return function(t){F.setTime(+t);const e=d(F);return M(e,y(F),w(F,e),v(F),H(F),S(F),O(F))}}function Z(t,e,n){return e+7*t-(n+6)%7}const $={[n]:t=>t.getFullYear(),[r]:t=>Math.floor(t.getMonth()/3),[u]:t=>t.getMonth(),[i]:t=>t.getDate(),[f]:t=>t.getHours(),[s]:t=>t.getMinutes(),[l]:t=>t.getSeconds(),[g]:t=>t.getMilliseconds(),[a]:t=>W(t),[o]:t=>B(t),[o+c]:(t,e)=>Z(B(t),t.getDay(),K(e)),[c]:(t,e)=>Z(1,t.getDay(),K(e))},tt={[r]:t=>3*t,[o]:(t,e)=>Z(t,0,K(e))};const et={[n]:t=>t.getUTCFullYear(),[r]:t=>Math.floor(t.getUTCMonth()/3),[u]:t=>t.getUTCMonth(),[i]:t=>t.getUTCDate(),[f]:t=>t.getUTCHours(),[s]:t=>t.getUTCMinutes(),[l]:t=>t.getUTCSeconds(),[g]:t=>t.getUTCMilliseconds(),[a]:t=>_(t),[o]:t=>G(t),[c]:(t,e)=>Z(1,t.getUTCDay(),J(e)),[o+c]:(t,e)=>Z(G(t),t.getUTCDay(),J(e))},nt={[r]:t=>3*t,[o]:(t,e)=>Z(t,0,J(e))};const rt={[n]:k,[r]:I.every(3),[u]:I,[o]:z,[i]:E,[c]:E,[a]:E,[f]:O,[s]:S,[l]:H,[g]:F},ut={[n]:L,[r]:R.every(3),[u]:R,[o]:x,[i]:b,[c]:b,[a]:b,[f]:N,[s]:p,[l]:H,[g]:F};function ot(t){return rt[t]}function it(t){return ut[t]}function ct(t,e,n){return t?t.offset(e,n):void 0}function at(t,e,n,r){return t?t.range(e,n,r):void 0}function ft(t){let e=t,n=t;function r(t,e,r,u){for(null==r&&(r=0),null==u&&(u=t.length);r<u;){const o=r+u>>>1;n(t[o],e)<0?r=o+1:u=o}return r}return 1===t.length&&(e=(e,n)=>t(e)-n,n=function(t){return(e,n)=>{return(r=t(e))<(u=n)?-1:r>u?1:r>=u?0:NaN;var r,u}}(t)),{left:r,center:function(t,n,u,o){null==u&&(u=0),null==o&&(o=t.length);const i=r(t,n,u,o-1);return i>u&&e(t[i-1],n)>-e(t[i],n)?i-1:i},right:function(t,e,r,u){for(null==r&&(r=0),null==u&&(u=t.length);r<u;){const o=r+u>>>1;n(t[o],e)>0?u=o:r=o+1}return r}}}var st=Math.sqrt(50),lt=Math.sqrt(10),gt=Math.sqrt(2);function Tt(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),u=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/u;return o>=st?u*=10:o>=lt?u*=5:o>=gt&&(u*=2),e<t?-u:u}const ht=1e3,Ut=6e4,Mt=36e5,Ct=864e5,Dt=2592e6,mt=31536e6,Ft=[n,u,i,f,s,l,g],Yt=Ft.slice(0,-1),dt=Yt.slice(0,-1),yt=dt.slice(0,-1),wt=yt.slice(0,-1),vt=[n,u],Ht=[n],St=[[Yt,1,ht],[Yt,5,5e3],[Yt,15,15e3],[Yt,30,3e4],[dt,1,Ut],[dt,5,3e5],[dt,15,9e5],[dt,30,18e5],[yt,1,Mt],[yt,3,108e5],[yt,6,216e5],[yt,12,432e5],[wt,1,Ct],[[n,o],1,6048e5],[vt,1,Dt],[vt,3,7776e6],[Ht,1,mt]];return t.DATE=i,t.DAY=c,t.DAYOFYEAR=a,t.HOURS=f,t.MILLISECONDS=g,t.MINUTES=s,t.MONTH=u,t.QUARTER=r,t.SECONDS=l,t.TIME_UNITS=T,t.WEEK=o,t.YEAR=n,t.dayofyear=function(t){return W(new Date(t))},t.timeBin=function(t){const n=t.extent,r=t.maxbins||40,u=Math.abs(e.span(n))/r;let o,i,c=ft(t=>t[2]).right(St,u);return c===St.length?(o=Ht,i=Tt(n[0]/mt,n[1]/mt,r)):c?(c=St[u/St[c-1][2]<St[c][2]/u?c-1:c],o=c[0],i=c[1]):(o=Ft,i=Math.max(Tt(n[0],n[1],r),1)),{units:o,step:i}},t.timeFloor=function(t,e){return X(t,e||1,$,tt,P)},t.timeInterval=ot,t.timeOffset=function(t,e,n){return ct(ot(t),e,n)},t.timeSequence=function(t,e,n,r){return at(ot(t),e,n,r)},t.timeUnitSpecifier=function(t,n){const r=e.extend({},M,n),u=U(t),o=u.length;let i,c,a="",f=0;for(f=0;f<o;)for(i=u.length;i>f;--i)if(c=u.slice(f,i).join("-"),null!=r[c]){a+=r[c],f=i;break}return a.trim()},t.timeUnits=U,t.utcFloor=function(t,e){return X(t,e||1,et,nt,V)},t.utcInterval=it,t.utcOffset=function(t,e,n){return ct(it(t),e,n)},t.utcSequence=function(t,e,n,r){return at(it(t),e,n,r)},t.utcdayofyear=function(t){return _(new Date(t))},t.utcweek=function(t){return G(new Date(t))},t.week=function(t){return B(new Date(t))},t}({},vega);
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("vega-util")):"function"==typeof define&&define.amd?define(["exports","vega-util"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).vega={},t.vega)}(this,(function(t,e){"use strict";const n="year",r="quarter",o="month",u="week",i="date",c="day",f="dayofyear",a="hours",s="minutes",l="seconds",g="milliseconds",T=[n,r,o,u,i,c,f,a,s,l,g],h=T.reduce(((t,e,n)=>(t[e]=1+n,t)),{});function M(t){const n=e.array(t).slice(),r={};n.length||e.error("Missing time unit."),n.forEach((t=>{e.hasOwnProperty(h,t)?r[t]=1:e.error("Invalid time unit: ".concat(t,"."))}));return(r.week||r.day?1:0)+(r.quarter||r.month||r.date?1:0)+(r.dayofyear?1:0)>1&&e.error("Incompatible time units: ".concat(t)),n.sort(((t,e)=>h[t]-h[e])),n}const U={[n]:"%Y ",[r]:"Q%q ",[o]:"%b ",[i]:"%d ",[u]:"W%U ",[c]:"%a ",[f]:"%j ",[a]:"%H:00",[s]:"00:%M",[l]:":%S",[g]:".%L",["".concat(n,"-").concat(o)]:"%Y-%m ",["".concat(n,"-").concat(o,"-").concat(i)]:"%Y-%m-%d ",["".concat(a,"-").concat(s)]:"%H:%M"};var C=new Date,d=new Date;function D(t,e,n,r){function o(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return o.floor=function(e){return t(e=new Date(+e)),e},o.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},o.round=function(t){var e=o(t),n=o.ceil(t);return t-e<n-t?e:n},o.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},o.range=function(n,r,u){var i,c=[];if(n=o.ceil(n),u=null==u?1:Math.floor(u),!(n<r&&u>0))return c;do{c.push(i=new Date(+n)),e(n,u),t(n)}while(i<n&&n<r);return c},o.filter=function(n){return D((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;e(t,-1),!n(t););else for(;--r>=0;)for(;e(t,1),!n(t););}))},n&&(o.count=function(e,r){return C.setTime(+e),d.setTime(+r),t(C),t(d),Math.floor(n(C,d))},o.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?o.filter(r?function(e){return r(e)%t==0}:function(e){return o.count(0,e)%t==0}):o:null}),o}var m=D((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));m.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?D((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):m:null};var y=m;const F=1e3,Y=6e4,v=36e5,w=864e5,H=6048e5;var S=D((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*F)}),(function(t,e){return(e-t)/F}),(function(t){return t.getUTCSeconds()})),p=D((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getMinutes()})),O=D((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*F-t.getMinutes()*Y)}),(function(t,e){t.setTime(+t+e*v)}),(function(t,e){return(e-t)/v}),(function(t){return t.getHours()})),E=D((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/w),(t=>t.getDate()-1));function b(t){return D((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Y)/H}))}var q=b(0);b(1),b(2),b(3),b(4),b(5),b(6);var N=D((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),z=D((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));z.every=function(t){return isFinite(t=Math.floor(t))&&t>0?D((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};var I=z,k=D((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Y)}),(function(t,e){return(e-t)/Y}),(function(t){return t.getUTCMinutes()})),x=D((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*v)}),(function(t,e){return(e-t)/v}),(function(t){return t.getUTCHours()})),A=D((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/w}),(function(t){return t.getUTCDate()-1}));function R(t){return D((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/H}))}var j=R(0);R(1),R(2),R(3),R(4),R(5),R(6);var L=D((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),_=D((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));_.every=function(t){return isFinite(t=Math.floor(t))&&t>0?D((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};var P=_;function Q(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}var W=Math.sqrt(50),B=Math.sqrt(10),K=Math.sqrt(2);function G(t,e,n){var r=Math.abs(e-t)/Math.max(0,n),o=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),u=r/o;return u>=W?o*=10:u>=B?o*=5:u>=K&&(o*=2),e<t?-o:o}const J=new Date;function V(t){return J.setFullYear(t),J.setMonth(0),J.setDate(1),J.setHours(0,0,0,0),J}function X(t){return E.count(V(t.getFullYear())-1,t)}function Z(t){return q.count(V(t.getFullYear())-1,t)}function $(t){return V(t).getDay()}function tt(t,e,n,r,o,u,i){if(0<=t&&t<100){const c=new Date(-1,e,n,r,o,u,i);return c.setFullYear(t),c}return new Date(t,e,n,r,o,u,i)}function et(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return A.count(e-1,t)}function nt(t){const e=Date.UTC(t.getUTCFullYear(),0,1);return j.count(e-1,t)}function rt(t){return J.setTime(Date.UTC(t,0,1)),J.getUTCDay()}function ot(t,e,n,r,o,u,i){if(0<=t&&t<100){const t=new Date(Date.UTC(-1,e,n,r,o,u,i));return t.setUTCFullYear(n.y),t}return new Date(Date.UTC(t,e,n,r,o,u,i))}function ut(t,T,h,M,U){const C=T||1,d=e.peek(t),D=(t,e,n)=>function(t,e,n,r){const o=n<=1?t:r?(e,o)=>r+n*Math.floor((t(e,o)-r)/n):(e,r)=>n*Math.floor(t(e,r)/n);return e?(t,n)=>e(o(t,n),n):o}(h[n=n||t],M[n],t===d&&C,e),m=new Date,y=e.toSet(t),F=y.year?D(n):e.constant(2012),Y=y.month?D(o):y.quarter?D(r):e.zero,v=y.week&&y.day?D(c,1,u+c):y.week?D(u,1):y.day?D(c,1):y.date?D(i,1):y.dayofyear?D(f,1):e.one,w=y.hours?D(a):e.zero,H=y.minutes?D(s):e.zero,S=y.seconds?D(l):e.zero,p=y.milliseconds?D(g):e.zero;return function(t){m.setTime(+t);const e=F(m);return U(e,Y(m),v(m,e),w(m),H(m),S(m),p(m))}}function it(t,e,n){return e+7*t-(n+6)%7}const ct={[n]:t=>t.getFullYear(),[r]:t=>Math.floor(t.getMonth()/3),[o]:t=>t.getMonth(),[i]:t=>t.getDate(),[a]:t=>t.getHours(),[s]:t=>t.getMinutes(),[l]:t=>t.getSeconds(),[g]:t=>t.getMilliseconds(),[f]:t=>X(t),[u]:t=>Z(t),[u+c]:(t,e)=>it(Z(t),t.getDay(),$(e)),[c]:(t,e)=>it(1,t.getDay(),$(e))},ft={[r]:t=>3*t,[u]:(t,e)=>it(t,0,$(e))};const at={[n]:t=>t.getUTCFullYear(),[r]:t=>Math.floor(t.getUTCMonth()/3),[o]:t=>t.getUTCMonth(),[i]:t=>t.getUTCDate(),[a]:t=>t.getUTCHours(),[s]:t=>t.getUTCMinutes(),[l]:t=>t.getUTCSeconds(),[g]:t=>t.getUTCMilliseconds(),[f]:t=>et(t),[u]:t=>nt(t),[c]:(t,e)=>it(1,t.getUTCDay(),rt(e)),[u+c]:(t,e)=>it(nt(t),t.getUTCDay(),rt(e))},st={[r]:t=>3*t,[u]:(t,e)=>it(t,0,rt(e))};const lt={[n]:I,[r]:N.every(3),[o]:N,[u]:q,[i]:E,[c]:E,[f]:E,[a]:O,[s]:p,[l]:S,[g]:y},gt={[n]:P,[r]:L.every(3),[o]:L,[u]:j,[i]:A,[c]:A,[f]:A,[a]:x,[s]:k,[l]:S,[g]:y};function Tt(t){return lt[t]}function ht(t){return gt[t]}function Mt(t,e,n){return t?t.offset(e,n):void 0}function Ut(t,e,n,r){return t?t.range(e,n,r):void 0}const Ct=1e3,dt=6e4,Dt=36e5,mt=864e5,yt=2592e6,Ft=31536e6,Yt=[n,o,i,a,s,l,g],vt=Yt.slice(0,-1),wt=vt.slice(0,-1),Ht=wt.slice(0,-1),St=Ht.slice(0,-1),pt=[n,o],Ot=[n],Et=[[vt,1,Ct],[vt,5,5e3],[vt,15,15e3],[vt,30,3e4],[wt,1,dt],[wt,5,3e5],[wt,15,9e5],[wt,30,18e5],[Ht,1,Dt],[Ht,3,108e5],[Ht,6,216e5],[Ht,12,432e5],[St,1,mt],[[n,u],1,6048e5],[pt,1,yt],[pt,3,7776e6],[Ot,1,Ft]];t.DATE=i,t.DAY=c,t.DAYOFYEAR=f,t.HOURS=a,t.MILLISECONDS=g,t.MINUTES=s,t.MONTH=o,t.QUARTER=r,t.SECONDS=l,t.TIME_UNITS=T,t.WEEK=u,t.YEAR=n,t.dayofyear=function(t){return X(new Date(t))},t.timeBin=function(t){const n=t.extent,r=t.maxbins||40,o=Math.abs(e.span(n))/r;let u,i,c=function(t){let e=t,n=t,r=t;function o(t,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(o<u){if(0!==n(e,e))return u;do{const n=o+u>>>1;r(t[n],e)<0?o=n+1:u=n}while(o<u)}return o}return 2!==t.length&&(e=(e,n)=>t(e)-n,n=Q,r=(e,n)=>Q(t(e),n)),{left:o,center:function(t,n){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const u=o(t,n,r,(arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length)-1);return u>r&&e(t[u-1],n)>-e(t[u],n)?u-1:u},right:function(t,e){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.length;if(o<u){if(0!==n(e,e))return u;do{const n=o+u>>>1;r(t[n],e)<=0?o=n+1:u=n}while(o<u)}return o}}}((t=>t[2])).right(Et,o);return c===Et.length?(u=Ot,i=G(n[0]/Ft,n[1]/Ft,r)):c?(c=Et[o/Et[c-1][2]<Et[c][2]/o?c-1:c],u=c[0],i=c[1]):(u=Yt,i=Math.max(G(n[0],n[1],r),1)),{units:u,step:i}},t.timeFloor=function(t,e){return ut(t,e||1,ct,ft,tt)},t.timeInterval=Tt,t.timeOffset=function(t,e,n){return Mt(Tt(t),e,n)},t.timeSequence=function(t,e,n,r){return Ut(Tt(t),e,n,r)},t.timeUnitSpecifier=function(t,n){const r=e.extend({},U,n),o=M(t),u=o.length;let i,c,f="",a=0;for(a=0;a<u;)for(i=o.length;i>a;--i)if(c=o.slice(a,i).join("-"),null!=r[c]){f+=r[c],a=i;break}return f.trim()},t.timeUnits=M,t.utcFloor=function(t,e){return ut(t,e||1,at,st,ot)},t.utcInterval=ht,t.utcOffset=function(t,e,n){return Mt(ht(t),e,n)},t.utcSequence=function(t,e,n,r){return Ut(ht(t),e,n,r)},t.utcdayofyear=function(t){return et(new Date(t))},t.utcweek=function(t){return nt(new Date(t))},t.week=function(t){return Z(new Date(t))},Object.defineProperty(t,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=vega-time.min.js.map
@@ -1 +1 @@
1
- {"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-time/src/utcMinute.js","../../../node_modules/d3-time/src/utcHour.js","../../../node_modules/d3-time/src/utcDay.js","../../../node_modules/d3-time/src/utcWeek.js","../../../node_modules/d3-time/src/utcMonth.js","../../../node_modules/d3-time/src/utcYear.js","../src/util.js","../src/floor.js","../src/interval.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/ticks.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","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(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 = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\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 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 = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(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 = function(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 = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\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 default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\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 ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) 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 ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n step = -step;\n start = Math.ceil(start * step);\n stop = Math.floor(stop * step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\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","newInterval","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","minute","getSeconds","getMinutes","hour","getHours","day","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","month","setMonth","getMonth","getFullYear","year","setFullYear","utcMinute","setUTCSeconds","getUTCMinutes","utcHour","setUTCMinutes","getUTCHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","localYear","y","localDayOfYear","timeDay","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","zero","one","v","week","firstDay","localGet","localInv","q","w","utcGet","getUTCMilliseconds","utcInv","timeIntervals","timeYear","timeMonth","timeHour","timeMinute","timeSecond","timeMillisecond","utcIntervals","utcSecond","utcMillisecond","timeInterval","utcInterval","ival","undefined","sequence","delta","compare","left","x","lo","hi","mid","ascending","NaN","ascendingComparator","center","right","e10","sqrt","e5","e2","tickStep","step0","abs","max","step1","pow","log","LN10","durationMonth","durationYear","Milli","Seconds","Minutes","Hours","Day","Month","Year","intervals","opt","ext","extent","maxbins","target","span","bisector","specifiers","extend","n","fmt","join","trim"],"mappings":"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"}
1
+ {"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-time/src/utcMinute.js","../../../node_modules/d3-time/src/utcHour.js","../../../node_modules/d3-time/src/utcDay.js","../../../node_modules/d3-time/src/utcWeek.js","../../../node_modules/d3-time/src/utcMonth.js","../../../node_modules/d3-time/src/utcYear.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/ticks.js","../src/util.js","../src/floor.js","../src/interval.js","../src/bin.js","../../../node_modules/d3-array/src/bisector.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","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(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 = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\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 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 = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(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 = function(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 = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var 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 interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\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 default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var 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","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function ticks(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\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","import ascending from \"./ascending.js\";\n\nexport default function bisector(f) {\n let delta = f;\n let compare1 = f;\n let compare2 = f;\n\n if (f.length !== 2) {\n delta = (d, x) => f(d) - x;\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\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"],"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","concat","t0","Date","t1","newInterval","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","utcMillisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","utcSecond","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","timeHour","getHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","weekday","getDay","sunday","weekday$1","timeMonth","setMonth","getMonth","getFullYear","year","setFullYear","timeYear","utcMinute$1","setUTCSeconds","getUTCMinutes","utcHour$1","setUTCMinutes","getUTCHours","utcDay$1","setUTCHours","setUTCDate","getUTCDate","utcWeekday","getUTCDay","utcSunday","utcMonth$1","setUTCMonth","getUTCMonth","getUTCFullYear","utcYear","setUTCFullYear","utcYear$1","ascending","NaN","e10","sqrt","e5","e2","tickStep","step0","abs","max","step1","pow","log","LN10","localYear","y","localDayOfYear","localWeekNum","timeWeek","localFirst","localDate","H","M","S","L","utcDayOfYear","UTC","utcDay","utcWeekNum","utcWeek","utcFirst","utcDate","get","inv","newDate","s","peek","_","p","key","f","phase","getUnit","t","toSet","constant","zero","one","v","week","day","firstDay","localGet","localInv","q","w","utcGet","getUTCMilliseconds","utcInv","timeIntervals","timeSecond","timeMillisecond","utcIntervals","utcMonth","utcHour","utcMinute","timeInterval","utcInterval","ival","undefined","sequence","durationMonth","durationYear","Milli","Seconds","Minutes","Hours","Day","Month","Year","intervals","opt","ext","extent","maxbins","target","span","delta","compare1","compare2","left","x","lo","hi","mid","center","right","bisector","specifiers","extend","n","fmt","join","trim"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vega-time",
3
- "version": "2.0.4",
3
+ "version": "2.1.0",
4
4
  "description": "JavaScript date/time utilities for Vega.",
5
5
  "keywords": [
6
6
  "vega",
@@ -22,9 +22,9 @@
22
22
  "prepublishOnly": "yarn test && yarn build"
23
23
  },
24
24
  "dependencies": {
25
- "d3-array": "^2.7.1",
26
- "d3-time": "^2.0.0",
25
+ "d3-array": "^3.1.1",
26
+ "d3-time": "^3.0.0",
27
27
  "vega-util": "^1.15.2"
28
28
  },
29
- "gitHead": "4affcbedb9d14815dbb6d3b250ed231b54fc95c0"
29
+ "gitHead": "9a3faca4395cade9ecdfde90af98f1c53e9916b2"
30
30
  }