UNPKG

21.2 kBJavaScriptView Raw
1!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Scale={})}(this,function(t){"use strict";function r(t,e){return n.call(t)==="[object "+e+"]"}function i(t){return r(t,"Number")}var s=function(t){return null!==t&&"function"!=typeof t&&isFinite(t.length)},n={}.toString,e=function(t){return null==t},a=function(t){return Array.isArray?Array.isArray(t):r(t,"Array")},u=function(t){if("object"!=typeof(e=t)||null===e||!r(t,"Object"))return!1;var e;if(null===Object.getPrototypeOf(t))return!0;for(var n=t;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n},h=5;function o(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];for(var r=0;r<e.length;r+=1)!function t(e,n,r,o){for(var i in r=r||0,o=o||h,n){var s;n.hasOwnProperty(i)&&(null!==(s=n[i])&&u(s)?(u(e[i])||(e[i]={}),r<o?t(e[i],s,r+1,o):e[i]=n[i]):a(s)?(e[i]=[],e[i]=e[i].concat(s)):void 0!==s&&(e[i]=s))}}(t,e[r]);return t}function c(t){return t}var U=function(t,e){if(!s(t))return-1;var n=Array.prototype.indexOf;if(n)return n.call(t,e);for(var r=-1,o=0;o<t.length;o++)if(t[o]===e){r=o;break}return r};function A(t){return e(t)?0:(s(t)?t:Object.keys(t)).length}class l{constructor(t){this.options=o({},this.getDefaultOptions()),this.update(t)}getOptions(){return this.options}update(t={}){this.options=o({},this.options,t),this.rescale(t)}rescale(t){}}function d(e,n){for(let t=0;t<n.length;t+=1)e.has(n[t])||e.set(n[t],t)}function g(t){const{value:e,from:n,to:r,mapper:o,notFoundReturn:i}=t;let s=o.get(e);if(void 0===s){if(i)return i;s=n.push(e)-1,o.set(e,s)}return r[s%r.length]}class p extends l{constructor(t){super(t)}getDefaultOptions(){return{domain:[],range:[]}}map(t){return 0===this.domainIndexMap.size&&d(this.domainIndexMap,this.getDomain()),g({value:t,mapper:this.domainIndexMap,from:this.getDomain(),to:this.getRange(),notFoundReturn:this.options.unknown})}invert(t){return 0===this.rangeIndexMap.size&&d(this.rangeIndexMap,this.getRange()),g({value:t,mapper:this.rangeIndexMap,from:this.getRange(),to:this.getDomain(),notFoundReturn:this.options.unknown})}rescale(t){if(!this.rangeIndexMap)return this.rangeIndexMap=new Map,void(this.domainIndexMap=new Map);t&&!t.range||this.rangeIndexMap.clear(),t&&!t.domain&&!t.compare||(this.domainIndexMap.clear(),this.sortedDomain=void 0)}clone(){return new p(this.options)}getRange(){return this.options.range}getDomain(){if(this.sortedDomain)return this.sortedDomain;var{domain:t,compare:e}=this.options;return this.sortedDomain=e?[...t].sort(e):t,this.sortedDomain}}function m(t){var e={range:[0,1],align:.5,round:!1,paddingInner:0,paddingOuter:0,...t},{range:n,stepAmount:r,paddingOuter:o,paddingInner:i}=e;let s,a,u=n[0];t=n[1],n=t-u;s=n/Math.max(1,2*o+(r-i)),e.round&&(s=Math.floor(s)),u+=(n-s*(r-i))*e.align,a=s*(1-i),e.round&&(u=Math.round(u),a=Math.round(a));t=function(e,t,n){var t=(t-e)/n,r=Number.isInteger(t)?t:Math.floor(t)+1;if(r<=0)return[];const o=new Array(r-1);for(let t=0;t<r;t+=1)o[t]=e+t*n;return o}(u,t,s);return{step:s,adjustedRange:t,bandWidth:a}}class f extends p{constructor(t){super(t)}getDefaultOptions(){return{domain:[],range:[0,1],align:.5,round:!1,paddingInner:0,paddingOuter:0,padding:0,unknown:void 0}}clone(){return new f(this.options)}getStep(){return this.step}getBandWidth(){return this.bandWidth}getRange(){return this.adjustedRange}getPaddingInner(){var{padding:t,paddingInner:e}=this.options;return 0<t?t:e}getPaddingOuter(){var{padding:t,paddingOuter:e}=this.options;return 0<t?t:e}rescale(){super.rescale();var{align:t,domain:e,range:n,round:r}=this.options,{step:n,bandWidth:r,adjustedRange:e}=m({align:t,range:n,round:r,paddingInner:this.getPaddingInner(),paddingOuter:this.getPaddingOuter(),stepAmount:e.length});this.step=n,this.bandWidth=r,this.adjustedRange=e}}function M(t,...e){return e.reduce((e,n)=>t=>e(n(t)),t)}function v(e,n){return n-e?t=>(t-e)/(n-e):t=>.5}const D=(e,n)=>t=>e*(1-t)+n*t,T=(e,n)=>t=>Math.round(D(e,n)(t));function k(t,e,n,r,o){let i=n||0,s=r||t.length;const a=o||(t=>t);for(;i<s;){var u=Math.floor((i+s)/2);a(t[u])>e?s=u:i=u+1}return i}const O=Math.sqrt(50),y=Math.sqrt(10),w=Math.sqrt(2);function b(t,e,n){t=(e-t)/Math.max(0,n),n=Math.floor(Math.log(t)/Math.LN10),t/=10**n;return 0<=n?(t>=O?10:t>=y?5:t>=w?2:1)*10**n:-(10**-n)/(t>=O?10:t>=y?5:t>=w?2:1)}function x(t,e,n){n=Math.abs(e-t)/Math.max(0,n);let r=10**Math.floor(Math.log(n)/Math.LN10);n/=r;return n>=O?r*=10:n>=y?r*=5:n>=w&&(r*=2),e<t?-r:r}const Y=(t,e,n=5)=>{const r=[t,e];let o=0,i=r.length-1,s=r[o],a=r[i],u;return a<s&&([s,a]=[a,s],[o,i]=[i,o]),u=b(s,a,n),0<u?(s=Math.floor(s/u)*u,a=Math.ceil(a/u)*u,u=b(s,a,n)):u<0&&(s=Math.ceil(s*u)/u,a=Math.floor(a*u)/u,u=b(s,a,n)),0<u?(r[o]=Math.floor(s/u)*u,r[i]=Math.ceil(a/u)*u):u<0&&(r[o]=Math.ceil(s*u)/u,r[i]=Math.floor(a*u)/u),r},C=1e3,N=6e4,S=36e5,I=24*S,H=7*I;var F=30*I,P=365*I;function R(t,n,a,r){const o=(t,e)=>{let n=e;for(;n&&r(t)%e!=0;)a(t,-1),--n;return t},u=(t,e)=>{e&&o(t,e),n(t)};const h=(t,e)=>{t=new Date(+t-1);return u(t,e),a(t,e),u(t),t};return{ceil:h,floor:(t,e)=>{t=new Date(+t);return u(t,e),t},range:(t,e,n,r)=>{const o=[];for(var i=Math.floor(n),s=r?h(t,n):h(t);+s<+e;a(s,i),u(s))o.push(new Date(+s));return o},duration:t}}var j=R(1,t=>t,(t,e=1)=>{t.setTime(+t+e)},t=>t.getTime()),E=R(C,t=>{t.setMilliseconds(0)},(t,e=1)=>{t.setTime(+t+C*e)},t=>t.getSeconds()),_=R(N,t=>{t.setSeconds(0,0)},(t,e=1)=>{t.setTime(+t+N*e)},t=>t.getMinutes()),W=R(S,t=>{t.setMinutes(0,0,0)},(t,e=1)=>{t.setTime(+t+S*e)},t=>t.getHours()),Z=R(I,t=>{t.setHours(0,0,0,0)},(t,e=1)=>{t.setTime(+t+I*e)},t=>t.getDate()-1);const q=R(F,t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e=1)=>{var n=t.getMonth();t.setMonth(n+e)},t=>t.getMonth());var z=R(H,t=>{t.setDate(t.getDate()-t.getDay()%7),t.setHours(0,0,0,0)},(t,e=1)=>{t.setTime(+t+H*e)},t=>{var e=q.floor(t),t=new Date(+t);return Math.floor((+t-+e)/H)}),L=R(P,t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e=1)=>{var n=t.getFullYear();t.setFullYear(n+e)},t=>t.getFullYear());const B={millisecond:j,second:E,minute:_,hour:W,day:Z,week:z,month:q,year:L};j=R(1,t=>t,(t,e=1)=>{t.setTime(+t+e)},t=>t.getTime()),E=R(C,t=>{t.setUTCMilliseconds(0)},(t,e=1)=>{t.setTime(+t+C*e)},t=>t.getUTCSeconds()),_=R(N,t=>{t.setUTCSeconds(0,0)},(t,e=1)=>{t.setTime(+t+N*e)},t=>t.getUTCMinutes()),W=R(S,t=>{t.setUTCMinutes(0,0,0)},(t,e=1)=>{t.setTime(+t+S*e)},t=>t.getUTCHours()),Z=R(I,t=>{t.setUTCHours(0,0,0,0)},(t,e=1)=>{t.setTime(+t+I*e)},t=>t.getUTCDate()-1);const J=R(F,t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e=1)=>{var n=t.getUTCMonth();t.setUTCMonth(n+e)},t=>t.getUTCMonth());z=R(H,t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7)%7),t.setUTCHours(0,0,0,0)},(t,e=1)=>{t.setTime(+t+H*e)},t=>{var e=J.floor(t),t=new Date(+t);return Math.floor((+t-+e)/H)}),L=R(P,t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e=1)=>{var n=t.getUTCFullYear();t.setUTCFullYear(n+e)},t=>t.getUTCFullYear());const Q={millisecond:j,second:E,minute:_,hour:W,day:Z,week:z,month:J,year:L};function K(t,e,n,r,o){var i=+t,s=+e,{tickIntervals:a,year:u,millisecond:h}=function(t){var{year:e,month:n,week:r,day:o,hour:i,minute:s,second:a,millisecond:t}=t?Q:B;return{tickIntervals:[[a,1],[a,5],[a,15],[a,30],[s,1],[s,5],[s,15],[s,30],[i,1],[i,3],[i,6],[i,12],[o,1],[o,2],[r,1],[n,1],[n,3],[e,1]],year:e,millisecond:t}}(o),c=([t,e])=>t.duration*e,t=r?(s-i)/r:n||5,e=r||(s-i)/t,o=a.length,n=k(a,e,0,o,c);let l;return l=n===o?[u,x(i/u.duration,s/u.duration,t)]:n?([a,n]=e/c(a[n-1])<c(a[n])/e?a[n-1]:a[n],[a,r?Math.ceil(r/a.duration):n]):[h,Math.max(x(i,s,t),1)],l}const G=(t,e,n,r,o)=>{var i=e<t,s=i?e:t,e=i?t:e;const[a,u]=K(s,e,n,r,o),h=[a.floor(s,u),a.ceil(e,u)];return i?h.reverse():h};function V(t){return null!=t&&!Number.isNaN(t)}const X=e=>t=>-e(-t),$=(t,e)=>{const n=Math.log(t);t=t===Math.E?Math.log:t=>Math.log(t)/n;return e?X(t):t},tt=(e,t)=>{var n=e===Math.E?Math.exp:t=>e**t;return t?X(n):n},et=(t,e,n,r)=>{var o=t<0;const i=$(r,o),s=tt(r,o);r=e<t,o=r?t:e;const a=[s(Math.floor(i(r?e:t))),s(Math.ceil(i(o)))];return r?a.reverse():a};const nt=(t,e,n)=>{let r,o,i=t,s=e;if(i===s&&0<n)return[i];let a=b(i,s,n);if(0===a||!Number.isFinite(a))return[];if(0<a){i=Math.ceil(i/a),s=Math.floor(s/a),o=new Array(r=Math.ceil(s-i+1));for(let t=0;t<r;t+=1)o[t]=(i+t)*a}else{a=-a,i=Math.ceil(i*a),s=Math.floor(s*a),o=new Array(r=Math.ceil(s-i+1));for(let t=0;t<r;t+=1)o[t]=(i+t)/a}return o};class rt extends l{getDefaultOptions(){return{range:[0],domain:[0,1],unknown:void 0,tickCount:5,tickMethod:nt}}map(t){var[e]=this.options.range;return void 0!==e?e:this.options.unknown}invert(t){var[e]=this.options.range;return t===e&&void 0!==e?this.options.domain:[]}getTicks(){const{tickMethod:t,domain:e,tickCount:n}=this.options;var[r,o]=e;return i(r)&&i(o)?t(r,o,n):[]}clone(){return new rt(this.options)}}const ot=[1,5,2,2.5,4,3],it=100*Number.EPSILON;const st=(n,r,o=5,i=!0,s=ot,a=[.25,.2,.5,.05])=>{if(Number.isNaN(n)||Number.isNaN(r)||"number"!=typeof n||"number"!=typeof r||!o)return[];if(r-n<1e-15||1===o)return[n];const u={score:-2,lmin:0,lmax:0,lstep:0};let h=1;for(;h<1/0;){for(let t=0;t<s.length;t+=1){var c=s[t],l=(Y=c,C=s,N=h,S=void 0,S=A(C),1-U(C,Y)/(S-1)-N+1);if(a[0]*l+a[1]+a[2]+a[3]<u.score){h=1/0;break}let e=2;for(;e<1/0;){var d=(b=e,(x=o)<=b?2-(b-1)/(x-1):1);if(a[0]*l+a[1]+a[2]*d+a[3]<u.score)break;x=(r-n)/(e+1)/h/c;let t=Math.ceil(Math.log10(x));for(;t<1/0;){var g=h*c*10**t,p=(p=n,w=g*(e-1),(p=r-p)<w?1-((w-p)/2)**2/(.1*p)**2:1);if(a[0]*l+a[1]*p+a[2]*d+a[3]<u.score)break;var p=Math.floor(r/g)*h-(e-1)*h,m=Math.ceil(n/g)*h;if(m<p)t+=1;else{for(let t=p;t<=m;t+=1){var f=t*(g/h),M=f+g*(e-1),v=g,D=function(t,e,n,r,o,i){var s=A(e),e=U(e,t);let a=0;return((t=(r%i+i)%i)<it||i-t<it)&&r<=0&&0<=o&&(a=1),1-e/(s-1)-n+a}(c,s,h,f,M,v),T=1-.5*((r-M)**2+(n-f)**2)/(.1*(r-n))**2,k=(k=e,O=n,k=(k-1)/(M-(y=f)),y=(o-1)/(Math.max(M,r)-Math.min(O,y)),2-Math.max(k/y,y/k)),k=a[0]*D+a[1]*T+a[2]*k+ +a[3];k>u.score&&(!i||f<=n&&r<=M)&&(u.lmin=f,u.lmax=M,u.lstep=v,u.score=k)}t+=1}}e+=1}}h+=1}var k,O,y,p,w,b,x,Y,C,N,S;let e=0;var I,t=(u.lmax-u.lmin)/u.lstep;const H=new Array(Math.floor(t));for(let t=u.lmin;t<=u.lmax;t+=u.lstep)H[e]=(I=t)<1e-15?I:parseFloat(I.toFixed(15)),e+=1;return H};class at extends l{getDefaultOptions(){return{domain:[0,1],range:[0,1],tickCount:5,unknown:void 0,tickMethod:st}}map(t){return i(t)&&!Number.isNaN(t)?t:this.options.unknown}invert(t){return this.map(t)}clone(){return new at(this.options)}getTicks(){const{domain:t,tickCount:e,tickMethod:n}=this.options;var[r,o]=t;return n(r,o,e)}}const ut=(t,e,n)=>{var[r,o]=t,[t,e]=e;let i,s;return s=r<o?(i=v(r,o),n(t,e)):(i=v(o,r),n(e,t)),M(s,i)},ht=(r,t,e)=>{const o=Math.min(r.length,t.length)-1,i=new Array(o),s=new Array(o);var n=r[0]>r[o],a=n?[...r].reverse():r,u=n?[...t].reverse():t;for(let t=0;t<o;t+=1)i[t]=v(a[t],a[t+1]),s[t]=e(u[t],u[t+1]);return t=>{var e=k(r,t,1,o)-1,n=i[e];return M(s[e],n)(t)}},ct=(t,e,n,r)=>{const o=2<Math.min(t.length,e.length)?ht:ut;n=r?T:n;return o(t,e,n)};class lt extends l{getDefaultOptions(){return{domain:[0,1],range:[0,1],nice:!1,clamp:!1,round:!1,interpolate:D,tickCount:5}}map(t){return V(t)?this.output(t):this.options.unknown}invert(t){return V(t)?this.input(t):this.options.unknown}nice(){var t,e,n,r;this.options.nice&&([t,e,n,...r]=this.getTickMethodOptions(),this.options.domain=this.chooseNice()(t,e,n,...r))}getTicks(){const{tickMethod:t}=this.options;var[e,n,r,...o]=this.getTickMethodOptions();return t(e,n,r,...o)}getTickMethodOptions(){var{domain:t,tickCount:e}=this.options;return[t[0],t[t.length-1],e]}chooseNice(){return Y}rescale(){this.nice();var[t,e]=this.chooseTransforms();this.composeOutput(t,this.chooseClamp(t)),this.composeInput(t,e,this.chooseClamp(e))}chooseClamp(t){var{clamp:e,range:n}=this.options,t=this.options.domain.map(t),n=Math.min(t.length,n.length);return e?function(t,e){const n=e<t?e:t,r=e<t?t:e;return t=>Math.min(Math.max(n,t),r)}(t[0],t[n-1]):c}composeOutput(t,e){const{domain:n,range:r,round:o,interpolate:i}=this.options;var s=ct(n.map(t),r,i,o);this.output=M(s,e,t)}composeInput(t,e,n){const{domain:r,range:o,interpolate:i}=this.options;t=ct(o,r.map(t),i);this.input=M(e,n,t)}}class dt extends lt{getDefaultOptions(){return{domain:[0,1],range:[0,1],unknown:void 0,nice:!1,clamp:!1,round:!1,interpolate:D,tickMethod:nt,tickCount:5}}chooseTransforms(){return[c,c]}clone(){return new dt(this.options)}}class gt extends f{getDefaultOptions(){return{domain:[],range:[0,1],align:.5,round:!1,padding:0,unknown:void 0,paddingInner:1,paddingOuter:0}}constructor(t){super(t)}getPaddingInner(){return this.options.paddingInner}clone(){return new gt(this.options)}update(t){super.update(t)}getPaddingOuter(){return this.options.padding}}const pt=t=>t<0?-Math.sqrt(-t):Math.sqrt(t);class mt extends lt{getDefaultOptions(){return{domain:[0,1],range:[0,1],nice:!1,clamp:!1,round:!1,exponent:2,interpolate:D,tickMethod:nt,tickCount:5}}constructor(t){super(t)}chooseTransforms(){var e,n,{exponent:t}=this.options;return 1===t?[c,c]:[.5===t?pt:(e=t,t=>t<0?-((-t)**e):t**e),(n=t,t=>t<0?-((-t)**(1/n)):t**(1/n))]}clone(){return new mt(this.options)}}const ft=(t,e,n=5)=>{const r={max:0,min:0,ticks:[]};if(t===e)return[t];var o=(e-t)/n,n=10**Math.floor(Math.log10(o)),i=n<1?Math.ceil(Math.abs(Math.log10(n))):0;let s=n;2*n-o<1.5*(o-s)&&(s=2*n,5*n-o<2.75*(o-s)&&(s=5*n,10*n-o<1.5*(o-s)&&(s=10*n)));o=Math.ceil(e/s),n=Math.floor(t/s);r.max=Math.max(o*s,e),r.min=Math.min(n*s,t);let a=Number.parseFloat((n*s).toFixed(i));for(;a<e;)r.ticks.push(a),a+=s,i&&(a=Number.parseFloat(a.toFixed(i)));return r.ticks.push(a),r.ticks};class Mt extends mt{getDefaultOptions(){return{domain:[0,1],range:[0,1],nice:!1,clamp:!1,round:!1,interpolate:D,tickMethod:ft,tickCount:5,exponent:.5}}constructor(t){super(t)}update(t){super.update(t)}clone(){return new Mt(this.options)}}class vt extends l{constructor(t){super(t)}getDefaultOptions(){return{domain:[.5],range:[0,1]}}map(t){if(!V(t))return this.options.unknown;t=k(this.thresholds,t,0,this.n);return this.options.range[t]}invert(t){const{range:e}=this.options;var n=e.indexOf(t),t=this.thresholds;return[t[n-1],t[n]]}clone(){return new vt(this.options)}rescale(){var{domain:t,range:e}=this.options;this.n=Math.min(t.length,e.length-1),this.thresholds=t}}const Dt=(t,e,n,r=10)=>{var o=t<0;const i=tt(r,o),s=$(r,o);var a=e<t,u=a?e:t,h=a?t:e;let c=s(u),l=s(h),d=[];if(!(r%1)&&l-c<n){if(c=Math.floor(c),l=Math.ceil(l),o)for(;c<=l;c+=1){var g=i(c);for(let t=r-1;1<=t;--t){var p=g*t;if(h<p)break;u<=p&&d.push(p)}}else for(;c<=l;c+=1){var m=i(c);for(let t=1;t<r;t+=1){var f=m*t;if(h<f)break;u<=f&&d.push(f)}}2*d.length<n&&(d=nt(u,h,n))}else d=nt(c,l,Math.min(l-c,n)).map(i);return a?d.reverse():d};class Tt extends lt{getDefaultOptions(){return{domain:[1,10],range:[0,1],base:10,interpolate:D,tickMethod:Dt,tickCount:5}}chooseNice(){return et}getTickMethodOptions(){var{domain:t,tickCount:e,base:n}=this.options;return[t[0],t[t.length-1],e,n]}chooseTransforms(){var{base:t,domain:e}=this.options,e=e[0]<0;return[$(t,e),tt(t,e)]}clone(){return new Tt(this.options)}}class kt extends vt{getDefaultOptions(){return{domain:[0,1],range:[.5],nice:!1,tickCount:5,tickMethod:st}}constructor(t){super(t)}nice(){var t,e,{nice:n}=this.options;n&&([t,e,n]=this.getTickMethodOptions(),this.options.domain=Y(t,e,n))}getTicks(){const{tickMethod:t}=this.options;var[e,n,r]=this.getTickMethodOptions();return t(e,n,r)}getTickMethodOptions(){var{domain:t,tickCount:e}=this.options;return[t[0],t[t.length-1],e]}rescale(){this.nice();var{range:t,domain:e}=this.options,[n,r]=e;this.n=t.length-1,this.thresholds=new Array(this.n);for(let t=0;t<this.n;t+=1)this.thresholds[t]=((t+1)*r-(t-this.n)*n)/(this.n+1)}invert(t){var[e,n]=super.invert(t),[r,t]=this.options.domain;return void 0===e&&void 0===n?[e,n]:[e||r,n||t]}getThresholds(){return this.thresholds}clone(){return new kt(this.options)}}function Ot(t,e,n=!1){const r=t;n||r.sort((t,e)=>t-e);const o=[];for(let t=1;t<e;t+=1)o.push(function(t,e){if(r=t.length){if(r<2)return t[r-1];var n=(r-1)*e,r=Math.floor(n),e=t[r];return e+(t[r+1]-e)*(n-r)}}(r,t/e));return o}class yt extends vt{getDefaultOptions(){return{domain:[],range:[],tickCount:5,unknown:void 0,tickMethod:st}}constructor(t){super(t)}rescale(){var{domain:t,range:e}=this.options;this.n=e.length-1,this.thresholds=Ot(t,this.n+1,!1)}invert(t){var[e,n]=super.invert(t),{domain:r}=this.options,t=r[0],r=r[r.length-1];return void 0===e&&void 0===n?[e,n]:[e||t,n||r]}getThresholds(){return this.thresholds}clone(){return new yt(this.options)}getTicks(){const{tickCount:t,domain:e,tickMethod:n}=this.options;var r=e.length-1,o=e[0],r=e[r];return n(o,r,t)}}var wt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,bt=/\[([^]*?)\]/gm;function xt(t,e){for(var n=[],r=0,o=t.length;r<o;r++)n.push(t[r].substr(0,e));return n}function Yt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];for(var r=0,o=e;r<o.length;r++){var i,s=o[r];for(i in s)t[i]=s[i]}return t}function Ct(t,e){for(void 0===e&&(e=2),t=String(t);t.length<e;)t="0"+t;return t}var Z=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],z=["January","February","March","April","May","June","July","August","September","October","November","December"],L=xt(z,3),Nt=Yt({},{dayNamesShort:xt(Z,3),dayNames:Z,monthNamesShort:L,monthNames:z,amPm:["am","pm"],DoFn:function(t){return t+["th","st","nd","rd"][3<t%10?0:(t-t%10!=10?1:0)*t%10]}}),St={D:function(t){return String(t.getDate())},DD:function(t){return Ct(t.getDate())},Do:function(t,e){return e.DoFn(t.getDate())},d:function(t){return String(t.getDay())},dd:function(t){return Ct(t.getDay())},ddd:function(t,e){return e.dayNamesShort[t.getDay()]},dddd:function(t,e){return e.dayNames[t.getDay()]},M:function(t){return String(t.getMonth()+1)},MM:function(t){return Ct(t.getMonth()+1)},MMM:function(t,e){return e.monthNamesShort[t.getMonth()]},MMMM:function(t,e){return e.monthNames[t.getMonth()]},YY:function(t){return Ct(String(t.getFullYear()),4).substr(2)},YYYY:function(t){return Ct(t.getFullYear(),4)},h:function(t){return String(t.getHours()%12||12)},hh:function(t){return Ct(t.getHours()%12||12)},H:function(t){return String(t.getHours())},HH:function(t){return Ct(t.getHours())},m:function(t){return String(t.getMinutes())},mm:function(t){return Ct(t.getMinutes())},s:function(t){return String(t.getSeconds())},ss:function(t){return Ct(t.getSeconds())},S:function(t){return String(Math.round(t.getMilliseconds()/100))},SS:function(t){return Ct(Math.round(t.getMilliseconds()/10),2)},SSS:function(t){return Ct(t.getMilliseconds(),3)},a:function(t,e){return t.getHours()<12?e.amPm[0]:e.amPm[1]},A:function(t,e){return(t.getHours()<12?e.amPm[0]:e.amPm[1]).toUpperCase()},ZZ:function(t){t=t.getTimezoneOffset();return(0<t?"-":"+")+Ct(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)},Z:function(t){t=t.getTimezoneOffset();return(0<t?"-":"+")+Ct(Math.floor(Math.abs(t)/60),2)+":"+Ct(Math.abs(t)%60,2)}},It={default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"};const Ht=(t,e,n,r,o)=>{var i=e<t,s=i?e:t,e=i?t:e;const[a,u]=K(s,e,n,r,o),h=a.range(s,new Date(+e+1),u,!0);return i?h.reverse():h};function Ut(t){var e=t.getTimezoneOffset();const n=new Date(t);return n.setMinutes(n.getMinutes()+e,n.getSeconds(),n.getMilliseconds()),n}class At extends lt{getDefaultOptions(){return{domain:[new Date(2e3,0,1),new Date(2e3,0,2)],range:[0,1],nice:!1,tickCount:5,tickInterval:void 0,unknown:void 0,clamp:!1,tickMethod:Ht,interpolate:D,mask:void 0,utc:!1}}chooseTransforms(){return[t=>+t,t=>new Date(t)]}chooseNice(){return G}getTickMethodOptions(){var{domain:t,tickCount:e,tickInterval:n,utc:r}=this.options;return[t[0],t[t.length-1],e,n,r]}getFormatter(){const{mask:e,utc:t}=this.options,n=t?Q:B,r=t?Ut:c;return t=>function(e,t,n){if(void 0===t&&(t=It.default),void 0===n&&(n={}),"number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date pass to format");var r=[];t=(t=It[t]||t).replace(bt,function(t,e){return r.push(e),"@@@"});var o=Yt(Yt({},Nt),n);return(t=t.replace(wt,function(t){return St[t](e,o)})).replace(/@@@/g,function(){return r.shift()})}(r(t),e||function(t,e){const{second:n,minute:r,hour:o,day:i,week:s,month:a,year:u}=e;return n.floor(t)<t?".SSS":r.floor(t)<t?":ss":o.floor(t)<t?"hh:mm":i.floor(t)<t?"hh A":a.floor(t)<t?s.floor(t)<t?"MMM DD":"ddd DD":u.floor(t)<t?"MMMM":"YYYY"}(t,n))}clone(){return new At(this.options)}}t.Band=f,t.Base=l,t.Constant=rt,t.Continuous=lt,t.DURATION_DAY=I,t.DURATION_HOUR=S,t.DURATION_MINUTE=N,t.DURATION_MONTH=F,t.DURATION_SECOND=C,t.DURATION_WEEK=H,t.DURATION_YEAR=P,t.Identity=at,t.Linear=dt,t.Log=Tt,t.Ordinal=p,t.Point=gt,t.Pow=mt,t.Quantile=yt,t.Quantize=kt,t.Sqrt=Mt,t.Threshold=vt,t.Time=At,t.d3Log=Dt,t.d3Ticks=nt,t.d3Time=Ht,t.rPretty=ft,t.wilkinsonExtended=st,Object.defineProperty(t,"__esModule",{value:!0})});