@formatjs/intl-datetimeformat 7.1.0 → 7.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.
Files changed (60) hide show
  1. package/add-all-tz.js +319 -318
  2. package/add-golden-tz.js +1 -1
  3. package/index.d.ts +1 -1
  4. package/index.js +1 -1
  5. package/package.json +5 -5
  6. package/polyfill-force.js +28 -44
  7. package/polyfill.iife.js +2803 -3046
  8. package/polyfill.js +29 -45
  9. package/should-polyfill.js +38 -50
  10. package/src/abstract/BasicFormatMatcher.d.ts +5 -5
  11. package/src/abstract/BasicFormatMatcher.js +87 -103
  12. package/src/abstract/BestFitFormatMatcher.d.ts +12 -12
  13. package/src/abstract/BestFitFormatMatcher.js +102 -108
  14. package/src/abstract/DateTimeStyleFormat.d.ts +2 -2
  15. package/src/abstract/DateTimeStyleFormat.js +47 -62
  16. package/src/abstract/FormatDateTime.d.ts +7 -7
  17. package/src/abstract/FormatDateTime.js +12 -12
  18. package/src/abstract/FormatDateTimePattern.d.ts +11 -11
  19. package/src/abstract/FormatDateTimePattern.js +185 -198
  20. package/src/abstract/FormatDateTimeRange.d.ts +3 -3
  21. package/src/abstract/FormatDateTimeRange.js +9 -8
  22. package/src/abstract/FormatDateTimeRangeToParts.d.ts +4 -4
  23. package/src/abstract/FormatDateTimeRangeToParts.js +14 -12
  24. package/src/abstract/FormatDateTimeToParts.d.ts +9 -9
  25. package/src/abstract/FormatDateTimeToParts.js +17 -18
  26. package/src/abstract/InitializeDateTimeFormat.d.ts +15 -15
  27. package/src/abstract/InitializeDateTimeFormat.js +206 -184
  28. package/src/abstract/PartitionDateTimePattern.d.ts +8 -8
  29. package/src/abstract/PartitionDateTimePattern.js +15 -14
  30. package/src/abstract/PartitionDateTimeRangePattern.d.ts +4 -4
  31. package/src/abstract/PartitionDateTimeRangePattern.js +168 -161
  32. package/src/abstract/ToDateTimeOptions.d.ts +5 -5
  33. package/src/abstract/ToDateTimeOptions.js +68 -60
  34. package/src/abstract/ToLocalTime.d.ts +21 -21
  35. package/src/abstract/ToLocalTime.js +116 -45
  36. package/src/abstract/skeleton.d.ts +8 -8
  37. package/src/abstract/skeleton.js +231 -280
  38. package/src/abstract/utils.d.ts +1 -1
  39. package/src/abstract/utils.js +21 -20
  40. package/src/core.d.ts +17 -17
  41. package/src/core.js +250 -286
  42. package/src/data/all-tz.generated.d.ts +8 -0
  43. package/src/data/all-tz.generated.js +462 -0
  44. package/src/data/links.generated.d.ts +261 -0
  45. package/src/data/links.generated.js +260 -0
  46. package/src/get_internal_slots.d.ts +3 -1
  47. package/src/get_internal_slots.js +8 -7
  48. package/src/packer.d.ts +2 -2
  49. package/src/packer.js +23 -35
  50. package/src/to_locale_string.d.ts +3 -3
  51. package/src/to_locale_string.js +11 -11
  52. package/src/types.d.ts +34 -39
  53. package/src/types.js +1 -1
  54. package/supported-locales.generated.js +573 -1
  55. package/test262-main.d.ts +4 -1
  56. package/test262-main.js +24600 -44193
  57. package/src/data/all-tz.d.ts +0 -6
  58. package/src/data/all-tz.js +0 -461
  59. package/src/data/links.d.ts +0 -259
  60. package/src/data/links.js +0 -260
