vega-time 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
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})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vega-util")):"function"==typeof define&&define.amd?define(["exports","vega-util"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).vega={},e.vega)}(this,(function(e,t){"use strict";const n="year",r="quarter",o="month",u="week",s="date",a="day",i="dayofyear",l="hours",c="minutes",g="seconds",f="milliseconds",T=[n,r,o,u,s,a,i,l,c,g,f],h=T.reduce(((e,t,n)=>(e[t]=1+n,e)),{});function M(e){const n=t.array(e).slice(),l={};n.length||t.error("Missing time unit."),n.forEach((e=>{t.hasOwnProperty(h,e)?l[e]=1:t.error(`Invalid time unit: ${e}.`)}));return(l[u]||l[a]?1:0)+(l[r]||l[o]||l[s]?1:0)+(l[i]?1:0)>1&&t.error(`Incompatible time units: ${e}`),n.sort(((e,t)=>h[e]-h[t])),n}const U={[n]:"%Y ",[r]:"Q%q ",[o]:"%b ",[s]:"%d ",[u]:"W%U ",[a]:"%a ",[i]:"%j ",[l]:"%H:00",[c]:"00:%M",[g]:":%S",[f]:".%L",[`${n}-${o}`]:"%Y-%m ",[`${n}-${o}-${s}`]:"%Y-%m-%d ",[`${l}-${c}`]:"%H:%M"};const C=new Date,D=new Date;function d(e,t,n,r){function o(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return o.floor=t=>(e(t=new Date(+t)),t),o.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),o.round=e=>{const t=o(e),n=o.ceil(e);return e-t<n-e?t:n},o.offset=(e,n)=>(t(e=new Date(+e),null==n?1:Math.floor(n)),e),o.range=(n,r,u)=>{const s=[];if(n=o.ceil(n),u=null==u?1:Math.floor(u),!(n<r&&u>0))return s;let a;do{s.push(a=new Date(+n)),t(n,u),e(n)}while(a<n&&n<r);return s},o.filter=n=>d((t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)}),((e,r)=>{if(e>=e)if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););})),n&&(o.count=(t,r)=>(C.setTime(+t),D.setTime(+r),e(C),e(D),Math.floor(n(C,D))),o.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?o.filter(r?t=>r(t)%e==0:t=>o.count(0,t)%e==0):o:null)),o}const m=d((()=>{}),((e,t)=>{e.setTime(+e+t)}),((e,t)=>t-e));m.every=e=>(e=Math.floor(e),isFinite(e)&&e>0?e>1?d((t=>{t.setTime(Math.floor(t/e)*e)}),((t,n)=>{t.setTime(+t+n*e)}),((t,n)=>(n-t)/e)):m:null),m.range;const F=1e3,Y=6e4,y=36e5,w=864e5,v=6048e5,H=d((e=>{e.setTime(e-e.getMilliseconds())}),((e,t)=>{e.setTime(+e+t*F)}),((e,t)=>(t-e)/F),(e=>e.getUTCSeconds()));H.range;const S=d((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*F)}),((e,t)=>{e.setTime(+e+t*Y)}),((e,t)=>(t-e)/Y),(e=>e.getMinutes()));S.range;const p=d((e=>{e.setUTCSeconds(0,0)}),((e,t)=>{e.setTime(+e+t*Y)}),((e,t)=>(t-e)/Y),(e=>e.getUTCMinutes()));p.range;const N=d((e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*F-e.getMinutes()*Y)}),((e,t)=>{e.setTime(+e+t*y)}),((e,t)=>(t-e)/y),(e=>e.getHours()));N.range;const O=d((e=>{e.setUTCMinutes(0,0,0)}),((e,t)=>{e.setTime(+e+t*y)}),((e,t)=>(t-e)/y),(e=>e.getUTCHours()));O.range;const E=d((e=>e.setHours(0,0,0,0)),((e,t)=>e.setDate(e.getDate()+t)),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Y)/w),(e=>e.getDate()-1));E.range;const z=d((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/w),(e=>e.getUTCDate()-1));z.range;function I(e){return d((t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),((e,t)=>{e.setDate(e.getDate()+7*t)}),((e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Y)/v))}d((e=>{e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+t)}),((e,t)=>(t-e)/w),(e=>Math.floor(e/w))).range;const $=I(0),b=I(1),q=I(2),x=I(3),A=I(4),k=I(5),R=I(6);function j(e){return d((t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCDate(e.getUTCDate()+7*t)}),((e,t)=>(t-e)/v))}$.range,b.range,q.range,x.range,A.range,k.range,R.range;const L=j(0),Q=j(1),W=j(2),B=j(3),K=j(4),P=j(5),_=j(6);L.range,Q.range,W.range,B.range,K.range,P.range,_.range;const G=d((e=>{e.setDate(1),e.setHours(0,0,0,0)}),((e,t)=>{e.setMonth(e.getMonth()+t)}),((e,t)=>t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())),(e=>e.getMonth()));G.range;const J=d((e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)}),((e,t)=>t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())),(e=>e.getUTCMonth()));J.range;const V=d((e=>{e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,t)=>{e.setFullYear(e.getFullYear()+t)}),((e,t)=>t.getFullYear()-e.getFullYear()),(e=>e.getFullYear()));V.every=e=>isFinite(e=Math.floor(e))&&e>0?d((t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n*e)})):null,V.range;const X=d((e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)}),((e,t)=>t.getUTCFullYear()-e.getUTCFullYear()),(e=>e.getUTCFullYear()));function Z(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function ee(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function te(){return 0}X.every=e=>isFinite(e=Math.floor(e))&&e>0?d((t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)})):null,X.range;const ne=Math.sqrt(50),re=Math.sqrt(10),oe=Math.sqrt(2);function ue(e,t,n){const r=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(r)),u=r/Math.pow(10,o),s=u>=ne?10:u>=re?5:u>=oe?2:1;let a,i,l;return o<0?(l=Math.pow(10,-o)/s,a=Math.round(e*l),i=Math.round(t*l),a/l<e&&++a,i/l>t&&--i,l=-l):(l=Math.pow(10,o)*s,a=Math.round(e/l),i=Math.round(t/l),a*l<e&&++a,i*l>t&&--i),i<a&&.5<=n&&n<2?ue(e,t,2*n):[a,i,l]}function se(e,t,n){return ue(e=+e,t=+t,n=+n)[2]}function ae(e,t,n){n=+n;const r=(t=+t)<(e=+e),o=r?se(t,e,n):se(e,t,n);return(r?-1:1)*(o<0?1/-o:o)}const ie=new Date;function le(e){return ie.setFullYear(e),ie.setMonth(0),ie.setDate(1),ie.setHours(0,0,0,0),ie}function ce(e){return E.count(le(e.getFullYear())-1,e)}function ge(e){return $.count(le(e.getFullYear())-1,e)}function fe(e){return le(e).getDay()}function Te(e,t,n,r,o,u,s){if(0<=e&&e<100){const a=new Date(-1,t,n,r,o,u,s);return a.setFullYear(e),a}return new Date(e,t,n,r,o,u,s)}function he(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return z.count(t-1,e)}function Me(e){const t=Date.UTC(e.getUTCFullYear(),0,1);return L.count(t-1,e)}function Ue(e){return ie.setTime(Date.UTC(e,0,1)),ie.getUTCDay()}function Ce(e,t,n,r,o,u,s){if(0<=e&&e<100){const e=new Date(Date.UTC(-1,t,n,r,o,u,s));return e.setUTCFullYear(n.y),e}return new Date(Date.UTC(e,t,n,r,o,u,s))}function De(e,T,h,M,U){const C=T||1,D=t.peek(e),d=(e,t,n)=>function(e,t,n,r){const o=n<=1?e:r?(t,o)=>r+n*Math.floor((e(t,o)-r)/n):(t,r)=>n*Math.floor(e(t,r)/n);return t?(e,n)=>t(o(e,n),n):o}(h[n=n||e],M[n],e===D&&C,t),m=new Date,F=t.toSet(e),Y=F[n]?d(n):t.constant(2012),y=F[o]?d(o):F[r]?d(r):t.zero,w=F[u]&&F[a]?d(a,1,u+a):F[u]?d(u,1):F[a]?d(a,1):F[s]?d(s,1):F[i]?d(i,1):t.one,v=F[l]?d(l):t.zero,H=F[c]?d(c):t.zero,S=F[g]?d(g):t.zero,p=F[f]?d(f):t.zero;return function(e){m.setTime(+e);const t=Y(m);return U(t,y(m),w(m,t),v(m),H(m),S(m),p(m))}}function de(e,t,n){return t+7*e-(n+6)%7}const me={[n]:e=>e.getFullYear(),[r]:e=>Math.floor(e.getMonth()/3),[o]:e=>e.getMonth(),[s]:e=>e.getDate(),[l]:e=>e.getHours(),[c]:e=>e.getMinutes(),[g]:e=>e.getSeconds(),[f]:e=>e.getMilliseconds(),[i]:e=>ce(e),[u]:e=>ge(e),[u+a]:(e,t)=>de(ge(e),e.getDay(),fe(t)),[a]:(e,t)=>de(1,e.getDay(),fe(t))},Fe={[r]:e=>3*e,[u]:(e,t)=>de(e,0,fe(t))};const Ye={[n]:e=>e.getUTCFullYear(),[r]:e=>Math.floor(e.getUTCMonth()/3),[o]:e=>e.getUTCMonth(),[s]:e=>e.getUTCDate(),[l]:e=>e.getUTCHours(),[c]:e=>e.getUTCMinutes(),[g]:e=>e.getUTCSeconds(),[f]:e=>e.getUTCMilliseconds(),[i]:e=>he(e),[u]:e=>Me(e),[a]:(e,t)=>de(1,e.getUTCDay(),Ue(t)),[u+a]:(e,t)=>de(Me(e),e.getUTCDay(),Ue(t))},ye={[r]:e=>3*e,[u]:(e,t)=>de(e,0,Ue(t))};const we={[n]:V,[r]:G.every(3),[o]:G,[u]:$,[s]:E,[a]:E,[i]:E,[l]:N,[c]:S,[g]:H,[f]:m},ve={[n]:X,[r]:J.every(3),[o]:J,[u]:L,[s]:z,[a]:z,[i]:z,[l]:O,[c]:p,[g]:H,[f]:m};function He(e){return we[e]}function Se(e){return ve[e]}function pe(e,t,n){return e?e.offset(t,n):void 0}function Ne(e,t,n,r){return e?e.range(t,n,r):void 0}const Oe=1e3,Ee=6e4,ze=36e5,Ie=864e5,$e=2592e6,be=31536e6,qe=[n,o,s,l,c,g,f],xe=qe.slice(0,-1),Ae=xe.slice(0,-1),ke=Ae.slice(0,-1),Re=ke.slice(0,-1),je=[n,o],Le=[n],Qe=[[xe,1,Oe],[xe,5,5e3],[xe,15,15e3],[xe,30,3e4],[Ae,1,Ee],[Ae,5,3e5],[Ae,15,9e5],[Ae,30,18e5],[ke,1,ze],[ke,3,108e5],[ke,6,216e5],[ke,12,432e5],[Re,1,Ie],[[n,u],1,6048e5],[je,1,$e],[je,3,7776e6],[Le,1,be]];e.DATE=s,e.DAY=a,e.DAYOFYEAR=i,e.HOURS=l,e.MILLISECONDS=f,e.MINUTES=c,e.MONTH=o,e.QUARTER=r,e.SECONDS=g,e.TIME_UNITS=T,e.WEEK=u,e.YEAR=n,e.dayofyear=function(e){return ce(new Date(e))},e.timeBin=function(e){const n=e.extent,r=e.maxbins||40,o=Math.abs(t.span(n))/r;let u,s,a=function(e){let t,n,r;function o(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(o<u){if(0!==t(r,r))return u;do{const t=o+u>>>1;n(e[t],r)<0?o=t+1:u=t}while(o<u)}return o}return 2!==e.length?(t=Z,n=(t,n)=>Z(e(t),n),r=(t,n)=>e(t)-n):(t=e===Z||e===ee?e:te,n=e,r=e),{left:o,center:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const u=o(e,t,n,(arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length)-1);return u>n&&r(e[u-1],t)>-r(e[u],t)?u-1:u},right:function(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length;if(o<u){if(0!==t(r,r))return u;do{const t=o+u>>>1;n(e[t],r)<=0?o=t+1:u=t}while(o<u)}return o}}}((e=>e[2])).right(Qe,o);return a===Qe.length?(u=Le,s=ae(n[0]/be,n[1]/be,r)):a?(a=Qe[o/Qe[a-1][2]<Qe[a][2]/o?a-1:a],u=a[0],s=a[1]):(u=qe,s=Math.max(ae(n[0],n[1],r),1)),{units:u,step:s}},e.timeFloor=function(e,t){return De(e,t||1,me,Fe,Te)},e.timeInterval=He,e.timeOffset=function(e,t,n){return pe(He(e),t,n)},e.timeSequence=function(e,t,n,r){return Ne(He(e),t,n,r)},e.timeUnitSpecifier=function(e,n){const r=t.extend({},U,n),o=M(e),u=o.length;let s,a,i="",l=0;for(l=0;l<u;)for(s=o.length;s>l;--s)if(a=o.slice(l,s).join("-"),null!=r[a]){i+=r[a],l=s;break}return i.trim()},e.timeUnits=M,e.utcFloor=function(e,t){return De(e,t||1,Ye,ye,Ce)},e.utcInterval=Se,e.utcOffset=function(e,t,n){return pe(Se(e),t,n)},e.utcSequence=function(e,t,n,r){return Ne(Se(e),t,n,r)},e.utcdayofyear=function(e){return he(new Date(e))},e.utcweek=function(e){return Me(new Date(e))},e.week=function(e){return ge(new Date(e))}}));
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","../../../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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"}
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-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]}
@@ -17,23 +17,23 @@ const TIME_UNITS = [YEAR, QUARTER, MONTH, WEEK, DATE, DAY, DAYOFYEAR, HOURS, MIN
17
17
  const UNITS = TIME_UNITS.reduce((o, u, i) => (o[u] = 1 + i, o), {});
18
18
  function timeUnits(units) {
19
19
  const u = array(units).slice(),
20
- m = {}; // check validity
20
+ m = {};
21
21
 
22
+ // check validity
22
23
  if (!u.length) error('Missing time unit.');
23
24
  u.forEach(unit => {
24
25
  if (hasOwnProperty(UNITS, unit)) {
25
26
  m[unit] = 1;
26
27
  } else {
27
- error("Invalid time unit: ".concat(unit, "."));
28
+ error(`Invalid time unit: ${unit}.`);
28
29
  }
29
30
  });
30
31
  const numTypes = (m[WEEK] || m[DAY] ? 1 : 0) + (m[QUARTER] || m[MONTH] || m[DATE] ? 1 : 0) + (m[DAYOFYEAR] ? 1 : 0);
31
-
32
32
  if (numTypes > 1) {
33
- error("Incompatible time units: ".concat(units));
34
- } // ensure proper sort order
35
-
33
+ error(`Incompatible time units: ${units}`);
34
+ }
36
35
 
36
+ // ensure proper sort order
37
37
  u.sort((a, b) => UNITS[a] - UNITS[b]);
38
38
  return u;
39
39
  }
