genesys-spark-chart-components 4.108.1 → 4.108.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/cjs/{color-palette-13907e21.js → color-palette-b5997bf7.js} +6 -6
  2. package/dist/cjs/genesys-chart-webcomponents.cjs.js +1 -1
  3. package/dist/cjs/gux-chart-column-beta.cjs.entry.js +2 -2
  4. package/dist/cjs/gux-chart-donut-beta.cjs.entry.js +2 -2
  5. package/dist/cjs/gux-chart-line-beta.cjs.entry.js +2 -2
  6. package/dist/cjs/gux-chart-pie-beta.cjs.entry.js +2 -2
  7. package/dist/cjs/gux-chart-scatter-plot-beta.cjs.entry.js +2 -2
  8. package/dist/cjs/gux-visualization-beta.cjs.entry.js +2049 -547
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/esm/{color-palette-9eb459ff.js → color-palette-eddb9a82.js} +6 -6
  11. package/dist/esm/genesys-chart-webcomponents.js +2 -2
  12. package/dist/esm/gux-chart-column-beta.entry.js +2 -2
  13. package/dist/esm/gux-chart-donut-beta.entry.js +2 -2
  14. package/dist/esm/gux-chart-line-beta.entry.js +2 -2
  15. package/dist/esm/gux-chart-pie-beta.entry.js +2 -2
  16. package/dist/esm/gux-chart-scatter-plot-beta.entry.js +2 -2
  17. package/dist/esm/gux-visualization-beta.entry.js +2049 -547
  18. package/dist/esm/loader.js +2 -2
  19. package/dist/genesys-chart-webcomponents/genesys-chart-webcomponents.esm.js +1 -1
  20. package/dist/genesys-chart-webcomponents/{p-3e35485e.entry.js → p-0aa7531d.entry.js} +1 -1
  21. package/dist/genesys-chart-webcomponents/{p-98ddee18.entry.js → p-2ed0d525.entry.js} +1 -1
  22. package/dist/genesys-chart-webcomponents/{p-9b772f18.entry.js → p-39f9b8bf.entry.js} +1 -1
  23. package/dist/genesys-chart-webcomponents/{p-5c3c1933.entry.js → p-8d660329.entry.js} +1 -1
  24. package/dist/genesys-chart-webcomponents/{p-8f831ffa.js → p-c694a779.js} +1 -1
  25. package/dist/genesys-chart-webcomponents/{p-2d1e3ba7.entry.js → p-ded23162.entry.js} +1 -1
  26. package/dist/genesys-chart-webcomponents/p-ed68aa1a.entry.js +11 -0
  27. package/dist/stencil-wrapper.js +1 -1
  28. package/dist/types/stencil-wrapper.d.ts +1 -1
  29. package/package.json +6 -6
  30. package/dist/genesys-chart-webcomponents/p-843a3d96.entry.js +0 -11
  31. /package/dist/cjs/{index-ff3dd910.js → index-bb73bd35.js} +0 -0
  32. /package/dist/esm/{index-758376aa.js → index-d8134161.js} +0 -0
  33. /package/dist/genesys-chart-webcomponents/{p-9a26d1f6.js → p-3f79bb4f.js} +0 -0
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const index$2 = require('./index-ff3dd910.js');
6
- const colorPalette = require('./color-palette-13907e21.js');
5
+ const index$2 = require('./index-bb73bd35.js');
6
+ const colorPalette = require('./color-palette-b5997bf7.js');
7
7
 
8
8
  // Note: This regex matches even invalid JSON strings, but since we’re
9
9
  // working on the output of `JSON.stringify` we know that only valid strings
@@ -200,7 +200,7 @@ function field$1 (field, name, opt) {
200
200
  }
201
201
 
202
202
  const id = field$1('id');
203
- const identity$6 = accessor(_ => _, [], 'identity');
203
+ const identity$7 = accessor(_ => _, [], 'identity');
204
204
  const zero$4 = accessor(() => 0, [], 'zero');
205
205
  const one$2 = accessor(() => 1, [], 'one');
206
206
  const truthy = accessor(() => true, [], 'true');
@@ -330,7 +330,7 @@ function pan(domain, delta, lift, ground) {
330
330
  return [ground(d0 - dd), ground(d1 - dd)];
331
331
  }
332
332
  function panLinear(domain, delta) {
333
- return pan(domain, delta, toNumber, identity$6);
333
+ return pan(domain, delta, toNumber, identity$7);
334
334
  }
