1 |
|
2 | (function (global, factory) {
|
3 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('d3-time')) :
|
4 | typeof define === 'function' && define.amd ? define(['exports', 'd3-time'], factory) :
|
5 | (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.d3 = global.d3 || {}, global.d3));
|
6 | })(this, (function (exports, d3Time) { 'use strict';
|
7 |
|
8 | function localDate(d) {
|
9 | if (0 <= d.y && d.y < 100) {
|
10 | var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
|
11 | date.setFullYear(d.y);
|
12 | return date;
|
13 | }
|
14 | return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
|
15 | }
|
16 |
|
17 | function utcDate(d) {
|
18 | if (0 <= d.y && d.y < 100) {
|
19 | var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
|
20 | date.setUTCFullYear(d.y);
|
21 | return date;
|
22 | }
|
23 | return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
|
24 | }
|
25 |
|
26 | function newDate(y, m, d) {
|
27 | return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
|
28 | }
|
29 |
|
30 | function formatLocale(locale) {
|
31 | var locale_dateTime = locale.dateTime,
|
32 | locale_date = locale.date,
|
33 | locale_time = locale.time,
|
34 | locale_periods = locale.periods,
|
35 | locale_weekdays = locale.days,
|
36 | locale_shortWeekdays = locale.shortDays,
|
37 | locale_months = locale.months,
|
38 | locale_shortMonths = locale.shortMonths;
|
39 |
|
40 | var periodRe = formatRe(locale_periods),
|
41 | periodLookup = formatLookup(locale_periods),
|
42 | weekdayRe = formatRe(locale_weekdays),
|
43 | weekdayLookup = formatLookup(locale_weekdays),
|
44 | shortWeekdayRe = formatRe(locale_shortWeekdays),
|
45 | shortWeekdayLookup = formatLookup(locale_shortWeekdays),
|
46 | monthRe = formatRe(locale_months),
|
47 | monthLookup = formatLookup(locale_months),
|
48 | shortMonthRe = formatRe(locale_shortMonths),
|
49 | shortMonthLookup = formatLookup(locale_shortMonths);
|
50 |
|
51 | var formats = {
|
52 | "a": formatShortWeekday,
|
53 | "A": formatWeekday,
|
54 | "b": formatShortMonth,
|
55 | "B": formatMonth,
|
56 | "c": null,
|
57 | "d": formatDayOfMonth,
|
58 | "e": formatDayOfMonth,
|
59 | "f": formatMicroseconds,
|
60 | "g": formatYearISO,
|
61 | "G": formatFullYearISO,
|
62 | "H": formatHour24,
|
63 | "I": formatHour12,
|
64 | "j": formatDayOfYear,
|
65 | "L": formatMilliseconds,
|
66 | "m": formatMonthNumber,
|
67 | "M": formatMinutes,
|
68 | "p": formatPeriod,
|
69 | "q": formatQuarter,
|
70 | "Q": formatUnixTimestamp,
|
71 | "s": formatUnixTimestampSeconds,
|
72 | "S": formatSeconds,
|
73 | "u": formatWeekdayNumberMonday,
|
74 | "U": formatWeekNumberSunday,
|
75 | "V": formatWeekNumberISO,
|
76 | "w": formatWeekdayNumberSunday,
|
77 | "W": formatWeekNumberMonday,
|
78 | "x": null,
|
79 | "X": null,
|
80 | "y": formatYear,
|
81 | "Y": formatFullYear,
|
82 | "Z": formatZone,
|
83 | "%": formatLiteralPercent
|
84 | };
|
85 |
|
86 | var utcFormats = {
|
87 | "a": formatUTCShortWeekday,
|
88 | "A": formatUTCWeekday,
|
89 | "b": formatUTCShortMonth,
|
90 | "B": formatUTCMonth,
|
91 | "c": null,
|
92 | "d": formatUTCDayOfMonth,
|
93 | "e": formatUTCDayOfMonth,
|
94 | "f": formatUTCMicroseconds,
|
95 | "g": formatUTCYearISO,
|
96 | "G": formatUTCFullYearISO,
|
97 | "H": formatUTCHour24,
|
98 | "I": formatUTCHour12,
|
99 | "j": formatUTCDayOfYear,
|
100 | "L": formatUTCMilliseconds,
|
101 | "m": formatUTCMonthNumber,
|
102 | "M": formatUTCMinutes,
|
103 | "p": formatUTCPeriod,
|
104 | "q": formatUTCQuarter,
|
105 | "Q": formatUnixTimestamp,
|
106 | "s": formatUnixTimestampSeconds,
|
107 | "S": formatUTCSeconds,
|
108 | "u": formatUTCWeekdayNumberMonday,
|
109 | "U": formatUTCWeekNumberSunday,
|
110 | "V": formatUTCWeekNumberISO,
|
111 | "w": formatUTCWeekdayNumberSunday,
|
112 | "W": formatUTCWeekNumberMonday,
|
113 | "x": null,
|
114 | "X": null,
|
115 | "y": formatUTCYear,
|
116 | "Y": formatUTCFullYear,
|
117 | "Z": formatUTCZone,
|
118 | "%": formatLiteralPercent
|
119 | };
|
120 |
|
121 | var parses = {
|
122 | "a": parseShortWeekday,
|
123 | "A": parseWeekday,
|
124 | "b": parseShortMonth,
|
125 | "B": parseMonth,
|
126 | "c": parseLocaleDateTime,
|
127 | "d": parseDayOfMonth,
|
128 | "e": parseDayOfMonth,
|
129 | "f": parseMicroseconds,
|
130 | "g": parseYear,
|
131 | "G": parseFullYear,
|
132 | "H": parseHour24,
|
133 | "I": parseHour24,
|
134 | "j": parseDayOfYear,
|
135 | "L": parseMilliseconds,
|
136 | "m": parseMonthNumber,
|
137 | "M": parseMinutes,
|
138 | "p": parsePeriod,
|
139 | "q": parseQuarter,
|
140 | "Q": parseUnixTimestamp,
|
141 | "s": parseUnixTimestampSeconds,
|
142 | "S": parseSeconds,
|
143 | "u": parseWeekdayNumberMonday,
|
144 | "U": parseWeekNumberSunday,
|
145 | "V": parseWeekNumberISO,
|
146 | "w": parseWeekdayNumberSunday,
|
147 | "W": parseWeekNumberMonday,
|
148 | "x": parseLocaleDate,
|
149 | "X": parseLocaleTime,
|
150 | "y": parseYear,
|
151 | "Y": parseFullYear,
|
152 | "Z": parseZone,
|
153 | "%": parseLiteralPercent
|
154 | };
|
155 |
|
156 |
|
157 | formats.x = newFormat(locale_date, formats);
|
158 | formats.X = newFormat(locale_time, formats);
|
159 | formats.c = newFormat(locale_dateTime, formats);
|
160 | utcFormats.x = newFormat(locale_date, utcFormats);
|
161 | utcFormats.X = newFormat(locale_time, utcFormats);
|
162 | utcFormats.c = newFormat(locale_dateTime, utcFormats);
|
163 |
|
164 | function newFormat(specifier, formats) {
|
165 | return function(date) {
|
166 | var string = [],
|
167 | i = -1,
|
168 | j = 0,
|
169 | n = specifier.length,
|
170 | c,
|
171 | pad,
|
172 | format;
|
173 |
|
174 | if (!(date instanceof Date)) date = new Date(+date);
|
175 |
|
176 | while (++i < n) {
|
177 | if (specifier.charCodeAt(i) === 37) {
|
178 | string.push(specifier.slice(j, i));
|
179 | if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
|
180 | else pad = c === "e" ? " " : "0";
|
181 | if (format = formats[c]) c = format(date, pad);
|
182 | string.push(c);
|
183 | j = i + 1;
|
184 | }
|
185 | }
|
186 |
|
187 | string.push(specifier.slice(j, i));
|
188 | return string.join("");
|
189 | };
|
190 | }
|
191 |
|
192 | function newParse(specifier, Z) {
|
193 | return function(string) {
|
194 | var d = newDate(1900, undefined, 1),
|
195 | i = parseSpecifier(d, specifier, string += "", 0),
|
196 | week, day;
|
197 | if (i != string.length) return null;
|
198 |
|
199 |
|
200 | if ("Q" in d) return new Date(d.Q);
|
201 | if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
|
202 |
|
203 |
|
204 | if (Z && !("Z" in d)) d.Z = 0;
|
205 |
|
206 |
|
207 | if ("p" in d) d.H = d.H % 12 + d.p * 12;
|
208 |
|
209 |
|
210 | if (d.m === undefined) d.m = "q" in d ? d.q : 0;
|
211 |
|
212 |
|
213 | if ("V" in d) {
|
214 | if (d.V < 1 || d.V > 53) return null;
|
215 | if (!("w" in d)) d.w = 1;
|
216 | if ("Z" in d) {
|
217 | week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
|
218 | week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);
|
219 | week = d3Time.utcDay.offset(week, (d.V - 1) * 7);
|
220 | d.y = week.getUTCFullYear();
|
221 | d.m = week.getUTCMonth();
|
222 | d.d = week.getUTCDate() + (d.w + 6) % 7;
|
223 | } else {
|
224 | week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
|
225 | week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);
|
226 | week = d3Time.timeDay.offset(week, (d.V - 1) * 7);
|
227 | d.y = week.getFullYear();
|
228 | d.m = week.getMonth();
|
229 | d.d = week.getDate() + (d.w + 6) % 7;
|
230 | }
|
231 | } else if ("W" in d || "U" in d) {
|
232 | if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
|
233 | day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
234 | d.m = 0;
|
235 | d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
|
236 | }
|
237 |
|
238 |
|
239 |
|
240 | if ("Z" in d) {
|
241 | d.H += d.Z / 100 | 0;
|
242 | d.M += d.Z % 100;
|
243 | return utcDate(d);
|
244 | }
|
245 |
|
246 |
|
247 | return localDate(d);
|
248 | };
|
249 | }
|
250 |
|
251 | function parseSpecifier(d, specifier, string, j) {
|
252 | var i = 0,
|
253 | n = specifier.length,
|
254 | m = string.length,
|
255 | c,
|
256 | parse;
|
257 |
|
258 | while (i < n) {
|
259 | if (j >= m) return -1;
|
260 | c = specifier.charCodeAt(i++);
|
261 | if (c === 37) {
|
262 | c = specifier.charAt(i++);
|
263 | parse = parses[c in pads ? specifier.charAt(i++) : c];
|
264 | if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
|
265 | } else if (c != string.charCodeAt(j++)) {
|
266 | return -1;
|
267 | }
|
268 | }
|
269 |
|
270 | return j;
|
271 | }
|
272 |
|
273 | function parsePeriod(d, string, i) {
|
274 | var n = periodRe.exec(string.slice(i));
|
275 | return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
276 | }
|
277 |
|
278 | function parseShortWeekday(d, string, i) {
|
279 | var n = shortWeekdayRe.exec(string.slice(i));
|
280 | return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
281 | }
|
282 |
|
283 | function parseWeekday(d, string, i) {
|
284 | var n = weekdayRe.exec(string.slice(i));
|
285 | return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
286 | }
|
287 |
|
288 | function parseShortMonth(d, string, i) {
|
289 | var n = shortMonthRe.exec(string.slice(i));
|
290 | return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
291 | }
|
292 |
|
293 | function parseMonth(d, string, i) {
|
294 | var n = monthRe.exec(string.slice(i));
|
295 | return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
|
296 | }
|
297 |
|
298 | function parseLocaleDateTime(d, string, i) {
|
299 | return parseSpecifier(d, locale_dateTime, string, i);
|
300 | }
|
301 |
|
302 | function parseLocaleDate(d, string, i) {
|
303 | return parseSpecifier(d, locale_date, string, i);
|
304 | }
|
305 |
|
306 | function parseLocaleTime(d, string, i) {
|
307 | return parseSpecifier(d, locale_time, string, i);
|
308 | }
|
309 |
|
310 | function formatShortWeekday(d) {
|
311 | return locale_shortWeekdays[d.getDay()];
|
312 | }
|
313 |
|
314 | function formatWeekday(d) {
|
315 | return locale_weekdays[d.getDay()];
|
316 | }
|
317 |
|
318 | function formatShortMonth(d) {
|
319 | return locale_shortMonths[d.getMonth()];
|
320 | }
|
321 |
|
322 | function formatMonth(d) {
|
323 | return locale_months[d.getMonth()];
|
324 | }
|
325 |
|
326 | function formatPeriod(d) {
|
327 | return locale_periods[+(d.getHours() >= 12)];
|
328 | }
|
329 |
|
330 | function formatQuarter(d) {
|
331 | return 1 + ~~(d.getMonth() / 3);
|
332 | }
|
333 |
|
334 | function formatUTCShortWeekday(d) {
|
335 | return locale_shortWeekdays[d.getUTCDay()];
|
336 | }
|
337 |
|
338 | function formatUTCWeekday(d) {
|
339 | return locale_weekdays[d.getUTCDay()];
|
340 | }
|
341 |
|
342 | function formatUTCShortMonth(d) {
|
343 | return locale_shortMonths[d.getUTCMonth()];
|
344 | }
|
345 |
|
346 | function formatUTCMonth(d) {
|
347 | return locale_months[d.getUTCMonth()];
|
348 | }
|
349 |
|
350 | function formatUTCPeriod(d) {
|
351 | return locale_periods[+(d.getUTCHours() >= 12)];
|
352 | }
|
353 |
|
354 | function formatUTCQuarter(d) {
|
355 | return 1 + ~~(d.getUTCMonth() / 3);
|
356 | }
|
357 |
|
358 | return {
|
359 | format: function(specifier) {
|
360 | var f = newFormat(specifier += "", formats);
|
361 | f.toString = function() { return specifier; };
|
362 | return f;
|
363 | },
|
364 | parse: function(specifier) {
|
365 | var p = newParse(specifier += "", false);
|
366 | p.toString = function() { return specifier; };
|
367 | return p;
|
368 | },
|
369 | utcFormat: function(specifier) {
|
370 | var f = newFormat(specifier += "", utcFormats);
|
371 | f.toString = function() { return specifier; };
|
372 | return f;
|
373 | },
|
374 | utcParse: function(specifier) {
|
375 | var p = newParse(specifier += "", true);
|
376 | p.toString = function() { return specifier; };
|
377 | return p;
|
378 | }
|
379 | };
|
380 | }
|
381 |
|
382 | var pads = {"-": "", "_": " ", "0": "0"},
|
383 | numberRe = /^\s*\d+/,
|
384 | percentRe = /^%/,
|
385 | requoteRe = /[\\^$*+?|[\]().{}]/g;
|
386 |
|
387 | function pad(value, fill, width) {
|
388 | var sign = value < 0 ? "-" : "",
|
389 | string = (sign ? -value : value) + "",
|
390 | length = string.length;
|
391 | return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
|
392 | }
|
393 |
|
394 | function requote(s) {
|
395 | return s.replace(requoteRe, "\\$&");
|
396 | }
|
397 |
|
398 | function formatRe(names) {
|
399 | return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
|
400 | }
|
401 |
|
402 | function formatLookup(names) {
|
403 | return new Map(names.map((name, i) => [name.toLowerCase(), i]));
|
404 | }
|
405 |
|
406 | function parseWeekdayNumberSunday(d, string, i) {
|
407 | var n = numberRe.exec(string.slice(i, i + 1));
|
408 | return n ? (d.w = +n[0], i + n[0].length) : -1;
|
409 | }
|
410 |
|
411 | function parseWeekdayNumberMonday(d, string, i) {
|
412 | var n = numberRe.exec(string.slice(i, i + 1));
|
413 | return n ? (d.u = +n[0], i + n[0].length) : -1;
|
414 | }
|
415 |
|
416 | function parseWeekNumberSunday(d, string, i) {
|
417 | var n = numberRe.exec(string.slice(i, i + 2));
|
418 | return n ? (d.U = +n[0], i + n[0].length) : -1;
|
419 | }
|
420 |
|
421 | function parseWeekNumberISO(d, string, i) {
|
422 | var n = numberRe.exec(string.slice(i, i + 2));
|
423 | return n ? (d.V = +n[0], i + n[0].length) : -1;
|
424 | }
|
425 |
|
426 | function parseWeekNumberMonday(d, string, i) {
|
427 | var n = numberRe.exec(string.slice(i, i + 2));
|
428 | return n ? (d.W = +n[0], i + n[0].length) : -1;
|
429 | }
|
430 |
|
431 | function parseFullYear(d, string, i) {
|
432 | var n = numberRe.exec(string.slice(i, i + 4));
|
433 | return n ? (d.y = +n[0], i + n[0].length) : -1;
|
434 | }
|
435 |
|
436 | function parseYear(d, string, i) {
|
437 | var n = numberRe.exec(string.slice(i, i + 2));
|
438 | return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
|
439 | }
|
440 |
|
441 | function parseZone(d, string, i) {
|
442 | var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
|
443 | return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
|
444 | }
|
445 |
|
446 | function parseQuarter(d, string, i) {
|
447 | var n = numberRe.exec(string.slice(i, i + 1));
|
448 | return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
|
449 | }
|
450 |
|
451 | function parseMonthNumber(d, string, i) {
|
452 | var n = numberRe.exec(string.slice(i, i + 2));
|
453 | return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
|
454 | }
|
455 |
|
456 | function parseDayOfMonth(d, string, i) {
|
457 | var n = numberRe.exec(string.slice(i, i + 2));
|
458 | return n ? (d.d = +n[0], i + n[0].length) : -1;
|
459 | }
|
460 |
|
461 | function parseDayOfYear(d, string, i) {
|
462 | var n = numberRe.exec(string.slice(i, i + 3));
|
463 | return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
|
464 | }
|
465 |
|
466 | function parseHour24(d, string, i) {
|
467 | var n = numberRe.exec(string.slice(i, i + 2));
|
468 | return n ? (d.H = +n[0], i + n[0].length) : -1;
|
469 | }
|
470 |
|
471 | function parseMinutes(d, string, i) {
|
472 | var n = numberRe.exec(string.slice(i, i + 2));
|
473 | return n ? (d.M = +n[0], i + n[0].length) : -1;
|
474 | }
|
475 |
|
476 | function parseSeconds(d, string, i) {
|
477 | var n = numberRe.exec(string.slice(i, i + 2));
|
478 | return n ? (d.S = +n[0], i + n[0].length) : -1;
|
479 | }
|
480 |
|
481 | function parseMilliseconds(d, string, i) {
|
482 | var n = numberRe.exec(string.slice(i, i + 3));
|
483 | return n ? (d.L = +n[0], i + n[0].length) : -1;
|
484 | }
|
485 |
|
486 | function parseMicroseconds(d, string, i) {
|
487 | var n = numberRe.exec(string.slice(i, i + 6));
|
488 | return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
|
489 | }
|
490 |
|
491 | function parseLiteralPercent(d, string, i) {
|
492 | var n = percentRe.exec(string.slice(i, i + 1));
|
493 | return n ? i + n[0].length : -1;
|
494 | }
|
495 |
|
496 | function parseUnixTimestamp(d, string, i) {
|
497 | var n = numberRe.exec(string.slice(i));
|
498 | return n ? (d.Q = +n[0], i + n[0].length) : -1;
|
499 | }
|
500 |
|
501 | function parseUnixTimestampSeconds(d, string, i) {
|
502 | var n = numberRe.exec(string.slice(i));
|
503 | return n ? (d.s = +n[0], i + n[0].length) : -1;
|
504 | }
|
505 |
|
506 | function formatDayOfMonth(d, p) {
|
507 | return pad(d.getDate(), p, 2);
|
508 | }
|
509 |
|
510 | function formatHour24(d, p) {
|
511 | return pad(d.getHours(), p, 2);
|
512 | }
|
513 |
|
514 | function formatHour12(d, p) {
|
515 | return pad(d.getHours() % 12 || 12, p, 2);
|
516 | }
|
517 |
|
518 | function formatDayOfYear(d, p) {
|
519 | return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);
|
520 | }
|
521 |
|
522 | function formatMilliseconds(d, p) {
|
523 | return pad(d.getMilliseconds(), p, 3);
|
524 | }
|
525 |
|
526 | function formatMicroseconds(d, p) {
|
527 | return formatMilliseconds(d, p) + "000";
|
528 | }
|
529 |
|
530 | function formatMonthNumber(d, p) {
|
531 | return pad(d.getMonth() + 1, p, 2);
|
532 | }
|
533 |
|
534 | function formatMinutes(d, p) {
|
535 | return pad(d.getMinutes(), p, 2);
|
536 | }
|
537 |
|
538 | function formatSeconds(d, p) {
|
539 | return pad(d.getSeconds(), p, 2);
|
540 | }
|
541 |
|
542 | function formatWeekdayNumberMonday(d) {
|
543 | var day = d.getDay();
|
544 | return day === 0 ? 7 : day;
|
545 | }
|
546 |
|
547 | function formatWeekNumberSunday(d, p) {
|
548 | return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);
|
549 | }
|
550 |
|
551 | function dISO(d) {
|
552 | var day = d.getDay();
|
553 | return (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);
|
554 | }
|
555 |
|
556 | function formatWeekNumberISO(d, p) {
|
557 | d = dISO(d);
|
558 | return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);
|
559 | }
|
560 |
|
561 | function formatWeekdayNumberSunday(d) {
|
562 | return d.getDay();
|
563 | }
|
564 |
|
565 | function formatWeekNumberMonday(d, p) {
|
566 | return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);
|
567 | }
|
568 |
|
569 | function formatYear(d, p) {
|
570 | return pad(d.getFullYear() % 100, p, 2);
|
571 | }
|
572 |
|
573 | function formatYearISO(d, p) {
|
574 | d = dISO(d);
|
575 | return pad(d.getFullYear() % 100, p, 2);
|
576 | }
|
577 |
|
578 | function formatFullYear(d, p) {
|
579 | return pad(d.getFullYear() % 10000, p, 4);
|
580 | }
|
581 |
|
582 | function formatFullYearISO(d, p) {
|
583 | var day = d.getDay();
|
584 | d = (day >= 4 || day === 0) ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);
|
585 | return pad(d.getFullYear() % 10000, p, 4);
|
586 | }
|
587 |
|
588 | function formatZone(d) {
|
589 | var z = d.getTimezoneOffset();
|
590 | return (z > 0 ? "-" : (z *= -1, "+"))
|
591 | + pad(z / 60 | 0, "0", 2)
|
592 | + pad(z % 60, "0", 2);
|
593 | }
|
594 |
|
595 | function formatUTCDayOfMonth(d, p) {
|
596 | return pad(d.getUTCDate(), p, 2);
|
597 | }
|
598 |
|
599 | function formatUTCHour24(d, p) {
|
600 | return pad(d.getUTCHours(), p, 2);
|
601 | }
|
602 |
|
603 | function formatUTCHour12(d, p) {
|
604 | return pad(d.getUTCHours() % 12 || 12, p, 2);
|
605 | }
|
606 |
|
607 | function formatUTCDayOfYear(d, p) {
|
608 | return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);
|
609 | }
|
610 |
|
611 | function formatUTCMilliseconds(d, p) {
|
612 | return pad(d.getUTCMilliseconds(), p, 3);
|
613 | }
|
614 |
|
615 | function formatUTCMicroseconds(d, p) {
|
616 | return formatUTCMilliseconds(d, p) + "000";
|
617 | }
|
618 |
|
619 | function formatUTCMonthNumber(d, p) {
|
620 | return pad(d.getUTCMonth() + 1, p, 2);
|
621 | }
|
622 |
|
623 | function formatUTCMinutes(d, p) {
|
624 | return pad(d.getUTCMinutes(), p, 2);
|
625 | }
|
626 |
|
627 | function formatUTCSeconds(d, p) {
|
628 | return pad(d.getUTCSeconds(), p, 2);
|
629 | }
|
630 |
|
631 | function formatUTCWeekdayNumberMonday(d) {
|
632 | var dow = d.getUTCDay();
|
633 | return dow === 0 ? 7 : dow;
|
634 | }
|
635 |
|
636 | function formatUTCWeekNumberSunday(d, p) {
|
637 | return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);
|
638 | }
|
639 |
|
640 | function UTCdISO(d) {
|
641 | var day = d.getUTCDay();
|
642 | return (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);
|
643 | }
|
644 |
|
645 | function formatUTCWeekNumberISO(d, p) {
|
646 | d = UTCdISO(d);
|
647 | return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);
|
648 | }
|
649 |
|
650 | function formatUTCWeekdayNumberSunday(d) {
|
651 | return d.getUTCDay();
|
652 | }
|
653 |
|
654 | function formatUTCWeekNumberMonday(d, p) {
|
655 | return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);
|
656 | }
|
657 |
|
658 | function formatUTCYear(d, p) {
|
659 | return pad(d.getUTCFullYear() % 100, p, 2);
|
660 | }
|
661 |
|
662 | function formatUTCYearISO(d, p) {
|
663 | d = UTCdISO(d);
|
664 | return pad(d.getUTCFullYear() % 100, p, 2);
|
665 | }
|
666 |
|
667 | function formatUTCFullYear(d, p) {
|
668 | return pad(d.getUTCFullYear() % 10000, p, 4);
|
669 | }
|
670 |
|
671 | function formatUTCFullYearISO(d, p) {
|
672 | var day = d.getUTCDay();
|
673 | d = (day >= 4 || day === 0) ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);
|
674 | return pad(d.getUTCFullYear() % 10000, p, 4);
|
675 | }
|
676 |
|
677 | function formatUTCZone() {
|
678 | return "+0000";
|
679 | }
|
680 |
|
681 | function formatLiteralPercent() {
|
682 | return "%";
|
683 | }
|
684 |
|
685 | function formatUnixTimestamp(d) {
|
686 | return +d;
|
687 | }
|
688 |
|
689 | function formatUnixTimestampSeconds(d) {
|
690 | return Math.floor(+d / 1000);
|
691 | }
|
692 |
|
693 | var locale;
|
694 | exports.timeFormat = void 0;
|
695 | exports.timeParse = void 0;
|
696 | exports.utcFormat = void 0;
|
697 | exports.utcParse = void 0;
|
698 |
|
699 | defaultLocale({
|
700 | dateTime: "%x, %X",
|
701 | date: "%-m/%-d/%Y",
|
702 | time: "%-I:%M:%S %p",
|
703 | periods: ["AM", "PM"],
|
704 | days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
|
705 | shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
706 | months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
707 | shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
|
708 | });
|
709 |
|
710 | function defaultLocale(definition) {
|
711 | locale = formatLocale(definition);
|
712 | exports.timeFormat = locale.format;
|
713 | exports.timeParse = locale.parse;
|
714 | exports.utcFormat = locale.utcFormat;
|
715 | exports.utcParse = locale.utcParse;
|
716 | return locale;
|
717 | }
|
718 |
|
719 | var isoSpecifier = "%Y-%m-%dT%H:%M:%S.%LZ";
|
720 |
|
721 | function formatIsoNative(date) {
|
722 | return date.toISOString();
|
723 | }
|
724 |
|
725 | var formatIso = Date.prototype.toISOString
|
726 | ? formatIsoNative
|
727 | : exports.utcFormat(isoSpecifier);
|
728 |
|
729 | function parseIsoNative(string) {
|
730 | var date = new Date(string);
|
731 | return isNaN(date) ? null : date;
|
732 | }
|
733 |
|
734 | var parseIso = +new Date("2000-01-01T00:00:00.000Z")
|
735 | ? parseIsoNative
|
736 | : exports.utcParse(isoSpecifier);
|
737 |
|
738 | exports.isoFormat = formatIso;
|
739 | exports.isoParse = parseIso;
|
740 | exports.timeFormatDefaultLocale = defaultLocale;
|
741 | exports.timeFormatLocale = formatLocale;
|
742 |
|
743 | Object.defineProperty(exports, '__esModule', { value: true });
|
744 |
|
745 | }));
|