@d3plus/format 3.1.0 → 3.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/es/index.js +2 -0
- package/es/index.js.map +1 -0
- package/es/src/format.js +2 -0
- package/es/src/format.js.map +1 -0
- package/es/src/formatAbbreviate.js +2 -0
- package/es/src/formatAbbreviate.js.map +1 -0
- package/es/src/formatDate.js +2 -0
- package/es/src/formatDate.js.map +1 -0
- package/es/src/formatDefaultLocale.js +2 -0
- package/es/src/formatDefaultLocale.js.map +1 -0
- package/package.json +4 -3
- package/umd/d3plus-format.full.js +1 -1
- package/umd/d3plus-format.full.js.map +1 -1
- package/umd/d3plus-format.full.min.js +1 -1
- package/umd/d3plus-format.js +1 -1
- package/umd/d3plus-format.min.js +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# @d3plus/format
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@d3plus/format)
|
|
4
|
+
[](https://codecov.io/gh/d3plus/d3plus/flags)
|
|
5
|
+
|
|
3
6
|
JavaScript formatters for localized numbers and dates.
|
|
4
7
|
|
|
5
8
|
## Installing
|
|
@@ -40,7 +43,7 @@ Live examples can be found on [d3plus.org](https://d3plus.org/), which includes
|
|
|
40
43
|
|
|
41
44
|
> **format**(`specifier`: `string`): `Formatter`
|
|
42
45
|
|
|
43
|
-
Defined in: [format.ts:10](https://github.com/d3plus/d3plus/blob/
|
|
46
|
+
Defined in: [format.ts:10](https://github.com/d3plus/d3plus/blob/35025276b7e98271b21e2a83ec03c1025ea4cb11/packages/format/src/format.ts#L10)
|
|
44
47
|
|
|
45
48
|
#### Parameters
|
|
46
49
|
|
|
@@ -60,7 +63,7 @@ Defined in: [format.ts:10](https://github.com/d3plus/d3plus/blob/e9db3c74352143c
|
|
|
60
63
|
|
|
61
64
|
> **formatAbbreviate**(`n`: `string` \| `number`, `locale?`: `string` \| `FormatLocaleDefinition`, `precision?`: `string`): `string`
|
|
62
65
|
|
|
63
|
-
Defined in: [formatAbbreviate.ts:55](https://github.com/d3plus/d3plus/blob/
|
|
66
|
+
Defined in: [formatAbbreviate.ts:55](https://github.com/d3plus/d3plus/blob/35025276b7e98271b21e2a83ec03c1025ea4cb11/packages/format/src/formatAbbreviate.ts#L55)
|
|
64
67
|
|
|
65
68
|
Formats a number to an appropriate number of decimal places and rounding, adding suffixes if applicable (ie. `1200000` to `"1.2M"`).
|
|
66
69
|
|
|
@@ -84,7 +87,7 @@ Formats a number to an appropriate number of decimal places and rounding, adding
|
|
|
84
87
|
|
|
85
88
|
> **formatDate**(`d`: `Date`, `dataArray`: `Date`[], `formatter?`: `DateFormatter`): `string`
|
|
86
89
|
|
|
87
|
-
Defined in: [formatDate.ts:12](https://github.com/d3plus/d3plus/blob/
|
|
90
|
+
Defined in: [formatDate.ts:12](https://github.com/d3plus/d3plus/blob/35025276b7e98271b21e2a83ec03c1025ea4cb11/packages/format/src/formatDate.ts#L12)
|
|
88
91
|
|
|
89
92
|
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.
|
|
90
93
|
|
|
@@ -108,7 +111,7 @@ A default set of date formatters, which takes into account both the interval in
|
|
|
108
111
|
|
|
109
112
|
> **formatDefaultLocale**(`definition`: `FormatLocaleDefinition`): `Record`\<`string`, `unknown`\>
|
|
110
113
|
|
|
111
|
-
Defined in: [formatDefaultLocale.ts:8](https://github.com/d3plus/d3plus/blob/
|
|
114
|
+
Defined in: [formatDefaultLocale.ts:8](https://github.com/d3plus/d3plus/blob/35025276b7e98271b21e2a83ec03c1025ea4cb11/packages/format/src/formatDefaultLocale.ts#L8)
|
|
112
115
|
|
|
113
116
|
An extension to d3's [formatDefaultLocale](https://github.com/d3/d3-format#api-reference) function that allows setting the locale globally for formatters.
|
|
114
117
|
|
package/es/index.js
CHANGED
|
@@ -2,3 +2,5 @@ export { default as format } from "./src/format.js";
|
|
|
2
2
|
export { default as formatDefaultLocale } from "./src/formatDefaultLocale.js";
|
|
3
3
|
export { default as formatAbbreviate } from "./src/formatAbbreviate.js";
|
|
4
4
|
export { default as formatDate } from "./src/formatDate.js";
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../index.ts"],"sourcesContent":["export {default as format} from \"./src/format.js\";\nexport {default as formatDefaultLocale} from \"./src/formatDefaultLocale.js\";\n\nexport {default as formatAbbreviate} from \"./src/formatAbbreviate.js\";\nexport {default as formatDate} from \"./src/formatDate.js\";\n"],"names":["default","format","formatDefaultLocale","formatAbbreviate","formatDate"],"mappings":"AAAA,SAAQA,WAAWC,MAAM,QAAO,kBAAkB;AAClD,SAAQD,WAAWE,mBAAmB,QAAO,+BAA+B;AAE5E,SAAQF,WAAWG,gBAAgB,QAAO,4BAA4B;AACtE,SAAQH,WAAWI,UAAU,QAAO,sBAAsB"}
|
package/es/src/format.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/format.ts"],"sourcesContent":["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"],"names":["abbreviate","format","specifier"],"mappings":"AAAA,OAAOA,gBAAgB,wBAAwB;AAC/C,SAAQC,MAAM,QAAO,YAAY;AAQjC,eAAe,SAAUC,SAAiB;IACxC,IAAIA,cAAc,QAAQ,OAAOF;IACjC,OAAOC,OAAOC;AAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/formatAbbreviate.ts"],"sourcesContent":["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"],"names":["formatLocale","defaultLocale","round","x","n","parseFloat","Math","pow","toString","toFixed","formatSuffix","str","precision","suffixes","i","value","replace","floor","log","LN10","max","min","d","number","scale","symbol","parseSuffixes","k","abs","formatAbbreviate","locale","isFinite","negative","length","split","localeConfig","map","decimal","delimiters","separator","thousands","d3plusFormatLocale","currency","grouping","val","format","f","num","char","charAt"],"mappings":"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"}
|
package/es/src/formatDate.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/formatDate.ts"],"sourcesContent":["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":["timeYear","timeMonth","timeHour","timeMinute","timeSecond","timeFormat","formatDate","d","dataArray","formatter","formatHour","formatMillisecond","formatMinute","formatMonth","formatMonthDay","formatMonthDayYear","formatMonthYear","formatQuarter","formatQuarterYear","formatSecond","formatYear","labelIndex","findIndex","a","firstOrLast","length","smallArray","reduce","arr","i","push","getFullYear","monthDiff","Math","round","yearlySteps","monthlySteps","dailySteps","hourlySteps","every","s","_d","toString","d1","d2","months","getMonth"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/formatDefaultLocale.ts"],"sourcesContent":["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"],"names":["format","formatDefaultLocale","definition","locale"],"mappings":"AAAA,OAAOA,YAAY,cAAc;AACjC,SAAQC,mBAAmB,QAAO,YAAY;AAE9C;;;AAGA,GACA,eAAe,SACbC,UAAqD;IAErD,IAAMC,SAASF,oBAAoBC;IAInCC,OAAOH,MAAM,GAAGA;IAChB,OAAOG;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@d3plus/format",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2",
|
|
4
4
|
"description": "JavaScript formatters for localized numbers and dates.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -38,13 +38,14 @@
|
|
|
38
38
|
"d3-format": "^3.1.0",
|
|
39
39
|
"d3-time": "^3.1.0",
|
|
40
40
|
"d3-time-format": "^4.1.0",
|
|
41
|
-
"@d3plus/locales": "3.1.
|
|
41
|
+
"@d3plus/locales": "3.1.2"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build:esm": "node ../../scripts/build-esm.js",
|
|
45
45
|
"build:types": "tsc",
|
|
46
46
|
"build:umd": "node ../../scripts/build-umd.js",
|
|
47
47
|
"dev": "node ../../scripts/dev.js",
|
|
48
|
-
"test": "eslint index.ts src/**/*.ts && eslint --global=it test && mocha 'test/**/*-test.js'"
|
|
48
|
+
"test": "eslint index.ts src/**/*.ts && eslint --global=it test && mocha 'test/**/*-test.js'",
|
|
49
|
+
"test:coverage": "c8 -r text -r lcov --src src mocha 'test/**/*-test.js'"
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -1 +1 @@
|
|
|
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]}
|
|
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\n//# sourceMappingURL=formatLocale.js.map","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]}
|
package/umd/d3plus-format.js
CHANGED
package/umd/d3plus-format.min.js
CHANGED