@@ -1,164 +1,171 @@
1
- import { PartitionPattern, RangePatternType, SameValue, TimeClip, } from '@formatjs/ecma402-abstract';
2
- import { FormatDateTimePattern, } from './FormatDateTimePattern.js';
3
- import { ToLocalTime } from './ToLocalTime.js';
4
- var TABLE_2_FIELDS = [
5
- 'era',
6
- 'year',
7
- 'month',
8
- 'day',
9
- 'dayPeriod',
10
- 'ampm',
11
- 'hour',
12
- 'minute',
13
- 'second',
14
- 'fractionalSecondDigits',
1
+ import { PartitionPattern, RangePatternType, SameValue, TimeClip } from "@formatjs/ecma402-abstract";
2
+ import { FormatDateTimePattern } from "./FormatDateTimePattern.js";
3
+ import { ToLocalTime } from "./ToLocalTime.js";
4
+ const TABLE_2_FIELDS = [
5
+ "era",
6
+ "year",
7
+ "month",
8
+ "day",
9
+ "dayPeriod",
10
+ "ampm",
11
+ "hour",
12
+ "minute",
13
+ "second",
14
+ "fractionalSecondDigits"
15
15
  ];
16
16
  export function PartitionDateTimeRangePattern(dtf, x, y, implDetails) {
17
- x = TimeClip(x);
18
- if (x.isNaN()) {
19
- throw new RangeError('Invalid start time');
20
- }
21
- y = TimeClip(y);
22
- if (y.isNaN()) {
23
- throw new RangeError('Invalid end time');
24
- }
25
- /** IMPL START */
26
- var getInternalSlots = implDetails.getInternalSlots, tzData = implDetails.tzData, localeData = implDetails.localeData;
27
- var internalSlots = getInternalSlots(dtf);
28
- var dataLocale = internalSlots.dataLocale;
29
- var dataLocaleData = localeData[dataLocale];
30
- /** IMPL END */
31
- var tm1 = ToLocalTime(x,
32
- // @ts-ignore
33
- internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
34
- var tm2 = ToLocalTime(y,
35
- // @ts-ignore
36
- internalSlots.calendar, internalSlots.timeZone, { tzData: tzData });
37
- var pattern = internalSlots.pattern, rangePatterns = internalSlots.rangePatterns;
38
- var rangePattern;
39
- var dateFieldsPracticallyEqual = true;
40
- var patternContainsLargerDateField = false;
41
- for (var _i = 0, TABLE_2_FIELDS_1 = TABLE_2_FIELDS; _i < TABLE_2_FIELDS_1.length; _i++) {
42
- var fieldName = TABLE_2_FIELDS_1[_i];
43
- if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) {
44
- var rp = fieldName in rangePatterns ? rangePatterns[fieldName] : undefined;
45
- if (rangePattern !== undefined && rp === undefined) {
46
- patternContainsLargerDateField = true;
47
- }
48
- else {
49
- rangePattern = rp;
50
- if (fieldName === 'ampm') {
51
- var v1 = tm1.hour;
52
- var v2 = tm2.hour;
53
- if ((v1 > 11 && v2 < 11) || (v1 < 11 && v2 > 11)) {
54
- dateFieldsPracticallyEqual = false;
55
- }
56
- }
57
- else if (fieldName === 'dayPeriod') {
58
- // TODO
59
- }
60
- else if (fieldName === 'fractionalSecondDigits') {
61
- var fractionalSecondDigits = internalSlots.fractionalSecondDigits;
62
- if (fractionalSecondDigits === undefined) {
63
- fractionalSecondDigits = 3;
64
- }
65
- var v1 = Math.floor(tm1.millisecond * Math.pow(10, (fractionalSecondDigits - 3)));
66
- var v2 = Math.floor(tm2.millisecond * Math.pow(10, (fractionalSecondDigits - 3)));
67
- if (!SameValue(v1, v2)) {
68
- dateFieldsPracticallyEqual = false;
69
- }
70
- }
71
- else {
72
- var v1 = tm1[fieldName];
73
- var v2 = tm2[fieldName];
74
- if (!SameValue(v1, v2)) {
75
- dateFieldsPracticallyEqual = false;
76
- }
77
- }
78
- }
79
- }
80
- }
81
- if (dateFieldsPracticallyEqual) {
82
- var result_2 = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
83
- for (var _a = 0, result_1 = result_2; _a < result_1.length; _a++) {
84
- var r = result_1[_a];
85
- r.source = RangePatternType.shared;
86
- }
87
- return result_2;
88
- }
89
- var result = [];
90
- if (rangePattern === undefined) {
91
- rangePattern = rangePatterns.default;
92
- /** IMPL DETAILS */
93
- // If rangePatterns.default is also undefined (e.g., when using dateStyle/timeStyle),
94
- // create a fallback range pattern using the locale's intervalFormatFallback from CLDR
95
- //
96
- // SPEC COMPLIANCE:
97
- // - ECMA-402: https://tc39.es/ecma402/#sec-partitiondatetimerangepattern
98
- // Delegates to CLDR for interval format patterns
99
- // - Unicode LDML UTS #35 Part 4: Dates: https://unicode-org.github.io/cldr/ldml/tr35-dates.html#intervalFormats
100
- // Defines intervalFormatFallback pattern (e.g., "{0} – {1}" or "{1} – {0}")
101
- // where {0} is start datetime and {1} is end datetime
102
- // - ICU4J DateIntervalFormat: Uses setFallbackIntervalPattern() to set locale-specific fallback
103
- // - Firefox SpiderMonkey & WebKit JSC: Both use ICU's UDateIntervalFormat which reads
104
- // intervalFormatFallback from CLDR data internally
105
- //
106
- // LOCALE EXAMPLES from CLDR:
107
- // - English (en): "{0}\u2009–\u2009{1}" (en dash with thin spaces U+2009)
108
- // - Japanese (ja): "{0}~{1}" (wave dash U+301C, no spaces)
109
- // - German (de): "{0}\u2009–\u2009{1}" (en dash with thin spaces)
110
- // - Arabic (ar): "{0}\u2009–\u2009{1}" (en dash with thin spaces)
111
- //
112
- // See: https://github.com/formatjs/formatjs/issues/4168
113
- if (!rangePattern) {
114
- var fallback = dataLocaleData.intervalFormatFallback;
115
- // Parse the fallback pattern (e.g., "{0} – {1}" for English, "{0}~{1}" for Japanese)
116
- // to extract the separator between {0} and {1}
117
- var start0 = fallback.indexOf('{0}');
118
- var start1 = fallback.indexOf('{1}');
119
- var separator = start0 < start1
120
- ? fallback.substring(start0 + 3, start1)
121
- : fallback.substring(start1 + 3, start0);
122
- rangePattern = {
123
- patternParts: start0 < start1
124
- ? [
125
- { source: RangePatternType.startRange, pattern: '{0}' },
126
- { source: RangePatternType.shared, pattern: separator },
127
- { source: RangePatternType.endRange, pattern: '{1}' },
128
- ]
129
- : [
130
- { source: RangePatternType.endRange, pattern: '{1}' },
131
- { source: RangePatternType.shared, pattern: separator },
132
- { source: RangePatternType.startRange, pattern: '{0}' },
133
- ],
134
- };
135
- }
136
- // Now we have to replace {0} & {1} with actual pattern
137
- for (var _b = 0, _c = rangePattern.patternParts; _b < _c.length; _b++) {
138
- var patternPart = _c[_b];
139
- if (patternPart.pattern === '{0}' || patternPart.pattern === '{1}') {
140
- patternPart.pattern = pattern;
141
- }
142
- }
143
- }
144
- for (var _d = 0, _e = rangePattern.patternParts; _d < _e.length; _d++) {
145
- var rangePatternPart = _e[_d];
146
- var source = rangePatternPart.source, pattern_1 = rangePatternPart.pattern;
147
- var z = void 0;
148
- if (source === RangePatternType.startRange ||
149
- source === RangePatternType.shared) {
150
- z = x;
151
- }
152
- else {
153
- z = y;
154
- }
155
- var patternParts = PartitionPattern(pattern_1);
156
- var partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails);
157
- for (var _f = 0, partResult_1 = partResult; _f < partResult_1.length; _f++) {
158
- var r = partResult_1[_f];
159
- r.source = source;
160
- }
161
- result = result.concat(partResult);
162
- }
163
- return result;
17
+ x = TimeClip(x);
18
+ if (x.isNaN()) {
19
+ throw new RangeError("Invalid start time");
20
+ }
21
+ y = TimeClip(y);
22
+ if (y.isNaN()) {
23
+ throw new RangeError("Invalid end time");
24
+ }
25
+ /** IMPL START */
26
+ const { getInternalSlots, tzData, localeData } = implDetails;
27
+ const internalSlots = getInternalSlots(dtf);
28
+ const dataLocale = internalSlots.dataLocale;
29
+ const dataLocaleData = localeData[dataLocale];
30
+ /** IMPL END */
31
+ const tm1 = ToLocalTime(
32
+ x,
33
+ // @ts-ignore
34
+ internalSlots.calendar,
35
+ internalSlots.timeZone,
36
+ { tzData }
37
+ );
38
+ const tm2 = ToLocalTime(
39
+ y,
40
+ // @ts-ignore
41
+ internalSlots.calendar,
42
+ internalSlots.timeZone,
43
+ { tzData }
44
+ );
45
+ const { pattern, rangePatterns } = internalSlots;
46
+ let rangePattern;
47
+ let dateFieldsPracticallyEqual = true;
48
+ let patternContainsLargerDateField = false;
49
+ for (const fieldName of TABLE_2_FIELDS) {
50
+ if (dateFieldsPracticallyEqual && !patternContainsLargerDateField) {
51
+ let rp = fieldName in rangePatterns ? rangePatterns[fieldName] : undefined;
52
+ if (rangePattern !== undefined && rp === undefined) {
53
+ patternContainsLargerDateField = true;
54
+ } else {
55
+ rangePattern = rp;
56
+ if (fieldName === "ampm") {
57
+ let v1 = tm1.hour;
58
+ let v2 = tm2.hour;
59
+ if (v1 > 11 && v2 < 11 || v1 < 11 && v2 > 11) {
60
+ dateFieldsPracticallyEqual = false;
61
+ }
62
+ } else if (fieldName === "dayPeriod") {} else if (fieldName === "fractionalSecondDigits") {
63
+ let fractionalSecondDigits = internalSlots.fractionalSecondDigits;
64
+ if (fractionalSecondDigits === undefined) {
65
+ fractionalSecondDigits = 3;
66
+ }
67
+ let v1 = Math.floor(tm1.millisecond * 10 ** (fractionalSecondDigits - 3));
68
+ let v2 = Math.floor(tm2.millisecond * 10 ** (fractionalSecondDigits - 3));
69
+ if (!SameValue(v1, v2)) {
70
+ dateFieldsPracticallyEqual = false;
71
+ }
72
+ } else {
73
+ let v1 = tm1[fieldName];
74
+ let v2 = tm2[fieldName];
75
+ if (!SameValue(v1, v2)) {
76
+ dateFieldsPracticallyEqual = false;
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ if (dateFieldsPracticallyEqual) {
83
+ let result = FormatDateTimePattern(dtf, PartitionPattern(pattern), x, implDetails);
84
+ for (const r of result) {
85
+ r.source = RangePatternType.shared;
86
+ }
87
+ return result;
88
+ }
89
+ let result = [];
90
+ if (rangePattern === undefined) {
91
+ rangePattern = rangePatterns.default;
92
+ /** IMPL DETAILS */
93
+ // If rangePatterns.default is also undefined (e.g., when using dateStyle/timeStyle),
94
+ // create a fallback range pattern using the locale's intervalFormatFallback from CLDR
95
+ //
96
+ // SPEC COMPLIANCE:
97
+ // - ECMA-402: https://tc39.es/ecma402/#sec-partitiondatetimerangepattern
98
+ // Delegates to CLDR for interval format patterns
99
+ // - Unicode LDML UTS #35 Part 4: Dates: https://unicode-org.github.io/cldr/ldml/tr35-dates.html#intervalFormats
100
+ // Defines intervalFormatFallback pattern (e.g., "{0} – {1}" or "{1} – {0}")
101
+ // where {0} is start datetime and {1} is end datetime
102
+ // - ICU4J DateIntervalFormat: Uses setFallbackIntervalPattern() to set locale-specific fallback
103
+ // - Firefox SpiderMonkey & WebKit JSC: Both use ICU's UDateIntervalFormat which reads
104
+ // intervalFormatFallback from CLDR data internally
105
+ //
106
+ // LOCALE EXAMPLES from CLDR:
107
+ // - English (en): "{0}\u2009–\u2009{1}" (en dash with thin spaces U+2009)
108
+ // - Japanese (ja): "{0}~{1}" (wave dash U+301C, no spaces)
109
+ // - German (de): "{0}\u2009–\u2009{1}" (en dash with thin spaces)
110
+ // - Arabic (ar): "{0}\u2009–\u2009{1}" (en dash with thin spaces)
111
+ //
112
+ // See: https://github.com/formatjs/formatjs/issues/4168
113
+ if (!rangePattern) {
114
+ const fallback = dataLocaleData.intervalFormatFallback;
115
+ // Parse the fallback pattern (e.g., "{0} – {1}" for English, "{0}~{1}" for Japanese)
116
+ // to extract the separator between {0} and {1}
117
+ const start0 = fallback.indexOf("{0}");
118
+ const start1 = fallback.indexOf("{1}");
119
+ const separator = start0 < start1 ? fallback.substring(start0 + 3, start1) : fallback.substring(start1 + 3, start0);
120
+ rangePattern = { patternParts: start0 < start1 ? [
121
+ {
122
+ source: RangePatternType.startRange,
123
+ pattern: "{0}"
124
+ },
125
+ {
126
+ source: RangePatternType.shared,
127
+ pattern: separator
128
+ },
129
+ {
130
+ source: RangePatternType.endRange,
131
+ pattern: "{1}"
132
+ }
133
+ ] : [
134
+ {
135
+ source: RangePatternType.endRange,
136
+ pattern: "{1}"
137
+ },
138
+ {
139
+ source: RangePatternType.shared,
140
+ pattern: separator
141
+ },
142
+ {
143
+ source: RangePatternType.startRange,
144
+ pattern: "{0}"
145
+ }
146
+ ] };
147
+ }
148
+ // Now we have to replace {0} & {1} with actual pattern
149
+ for (const patternPart of rangePattern.patternParts) {
150
+ if (patternPart.pattern === "{0}" || patternPart.pattern === "{1}") {
151
+ patternPart.pattern = pattern;
152
+ }
153
+ }
154
+ }
155
+ for (const rangePatternPart of rangePattern.patternParts) {
156
+ const { source, pattern } = rangePatternPart;
157
+ let z;
158
+ if (source === RangePatternType.startRange || source === RangePatternType.shared) {
159
+ z = x;
160
+ } else {
161
+ z = y;
162
+ }
163
+ const patternParts = PartitionPattern(pattern);
164
+ let partResult = FormatDateTimePattern(dtf, patternParts, z, implDetails);
165
+ for (const r of partResult) {
166
+ r.source = source;
167
+ }
168
+ result = result.concat(partResult);
169
+ }
170
+ return result;
164
171
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
- * https://tc39.es/ecma402/#sec-todatetimeoptions
3
- * @param options
4
- * @param required
5
- * @param defaults
6
- */
2
+ * https://tc39.es/ecma402/#sec-todatetimeoptions
3
+ * @param options
4
+ * @param required
5
+ * @param defaults
6
+ */
7
7
  export declare function ToDateTimeOptions(options?: Intl.DateTimeFormatOptions | null, required?: string, defaults?: string): Intl.DateTimeFormatOptions;
@@ -1,63 +1,71 @@
1
- import { ToObject } from '@formatjs/ecma402-abstract';
1
+ import { ToObject } from "@formatjs/ecma402-abstract";
2
2
  /**
3
- * https://tc39.es/ecma402/#sec-todatetimeoptions
4
- * @param options
5
- * @param required
6
- * @param defaults
7
- */
3
+ * https://tc39.es/ecma402/#sec-todatetimeoptions
4
+ * @param options
5
+ * @param required
6
+ * @param defaults
7
+ */
8
8
  export function ToDateTimeOptions(options, required, defaults) {
9
- if (options === undefined) {
10
- options = null;
11
- }
12
- else {
13
- options = ToObject(options);
14
- }
15
- options = Object.create(options);
16
- var needDefaults = true;
17
- if (required === 'date' || required === 'any') {
18
- for (var _i = 0, _a = ['weekday', 'year', 'month', 'day']; _i < _a.length; _i++) {
19
- var prop = _a[_i];
20
- var value = options[prop];
21
- if (value !== undefined) {
22
- needDefaults = false;
23
- }
24
- }
25
- }
26
- if (required === 'time' || required === 'any') {
27
- for (var _b = 0, _c = [
28
- 'dayPeriod',
29
- 'hour',
30
- 'minute',
31
- 'second',
32
- 'fractionalSecondDigits',
33
- ]; _b < _c.length; _b++) {
34
- var prop = _c[_b];
35
- var value = options[prop];
36
- if (value !== undefined) {
37
- needDefaults = false;
38
- }
39
- }
40
- }
41
- if (options.dateStyle !== undefined || options.timeStyle !== undefined) {
42
- needDefaults = false;
43
- }
44
- if (required === 'date' && options.timeStyle) {
45
- throw new TypeError('Intl.DateTimeFormat date was required but timeStyle was included');
46
- }
47
- if (required === 'time' && options.dateStyle) {
48
- throw new TypeError('Intl.DateTimeFormat time was required but dateStyle was included');
49
- }
50
- if (needDefaults && (defaults === 'date' || defaults === 'all')) {
51
- for (var _d = 0, _e = ['year', 'month', 'day']; _d < _e.length; _d++) {
52
- var prop = _e[_d];
53
- options[prop] = 'numeric';
54
- }
55
- }
56
- if (needDefaults && (defaults === 'time' || defaults === 'all')) {
57
- for (var _f = 0, _g = ['hour', 'minute', 'second']; _f < _g.length; _f++) {
58
- var prop = _g[_f];
59
- options[prop] = 'numeric';
60
- }
61
- }
62
- return options;
9
+ if (options === undefined) {
10
+ options = null;
11
+ } else {
12
+ options = ToObject(options);
13
+ }
14
+ options = Object.create(options);
15
+ let needDefaults = true;
16
+ if (required === "date" || required === "any") {
17
+ for (const prop of [
18
+ "weekday",
19
+ "year",
20
+ "month",
21
+ "day"
22
+ ]) {
23
+ const value = options[prop];
24
+ if (value !== undefined) {
25
+ needDefaults = false;
26
+ }
27
+ }
28
+ }
29
+ if (required === "time" || required === "any") {
30
+ for (const prop of [
31
+ "dayPeriod",
32
+ "hour",
33
+ "minute",
34
+ "second",
35
+ "fractionalSecondDigits"
36
+ ]) {
37
+ const value = options[prop];
38
+ if (value !== undefined) {
39
+ needDefaults = false;
40
+ }
41
+ }
42
+ }
43
+ if (options.dateStyle !== undefined || options.timeStyle !== undefined) {
44
+ needDefaults = false;
45
+ }
46
+ if (required === "date" && options.timeStyle) {
47
+ throw new TypeError("Intl.DateTimeFormat date was required but timeStyle was included");
48
+ }
49
+ if (required === "time" && options.dateStyle) {
50
+ throw new TypeError("Intl.DateTimeFormat time was required but dateStyle was included");
51
+ }
52
+ if (needDefaults && (defaults === "date" || defaults === "all")) {
53
+ for (const prop of [
54
+ "year",
55
+ "month",
56
+ "day"
57
+ ]) {
58
+ options[prop] = "numeric";
59
+ }
60
+ }
61
+ if (needDefaults && (defaults === "time" || defaults === "all")) {
62
+ for (const prop of [
63
+ "hour",
64
+ "minute",
65
+ "second"
66
+ ]) {
67
+ options[prop] = "numeric";
68
+ }
69
+ }
70
+ return options;
63
71
  }
@@ -1,26 +1,26 @@
1
- import { UnpackedZoneData } from '@formatjs/ecma402-abstract';
2
- import Decimal from 'decimal.js';
1
+ import { type UnpackedZoneData } from "@formatjs/ecma402-abstract";
2
+ import type Decimal from "decimal.js";
3
3
  export interface ToLocalTimeImplDetails {
4
- tzData: Record<string, UnpackedZoneData[]>;
4
+ tzData: Record<string, UnpackedZoneData[]>;
5
5
  }
6
6
  /**
7
- * https://tc39.es/ecma402/#sec-tolocaltime
8
- * @param t
9
- * @param calendar
10
- * @param timeZone
11
- */
7
+ * https://tc39.es/ecma402/#sec-tolocaltime
8
+ * @param t
9
+ * @param calendar
10
+ * @param timeZone
11
+ */
12
12
  export declare function ToLocalTime(t: Decimal, calendar: string, timeZone: string, { tzData }: ToLocalTimeImplDetails): {
13
- weekday: number;
14
- era: string;
15
- year: number;
16
- relatedYear: undefined;
17
- yearName: undefined;
18
- month: number;
19
- day: number;
20
- hour: number;
21
- minute: number;
22
- second: number;
23
- millisecond: number;
24
- inDST: boolean;
25
- timeZoneOffset: number;
13
+ weekday: number;
14
+ era: string;
15
+ year: number;
16
+ relatedYear: undefined;
17
+ yearName: undefined;
18
+ month: number;
19
+ day: number;
20
+ hour: number;
21
+ minute: number;
22
+ second: number;
23
+ millisecond: number;
24
+ inDST: boolean;
25
+ timeZoneOffset: number;
26
26
  };