@@ -49,23 +49,21 @@ const defaultSpecifiers = {
49
49
  [MINUTES]: '00:%M',
50
50
  [SECONDS]: ':%S',
51
51
  [MILLISECONDS]: '.%L',
52
- ["".concat(YEAR, "-").concat(MONTH)]: '%Y-%m ',
53
- ["".concat(YEAR, "-").concat(MONTH, "-").concat(DATE)]: '%Y-%m-%d ',
54
- ["".concat(HOURS, "-").concat(MINUTES)]: '%H:%M'
52
+ [`${YEAR}-${MONTH}`]: '%Y-%m ',
53
+ [`${YEAR}-${MONTH}-${DATE}`]: '%Y-%m-%d ',
54
+ [`${HOURS}-${MINUTES}`]: '%H:%M'
55
55
  };
56
56
  function timeUnitSpecifier(units, specifiers) {
57
57
  const s = extend({}, defaultSpecifiers, specifiers),
58
- u = timeUnits(units),
59
- n = u.length;
58
+ u = timeUnits(units),
59
+ n = u.length;
60
60
  let fmt = '',
61
- start = 0,
62
- end,
63
- key;
64
-
61
+ start = 0,
62
+ end,
63
+ key;
65
64
  for (start = 0; start < n;) {
66
65
  for (end = u.length; end > start; --end) {
67
66
  key = u.slice(start, end).join('-');
68
-
69
67
  if (s[key] != null) {
70
68
  fmt += s[key];
71
69
  start = end;
@@ -73,12 +71,10 @@ function timeUnitSpecifier(units, specifiers) {
73
71
  }
74
72
  }
75
73
  }
76
-
77
74
  return fmt.trim();
78
75
  }
79
76
 
80
77
  const t0 = new Date();
81
-
82
78
  function localYear(y) {
83
79
  t0.setFullYear(y);
84
80
  t0.setMonth(0);
@@ -86,7 +82,6 @@ function localYear(y) {
86
82
  t0.setHours(0, 0, 0, 0);
87
83
  return t0;
88
84
  }
89
-
90
85
  function dayofyear(d) {
91
86
  return localDayOfYear(new Date(d));
92
87
  }
@@ -108,7 +103,6 @@ function localDate(y, m, d, H, M, S, L) {
108
103
  date.setFullYear(y);
109
104
  return date;
110
105
  }
111
-
112
106
  return new Date(y, m, d, H, M, S, L);
113
107
  }
114
108
  function utcdayofyear(d) {
@@ -135,45 +129,43 @@ function utcDate(y, m, d, H, M, S, L) {
135
129
  date.setUTCFullYear(d.y);
136
130
  return date;
137
131
  }
138
-
139
132
  return new Date(Date.UTC(y, m, d, H, M, S, L));
140
133
  }
141
134
 
142
135
  function floor(units, step, get, inv, newDate) {
143
136
  const s = step || 1,
144
- b = peek(units),
145
- _ = (unit, p, key) => {
146
- key = key || unit;
147
- return getUnit(get[key], inv[key], unit === b && s, p);
148
- };
149
-
137
+ b = peek(units),
138
+ _ = (unit, p, key) => {
139
+ key = key || unit;
140
+ return getUnit(get[key], inv[key], unit === b && s, p);
141
+ };
150
142
  const t = new Date(),
151
- u = toSet(units),
152
- y = u[YEAR] ? _(YEAR) : constant(2012),
153
- m = u[MONTH] ? _(MONTH) : u[QUARTER] ? _(QUARTER) : zero,
154
- d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY) : u[WEEK] ? _(WEEK, 1) : u[DAY] ? _(DAY, 1) : u[DATE] ? _(DATE, 1) : u[DAYOFYEAR] ? _(DAYOFYEAR, 1) : one,
155
- H = u[HOURS] ? _(HOURS) : zero,
156
- M = u[MINUTES] ? _(MINUTES) : zero,
157
- S = u[SECONDS] ? _(SECONDS) : zero,
158
- L = u[MILLISECONDS] ? _(MILLISECONDS) : zero;
143
+ u = toSet(units),
144
+ y = u[YEAR] ? _(YEAR) : constant(2012),
145
+ m = u[MONTH] ? _(MONTH) : u[QUARTER] ? _(QUARTER) : zero,
146
+ d = u[WEEK] && u[DAY] ? _(DAY, 1, WEEK + DAY) : u[WEEK] ? _(WEEK, 1) : u[DAY] ? _(DAY, 1) : u[DATE] ? _(DATE, 1) : u[DAYOFYEAR] ? _(DAYOFYEAR, 1) : one,
147
+ H = u[HOURS] ? _(HOURS) : zero,
148
+ M = u[MINUTES] ? _(MINUTES) : zero,
149
+ S = u[SECONDS] ? _(SECONDS) : zero,
150
+ L = u[MILLISECONDS] ? _(MILLISECONDS) : zero;
159
151
  return function (v) {
160
152
  t.setTime(+v);
161
153
  const year = y(t);
162
154
  return newDate(year, m(t), d(t, year), H(t), M(t), S(t), L(t));
163
155
  };
164
156
  }
