@d3plus/format 3.0.0-alpha.1 → 3.0.0-alpha.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.
package/README.md CHANGED
@@ -13,7 +13,7 @@ import modules from "@d3plus/format";
13
13
  In vanilla JavaScript, a `d3plus` global is exported from the pre-bundled version:
14
14
 
15
15
  ```html
16
- <script src="https://cdn.jsdelivr.net/npm/@d3plus/format@3.0.0-alpha.1"></script>
16
+ <script src="https://cdn.jsdelivr.net/npm/@d3plus/format@3.0.0-alpha.3"></script>
17
17
  <script>
18
18
  console.log(d3plus);
19
19
  </script>
@@ -27,9 +27,6 @@ Live examples can be found on [d3plus.org](https://d3plus.org/), which includes
27
27
 
28
28
  #####
29
29
  * [format](#format) - An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
30
-
31
- The new specifier strings added by d3plus-format are:
32
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
33
30
  * [formatAbbreviate](#formatAbbreviate) - Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `"1.2M"`).
34
31
  * [formatDate](#formatDate) - A default set of date formatters, which takes into account both the interval in between in each data point but also the start/end data points.
35
32
  * [formatDefaultLocale](#formatDefaultLocale) - An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.
@@ -41,9 +38,6 @@ The new specifier strings added by d3plus-format are:
41
38
 
42
39
  An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
43
40
 
44
- The new specifier strings added by d3plus-format are:
45
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
46
-
47
41
 
48
42
  This is a global function
49
43
 
@@ -79,5 +73,3 @@ This is a global function
79
73
 
80
74
  ---
81
75
 
82
-
83
- ###### <sub>Documentation generated on Wed, 02 Apr 2025 20:15:51 GMT</sub>
package/es/src/format.js CHANGED
@@ -3,9 +3,6 @@ import { format } from "d3-format";
3
3
  /**
4
4
  @function format
5
5
  @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
6
-
7
- The new specifier strings added by d3plus-format are:
8
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
9
6
  @param {String} specifier The string specifier used by the format function.
10
7
  @returns {Function}
11
8
  */ export default function(specifier) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@d3plus/format",
3
- "version": "3.0.0-alpha.1",
3
+ "version": "3.0.0-alpha.3",
4
4
  "description": "JavaScript formatters for localized numbers and dates.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -34,7 +34,7 @@
34
34
  "test": "eslint index.js src/**/*.js && eslint --global=it test && mocha 'test/**/*-test.js'"
35
35
  },
36
36
  "dependencies": {
37
- "@d3plus/locales": "3.0.0-alpha.1",
37
+ "@d3plus/locales": "3.0.0-alpha.3",
38
38
  "d3-format": "^3.1.0",
39
39
  "d3-time": "^3.1.0",
40
40
  "d3-time-format": "^4.1.0"
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/format v3.0.0-alpha.1
2
+ @d3plus/format v3.0.0-alpha.3
3
3
  JavaScript formatters for localized numbers and dates.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -379,14 +379,6 @@
379
379
  /**
380
380
  @namespace {Object} formatLocale
381
381
  @desc A set of default locale formatters used when assigning suffixes and currency in numbers.
382
- *
383
- * | Name | Default | Description |
384
- * |---|---|---|
385
- * | separator | "" | Separation between the number with the suffix. |
386
- * | suffixes | [] | List of suffixes used to format numbers. |
387
- * | grouping | [3] | The array of group sizes, |
388
- * | delimiters | {thousands: ",", decimal: "."} | Decimal and group separators. |
389
- * | currency | ["$", ""] | The currency prefix and suffix. |
390
382
  */ var defaultLocale$1 = {
391
383
  "ar-SA": {
392
384
  separator: "",
@@ -787,9 +779,6 @@
787
779
  /**
788
780
  @function format
789
781
  @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
790
-
791
- The new specifier strings added by d3plus-format are:
792
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
793
782
  @param {String} specifier The string specifier used by the format function.
794
783
  @returns {Function}
795
784
  */ var format = ((specifier)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"d3plus-format.full.js","sources":["../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../locales/es/src/dictionaries/formatLocale.js","../src/formatAbbreviate.js","../src/format.js","../src/formatDefaultLocale.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../src/formatDate.js"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","/**\n @namespace {Object} formatLocale\n @desc A set of default locale formatters used when assigning suffixes and currency in numbers.\n *\n * | Name | Default | Description |\n * |---|---|---|\n * | separator | \"\" | Separation between the number with the suffix. |\n * | suffixes | [] | List of suffixes used to format numbers. |\n * | grouping | [3] | The array of group sizes, |\n * | delimiters | {thousands: \",\", decimal: \".\"} | Decimal and group separators. |\n * | currency | [\"$\", \"\"] | The currency prefix and suffix. |\n*/ export default {\n \"ar-SA\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \" ألف\",\n \" مليون\",\n \" بليون\",\n \" تريليون\",\n \" كوادريليون\",\n \" كوينتيليون\",\n \" سكستليون\",\n \"سبتيليون\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"SAR \",\n \"\"\n ]\n },\n \"en-GB\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"B\",\n \"T\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"£\",\n \"\"\n ]\n },\n \"en-US\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"B\",\n \"T\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"en-SA\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \" thousand\",\n \" million\",\n \" billion\",\n \" trillion\",\n \" quadrillion\",\n \" quintillion\",\n \" sextillion\",\n \"septillion\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-CL\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"MM\",\n \"B\",\n \"T\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \".\",\n decimal: \",\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-MX\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"MM\",\n \"B\",\n \"T\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-ES\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"mm\",\n \"b\",\n \"t\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \".\",\n decimal: \",\"\n },\n currency: [\n \"€\",\n \"\"\n ]\n },\n \"et-EE\": {\n separator: \" \",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"tuhat\",\n \"miljonit\",\n \"miljardit\",\n \"triljonit\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \" \",\n decimal: \",\"\n },\n currency: [\n \"\",\n \"eurot\"\n ]\n },\n \"fr-FR\": {\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"m\",\n \"b\",\n \"t\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \" \",\n decimal: \",\"\n },\n currency: [\n \"€\",\n \"\"\n ]\n },\n \"zh-CN\": {\n separator: \"\",\n suffixes: [\n \"幺\",\n \"仄\",\n \"阿\",\n \"飞\",\n \"皮\",\n \"纳\",\n \"微\",\n \"毫\",\n \"\",\n \"千\",\n \"兆\",\n \"吉\",\n \"太\",\n \"拍\",\n \"艾\",\n \"泽\",\n \"尧\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"¥\",\n \"\"\n ]\n }\n};\n","import {formatLocale} from \"d3-format\";\nimport {formatLocale as defaultLocale} from \"@d3plus/locales\";\n\nconst round = (x, n) =>\n parseFloat(Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toFixed(n);\n\n/**\n * @private\n*/\nfunction formatSuffix(str, precision, suffixes) {\n let i = 0;\n let value = parseFloat(str.replace(\"−\", \"-\"), 10);\n if (value) {\n if (value < 0) value *= -1;\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n const d = suffixes[8 + i / 3];\n\n return {\n number: round(d.scale(value), precision),\n symbol: d.symbol\n };\n}\n\n/**\n * @private\n*/\nfunction parseSuffixes(d, i) {\n const k = Math.pow(10, Math.abs(8 - i) * 3);\n return {\n scale: i > 8 ? d => d / k : d => d * k,\n symbol: d\n };\n}\n\n\n/**\n @function formatAbbreviate\n @desc Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `\"1.2M\"`).\n @param {Number|String} n The number to be formatted.\n @param {Object|String} locale The locale config to be used. If *value* is an object, the function will format the numbers according the object. The object must include `suffixes`, `delimiter` and `currency` properties.\n @returns {String}\n*/\nexport default function(n, locale = \"en-US\", precision = undefined) {\n if (isFinite(n)) n *= 1;\n else return \"N/A\";\n\n const negative = n < 0;\n\n const length = n.toString().split(\".\")[0].replace(\"-\", \"\").length,\n localeConfig = typeof locale === \"object\" ? locale : defaultLocale[locale] || defaultLocale[\"en-US\"],\n suffixes = localeConfig.suffixes.map(parseSuffixes);\n\n const decimal = localeConfig.delimiters.decimal || \".\",\n separator = localeConfig.separator || \"\",\n thousands = localeConfig.delimiters.thousands || \",\";\n\n const d3plusFormatLocale = formatLocale({\n currency: localeConfig.currency || [\"$\", \"\"],\n decimal,\n grouping: localeConfig.grouping || [3],\n thousands\n });\n\n let val;\n if (precision) val = d3plusFormatLocale.format(precision)(n);\n else if (n === 0) val = \"0\";\n else if (length >= 3) {\n const f = formatSuffix(d3plusFormatLocale.format(\".3r\")(n), 2, suffixes);\n const num = parseFloat(f.number).toString().replace(\".\", decimal);\n const char = f.symbol;\n val = `${num}${separator}${char}`;\n }\n else if (length === 3) val = d3plusFormatLocale.format(\",f\")(n);\n else if (n < 1 && n > -1) val = d3plusFormatLocale.format(\".2g\")(n);\n else val = d3plusFormatLocale.format(\".3g\")(n);\n\n return `${negative && val.charAt(0) !== \"−\" ? \"−\" : \"\"}${val}`\n .replace(/−/g, \"-\") // replace new d3 default minus sign (−) to hyphen-minus (-)\n .replace(/(\\.[0]*[1-9]*)[0]*$/g, \"$1\") // removes any trailing zeros\n .replace(/\\.[0]*$/g, \"\"); // removes any trailing decimal point\n\n}\n","import abbreviate from \"./formatAbbreviate.js\";\nimport {format} from \"d3-format\";\n\n/**\n @function format\n @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.\n\nThe new specifier strings added by d3plus-format are:\n - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. \"k\", \"M\", \"B\", etc). This is an alias of the `formatAbbreviate` function.\n @param {String} specifier The string specifier used by the format function.\n @returns {Function}\n*/\nexport default specifier => {\n if (specifier === \".3~a\") return abbreviate;\n return format(specifier);\n};\n","import format from \"./format.js\";\nimport {formatDefaultLocale} from \"d3-format\";\n\n/**\n @function formatDefaultLocale\n @desc An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.\n @param {Object} definition The localization definition.\n @returns {Object}\n*/\nexport default definition => {\n const locale = formatDefaultLocale(definition);\n locale.format = format;\n return locale;\n};\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeHour, timeMinute, timeSecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\n\n/**\n @function formatDate\n @desc A default set of date formatters, which takes into account both the interval in between in each data point but also the start/end data points.\n @param {Date} d The date string to be formatted.\n @param {Array} dataArray The full array of ordered Date Objects.\n @param {Function} [formatter = d3.timeFormat] An optional instance of d3.timeFormat to be used for localization.\n @returns {String}\n*/\nexport default function(d, dataArray, formatter = timeFormat) {\n\n const formatHour = formatter(\"%I %p\"),\n formatMillisecond = formatter(\".%L\"),\n formatMinute = formatter(\"%I:%M\"),\n formatMonth = formatter(\"%b\"),\n formatMonthDay = formatter(\"%b %-d\"),\n formatMonthDayYear = formatter(\"%b %-d, %Y\"),\n formatMonthYear = formatter(\"%b %Y\"),\n formatQuarter = formatter(\"Q%q\"),\n formatQuarterYear = formatter(\"Q%q %Y\"),\n formatSecond = formatter(\":%S\"),\n formatYear = formatter(\"%Y\");\n\n const labelIndex = dataArray.findIndex(a => +a === +d);\n const firstOrLast = labelIndex === 0 || labelIndex === dataArray.length - 1;\n const smallArray = dataArray.length <= 5;\n\n const [yearlySteps, monthlySteps, dailySteps, hourlySteps] = dataArray.reduce((arr, d, i) => {\n if (i) {\n arr[0].push(d.getFullYear() - dataArray[i - 1].getFullYear());\n arr[1].push(monthDiff(dataArray[i - 1], d));\n arr[2].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60 * 24)));\n arr[3].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60)));\n }\n return arr;\n }, [[], [], [], []]);\n\n return (\n yearlySteps.every(s => s >= 1 && !(s % 1)) // Yearly Data \n ? formatYear\n : monthlySteps.every(s => s >= 3 && !(s % 3)) // Quarterly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatQuarterYear : formatQuarter\n : monthlySteps.every(s => s >= 1 && !(s % 1)) // Monthly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthYear : formatMonth \n : dailySteps.every(s => s >= 1 && !(s % 1)) // Daily Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthDayYear : formatMonthDay \n : hourlySteps.every(s => s >= 1 && !(s % 1)) // Hourly Data\n ? firstOrLast || smallArray ? formatMonthDayYear : +timeMonth(d) === d ? formatMonthDay : formatHour\n : timeSecond(d) < d ? formatMillisecond\n : timeMinute(d) < d ? formatSecond\n : timeHour(d) < d ? formatMinute : d\n )(d);\n\n}\n\n/**\n @function monthDiff\n @desc Returns the number of months between two Date objects\n @param {*} d1\n @param {*} d2\n @returns {Number} the number of months between the two Date objects\n @private\n*/\nfunction monthDiff(d1, d2) {\n let months;\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\n months -= d1.getMonth();\n months += d2.getMonth();\n return months <= 0 ? 0 : months;\n}\n"],"names":["x","Math","abs","round","toLocaleString","replace","toString","formatDecimalParts","p","i","toExponential","indexOf","coefficient","slice","length","NaN","grouping","thousands","value","width","t","j","g","max","push","substring","reverse","join","numerals","re","formatSpecifier","specifier","match","exec","Error","FormatSpecifier","fill","align","sign","symbol","zero","comma","precision","trim","type","prototype","undefined","s","out","n","i0","i1","prefixExponent","d","exponent","min","floor","Array","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","call","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","prefix","test","toLowerCase","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","isNaN","formatTrim","charCodeAt","Infinity","padding","formatPrefix","f","e","k","pow","defaultLocale","definition","formatLocale","separator","suffixes","delimiters","parseFloat","formatSuffix","str","log","LN10","number","scale","parseSuffixes","isFinite","negative","split","localeConfig","d3plusFormatLocale","val","num","char","charAt","abbreviate","formatDefaultLocale","t0","Date","t1","timeInterval","floori","offseti","count","field","interval","date","arguments","ceil","d0","d1","offset","step","range","start","stop","previous","filter","setTime","end","every","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","localDate","y","m","H","M","S","L","utcDate","UTC","newDate","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","X","string","pad","pads","newParse","Z","parseSpecifier","week","day","Q","q","V","w","u","W","U","parse","get","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","names","RegExp","Map","name","dISO","z","getUTCMilliseconds","dow","UTCdISO","timeFormat","timeParse","dataArray","formatter","formatHour","formatMillisecond","formatMinute","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarterYear","formatSecond","labelIndex","findIndex","a","firstOrLast","smallArray","yearlySteps","monthlySteps","dailySteps","hourlySteps","reduce","arr","monthDiff","timeSecond","d2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,16,17,18,19,20,21,22,23,24,25,26]}
1
+ {"version":3,"file":"d3plus-format.full.js","sources":["../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../locales/es/src/dictionaries/formatLocale.js","../src/formatAbbreviate.js","../src/format.js","../src/formatDefaultLocale.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../src/formatDate.js"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","/**\n @namespace {Object} formatLocale\n @desc A set of default locale formatters used when assigning suffixes and currency in numbers.\n*/ export default {\n \"ar-SA\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \" ألف\",\n \" مليون\",\n \" بليون\",\n \" تريليون\",\n \" كوادريليون\",\n \" كوينتيليون\",\n \" سكستليون\",\n \"سبتيليون\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"SAR \",\n \"\"\n ]\n },\n \"en-GB\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"B\",\n \"T\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"£\",\n \"\"\n ]\n },\n \"en-US\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"B\",\n \"T\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"en-SA\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \" thousand\",\n \" million\",\n \" billion\",\n \" trillion\",\n \" quadrillion\",\n \" quintillion\",\n \" sextillion\",\n \"septillion\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-CL\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"MM\",\n \"B\",\n \"T\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \".\",\n decimal: \",\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-MX\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"M\",\n \"MM\",\n \"B\",\n \"T\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"$\",\n \"\"\n ]\n },\n \"es-ES\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"mm\",\n \"b\",\n \"t\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \".\",\n decimal: \",\"\n },\n currency: [\n \"€\",\n \"\"\n ]\n },\n \"et-EE\": {\n separator: \" \",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"tuhat\",\n \"miljonit\",\n \"miljardit\",\n \"triljonit\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \" \",\n decimal: \",\"\n },\n currency: [\n \"\",\n \"eurot\"\n ]\n },\n \"fr-FR\": {\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"µ\",\n \"m\",\n \"\",\n \"k\",\n \"m\",\n \"b\",\n \"t\",\n \"q\",\n \"Q\",\n \"Z\",\n \"Y\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \" \",\n decimal: \",\"\n },\n currency: [\n \"€\",\n \"\"\n ]\n },\n \"zh-CN\": {\n separator: \"\",\n suffixes: [\n \"幺\",\n \"仄\",\n \"阿\",\n \"飞\",\n \"皮\",\n \"纳\",\n \"微\",\n \"毫\",\n \"\",\n \"千\",\n \"兆\",\n \"吉\",\n \"太\",\n \"拍\",\n \"艾\",\n \"泽\",\n \"尧\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"¥\",\n \"\"\n ]\n }\n};\n","import {formatLocale} from \"d3-format\";\nimport {formatLocale as defaultLocale} from \"@d3plus/locales\";\n\nconst round = (x, n) =>\n parseFloat(Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toFixed(n);\n\n/**\n * @private\n*/\nfunction formatSuffix(str, precision, suffixes) {\n let i = 0;\n let value = parseFloat(str.replace(\"−\", \"-\"), 10);\n if (value) {\n if (value < 0) value *= -1;\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n const d = suffixes[8 + i / 3];\n\n return {\n number: round(d.scale(value), precision),\n symbol: d.symbol\n };\n}\n\n/**\n * @private\n*/\nfunction parseSuffixes(d, i) {\n const k = Math.pow(10, Math.abs(8 - i) * 3);\n return {\n scale: i > 8 ? d => d / k : d => d * k,\n symbol: d\n };\n}\n\n\n/**\n @function formatAbbreviate\n @desc Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `\"1.2M\"`).\n @param {Number|String} n The number to be formatted.\n @param {Object|String} locale The locale config to be used. If *value* is an object, the function will format the numbers according the object. The object must include `suffixes`, `delimiter` and `currency` properties.\n @returns {String}\n*/\nexport default function(n, locale = \"en-US\", precision = undefined) {\n if (isFinite(n)) n *= 1;\n else return \"N/A\";\n\n const negative = n < 0;\n\n const length = n.toString().split(\".\")[0].replace(\"-\", \"\").length,\n localeConfig = typeof locale === \"object\" ? locale : defaultLocale[locale] || defaultLocale[\"en-US\"],\n suffixes = localeConfig.suffixes.map(parseSuffixes);\n\n const decimal = localeConfig.delimiters.decimal || \".\",\n separator = localeConfig.separator || \"\",\n thousands = localeConfig.delimiters.thousands || \",\";\n\n const d3plusFormatLocale = formatLocale({\n currency: localeConfig.currency || [\"$\", \"\"],\n decimal,\n grouping: localeConfig.grouping || [3],\n thousands\n });\n\n let val;\n if (precision) val = d3plusFormatLocale.format(precision)(n);\n else if (n === 0) val = \"0\";\n else if (length >= 3) {\n const f = formatSuffix(d3plusFormatLocale.format(\".3r\")(n), 2, suffixes);\n const num = parseFloat(f.number).toString().replace(\".\", decimal);\n const char = f.symbol;\n val = `${num}${separator}${char}`;\n }\n else if (length === 3) val = d3plusFormatLocale.format(\",f\")(n);\n else if (n < 1 && n > -1) val = d3plusFormatLocale.format(\".2g\")(n);\n else val = d3plusFormatLocale.format(\".3g\")(n);\n\n return `${negative && val.charAt(0) !== \"−\" ? \"−\" : \"\"}${val}`\n .replace(/−/g, \"-\") // replace new d3 default minus sign (−) to hyphen-minus (-)\n .replace(/(\\.[0]*[1-9]*)[0]*$/g, \"$1\") // removes any trailing zeros\n .replace(/\\.[0]*$/g, \"\"); // removes any trailing decimal point\n\n}\n","import abbreviate from \"./formatAbbreviate.js\";\nimport {format} from \"d3-format\";\n\n/**\n @function format\n @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.\n @param {String} specifier The string specifier used by the format function.\n @returns {Function}\n*/\nexport default specifier => {\n if (specifier === \".3~a\") return abbreviate;\n return format(specifier);\n};\n","import format from \"./format.js\";\nimport {formatDefaultLocale} from \"d3-format\";\n\n/**\n @function formatDefaultLocale\n @desc An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.\n @param {Object} definition The localization definition.\n @returns {Object}\n*/\nexport default definition => {\n const locale = formatDefaultLocale(definition);\n locale.format = format;\n return locale;\n};\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeHour, timeMinute, timeSecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\n\n/**\n @function formatDate\n @desc A default set of date formatters, which takes into account both the interval in between in each data point but also the start/end data points.\n @param {Date} d The date string to be formatted.\n @param {Array} dataArray The full array of ordered Date Objects.\n @param {Function} [formatter = d3.timeFormat] An optional instance of d3.timeFormat to be used for localization.\n @returns {String}\n*/\nexport default function(d, dataArray, formatter = timeFormat) {\n\n const formatHour = formatter(\"%I %p\"),\n formatMillisecond = formatter(\".%L\"),\n formatMinute = formatter(\"%I:%M\"),\n formatMonth = formatter(\"%b\"),\n formatMonthDay = formatter(\"%b %-d\"),\n formatMonthDayYear = formatter(\"%b %-d, %Y\"),\n formatMonthYear = formatter(\"%b %Y\"),\n formatQuarter = formatter(\"Q%q\"),\n formatQuarterYear = formatter(\"Q%q %Y\"),\n formatSecond = formatter(\":%S\"),\n formatYear = formatter(\"%Y\");\n\n const labelIndex = dataArray.findIndex(a => +a === +d);\n const firstOrLast = labelIndex === 0 || labelIndex === dataArray.length - 1;\n const smallArray = dataArray.length <= 5;\n\n const [yearlySteps, monthlySteps, dailySteps, hourlySteps] = dataArray.reduce((arr, d, i) => {\n if (i) {\n arr[0].push(d.getFullYear() - dataArray[i - 1].getFullYear());\n arr[1].push(monthDiff(dataArray[i - 1], d));\n arr[2].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60 * 24)));\n arr[3].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60)));\n }\n return arr;\n }, [[], [], [], []]);\n\n return (\n yearlySteps.every(s => s >= 1 && !(s % 1)) // Yearly Data \n ? formatYear\n : monthlySteps.every(s => s >= 3 && !(s % 3)) // Quarterly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatQuarterYear : formatQuarter\n : monthlySteps.every(s => s >= 1 && !(s % 1)) // Monthly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthYear : formatMonth \n : dailySteps.every(s => s >= 1 && !(s % 1)) // Daily Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthDayYear : formatMonthDay \n : hourlySteps.every(s => s >= 1 && !(s % 1)) // Hourly Data\n ? firstOrLast || smallArray ? formatMonthDayYear : +timeMonth(d) === d ? formatMonthDay : formatHour\n : timeSecond(d) < d ? formatMillisecond\n : timeMinute(d) < d ? formatSecond\n : timeHour(d) < d ? formatMinute : d\n )(d);\n\n}\n\n/**\n @function monthDiff\n @desc Returns the number of months between two Date objects\n @param {*} d1\n @param {*} d2\n @returns {Number} the number of months between the two Date objects\n @private\n*/\nfunction monthDiff(d1, d2) {\n let months;\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\n months -= d1.getMonth();\n months += d2.getMonth();\n return months <= 0 ? 0 : months;\n}\n"],"names":["x","Math","abs","round","toLocaleString","replace","toString","formatDecimalParts","p","i","toExponential","indexOf","coefficient","slice","length","NaN","grouping","thousands","value","width","t","j","g","max","push","substring","reverse","join","numerals","re","formatSpecifier","specifier","match","exec","Error","FormatSpecifier","fill","align","sign","symbol","zero","comma","precision","trim","type","prototype","undefined","s","out","n","i0","i1","prefixExponent","d","exponent","min","floor","Array","toFixed","formatDecimal","toPrecision","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","call","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","prefix","test","toLowerCase","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","isNaN","formatTrim","charCodeAt","Infinity","padding","formatPrefix","f","e","k","pow","defaultLocale","definition","formatLocale","separator","suffixes","delimiters","parseFloat","formatSuffix","str","log","LN10","number","scale","parseSuffixes","isFinite","negative","split","localeConfig","d3plusFormatLocale","val","num","char","charAt","abbreviate","formatDefaultLocale","t0","Date","t1","timeInterval","floori","offseti","count","field","interval","date","arguments","ceil","d0","d1","offset","step","range","start","stop","previous","filter","setTime","end","every","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","localDate","y","m","H","M","S","L","utcDate","UTC","newDate","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","X","string","pad","pads","newParse","Z","parseSpecifier","week","day","Q","q","V","w","u","W","U","parse","get","utcFormat","utcParse","numberRe","percentRe","requoteRe","requote","names","RegExp","Map","name","dISO","z","getUTCMilliseconds","dow","UTCdISO","timeFormat","timeParse","dataArray","formatter","formatHour","formatMillisecond","formatMinute","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarterYear","formatSecond","labelIndex","findIndex","a","firstOrLast","smallArray","yearlySteps","monthlySteps","dailySteps","hourlySteps","reduce","arr","monthDiff","timeSecond","d2"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,16,17,18,19,20,21,22,23,24,25,26]}
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/format v3.0.0-alpha.1
2
+ @d3plus/format v3.0.0-alpha.3
3
3
  JavaScript formatters for localized numbers and dates.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -46,14 +46,6 @@ return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Mat
46
46
  /**
47
47
  @namespace {Object} formatLocale
48
48
  @desc A set of default locale formatters used when assigning suffixes and currency in numbers.
49
- *
50
- * | Name | Default | Description |
51
- * |---|---|---|
52
- * | separator | "" | Separation between the number with the suffix. |
53
- * | suffixes | [] | List of suffixes used to format numbers. |
54
- * | grouping | [3] | The array of group sizes, |
55
- * | delimiters | {thousands: ",", decimal: "."} | Decimal and group separators. |
56
- * | currency | ["$", ""] | The currency prefix and suffix. |
57
49
  */V({thousands:",",grouping:[3],currency:["$",""]});var $={"ar-SA":{separator:"",suffixes:["y","z","a","f","p","n","µ","m",""," ألف"," مليون"," بليون"," تريليون"," كوادريليون"," كوينتيليون"," سكستليون","سبتيليون"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["SAR ",""]},"en-GB":{separator:"",suffixes:["y","z","a","f","p","n","µ","m","","k","M","B","T","q","Q","Z","Y"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["£",""]},"en-US":{separator:"",suffixes:["y","z","a","f","p","n","µ","m","","k","M","B","T","q","Q","Z","Y"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["$",""]},"en-SA":{separator:"",suffixes:["y","z","a","f","p","n","µ","m",""," thousand"," million"," billion"," trillion"," quadrillion"," quintillion"," sextillion","septillion"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["$",""]},"es-CL":{separator:"",suffixes:["y","z","a","f","p","n","µ","m","","k","M","MM","B","T","Q","Z","Y"],grouping:[3],delimiters:{thousands:".",decimal:","},currency:["$",""]},"es-MX":{separator:"",suffixes:["y","z","a","f","p","n","µ","m","","k","M","MM","B","T","Q","Z","Y"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["$",""]},"es-ES":{separator:"",suffixes:["y","z","a","f","p","n","µ","m","","k","mm","b","t","q","Q","Z","Y"],grouping:[3],delimiters:{thousands:".",decimal:","},currency:["€",""]},"et-EE":{separator:" ",suffixes:["y","z","a","f","p","n","µ","m","","tuhat","miljonit","miljardit","triljonit","q","Q","Z","Y"],grouping:[3],delimiters:{thousands:" ",decimal:","},currency:["","eurot"]},"fr-FR":{suffixes:["y","z","a","f","p","n","µ","m","","k","m","b","t","q","Q","Z","Y"],grouping:[3],delimiters:{thousands:" ",decimal:","},currency:["€",""]},"zh-CN":{separator:"",suffixes:["幺","仄","阿","飞","皮","纳","微","毫","","千","兆","吉","太","拍","艾","泽","尧"],grouping:[3],delimiters:{thousands:",",decimal:"."},currency:["¥",""]}};let O=(e,t)=>parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t)).toFixed(t);
58
50
  /**
59
51
  * @private
@@ -72,9 +64,6 @@ return m=void 0===m?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,m)):Math.max(0,Mat
72
64
  /**
73
65
  @function format
74
66
  @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
75
-
76
- The new specifier strings added by d3plus-format are:
77
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
78
67
  @param {String} specifier The string specifier used by the format function.
79
68
  @returns {Function}
80
69
  */var B=e=>".3~a"===e?W:N(e);
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/format v3.0.0-alpha.1
2
+ @d3plus/format v3.0.0-alpha.3
3
3
  JavaScript formatters for localized numbers and dates.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -182,9 +182,6 @@
182
182
  /**
183
183
  @function format
184
184
  @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
185
-
186
- The new specifier strings added by d3plus-format are:
187
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
188
185
  @param {String} specifier The string specifier used by the format function.
189
186
  @returns {Function}
190
187
  */ var format = ((specifier)=>{
@@ -1 +1 @@
1
- {"version":3,"file":"d3plus-format.js","sources":["../src/formatAbbreviate.js","../src/format.js","../src/formatDefaultLocale.js","../src/formatDate.js"],"sourcesContent":["import {formatLocale} from \"d3-format\";\nimport {formatLocale as defaultLocale} from \"@d3plus/locales\";\n\nconst round = (x, n) =>\n parseFloat(Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toFixed(n);\n\n/**\n * @private\n*/\nfunction formatSuffix(str, precision, suffixes) {\n let i = 0;\n let value = parseFloat(str.replace(\"−\", \"-\"), 10);\n if (value) {\n if (value < 0) value *= -1;\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n const d = suffixes[8 + i / 3];\n\n return {\n number: round(d.scale(value), precision),\n symbol: d.symbol\n };\n}\n\n/**\n * @private\n*/\nfunction parseSuffixes(d, i) {\n const k = Math.pow(10, Math.abs(8 - i) * 3);\n return {\n scale: i > 8 ? d => d / k : d => d * k,\n symbol: d\n };\n}\n\n\n/**\n @function formatAbbreviate\n @desc Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `\"1.2M\"`).\n @param {Number|String} n The number to be formatted.\n @param {Object|String} locale The locale config to be used. If *value* is an object, the function will format the numbers according the object. The object must include `suffixes`, `delimiter` and `currency` properties.\n @returns {String}\n*/\nexport default function(n, locale = \"en-US\", precision = undefined) {\n if (isFinite(n)) n *= 1;\n else return \"N/A\";\n\n const negative = n < 0;\n\n const length = n.toString().split(\".\")[0].replace(\"-\", \"\").length,\n localeConfig = typeof locale === \"object\" ? locale : defaultLocale[locale] || defaultLocale[\"en-US\"],\n suffixes = localeConfig.suffixes.map(parseSuffixes);\n\n const decimal = localeConfig.delimiters.decimal || \".\",\n separator = localeConfig.separator || \"\",\n thousands = localeConfig.delimiters.thousands || \",\";\n\n const d3plusFormatLocale = formatLocale({\n currency: localeConfig.currency || [\"$\", \"\"],\n decimal,\n grouping: localeConfig.grouping || [3],\n thousands\n });\n\n let val;\n if (precision) val = d3plusFormatLocale.format(precision)(n);\n else if (n === 0) val = \"0\";\n else if (length >= 3) {\n const f = formatSuffix(d3plusFormatLocale.format(\".3r\")(n), 2, suffixes);\n const num = parseFloat(f.number).toString().replace(\".\", decimal);\n const char = f.symbol;\n val = `${num}${separator}${char}`;\n }\n else if (length === 3) val = d3plusFormatLocale.format(\",f\")(n);\n else if (n < 1 && n > -1) val = d3plusFormatLocale.format(\".2g\")(n);\n else val = d3plusFormatLocale.format(\".3g\")(n);\n\n return `${negative && val.charAt(0) !== \"−\" ? \"−\" : \"\"}${val}`\n .replace(/−/g, \"-\") // replace new d3 default minus sign (−) to hyphen-minus (-)\n .replace(/(\\.[0]*[1-9]*)[0]*$/g, \"$1\") // removes any trailing zeros\n .replace(/\\.[0]*$/g, \"\"); // removes any trailing decimal point\n\n}\n","import abbreviate from \"./formatAbbreviate.js\";\nimport {format} from \"d3-format\";\n\n/**\n @function format\n @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.\n\nThe new specifier strings added by d3plus-format are:\n - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. \"k\", \"M\", \"B\", etc). This is an alias of the `formatAbbreviate` function.\n @param {String} specifier The string specifier used by the format function.\n @returns {Function}\n*/\nexport default specifier => {\n if (specifier === \".3~a\") return abbreviate;\n return format(specifier);\n};\n","import format from \"./format.js\";\nimport {formatDefaultLocale} from \"d3-format\";\n\n/**\n @function formatDefaultLocale\n @desc An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.\n @param {Object} definition The localization definition.\n @returns {Object}\n*/\nexport default definition => {\n const locale = formatDefaultLocale(definition);\n locale.format = format;\n return locale;\n};\n","import {timeYear, timeMonth, timeHour, timeMinute, timeSecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\n\n/**\n @function formatDate\n @desc A default set of date formatters, which takes into account both the interval in between in each data point but also the start/end data points.\n @param {Date} d The date string to be formatted.\n @param {Array} dataArray The full array of ordered Date Objects.\n @param {Function} [formatter = d3.timeFormat] An optional instance of d3.timeFormat to be used for localization.\n @returns {String}\n*/\nexport default function(d, dataArray, formatter = timeFormat) {\n\n const formatHour = formatter(\"%I %p\"),\n formatMillisecond = formatter(\".%L\"),\n formatMinute = formatter(\"%I:%M\"),\n formatMonth = formatter(\"%b\"),\n formatMonthDay = formatter(\"%b %-d\"),\n formatMonthDayYear = formatter(\"%b %-d, %Y\"),\n formatMonthYear = formatter(\"%b %Y\"),\n formatQuarter = formatter(\"Q%q\"),\n formatQuarterYear = formatter(\"Q%q %Y\"),\n formatSecond = formatter(\":%S\"),\n formatYear = formatter(\"%Y\");\n\n const labelIndex = dataArray.findIndex(a => +a === +d);\n const firstOrLast = labelIndex === 0 || labelIndex === dataArray.length - 1;\n const smallArray = dataArray.length <= 5;\n\n const [yearlySteps, monthlySteps, dailySteps, hourlySteps] = dataArray.reduce((arr, d, i) => {\n if (i) {\n arr[0].push(d.getFullYear() - dataArray[i - 1].getFullYear());\n arr[1].push(monthDiff(dataArray[i - 1], d));\n arr[2].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60 * 24)));\n arr[3].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60)));\n }\n return arr;\n }, [[], [], [], []]);\n\n return (\n yearlySteps.every(s => s >= 1 && !(s % 1)) // Yearly Data \n ? formatYear\n : monthlySteps.every(s => s >= 3 && !(s % 3)) // Quarterly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatQuarterYear : formatQuarter\n : monthlySteps.every(s => s >= 1 && !(s % 1)) // Monthly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthYear : formatMonth \n : dailySteps.every(s => s >= 1 && !(s % 1)) // Daily Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthDayYear : formatMonthDay \n : hourlySteps.every(s => s >= 1 && !(s % 1)) // Hourly Data\n ? firstOrLast || smallArray ? formatMonthDayYear : +timeMonth(d) === d ? formatMonthDay : formatHour\n : timeSecond(d) < d ? formatMillisecond\n : timeMinute(d) < d ? formatSecond\n : timeHour(d) < d ? formatMinute : d\n )(d);\n\n}\n\n/**\n @function monthDiff\n @desc Returns the number of months between two Date objects\n @param {*} d1\n @param {*} d2\n @returns {Number} the number of months between the two Date objects\n @private\n*/\nfunction monthDiff(d1, d2) {\n let months;\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\n months -= d1.getMonth();\n months += d2.getMonth();\n return months <= 0 ? 0 : months;\n}\n"],"names":["round","x","n","parseFloat","Math","pow","toFixed","formatSuffix","str","precision","suffixes","i","value","replace","floor","log","LN10","max","min","d","number","scale","symbol","parseSuffixes","k","abs","locale","undefined","isFinite","negative","length","toString","split","localeConfig","defaultLocale","map","decimal","delimiters","separator","thousands","d3plusFormatLocale","formatLocale","currency","grouping","val","format","f","num","char","charAt","specifier","abbreviate","definition","formatDefaultLocale","dataArray","formatter","timeFormat","formatHour","formatMillisecond","formatMinute","formatMonth","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarter","formatQuarterYear","formatSecond","formatYear","labelIndex","findIndex","a","firstOrLast","smallArray","yearlySteps","monthlySteps","dailySteps","hourlySteps","reduce","arr","push","getFullYear","monthDiff","every","s","timeYear","timeMonth","timeSecond","timeMinute","timeHour","d1","d2","months","getMonth"],"mappings":"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"}
1
+ {"version":3,"file":"d3plus-format.js","sources":["../src/formatAbbreviate.js","../src/format.js","../src/formatDefaultLocale.js","../src/formatDate.js"],"sourcesContent":["import {formatLocale} from \"d3-format\";\nimport {formatLocale as defaultLocale} from \"@d3plus/locales\";\n\nconst round = (x, n) =>\n parseFloat(Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toFixed(n);\n\n/**\n * @private\n*/\nfunction formatSuffix(str, precision, suffixes) {\n let i = 0;\n let value = parseFloat(str.replace(\"−\", \"-\"), 10);\n if (value) {\n if (value < 0) value *= -1;\n i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);\n i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));\n }\n const d = suffixes[8 + i / 3];\n\n return {\n number: round(d.scale(value), precision),\n symbol: d.symbol\n };\n}\n\n/**\n * @private\n*/\nfunction parseSuffixes(d, i) {\n const k = Math.pow(10, Math.abs(8 - i) * 3);\n return {\n scale: i > 8 ? d => d / k : d => d * k,\n symbol: d\n };\n}\n\n\n/**\n @function formatAbbreviate\n @desc Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `\"1.2M\"`).\n @param {Number|String} n The number to be formatted.\n @param {Object|String} locale The locale config to be used. If *value* is an object, the function will format the numbers according the object. The object must include `suffixes`, `delimiter` and `currency` properties.\n @returns {String}\n*/\nexport default function(n, locale = \"en-US\", precision = undefined) {\n if (isFinite(n)) n *= 1;\n else return \"N/A\";\n\n const negative = n < 0;\n\n const length = n.toString().split(\".\")[0].replace(\"-\", \"\").length,\n localeConfig = typeof locale === \"object\" ? locale : defaultLocale[locale] || defaultLocale[\"en-US\"],\n suffixes = localeConfig.suffixes.map(parseSuffixes);\n\n const decimal = localeConfig.delimiters.decimal || \".\",\n separator = localeConfig.separator || \"\",\n thousands = localeConfig.delimiters.thousands || \",\";\n\n const d3plusFormatLocale = formatLocale({\n currency: localeConfig.currency || [\"$\", \"\"],\n decimal,\n grouping: localeConfig.grouping || [3],\n thousands\n });\n\n let val;\n if (precision) val = d3plusFormatLocale.format(precision)(n);\n else if (n === 0) val = \"0\";\n else if (length >= 3) {\n const f = formatSuffix(d3plusFormatLocale.format(\".3r\")(n), 2, suffixes);\n const num = parseFloat(f.number).toString().replace(\".\", decimal);\n const char = f.symbol;\n val = `${num}${separator}${char}`;\n }\n else if (length === 3) val = d3plusFormatLocale.format(\",f\")(n);\n else if (n < 1 && n > -1) val = d3plusFormatLocale.format(\".2g\")(n);\n else val = d3plusFormatLocale.format(\".3g\")(n);\n\n return `${negative && val.charAt(0) !== \"−\" ? \"−\" : \"\"}${val}`\n .replace(/−/g, \"-\") // replace new d3 default minus sign (−) to hyphen-minus (-)\n .replace(/(\\.[0]*[1-9]*)[0]*$/g, \"$1\") // removes any trailing zeros\n .replace(/\\.[0]*$/g, \"\"); // removes any trailing decimal point\n\n}\n","import abbreviate from \"./formatAbbreviate.js\";\nimport {format} from \"d3-format\";\n\n/**\n @function format\n @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.\n @param {String} specifier The string specifier used by the format function.\n @returns {Function}\n*/\nexport default specifier => {\n if (specifier === \".3~a\") return abbreviate;\n return format(specifier);\n};\n","import format from \"./format.js\";\nimport {formatDefaultLocale} from \"d3-format\";\n\n/**\n @function formatDefaultLocale\n @desc An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.\n @param {Object} definition The localization definition.\n @returns {Object}\n*/\nexport default definition => {\n const locale = formatDefaultLocale(definition);\n locale.format = format;\n return locale;\n};\n","import {timeYear, timeMonth, timeHour, timeMinute, timeSecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\n\n/**\n @function formatDate\n @desc A default set of date formatters, which takes into account both the interval in between in each data point but also the start/end data points.\n @param {Date} d The date string to be formatted.\n @param {Array} dataArray The full array of ordered Date Objects.\n @param {Function} [formatter = d3.timeFormat] An optional instance of d3.timeFormat to be used for localization.\n @returns {String}\n*/\nexport default function(d, dataArray, formatter = timeFormat) {\n\n const formatHour = formatter(\"%I %p\"),\n formatMillisecond = formatter(\".%L\"),\n formatMinute = formatter(\"%I:%M\"),\n formatMonth = formatter(\"%b\"),\n formatMonthDay = formatter(\"%b %-d\"),\n formatMonthDayYear = formatter(\"%b %-d, %Y\"),\n formatMonthYear = formatter(\"%b %Y\"),\n formatQuarter = formatter(\"Q%q\"),\n formatQuarterYear = formatter(\"Q%q %Y\"),\n formatSecond = formatter(\":%S\"),\n formatYear = formatter(\"%Y\");\n\n const labelIndex = dataArray.findIndex(a => +a === +d);\n const firstOrLast = labelIndex === 0 || labelIndex === dataArray.length - 1;\n const smallArray = dataArray.length <= 5;\n\n const [yearlySteps, monthlySteps, dailySteps, hourlySteps] = dataArray.reduce((arr, d, i) => {\n if (i) {\n arr[0].push(d.getFullYear() - dataArray[i - 1].getFullYear());\n arr[1].push(monthDiff(dataArray[i - 1], d));\n arr[2].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60 * 24)));\n arr[3].push(Math.round((d - dataArray[i - 1]) / (1000 * 60 * 60)));\n }\n return arr;\n }, [[], [], [], []]);\n\n return (\n yearlySteps.every(s => s >= 1 && !(s % 1)) // Yearly Data \n ? formatYear\n : monthlySteps.every(s => s >= 3 && !(s % 3)) // Quarterly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatQuarterYear : formatQuarter\n : monthlySteps.every(s => s >= 1 && !(s % 1)) // Monthly Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthYear : formatMonth \n : dailySteps.every(s => s >= 1 && !(s % 1)) // Daily Data\n ? +timeYear(d) === d || firstOrLast || smallArray ? formatMonthDayYear : formatMonthDay \n : hourlySteps.every(s => s >= 1 && !(s % 1)) // Hourly Data\n ? firstOrLast || smallArray ? formatMonthDayYear : +timeMonth(d) === d ? formatMonthDay : formatHour\n : timeSecond(d) < d ? formatMillisecond\n : timeMinute(d) < d ? formatSecond\n : timeHour(d) < d ? formatMinute : d\n )(d);\n\n}\n\n/**\n @function monthDiff\n @desc Returns the number of months between two Date objects\n @param {*} d1\n @param {*} d2\n @returns {Number} the number of months between the two Date objects\n @private\n*/\nfunction monthDiff(d1, d2) {\n let months;\n months = (d2.getFullYear() - d1.getFullYear()) * 12;\n months -= d1.getMonth();\n months += d2.getMonth();\n return months <= 0 ? 0 : months;\n}\n"],"names":["round","x","n","parseFloat","Math","pow","toFixed","formatSuffix","str","precision","suffixes","i","value","replace","floor","log","LN10","max","min","d","number","scale","symbol","parseSuffixes","k","abs","locale","undefined","isFinite","negative","length","toString","split","localeConfig","defaultLocale","map","decimal","delimiters","separator","thousands","d3plusFormatLocale","formatLocale","currency","grouping","val","format","f","num","char","charAt","specifier","abbreviate","definition","formatDefaultLocale","dataArray","formatter","timeFormat","formatHour","formatMillisecond","formatMinute","formatMonth","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarter","formatQuarterYear","formatSecond","formatYear","labelIndex","findIndex","a","firstOrLast","smallArray","yearlySteps","monthlySteps","dailySteps","hourlySteps","reduce","arr","push","getFullYear","monthDiff","every","s","timeYear","timeMonth","timeSecond","timeMinute","timeHour","d1","d2","months","getMonth"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*
2
- @d3plus/format v3.0.0-alpha.1
2
+ @d3plus/format v3.0.0-alpha.3
3
3
  JavaScript formatters for localized numbers and dates.
4
4
  Copyright (c) 2025 D3plus - https://d3plus.org
5
5
  @license MIT
@@ -22,9 +22,6 @@
22
22
  /**
23
23
  @function format
24
24
  @desc An extension to d3's [format](https://github.com/d3/d3-format#api-reference) function that adds more string formatting types and localizations.
25
-
26
- The new specifier strings added by d3plus-format are:
27
- - `.3~a` - abbreviated decimal notation with a numeric suffix (ie. "k", "M", "B", etc). This is an alias of the `formatAbbreviate` function.
28
25
  @param {String} specifier The string specifier used by the format function.
29
26
  @returns {Function}
30
27
  */var r=e=>".3~a"===e?t:s.format(e);