@d3plus/format 3.0.15 → 3.1.0

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.
@@ -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*/ 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
+ {"version":3,"file":"d3plus-format.full.js","sources":["../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js","../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js","../../locales/es/src/dictionaries/formatLocale.js","../src/formatAbbreviate.ts","../src/format.ts","../src/formatDefaultLocale.ts","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js","../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js","../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js","../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js","../src/formatDate.ts"],"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 (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), 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 prefixExponent = undefined, x.toPrecision(p);\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, options) {\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 = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\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\" && !isNaN(value) && prefixExponent !== undefined ? 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 e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\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 A set of default locale formatters used when assigning suffixes and currency in numbers.\n*/ var formatLocale = {\n \"ar-SA\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"\\u00b5\",\n \"m\",\n \"\",\n \" \\u0623\\u0644\\u0641\",\n \" \\u0645\\u0644\\u064a\\u0648\\u0646\",\n \" \\u0628\\u0644\\u064a\\u0648\\u0646\",\n \" \\u062a\\u0631\\u064a\\u0644\\u064a\\u0648\\u0646\",\n \" \\u0643\\u0648\\u0627\\u062f\\u0631\\u064a\\u0644\\u064a\\u0648\\u0646\",\n \" \\u0643\\u0648\\u064a\\u0646\\u062a\\u064a\\u0644\\u064a\\u0648\\u0646\",\n \" \\u0633\\u0643\\u0633\\u062a\\u0644\\u064a\\u0648\\u0646\",\n \"\\u0633\\u0628\\u062a\\u064a\\u0644\\u064a\\u0648\\u0646\"\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 \"\\u00b5\",\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 \"\\u00a3\",\n \"\"\n ]\n },\n \"en-US\": {\n separator: \"\",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"\\u00b5\",\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 \"\\u00b5\",\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 \"\\u00b5\",\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 \"\\u00b5\",\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 \"\\u00b5\",\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 \"\\u20ac\",\n \"\"\n ]\n },\n \"et-EE\": {\n separator: \" \",\n suffixes: [\n \"y\",\n \"z\",\n \"a\",\n \"f\",\n \"p\",\n \"n\",\n \"\\u00b5\",\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 \"\\u00b5\",\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 \"\\u20ac\",\n \"\"\n ]\n },\n \"zh-CN\": {\n separator: \"\",\n suffixes: [\n \"\\u5e7a\",\n \"\\u4ed4\",\n \"\\u963f\",\n \"\\u98de\",\n \"\\u76ae\",\n \"\\u7eb3\",\n \"\\u5fae\",\n \"\\u6beb\",\n \"\",\n \"\\u5343\",\n \"\\u5146\",\n \"\\u5409\",\n \"\\u592a\",\n \"\\u62cd\",\n \"\\u827e\",\n \"\\u6cfd\",\n \"\\u5c27\"\n ],\n grouping: [\n 3\n ],\n delimiters: {\n thousands: \",\",\n decimal: \".\"\n },\n currency: [\n \"\\u00a5\",\n \"\"\n ]\n }\n};\nexport default formatLocale;\n","import {formatLocale} from \"d3-format\";\nimport {formatLocale as defaultLocale} from \"@d3plus/locales\";\nimport type {FormatLocaleDefinition} from \"@d3plus/locales\";\n\ninterface SuffixEntry {\n scale: (d: number) => number;\n symbol: string;\n}\n\nconst round = (x: number, n: number): string =>\n parseFloat(\n (Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toString(),\n ).toFixed(n);\n\n/**\n * @private\n */\nfunction formatSuffix(\n str: string,\n precision: number,\n suffixes: SuffixEntry[],\n): {number: string; symbol: string} {\n let i = 0;\n let value = parseFloat(str.replace(\"\\u2212\", \"-\"));\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: string, i: number): SuffixEntry {\n const k = Math.pow(10, Math.abs(8 - i) * 3);\n return {\n scale: i > 8 ? (d: number) => d / k : (d: number) => d * k,\n symbol: d,\n };\n}\n\n/**\n Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `\"1.2M\"`).\n @param n The number to be formatted.\n @param locale The locale config to be used. If an object is provided, the function will format the numbers according to the object. The object must include `suffixes`, `delimiter` and `currency` properties.\n @param precision Number of significant digits to display.\n*/\nexport default function formatAbbreviate(\n n: number | string,\n locale: string | FormatLocaleDefinition = \"en-US\",\n precision?: string,\n): string {\n if (isFinite(n as number)) n = (n as number) * 1;\n else return \"N/A\";\n\n const negative = (n as number) < 0;\n\n const length = n.toString().split(\".\")[0].replace(\"-\", \"\").length,\n localeConfig: FormatLocaleDefinition =\n typeof locale === \"object\"\n ? locale\n : 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: string;\n if (precision) val = d3plusFormatLocale.format(precision)(n as number);\n else if (n === 0) val = \"0\";\n else if (length >= 3) {\n const f = formatSuffix(\n d3plusFormatLocale.format(\".3r\")(n as number),\n 2,\n suffixes,\n );\n const num = parseFloat(f.number).toString().replace(\".\", decimal);\n const char = f.symbol;\n val = `${num}${separator}${char}`;\n } else if (length === 3) val = d3plusFormatLocale.format(\",f\")(n as number);\n else if ((n as number) < 1 && (n as number) > -1)\n val = d3plusFormatLocale.format(\".2g\")(n as number);\n else val = d3plusFormatLocale.format(\".3g\")(n as number);\n\n return `${negative && val.charAt(0) !== \"\\u2212\" ? \"\\u2212\" : \"\"}${val}`\n .replace(/\\u2212/g, \"-\") // replace new d3 default minus sign (\\u2212) 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","import abbreviate from \"./formatAbbreviate.js\";\nimport {format} from \"d3-format\";\n\n/**\n 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 specifier The string specifier used by the format function.\n*/\ntype Formatter = (n: number | string | {valueOf(): number}) => string;\n\nexport default function (specifier: string): Formatter {\n if (specifier === \".3~a\") return abbreviate as Formatter;\n return format(specifier) as Formatter;\n}\n","import format from \"./format.js\";\nimport {formatDefaultLocale} from \"d3-format\";\n\n/**\n 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 definition The localization definition.\n*/\nexport default function (\n definition: Parameters<typeof formatDefaultLocale>[0],\n): Record<string, unknown> {\n const locale = formatDefaultLocale(definition) as unknown as Record<\n string,\n unknown\n >;\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\ntype DateFormatter = (specifier: string) => (date: Date) => string;\n\n/**\n 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 d The date to format.\n @param dataArray The full array of ordered Date Objects.\n @param formatter Optional custom format string or function.\n*/\nexport default function formatDate(\n d: Date,\n dataArray: Date[],\n formatter: DateFormatter = timeFormat,\n): string {\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<\n [number[], number[], number[], number[]]\n >(\n (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(\n Math.round((+d - +dataArray[i - 1]) / (1000 * 60 * 60 * 24)),\n );\n arr[3].push(Math.round((+d - +dataArray[i - 1]) / (1000 * 60 * 60)));\n }\n return arr;\n },\n [[], [], [], []],\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\n ? formatQuarterYear\n : formatQuarter\n : monthlySteps.every(s => s >= 1 && !(s % 1)) // Monthly Data\n ? +timeYear(d) === +d || firstOrLast || smallArray\n ? formatMonthYear\n : formatMonth\n : dailySteps.every(s => s >= 1 && !(s % 1)) // Daily Data\n ? +timeYear(d) === +d || firstOrLast || smallArray\n ? formatMonthDayYear\n : formatMonthDay\n : hourlySteps.every(s => s >= 1 && !(s % 1)) // Hourly Data\n ? firstOrLast || smallArray\n ? formatMonthDayYear\n : +timeMonth(d) === +d\n ? formatMonthDay\n : formatHour\n : timeSecond(d) < d\n ? formatMillisecond\n : timeMinute(d) < d\n ? formatSecond\n : timeHour(d) < d\n ? formatMinute\n : (_d: Date) => _d.toString()\n )(d);\n}\n\n/**\n Returns the number of months between two Date objects\n\n @returns {Number} the number of months between the two Date objects\n @private\n*/\nfunction monthDiff(d1: Date, d2: Date): number {\n let months: number;\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","isFinite","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","toPrecision","exponent","min","floor","Array","toFixed","formatDecimal","formatRounded","formatPrefixAuto","toUpperCase","map","prefixes","locale","group","identity","formatGroup","call","Number","currencyPrefix","currency","currencySuffix","decimal","formatNumerals","String","percent","minus","nan","newFormat","options","formatTypes","prefix","test","toLowerCase","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","isNaN","formatTrim","charCodeAt","Infinity","padding","formatPrefix","e","k","pow","f","defaultLocale","definition","formatLocale","separator","suffixes","delimiters","parseFloat","formatSuffix","str","log","LN10","number","scale","parseSuffixes","formatAbbreviate","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","formatDate","dataArray","formatter","formatHour","formatMillisecond","formatMinute","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarterYear","formatSecond","labelIndex","findIndex","a","firstOrLast","smallArray","yearlySteps","monthlySteps","dailySteps","hourlySteps","reduce","arr","monthDiff","timeSecond","_d","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]}