165
-
166
157
  function getUnit(f, inv, step, phase) {
167
158
  const u = step <= 1 ? f : phase ? (d, y) => phase + step * Math.floor((f(d, y) - phase) / step) : (d, y) => step * Math.floor(f(d, y) / step);
168
159
  return inv ? (d, y) => inv(u(d, y), y) : u;
169
- } // returns the day of the year based on week number, day of week,
170
- // and the day of the week for the first day of the year
171
-
160
+ }
172
161
 
162
+ // returns the day of the year based on week number, day of week,
163
+ // and the day of the week for the first day of the year
173
164
  function weekday(week, day, firstDay) {
174
165
  return day + week * 7 - (firstDay + 6) % 7;
175
- } // -- LOCAL TIME --
166
+ }
176
167
 
168
+ // -- LOCAL TIME --
177
169
 
178
170
  const localGet = {
179
171
  [YEAR]: d => d.getFullYear(),
@@ -195,7 +187,9 @@ const localInv = {
195
187
  };
196
188
  function timeFloor(units, step) {
197
189
  return floor(units, step || 1, localGet, localInv, localDate);
198
- } // -- UTC TIME --
190
+ }
191
+
192
+ // -- UTC TIME --
199
193
 
200
194
  const utcGet = {
201
195
  [YEAR]: d => d.getUTCFullYear(),
@@ -251,22 +245,18 @@ function timeInterval(unit) {
251
245
  function utcInterval(unit) {
252
246
  return utcIntervals[unit];
253
247
  }
254
-
255
248
  function offset(ival, date, step) {
256
249
  return ival ? ival.offset(date, step) : undefined;
257
250
  }
258
-
259
251
  function timeOffset(unit, date, step) {
260
252
  return offset(timeInterval(unit), date, step);
261
253
  }
262
254
  function utcOffset(unit, date, step) {
263
255
  return offset(utcInterval(unit), date, step);
264
256
  }
265
-
266
257
  function sequence(ival, start, stop, step) {
267
258
  return ival ? ival.range(start, stop, step) : undefined;
268
259
  }
269
-
270
260
  function timeSequence(unit, start, stop, step) {
271
261
  return sequence(timeInterval(unit), start, stop, step);
272
262
  }
@@ -275,29 +265,28 @@ function utcSequence(unit, start, stop, step) {
275
265
  }
276
266
 
277
267
  const durationSecond = 1000,
278
- durationMinute = durationSecond * 60,
279
- durationHour = durationMinute * 60,
280
- durationDay = durationHour * 24,
281
- durationWeek = durationDay * 7,
282
- durationMonth = durationDay * 30,
283
- durationYear = durationDay * 365;
268
+ durationMinute = durationSecond * 60,
269
+ durationHour = durationMinute * 60,
270
+ durationDay = durationHour * 24,
271
+ durationWeek = durationDay * 7,
272
+ durationMonth = durationDay * 30,
273
+ durationYear = durationDay * 365;
284
274
  const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],
285
- Seconds = Milli.slice(0, -1),
286
- Minutes = Seconds.slice(0, -1),
287
- Hours = Minutes.slice(0, -1),
288
- Day = Hours.slice(0, -1),
289
- Week = [YEAR, WEEK],
290
- Month = [YEAR, MONTH],
291
- Year = [YEAR];
275
+ Seconds = Milli.slice(0, -1),
276
+ Minutes = Seconds.slice(0, -1),
277
+ Hours = Minutes.slice(0, -1),
278
+ Day = Hours.slice(0, -1),
279
+ Week = [YEAR, WEEK],
280
+ Month = [YEAR, MONTH],
281
+ Year = [YEAR];
292
282
  const intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];
