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