| 1 | // https://d3js.org/d3-time-format/ v4.1.0 Copyright 2010-2021 Mike Bostock
|
|---|
| 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 | // These recursive directive definitions must be deferred.
|
|---|
| 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 | // If a UNIX timestamp is specified, return it.
|
|---|
| 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 | // If this is utcParse, never use the local timezone.
|
|---|
| 204 | if (Z && !("Z" in d)) d.Z = 0;
|
|---|
| 205 |
|
|---|
| 206 | // The am-pm flag is 0 for AM, and 1 for PM.
|
|---|
| 207 | if ("p" in d) d.H = d.H % 12 + d.p * 12;
|
|---|
| 208 |
|
|---|
| 209 | // If the month was not specified, inherit from the quarter.
|
|---|
| 210 | if (d.m === undefined) d.m = "q" in d ? d.q : 0;
|
|---|
| 211 |
|
|---|
| 212 | // Convert day-of-week and week-of-year to day-of-year.
|
|---|
| 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 | // If a time zone is specified, all fields are interpreted as UTC and then
|
|---|
| 239 | // offset according to the specified time zone.
|
|---|
| 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 | // Otherwise, all fields are in local time.
|
|---|
| 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+/, // note: ignores next directive
|
|---|
| 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 | }));
|
|---|