293
283
  function bin (opt) {
294
284
  const ext = opt.extent,
295
- max = opt.maxbins || 40,
296
- target = Math.abs(span(ext)) / max;
285
+ max = opt.maxbins || 40,
286
+ target = Math.abs(span(ext)) / max;
297
287
  let i = bisector(i => i[2]).right(intervals, target),
298
- units,
299
- step;
300
-
288
+ units,
289
+ step;
301
290
  if (i === intervals.length) {
302
291
  units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);
303
292
  } else if (i) {
@@ -308,7 +297,6 @@ function bin (opt) {
308
297
  units = Milli;
309
298
  step = Math.max(tickStep(ext[0], ext[1], max), 1);
310
299
  }
311
-
312
300
  return {
313
301
  units,
314
302
  step
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vega-time",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "JavaScript date/time utilities for Vega.",
5
5
  "keywords": [
6
6
  "vega",
@@ -16,15 +16,15 @@
16
16
  "repository": "vega/vega",
17
17
  "scripts": {
18
18
  "prebuild": "rimraf build",
19
- "build": "rollup -c",
19
+ "build": "rollup -c rollup.config.mjs",
20
20
  "pretest": "yarn build --config-test",
21
21
  "test": "tape 'test/**/*-test.js'",
22
22
  "prepublishOnly": "yarn test && yarn build"
23
23
  },
24
24
  "dependencies": {
25
- "d3-array": "^3.1.1",
26
- "d3-time": "^3.0.0",
27
- "vega-util": "^1.15.2"
25
+ "d3-array": "^3.2.2",
26
+ "d3-time": "^3.1.0",
27
+ "vega-util": "^1.17.2"
28
28
  },
29
- "gitHead": "9a3faca4395cade9ecdfde90af98f1c53e9916b2"
29
+ "gitHead": "d2ef8b4f7d59c02ea80129f59551550a22e0ed97"
30
30
  }
@@ -0,0 +1 @@
1
+ export { default } from '../../rollup.config.mjs';
package/rollup.config.js DELETED
@@ -1 +0,0 @@
1
- export { default } from '../../rollup.config';