UNPKG

@stdlib/esm

Version:

ES module distribution for Stdlib, a standard library for JavaScript and Node.js.

29 lines 16.9 kB
// Copyright 2010-2017 Mike Bostock // All rights reserved. // // Redistribution and use in source and binary forms, with or without modification, // are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // // * Neither the name of the author nor the names of contributors may be used to // endorse or promote products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // var t0=new Date,t1=new Date;function newInterval(e,t,r,n){function a(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return a.floor=function(t){return e(t=new Date(+t)),t},a.ceil=function(r){return e(r=new Date(r-1)),t(r,1),e(r),r},a.round=function(e){var t=a(e),r=a.ceil(e);return e-t<r-e?t:r},a.offset=function(e,r){return t(e=new Date(+e),null==r?1:Math.floor(r)),e},a.range=function(r,n,u){var o,i=[];if(r=a.ceil(r),u=null==u?1:Math.floor(u),!(r<n&&u>0))return i;do{i.push(o=new Date(+r)),t(r,u),e(r)}while(o<r&&r<n);return i},a.filter=function(r){return newInterval((function(t){if(t>=t)for(;e(t),!r(t);)t.setTime(t-1)}),(function(e,n){if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!r(e););else for(;--n>=0;)for(;t(e,1),!r(e););}))},r&&(a.count=function(t,n){return t0.setTime(+t),t1.setTime(+n),e(t0),e(t1),Math.floor(r(t0,t1))},a.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?a.filter(n?function(t){return n(t)%e==0}:function(t){return a.count(0,t)%e==0}):a:null}),a}var durationMinute=6e4,durationDay=864e5,durationWeek=6048e5,day=newInterval((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*durationMinute)/durationDay}),(function(e){return e.getDate()-1}));function weekday(e){return newInterval((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*durationMinute)/durationWeek}))}var sunday=weekday(0),monday=weekday(1),tuesday=weekday(2),wednesday=weekday(3),thursday=weekday(4),friday=weekday(5),saturday=weekday(6),year=newInterval((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));year.every=function(e){return isFinite(e=Math.floor(e))&&e>0?newInterval((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,r){t.setFullYear(t.getFullYear()+r*e)})):null};var utcDay=newInterval((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/durationDay}),(function(e){return e.getUTCDate()-1}));function utcWeekday(e){return newInterval((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/durationWeek}))}var utcSunday=utcWeekday(0),utcMonday=utcWeekday(1),utcTuesday=utcWeekday(2),utcWednesday=utcWeekday(3),utcThursday=utcWeekday(4),utcFriday=utcWeekday(5),utcSaturday=utcWeekday(6),utcYear=newInterval((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));function localDate(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function utcDate(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function newDate(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function formatLocale(e){var t=e.dateTime,r=e.date,n=e.time,a=e.periods,u=e.days,o=e.shortDays,i=e.months,c=e.shortMonths,f=formatRe(a),s=formatLookup(a),l=formatRe(u),m=formatLookup(u),d=formatRe(o),y=formatLookup(o),p=formatRe(i),T=formatLookup(i),g=formatRe(c),U=formatLookup(c),h={a:function(e){return o[e.getDay()]},A:function(e){return u[e.getDay()]},b:function(e){return c[e.getMonth()]},B:function(e){return i[e.getMonth()]},c:null,d:formatDayOfMonth,e:formatDayOfMonth,f:formatMicroseconds,g:formatYearISO,G:formatFullYearISO,H:formatHour24,I:formatHour12,j:formatDayOfYear,L:formatMilliseconds,m:formatMonthNumber,M:formatMinutes,p:function(e){return a[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatSeconds,u:formatWeekdayNumberMonday,U:formatWeekNumberSunday,V:formatWeekNumberISO,w:formatWeekdayNumberSunday,W:formatWeekNumberMonday,x:null,X:null,y:formatYear,Y:formatFullYear,Z:formatZone,"%":formatLiteralPercent},C={a:function(e){return o[e.getUTCDay()]},A:function(e){return u[e.getUTCDay()]},b:function(e){return c[e.getUTCMonth()]},B:function(e){return i[e.getUTCMonth()]},c:null,d:formatUTCDayOfMonth,e:formatUTCDayOfMonth,f:formatUTCMicroseconds,g:formatUTCYearISO,G:formatUTCFullYearISO,H:formatUTCHour24,I:formatUTCHour12,j:formatUTCDayOfYear,L:formatUTCMilliseconds,m:formatUTCMonthNumber,M:formatUTCMinutes,p:function(e){return a[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:formatUnixTimestamp,s:formatUnixTimestampSeconds,S:formatUTCSeconds,u:formatUTCWeekdayNumberMonday,U:formatUTCWeekNumberSunday,V:formatUTCWeekNumberISO,w:formatUTCWeekdayNumberSunday,W:formatUTCWeekNumberMonday,x:null,X:null,y:formatUTCYear,Y:formatUTCFullYear,Z:formatUTCZone,"%":formatLiteralPercent},M={a:function(e,t,r){var n=d.exec(t.slice(r));return n?(e.w=y[n[0].toLowerCase()],r+n[0].length):-1},A:function(e,t,r){var n=l.exec(t.slice(r));return n?(e.w=m[n[0].toLowerCase()],r+n[0].length):-1},b:function(e,t,r){var n=g.exec(t.slice(r));return n?(e.m=U[n[0].toLowerCase()],r+n[0].length):-1},B:function(e,t,r){var n=p.exec(t.slice(r));return n?(e.m=T[n[0].toLowerCase()],r+n[0].length):-1},c:function(e,r,n){return S(e,t,r,n)},d:parseDayOfMonth,e:parseDayOfMonth,f:parseMicroseconds,g:parseYear,G:parseFullYear,H:parseHour24,I:parseHour24,j:parseDayOfYear,L:parseMilliseconds,m:parseMonthNumber,M:parseMinutes,p:function(e,t,r){var n=f.exec(t.slice(r));return n?(e.p=s[n[0].toLowerCase()],r+n[0].length):-1},q:parseQuarter,Q:parseUnixTimestamp,s:parseUnixTimestampSeconds,S:parseSeconds,u:parseWeekdayNumberMonday,U:parseWeekNumberSunday,V:parseWeekNumberISO,w:parseWeekdayNumberSunday,W:parseWeekNumberMonday,x:function(e,t,n){return S(e,r,t,n)},X:function(e,t,r){return S(e,n,t,r)},y:parseYear,Y:parseFullYear,Z:parseZone,"%":parseLiteralPercent};function D(e,t){return function(r){var n,a,u,o=[],i=-1,c=0,f=e.length;for(r instanceof Date||(r=new Date(+r));++i<f;)37===e.charCodeAt(i)&&(o.push(e.slice(c,i)),null!=(a=pads[n=e.charAt(++i)])?n=e.charAt(++i):a="e"===n?" ":"0",(u=t[n])&&(n=u(r,a)),o.push(n),c=i+1);return o.push(e.slice(c,i)),o.join("")}}function v(e,t){return function(r){var n,a,u=newDate(1900,void 0,1);if(S(u,e,r+="",0)!=r.length)return null;if("Q"in u)return new Date(u.Q);if("s"in u)return new Date(1e3*u.s+("L"in u?u.L:0));if(t&&!("Z"in u)&&(u.Z=0),"p"in u&&(u.H=u.H%12+12*u.p),void 0===u.m&&(u.m="q"in u?u.q:0),"V"in u){if(u.V<1||u.V>53)return null;"w"in u||(u.w=1),"Z"in u?(a=(n=utcDate(newDate(u.y,0,1))).getUTCDay(),n=a>4||0===a?utcMonday.ceil(n):utcMonday(n),n=utcDay.offset(n,7*(u.V-1)),u.y=n.getUTCFullYear(),u.m=n.getUTCMonth(),u.d=n.getUTCDate()+(u.w+6)%7):(a=(n=localDate(newDate(u.y,0,1))).getDay(),n=a>4||0===a?monday.ceil(n):monday(n),n=day.offset(n,7*(u.V-1)),u.y=n.getFullYear(),u.m=n.getMonth(),u.d=n.getDate()+(u.w+6)%7)}else("W"in u||"U"in u)&&("w"in u||(u.w="u"in u?u.u%7:"W"in u?1:0),a="Z"in u?utcDate(newDate(u.y,0,1)).getUTCDay():localDate(newDate(u.y,0,1)).getDay(),u.m=0,u.d="W"in u?(u.w+6)%7+7*u.W-(a+5)%7:u.w+7*u.U-(a+6)%7);return"Z"in u?(u.H+=u.Z/100|0,u.M+=u.Z%100,utcDate(u)):localDate(u)}}function S(e,t,r,n){for(var a,u,o=0,i=t.length,c=r.length;o<i;){if(n>=c)return-1;if(37===(a=t.charCodeAt(o++))){if(a=t.charAt(o++),!(u=M[a in pads?t.charAt(o++):a])||(n=u(e,r,n))<0)return-1}else if(a!=r.charCodeAt(n++))return-1}return n}return h.x=D(r,h),h.X=D(n,h),h.c=D(t,h),C.x=D(r,C),C.X=D(n,C),C.c=D(t,C),{format:function(e){var t=D(e+="",h);return t.toString=function(){return e},t},parse:function(e){var t=v(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=D(e+="",C);return t.toString=function(){return e},t},utcParse:function(e){var t=v(e+="",!0);return t.toString=function(){return e},t}}}utcYear.every=function(e){return isFinite(e=Math.floor(e))&&e>0?newInterval((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,r){t.setUTCFullYear(t.getUTCFullYear()+r*e)})):null};var locale,timeFormat,timeParse,utcFormat,utcParse,pads={"-":"",_:" ",0:"0"},numberRe=/^\s*\d+/,percentRe=/^%/,requoteRe=/[\\^$*+?|[\]().{}]/g;function pad(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",u=a.length;return n+(u<r?new Array(r-u+1).join(t)+a:a)}function requote(e){return e.replace(requoteRe,"\\$&")}function formatRe(e){return new RegExp("^(?:"+e.map(requote).join("|")+")","i")}function formatLookup(e){for(var t={},r=-1,n=e.length;++r<n;)t[e[r].toLowerCase()]=r;return t}function parseWeekdayNumberSunday(e,t,r){var n=numberRe.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function parseWeekdayNumberMonday(e,t,r){var n=numberRe.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function parseWeekNumberSunday(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function parseWeekNumberISO(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function parseWeekNumberMonday(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function parseFullYear(e,t,r){var n=numberRe.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function parseYear(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function parseZone(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function parseQuarter(e,t,r){var n=numberRe.exec(t.slice(r,r+1));return n?(e.q=3*n[0]-3,r+n[0].length):-1}function parseMonthNumber(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function parseDayOfMonth(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function parseDayOfYear(e,t,r){var n=numberRe.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function parseHour24(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function parseMinutes(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function parseSeconds(e,t,r){var n=numberRe.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function parseMilliseconds(e,t,r){var n=numberRe.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function parseMicroseconds(e,t,r){var n=numberRe.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function parseLiteralPercent(e,t,r){var n=percentRe.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function parseUnixTimestamp(e,t,r){var n=numberRe.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function parseUnixTimestampSeconds(e,t,r){var n=numberRe.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function formatDayOfMonth(e,t){return pad(e.getDate(),t,2)}function formatHour24(e,t){return pad(e.getHours(),t,2)}function formatHour12(e,t){return pad(e.getHours()%12||12,t,2)}function formatDayOfYear(e,t){return pad(1+day.count(year(e),e),t,3)}function formatMilliseconds(e,t){return pad(e.getMilliseconds(),t,3)}function formatMicroseconds(e,t){return formatMilliseconds(e,t)+"000"}function formatMonthNumber(e,t){return pad(e.getMonth()+1,t,2)}function formatMinutes(e,t){return pad(e.getMinutes(),t,2)}function formatSeconds(e,t){return pad(e.getSeconds(),t,2)}function formatWeekdayNumberMonday(e){var t=e.getDay();return 0===t?7:t}function formatWeekNumberSunday(e,t){return pad(sunday.count(year(e)-1,e),t,2)}function dISO(e){var t=e.getDay();return t>=4||0===t?thursday(e):thursday.ceil(e)}function formatWeekNumberISO(e,t){return e=dISO(e),pad(thursday.count(year(e),e)+(4===year(e).getDay()),t,2)}function formatWeekdayNumberSunday(e){return e.getDay()}function formatWeekNumberMonday(e,t){return pad(monday.count(year(e)-1,e),t,2)}function formatYear(e,t){return pad(e.getFullYear()%100,t,2)}function formatYearISO(e,t){return pad((e=dISO(e)).getFullYear()%100,t,2)}function formatFullYear(e,t){return pad(e.getFullYear()%1e4,t,4)}function formatFullYearISO(e,t){var r=e.getDay();return pad((e=r>=4||0===r?thursday(e):thursday.ceil(e)).getFullYear()%1e4,t,4)}function formatZone(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+pad(t/60|0,"0",2)+pad(t%60,"0",2)}function formatUTCDayOfMonth(e,t){return pad(e.getUTCDate(),t,2)}function formatUTCHour24(e,t){return pad(e.getUTCHours(),t,2)}function formatUTCHour12(e,t){return pad(e.getUTCHours()%12||12,t,2)}function formatUTCDayOfYear(e,t){return pad(1+utcDay.count(utcYear(e),e),t,3)}function formatUTCMilliseconds(e,t){return pad(e.getUTCMilliseconds(),t,3)}function formatUTCMicroseconds(e,t){return formatUTCMilliseconds(e,t)+"000"}function formatUTCMonthNumber(e,t){return pad(e.getUTCMonth()+1,t,2)}function formatUTCMinutes(e,t){return pad(e.getUTCMinutes(),t,2)}function formatUTCSeconds(e,t){return pad(e.getUTCSeconds(),t,2)}function formatUTCWeekdayNumberMonday(e){var t=e.getUTCDay();return 0===t?7:t}function formatUTCWeekNumberSunday(e,t){return pad(utcSunday.count(utcYear(e)-1,e),t,2)}function UTCdISO(e){var t=e.getUTCDay();return t>=4||0===t?utcThursday(e):utcThursday.ceil(e)}function formatUTCWeekNumberISO(e,t){return e=UTCdISO(e),pad(utcThursday.count(utcYear(e),e)+(4===utcYear(e).getUTCDay()),t,2)}function formatUTCWeekdayNumberSunday(e){return e.getUTCDay()}function formatUTCWeekNumberMonday(e,t){return pad(utcMonday.count(utcYear(e)-1,e),t,2)}function formatUTCYear(e,t){return pad(e.getUTCFullYear()%100,t,2)}function formatUTCYearISO(e,t){return pad((e=UTCdISO(e)).getUTCFullYear()%100,t,2)}function formatUTCFullYear(e,t){return pad(e.getUTCFullYear()%1e4,t,4)}function formatUTCFullYearISO(e,t){var r=e.getUTCDay();return pad((e=r>=4||0===r?utcThursday(e):utcThursday.ceil(e)).getUTCFullYear()%1e4,t,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}function formatUnixTimestamp(e){return+e}function formatUnixTimestampSeconds(e){return Math.floor(+e/1e3)}function defaultLocale(e){return locale=formatLocale(e),timeFormat=locale.format,timeParse=locale.parse,utcFormat=locale.utcFormat,utcParse=locale.utcParse,locale}defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var isoSpecifier="%Y-%m-%dT%H:%M:%S.%LZ";function formatIsoNative(e){return e.toISOString()}var formatIso=Date.prototype.toISOString?formatIsoNative:utcFormat(isoSpecifier);function parseIsoNative(e){var t=new Date(e);return isNaN(t)?null:t}var parseIso=+new Date("2000-01-01T00:00:00.000Z")?parseIsoNative:utcParse(isoSpecifier);export{formatIso as isoFormat,parseIso as isoParse,timeFormat,defaultLocale as timeFormatDefaultLocale,formatLocale as timeFormatLocale,timeParse,utcFormat,utcParse};