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.
- package/LICENSE +1 -1
- package/build/vega-time.js +280 -264
- package/build/vega-time.min.js +1 -1
- package/build/vega-time.min.js.map +1 -1
- package/build/vega-time.module.js +52 -64
- package/package.json +6 -6
- package/rollup.config.mjs +1 -0
- package/rollup.config.js +0 -1
package/build/vega-time.min.js
CHANGED
|
@@ -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
|
-
|
|
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(
|
|
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(
|
|
34
|
-
}
|
|
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
|
-
[
|
|
53
|
-
[
|
|
54
|
-
[
|
|
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
|
-
|
|
59
|
-
|
|
58
|
+
u = timeUnits(units),
|
|
59
|
+
n = u.length;
|
|
60
60
|
let fmt = '',
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
}
|
|
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
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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
|
-
|
|
296
|
-
|
|
285
|
+
max = opt.maxbins || 40,
|
|
286
|
+
target = Math.abs(span(ext)) / max;
|
|
297
287
|
let i = bisector(i => i[2]).right(intervals, target),
|
|
298
|
-
|
|
299
|
-
|
|
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.
|
|
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.
|
|
26
|
-
"d3-time": "^3.
|
|
27
|
-
"vega-util": "^1.
|
|
25
|
+
"d3-array": "^3.2.2",
|
|
26
|
+
"d3-time": "^3.1.0",
|
|
27
|
+
"vega-util": "^1.17.2"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
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';
|