335
335
  function panLog(domain, delta) {
336
336
  var sign = Math.sign(domain[0]);
@@ -349,7 +349,7 @@ function zoom$2(domain, anchor, scale, lift, ground) {
349
349
  return [ground(da + (d0 - da) * scale), ground(da + (d1 - da) * scale)];
350
350
  }
351
351
  function zoomLinear(domain, anchor, scale) {
352
- return zoom$2(domain, anchor, scale, toNumber, identity$6);
352
+ return zoom$2(domain, anchor, scale, toNumber, identity$7);
353
353
  }
354
354
  function zoomLog(domain, anchor, scale) {
355
355
  const sign = Math.sign(domain[0]);
@@ -792,7 +792,7 @@ function repeat (str, reps) {
792
792
  return s;
793
793
  }
794
794
 
795
- function pad$2 (str, length, padchar, align) {
795
+ function pad$3 (str, length, padchar, align) {
796
796
  const c = padchar || ' ',
797
797
  s = str + '',
798
798
  n = length - s.length;
@@ -892,15 +892,15 @@ function inferColumns(rows) {
892
892
  return columns;
893
893
  }
894
894
 
895
- function pad$1(value, width) {
895
+ function pad$2(value, width) {
896
896
  var s = value + "", length = s.length;
897
897
  return length < width ? new Array(width - length + 1).join(0) + s : s;
898
898
  }
899
899
 
900
- function formatYear$1(year) {
901
- return year < 0 ? "-" + pad$1(-year, 6)
902
- : year > 9999 ? "+" + pad$1(year, 6)
903
- : pad$1(year, 4);
900
+ function formatYear$2(year) {
901
+ return year < 0 ? "-" + pad$2(-year, 6)
902
+ : year > 9999 ? "+" + pad$2(year, 6)
903
+ : pad$2(year, 4);
904
904
  }
905
905
 
906
906
  function formatDate(date) {
@@ -909,10 +909,10 @@ function formatDate(date) {
909
909
  seconds = date.getUTCSeconds(),
910
910
  milliseconds = date.getUTCMilliseconds();
911
911
  return isNaN(date) ? "Invalid Date"
912
- : formatYear$1(date.getUTCFullYear()) + "-" + pad$1(date.getUTCMonth() + 1, 2) + "-" + pad$1(date.getUTCDate(), 2)
913
- + (milliseconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "." + pad$1(milliseconds, 3) + "Z"
914
- : seconds ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + ":" + pad$1(seconds, 2) + "Z"
915
- : minutes || hours ? "T" + pad$1(hours, 2) + ":" + pad$1(minutes, 2) + "Z"
912
+ : formatYear$2(date.getUTCFullYear()) + "-" + pad$2(date.getUTCMonth() + 1, 2) + "-" + pad$2(date.getUTCDate(), 2)
913
+ + (milliseconds ? "T" + pad$2(hours, 2) + ":" + pad$2(minutes, 2) + ":" + pad$2(seconds, 2) + "." + pad$2(milliseconds, 3) + "Z"
914
+ : seconds ? "T" + pad$2(hours, 2) + ":" + pad$2(minutes, 2) + ":" + pad$2(seconds, 2) + "Z"
915
+ : minutes || hours ? "T" + pad$2(hours, 2) + ":" + pad$2(minutes, 2) + "Z"
916
916
  : "");
917
917
  }
918
918
 
@@ -1022,12 +1022,12 @@ function dsvFormat(delimiter) {
1022
1022
  };
1023
1023
  }
1024
1024
 
1025
- function identity$5(x) {
1025
+ function identity$6(x) {
1026
1026
  return x;
1027
1027
  }
1028
1028
 
1029
1029
  function transform$3(transform) {
1030
- if (transform == null) return identity$5;
1030
+ if (transform == null) return identity$6;
1031
1031
  var x0,
1032
1032
  y0,
1033
1033
  kx = transform.scale[0],
@@ -1758,7 +1758,7 @@ function union(...others) {
1758
1758
  return set;
1759
1759
  }
1760
1760
 
1761
- function formatDecimal(x) {
1761
+ function formatDecimal$1(x) {
1762
1762
  return Math.abs(x = Math.round(x)) >= 1e21
1763
1763
  ? x.toLocaleString("en").replace(/,/g, "")
1764
1764
  : x.toString(10);
@@ -1767,7 +1767,7 @@ function formatDecimal(x) {
1767
1767
  // Computes the decimal coefficient and exponent of the specified number x with
1768
1768
  // significant digits p, where x is positive and p is in [1, 21] or undefined.
1769
1769
  // For example, formatDecimalParts(1.23) returns ["123", 0].
1770
- function formatDecimalParts(x, p) {
1770
+ function formatDecimalParts$1(x, p) {
1771
1771
  if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
1772
1772
  var i, coefficient = x.slice(0, i);
1773
1773
 
@@ -1779,11 +1779,11 @@ function formatDecimalParts(x, p) {
1779
1779
  ];
1780
1780
  }
1781
1781
 
1782
- function exponent(x) {
1783
- return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
1782
+ function exponent$1(x) {
1783
+ return x = formatDecimalParts$1(Math.abs(x)), x ? x[1] : NaN;
1784
1784
  }
1785
1785
 
1786
- function formatGroup(grouping, thousands) {
1786
+ function formatGroup$1(grouping, thousands) {
1787
1787
  return function(value, width) {
1788
1788
  var i = value.length,
1789
1789
  t = [],
@@ -1802,7 +1802,7 @@ function formatGroup(grouping, thousands) {
1802
1802
  };
1803
1803
  }
1804
1804
 
1805
- function formatNumerals(numerals) {
1805
+ function formatNumerals$1(numerals) {
1806
1806
  return function(value) {
1807
1807
  return value.replace(/[0-9]/g, function(i) {
1808
1808
  return numerals[+i];
@@ -1811,12 +1811,12 @@ function formatNumerals(numerals) {
1811
1811
  }
1812
1812
 
1813
1813
  // [[fill]align][sign][symbol][0][width][,][.precision][~][type]
1814
- var re$1 = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
1814
+ var re$2 = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
1815
1815
 
1816
- function formatSpecifier(specifier) {
1817
- if (!(match = re$1.exec(specifier))) throw new Error("invalid format: " + specifier);
1816
+ function formatSpecifier$1(specifier) {
1817
+ if (!(match = re$2.exec(specifier))) throw new Error("invalid format: " + specifier);
1818
1818
  var match;
1819
- return new FormatSpecifier({
1819
+ return new FormatSpecifier$1({
1820
1820
  fill: match[1],
1821
1821
  align: match[2],
1822
1822
  sign: match[3],
@@ -1830,9 +1830,9 @@ function formatSpecifier(specifier) {
1830
1830
  });
1831
1831
  }
1832
1832
 
1833
- formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
1833
+ formatSpecifier$1.prototype = FormatSpecifier$1.prototype; // instanceof
1834
1834
 
1835
- function FormatSpecifier(specifier) {
1835
+ function FormatSpecifier$1(specifier) {
1836
1836
  this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
1837
1837
  this.align = specifier.align === undefined ? ">" : specifier.align + "";
1838
1838
  this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
@@ -1845,7 +1845,7 @@ function FormatSpecifier(specifier) {
1845
1845
  this.type = specifier.type === undefined ? "" : specifier.type + "";
1846
1846
  }
1847
1847
 
1848
- FormatSpecifier.prototype.toString = function() {
1848
+ FormatSpecifier$1.prototype.toString = function() {
1849
1849
  return this.fill
1850
1850
  + this.align
1851
1851
  + this.sign
@@ -1859,7 +1859,7 @@ FormatSpecifier.prototype.toString = function() {
1859
1859
  };
1860
1860
 
1861
1861
  // Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
1862
- function formatTrim(s) {
1862
+ function formatTrim$1(s) {
1863
1863
  out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
1864
1864
  switch (s[i]) {
1865
1865
  case ".": i0 = i1 = i; break;
@@ -1870,23 +1870,23 @@ function formatTrim(s) {
1870
1870
  return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
1871
1871
  }
1872
1872
 
1873
- var prefixExponent;
1873
+ var prefixExponent$1;
1874
1874
 
1875
- function formatPrefixAuto(x, p) {
1876
- var d = formatDecimalParts(x, p);
1875
+ function formatPrefixAuto$1(x, p) {
1876
+ var d = formatDecimalParts$1(x, p);
1877
1877
  if (!d) return x + "";
1878
1878
  var coefficient = d[0],
1879
1879
  exponent = d[1],
1880
- i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
1880
+ i = exponent - (prefixExponent$1 = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
1881
1881
  n = coefficient.length;
1882
1882
  return i === n ? coefficient
1883
1883
  : i > n ? coefficient + new Array(i - n + 1).join("0")
1884
1884
  : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
1885
- : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
1885
+ : "0." + new Array(1 - i).join("0") + formatDecimalParts$1(x, Math.max(0, p + i - 1))[0]; // less than 1y!
1886
1886
  }
1887
1887
 
1888
- function formatRounded(x, p) {
1889
- var d = formatDecimalParts(x, p);
1888
+ function formatRounded$1(x, p) {
1889
+ var d = formatDecimalParts$1(x, p);
1890
1890
  if (!d) return x + "";
1891
1891
  var coefficient = d[0],
1892
1892
  exponent = d[1];
@@ -1895,41 +1895,41 @@ function formatRounded(x, p) {
1895
1895
  : coefficient + new Array(exponent - coefficient.length + 2).join("0");
1896
1896
  }
1897
1897
 
1898
- const formatTypes = {
1898
+ const formatTypes$1 = {
1899
1899
  "%": (x, p) => (x * 100).toFixed(p),
1900
1900
  "b": (x) => Math.round(x).toString(2),
1901
1901
  "c": (x) => x + "",
1902
- "d": formatDecimal,
1902
+ "d": formatDecimal$1,
1903
1903
  "e": (x, p) => x.toExponential(p),
1904
1904
  "f": (x, p) => x.toFixed(p),
1905
1905
  "g": (x, p) => x.toPrecision(p),
1906
1906
  "o": (x) => Math.round(x).toString(8),
1907
- "p": (x, p) => formatRounded(x * 100, p),
1908
- "r": formatRounded,
1909
- "s": formatPrefixAuto,
1907
+ "p": (x, p) => formatRounded$1(x * 100, p),
1908
+ "r": formatRounded$1,
1909
+ "s": formatPrefixAuto$1,
1910
1910
  "X": (x) => Math.round(x).toString(16).toUpperCase(),
1911
1911
  "x": (x) => Math.round(x).toString(16)
1912
1912
  };
1913
1913
 
1914
- function identity$4(x) {
1914
+ function identity$5(x) {
1915
1915
  return x;
1916
1916
  }
1917
1917
 
1918
- var map$1 = Array.prototype.map,
1919
- prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
1918
+ var map$2 = Array.prototype.map,
1919
+ prefixes$1 = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
1920
1920
 
1921
- function formatLocale$1(locale) {
1922
- var group = locale.grouping === undefined || locale.thousands === undefined ? identity$4 : formatGroup(map$1.call(locale.grouping, Number), locale.thousands + ""),
1921
+ function formatLocale$3(locale) {
1922
+ var group = locale.grouping === undefined || locale.thousands === undefined ? identity$5 : formatGroup$1(map$2.call(locale.grouping, Number), locale.thousands + ""),
1923
1923
  currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
1924
1924
  currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
1925
1925
  decimal = locale.decimal === undefined ? "." : locale.decimal + "",
1926
- numerals = locale.numerals === undefined ? identity$4 : formatNumerals(map$1.call(locale.numerals, String)),
1926
+ numerals = locale.numerals === undefined ? identity$5 : formatNumerals$1(map$2.call(locale.numerals, String)),
1927
1927
  percent = locale.percent === undefined ? "%" : locale.percent + "",
1928
1928
  minus = locale.minus === undefined ? "−" : locale.minus + "",
1929
1929
  nan = locale.nan === undefined ? "NaN" : locale.nan + "";
1930
1930
 
1931
1931
  function newFormat(specifier) {
1932
- specifier = formatSpecifier(specifier);
1932
+ specifier = formatSpecifier$1(specifier);
1933
1933
 
1934
1934
  var fill = specifier.fill,
1935
1935
  align = specifier.align,
@@ -1946,7 +1946,7 @@ function formatLocale$1(locale) {
1946
1946
  if (type === "n") comma = true, type = "g";
1947
1947
 
1948
1948
  // The "" type, and any invalid type, is an alias for ".12~g".
1949
- else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g";
1949
+ else if (!formatTypes$1[type]) precision === undefined && (precision = 12), trim = true, type = "g";
1950
1950
 
1951
1951
  // If zero fill is specified, padding goes after sign and before digits.
1952
1952
  if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
@@ -1959,7 +1959,7 @@ function formatLocale$1(locale) {
1959
1959
  // What format function should we use?
1960
1960
  // Is this an integer type?
1961
1961
  // Can this type generate exponential notation?
1962
- var formatType = formatTypes[type],
1962
+ var formatType = formatTypes$1[type],
1963
1963
  maybeSuffix = /[defgprs%]/.test(type);
1964
1964
 
1965
1965
  // Set the default precision if not specified,
@@ -1988,14 +1988,14 @@ function formatLocale$1(locale) {
1988
1988
  value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
1989
1989
 
1990
1990
  // Trim insignificant zeros.
1991
- if (trim) value = formatTrim(value);
1991
+ if (trim) value = formatTrim$1(value);
1992
1992
 
1993
1993
  // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
1994
1994
  if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
1995
1995
 
1996
1996
  // Compute the prefix and suffix.
1997
1997
  valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
1998
- valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
1998
+ valueSuffix = (type === "s" ? prefixes$1[8 + prefixExponent$1 / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
1999
1999
 
2000
2000
  // Break the formatted value into the integer “value” part that can be
2001
2001
  // grouped, and fractional or exponential “suffix” part that is not.
@@ -2040,10 +2040,10 @@ function formatLocale$1(locale) {
2040
2040
  }
2041
2041
 
2042
2042
  function formatPrefix(specifier, value) {
2043
- var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)),
2044
- e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
2043
+ var f = newFormat((specifier = formatSpecifier$1(specifier), specifier.type = "f", specifier)),
2044
+ e = Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3,
2045
2045
  k = Math.pow(10, -e),
2046
- prefix = prefixes[8 + e / 3];
2046
+ prefix = prefixes$1[8 + e / 3];
2047
2047
  return function(value) {
2048
2048
  return f(k * value) + prefix;
2049
2049
  };
@@ -2055,39 +2055,39 @@ function formatLocale$1(locale) {
2055
2055
  };
2056
2056
  }
2057
2057
 
2058
- var locale$2;
2059
- var format$3;
2060
- var formatPrefix;
2058
+ var locale$4;
2059
+ var format$4;
2060
+ var formatPrefix$1;
2061
2061
 
2062
- defaultLocale$2({
2062
+ defaultLocale$4({
2063
2063
  thousands: ",",
2064
2064
  grouping: [3],
2065
2065
  currency: ["$", ""]
2066
2066
  });
2067
2067
 
2068
- function defaultLocale$2(definition) {
2069
- locale$2 = formatLocale$1(definition);
2070
- format$3 = locale$2.format;
2071
- formatPrefix = locale$2.formatPrefix;
2072
- return locale$2;
2068
+ function defaultLocale$4(definition) {
2069
+ locale$4 = formatLocale$3(definition);
2070
+ format$4 = locale$4.format;
2071
+ formatPrefix$1 = locale$4.formatPrefix;
2072
+ return locale$4;
2073
2073
  }
2074
2074
 
2075
- function precisionFixed(step) {
2076
- return Math.max(0, -exponent(Math.abs(step)));
2075
+ function precisionFixed$1(step) {
2076
+ return Math.max(0, -exponent$1(Math.abs(step)));
2077
2077
  }
2078
2078
 
2079
- function precisionPrefix(step, value) {
2080
- return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
2079
+ function precisionPrefix$1(step, value) {
2080
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent$1(value) / 3))) * 3 - exponent$1(Math.abs(step)));
2081
2081
  }
2082
2082
 
2083
- function precisionRound(step, max) {
2083
+ function precisionRound$1(step, max) {
2084
2084
  step = Math.abs(step), max = Math.abs(max) - step;
2085
- return Math.max(0, exponent(max) - exponent(step)) + 1;
2085
+ return Math.max(0, exponent$1(max) - exponent$1(step)) + 1;
2086
2086
  }
2087
2087
 
2088
- const t0$2 = new Date, t1$1 = new Date;
2088
+ const t0$4 = new Date, t1$3 = new Date;
2089
2089
 
2090
- function timeInterval$1(floori, offseti, count, field) {
2090
+ function timeInterval$2(floori, offseti, count, field) {
2091
2091
 
2092
2092
  function interval(date) {
2093
2093
  return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
@@ -2122,7 +2122,7 @@ function timeInterval$1(floori, offseti, count, field) {
2122
2122
  };
2123
2123
 
2124
2124
  interval.filter = (test) => {
2125
- return timeInterval$1((date) => {
2125
+ return timeInterval$2((date) => {
2126
2126
  if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
2127
2127
  }, (date, step) => {
2128
2128
  if (date >= date) {
@@ -2137,9 +2137,9 @@ function timeInterval$1(floori, offseti, count, field) {
2137
2137
 
2138
2138
  if (count) {
2139
2139
  interval.count = (start, end) => {
2140
- t0$2.setTime(+start), t1$1.setTime(+end);
2141
- floori(t0$2), floori(t1$1);
2142
- return Math.floor(count(t0$2, t1$1));
2140
+ t0$4.setTime(+start), t1$3.setTime(+end);
2141
+ floori(t0$4), floori(t1$3);
2142
+ return Math.floor(count(t0$4, t1$3));
2143
2143
  };
2144
2144
 
2145
2145
  interval.every = (step) => {
@@ -2155,7 +2155,7 @@ function timeInterval$1(floori, offseti, count, field) {
2155
2155
  return interval;
2156
2156
  }
2157
2157
 
2158
- const millisecond = timeInterval$1(() => {
2158
+ const millisecond$1 = timeInterval$2(() => {
2159
2159
  // noop
2160
2160
  }, (date, step) => {
2161
2161
  date.setTime(+date + step);
@@ -2164,11 +2164,11 @@ const millisecond = timeInterval$1(() => {
2164
2164
  });
2165
2165
 
2166
2166
  // An optimized implementation for this simple case.
2167
- millisecond.every = (k) => {
2167
+ millisecond$1.every = (k) => {
2168
2168
  k = Math.floor(k);
2169
2169
  if (!isFinite(k) || !(k > 0)) return null;
2170
- if (!(k > 1)) return millisecond;
2171
- return timeInterval$1((date) => {
2170
+ if (!(k > 1)) return millisecond$1;
2171
+ return timeInterval$2((date) => {
2172
2172
  date.setTime(Math.floor(date / k) * k);
2173
2173
  }, (date, step) => {
2174
2174
  date.setTime(+date + step * k);
@@ -2177,130 +2177,128 @@ millisecond.every = (k) => {
2177
2177
  });
2178
2178
  };
2179
2179
 
2180
- const durationSecond$1 = 1000;
2181
- const durationMinute$1 = durationSecond$1 * 60;
2182
- const durationHour$1 = durationMinute$1 * 60;
2183
- const durationDay$1 = durationHour$1 * 24;
2184
- const durationWeek$1 = durationDay$1 * 7;
2185
- const durationMonth$1 = durationDay$1 * 30;
2186
- const durationYear$1 = durationDay$1 * 365;
2180
+ const durationSecond$2 = 1000;
2181
+ const durationMinute$3 = durationSecond$2 * 60;
2182
+ const durationHour$2 = durationMinute$3 * 60;
2183
+ const durationDay$3 = durationHour$2 * 24;
2184
+ const durationWeek$3 = durationDay$3 * 7;
2187
2185
 
2188
- const second = timeInterval$1((date) => {
2186
+ const second$1 = timeInterval$2((date) => {
2189
2187
  date.setTime(date - date.getMilliseconds());
2190
2188
  }, (date, step) => {
2191
- date.setTime(+date + step * durationSecond$1);
2189
+ date.setTime(+date + step * durationSecond$2);
2192
2190
  }, (start, end) => {
2193
- return (end - start) / durationSecond$1;
2191
+ return (end - start) / durationSecond$2;
2194
2192
  }, (date) => {
2195
2193
  return date.getUTCSeconds();
2196
2194
  });
2197
2195
 
2198
- const timeMinute = timeInterval$1((date) => {
2199
- date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1);
2196
+ const timeMinute$1 = timeInterval$2((date) => {
2197
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$2);
2200
2198
  }, (date, step) => {
2201
- date.setTime(+date + step * durationMinute$1);
2199
+ date.setTime(+date + step * durationMinute$3);
2202
2200
  }, (start, end) => {
2203
- return (end - start) / durationMinute$1;
2201
+ return (end - start) / durationMinute$3;
2204
2202
  }, (date) => {
2205
2203
  return date.getMinutes();
2206
2204
  });
2207
2205
 
2208
- const utcMinute = timeInterval$1((date) => {
2206
+ const utcMinute$1 = timeInterval$2((date) => {
2209
2207
  date.setUTCSeconds(0, 0);
2210
2208
  }, (date, step) => {
2211
- date.setTime(+date + step * durationMinute$1);
2209
+ date.setTime(+date + step * durationMinute$3);
2212
2210
  }, (start, end) => {
2213
- return (end - start) / durationMinute$1;
2211
+ return (end - start) / durationMinute$3;
2214
2212
  }, (date) => {
2215
2213
  return date.getUTCMinutes();
2216
2214
  });
2217
2215
 
2218
- const timeHour = timeInterval$1((date) => {
2219
- date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$1 - date.getMinutes() * durationMinute$1);
2216
+ const timeHour$1 = timeInterval$2((date) => {
2217
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond$2 - date.getMinutes() * durationMinute$3);
2220
2218
  }, (date, step) => {
2221
- date.setTime(+date + step * durationHour$1);
2219
+ date.setTime(+date + step * durationHour$2);
2222
2220
  }, (start, end) => {
2223
- return (end - start) / durationHour$1;
2221
+ return (end - start) / durationHour$2;
2224
2222
  }, (date) => {
2225
2223
  return date.getHours();
2226
2224
  });
2227
2225
 
2228
- const utcHour = timeInterval$1((date) => {
2226
+ const utcHour$1 = timeInterval$2((date) => {
2229
2227
  date.setUTCMinutes(0, 0, 0);
2230
2228
  }, (date, step) => {
2231
- date.setTime(+date + step * durationHour$1);
2229
+ date.setTime(+date + step * durationHour$2);
2232
2230
  }, (start, end) => {
2233
- return (end - start) / durationHour$1;
2231
+ return (end - start) / durationHour$2;
2234
2232
  }, (date) => {
2235
2233
  return date.getUTCHours();
2236
2234
  });
2237
2235
 
2238
- const timeDay = timeInterval$1(
2236
+ const timeDay$2 = timeInterval$2(
2239
2237
  date => date.setHours(0, 0, 0, 0),
2240
2238
  (date, step) => date.setDate(date.getDate() + step),
2241
- (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationDay$1,
2239
+ (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$3) / durationDay$3,
2242
2240
  date => date.getDate() - 1
2243
2241
  );
2244
2242
 
2245
- const utcDay = timeInterval$1((date) => {
2243
+ const utcDay$3 = timeInterval$2((date) => {
2246
2244
  date.setUTCHours(0, 0, 0, 0);
2247
2245
  }, (date, step) => {
2248
2246
  date.setUTCDate(date.getUTCDate() + step);
2249
2247
  }, (start, end) => {
2250
- return (end - start) / durationDay$1;
2248
+ return (end - start) / durationDay$3;
2251
2249
  }, (date) => {
2252
2250
  return date.getUTCDate() - 1;
2253
2251
  });
2254
2252
 
2255
- const unixDay = timeInterval$1((date) => {
2253
+ timeInterval$2((date) => {
2256
2254
  date.setUTCHours(0, 0, 0, 0);
2257
2255
  }, (date, step) => {
2258
2256
  date.setUTCDate(date.getUTCDate() + step);
2259
2257
  }, (start, end) => {
2260
- return (end - start) / durationDay$1;
2258
+ return (end - start) / durationDay$3;
2261
2259
  }, (date) => {
2262
- return Math.floor(date / durationDay$1);
2260
+ return Math.floor(date / durationDay$3);
2263
2261
  });
2264
2262
 
2265
- function timeWeekday(i) {
2266
- return timeInterval$1((date) => {
2263
+ function timeWeekday$1(i) {
2264
+ return timeInterval$2((date) => {
2267
2265
  date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
2268
2266
  date.setHours(0, 0, 0, 0);
2269
2267
  }, (date, step) => {
2270
2268
  date.setDate(date.getDate() + step * 7);
2271
2269
  }, (start, end) => {
2272
- return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationWeek$1;
2270
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$3) / durationWeek$3;
2273
2271
  });
2274
2272
  }
2275
2273
 
2276
- const timeSunday = timeWeekday(0);
2277
- const timeMonday = timeWeekday(1);
2278
- timeWeekday(2);
2279
- timeWeekday(3);
2280
- const timeThursday = timeWeekday(4);
2281
- timeWeekday(5);
2282
- timeWeekday(6);
2274
+ const timeSunday$1 = timeWeekday$1(0);
2275
+ timeWeekday$1(1);
2276
+ timeWeekday$1(2);
2277
+ timeWeekday$1(3);
2278
+ timeWeekday$1(4);
2279
+ timeWeekday$1(5);
2280
+ timeWeekday$1(6);
2283
2281
 
2284
- function utcWeekday(i) {
2285
- return timeInterval$1((date) => {
2282
+ function utcWeekday$2(i) {
2283
+ return timeInterval$2((date) => {
2286
2284
  date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
2287
2285
  date.setUTCHours(0, 0, 0, 0);
2288
2286
  }, (date, step) => {
2289
2287
  date.setUTCDate(date.getUTCDate() + step * 7);
2290
2288
  }, (start, end) => {
2291
- return (end - start) / durationWeek$1;
2289
+ return (end - start) / durationWeek$3;
2292
2290
  });
2293
2291
  }
2294
2292
 
2295
- const utcSunday = utcWeekday(0);
2296
- const utcMonday = utcWeekday(1);
2297
- utcWeekday(2);
2298
- utcWeekday(3);
2299
- const utcThursday = utcWeekday(4);
2300
- utcWeekday(5);
2301
- utcWeekday(6);
2293
+ const utcSunday$2 = utcWeekday$2(0);
2294
+ utcWeekday$2(1);
2295
+ utcWeekday$2(2);
2296
+ utcWeekday$2(3);
2297
+ utcWeekday$2(4);
2298
+ utcWeekday$2(5);
2299
+ utcWeekday$2(6);
2302
2300
 
2303
- const timeMonth = timeInterval$1((date) => {
2301
+ const timeMonth$1 = timeInterval$2((date) => {
2304
2302
  date.setDate(1);
2305
2303
  date.setHours(0, 0, 0, 0);
2306
2304
  }, (date, step) => {
@@ -2311,7 +2309,7 @@ const timeMonth = timeInterval$1((date) => {
2311
2309
  return date.getMonth();
2312
2310
  });
2313
2311
 
2314
- const utcMonth = timeInterval$1((date) => {
2312
+ const utcMonth$1 = timeInterval$2((date) => {
2315
2313
  date.setUTCDate(1);
2316
2314
  date.setUTCHours(0, 0, 0, 0);
2317
2315
  }, (date, step) => {
@@ -2322,7 +2320,7 @@ const utcMonth = timeInterval$1((date) => {
2322
2320
  return date.getUTCMonth();
2323
2321
  });
2324
2322
 
2325
- const timeYear = timeInterval$1((date) => {
2323
+ const timeYear$2 = timeInterval$2((date) => {
2326
2324
  date.setMonth(0, 1);
2327
2325
  date.setHours(0, 0, 0, 0);
2328
2326
  }, (date, step) => {
@@ -2334,8 +2332,8 @@ const timeYear = timeInterval$1((date) => {
2334
2332
  });
2335
2333
 
2336
2334
  // An optimized implementation for this simple case.
2337
- timeYear.every = (k) => {
2338
- return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval$1((date) => {
2335
+ timeYear$2.every = (k) => {
2336
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval$2((date) => {
2339
2337
  date.setFullYear(Math.floor(date.getFullYear() / k) * k);
2340
2338
  date.setMonth(0, 1);
2341
2339
  date.setHours(0, 0, 0, 0);
@@ -2344,7 +2342,7 @@ timeYear.every = (k) => {
2344
2342
  });
2345
2343
  };
2346
2344
 
2347
- const utcYear = timeInterval$1((date) => {
2345
+ const utcYear$3 = timeInterval$2((date) => {
2348
2346
  date.setUTCMonth(0, 1);
2349
2347
  date.setUTCHours(0, 0, 0, 0);
2350
2348
  }, (date, step) => {
@@ -2356,8 +2354,8 @@ const utcYear = timeInterval$1((date) => {
2356
2354
  });
2357
2355
 
2358
2356
  // An optimized implementation for this simple case.
2359
- utcYear.every = (k) => {
2360
- return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval$1((date) => {
2357
+ utcYear$3.every = (k) => {
2358
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval$2((date) => {
2361
2359
  date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
2362
2360
  date.setUTCMonth(0, 1);
2363
2361
  date.setUTCHours(0, 0, 0, 0);
@@ -2366,52 +2364,6 @@ utcYear.every = (k) => {
2366
2364
  });
2367
2365
  };
2368
2366
 
2369
- function ticker(year, month, week, day, hour, minute) {
2370
-
2371
- const tickIntervals = [
2372
- [second, 1, durationSecond$1],
2373
- [second, 5, 5 * durationSecond$1],
2374
- [second, 15, 15 * durationSecond$1],
2375
- [second, 30, 30 * durationSecond$1],
2376
- [minute, 1, durationMinute$1],
2377
- [minute, 5, 5 * durationMinute$1],
2378
- [minute, 15, 15 * durationMinute$1],
2379
- [minute, 30, 30 * durationMinute$1],
2380
- [ hour, 1, durationHour$1 ],
2381
- [ hour, 3, 3 * durationHour$1 ],
2382
- [ hour, 6, 6 * durationHour$1 ],
2383
- [ hour, 12, 12 * durationHour$1 ],
2384
- [ day, 1, durationDay$1 ],
2385
- [ day, 2, 2 * durationDay$1 ],
2386
- [ week, 1, durationWeek$1 ],
2387
- [ month, 1, durationMonth$1 ],
2388
- [ month, 3, 3 * durationMonth$1 ],
2389
- [ year, 1, durationYear$1 ]
2390
- ];
2391
-
2392
- function ticks(start, stop, count) {
2393
- const reverse = stop < start;
2394
- if (reverse) [start, stop] = [stop, start];
2395
- const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
2396
- const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
2397
- return reverse ? ticks.reverse() : ticks;
2398
- }
2399
-
2400
- function tickInterval(start, stop, count) {
2401
- const target = Math.abs(stop - start) / count;
2402
- const i = bisector(([,, step]) => step).right(tickIntervals, target);
2403
- if (i === tickIntervals.length) return year.every(tickStep(start / durationYear$1, stop / durationYear$1, count));
2404
- if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));
2405
- const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
2406
- return t.every(step);
2407
- }
2408
-
2409
- return [ticks, tickInterval];
2410
- }
2411
-
2412
- const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
2413
- const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
2414
-
2415
2367
  const YEAR = 'year';
2416
2368
  const QUARTER = 'quarter';
2417
2369
  const MONTH = 'month';
@@ -2484,13 +2436,13 @@ function timeUnitSpecifier(units, specifiers) {
2484
2436
  return fmt.trim();
2485
2437
  }
2486
2438
 
2487
- const t0$1 = new Date();
2439
+ const t0$3 = new Date();
2488
2440
  function localYear(y) {
2489
- t0$1.setFullYear(y);
2490
- t0$1.setMonth(0);
2491
- t0$1.setDate(1);
2492
- t0$1.setHours(0, 0, 0, 0);
2493
- return t0$1;
2441
+ t0$3.setFullYear(y);
2442
+ t0$3.setMonth(0);
2443
+ t0$3.setDate(1);
2444
+ t0$3.setHours(0, 0, 0, 0);
2445
+ return t0$3;
2494
2446
  }
2495
2447
  function dayofyear(d) {
2496
2448
  return localDayOfYear(new Date(d));
@@ -2499,15 +2451,15 @@ function week(d) {
2499
2451
  return localWeekNum(new Date(d));
2500
2452
  }
2501
2453
  function localDayOfYear(d) {
2502
- return timeDay.count(localYear(d.getFullYear()) - 1, d);
2454
+ return timeDay$2.count(localYear(d.getFullYear()) - 1, d);
2503
2455
  }
2504
2456
  function localWeekNum(d) {
2505
- return timeSunday.count(localYear(d.getFullYear()) - 1, d);
2457
+ return timeSunday$1.count(localYear(d.getFullYear()) - 1, d);
2506
2458
  }
2507
2459
  function localFirst(y) {
2508
2460
  return localYear(y).getDay();
2509
2461
  }
2510
- function localDate$1(y, m, d, H, M, S, L) {
2462
+ function localDate$2(y, m, d, H, M, S, L) {
2511
2463
  if (0 <= y && y < 100) {
2512
2464
  const date = new Date(-1, m, d, H, M, S, L);
2513
2465
  date.setFullYear(y);
@@ -2523,17 +2475,17 @@ function utcweek(d) {
2523
2475
  }
2524
2476
  function utcDayOfYear(d) {
2525
2477
  const y = Date.UTC(d.getUTCFullYear(), 0, 1);
2526
- return utcDay.count(y - 1, d);
2478
+ return utcDay$3.count(y - 1, d);
2527
2479
  }
2528
2480
  function utcWeekNum(d) {
2529
2481
  const y = Date.UTC(d.getUTCFullYear(), 0, 1);
2530
- return utcSunday.count(y - 1, d);
2482
+ return utcSunday$2.count(y - 1, d);
2531
2483
  }
2532
2484
  function utcFirst(y) {
2533
- t0$1.setTime(Date.UTC(y, 0, 1));
2534
- return t0$1.getUTCDay();
2485
+ t0$3.setTime(Date.UTC(y, 0, 1));
2486
+ return t0$3.getUTCDay();
2535
2487
  }
2536
- function utcDate$1(y, m, d, H, M, S, L) {
2488
+ function utcDate$2(y, m, d, H, M, S, L) {
2537
2489
  if (0 <= y && y < 100) {
2538
2490
  const date = new Date(Date.UTC(-1, m, d, H, M, S, L));
2539
2491
  date.setUTCFullYear(d.y);
@@ -2571,7 +2523,7 @@ function getUnit(f, inv, step, phase) {
2571
2523
 
2572
2524
  // returns the day of the year based on week number, day of week,
2573
2525
  // and the day of the week for the first day of the year
2574
- function weekday(week, day, firstDay) {
2526
+ function weekday$1(week, day, firstDay) {
2575
2527
  return day + week * 7 - (firstDay + 6) % 7;
2576
2528
  }
2577
2529
 
@@ -2588,15 +2540,15 @@ const localGet = {
2588
2540
  [MILLISECONDS]: d => d.getMilliseconds(),
2589
2541
  [DAYOFYEAR]: d => localDayOfYear(d),
2590
2542
  [WEEK]: d => localWeekNum(d),
2591
- [WEEK + DAY]: (d, y) => weekday(localWeekNum(d), d.getDay(), localFirst(y)),
2592
- [DAY]: (d, y) => weekday(1, d.getDay(), localFirst(y))
2543
+ [WEEK + DAY]: (d, y) => weekday$1(localWeekNum(d), d.getDay(), localFirst(y)),
2544
+ [DAY]: (d, y) => weekday$1(1, d.getDay(), localFirst(y))
2593
2545
  };
2594
2546
  const localInv = {
2595
2547
  [QUARTER]: q => 3 * q,
2596
- [WEEK]: (w, y) => weekday(w, 0, localFirst(y))
2548
+ [WEEK]: (w, y) => weekday$1(w, 0, localFirst(y))
2597
2549
  };
2598
2550
  function timeFloor(units, step) {
2599
- return floor(units, step || 1, localGet, localInv, localDate$1);
2551
+ return floor(units, step || 1, localGet, localInv, localDate$2);
2600
2552
  }
2601
2553
 
2602
2554
  // -- UTC TIME --
@@ -2612,44 +2564,44 @@ const utcGet = {
2612
2564
  [MILLISECONDS]: d => d.getUTCMilliseconds(),
2613
2565
  [DAYOFYEAR]: d => utcDayOfYear(d),
2614
2566
  [WEEK]: d => utcWeekNum(d),
2615
- [DAY]: (d, y) => weekday(1, d.getUTCDay(), utcFirst(y)),
2616
- [WEEK + DAY]: (d, y) => weekday(utcWeekNum(d), d.getUTCDay(), utcFirst(y))
2567
+ [DAY]: (d, y) => weekday$1(1, d.getUTCDay(), utcFirst(y)),
2568
+ [WEEK + DAY]: (d, y) => weekday$1(utcWeekNum(d), d.getUTCDay(), utcFirst(y))
2617
2569
  };
2618
2570
  const utcInv = {
2619
2571
  [QUARTER]: q => 3 * q,
2620
- [WEEK]: (w, y) => weekday(w, 0, utcFirst(y))
2572
+ [WEEK]: (w, y) => weekday$1(w, 0, utcFirst(y))
2621
2573
  };
2622
2574
  function utcFloor(units, step) {
2623
- return floor(units, step || 1, utcGet, utcInv, utcDate$1);
2575
+ return floor(units, step || 1, utcGet, utcInv, utcDate$2);
2624
2576
  }
2625
2577
 
2626
2578
  const timeIntervals = {
2627
- [YEAR]: timeYear,
2628
- [QUARTER]: timeMonth.every(3),
2629
- [MONTH]: timeMonth,
2630
- [WEEK]: timeSunday,
2631
- [DATE]: timeDay,
2632
- [DAY]: timeDay,
2633
- [DAYOFYEAR]: timeDay,
2634
- [HOURS]: timeHour,
2635
- [MINUTES]: timeMinute,
2636
- [SECONDS]: second,
2637
- [MILLISECONDS]: millisecond
2579
+ [YEAR]: timeYear$2,
2580
+ [QUARTER]: timeMonth$1.every(3),
2581
+ [MONTH]: timeMonth$1,
2582
+ [WEEK]: timeSunday$1,
2583
+ [DATE]: timeDay$2,
2584
+ [DAY]: timeDay$2,
2585
+ [DAYOFYEAR]: timeDay$2,
2586
+ [HOURS]: timeHour$1,
2587
+ [MINUTES]: timeMinute$1,
2588
+ [SECONDS]: second$1,
2589
+ [MILLISECONDS]: millisecond$1
2638
2590
  };
2639
2591
  const utcIntervals = {
2640
- [YEAR]: utcYear,
2641
- [QUARTER]: utcMonth.every(3),
2642
- [MONTH]: utcMonth,
2643
- [WEEK]: utcSunday,
2644
- [DATE]: utcDay,
2645
- [DAY]: utcDay,
2646
- [DAYOFYEAR]: utcDay,
2647
- [HOURS]: utcHour,
2648
- [MINUTES]: utcMinute,
2649
- [SECONDS]: second,
2650
- [MILLISECONDS]: millisecond
2592
+ [YEAR]: utcYear$3,
2593
+ [QUARTER]: utcMonth$1.every(3),
2594
+ [MONTH]: utcMonth$1,
2595
+ [WEEK]: utcSunday$2,
2596
+ [DATE]: utcDay$3,
2597
+ [DAY]: utcDay$3,
2598
+ [DAYOFYEAR]: utcDay$3,
2599
+ [HOURS]: utcHour$1,
2600
+ [MINUTES]: utcMinute$1,
2601
+ [SECONDS]: second$1,
2602
+ [MILLISECONDS]: millisecond$1
2651
2603
  };
2652
- function timeInterval(unit) {
2604
+ function timeInterval$1(unit) {
2653
2605
  return timeIntervals[unit];
2654
2606
  }
2655
2607
  function utcInterval(unit) {
@@ -2659,7 +2611,7 @@ function offset$3(ival, date, step) {
2659
2611
  return ival ? ival.offset(date, step) : undefined;
2660
2612
  }
2661
2613
  function timeOffset(unit, date, step) {
2662
- return offset$3(timeInterval(unit), date, step);
2614
+ return offset$3(timeInterval$1(unit), date, step);
2663
2615
  }
2664
2616
  function utcOffset(unit, date, step) {
2665
2617
  return offset$3(utcInterval(unit), date, step);
@@ -2668,19 +2620,19 @@ function sequence$1(ival, start, stop, step) {
2668
2620
  return ival ? ival.range(start, stop, step) : undefined;
2669
2621
  }
2670
2622
  function timeSequence(unit, start, stop, step) {
2671
- return sequence$1(timeInterval(unit), start, stop, step);
2623
+ return sequence$1(timeInterval$1(unit), start, stop, step);
2672
2624
  }
2673
2625
  function utcSequence(unit, start, stop, step) {
2674
2626
  return sequence$1(utcInterval(unit), start, stop, step);
2675
2627
  }
2676
2628
 
2677
- const durationSecond = 1000,
2678
- durationMinute = durationSecond * 60,
2679
- durationHour = durationMinute * 60,
2680
- durationDay = durationHour * 24,
2681
- durationWeek = durationDay * 7,
2682
- durationMonth = durationDay * 30,
2683
- durationYear = durationDay * 365;
2629
+ const durationSecond$1 = 1000,
2630
+ durationMinute$2 = durationSecond$1 * 60,
2631
+ durationHour$1 = durationMinute$2 * 60,
2632
+ durationDay$2 = durationHour$1 * 24,
2633
+ durationWeek$2 = durationDay$2 * 7,
2634
+ durationMonth$1 = durationDay$2 * 30,
2635
+ durationYear$1 = durationDay$2 * 365;
2684
2636
  const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],
2685
2637
  Seconds = Milli.slice(0, -1),
2686
2638
  Minutes = Seconds.slice(0, -1),
@@ -2689,7 +2641,7 @@ const Milli = [YEAR, MONTH, DATE, HOURS, MINUTES, SECONDS, MILLISECONDS],
2689
2641
  Week = [YEAR, WEEK],
2690
2642
  Month = [YEAR, MONTH],
2691
2643
  Year = [YEAR];
2692
- const intervals = [[Seconds, 1, durationSecond], [Seconds, 5, 5 * durationSecond], [Seconds, 15, 15 * durationSecond], [Seconds, 30, 30 * durationSecond], [Minutes, 1, durationMinute], [Minutes, 5, 5 * durationMinute], [Minutes, 15, 15 * durationMinute], [Minutes, 30, 30 * durationMinute], [Hours, 1, durationHour], [Hours, 3, 3 * durationHour], [Hours, 6, 6 * durationHour], [Hours, 12, 12 * durationHour], [Day, 1, durationDay], [Week, 1, durationWeek], [Month, 1, durationMonth], [Month, 3, 3 * durationMonth], [Year, 1, durationYear]];
2644
+ const intervals = [[Seconds, 1, durationSecond$1], [Seconds, 5, 5 * durationSecond$1], [Seconds, 15, 15 * durationSecond$1], [Seconds, 30, 30 * durationSecond$1], [Minutes, 1, durationMinute$2], [Minutes, 5, 5 * durationMinute$2], [Minutes, 15, 15 * durationMinute$2], [Minutes, 30, 30 * durationMinute$2], [Hours, 1, durationHour$1], [Hours, 3, 3 * durationHour$1], [Hours, 6, 6 * durationHour$1], [Hours, 12, 12 * durationHour$1], [Day, 1, durationDay$2], [Week, 1, durationWeek$2], [Month, 1, durationMonth$1], [Month, 3, 3 * durationMonth$1], [Year, 1, durationYear$1]];
2693
2645
  function bin$2 (opt) {
2694
2646
  const ext = opt.extent,
2695
2647
  max = opt.maxbins || 40,
@@ -2698,7 +2650,7 @@ function bin$2 (opt) {
2698
2650
  units,
2699
2651
  step;
2700
2652
  if (i === intervals.length) {
2701
- units = Year, step = tickStep(ext[0] / durationYear, ext[1] / durationYear, max);
2653
+ units = Year, step = tickStep(ext[0] / durationYear$1, ext[1] / durationYear$1, max);
2702
2654
  } else if (i) {
2703
2655
  i = intervals[target / intervals[i - 1][2] < intervals[i][2] / target ? i - 1 : i];
2704
2656
  units = i[0];
@@ -2713,7 +2665,192 @@ function bin$2 (opt) {
2713
2665
  };
2714
2666
  }
2715
2667
 
2716
- function localDate(d) {
2668
+ var t0$2 = new Date,
2669
+ t1$2 = new Date;
2670
+
2671
+ function newInterval(floori, offseti, count, field) {
2672
+
2673
+ function interval(date) {
2674
+ return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
2675
+ }
2676
+
2677
+ interval.floor = function(date) {
2678
+ return floori(date = new Date(+date)), date;
2679
+ };
2680
+
2681
+ interval.ceil = function(date) {
2682
+ return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
2683
+ };
2684
+
2685
+ interval.round = function(date) {
2686
+ var d0 = interval(date),
2687
+ d1 = interval.ceil(date);
2688
+ return date - d0 < d1 - date ? d0 : d1;
2689
+ };
2690
+
2691
+ interval.offset = function(date, step) {
2692
+ return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
2693
+ };
2694
+
2695
+ interval.range = function(start, stop, step) {
2696
+ var range = [], previous;
2697
+ start = interval.ceil(start);
2698
+ step = step == null ? 1 : Math.floor(step);
2699
+ if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
2700
+ do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
2701
+ while (previous < start && start < stop);
2702
+ return range;
2703
+ };
2704
+
2705
+ interval.filter = function(test) {
2706
+ return newInterval(function(date) {
2707
+ if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
2708
+ }, function(date, step) {
2709
+ if (date >= date) {
2710
+ if (step < 0) while (++step <= 0) {
2711
+ while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
2712
+ } else while (--step >= 0) {
2713
+ while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
2714
+ }
2715
+ }
2716
+ });
2717
+ };
2718
+
2719
+ if (count) {
2720
+ interval.count = function(start, end) {
2721
+ t0$2.setTime(+start), t1$2.setTime(+end);
2722
+ floori(t0$2), floori(t1$2);
2723
+ return Math.floor(count(t0$2, t1$2));
2724
+ };
2725
+
2726
+ interval.every = function(step) {
2727
+ step = Math.floor(step);
2728
+ return !isFinite(step) || !(step > 0) ? null
2729
+ : !(step > 1) ? interval
2730
+ : interval.filter(field
2731
+ ? function(d) { return field(d) % step === 0; }
2732
+ : function(d) { return interval.count(0, d) % step === 0; });
2733
+ };
2734
+ }
2735
+
2736
+ return interval;
2737
+ }
2738
+
2739
+ var durationMinute$1 = 6e4;
2740
+ var durationDay$1 = 864e5;
2741
+ var durationWeek$1 = 6048e5;
2742
+
2743
+ var day = newInterval(function(date) {
2744
+ date.setHours(0, 0, 0, 0);
2745
+ }, function(date, step) {
2746
+ date.setDate(date.getDate() + step);
2747
+ }, function(start, end) {
2748
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationDay$1;
2749
+ }, function(date) {
2750
+ return date.getDate() - 1;
2751
+ });
2752
+
2753
+ const timeDay$1 = day;
2754
+
2755
+ function weekday(i) {
2756
+ return newInterval(function(date) {
2757
+ date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
2758
+ date.setHours(0, 0, 0, 0);
2759
+ }, function(date, step) {
2760
+ date.setDate(date.getDate() + step * 7);
2761
+ }, function(start, end) {
2762
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute$1) / durationWeek$1;
2763
+ });
2764
+ }
2765
+
2766
+ var sunday = weekday(0);
2767
+ var monday = weekday(1);
2768
+ weekday(2);
2769
+ weekday(3);
2770
+ var thursday = weekday(4);
2771
+ weekday(5);
2772
+ weekday(6);
2773
+
2774
+ var year = newInterval(function(date) {
2775
+ date.setMonth(0, 1);
2776
+ date.setHours(0, 0, 0, 0);
2777
+ }, function(date, step) {
2778
+ date.setFullYear(date.getFullYear() + step);
2779
+ }, function(start, end) {
2780
+ return end.getFullYear() - start.getFullYear();
2781
+ }, function(date) {
2782
+ return date.getFullYear();
2783
+ });
2784
+
2785
+ // An optimized implementation for this simple case.
2786
+ year.every = function(k) {
2787
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
2788
+ date.setFullYear(Math.floor(date.getFullYear() / k) * k);
2789
+ date.setMonth(0, 1);
2790
+ date.setHours(0, 0, 0, 0);
2791
+ }, function(date, step) {
2792
+ date.setFullYear(date.getFullYear() + step * k);
2793
+ });
2794
+ };
2795
+
2796
+ const timeYear$1 = year;
2797
+
2798
+ var utcDay$1 = newInterval(function(date) {
2799
+ date.setUTCHours(0, 0, 0, 0);
2800
+ }, function(date, step) {
2801
+ date.setUTCDate(date.getUTCDate() + step);
2802
+ }, function(start, end) {
2803
+ return (end - start) / durationDay$1;
2804
+ }, function(date) {
2805
+ return date.getUTCDate() - 1;
2806
+ });
2807
+
2808
+ const utcDay$2 = utcDay$1;
2809
+
2810
+ function utcWeekday$1(i) {
2811
+ return newInterval(function(date) {
2812
+ date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
2813
+ date.setUTCHours(0, 0, 0, 0);
2814
+ }, function(date, step) {
2815
+ date.setUTCDate(date.getUTCDate() + step * 7);
2816
+ }, function(start, end) {
2817
+ return (end - start) / durationWeek$1;
2818
+ });
2819
+ }
2820
+
2821
+ var utcSunday$1 = utcWeekday$1(0);
2822
+ var utcMonday = utcWeekday$1(1);
2823
+ utcWeekday$1(2);
2824
+ utcWeekday$1(3);
2825
+ var utcThursday = utcWeekday$1(4);
2826
+ utcWeekday$1(5);
2827
+ utcWeekday$1(6);
2828
+
2829
+ var utcYear$1 = newInterval(function(date) {
2830
+ date.setUTCMonth(0, 1);
2831
+ date.setUTCHours(0, 0, 0, 0);
2832
+ }, function(date, step) {
2833
+ date.setUTCFullYear(date.getUTCFullYear() + step);
2834
+ }, function(start, end) {
2835
+ return end.getUTCFullYear() - start.getUTCFullYear();
2836
+ }, function(date) {
2837
+ return date.getUTCFullYear();
2838
+ });
2839
+
2840
+ // An optimized implementation for this simple case.
2841
+ utcYear$1.every = function(k) {
2842
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {
2843
+ date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
2844
+ date.setUTCMonth(0, 1);
2845
+ date.setUTCHours(0, 0, 0, 0);
2846
+ }, function(date, step) {
2847
+ date.setUTCFullYear(date.getUTCFullYear() + step * k);
2848
+ });
2849
+ };
2850
+
2851
+ const utcYear$2 = utcYear$1;
2852
+
2853
+ function localDate$1(d) {
2717
2854
  if (0 <= d.y && d.y < 100) {
2718
2855
  var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
2719
2856
  date.setFullYear(d.y);
@@ -2722,7 +2859,7 @@ function localDate(d) {
2722
2859
  return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
2723
2860
  }
2724
2861
 
2725
- function utcDate(d) {
2862
+ function utcDate$1(d) {
2726
2863
  if (0 <= d.y && d.y < 100) {
2727
2864
  var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
2728
2865
  date.setUTCFullYear(d.y);
@@ -2731,11 +2868,11 @@ function utcDate(d) {
2731
2868
  return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
2732
2869
  }
2733
2870
 
2734
- function newDate(y, m, d) {
2871
+ function newDate$1(y, m, d) {
2735
2872
  return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
2736
2873
  }
2737
2874
 
2738
- function formatLocale(locale) {
2875
+ function formatLocale$2(locale) {
2739
2876
  var locale_dateTime = locale.dateTime,
2740
2877
  locale_date = locale.date,
2741
2878
  locale_time = locale.time,
@@ -2745,16 +2882,16 @@ function formatLocale(locale) {
2745
2882
  locale_months = locale.months,
2746
2883
  locale_shortMonths = locale.shortMonths;
2747
2884
 
2748
- var periodRe = formatRe(locale_periods),
2749
- periodLookup = formatLookup(locale_periods),
2750
- weekdayRe = formatRe(locale_weekdays),
2751
- weekdayLookup = formatLookup(locale_weekdays),
2752
- shortWeekdayRe = formatRe(locale_shortWeekdays),
2753
- shortWeekdayLookup = formatLookup(locale_shortWeekdays),
2754
- monthRe = formatRe(locale_months),
2755
- monthLookup = formatLookup(locale_months),
2756
- shortMonthRe = formatRe(locale_shortMonths),
2757
- shortMonthLookup = formatLookup(locale_shortMonths);
2885
+ var periodRe = formatRe$1(locale_periods),
2886
+ periodLookup = formatLookup$1(locale_periods),
2887
+ weekdayRe = formatRe$1(locale_weekdays),
2888
+ weekdayLookup = formatLookup$1(locale_weekdays),
2889
+ shortWeekdayRe = formatRe$1(locale_shortWeekdays),
2890
+ shortWeekdayLookup = formatLookup$1(locale_shortWeekdays),
2891
+ monthRe = formatRe$1(locale_months),
2892
+ monthLookup = formatLookup$1(locale_months),
2893
+ shortMonthRe = formatRe$1(locale_shortMonths),
2894
+ shortMonthLookup = formatLookup$1(locale_shortMonths);
2758
2895
 
2759
2896
  var formats = {
2760
2897
  "a": formatShortWeekday,
@@ -2762,33 +2899,33 @@ function formatLocale(locale) {
2762
2899
  "b": formatShortMonth,
2763
2900
  "B": formatMonth,
2764
2901
  "c": null,
2765
- "d": formatDayOfMonth,
2766
- "e": formatDayOfMonth,
2767
- "f": formatMicroseconds,
2768
- "g": formatYearISO,
2769
- "G": formatFullYearISO,
2770
- "H": formatHour24,
2771
- "I": formatHour12,
2772
- "j": formatDayOfYear,
2773
- "L": formatMilliseconds,
2774
- "m": formatMonthNumber,
2775
- "M": formatMinutes,
2902
+ "d": formatDayOfMonth$1,
2903
+ "e": formatDayOfMonth$1,
2904
+ "f": formatMicroseconds$1,
2905
+ "g": formatYearISO$1,
2906
+ "G": formatFullYearISO$1,
2907
+ "H": formatHour24$1,
2908
+ "I": formatHour12$1,
2909
+ "j": formatDayOfYear$1,
2910
+ "L": formatMilliseconds$1,
2911
+ "m": formatMonthNumber$1,
2912
+ "M": formatMinutes$1,
2776
2913
  "p": formatPeriod,
2777
2914
  "q": formatQuarter,
2778
- "Q": formatUnixTimestamp,
2779
- "s": formatUnixTimestampSeconds,
2780
- "S": formatSeconds,
2781
- "u": formatWeekdayNumberMonday,
2782
- "U": formatWeekNumberSunday,
2783
- "V": formatWeekNumberISO,
2784
- "w": formatWeekdayNumberSunday,
2785
- "W": formatWeekNumberMonday,
2915
+ "Q": formatUnixTimestamp$1,
2916
+ "s": formatUnixTimestampSeconds$1,
2917
+ "S": formatSeconds$1,
2918
+ "u": formatWeekdayNumberMonday$1,
2919
+ "U": formatWeekNumberSunday$1,
2920
+ "V": formatWeekNumberISO$1,
2921
+ "w": formatWeekdayNumberSunday$1,
2922
+ "W": formatWeekNumberMonday$1,
2786
2923
  "x": null,
2787
2924
  "X": null,
2788
- "y": formatYear,
2789
- "Y": formatFullYear,
2790
- "Z": formatZone,
2791
- "%": formatLiteralPercent
2925
+ "y": formatYear$1,
2926
+ "Y": formatFullYear$1,
2927
+ "Z": formatZone$1,
2928
+ "%": formatLiteralPercent$1
2792
2929
  };
2793
2930
 
2794
2931
  var utcFormats = {
@@ -2797,33 +2934,33 @@ function formatLocale(locale) {
2797
2934
  "b": formatUTCShortMonth,
2798
2935
  "B": formatUTCMonth,
2799
2936
  "c": null,
2800
- "d": formatUTCDayOfMonth,
2801
- "e": formatUTCDayOfMonth,
2802
- "f": formatUTCMicroseconds,
2803
- "g": formatUTCYearISO,
2804
- "G": formatUTCFullYearISO,
2805
- "H": formatUTCHour24,
2806
- "I": formatUTCHour12,
2807
- "j": formatUTCDayOfYear,
2808
- "L": formatUTCMilliseconds,
2809
- "m": formatUTCMonthNumber,
2810
- "M": formatUTCMinutes,
2937
+ "d": formatUTCDayOfMonth$1,
2938
+ "e": formatUTCDayOfMonth$1,
2939
+ "f": formatUTCMicroseconds$1,
2940
+ "g": formatUTCYearISO$1,
2941
+ "G": formatUTCFullYearISO$1,
2942
+ "H": formatUTCHour24$1,
2943
+ "I": formatUTCHour12$1,
2944
+ "j": formatUTCDayOfYear$1,
2945
+ "L": formatUTCMilliseconds$1,
2946
+ "m": formatUTCMonthNumber$1,
2947
+ "M": formatUTCMinutes$1,
2811
2948
  "p": formatUTCPeriod,
2812
2949
  "q": formatUTCQuarter,
2813
- "Q": formatUnixTimestamp,
2814
- "s": formatUnixTimestampSeconds,
2815
- "S": formatUTCSeconds,
2816
- "u": formatUTCWeekdayNumberMonday,
2817
- "U": formatUTCWeekNumberSunday,
2818
- "V": formatUTCWeekNumberISO,
2819
- "w": formatUTCWeekdayNumberSunday,
2820
- "W": formatUTCWeekNumberMonday,
2950
+ "Q": formatUnixTimestamp$1,
2951
+ "s": formatUnixTimestampSeconds$1,
2952
+ "S": formatUTCSeconds$1,
2953
+ "u": formatUTCWeekdayNumberMonday$1,
2954
+ "U": formatUTCWeekNumberSunday$1,
2955
+ "V": formatUTCWeekNumberISO$1,
2956
+ "w": formatUTCWeekdayNumberSunday$1,
2957
+ "W": formatUTCWeekNumberMonday$1,
2821
2958
  "x": null,
2822
2959
  "X": null,
2823
- "y": formatUTCYear,
2824
- "Y": formatUTCFullYear,
2825
- "Z": formatUTCZone,
2826
- "%": formatLiteralPercent
2960
+ "y": formatUTCYear$1,
2961
+ "Y": formatUTCFullYear$1,
2962
+ "Z": formatUTCZone$1,
2963
+ "%": formatLiteralPercent$1
2827
2964
  };
2828
2965
 
2829
2966
  var parses = {
@@ -2832,33 +2969,33 @@ function formatLocale(locale) {
2832
2969
  "b": parseShortMonth,
2833
2970
  "B": parseMonth,
2834
2971
  "c": parseLocaleDateTime,
2835
- "d": parseDayOfMonth,
2836
- "e": parseDayOfMonth,
2837
- "f": parseMicroseconds,
2838
- "g": parseYear,
2839
- "G": parseFullYear,
2840
- "H": parseHour24,
2841
- "I": parseHour24,
2842
- "j": parseDayOfYear,
2843
- "L": parseMilliseconds,
2844
- "m": parseMonthNumber,
2845
- "M": parseMinutes,
2972
+ "d": parseDayOfMonth$1,
2973
+ "e": parseDayOfMonth$1,
2974
+ "f": parseMicroseconds$1,
2975
+ "g": parseYear$1,
2976
+ "G": parseFullYear$1,
2977
+ "H": parseHour24$1,
2978
+ "I": parseHour24$1,
2979
+ "j": parseDayOfYear$1,
2980
+ "L": parseMilliseconds$1,
2981
+ "m": parseMonthNumber$1,
2982
+ "M": parseMinutes$1,
2846
2983
  "p": parsePeriod,
2847
- "q": parseQuarter,
2848
- "Q": parseUnixTimestamp,
2849
- "s": parseUnixTimestampSeconds,
2850
- "S": parseSeconds,
2851
- "u": parseWeekdayNumberMonday,
2852
- "U": parseWeekNumberSunday,
2853
- "V": parseWeekNumberISO,
2854
- "w": parseWeekdayNumberSunday,
2855
- "W": parseWeekNumberMonday,
2984
+ "q": parseQuarter$1,
2985
+ "Q": parseUnixTimestamp$1,
2986
+ "s": parseUnixTimestampSeconds$1,
2987
+ "S": parseSeconds$1,
2988
+ "u": parseWeekdayNumberMonday$1,
2989
+ "U": parseWeekNumberSunday$1,
2990
+ "V": parseWeekNumberISO$1,
2991
+ "w": parseWeekdayNumberSunday$1,
2992
+ "W": parseWeekNumberMonday$1,
2856
2993
  "x": parseLocaleDate,
2857
2994
  "X": parseLocaleTime,
2858
- "y": parseYear,
2859
- "Y": parseFullYear,
2860
- "Z": parseZone,
2861
- "%": parseLiteralPercent
2995
+ "y": parseYear$1,
2996
+ "Y": parseFullYear$1,
2997
+ "Z": parseZone$1,
2998
+ "%": parseLiteralPercent$1
2862
2999
  };
2863
3000
 
2864
3001
  // These recursive directive definitions must be deferred.
@@ -2884,7 +3021,7 @@ function formatLocale(locale) {
2884
3021
  while (++i < n) {
2885
3022
  if (specifier.charCodeAt(i) === 37) {
2886
3023
  string.push(specifier.slice(j, i));
2887
- if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
3024
+ if ((pad = pads$1[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
2888
3025
  else pad = c === "e" ? " " : "0";
2889
3026
  if (format = formats[c]) c = format(date, pad);
2890
3027
  string.push(c);
@@ -2899,7 +3036,7 @@ function formatLocale(locale) {
2899
3036
 
2900
3037
  function newParse(specifier, Z) {
2901
3038
  return function(string) {
2902
- var d = newDate(1900, undefined, 1),
3039
+ var d = newDate$1(1900, undefined, 1),
2903
3040
  i = parseSpecifier(d, specifier, string += "", 0),
2904
3041
  week, day;
2905
3042
  if (i != string.length) return null;
@@ -2922,23 +3059,23 @@ function formatLocale(locale) {
2922
3059
  if (d.V < 1 || d.V > 53) return null;
2923
3060
  if (!("w" in d)) d.w = 1;
2924
3061
  if ("Z" in d) {
2925
- week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
3062
+ week = utcDate$1(newDate$1(d.y, 0, 1)), day = week.getUTCDay();
2926
3063
  week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
2927
- week = utcDay.offset(week, (d.V - 1) * 7);
3064
+ week = utcDay$2.offset(week, (d.V - 1) * 7);
2928
3065
  d.y = week.getUTCFullYear();
2929
3066
  d.m = week.getUTCMonth();
2930
3067
  d.d = week.getUTCDate() + (d.w + 6) % 7;
2931
3068
  } else {
2932
- week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
2933
- week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);
2934
- week = timeDay.offset(week, (d.V - 1) * 7);
3069
+ week = localDate$1(newDate$1(d.y, 0, 1)), day = week.getDay();
3070
+ week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
3071
+ week = timeDay$1.offset(week, (d.V - 1) * 7);
2935
3072
  d.y = week.getFullYear();
2936
3073
  d.m = week.getMonth();
2937
3074
  d.d = week.getDate() + (d.w + 6) % 7;
2938
3075
  }
2939
3076
  } else if ("W" in d || "U" in d) {
2940
3077
  if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
2941
- day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
3078
+ day = "Z" in d ? utcDate$1(newDate$1(d.y, 0, 1)).getUTCDay() : localDate$1(newDate$1(d.y, 0, 1)).getDay();
2942
3079
  d.m = 0;
2943
3080
  d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
2944
3081
  }
@@ -2948,11 +3085,11 @@ function formatLocale(locale) {
2948
3085
  if ("Z" in d) {
2949
3086
  d.H += d.Z / 100 | 0;
2950
3087
  d.M += d.Z % 100;
2951
- return utcDate(d);
3088
+ return utcDate$1(d);
2952
3089
  }
2953
3090
 
2954
3091
  // Otherwise, all fields are in local time.
2955
- return localDate(d);
3092
+ return localDate$1(d);
2956
3093
  };
2957
3094
  }
2958
3095
 
@@ -2968,7 +3105,7 @@ function formatLocale(locale) {
2968
3105
  c = specifier.charCodeAt(i++);
2969
3106
  if (c === 37) {
2970
3107
  c = specifier.charAt(i++);
2971
- parse = parses[c in pads ? specifier.charAt(i++) : c];
3108
+ parse = parses[c in pads$1 ? specifier.charAt(i++) : c];
2972
3109
  if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
2973
3110
  } else if (c != string.charCodeAt(j++)) {
2974
3111
  return -1;
@@ -3087,324 +3224,324 @@ function formatLocale(locale) {
3087
3224
  };
3088
3225
  }
3089
3226
 
3090
- var pads = {"-": "", "_": " ", "0": "0"},
3091
- numberRe = /^\s*\d+/, // note: ignores next directive
3092
- percentRe = /^%/,
3093
- requoteRe = /[\\^$*+?|[\]().{}]/g;
3227
+ var pads$1 = {"-": "", "_": " ", "0": "0"},
3228
+ numberRe$1 = /^\s*\d+/, // note: ignores next directive
3229
+ percentRe$1 = /^%/,
3230
+ requoteRe$1 = /[\\^$*+?|[\]().{}]/g;
3094
3231
 
3095
- function pad(value, fill, width) {
3232
+ function pad$1(value, fill, width) {
3096
3233
  var sign = value < 0 ? "-" : "",
3097
3234
  string = (sign ? -value : value) + "",
3098
3235
  length = string.length;
3099
3236
  return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
3100
3237
  }
3101
3238
 
3102
- function requote(s) {
3103
- return s.replace(requoteRe, "\\$&");
3239
+ function requote$1(s) {
3240
+ return s.replace(requoteRe$1, "\\$&");
3104
3241
  }
3105
3242
 
3106
- function formatRe(names) {
3107
- return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
3243
+ function formatRe$1(names) {
3244
+ return new RegExp("^(?:" + names.map(requote$1).join("|") + ")", "i");
3108
3245
  }
3109
3246
 
3110
- function formatLookup(names) {
3247
+ function formatLookup$1(names) {
3111
3248
  return new Map(names.map((name, i) => [name.toLowerCase(), i]));
3112
3249
  }
3113
3250
 
3114
- function parseWeekdayNumberSunday(d, string, i) {
3115
- var n = numberRe.exec(string.slice(i, i + 1));
3251
+ function parseWeekdayNumberSunday$1(d, string, i) {
3252
+ var n = numberRe$1.exec(string.slice(i, i + 1));
3116
3253
  return n ? (d.w = +n[0], i + n[0].length) : -1;
3117
3254
  }
3118
3255
 
3119
- function parseWeekdayNumberMonday(d, string, i) {
3120
- var n = numberRe.exec(string.slice(i, i + 1));
3256
+ function parseWeekdayNumberMonday$1(d, string, i) {
3257
+ var n = numberRe$1.exec(string.slice(i, i + 1));
3121
3258
  return n ? (d.u = +n[0], i + n[0].length) : -1;
3122
3259
  }
3123
3260
 
3124
- function parseWeekNumberSunday(d, string, i) {
3125
- var n = numberRe.exec(string.slice(i, i + 2));
3261
+ function parseWeekNumberSunday$1(d, string, i) {
3262
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3126
3263
  return n ? (d.U = +n[0], i + n[0].length) : -1;
3127
3264
  }
3128
3265
 
3129
- function parseWeekNumberISO(d, string, i) {
3130
- var n = numberRe.exec(string.slice(i, i + 2));
3266
+ function parseWeekNumberISO$1(d, string, i) {
3267
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3131
3268
  return n ? (d.V = +n[0], i + n[0].length) : -1;
3132
3269
  }
3133
3270
 
3134
- function parseWeekNumberMonday(d, string, i) {
3135
- var n = numberRe.exec(string.slice(i, i + 2));
3271
+ function parseWeekNumberMonday$1(d, string, i) {
3272
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3136
3273
  return n ? (d.W = +n[0], i + n[0].length) : -1;
3137
3274
  }
3138
3275
 
3139
- function parseFullYear(d, string, i) {
3140
- var n = numberRe.exec(string.slice(i, i + 4));
3276
+ function parseFullYear$1(d, string, i) {
3277
+ var n = numberRe$1.exec(string.slice(i, i + 4));
3141
3278
  return n ? (d.y = +n[0], i + n[0].length) : -1;
3142
3279
  }
3143
3280
 
3144
- function parseYear(d, string, i) {
3145
- var n = numberRe.exec(string.slice(i, i + 2));
3281
+ function parseYear$1(d, string, i) {
3282
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3146
3283
  return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
3147
3284
  }
3148
3285
 
3149
- function parseZone(d, string, i) {
3286
+ function parseZone$1(d, string, i) {
3150
3287
  var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
3151
3288
  return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
3152
3289
  }
3153
3290
 
3154
- function parseQuarter(d, string, i) {
3155
- var n = numberRe.exec(string.slice(i, i + 1));
3291
+ function parseQuarter$1(d, string, i) {
3292
+ var n = numberRe$1.exec(string.slice(i, i + 1));
3156
3293
  return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
3157
3294
  }
3158
3295
 
3159
- function parseMonthNumber(d, string, i) {
3160
- var n = numberRe.exec(string.slice(i, i + 2));
3296
+ function parseMonthNumber$1(d, string, i) {
3297
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3161
3298
  return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
3162
3299
  }
3163
3300
 
3164
- function parseDayOfMonth(d, string, i) {
3165
- var n = numberRe.exec(string.slice(i, i + 2));
3301
+ function parseDayOfMonth$1(d, string, i) {
3302
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3166
3303
  return n ? (d.d = +n[0], i + n[0].length) : -1;
3167
3304
  }
3168
3305
 
3169
- function parseDayOfYear(d, string, i) {
3170
- var n = numberRe.exec(string.slice(i, i + 3));
3306
+ function parseDayOfYear$1(d, string, i) {
3307
+ var n = numberRe$1.exec(string.slice(i, i + 3));
3171
3308
  return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
3172
3309
  }
3173
3310
 
3174
- function parseHour24(d, string, i) {
3175
- var n = numberRe.exec(string.slice(i, i + 2));
3311
+ function parseHour24$1(d, string, i) {
3312
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3176
3313
  return n ? (d.H = +n[0], i + n[0].length) : -1;
3177
3314
  }
3178
3315
 
3179
- function parseMinutes(d, string, i) {
3180
- var n = numberRe.exec(string.slice(i, i + 2));
3316
+ function parseMinutes$1(d, string, i) {
3317
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3181
3318
  return n ? (d.M = +n[0], i + n[0].length) : -1;
3182
3319
  }
3183
3320
 
3184
- function parseSeconds(d, string, i) {
3185
- var n = numberRe.exec(string.slice(i, i + 2));
3321
+ function parseSeconds$1(d, string, i) {
3322
+ var n = numberRe$1.exec(string.slice(i, i + 2));
3186
3323
  return n ? (d.S = +n[0], i + n[0].length) : -1;
3187
3324
  }
3188
3325
 
3189
- function parseMilliseconds(d, string, i) {
3190
- var n = numberRe.exec(string.slice(i, i + 3));
3326
+ function parseMilliseconds$1(d, string, i) {
3327
+ var n = numberRe$1.exec(string.slice(i, i + 3));
3191
3328
  return n ? (d.L = +n[0], i + n[0].length) : -1;
3192
3329
  }
3193
3330
 
3194
- function parseMicroseconds(d, string, i) {
3195
- var n = numberRe.exec(string.slice(i, i + 6));
3331
+ function parseMicroseconds$1(d, string, i) {
3332
+ var n = numberRe$1.exec(string.slice(i, i + 6));
3196
3333
  return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
3197
3334
  }
3198
3335
 
3199
- function parseLiteralPercent(d, string, i) {
3200
- var n = percentRe.exec(string.slice(i, i + 1));
3336
+ function parseLiteralPercent$1(d, string, i) {
3337
+ var n = percentRe$1.exec(string.slice(i, i + 1));
3201
3338
  return n ? i + n[0].length : -1;
3202
3339
  }
3203
3340
 
3204
- function parseUnixTimestamp(d, string, i) {
3205
- var n = numberRe.exec(string.slice(i));
3341
+ function parseUnixTimestamp$1(d, string, i) {
3342
+ var n = numberRe$1.exec(string.slice(i));
3206
3343
  return n ? (d.Q = +n[0], i + n[0].length) : -1;
3207
3344
  }
3208
3345
 
3209
- function parseUnixTimestampSeconds(d, string, i) {
3210
- var n = numberRe.exec(string.slice(i));
3346
+ function parseUnixTimestampSeconds$1(d, string, i) {
3347
+ var n = numberRe$1.exec(string.slice(i));
3211
3348
  return n ? (d.s = +n[0], i + n[0].length) : -1;
3212
3349
  }
3213
3350
 
3214
- function formatDayOfMonth(d, p) {
3215
- return pad(d.getDate(), p, 2);
3351
+ function formatDayOfMonth$1(d, p) {
3352
+ return pad$1(d.getDate(), p, 2);
3216
3353
  }
3217
3354
 
3218
- function formatHour24(d, p) {
3219
- return pad(d.getHours(), p, 2);
3355
+ function formatHour24$1(d, p) {
3356
+ return pad$1(d.getHours(), p, 2);
3220
3357
  }
3221
3358
 
3222
- function formatHour12(d, p) {
3223
- return pad(d.getHours() % 12 || 12, p, 2);
3359
+ function formatHour12$1(d, p) {
3360
+ return pad$1(d.getHours() % 12 || 12, p, 2);
3224
3361
  }
3225
3362
 
3226
- function formatDayOfYear(d, p) {
3227
- return pad(1 + timeDay.count(timeYear(d), d), p, 3);
3363
+ function formatDayOfYear$1(d, p) {
3364
+ return pad$1(1 + timeDay$1.count(timeYear$1(d), d), p, 3);
3228
3365
  }
3229
3366
 
3230
- function formatMilliseconds(d, p) {
3231
- return pad(d.getMilliseconds(), p, 3);
3367
+ function formatMilliseconds$1(d, p) {
3368
+ return pad$1(d.getMilliseconds(), p, 3);
3232
3369
  }
3233
3370
 
3234
- function formatMicroseconds(d, p) {
3235
- return formatMilliseconds(d, p) + "000";
3371
+ function formatMicroseconds$1(d, p) {
3372
+ return formatMilliseconds$1(d, p) + "000";
3236
3373
  }
3237
3374
 
3238
- function formatMonthNumber(d, p) {
3239
- return pad(d.getMonth() + 1, p, 2);
3375
+ function formatMonthNumber$1(d, p) {
3376
+ return pad$1(d.getMonth() + 1, p, 2);
3240
3377
  }
3241
3378
 
3242
- function formatMinutes(d, p) {
3243
- return pad(d.getMinutes(), p, 2);
3379
+ function formatMinutes$1(d, p) {
3380
+ return pad$1(d.getMinutes(), p, 2);
3244
3381
  }
3245
3382
 
3246
- function formatSeconds(d, p) {
3247
- return pad(d.getSeconds(), p, 2);
3383
+ function formatSeconds$1(d, p) {
3384
+ return pad$1(d.getSeconds(), p, 2);
3248
3385
  }
3249
3386
 
3250
- function formatWeekdayNumberMonday(d) {
3387
+ function formatWeekdayNumberMonday$1(d) {
3251
3388
  var day = d.getDay();
3252
3389
  return day === 0 ? 7 : day;
3253
3390
  }
3254
3391
 
3255
- function formatWeekNumberSunday(d, p) {
3256
- return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);
3392
+ function formatWeekNumberSunday$1(d, p) {
3393
+ return pad$1(sunday.count(timeYear$1(d) - 1, d), p, 2);
3257
3394
  }
3258
3395
 
3259
- function dISO(d) {
3396
+ function dISO$1(d) {
3260
3397
  var day = d.getDay();
3261
- return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
3398
+ return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d);
3262
3399
  }
3263
3400
 
3264
- function formatWeekNumberISO(d, p) {
3265
- d = dISO(d);
3266
- return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
3401
+ function formatWeekNumberISO$1(d, p) {
3402
+ d = dISO$1(d);
3403
+ return pad$1(thursday.count(timeYear$1(d), d) + (timeYear$1(d).getDay() === 4), p, 2);
3267
3404
  }
3268
3405
 
3269
- function formatWeekdayNumberSunday(d) {
3406
+ function formatWeekdayNumberSunday$1(d) {
3270
3407
  return d.getDay();
3271
3408
  }
3272
3409
 
3273
- function formatWeekNumberMonday(d, p) {
3274
- return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);
3410
+ function formatWeekNumberMonday$1(d, p) {
3411
+ return pad$1(monday.count(timeYear$1(d) - 1, d), p, 2);
3275
3412
  }
3276
3413
 
3277
- function formatYear(d, p) {
3278
- return pad(d.getFullYear() % 100, p, 2);
3414
+ function formatYear$1(d, p) {
3415
+ return pad$1(d.getFullYear() % 100, p, 2);
3279
3416
  }
3280
3417
 
3281
- function formatYearISO(d, p) {
3282
- d = dISO(d);
3283
- return pad(d.getFullYear() % 100, p, 2);
3418
+ function formatYearISO$1(d, p) {
3419
+ d = dISO$1(d);
3420
+ return pad$1(d.getFullYear() % 100, p, 2);
3284
3421
  }
3285
3422
 
3286
- function formatFullYear(d, p) {
3287
- return pad(d.getFullYear() % 10000, p, 4);
3423
+ function formatFullYear$1(d, p) {
3424
+ return pad$1(d.getFullYear() % 10000, p, 4);
3288
3425
  }
3289
3426
 
3290
- function formatFullYearISO(d, p) {
3427
+ function formatFullYearISO$1(d, p) {
3291
3428
  var day = d.getDay();
3292
- d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);
3293
- return pad(d.getFullYear() % 10000, p, 4);
3429
+ d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d);
3430
+ return pad$1(d.getFullYear() % 10000, p, 4);
3294
3431
  }
3295
3432
 
3296
- function formatZone(d) {
3433
+ function formatZone$1(d) {
3297
3434
  var z = d.getTimezoneOffset();
3298
3435
  return (z > 0 ? "-" : (z *= -1, "+"))
3299
- + pad(z / 60 | 0, "0", 2)
3300
- + pad(z % 60, "0", 2);
3436
+ + pad$1(z / 60 | 0, "0", 2)
3437
+ + pad$1(z % 60, "0", 2);
3301
3438
  }
3302
3439
 
3303
- function formatUTCDayOfMonth(d, p) {
3304
- return pad(d.getUTCDate(), p, 2);
3440
+ function formatUTCDayOfMonth$1(d, p) {
3441
+ return pad$1(d.getUTCDate(), p, 2);
3305
3442
  }
3306
3443
 
3307
- function formatUTCHour24(d, p) {
3308
- return pad(d.getUTCHours(), p, 2);
3444
+ function formatUTCHour24$1(d, p) {
3445
+ return pad$1(d.getUTCHours(), p, 2);
3309
3446
  }
3310
3447
 
3311
- function formatUTCHour12(d, p) {
3312
- return pad(d.getUTCHours() % 12 || 12, p, 2);
3448
+ function formatUTCHour12$1(d, p) {
3449
+ return pad$1(d.getUTCHours() % 12 || 12, p, 2);
3313
3450
  }
3314
3451
 
3315
- function formatUTCDayOfYear(d, p) {
3316
- return pad(1 + utcDay.count(utcYear(d), d), p, 3);
3452
+ function formatUTCDayOfYear$1(d, p) {
3453
+ return pad$1(1 + utcDay$2.count(utcYear$2(d), d), p, 3);
3317
3454
  }
3318
3455
 
3319
- function formatUTCMilliseconds(d, p) {
3320
- return pad(d.getUTCMilliseconds(), p, 3);
3456
+ function formatUTCMilliseconds$1(d, p) {
3457
+ return pad$1(d.getUTCMilliseconds(), p, 3);
3321
3458
  }
3322
3459
 
3323
- function formatUTCMicroseconds(d, p) {
3324
- return formatUTCMilliseconds(d, p) + "000";
3460
+ function formatUTCMicroseconds$1(d, p) {
3461
+ return formatUTCMilliseconds$1(d, p) + "000";
3325
3462
  }
3326
3463
 
3327
- function formatUTCMonthNumber(d, p) {
3328
- return pad(d.getUTCMonth() + 1, p, 2);
3464
+ function formatUTCMonthNumber$1(d, p) {
3465
+ return pad$1(d.getUTCMonth() + 1, p, 2);
3329
3466
  }
3330
3467
 
3331
- function formatUTCMinutes(d, p) {
3332
- return pad(d.getUTCMinutes(), p, 2);
3468
+ function formatUTCMinutes$1(d, p) {
3469
+ return pad$1(d.getUTCMinutes(), p, 2);
3333
3470
  }
3334
3471
 
3335
- function formatUTCSeconds(d, p) {
3336
- return pad(d.getUTCSeconds(), p, 2);
3472
+ function formatUTCSeconds$1(d, p) {
3473
+ return pad$1(d.getUTCSeconds(), p, 2);
3337
3474
  }
3338
3475
 
3339
- function formatUTCWeekdayNumberMonday(d) {
3476
+ function formatUTCWeekdayNumberMonday$1(d) {
3340
3477
  var dow = d.getUTCDay();
3341
3478
  return dow === 0 ? 7 : dow;
3342
3479
  }
3343
3480
 
3344
- function formatUTCWeekNumberSunday(d, p) {
3345
- return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
3481
+ function formatUTCWeekNumberSunday$1(d, p) {
3482
+ return pad$1(utcSunday$1.count(utcYear$2(d) - 1, d), p, 2);
3346
3483
  }
3347
3484
 
3348
- function UTCdISO(d) {
3485
+ function UTCdISO$1(d) {
3349
3486
  var day = d.getUTCDay();
3350
3487
  return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
3351
3488
  }
3352
3489
 
3353
- function formatUTCWeekNumberISO(d, p) {
3354
- d = UTCdISO(d);
3355
- return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
3490
+ function formatUTCWeekNumberISO$1(d, p) {
3491
+ d = UTCdISO$1(d);
3492
+ return pad$1(utcThursday.count(utcYear$2(d), d) + (utcYear$2(d).getUTCDay() === 4), p, 2);
3356
3493
  }
3357
3494
 
3358
- function formatUTCWeekdayNumberSunday(d) {
3495
+ function formatUTCWeekdayNumberSunday$1(d) {
3359
3496
  return d.getUTCDay();
3360
3497
  }
3361
3498
 
3362
- function formatUTCWeekNumberMonday(d, p) {
3363
- return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
3499
+ function formatUTCWeekNumberMonday$1(d, p) {
3500
+ return pad$1(utcMonday.count(utcYear$2(d) - 1, d), p, 2);
3364
3501
  }
3365
3502
 
3366
- function formatUTCYear(d, p) {
3367
- return pad(d.getUTCFullYear() % 100, p, 2);
3503
+ function formatUTCYear$1(d, p) {
3504
+ return pad$1(d.getUTCFullYear() % 100, p, 2);
3368
3505
  }
3369
3506
 
3370
- function formatUTCYearISO(d, p) {
3371
- d = UTCdISO(d);
3372
- return pad(d.getUTCFullYear() % 100, p, 2);
3507
+ function formatUTCYearISO$1(d, p) {
3508
+ d = UTCdISO$1(d);
3509
+ return pad$1(d.getUTCFullYear() % 100, p, 2);
3373
3510
  }
3374
3511
 
3375
- function formatUTCFullYear(d, p) {
3376
- return pad(d.getUTCFullYear() % 10000, p, 4);
3512
+ function formatUTCFullYear$1(d, p) {
3513
+ return pad$1(d.getUTCFullYear() % 10000, p, 4);
3377
3514
  }
3378
3515
 
3379
- function formatUTCFullYearISO(d, p) {
3516
+ function formatUTCFullYearISO$1(d, p) {
3380
3517
  var day = d.getUTCDay();
3381
3518
  d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
3382
- return pad(d.getUTCFullYear() % 10000, p, 4);
3519
+ return pad$1(d.getUTCFullYear() % 10000, p, 4);
3383
3520
  }
3384
3521
 
3385
- function formatUTCZone() {
3522
+ function formatUTCZone$1() {
3386
3523
  return "+0000";
3387
3524
  }
3388
3525
 
3389
- function formatLiteralPercent() {
3526
+ function formatLiteralPercent$1() {
3390
3527
  return "%";
3391
3528
  }
3392
3529
 
3393
- function formatUnixTimestamp(d) {
3530
+ function formatUnixTimestamp$1(d) {
3394
3531
  return +d;
3395
3532
  }
3396
3533
 
3397
- function formatUnixTimestampSeconds(d) {
3534
+ function formatUnixTimestampSeconds$1(d) {
3398
3535
  return Math.floor(+d / 1000);
3399
3536
  }
3400
3537
 
3401
- var locale$1;
3402
- var timeFormat$2;
3538
+ var locale$3;
3539
+ var timeFormat$3;
3403
3540
  var timeParse$1;
3404
- var utcFormat$1;
3541
+ var utcFormat$2;
3405
3542
  var utcParse$1;
3406
3543
 
3407
- defaultLocale$1({
3544
+ defaultLocale$3({
3408
3545
  dateTime: "%x, %X",
3409
3546
  date: "%-m/%-d/%Y",
3410
3547
  time: "%-I:%M:%S %p",
@@ -3415,13 +3552,13 @@ defaultLocale$1({
3415
3552
  shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
3416
3553
  });
3417
3554
 
3418
- function defaultLocale$1(definition) {
3419
- locale$1 = formatLocale(definition);
3420
- timeFormat$2 = locale$1.format;
3421
- timeParse$1 = locale$1.parse;
3422
- utcFormat$1 = locale$1.utcFormat;
3423
- utcParse$1 = locale$1.utcParse;
3424
- return locale$1;
3555
+ function defaultLocale$3(definition) {
3556
+ locale$3 = formatLocale$2(definition);
3557
+ timeFormat$3 = locale$3.format;
3558
+ timeParse$1 = locale$3.parse;
3559
+ utcFormat$2 = locale$3.utcFormat;
3560
+ utcParse$1 = locale$3.utcParse;
3561
+ return locale$3;
3425
3562
  }
3426
3563
 
3427
3564
  function memoize (method) {
@@ -3459,7 +3596,7 @@ function numberLocale(locale) {
3459
3596
  format,
3460
3597
  formatPrefix,
3461
3598
  formatFloat(spec) {
3462
- const s = formatSpecifier(spec || ',');
3599
+ const s = formatSpecifier$1(spec || ',');
3463
3600
  if (s.precision == null) {
3464
3601
  s.precision = 12;
3465
3602
  switch (s.type) {
@@ -3479,7 +3616,7 @@ function numberLocale(locale) {
3479
3616
  }
3480
3617
  },
3481
3618
  formatSpan(start, stop, count, specifier) {
3482
- specifier = formatSpecifier(specifier == null ? ',f' : specifier);
3619
+ specifier = formatSpecifier$1(specifier == null ? ',f' : specifier);
3483
3620
  const step = tickStep(start, stop, count),
3484
3621
  value = Math.max(Math.abs(start), Math.abs(stop));
3485
3622
  let precision;
@@ -3487,7 +3624,7 @@ function numberLocale(locale) {
3487
3624
  switch (specifier.type) {
3488
3625
  case 's':
3489
3626
  {
3490
- if (!isNaN(precision = precisionPrefix(step, value))) {
3627
+ if (!isNaN(precision = precisionPrefix$1(step, value))) {
3491
3628
  specifier.precision = precision;
3492
3629
  }
3493
3630
  return formatPrefix(specifier, value);
@@ -3498,7 +3635,7 @@ function numberLocale(locale) {
3498
3635
  case 'p':
3499
3636
  case 'r':
3500
3637
  {
3501
- if (!isNaN(precision = precisionRound(step, value))) {
3638
+ if (!isNaN(precision = precisionRound$1(step, value))) {
3502
3639
  specifier.precision = precision - (specifier.type === 'e');
3503
3640
  }
3504
3641
  break;
@@ -3506,7 +3643,7 @@ function numberLocale(locale) {
3506
3643
  case 'f':
3507
3644
  case '%':
3508
3645
  {
3509
- if (!isNaN(precision = precisionFixed(step))) {
3646
+ if (!isNaN(precision = precisionFixed$1(step))) {
3510
3647
  specifier.precision = precision - (specifier.type === '%') * 2;
3511
3648
  }
3512
3649
  break;
@@ -3521,12 +3658,12 @@ let defaultNumberLocale;
3521
3658
  resetNumberFormatDefaultLocale();
3522
3659
  function resetNumberFormatDefaultLocale() {
3523
3660
  return defaultNumberLocale = numberLocale({
3524
- format: format$3,
3525
- formatPrefix: formatPrefix
3661
+ format: format$4,
3662
+ formatPrefix: formatPrefix$1
3526
3663
  });
3527
3664
  }
3528
3665
  function numberFormatLocale(definition) {
3529
- return numberLocale(formatLocale$1(definition));
3666
+ return numberLocale(formatLocale$3(definition));
3530
3667
  }
3531
3668
  function numberFormatDefaultLocale(definition) {
3532
3669
  return arguments.length ? defaultNumberLocale = numberFormatLocale(definition) : defaultNumberLocale;
@@ -3560,7 +3697,7 @@ function timeLocale(locale) {
3560
3697
  const timeFormat = memoize(locale.format),
3561
3698
  utcFormat = memoize(locale.utcFormat);
3562
3699
  return {
3563
- timeFormat: spec => isString(spec) ? timeFormat(spec) : timeMultiFormat(timeFormat, timeInterval, spec),
3700
+ timeFormat: spec => isString(spec) ? timeFormat(spec) : timeMultiFormat(timeFormat, timeInterval$1, spec),
3564
3701
  utcFormat: spec => isString(spec) ? utcFormat(spec) : timeMultiFormat(utcFormat, utcInterval, spec),
3565
3702
  timeParse: memoize(locale.parse),
3566
3703
  utcParse: memoize(locale.utcParse)
@@ -3570,26 +3707,26 @@ let defaultTimeLocale;
3570
3707
  resetTimeFormatDefaultLocale();
3571
3708
  function resetTimeFormatDefaultLocale() {
3572
3709
  return defaultTimeLocale = timeLocale({
3573
- format: timeFormat$2,
3710
+ format: timeFormat$3,
3574
3711
  parse: timeParse$1,
3575
- utcFormat: utcFormat$1,
3712
+ utcFormat: utcFormat$2,
3576
3713
  utcParse: utcParse$1
3577
3714
  });
3578
3715
  }
3579
3716
  function timeFormatLocale(definition) {
3580
- return timeLocale(formatLocale(definition));
3717
+ return timeLocale(formatLocale$2(definition));
3581
3718
  }
3582
3719
  function timeFormatDefaultLocale(definition) {
3583
3720
  return arguments.length ? defaultTimeLocale = timeFormatLocale(definition) : defaultTimeLocale;
3584
3721
  }
3585
3722
 
3586
3723
  const createLocale = (number, time) => extend$1({}, number, time);
3587
- function locale(numberSpec, timeSpec) {
3724
+ function locale$2(numberSpec, timeSpec) {
3588
3725
  const number = numberSpec ? numberFormatLocale(numberSpec) : numberFormatDefaultLocale();
3589
3726
  const time = timeSpec ? timeFormatLocale(timeSpec) : timeFormatDefaultLocale();
3590
3727
  return createLocale(number, time);
3591
3728
  }
3592
- function defaultLocale(numberSpec, timeSpec) {
3729
+ function defaultLocale$2(numberSpec, timeSpec) {
3593
3730
  const args = arguments.length;
3594
3731
  if (args && args !== 2) {
3595
3732
  error$1('defaultLocale expects either zero or two arguments.');
@@ -3599,7 +3736,7 @@ function defaultLocale(numberSpec, timeSpec) {
3599
3736
  function resetDefaultLocale() {
3600
3737
  resetNumberFormatDefaultLocale();
3601
3738
  resetTimeFormatDefaultLocale();
3602
- return defaultLocale();
3739
+ return defaultLocale$2();
3603
3740
  }
3604
3741
 
3605
3742
  // Matches absolute URLs with optional protocol
@@ -3785,7 +3922,7 @@ const typeParsers = {
3785
3922
  number: toNumber,
3786
3923
  date: toDate,
3787
3924
  string: toString,
3788
- unknown: identity$6
3925
+ unknown: identity$7
3789
3926
  };
3790
3927
  const typeTests = [isBoolean$1, isInteger$1, isNumber, isDate];
3791
3928
  const typeList = ['boolean', 'integer', 'number', 'date'];
@@ -3835,7 +3972,7 @@ function isBuffer(_) {
3835
3972
  return typeof Buffer === 'function' && isFunction(Buffer.isBuffer) ? Buffer.isBuffer(_) : false;
3836
3973
  }
3837
3974
  function json(data, format) {
3838
- const prop = format && format.property ? field$1(format.property) : identity$6;
3975
+ const prop = format && format.property ? field$1(format.property) : identity$7;
3839
3976
  return isObject(data) && !isBuffer(data) ? parseJSON(prop(data), format) : prop(JSON.parse(data));
3840
3977
  }
3841
3978
  json.responseType = 'json';
@@ -3868,7 +4005,7 @@ function topojson(data, format) {
3868
4005
  }
3869
4006
  topojson.responseType = 'json';
3870
4007
 
3871
- const format$2 = {
4008
+ const format$3 = {
3872
4009
  dsv: dsv,
3873
4010
  csv: delimitedFormat(','),
3874
4011
  tsv: delimitedFormat('\t'),
@@ -3877,10 +4014,10 @@ const format$2 = {
3877
4014
  };
3878
4015
  function formats$1(name, reader) {
3879
4016
  if (arguments.length > 1) {
3880
- format$2[name] = reader;
4017
+ format$3[name] = reader;
3881
4018
  return this;
3882
4019
  } else {
3883
- return has$1(format$2, name) ? format$2[name] : null;
4020
+ return has$1(format$3, name) ? format$3[name] : null;
3884
4021
  }
3885
4022
  }
3886
4023
  function responseType(type) {
@@ -3944,7 +4081,7 @@ null // no file system access
3944
4081
  );
3945
4082
 
3946
4083
  function UniqueList(idFunc) {
3947
- const $ = idFunc || identity$6,
4084
+ const $ = idFunc || identity$7,
3948
4085
  list = [],
3949
4086
  ids = {};
3950
4087
  list.add = _ => {
@@ -4637,7 +4774,7 @@ function stream(filter, apply, receive) {
4637
4774
  }
4638
4775
  EventStream.prototype = {
4639
4776
  _filter: truthy,
4640
- _apply: identity$6,
4777
+ _apply: identity$7,
4641
4778
  targets() {
4642
4779
  return this._targets || (this._targets = UniqueList(id));
4643
4780
  },
@@ -5805,7 +5942,7 @@ function Dataflow() {
5805
5942
  this.logLevel(Error$1);
5806
5943
  this._clock = 0;
5807
5944
  this._rank = 0;
5808
- this._locale = defaultLocale();
5945
+ this._locale = defaultLocale$2();
5809
5946
  try {
5810
5947
  this._loader = loader();
5811
5948
  } catch (e) {
@@ -7418,7 +7555,7 @@ function set$4(t) {
7418
7555
  return t;
7419
7556
  }
7420
7557
  function compileMeasures(agg, field) {
7421
- const get = field || identity$6,
7558
+ const get = field || identity$7,
7422
7559
  ops = resolve(agg),
7423
7560
  out = agg.slice().sort(compareIndex);
7424
7561
  function ctr(cell) {
@@ -8591,7 +8728,7 @@ inherits(DotBin, Transform, {
8591
8728
  return pulse; // early exit
8592
8729
  }
8593
8730
  const source = pulse.materialize(pulse.SOURCE).source,
8594
- groups = partition$1$1(pulse.source, _.groupby, identity$6),
8731
+ groups = partition$1$1(pulse.source, _.groupby, identity$7),
8595
8732
  smooth = _.smooth || false,
8596
8733
  field = _.field,
8597
8734
  step = _.step || autostep(source, field),
@@ -10362,7 +10499,7 @@ inherits(TimeUnit, Transform, {
10362
10499
  band = _.interval !== false,
10363
10500
  utc = _.timezone === 'utc',
10364
10501
  floor = this._floor(_, pulse),
10365
- offset = (utc ? utcInterval : timeInterval)(floor.unit).offset,
10502
+ offset = (utc ? utcInterval : timeInterval$1)(floor.unit).offset,
10366
10503
  as = _.as || OUTPUT,
10367
10504
  u0 = as[0],
10368
10505
  u1 = as[1],
@@ -12979,10 +13116,10 @@ const K = 18,
12979
13116
  Xn = 0.96422,
12980
13117
  Yn = 1,
12981
13118
  Zn = 0.82521,
12982
- t0 = 4 / 29,
12983
- t1 = 6 / 29,
12984
- t2 = 3 * t1 * t1,
12985
- t3 = t1 * t1 * t1;
13119
+ t0$1 = 4 / 29,
13120
+ t1$1 = 6 / 29,
13121
+ t2 = 3 * t1$1 * t1$1,
13122
+ t3 = t1$1 * t1$1 * t1$1;
12986
13123
 
12987
13124
  function labConvert(o) {
12988
13125
  if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);
@@ -13034,11 +13171,11 @@ define(Lab, lab$1, extend(Color, {
13034
13171
  }));
13035
13172
 
13036
13173
  function xyz2lab(t) {
13037
- return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;
13174
+ return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0$1;
13038
13175
  }
13039
13176
 
13040
13177
  function lab2xyz(t) {
13041
- return t > t1 ? t * t * t : t2 * (t - t0);
13178
+ return t > t1$1 ? t * t * t : t2 * (t - t0$1);
13042
13179
  }
13043
13180
 
13044
13181
  function lrgb2rgb(x) {
@@ -13426,7 +13563,7 @@ function interpolateRound(a, b) {
13426
13563
 
13427
13564
  var degrees$1 = 180 / Math.PI;
13428
13565
 
13429
- var identity$3 = {
13566
+ var identity$4 = {
13430
13567
  translateX: 0,
13431
13568
  translateY: 0,
13432
13569
  rotate: 0,
@@ -13456,14 +13593,14 @@ var svgNode;
13456
13593
  /* eslint-disable no-undef */
13457
13594
  function parseCss(value) {
13458
13595
  const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
13459
- return m.isIdentity ? identity$3 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
13596
+ return m.isIdentity ? identity$4 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
13460
13597
  }
13461
13598
 
13462
13599
  function parseSvg(value) {
13463
- if (value == null) return identity$3;
13600
+ if (value == null) return identity$4;
13464
13601
  if (!svgNode) svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
13465
13602
  svgNode.setAttribute("transform", value);
13466
- if (!(value = svgNode.transform.baseVal.consolidate())) return identity$3;
13603
+ if (!(value = svgNode.transform.baseVal.consolidate())) return identity$4;
13467
13604
  value = value.matrix;
13468
13605
  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
13469
13606
  }
@@ -13739,7 +13876,7 @@ function number$5(x) {
13739
13876
 
13740
13877
  var unit = [0, 1];
13741
13878
 
13742
- function identity$2(x) {
13879
+ function identity$3(x) {
13743
13880
  return x;
13744
13881
  }
13745
13882
 
@@ -13803,14 +13940,14 @@ function transformer$3() {
13803
13940
  transform,
13804
13941
  untransform,
13805
13942
  unknown,
13806
- clamp = identity$2,
13943
+ clamp = identity$3,
13807
13944
  piecewise,
13808
13945
  output,
13809
13946
  input;
13810
13947
 
13811
13948
  function rescale() {
13812
13949
  var n = Math.min(domain.length, range.length);
13813
- if (clamp !== identity$2) clamp = clamper(domain[0], domain[n - 1]);
13950
+ if (clamp !== identity$3) clamp = clamper(domain[0], domain[n - 1]);
13814
13951
  piecewise = n > 2 ? polymap : bimap;
13815
13952
  output = input = null;
13816
13953
  return scale;
@@ -13837,7 +13974,7 @@ function transformer$3() {
13837
13974
  };
13838
13975
 
13839
13976
  scale.clamp = function(_) {
13840
- return arguments.length ? (clamp = _ ? true : identity$2, rescale()) : clamp !== identity$2;
13977
+ return arguments.length ? (clamp = _ ? true : identity$3, rescale()) : clamp !== identity$3;
13841
13978
  };
13842
13979
 
13843
13980
  scale.interpolate = function(_) {
@@ -13855,7 +13992,336 @@ function transformer$3() {
13855
13992
  }
13856
13993
 
13857
13994
  function continuous$1() {
13858
- return transformer$3()(identity$2, identity$2);
13995
+ return transformer$3()(identity$3, identity$3);
13996
+ }
13997
+
13998
+ function formatDecimal(x) {
13999
+ return Math.abs(x = Math.round(x)) >= 1e21
14000
+ ? x.toLocaleString("en").replace(/,/g, "")
14001
+ : x.toString(10);
14002
+ }
14003
+
14004
+ // Computes the decimal coefficient and exponent of the specified number x with
14005
+ // significant digits p, where x is positive and p is in [1, 21] or undefined.
14006
+ // For example, formatDecimalParts(1.23) returns ["123", 0].
14007
+ function formatDecimalParts(x, p) {
14008
+ if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf("e")) < 0) return null; // NaN, ±Infinity
14009
+ var i, coefficient = x.slice(0, i);
14010
+
14011
+ // The string returned by toExponential either has the form \d\.\d+e[-+]\d+
14012
+ // (e.g., 1.2e+3) or the form \de[-+]\d+ (e.g., 1e+3).
14013
+ return [
14014
+ coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
14015
+ +x.slice(i + 1)
14016
+ ];
14017
+ }
14018
+
14019
+ function exponent(x) {
14020
+ return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;
14021
+ }
14022
+
14023
+ function formatGroup(grouping, thousands) {
14024
+ return function(value, width) {
14025
+ var i = value.length,
14026
+ t = [],
14027
+ j = 0,
14028
+ g = grouping[0],
14029
+ length = 0;
14030
+
14031
+ while (i > 0 && g > 0) {
14032
+ if (length + g + 1 > width) g = Math.max(1, width - length);
14033
+ t.push(value.substring(i -= g, i + g));
14034
+ if ((length += g + 1) > width) break;
14035
+ g = grouping[j = (j + 1) % grouping.length];
14036
+ }
14037
+
14038
+ return t.reverse().join(thousands);
14039
+ };
14040
+ }
14041
+
14042
+ function formatNumerals(numerals) {
14043
+ return function(value) {
14044
+ return value.replace(/[0-9]/g, function(i) {
14045
+ return numerals[+i];
14046
+ });
14047
+ };
14048
+ }
14049
+
14050
+ // [[fill]align][sign][symbol][0][width][,][.precision][~][type]
14051
+ var re$1 = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
14052
+
14053
+ function formatSpecifier(specifier) {
14054
+ if (!(match = re$1.exec(specifier))) throw new Error("invalid format: " + specifier);
14055
+ var match;
14056
+ return new FormatSpecifier({
14057
+ fill: match[1],
14058
+ align: match[2],
14059
+ sign: match[3],
14060
+ symbol: match[4],
14061
+ zero: match[5],
14062
+ width: match[6],
14063
+ comma: match[7],
14064
+ precision: match[8] && match[8].slice(1),
14065
+ trim: match[9],
14066
+ type: match[10]
14067
+ });
14068
+ }
14069
+
14070
+ formatSpecifier.prototype = FormatSpecifier.prototype; // instanceof
14071
+
14072
+ function FormatSpecifier(specifier) {
14073
+ this.fill = specifier.fill === undefined ? " " : specifier.fill + "";
14074
+ this.align = specifier.align === undefined ? ">" : specifier.align + "";
14075
+ this.sign = specifier.sign === undefined ? "-" : specifier.sign + "";
14076
+ this.symbol = specifier.symbol === undefined ? "" : specifier.symbol + "";
14077
+ this.zero = !!specifier.zero;
14078
+ this.width = specifier.width === undefined ? undefined : +specifier.width;
14079
+ this.comma = !!specifier.comma;
14080
+ this.precision = specifier.precision === undefined ? undefined : +specifier.precision;
14081
+ this.trim = !!specifier.trim;
14082
+ this.type = specifier.type === undefined ? "" : specifier.type + "";
14083
+ }
14084
+
14085
+ FormatSpecifier.prototype.toString = function() {
14086
+ return this.fill
14087
+ + this.align
14088
+ + this.sign
14089
+ + this.symbol
14090
+ + (this.zero ? "0" : "")
14091
+ + (this.width === undefined ? "" : Math.max(1, this.width | 0))
14092
+ + (this.comma ? "," : "")
14093
+ + (this.precision === undefined ? "" : "." + Math.max(0, this.precision | 0))
14094
+ + (this.trim ? "~" : "")
14095
+ + this.type;
14096
+ };
14097
+
14098
+ // Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.
14099
+ function formatTrim(s) {
14100
+ out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {
14101
+ switch (s[i]) {
14102
+ case ".": i0 = i1 = i; break;
14103
+ case "0": if (i0 === 0) i0 = i; i1 = i; break;
14104
+ default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;
14105
+ }
14106
+ }
14107
+ return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
14108
+ }
14109
+
14110
+ var prefixExponent;
14111
+
14112
+ function formatPrefixAuto(x, p) {
14113
+ var d = formatDecimalParts(x, p);
14114
+ if (!d) return x + "";
14115
+ var coefficient = d[0],
14116
+ exponent = d[1],
14117
+ i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,
14118
+ n = coefficient.length;
14119
+ return i === n ? coefficient
14120
+ : i > n ? coefficient + new Array(i - n + 1).join("0")
14121
+ : i > 0 ? coefficient.slice(0, i) + "." + coefficient.slice(i)
14122
+ : "0." + new Array(1 - i).join("0") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!
14123
+ }
14124
+
14125
+ function formatRounded(x, p) {
14126
+ var d = formatDecimalParts(x, p);
14127
+ if (!d) return x + "";
14128
+ var coefficient = d[0],
14129
+ exponent = d[1];
14130
+ return exponent < 0 ? "0." + new Array(-exponent).join("0") + coefficient
14131
+ : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + "." + coefficient.slice(exponent + 1)
14132
+ : coefficient + new Array(exponent - coefficient.length + 2).join("0");
14133
+ }
14134
+
14135
+ const formatTypes = {
14136
+ "%": function(x, p) { return (x * 100).toFixed(p); },
14137
+ "b": function(x) { return Math.round(x).toString(2); },
14138
+ "c": function(x) { return x + ""; },
14139
+ "d": formatDecimal,
14140
+ "e": function(x, p) { return x.toExponential(p); },
14141
+ "f": function(x, p) { return x.toFixed(p); },
14142
+ "g": function(x, p) { return x.toPrecision(p); },
14143
+ "o": function(x) { return Math.round(x).toString(8); },
14144
+ "p": function(x, p) { return formatRounded(x * 100, p); },
14145
+ "r": formatRounded,
14146
+ "s": formatPrefixAuto,
14147
+ "X": function(x) { return Math.round(x).toString(16).toUpperCase(); },
14148
+ "x": function(x) { return Math.round(x).toString(16); }
14149
+ };
14150
+
14151
+ function identity$2(x) {
14152
+ return x;
14153
+ }
14154
+
14155
+ var map$1 = Array.prototype.map,
14156
+ prefixes = ["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];
14157
+
14158
+ function formatLocale$1(locale) {
14159
+ var group = locale.grouping === undefined || locale.thousands === undefined ? identity$2 : formatGroup(map$1.call(locale.grouping, Number), locale.thousands + ""),
14160
+ currencyPrefix = locale.currency === undefined ? "" : locale.currency[0] + "",
14161
+ currencySuffix = locale.currency === undefined ? "" : locale.currency[1] + "",
14162
+ decimal = locale.decimal === undefined ? "." : locale.decimal + "",
14163
+ numerals = locale.numerals === undefined ? identity$2 : formatNumerals(map$1.call(locale.numerals, String)),
14164
+ percent = locale.percent === undefined ? "%" : locale.percent + "",
14165
+ minus = locale.minus === undefined ? "-" : locale.minus + "",
14166
+ nan = locale.nan === undefined ? "NaN" : locale.nan + "";
14167
+
14168
+ function newFormat(specifier) {
14169
+ specifier = formatSpecifier(specifier);
14170
+
14171
+ var fill = specifier.fill,
14172
+ align = specifier.align,
14173
+ sign = specifier.sign,
14174
+ symbol = specifier.symbol,
14175
+ zero = specifier.zero,
14176
+ width = specifier.width,
14177
+ comma = specifier.comma,
14178
+ precision = specifier.precision,
14179
+ trim = specifier.trim,
14180
+ type = specifier.type;
14181
+
14182
+ // The "n" type is an alias for ",g".
14183
+ if (type === "n") comma = true, type = "g";
14184
+
14185
+ // The "" type, and any invalid type, is an alias for ".12~g".
14186
+ else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = "g";
14187
+
14188
+ // If zero fill is specified, padding goes after sign and before digits.
14189
+ if (zero || (fill === "0" && align === "=")) zero = true, fill = "0", align = "=";
14190
+
14191
+ // Compute the prefix and suffix.
14192
+ // For SI-prefix, the suffix is lazily computed.
14193
+ var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type) ? "0" + type.toLowerCase() : "",
14194
+ suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type) ? percent : "";
14195
+
14196
+ // What format function should we use?
14197
+ // Is this an integer type?
14198
+ // Can this type generate exponential notation?
14199
+ var formatType = formatTypes[type],
14200
+ maybeSuffix = /[defgprs%]/.test(type);
14201
+
14202
+ // Set the default precision if not specified,
14203
+ // or clamp the specified precision to the supported range.
14204
+ // For significant precision, it must be in [1, 21].
14205
+ // For fixed precision, it must be in [0, 20].
14206
+ precision = precision === undefined ? 6
14207
+ : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))
14208
+ : Math.max(0, Math.min(20, precision));
14209
+
14210
+ function format(value) {
14211
+ var valuePrefix = prefix,
14212
+ valueSuffix = suffix,
14213
+ i, n, c;
14214
+
14215
+ if (type === "c") {
14216
+ valueSuffix = formatType(value) + valueSuffix;
14217
+ value = "";
14218
+ } else {
14219
+ value = +value;
14220
+
14221
+ // Determine the sign. -0 is not less than 0, but 1 / -0 is!
14222
+ var valueNegative = value < 0 || 1 / value < 0;
14223
+
14224
+ // Perform the initial formatting.
14225
+ value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
14226
+
14227
+ // Trim insignificant zeros.
14228
+ if (trim) value = formatTrim(value);
14229
+
14230
+ // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.
14231
+ if (valueNegative && +value === 0 && sign !== "+") valueNegative = false;
14232
+
14233
+ // Compute the prefix and suffix.
14234
+ valuePrefix = (valueNegative ? (sign === "(" ? sign : minus) : sign === "-" || sign === "(" ? "" : sign) + valuePrefix;
14235
+ valueSuffix = (type === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign === "(" ? ")" : "");
14236
+
14237
+ // Break the formatted value into the integer “value” part that can be
14238
+ // grouped, and fractional or exponential “suffix” part that is not.
14239
+ if (maybeSuffix) {
14240
+ i = -1, n = value.length;
14241
+ while (++i < n) {
14242
+ if (c = value.charCodeAt(i), 48 > c || c > 57) {
14243
+ valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;
14244
+ value = value.slice(0, i);
14245
+ break;
14246
+ }
14247
+ }
14248
+ }
14249
+ }
14250
+
14251
+ // If the fill character is not "0", grouping is applied before padding.
14252
+ if (comma && !zero) value = group(value, Infinity);
14253
+
14254
+ // Compute the padding.
14255
+ var length = valuePrefix.length + value.length + valueSuffix.length,
14256
+ padding = length < width ? new Array(width - length + 1).join(fill) : "";
14257
+
14258
+ // If the fill character is "0", grouping is applied after padding.
14259
+ if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = "";
14260
+
14261
+ // Reconstruct the final output based on the desired alignment.
14262
+ switch (align) {
14263
+ case "<": value = valuePrefix + value + valueSuffix + padding; break;
14264
+ case "=": value = valuePrefix + padding + value + valueSuffix; break;
14265
+ case "^": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;
14266
+ default: value = padding + valuePrefix + value + valueSuffix; break;
14267
+ }
14268
+
14269
+ return numerals(value);
14270
+ }
14271
+
14272
+ format.toString = function() {
14273
+ return specifier + "";
14274
+ };
14275
+
14276
+ return format;
14277
+ }
14278
+
14279
+ function formatPrefix(specifier, value) {
14280
+ var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)),
14281
+ e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,
14282
+ k = Math.pow(10, -e),
14283
+ prefix = prefixes[8 + e / 3];
14284
+ return function(value) {
14285
+ return f(k * value) + prefix;
14286
+ };
14287
+ }
14288
+
14289
+ return {
14290
+ format: newFormat,
14291
+ formatPrefix: formatPrefix
14292
+ };
14293
+ }
14294
+
14295
+ var locale$1;
14296
+ var format$2;
14297
+ var formatPrefix;
14298
+
14299
+ defaultLocale$1({
14300
+ decimal: ".",
14301
+ thousands: ",",
14302
+ grouping: [3],
14303
+ currency: ["$", ""],
14304
+ minus: "-"
14305
+ });
14306
+
14307
+ function defaultLocale$1(definition) {
14308
+ locale$1 = formatLocale$1(definition);
14309
+ format$2 = locale$1.format;
14310
+ formatPrefix = locale$1.formatPrefix;
14311
+ return locale$1;
14312
+ }
14313
+
14314
+ function precisionFixed(step) {
14315
+ return Math.max(0, -exponent(Math.abs(step)));
14316
+ }
14317
+
14318
+ function precisionPrefix(step, value) {
14319
+ return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
14320
+ }
14321
+
14322
+ function precisionRound(step, max) {
14323
+ step = Math.abs(step), max = Math.abs(max) - step;
14324
+ return Math.max(0, exponent(max) - exponent(step)) + 1;
13859
14325
  }
13860
14326
 
13861
14327
  function tickFormat$1(start, stop, count, specifier) {
@@ -13882,7 +14348,7 @@ function tickFormat$1(start, stop, count, specifier) {
13882
14348
  break;
13883
14349
  }
13884
14350
  }
13885
- return format$3(specifier);
14351
+ return format$2(specifier);
13886
14352
  }
13887
14353
 
13888
14354
  function linearish(scale) {
@@ -14103,7 +14569,7 @@ function loggish(transform) {
14103
14569
  if (specifier == null) specifier = base === 10 ? "s" : ",";
14104
14570
  if (typeof specifier !== "function") {
14105
14571
  if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;
14106
- specifier = format$3(specifier);
14572
+ specifier = format$2(specifier);
14107
14573
  }
14108
14574
  if (count === Infinity) return specifier;
14109
14575
  const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?
@@ -14178,11 +14644,11 @@ function transformSquare(x) {
14178
14644
  }
14179
14645
 
14180
14646
  function powish(transform) {
14181
- var scale = transform(identity$2, identity$2),
14647
+ var scale = transform(identity$3, identity$3),
14182
14648
  exponent = 1;
14183
14649
 
14184
14650
  function rescale() {
14185
- return exponent === 1 ? transform(identity$2, identity$2)
14651
+ return exponent === 1 ? transform(identity$3, identity$3)
14186
14652
  : exponent === 0.5 ? transform(transformSqrt, transformSquare)
14187
14653
  : transform(transformPow(exponent), transformPow(1 / exponent));
14188
14654
  }
@@ -14355,6 +14821,1042 @@ function threshold() {
14355
14821
  return initRange.apply(scale, arguments);
14356
14822
  }
14357
14823
 
14824
+ const t0 = new Date, t1 = new Date;
14825
+
14826
+ function timeInterval(floori, offseti, count, field) {
14827
+
14828
+ function interval(date) {
14829
+ return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;
14830
+ }
14831
+
14832
+ interval.floor = (date) => {
14833
+ return floori(date = new Date(+date)), date;
14834
+ };
14835
+
14836
+ interval.ceil = (date) => {
14837
+ return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;
14838
+ };
14839
+
14840
+ interval.round = (date) => {
14841
+ const d0 = interval(date), d1 = interval.ceil(date);
14842
+ return date - d0 < d1 - date ? d0 : d1;
14843
+ };
14844
+
14845
+ interval.offset = (date, step) => {
14846
+ return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;
14847
+ };
14848
+
14849
+ interval.range = (start, stop, step) => {
14850
+ const range = [];
14851
+ start = interval.ceil(start);
14852
+ step = step == null ? 1 : Math.floor(step);
14853
+ if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date
14854
+ let previous;
14855
+ do range.push(previous = new Date(+start)), offseti(start, step), floori(start);
14856
+ while (previous < start && start < stop);
14857
+ return range;
14858
+ };
14859
+
14860
+ interval.filter = (test) => {
14861
+ return timeInterval((date) => {
14862
+ if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);
14863
+ }, (date, step) => {
14864
+ if (date >= date) {
14865
+ if (step < 0) while (++step <= 0) {
14866
+ while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty
14867
+ } else while (--step >= 0) {
14868
+ while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty
14869
+ }
14870
+ }
14871
+ });
14872
+ };
14873
+
14874
+ if (count) {
14875
+ interval.count = (start, end) => {
14876
+ t0.setTime(+start), t1.setTime(+end);
14877
+ floori(t0), floori(t1);
14878
+ return Math.floor(count(t0, t1));
14879
+ };
14880
+
14881
+ interval.every = (step) => {
14882
+ step = Math.floor(step);
14883
+ return !isFinite(step) || !(step > 0) ? null
14884
+ : !(step > 1) ? interval
14885
+ : interval.filter(field
14886
+ ? (d) => field(d) % step === 0
14887
+ : (d) => interval.count(0, d) % step === 0);
14888
+ };
14889
+ }
14890
+
14891
+ return interval;
14892
+ }
14893
+
14894
+ const millisecond = timeInterval(() => {
14895
+ // noop
14896
+ }, (date, step) => {
14897
+ date.setTime(+date + step);
14898
+ }, (start, end) => {
14899
+ return end - start;
14900
+ });
14901
+
14902
+ // An optimized implementation for this simple case.
14903
+ millisecond.every = (k) => {
14904
+ k = Math.floor(k);
14905
+ if (!isFinite(k) || !(k > 0)) return null;
14906
+ if (!(k > 1)) return millisecond;
14907
+ return timeInterval((date) => {
14908
+ date.setTime(Math.floor(date / k) * k);
14909
+ }, (date, step) => {
14910
+ date.setTime(+date + step * k);
14911
+ }, (start, end) => {
14912
+ return (end - start) / k;
14913
+ });
14914
+ };
14915
+
14916
+ const durationSecond = 1000;
14917
+ const durationMinute = durationSecond * 60;
14918
+ const durationHour = durationMinute * 60;
14919
+ const durationDay = durationHour * 24;
14920
+ const durationWeek = durationDay * 7;
14921
+ const durationMonth = durationDay * 30;
14922
+ const durationYear = durationDay * 365;
14923
+
14924
+ const second = timeInterval((date) => {
14925
+ date.setTime(date - date.getMilliseconds());
14926
+ }, (date, step) => {
14927
+ date.setTime(+date + step * durationSecond);
14928
+ }, (start, end) => {
14929
+ return (end - start) / durationSecond;
14930
+ }, (date) => {
14931
+ return date.getUTCSeconds();
14932
+ });
14933
+
14934
+ const timeMinute = timeInterval((date) => {
14935
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);
14936
+ }, (date, step) => {
14937
+ date.setTime(+date + step * durationMinute);
14938
+ }, (start, end) => {
14939
+ return (end - start) / durationMinute;
14940
+ }, (date) => {
14941
+ return date.getMinutes();
14942
+ });
14943
+
14944
+ const utcMinute = timeInterval((date) => {
14945
+ date.setUTCSeconds(0, 0);
14946
+ }, (date, step) => {
14947
+ date.setTime(+date + step * durationMinute);
14948
+ }, (start, end) => {
14949
+ return (end - start) / durationMinute;
14950
+ }, (date) => {
14951
+ return date.getUTCMinutes();
14952
+ });
14953
+
14954
+ const timeHour = timeInterval((date) => {
14955
+ date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);
14956
+ }, (date, step) => {
14957
+ date.setTime(+date + step * durationHour);
14958
+ }, (start, end) => {
14959
+ return (end - start) / durationHour;
14960
+ }, (date) => {
14961
+ return date.getHours();
14962
+ });
14963
+
14964
+ const utcHour = timeInterval((date) => {
14965
+ date.setUTCMinutes(0, 0, 0);
14966
+ }, (date, step) => {
14967
+ date.setTime(+date + step * durationHour);
14968
+ }, (start, end) => {
14969
+ return (end - start) / durationHour;
14970
+ }, (date) => {
14971
+ return date.getUTCHours();
14972
+ });
14973
+
14974
+ const timeDay = timeInterval(
14975
+ date => date.setHours(0, 0, 0, 0),
14976
+ (date, step) => date.setDate(date.getDate() + step),
14977
+ (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,
14978
+ date => date.getDate() - 1
14979
+ );
14980
+
14981
+ const utcDay = timeInterval((date) => {
14982
+ date.setUTCHours(0, 0, 0, 0);
14983
+ }, (date, step) => {
14984
+ date.setUTCDate(date.getUTCDate() + step);
14985
+ }, (start, end) => {
14986
+ return (end - start) / durationDay;
14987
+ }, (date) => {
14988
+ return date.getUTCDate() - 1;
14989
+ });
14990
+
14991
+ const unixDay = timeInterval((date) => {
14992
+ date.setUTCHours(0, 0, 0, 0);
14993
+ }, (date, step) => {
14994
+ date.setUTCDate(date.getUTCDate() + step);
14995
+ }, (start, end) => {
14996
+ return (end - start) / durationDay;
14997
+ }, (date) => {
14998
+ return Math.floor(date / durationDay);
14999
+ });
15000
+
15001
+ function timeWeekday(i) {
15002
+ return timeInterval((date) => {
15003
+ date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
15004
+ date.setHours(0, 0, 0, 0);
15005
+ }, (date, step) => {
15006
+ date.setDate(date.getDate() + step * 7);
15007
+ }, (start, end) => {
15008
+ return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;
15009
+ });
15010
+ }
15011
+
15012
+ const timeSunday = timeWeekday(0);
15013
+ timeWeekday(1);
15014
+ timeWeekday(2);
15015
+ timeWeekday(3);
15016
+ timeWeekday(4);
15017
+ timeWeekday(5);
15018
+ timeWeekday(6);
15019
+
15020
+ function utcWeekday(i) {
15021
+ return timeInterval((date) => {
15022
+ date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
15023
+ date.setUTCHours(0, 0, 0, 0);
15024
+ }, (date, step) => {
15025
+ date.setUTCDate(date.getUTCDate() + step * 7);
15026
+ }, (start, end) => {
15027
+ return (end - start) / durationWeek;
15028
+ });
15029
+ }
15030
+
15031
+ const utcSunday = utcWeekday(0);
15032
+ utcWeekday(1);
15033
+ utcWeekday(2);
15034
+ utcWeekday(3);
15035
+ utcWeekday(4);
15036
+ utcWeekday(5);
15037
+ utcWeekday(6);
15038
+
15039
+ const timeMonth = timeInterval((date) => {
15040
+ date.setDate(1);
15041
+ date.setHours(0, 0, 0, 0);
15042
+ }, (date, step) => {
15043
+ date.setMonth(date.getMonth() + step);
15044
+ }, (start, end) => {
15045
+ return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;
15046
+ }, (date) => {
15047
+ return date.getMonth();
15048
+ });
15049
+
15050
+ const utcMonth = timeInterval((date) => {
15051
+ date.setUTCDate(1);
15052
+ date.setUTCHours(0, 0, 0, 0);
15053
+ }, (date, step) => {
15054
+ date.setUTCMonth(date.getUTCMonth() + step);
15055
+ }, (start, end) => {
15056
+ return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;
15057
+ }, (date) => {
15058
+ return date.getUTCMonth();
15059
+ });
15060
+
15061
+ const timeYear = timeInterval((date) => {
15062
+ date.setMonth(0, 1);
15063
+ date.setHours(0, 0, 0, 0);
15064
+ }, (date, step) => {
15065
+ date.setFullYear(date.getFullYear() + step);
15066
+ }, (start, end) => {
15067
+ return end.getFullYear() - start.getFullYear();
15068
+ }, (date) => {
15069
+ return date.getFullYear();
15070
+ });
15071
+
15072
+ // An optimized implementation for this simple case.
15073
+ timeYear.every = (k) => {
15074
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
15075
+ date.setFullYear(Math.floor(date.getFullYear() / k) * k);
15076
+ date.setMonth(0, 1);
15077
+ date.setHours(0, 0, 0, 0);
15078
+ }, (date, step) => {
15079
+ date.setFullYear(date.getFullYear() + step * k);
15080
+ });
15081
+ };
15082
+
15083
+ const utcYear = timeInterval((date) => {
15084
+ date.setUTCMonth(0, 1);
15085
+ date.setUTCHours(0, 0, 0, 0);
15086
+ }, (date, step) => {
15087
+ date.setUTCFullYear(date.getUTCFullYear() + step);
15088
+ }, (start, end) => {
15089
+ return end.getUTCFullYear() - start.getUTCFullYear();
15090
+ }, (date) => {
15091
+ return date.getUTCFullYear();
15092
+ });
15093
+
15094
+ // An optimized implementation for this simple case.
15095
+ utcYear.every = (k) => {
15096
+ return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {
15097
+ date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);
15098
+ date.setUTCMonth(0, 1);
15099
+ date.setUTCHours(0, 0, 0, 0);
15100
+ }, (date, step) => {
15101
+ date.setUTCFullYear(date.getUTCFullYear() + step * k);
15102
+ });
15103
+ };
15104
+
15105
+ function ticker(year, month, week, day, hour, minute) {
15106
+
15107
+ const tickIntervals = [
15108
+ [second, 1, durationSecond],
15109
+ [second, 5, 5 * durationSecond],
15110
+ [second, 15, 15 * durationSecond],
15111
+ [second, 30, 30 * durationSecond],
15112
+ [minute, 1, durationMinute],
15113
+ [minute, 5, 5 * durationMinute],
15114
+ [minute, 15, 15 * durationMinute],
15115
+ [minute, 30, 30 * durationMinute],
15116
+ [ hour, 1, durationHour ],
15117
+ [ hour, 3, 3 * durationHour ],
15118
+ [ hour, 6, 6 * durationHour ],
15119
+ [ hour, 12, 12 * durationHour ],
15120
+ [ day, 1, durationDay ],
15121
+ [ day, 2, 2 * durationDay ],
15122
+ [ week, 1, durationWeek ],
15123
+ [ month, 1, durationMonth ],
15124
+ [ month, 3, 3 * durationMonth ],
15125
+ [ year, 1, durationYear ]
15126
+ ];
15127
+
15128
+ function ticks(start, stop, count) {
15129
+ const reverse = stop < start;
15130
+ if (reverse) [start, stop] = [stop, start];
15131
+ const interval = count && typeof count.range === "function" ? count : tickInterval(start, stop, count);
15132
+ const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop
15133
+ return reverse ? ticks.reverse() : ticks;
15134
+ }
15135
+
15136
+ function tickInterval(start, stop, count) {
15137
+ const target = Math.abs(stop - start) / count;
15138
+ const i = bisector(([,, step]) => step).right(tickIntervals, target);
15139
+ if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));
15140
+ if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));
15141
+ const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];
15142
+ return t.every(step);
15143
+ }
15144
+
15145
+ return [ticks, tickInterval];
15146
+ }
15147
+
15148
+ const [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);
15149
+ const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);
15150
+
15151
+ function localDate(d) {
15152
+ if (0 <= d.y && d.y < 100) {
15153
+ var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
15154
+ date.setFullYear(d.y);
15155
+ return date;
15156
+ }
15157
+ return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
15158
+ }
15159
+
15160
+ function utcDate(d) {
15161
+ if (0 <= d.y && d.y < 100) {
15162
+ var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
15163
+ date.setUTCFullYear(d.y);
15164
+ return date;
15165
+ }
15166
+ return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
15167
+ }
15168
+
15169
+ function newDate(y, m, d) {
15170
+ return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};
15171
+ }
15172
+
15173
+ function formatLocale(locale) {
15174
+ var locale_dateTime = locale.dateTime,
15175
+ locale_date = locale.date,
15176
+ locale_time = locale.time,
15177
+ locale_periods = locale.periods,
15178
+ locale_weekdays = locale.days,
15179
+ locale_shortWeekdays = locale.shortDays,
15180
+ locale_months = locale.months,
15181
+ locale_shortMonths = locale.shortMonths;
15182
+
15183
+ var periodRe = formatRe(locale_periods),
15184
+ periodLookup = formatLookup(locale_periods),
15185
+ weekdayRe = formatRe(locale_weekdays),
15186
+ weekdayLookup = formatLookup(locale_weekdays),
15187
+ shortWeekdayRe = formatRe(locale_shortWeekdays),
15188
+ shortWeekdayLookup = formatLookup(locale_shortWeekdays),
15189
+ monthRe = formatRe(locale_months),
15190
+ monthLookup = formatLookup(locale_months),
15191
+ shortMonthRe = formatRe(locale_shortMonths),
15192
+ shortMonthLookup = formatLookup(locale_shortMonths);
15193
+
15194
+ var formats = {
15195
+ "a": formatShortWeekday,
15196
+ "A": formatWeekday,
15197
+ "b": formatShortMonth,
15198
+ "B": formatMonth,
15199
+ "c": null,
15200
+ "d": formatDayOfMonth,
15201
+ "e": formatDayOfMonth,
15202
+ "f": formatMicroseconds,
15203
+ "g": formatYearISO,
15204
+ "G": formatFullYearISO,
15205
+ "H": formatHour24,
15206
+ "I": formatHour12,
15207
+ "j": formatDayOfYear,
15208
+ "L": formatMilliseconds,
15209
+ "m": formatMonthNumber,
15210
+ "M": formatMinutes,
15211
+ "p": formatPeriod,
15212
+ "q": formatQuarter,
15213
+ "Q": formatUnixTimestamp,
15214
+ "s": formatUnixTimestampSeconds,
15215
+ "S": formatSeconds,
15216
+ "u": formatWeekdayNumberMonday,
15217
+ "U": formatWeekNumberSunday,
15218
+ "V": formatWeekNumberISO,
15219
+ "w": formatWeekdayNumberSunday,
15220
+ "W": formatWeekNumberMonday,
15221
+ "x": null,
15222
+ "X": null,
15223
+ "y": formatYear,
15224
+ "Y": formatFullYear,
15225
+ "Z": formatZone,
15226
+ "%": formatLiteralPercent
15227
+ };
15228
+
15229
+ var utcFormats = {
15230
+ "a": formatUTCShortWeekday,
15231
+ "A": formatUTCWeekday,
15232
+ "b": formatUTCShortMonth,
15233
+ "B": formatUTCMonth,
15234
+ "c": null,
15235
+ "d": formatUTCDayOfMonth,
15236
+ "e": formatUTCDayOfMonth,
15237
+ "f": formatUTCMicroseconds,
15238
+ "g": formatUTCYearISO,
15239
+ "G": formatUTCFullYearISO,
15240
+ "H": formatUTCHour24,
15241
+ "I": formatUTCHour12,
15242
+ "j": formatUTCDayOfYear,
15243
+ "L": formatUTCMilliseconds,
15244
+ "m": formatUTCMonthNumber,
15245
+ "M": formatUTCMinutes,
15246
+ "p": formatUTCPeriod,
15247
+ "q": formatUTCQuarter,
15248
+ "Q": formatUnixTimestamp,
15249
+ "s": formatUnixTimestampSeconds,
15250
+ "S": formatUTCSeconds,
15251
+ "u": formatUTCWeekdayNumberMonday,
15252
+ "U": formatUTCWeekNumberSunday,
15253
+ "V": formatUTCWeekNumberISO,
15254
+ "w": formatUTCWeekdayNumberSunday,
15255
+ "W": formatUTCWeekNumberMonday,
15256
+ "x": null,
15257
+ "X": null,
15258
+ "y": formatUTCYear,
15259
+ "Y": formatUTCFullYear,
15260
+ "Z": formatUTCZone,
15261
+ "%": formatLiteralPercent
15262
+ };
15263
+
15264
+ var parses = {
15265
+ "a": parseShortWeekday,
15266
+ "A": parseWeekday,
15267
+ "b": parseShortMonth,
15268
+ "B": parseMonth,
15269
+ "c": parseLocaleDateTime,
15270
+ "d": parseDayOfMonth,
15271
+ "e": parseDayOfMonth,
15272
+ "f": parseMicroseconds,
15273
+ "g": parseYear,
15274
+ "G": parseFullYear,
15275
+ "H": parseHour24,
15276
+ "I": parseHour24,
15277
+ "j": parseDayOfYear,
15278
+ "L": parseMilliseconds,
15279
+ "m": parseMonthNumber,
15280
+ "M": parseMinutes,
15281
+ "p": parsePeriod,
15282
+ "q": parseQuarter,
15283
+ "Q": parseUnixTimestamp,
15284
+ "s": parseUnixTimestampSeconds,
15285
+ "S": parseSeconds,
15286
+ "u": parseWeekdayNumberMonday,
15287
+ "U": parseWeekNumberSunday,
15288
+ "V": parseWeekNumberISO,
15289
+ "w": parseWeekdayNumberSunday,
15290
+ "W": parseWeekNumberMonday,
15291
+ "x": parseLocaleDate,
15292
+ "X": parseLocaleTime,
15293
+ "y": parseYear,
15294
+ "Y": parseFullYear,
15295
+ "Z": parseZone,
15296
+ "%": parseLiteralPercent
15297
+ };
15298
+
15299
+ // These recursive directive definitions must be deferred.
15300
+ formats.x = newFormat(locale_date, formats);
15301
+ formats.X = newFormat(locale_time, formats);
15302
+ formats.c = newFormat(locale_dateTime, formats);
15303
+ utcFormats.x = newFormat(locale_date, utcFormats);
15304
+ utcFormats.X = newFormat(locale_time, utcFormats);
15305
+ utcFormats.c = newFormat(locale_dateTime, utcFormats);
15306
+
15307
+ function newFormat(specifier, formats) {
15308
+ return function(date) {
15309
+ var string = [],
15310
+ i = -1,
15311
+ j = 0,
15312
+ n = specifier.length,
15313
+ c,
15314
+ pad,
15315
+ format;
15316
+
15317
+ if (!(date instanceof Date)) date = new Date(+date);
15318
+
15319
+ while (++i < n) {
15320
+ if (specifier.charCodeAt(i) === 37) {
15321
+ string.push(specifier.slice(j, i));
15322
+ if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);
15323
+ else pad = c === "e" ? " " : "0";
15324
+ if (format = formats[c]) c = format(date, pad);
15325
+ string.push(c);
15326
+ j = i + 1;
15327
+ }
15328
+ }
15329
+
15330
+ string.push(specifier.slice(j, i));
15331
+ return string.join("");
15332
+ };
15333
+ }
15334
+
15335
+ function newParse(specifier, Z) {
15336
+ return function(string) {
15337
+ var d = newDate(1900, undefined, 1),
15338
+ i = parseSpecifier(d, specifier, string += "", 0),
15339
+ week, day;
15340
+ if (i != string.length) return null;
15341
+
15342
+ // If a UNIX timestamp is specified, return it.
15343
+ if ("Q" in d) return new Date(d.Q);
15344
+ if ("s" in d) return new Date(d.s * 1000 + ("L" in d ? d.L : 0));
15345
+
15346
+ // If this is utcParse, never use the local timezone.
15347
+ if (Z && !("Z" in d)) d.Z = 0;
15348
+
15349
+ // The am-pm flag is 0 for AM, and 1 for PM.
15350
+ if ("p" in d) d.H = d.H % 12 + d.p * 12;
15351
+
15352
+ // If the month was not specified, inherit from the quarter.
15353
+ if (d.m === undefined) d.m = "q" in d ? d.q : 0;
15354
+
15355
+ // Convert day-of-week and week-of-year to day-of-year.
15356
+ if ("V" in d) {
15357
+ if (d.V < 1 || d.V > 53) return null;
15358
+ if (!("w" in d)) d.w = 1;
15359
+ if ("Z" in d) {
15360
+ week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
15361
+ week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
15362
+ week = utcDay$2.offset(week, (d.V - 1) * 7);
15363
+ d.y = week.getUTCFullYear();
15364
+ d.m = week.getUTCMonth();
15365
+ d.d = week.getUTCDate() + (d.w + 6) % 7;
15366
+ } else {
15367
+ week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
15368
+ week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
15369
+ week = timeDay$1.offset(week, (d.V - 1) * 7);
15370
+ d.y = week.getFullYear();
15371
+ d.m = week.getMonth();
15372
+ d.d = week.getDate() + (d.w + 6) % 7;
15373
+ }
15374
+ } else if ("W" in d || "U" in d) {
15375
+ if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
15376
+ day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
15377
+ d.m = 0;
15378
+ d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
15379
+ }
15380
+
15381
+ // If a time zone is specified, all fields are interpreted as UTC and then
15382
+ // offset according to the specified time zone.
15383
+ if ("Z" in d) {
15384
+ d.H += d.Z / 100 | 0;
15385
+ d.M += d.Z % 100;
15386
+ return utcDate(d);
15387
+ }
15388
+
15389
+ // Otherwise, all fields are in local time.
15390
+ return localDate(d);
15391
+ };
15392
+ }
15393
+
15394
+ function parseSpecifier(d, specifier, string, j) {
15395
+ var i = 0,
15396
+ n = specifier.length,
15397
+ m = string.length,
15398
+ c,
15399
+ parse;
15400
+
15401
+ while (i < n) {
15402
+ if (j >= m) return -1;
15403
+ c = specifier.charCodeAt(i++);
15404
+ if (c === 37) {
15405
+ c = specifier.charAt(i++);
15406
+ parse = parses[c in pads ? specifier.charAt(i++) : c];
15407
+ if (!parse || ((j = parse(d, string, j)) < 0)) return -1;
15408
+ } else if (c != string.charCodeAt(j++)) {
15409
+ return -1;
15410
+ }
15411
+ }
15412
+
15413
+ return j;
15414
+ }
15415
+
15416
+ function parsePeriod(d, string, i) {
15417
+ var n = periodRe.exec(string.slice(i));
15418
+ return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;
15419
+ }
15420
+
15421
+ function parseShortWeekday(d, string, i) {
15422
+ var n = shortWeekdayRe.exec(string.slice(i));
15423
+ return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
15424
+ }
15425
+
15426
+ function parseWeekday(d, string, i) {
15427
+ var n = weekdayRe.exec(string.slice(i));
15428
+ return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;
15429
+ }
15430
+
15431
+ function parseShortMonth(d, string, i) {
15432
+ var n = shortMonthRe.exec(string.slice(i));
15433
+ return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
15434
+ }
15435
+
15436
+ function parseMonth(d, string, i) {
15437
+ var n = monthRe.exec(string.slice(i));
15438
+ return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;
15439
+ }
15440
+
15441
+ function parseLocaleDateTime(d, string, i) {
15442
+ return parseSpecifier(d, locale_dateTime, string, i);
15443
+ }
15444
+
15445
+ function parseLocaleDate(d, string, i) {
15446
+ return parseSpecifier(d, locale_date, string, i);
15447
+ }
15448
+
15449
+ function parseLocaleTime(d, string, i) {
15450
+ return parseSpecifier(d, locale_time, string, i);
15451
+ }
15452
+
15453
+ function formatShortWeekday(d) {
15454
+ return locale_shortWeekdays[d.getDay()];
15455
+ }
15456
+
15457
+ function formatWeekday(d) {
15458
+ return locale_weekdays[d.getDay()];
15459
+ }
15460
+
15461
+ function formatShortMonth(d) {
15462
+ return locale_shortMonths[d.getMonth()];
15463
+ }
15464
+
15465
+ function formatMonth(d) {
15466
+ return locale_months[d.getMonth()];
15467
+ }
15468
+
15469
+ function formatPeriod(d) {
15470
+ return locale_periods[+(d.getHours() >= 12)];
15471
+ }
15472
+
15473
+ function formatQuarter(d) {
15474
+ return 1 + ~~(d.getMonth() / 3);
15475
+ }
15476
+
15477
+ function formatUTCShortWeekday(d) {
15478
+ return locale_shortWeekdays[d.getUTCDay()];
15479
+ }
15480
+
15481
+ function formatUTCWeekday(d) {
15482
+ return locale_weekdays[d.getUTCDay()];
15483
+ }
15484
+
15485
+ function formatUTCShortMonth(d) {
15486
+ return locale_shortMonths[d.getUTCMonth()];
15487
+ }
15488
+
15489
+ function formatUTCMonth(d) {
15490
+ return locale_months[d.getUTCMonth()];
15491
+ }
15492
+
15493
+ function formatUTCPeriod(d) {
15494
+ return locale_periods[+(d.getUTCHours() >= 12)];
15495
+ }
15496
+
15497
+ function formatUTCQuarter(d) {
15498
+ return 1 + ~~(d.getUTCMonth() / 3);
15499
+ }
15500
+
15501
+ return {
15502
+ format: function(specifier) {
15503
+ var f = newFormat(specifier += "", formats);
15504
+ f.toString = function() { return specifier; };
15505
+ return f;
15506
+ },
15507
+ parse: function(specifier) {
15508
+ var p = newParse(specifier += "", false);
15509
+ p.toString = function() { return specifier; };
15510
+ return p;
15511
+ },
15512
+ utcFormat: function(specifier) {
15513
+ var f = newFormat(specifier += "", utcFormats);
15514
+ f.toString = function() { return specifier; };
15515
+ return f;
15516
+ },
15517
+ utcParse: function(specifier) {
15518
+ var p = newParse(specifier += "", true);
15519
+ p.toString = function() { return specifier; };
15520
+ return p;
15521
+ }
15522
+ };
15523
+ }
15524
+
15525
+ var pads = {"-": "", "_": " ", "0": "0"},
15526
+ numberRe = /^\s*\d+/, // note: ignores next directive
15527
+ percentRe = /^%/,
15528
+ requoteRe = /[\\^$*+?|[\]().{}]/g;
15529
+
15530
+ function pad(value, fill, width) {
15531
+ var sign = value < 0 ? "-" : "",
15532
+ string = (sign ? -value : value) + "",
15533
+ length = string.length;
15534
+ return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
15535
+ }
15536
+
15537
+ function requote(s) {
15538
+ return s.replace(requoteRe, "\\$&");
15539
+ }
15540
+
15541
+ function formatRe(names) {
15542
+ return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
15543
+ }
15544
+
15545
+ function formatLookup(names) {
15546
+ var map = {}, i = -1, n = names.length;
15547
+ while (++i < n) map[names[i].toLowerCase()] = i;
15548
+ return map;
15549
+ }
15550
+
15551
+ function parseWeekdayNumberSunday(d, string, i) {
15552
+ var n = numberRe.exec(string.slice(i, i + 1));
15553
+ return n ? (d.w = +n[0], i + n[0].length) : -1;
15554
+ }
15555
+
15556
+ function parseWeekdayNumberMonday(d, string, i) {
15557
+ var n = numberRe.exec(string.slice(i, i + 1));
15558
+ return n ? (d.u = +n[0], i + n[0].length) : -1;
15559
+ }
15560
+
15561
+ function parseWeekNumberSunday(d, string, i) {
15562
+ var n = numberRe.exec(string.slice(i, i + 2));
15563
+ return n ? (d.U = +n[0], i + n[0].length) : -1;
15564
+ }
15565
+
15566
+ function parseWeekNumberISO(d, string, i) {
15567
+ var n = numberRe.exec(string.slice(i, i + 2));
15568
+ return n ? (d.V = +n[0], i + n[0].length) : -1;
15569
+ }
15570
+
15571
+ function parseWeekNumberMonday(d, string, i) {
15572
+ var n = numberRe.exec(string.slice(i, i + 2));
15573
+ return n ? (d.W = +n[0], i + n[0].length) : -1;
15574
+ }
15575
+
15576
+ function parseFullYear(d, string, i) {
15577
+ var n = numberRe.exec(string.slice(i, i + 4));
15578
+ return n ? (d.y = +n[0], i + n[0].length) : -1;
15579
+ }
15580
+
15581
+ function parseYear(d, string, i) {
15582
+ var n = numberRe.exec(string.slice(i, i + 2));
15583
+ return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;
15584
+ }
15585
+
15586
+ function parseZone(d, string, i) {
15587
+ var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string.slice(i, i + 6));
15588
+ return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i + n[0].length) : -1;
15589
+ }
15590
+
15591
+ function parseQuarter(d, string, i) {
15592
+ var n = numberRe.exec(string.slice(i, i + 1));
15593
+ return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;
15594
+ }
15595
+
15596
+ function parseMonthNumber(d, string, i) {
15597
+ var n = numberRe.exec(string.slice(i, i + 2));
15598
+ return n ? (d.m = n[0] - 1, i + n[0].length) : -1;
15599
+ }
15600
+
15601
+ function parseDayOfMonth(d, string, i) {
15602
+ var n = numberRe.exec(string.slice(i, i + 2));
15603
+ return n ? (d.d = +n[0], i + n[0].length) : -1;
15604
+ }
15605
+
15606
+ function parseDayOfYear(d, string, i) {
15607
+ var n = numberRe.exec(string.slice(i, i + 3));
15608
+ return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;
15609
+ }
15610
+
15611
+ function parseHour24(d, string, i) {
15612
+ var n = numberRe.exec(string.slice(i, i + 2));
15613
+ return n ? (d.H = +n[0], i + n[0].length) : -1;
15614
+ }
15615
+
15616
+ function parseMinutes(d, string, i) {
15617
+ var n = numberRe.exec(string.slice(i, i + 2));
15618
+ return n ? (d.M = +n[0], i + n[0].length) : -1;
15619
+ }
15620
+
15621
+ function parseSeconds(d, string, i) {
15622
+ var n = numberRe.exec(string.slice(i, i + 2));
15623
+ return n ? (d.S = +n[0], i + n[0].length) : -1;
15624
+ }
15625
+
15626
+ function parseMilliseconds(d, string, i) {
15627
+ var n = numberRe.exec(string.slice(i, i + 3));
15628
+ return n ? (d.L = +n[0], i + n[0].length) : -1;
15629
+ }
15630
+
15631
+ function parseMicroseconds(d, string, i) {
15632
+ var n = numberRe.exec(string.slice(i, i + 6));
15633
+ return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;
15634
+ }
15635
+
15636
+ function parseLiteralPercent(d, string, i) {
15637
+ var n = percentRe.exec(string.slice(i, i + 1));
15638
+ return n ? i + n[0].length : -1;
15639
+ }
15640
+
15641
+ function parseUnixTimestamp(d, string, i) {
15642
+ var n = numberRe.exec(string.slice(i));
15643
+ return n ? (d.Q = +n[0], i + n[0].length) : -1;
15644
+ }
15645
+
15646
+ function parseUnixTimestampSeconds(d, string, i) {
15647
+ var n = numberRe.exec(string.slice(i));
15648
+ return n ? (d.s = +n[0], i + n[0].length) : -1;
15649
+ }
15650
+
15651
+ function formatDayOfMonth(d, p) {
15652
+ return pad(d.getDate(), p, 2);
15653
+ }
15654
+
15655
+ function formatHour24(d, p) {
15656
+ return pad(d.getHours(), p, 2);
15657
+ }
15658
+
15659
+ function formatHour12(d, p) {
15660
+ return pad(d.getHours() % 12 || 12, p, 2);
15661
+ }
15662
+
15663
+ function formatDayOfYear(d, p) {
15664
+ return pad(1 + timeDay$1.count(timeYear$1(d), d), p, 3);
15665
+ }
15666
+
15667
+ function formatMilliseconds(d, p) {
15668
+ return pad(d.getMilliseconds(), p, 3);
15669
+ }
15670
+
15671
+ function formatMicroseconds(d, p) {
15672
+ return formatMilliseconds(d, p) + "000";
15673
+ }
15674
+
15675
+ function formatMonthNumber(d, p) {
15676
+ return pad(d.getMonth() + 1, p, 2);
15677
+ }
15678
+
15679
+ function formatMinutes(d, p) {
15680
+ return pad(d.getMinutes(), p, 2);
15681
+ }
15682
+
15683
+ function formatSeconds(d, p) {
15684
+ return pad(d.getSeconds(), p, 2);
15685
+ }
15686
+
15687
+ function formatWeekdayNumberMonday(d) {
15688
+ var day = d.getDay();
15689
+ return day === 0 ? 7 : day;
15690
+ }
15691
+
15692
+ function formatWeekNumberSunday(d, p) {
15693
+ return pad(sunday.count(timeYear$1(d) - 1, d), p, 2);
15694
+ }
15695
+
15696
+ function dISO(d) {
15697
+ var day = d.getDay();
15698
+ return (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d);
15699
+ }
15700
+
15701
+ function formatWeekNumberISO(d, p) {
15702
+ d = dISO(d);
15703
+ return pad(thursday.count(timeYear$1(d), d) + (timeYear$1(d).getDay() === 4), p, 2);
15704
+ }
15705
+
15706
+ function formatWeekdayNumberSunday(d) {
15707
+ return d.getDay();
15708
+ }
15709
+
15710
+ function formatWeekNumberMonday(d, p) {
15711
+ return pad(monday.count(timeYear$1(d) - 1, d), p, 2);
15712
+ }
15713
+
15714
+ function formatYear(d, p) {
15715
+ return pad(d.getFullYear() % 100, p, 2);
15716
+ }
15717
+
15718
+ function formatYearISO(d, p) {
15719
+ d = dISO(d);
15720
+ return pad(d.getFullYear() % 100, p, 2);
15721
+ }
15722
+
15723
+ function formatFullYear(d, p) {
15724
+ return pad(d.getFullYear() % 10000, p, 4);
15725
+ }
15726
+
15727
+ function formatFullYearISO(d, p) {
15728
+ var day = d.getDay();
15729
+ d = (day >= 4 || day === 0) ? thursday(d) : thursday.ceil(d);
15730
+ return pad(d.getFullYear() % 10000, p, 4);
15731
+ }
15732
+
15733
+ function formatZone(d) {
15734
+ var z = d.getTimezoneOffset();
15735
+ return (z > 0 ? "-" : (z *= -1, "+"))
15736
+ + pad(z / 60 | 0, "0", 2)
15737
+ + pad(z % 60, "0", 2);
15738
+ }
15739
+
15740
+ function formatUTCDayOfMonth(d, p) {
15741
+ return pad(d.getUTCDate(), p, 2);
15742
+ }
15743
+
15744
+ function formatUTCHour24(d, p) {
15745
+ return pad(d.getUTCHours(), p, 2);
15746
+ }
15747
+
15748
+ function formatUTCHour12(d, p) {
15749
+ return pad(d.getUTCHours() % 12 || 12, p, 2);
15750
+ }
15751
+
15752
+ function formatUTCDayOfYear(d, p) {
15753
+ return pad(1 + utcDay$2.count(utcYear$2(d), d), p, 3);
15754
+ }
15755
+
15756
+ function formatUTCMilliseconds(d, p) {
15757
+ return pad(d.getUTCMilliseconds(), p, 3);
15758
+ }
15759
+
15760
+ function formatUTCMicroseconds(d, p) {
15761
+ return formatUTCMilliseconds(d, p) + "000";
15762
+ }
15763
+
15764
+ function formatUTCMonthNumber(d, p) {
15765
+ return pad(d.getUTCMonth() + 1, p, 2);
15766
+ }
15767
+
15768
+ function formatUTCMinutes(d, p) {
15769
+ return pad(d.getUTCMinutes(), p, 2);
15770
+ }
15771
+
15772
+ function formatUTCSeconds(d, p) {
15773
+ return pad(d.getUTCSeconds(), p, 2);
15774
+ }
15775
+
15776
+ function formatUTCWeekdayNumberMonday(d) {
15777
+ var dow = d.getUTCDay();
15778
+ return dow === 0 ? 7 : dow;
15779
+ }
15780
+
15781
+ function formatUTCWeekNumberSunday(d, p) {
15782
+ return pad(utcSunday$1.count(utcYear$2(d) - 1, d), p, 2);
15783
+ }
15784
+
15785
+ function UTCdISO(d) {
15786
+ var day = d.getUTCDay();
15787
+ return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
15788
+ }
15789
+
15790
+ function formatUTCWeekNumberISO(d, p) {
15791
+ d = UTCdISO(d);
15792
+ return pad(utcThursday.count(utcYear$2(d), d) + (utcYear$2(d).getUTCDay() === 4), p, 2);
15793
+ }
15794
+
15795
+ function formatUTCWeekdayNumberSunday(d) {
15796
+ return d.getUTCDay();
15797
+ }
15798
+
15799
+ function formatUTCWeekNumberMonday(d, p) {
15800
+ return pad(utcMonday.count(utcYear$2(d) - 1, d), p, 2);
15801
+ }
15802
+
15803
+ function formatUTCYear(d, p) {
15804
+ return pad(d.getUTCFullYear() % 100, p, 2);
15805
+ }
15806
+
15807
+ function formatUTCYearISO(d, p) {
15808
+ d = UTCdISO(d);
15809
+ return pad(d.getUTCFullYear() % 100, p, 2);
15810
+ }
15811
+
15812
+ function formatUTCFullYear(d, p) {
15813
+ return pad(d.getUTCFullYear() % 10000, p, 4);
15814
+ }
15815
+
15816
+ function formatUTCFullYearISO(d, p) {
15817
+ var day = d.getUTCDay();
15818
+ d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);
15819
+ return pad(d.getUTCFullYear() % 10000, p, 4);
15820
+ }
15821
+
15822
+ function formatUTCZone() {
15823
+ return "+0000";
15824
+ }
15825
+
15826
+ function formatLiteralPercent() {
15827
+ return "%";
15828
+ }
15829
+
15830
+ function formatUnixTimestamp(d) {
15831
+ return +d;
15832
+ }
15833
+
15834
+ function formatUnixTimestampSeconds(d) {
15835
+ return Math.floor(+d / 1000);
15836
+ }
15837
+
15838
+ var locale;
15839
+ var timeFormat$2;
15840
+ var utcFormat$1;
15841
+
15842
+ defaultLocale({
15843
+ dateTime: "%x, %X",
15844
+ date: "%-m/%-d/%Y",
15845
+ time: "%-I:%M:%S %p",
15846
+ periods: ["AM", "PM"],
15847
+ days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
15848
+ shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
15849
+ months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
15850
+ shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
15851
+ });
15852
+
15853
+ function defaultLocale(definition) {
15854
+ locale = formatLocale(definition);
15855
+ timeFormat$2 = locale.format;
15856
+ utcFormat$1 = locale.utcFormat;
15857
+ return locale;
15858
+ }
15859
+
14358
15860
  function date(t) {
14359
15861
  return new Date(t);
14360
15862
  }
@@ -14432,7 +15934,7 @@ function transformer$2() {
14432
15934
  t1,
14433
15935
  k10,
14434
15936
  transform,
14435
- interpolator = identity$2,
15937
+ interpolator = identity$3,
14436
15938
  clamp = false,
14437
15939
  unknown;
14438
15940
 
@@ -14482,7 +15984,7 @@ function copy$1(source, target) {
14482
15984
  }
14483
15985
 
14484
15986
  function sequential() {
14485
- var scale = linearish(transformer$2()(identity$2));
15987
+ var scale = linearish(transformer$2()(identity$3));
14486
15988
 
14487
15989
  scale.copy = function() {
14488
15990
  return copy$1(scale, sequential());
@@ -14535,7 +16037,7 @@ function transformer$1() {
14535
16037
  t2,
14536
16038
  k10,
14537
16039
  k21,
14538
- interpolator = identity$2,
16040
+ interpolator = identity$3,
14539
16041
  transform,
14540
16042
  clamp = false,
14541
16043
  unknown;
@@ -14578,7 +16080,7 @@ function transformer$1() {
14578
16080
  }
14579
16081
 
14580
16082
  function diverging() {
14581
- var scale = linearish(transformer$1()(identity$2));
16083
+ var scale = linearish(transformer$1()(identity$3));
14582
16084
 
14583
16085
  scale.copy = function() {
14584
16086
  return copy$1(scale, diverging());
@@ -15203,7 +16705,7 @@ function tickCount(scale, count, minStep) {
15203
16705
  count = count.interval;
15204
16706
  }
15205
16707
  if (isString(count)) {
15206
- count = scale.type === Time ? timeInterval(count) : scale.type == UTC ? utcInterval(count) : error$1('Only time and utc scales accept interval strings.');
16708
+ count = scale.type === Time ? timeInterval$1(count) : scale.type == UTC ? utcInterval(count) : error$1('Only time and utc scales accept interval strings.');
15207
16709
  if (step) count = count.every(step);
15208
16710
  }
15209
16711
  return count;
@@ -25905,7 +27407,7 @@ inherits(Isocontour, Transform, {
25905
27407
  }
25906
27408
  var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
25907
27409
  source = pulse.materialize(pulse.SOURCE).source,
25908
- field = _.field || identity$6,
27410
+ field = _.field || identity$7,
25909
27411
  contour = contours().smooth(_.smooth !== false),
25910
27412
  tz = _.thresholds || levels(source, field, _),
25911
27413
  as = _.as === null ? null : _.as || 'contour',
@@ -26383,7 +27885,7 @@ inherits(GeoJSON, Transform, {
26383
27885
  fields = _.fields,
26384
27886
  lon = fields && fields[0],
26385
27887
  lat = fields && fields[1],
26386
- geojson = _.geojson || !fields && identity$6,
27888
+ geojson = _.geojson || !fields && identity$7,
26387
27889
  flag = pulse.ADD,
26388
27890
  mod;
26389
27891
  mod = _.modified() || pulse.changed(pulse.REM) || pulse.modified(accessorFields(geojson)) || lon && pulse.modified(accessorFields(lon)) || lat && pulse.modified(accessorFields(lat));
@@ -26457,7 +27959,7 @@ inherits(GeoPath, Transform, {
26457
27959
  transform(_, pulse) {
26458
27960
  var out = pulse.fork(pulse.ALL),
26459
27961
  path = this.value,
26460
- field = _.field || identity$6,
27962
+ field = _.field || identity$7,
26461
27963
  as = _.as || 'path',
26462
27964
  flag = out.SOURCE;
26463
27965
  if (!path || _.modified()) {
@@ -26465,7 +27967,7 @@ inherits(GeoPath, Transform, {
26465
27967
  this.value = path = getProjectionPath(_.projection);
26466
27968
  out.materialize().reflow();
26467
27969
  } else {
26468
- flag = field === identity$6 || pulse.modified(field.fields) ? out.ADD_MOD : out.ADD;
27970
+ flag = field === identity$7 || pulse.modified(field.fields) ? out.ADD_MOD : out.ADD;
26469
27971
  }
26470
27972
  const prev = initPath(path, _.pointRadius);
26471
27973
  out.visit(flag, t => t[as] = path(field(t)));
@@ -26762,7 +28264,7 @@ inherits(Heatmap, Transform, {
26762
28264
  }
26763
28265
  var source = pulse.materialize(pulse.SOURCE).source,
26764
28266
  shared = _.resolve === 'shared',
26765
- field = _.field || identity$6,
28267
+ field = _.field || identity$7,
26766
28268
  opacity = opacity_(_.opacity, _),
26767
28269
  color = color_(_.color, _),
26768
28270
  as = _.as || 'image',
@@ -36410,7 +37912,7 @@ function scaleGradient (scale, p0, p1, count, group) {
36410
37912
  let stops = scale.domain(),
36411
37913
  min = stops[0],
36412
37914
  max = peek$1(stops),
36413
- fraction = identity$6;
37915
+ fraction = identity$7;
36414
37916
  if (!(max - min)) {
36415
37917
  // expand scale if domain has zero span, fix #1479
36416
37918
  scale = (scale.interpolator ? scale$4('sequential')().interpolator(scale.interpolator()) : scale$4('linear')().interpolate(scale.interpolate()).range(scale.range())).domain([min = 0, max = 1]);
@@ -36625,7 +38127,7 @@ const functionContext = {
36625
38127
  flush,
36626
38128
  lerp,
36627
38129
  merge,
36628
- pad: pad$2,
38130
+ pad: pad$3,
36629
38131
  peek: peek$1,
36630
38132
  pluck,
36631
38133
  span,
@@ -38390,7 +39892,7 @@ function View$1(spec, options) {
38390
39892
  if (options.logLevel != null) view.logLevel(options.logLevel);
38391
39893
  if (options.locale || spec.locale) {
38392
39894
  const loc = extend$1({}, spec.locale, options.locale);
38393
- view.locale(locale(loc.number, loc.time));
39895
+ view.locale(locale$2(loc.number, loc.time));
38394
39896
  }
38395
39897
  view._el = null;
38396
39898
  view._elBind = null;
@@ -42678,9 +44180,9 @@ const vegaImport = /*#__PURE__*/Object.freeze({
42678
44180
  scheme: scheme$1,
42679
44181
  projection: projection,
42680
44182
  View: View$1,
42681
- defaultLocale: defaultLocale,
44183
+ defaultLocale: defaultLocale$2,
42682
44184
  formatLocale: numberFormatDefaultLocale,
42683
- locale: locale,
44185
+ locale: locale$2,
42684
44186
  resetDefaultLocale: resetDefaultLocale,
42685
44187
  timeFormatLocale: timeFormatDefaultLocale,
42686
44188
  expressionFunction: expressionFunction,
@@ -42713,7 +44215,7 @@ const vegaImport = /*#__PURE__*/Object.freeze({
42713
44215
  flush: flush,
42714
44216
  hasOwnProperty: has$1,
42715
44217
  id: id,
42716
- identity: identity$6,
44218
+ identity: identity$7,
42717
44219
  inherits: inherits,
42718
44220
  inrange: inrange,
42719
44221
  isArray: isArray,
@@ -42732,7 +44234,7 @@ const vegaImport = /*#__PURE__*/Object.freeze({
42732
44234
  merge: merge$3,
42733
44235
  mergeConfig: mergeConfig,
42734
44236
  one: one$2,
42735
- pad: pad$2,
44237
+ pad: pad$3,
42736
44238
  panLinear: panLinear,
42737
44239
  panLog: panLog,
42738
44240
  panPow: panPow,
@@ -42809,7 +44311,7 @@ const vegaImport = /*#__PURE__*/Object.freeze({
42809
44311
  dayofyear: dayofyear,
42810
44312
  timeBin: bin$2,
42811
44313
  timeFloor: timeFloor,
42812
- timeInterval: timeInterval,
44314
+ timeInterval: timeInterval$1,
42813
44315
  timeOffset: timeOffset,
42814
44316
  timeSequence: timeSequence,
42815
44317
  timeUnitSpecifier: timeUnitSpecifier,
@@ -42821,7 +44323,7 @@ const vegaImport = /*#__PURE__*/Object.freeze({
42821
44323
  utcdayofyear: utcdayofyear,
42822
44324
  utcweek: utcweek,
42823
44325
  week: week,
42824
- format: format$2,
44326
+ format: format$3,
42825
44327
  formats: formats$1,
42826
44328
  inferType: inferType,
42827
44329
  inferTypes: inferTypes,
@@ -51925,7 +53427,7 @@ function assembleProjection(proj) {
51925
53427
  rest.field = replacePathInField(rest.field);
51926
53428
  return rest;
51927
53429
  }
51928
- function assembleInit(init, isExpr = true, wrap = identity$6) {
53430
+ function assembleInit(init, isExpr = true, wrap = identity$7) {
51929
53431
  if (isArray(init)) {
51930
53432
  const assembled = init.map(v => assembleInit(v, isExpr, wrap));
51931
53433
  return isExpr ? `[${assembled.join(', ')}]` : assembled;