@formatjs/ecma402-abstract 1.7.1 → 1.9.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/NumberFormat/format_to_parts.d.ts.map +1 -1
- package/NumberFormat/format_to_parts.js +3 -3
- package/index.d.ts +1 -23
- package/index.d.ts.map +1 -1
- package/index.js +13 -38
- package/lib/NumberFormat/format_to_parts.d.ts.map +1 -1
- package/lib/NumberFormat/format_to_parts.js +1 -1
- package/lib/index.d.ts +1 -23
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -23
- package/lib/regex.generated.d.ts +2 -0
- package/lib/regex.generated.d.ts.map +1 -0
- package/lib/regex.generated.js +2 -0
- package/lib/types/date-time.d.ts +2 -1
- package/lib/types/date-time.d.ts.map +1 -1
- package/package.json +1 -1
- package/regex.generated.d.ts +2 -0
- package/regex.generated.d.ts.map +1 -0
- package/regex.generated.js +5 -0
- package/types/date-time.d.ts +2 -1
- package/types/date-time.d.ts.map +1 -1
- package/DateTimeFormat/BasicFormatMatcher.d.ts +0 -8
- package/DateTimeFormat/BasicFormatMatcher.d.ts.map +0 -1
- package/DateTimeFormat/BasicFormatMatcher.js +0 -61
- package/DateTimeFormat/BestFitFormatMatcher.d.ts +0 -17
- package/DateTimeFormat/BestFitFormatMatcher.d.ts.map +0 -1
- package/DateTimeFormat/BestFitFormatMatcher.js +0 -121
- package/DateTimeFormat/DateTimeStyleFormat.d.ts +0 -3
- package/DateTimeFormat/DateTimeStyleFormat.d.ts.map +0 -1
- package/DateTimeFormat/DateTimeStyleFormat.js +0 -54
- package/DateTimeFormat/FormatDateTime.d.ts +0 -8
- package/DateTimeFormat/FormatDateTime.d.ts.map +0 -1
- package/DateTimeFormat/FormatDateTime.js +0 -19
- package/DateTimeFormat/FormatDateTimePattern.d.ts +0 -14
- package/DateTimeFormat/FormatDateTimePattern.d.ts.map +0 -1
- package/DateTimeFormat/FormatDateTimePattern.js +0 -182
- package/DateTimeFormat/FormatDateTimeRange.d.ts +0 -4
- package/DateTimeFormat/FormatDateTimeRange.d.ts.map +0 -1
- package/DateTimeFormat/FormatDateTimeRange.js +0 -14
- package/DateTimeFormat/FormatDateTimeRangeToParts.d.ts +0 -4
- package/DateTimeFormat/FormatDateTimeRangeToParts.d.ts.map +0 -1
- package/DateTimeFormat/FormatDateTimeRangeToParts.js +0 -18
- package/DateTimeFormat/FormatDateTimeToParts.d.ts +0 -11
- package/DateTimeFormat/FormatDateTimeToParts.d.ts.map +0 -1
- package/DateTimeFormat/FormatDateTimeToParts.js +0 -25
- package/DateTimeFormat/InitializeDateTimeFormat.d.ts +0 -18
- package/DateTimeFormat/InitializeDateTimeFormat.d.ts.map +0 -1
- package/DateTimeFormat/InitializeDateTimeFormat.js +0 -188
- package/DateTimeFormat/PartitionDateTimePattern.d.ts +0 -10
- package/DateTimeFormat/PartitionDateTimePattern.d.ts.map +0 -1
- package/DateTimeFormat/PartitionDateTimePattern.js +0 -24
- package/DateTimeFormat/PartitionDateTimeRangePattern.d.ts +0 -5
- package/DateTimeFormat/PartitionDateTimeRangePattern.d.ts.map +0 -1
- package/DateTimeFormat/PartitionDateTimeRangePattern.js +0 -128
- package/DateTimeFormat/ToDateTimeOptions.d.ts +0 -9
- package/DateTimeFormat/ToDateTimeOptions.d.ts.map +0 -1
- package/DateTimeFormat/ToDateTimeOptions.js +0 -67
- package/DateTimeFormat/ToLocalTime.d.ts +0 -26
- package/DateTimeFormat/ToLocalTime.d.ts.map +0 -1
- package/DateTimeFormat/ToLocalTime.js +0 -55
- package/DateTimeFormat/skeleton.d.ts +0 -14
- package/DateTimeFormat/skeleton.d.ts.map +0 -1
- package/DateTimeFormat/skeleton.js +0 -301
- package/DateTimeFormat/utils.d.ts +0 -10
- package/DateTimeFormat/utils.d.ts.map +0 -1
- package/DateTimeFormat/utils.js +0 -21
- package/DisplayNames/CanonicalCodeForDisplayNames.d.ts +0 -2
- package/DisplayNames/CanonicalCodeForDisplayNames.d.ts.map +0 -1
- package/DisplayNames/CanonicalCodeForDisplayNames.js +0 -37
- package/PluralRules/GetOperands.d.ts +0 -32
- package/PluralRules/GetOperands.d.ts.map +0 -1
- package/PluralRules/GetOperands.js +0 -51
- package/PluralRules/InitializePluralRules.d.ts +0 -9
- package/PluralRules/InitializePluralRules.d.ts.map +0 -1
- package/PluralRules/InitializePluralRules.js +0 -24
- package/PluralRules/ResolvePlural.d.ts +0 -13
- package/PluralRules/ResolvePlural.d.ts.map +0 -1
- package/PluralRules/ResolvePlural.js +0 -29
- package/RelativeTimeFormat/FormatRelativeTime.d.ts +0 -5
- package/RelativeTimeFormat/FormatRelativeTime.d.ts.map +0 -1
- package/RelativeTimeFormat/FormatRelativeTime.js +0 -14
- package/RelativeTimeFormat/FormatRelativeTimeToParts.d.ts +0 -5
- package/RelativeTimeFormat/FormatRelativeTimeToParts.d.ts.map +0 -1
- package/RelativeTimeFormat/FormatRelativeTimeToParts.js +0 -22
- package/RelativeTimeFormat/InitializeRelativeTimeFormat.d.ts +0 -9
- package/RelativeTimeFormat/InitializeRelativeTimeFormat.d.ts.map +0 -1
- package/RelativeTimeFormat/InitializeRelativeTimeFormat.js +0 -41
- package/RelativeTimeFormat/MakePartsList.d.ts +0 -2
- package/RelativeTimeFormat/MakePartsList.d.ts.map +0 -1
- package/RelativeTimeFormat/MakePartsList.js +0 -31
- package/RelativeTimeFormat/PartitionRelativeTimePattern.d.ts +0 -5
- package/RelativeTimeFormat/PartitionRelativeTimePattern.d.ts.map +0 -1
- package/RelativeTimeFormat/PartitionRelativeTimePattern.js +0 -58
- package/RelativeTimeFormat/SingularRelativeTimeUnit.d.ts +0 -7
- package/RelativeTimeFormat/SingularRelativeTimeUnit.d.ts.map +0 -1
- package/RelativeTimeFormat/SingularRelativeTimeUnit.js +0 -40
- package/lib/DateTimeFormat/BasicFormatMatcher.d.ts +0 -8
- package/lib/DateTimeFormat/BasicFormatMatcher.d.ts.map +0 -1
- package/lib/DateTimeFormat/BasicFormatMatcher.js +0 -57
- package/lib/DateTimeFormat/BestFitFormatMatcher.d.ts +0 -17
- package/lib/DateTimeFormat/BestFitFormatMatcher.d.ts.map +0 -1
- package/lib/DateTimeFormat/BestFitFormatMatcher.js +0 -116
- package/lib/DateTimeFormat/DateTimeStyleFormat.d.ts +0 -3
- package/lib/DateTimeFormat/DateTimeStyleFormat.d.ts.map +0 -1
- package/lib/DateTimeFormat/DateTimeStyleFormat.js +0 -50
- package/lib/DateTimeFormat/FormatDateTime.d.ts +0 -8
- package/lib/DateTimeFormat/FormatDateTime.d.ts.map +0 -1
- package/lib/DateTimeFormat/FormatDateTime.js +0 -15
- package/lib/DateTimeFormat/FormatDateTimePattern.d.ts +0 -14
- package/lib/DateTimeFormat/FormatDateTimePattern.d.ts.map +0 -1
- package/lib/DateTimeFormat/FormatDateTimePattern.js +0 -178
- package/lib/DateTimeFormat/FormatDateTimeRange.d.ts +0 -4
- package/lib/DateTimeFormat/FormatDateTimeRange.d.ts.map +0 -1
- package/lib/DateTimeFormat/FormatDateTimeRange.js +0 -10
- package/lib/DateTimeFormat/FormatDateTimeRangeToParts.d.ts +0 -4
- package/lib/DateTimeFormat/FormatDateTimeRangeToParts.d.ts.map +0 -1
- package/lib/DateTimeFormat/FormatDateTimeRangeToParts.js +0 -14
- package/lib/DateTimeFormat/FormatDateTimeToParts.d.ts +0 -11
- package/lib/DateTimeFormat/FormatDateTimeToParts.d.ts.map +0 -1
- package/lib/DateTimeFormat/FormatDateTimeToParts.js +0 -21
- package/lib/DateTimeFormat/InitializeDateTimeFormat.d.ts +0 -18
- package/lib/DateTimeFormat/InitializeDateTimeFormat.d.ts.map +0 -1
- package/lib/DateTimeFormat/InitializeDateTimeFormat.js +0 -184
- package/lib/DateTimeFormat/PartitionDateTimePattern.d.ts +0 -10
- package/lib/DateTimeFormat/PartitionDateTimePattern.d.ts.map +0 -1
- package/lib/DateTimeFormat/PartitionDateTimePattern.js +0 -20
- package/lib/DateTimeFormat/PartitionDateTimeRangePattern.d.ts +0 -5
- package/lib/DateTimeFormat/PartitionDateTimeRangePattern.d.ts.map +0 -1
- package/lib/DateTimeFormat/PartitionDateTimeRangePattern.js +0 -124
- package/lib/DateTimeFormat/ToDateTimeOptions.d.ts +0 -9
- package/lib/DateTimeFormat/ToDateTimeOptions.d.ts.map +0 -1
- package/lib/DateTimeFormat/ToDateTimeOptions.js +0 -63
- package/lib/DateTimeFormat/ToLocalTime.d.ts +0 -26
- package/lib/DateTimeFormat/ToLocalTime.d.ts.map +0 -1
- package/lib/DateTimeFormat/ToLocalTime.js +0 -51
- package/lib/DateTimeFormat/skeleton.d.ts +0 -14
- package/lib/DateTimeFormat/skeleton.d.ts.map +0 -1
- package/lib/DateTimeFormat/skeleton.js +0 -294
- package/lib/DateTimeFormat/utils.d.ts +0 -10
- package/lib/DateTimeFormat/utils.d.ts.map +0 -1
- package/lib/DateTimeFormat/utils.js +0 -18
- package/lib/DisplayNames/CanonicalCodeForDisplayNames.d.ts +0 -2
- package/lib/DisplayNames/CanonicalCodeForDisplayNames.d.ts.map +0 -1
- package/lib/DisplayNames/CanonicalCodeForDisplayNames.js +0 -33
- package/lib/PluralRules/GetOperands.d.ts +0 -32
- package/lib/PluralRules/GetOperands.d.ts.map +0 -1
- package/lib/PluralRules/GetOperands.js +0 -47
- package/lib/PluralRules/InitializePluralRules.d.ts +0 -9
- package/lib/PluralRules/InitializePluralRules.d.ts.map +0 -1
- package/lib/PluralRules/InitializePluralRules.js +0 -20
- package/lib/PluralRules/ResolvePlural.d.ts +0 -13
- package/lib/PluralRules/ResolvePlural.d.ts.map +0 -1
- package/lib/PluralRules/ResolvePlural.js +0 -25
- package/lib/RelativeTimeFormat/FormatRelativeTime.d.ts +0 -5
- package/lib/RelativeTimeFormat/FormatRelativeTime.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/FormatRelativeTime.js +0 -10
- package/lib/RelativeTimeFormat/FormatRelativeTimeToParts.d.ts +0 -5
- package/lib/RelativeTimeFormat/FormatRelativeTimeToParts.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/FormatRelativeTimeToParts.js +0 -18
- package/lib/RelativeTimeFormat/InitializeRelativeTimeFormat.d.ts +0 -9
- package/lib/RelativeTimeFormat/InitializeRelativeTimeFormat.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/InitializeRelativeTimeFormat.js +0 -37
- package/lib/RelativeTimeFormat/MakePartsList.d.ts +0 -2
- package/lib/RelativeTimeFormat/MakePartsList.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/MakePartsList.js +0 -27
- package/lib/RelativeTimeFormat/PartitionRelativeTimePattern.d.ts +0 -5
- package/lib/RelativeTimeFormat/PartitionRelativeTimePattern.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/PartitionRelativeTimePattern.js +0 -54
- package/lib/RelativeTimeFormat/SingularRelativeTimeUnit.d.ts +0 -7
- package/lib/RelativeTimeFormat/SingularRelativeTimeUnit.d.ts.map +0 -1
- package/lib/RelativeTimeFormat/SingularRelativeTimeUnit.js +0 -36
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.splitRangePattern = exports.splitFallbackRangePattern = exports.parseDateTimeSkeleton = exports.processDateTimePattern = void 0;
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var date_time_1 = require("../types/date-time");
|
|
6
|
-
/**
|
|
7
|
-
* https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
|
8
|
-
* Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js
|
|
9
|
-
* with some tweaks
|
|
10
|
-
*/
|
|
11
|
-
var DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;
|
|
12
|
-
// trim patterns after transformations
|
|
13
|
-
var expPatternTrimmer = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
|
|
14
|
-
function matchSkeletonPattern(match, result) {
|
|
15
|
-
var len = match.length;
|
|
16
|
-
switch (match[0]) {
|
|
17
|
-
// Era
|
|
18
|
-
case 'G':
|
|
19
|
-
result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';
|
|
20
|
-
return '{era}';
|
|
21
|
-
// Year
|
|
22
|
-
case 'y':
|
|
23
|
-
case 'Y':
|
|
24
|
-
case 'u':
|
|
25
|
-
case 'U':
|
|
26
|
-
case 'r':
|
|
27
|
-
result.year = len === 2 ? '2-digit' : 'numeric';
|
|
28
|
-
return '{year}';
|
|
29
|
-
// Quarter
|
|
30
|
-
case 'q':
|
|
31
|
-
case 'Q':
|
|
32
|
-
throw new RangeError('`w/Q` (quarter) patterns are not supported');
|
|
33
|
-
// Month
|
|
34
|
-
case 'M':
|
|
35
|
-
case 'L':
|
|
36
|
-
result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];
|
|
37
|
-
return '{month}';
|
|
38
|
-
// Week
|
|
39
|
-
case 'w':
|
|
40
|
-
case 'W':
|
|
41
|
-
throw new RangeError('`w/W` (week of year) patterns are not supported');
|
|
42
|
-
case 'd':
|
|
43
|
-
result.day = ['numeric', '2-digit'][len - 1];
|
|
44
|
-
return '{day}';
|
|
45
|
-
case 'D':
|
|
46
|
-
case 'F':
|
|
47
|
-
case 'g':
|
|
48
|
-
result.day = 'numeric';
|
|
49
|
-
return '{day}';
|
|
50
|
-
// Weekday
|
|
51
|
-
case 'E':
|
|
52
|
-
result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';
|
|
53
|
-
return '{weekday}';
|
|
54
|
-
case 'e':
|
|
55
|
-
result.weekday = [
|
|
56
|
-
undefined,
|
|
57
|
-
undefined,
|
|
58
|
-
'short',
|
|
59
|
-
'long',
|
|
60
|
-
'narrow',
|
|
61
|
-
'short',
|
|
62
|
-
][len - 1];
|
|
63
|
-
return '{weekday}';
|
|
64
|
-
case 'c':
|
|
65
|
-
result.weekday = [
|
|
66
|
-
undefined,
|
|
67
|
-
undefined,
|
|
68
|
-
'short',
|
|
69
|
-
'long',
|
|
70
|
-
'narrow',
|
|
71
|
-
'short',
|
|
72
|
-
][len - 1];
|
|
73
|
-
return '{weekday}';
|
|
74
|
-
// Period
|
|
75
|
-
case 'a': // AM, PM
|
|
76
|
-
case 'b': // am, pm, noon, midnight
|
|
77
|
-
case 'B': // flexible day periods
|
|
78
|
-
result.hour12 = true;
|
|
79
|
-
return '{ampm}';
|
|
80
|
-
// Hour
|
|
81
|
-
case 'h':
|
|
82
|
-
result.hour = ['numeric', '2-digit'][len - 1];
|
|
83
|
-
result.hour12 = true;
|
|
84
|
-
return '{hour}';
|
|
85
|
-
case 'H':
|
|
86
|
-
result.hour = ['numeric', '2-digit'][len - 1];
|
|
87
|
-
return '{hour}';
|
|
88
|
-
case 'K':
|
|
89
|
-
result.hour = ['numeric', '2-digit'][len - 1];
|
|
90
|
-
result.hour12 = true;
|
|
91
|
-
return '{hour}';
|
|
92
|
-
case 'k':
|
|
93
|
-
result.hour = ['numeric', '2-digit'][len - 1];
|
|
94
|
-
return '{hour}';
|
|
95
|
-
case 'j':
|
|
96
|
-
case 'J':
|
|
97
|
-
case 'C':
|
|
98
|
-
throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');
|
|
99
|
-
// Minute
|
|
100
|
-
case 'm':
|
|
101
|
-
result.minute = ['numeric', '2-digit'][len - 1];
|
|
102
|
-
return '{minute}';
|
|
103
|
-
// Second
|
|
104
|
-
case 's':
|
|
105
|
-
result.second = ['numeric', '2-digit'][len - 1];
|
|
106
|
-
return '{second}';
|
|
107
|
-
case 'S':
|
|
108
|
-
case 'A':
|
|
109
|
-
result.second = 'numeric';
|
|
110
|
-
return '{second}';
|
|
111
|
-
// Zone
|
|
112
|
-
case 'z': // 1..3, 4: specific non-location format
|
|
113
|
-
case 'Z': // 1..3, 4, 5: The ISO8601 varios formats
|
|
114
|
-
case 'O': // 1, 4: miliseconds in day short, long
|
|
115
|
-
case 'v': // 1, 4: generic non-location format
|
|
116
|
-
case 'V': // 1, 2, 3, 4: time zone ID or city
|
|
117
|
-
case 'X': // 1, 2, 3, 4: The ISO8601 varios formats
|
|
118
|
-
case 'x': // 1, 2, 3, 4: The ISO8601 varios formats
|
|
119
|
-
result.timeZoneName = len < 4 ? 'short' : 'long';
|
|
120
|
-
return '{timeZoneName}';
|
|
121
|
-
}
|
|
122
|
-
return '';
|
|
123
|
-
}
|
|
124
|
-
function skeletonTokenToTable2(c) {
|
|
125
|
-
switch (c) {
|
|
126
|
-
// Era
|
|
127
|
-
case 'G':
|
|
128
|
-
return 'era';
|
|
129
|
-
// Year
|
|
130
|
-
case 'y':
|
|
131
|
-
case 'Y':
|
|
132
|
-
case 'u':
|
|
133
|
-
case 'U':
|
|
134
|
-
case 'r':
|
|
135
|
-
return 'year';
|
|
136
|
-
// Month
|
|
137
|
-
case 'M':
|
|
138
|
-
case 'L':
|
|
139
|
-
return 'month';
|
|
140
|
-
// Day
|
|
141
|
-
case 'd':
|
|
142
|
-
case 'D':
|
|
143
|
-
case 'F':
|
|
144
|
-
case 'g':
|
|
145
|
-
return 'day';
|
|
146
|
-
// Period
|
|
147
|
-
case 'a': // AM, PM
|
|
148
|
-
case 'b': // am, pm, noon, midnight
|
|
149
|
-
case 'B': // flexible day periods
|
|
150
|
-
return 'ampm';
|
|
151
|
-
// Hour
|
|
152
|
-
case 'h':
|
|
153
|
-
case 'H':
|
|
154
|
-
case 'K':
|
|
155
|
-
case 'k':
|
|
156
|
-
return 'hour';
|
|
157
|
-
// Minute
|
|
158
|
-
case 'm':
|
|
159
|
-
return 'minute';
|
|
160
|
-
// Second
|
|
161
|
-
case 's':
|
|
162
|
-
case 'S':
|
|
163
|
-
case 'A':
|
|
164
|
-
return 'second';
|
|
165
|
-
default:
|
|
166
|
-
throw new RangeError('Invalid range pattern token');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
function processDateTimePattern(pattern, result) {
|
|
170
|
-
var literals = [];
|
|
171
|
-
// Use skeleton to populate result, but use mapped pattern to populate pattern
|
|
172
|
-
var pattern12 = pattern
|
|
173
|
-
// Double apostrophe
|
|
174
|
-
.replace(/'{2}/g, '{apostrophe}')
|
|
175
|
-
// Apostrophe-escaped
|
|
176
|
-
.replace(/'(.*?)'/g, function (_, literal) {
|
|
177
|
-
literals.push(literal);
|
|
178
|
-
return "$$" + (literals.length - 1) + "$$";
|
|
179
|
-
})
|
|
180
|
-
.replace(DATE_TIME_REGEX, function (m) { return matchSkeletonPattern(m, result || {}); });
|
|
181
|
-
//Restore literals
|
|
182
|
-
if (literals.length) {
|
|
183
|
-
pattern12 = pattern12
|
|
184
|
-
.replace(/\$\$(\d+)\$\$/g, function (_, i) {
|
|
185
|
-
return literals[+i];
|
|
186
|
-
})
|
|
187
|
-
.replace(/\{apostrophe\}/g, "'");
|
|
188
|
-
}
|
|
189
|
-
// Handle apostrophe-escaped things
|
|
190
|
-
return [
|
|
191
|
-
pattern12
|
|
192
|
-
.replace(/([\s\uFEFF\xA0])\{ampm\}([\s\uFEFF\xA0])/, '$1')
|
|
193
|
-
.replace('{ampm}', '')
|
|
194
|
-
.replace(expPatternTrimmer, ''),
|
|
195
|
-
pattern12,
|
|
196
|
-
];
|
|
197
|
-
}
|
|
198
|
-
exports.processDateTimePattern = processDateTimePattern;
|
|
199
|
-
/**
|
|
200
|
-
* Parse Date time skeleton into Intl.DateTimeFormatOptions
|
|
201
|
-
* Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
|
|
202
|
-
* @public
|
|
203
|
-
* @param skeleton skeleton string
|
|
204
|
-
*/
|
|
205
|
-
function parseDateTimeSkeleton(skeleton, rawPattern, rangePatterns, intervalFormatFallback) {
|
|
206
|
-
if (rawPattern === void 0) { rawPattern = skeleton; }
|
|
207
|
-
var result = {
|
|
208
|
-
pattern: '',
|
|
209
|
-
pattern12: '',
|
|
210
|
-
skeleton: skeleton,
|
|
211
|
-
rawPattern: rawPattern,
|
|
212
|
-
rangePatterns: {},
|
|
213
|
-
rangePatterns12: {},
|
|
214
|
-
};
|
|
215
|
-
if (rangePatterns) {
|
|
216
|
-
for (var k in rangePatterns) {
|
|
217
|
-
var key = skeletonTokenToTable2(k);
|
|
218
|
-
var rawPattern_1 = rangePatterns[k];
|
|
219
|
-
var intervalResult = {
|
|
220
|
-
patternParts: [],
|
|
221
|
-
};
|
|
222
|
-
var _a = processDateTimePattern(rawPattern_1, intervalResult), pattern_1 = _a[0], pattern12_1 = _a[1];
|
|
223
|
-
result.rangePatterns[key] = tslib_1.__assign(tslib_1.__assign({}, intervalResult), { patternParts: splitRangePattern(pattern_1) });
|
|
224
|
-
result.rangePatterns12[key] = tslib_1.__assign(tslib_1.__assign({}, intervalResult), { patternParts: splitRangePattern(pattern12_1) });
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else if (intervalFormatFallback) {
|
|
228
|
-
var patternParts = splitFallbackRangePattern(intervalFormatFallback);
|
|
229
|
-
result.rangePatterns.default = {
|
|
230
|
-
patternParts: patternParts,
|
|
231
|
-
};
|
|
232
|
-
result.rangePatterns12.default = {
|
|
233
|
-
patternParts: patternParts,
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
// Process skeleton
|
|
237
|
-
skeleton.replace(DATE_TIME_REGEX, function (m) { return matchSkeletonPattern(m, result); });
|
|
238
|
-
var _b = processDateTimePattern(rawPattern), pattern = _b[0], pattern12 = _b[1];
|
|
239
|
-
result.pattern = pattern;
|
|
240
|
-
result.pattern12 = pattern12;
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
exports.parseDateTimeSkeleton = parseDateTimeSkeleton;
|
|
244
|
-
function splitFallbackRangePattern(pattern) {
|
|
245
|
-
var parts = pattern.split(/(\{[0|1]\})/g).filter(Boolean);
|
|
246
|
-
return parts.map(function (pattern) {
|
|
247
|
-
switch (pattern) {
|
|
248
|
-
case '{0}':
|
|
249
|
-
return {
|
|
250
|
-
source: date_time_1.RangePatternType.startRange,
|
|
251
|
-
pattern: pattern,
|
|
252
|
-
};
|
|
253
|
-
case '{1}':
|
|
254
|
-
return {
|
|
255
|
-
source: date_time_1.RangePatternType.endRange,
|
|
256
|
-
pattern: pattern,
|
|
257
|
-
};
|
|
258
|
-
default:
|
|
259
|
-
return {
|
|
260
|
-
source: date_time_1.RangePatternType.shared,
|
|
261
|
-
pattern: pattern,
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
exports.splitFallbackRangePattern = splitFallbackRangePattern;
|
|
267
|
-
function splitRangePattern(pattern) {
|
|
268
|
-
var PART_REGEX = /\{(.*?)\}/g;
|
|
269
|
-
// Map of part and index within the string
|
|
270
|
-
var parts = {};
|
|
271
|
-
var match;
|
|
272
|
-
var splitIndex = 0;
|
|
273
|
-
while ((match = PART_REGEX.exec(pattern))) {
|
|
274
|
-
if (!(match[0] in parts)) {
|
|
275
|
-
parts[match[0]] = match.index;
|
|
276
|
-
}
|
|
277
|
-
else {
|
|
278
|
-
splitIndex = match.index;
|
|
279
|
-
break;
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
if (!splitIndex) {
|
|
283
|
-
return [
|
|
284
|
-
{
|
|
285
|
-
source: date_time_1.RangePatternType.startRange,
|
|
286
|
-
pattern: pattern,
|
|
287
|
-
},
|
|
288
|
-
];
|
|
289
|
-
}
|
|
290
|
-
return [
|
|
291
|
-
{
|
|
292
|
-
source: date_time_1.RangePatternType.startRange,
|
|
293
|
-
pattern: pattern.slice(0, splitIndex),
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
source: date_time_1.RangePatternType.endRange,
|
|
297
|
-
pattern: pattern.slice(splitIndex),
|
|
298
|
-
},
|
|
299
|
-
];
|
|
300
|
-
}
|
|
301
|
-
exports.splitRangePattern = splitRangePattern;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { IntlDateTimeFormatInternal, TABLE_6 } from '../types/date-time';
|
|
2
|
-
export declare const DATE_TIME_PROPS: Array<keyof Pick<IntlDateTimeFormatInternal, TABLE_6>>;
|
|
3
|
-
export declare const removalPenalty = 120;
|
|
4
|
-
export declare const additionPenalty = 20;
|
|
5
|
-
export declare const differentNumericTypePenalty = 15;
|
|
6
|
-
export declare const longLessPenalty = 8;
|
|
7
|
-
export declare const longMorePenalty = 6;
|
|
8
|
-
export declare const shortLessPenalty = 6;
|
|
9
|
-
export declare const shortMorePenalty = 3;
|
|
10
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/DateTimeFormat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAE,OAAO,EAAC,MAAM,oBAAoB,CAAA;AAEtE,eAAO,MAAM,eAAe,EAAE,KAAK,CACjC,MAAM,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAWhD,CAAA;AAED,eAAO,MAAM,cAAc,MAAM,CAAA;AACjC,eAAO,MAAM,eAAe,KAAK,CAAA;AACjC,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAC7C,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,eAAe,IAAI,CAAA;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAA;AACjC,eAAO,MAAM,gBAAgB,IAAI,CAAA"}
|
package/DateTimeFormat/utils.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.shortMorePenalty = exports.shortLessPenalty = exports.longMorePenalty = exports.longLessPenalty = exports.differentNumericTypePenalty = exports.additionPenalty = exports.removalPenalty = exports.DATE_TIME_PROPS = void 0;
|
|
4
|
-
exports.DATE_TIME_PROPS = [
|
|
5
|
-
'weekday',
|
|
6
|
-
'era',
|
|
7
|
-
'year',
|
|
8
|
-
'month',
|
|
9
|
-
'day',
|
|
10
|
-
'hour',
|
|
11
|
-
'minute',
|
|
12
|
-
'second',
|
|
13
|
-
'timeZoneName',
|
|
14
|
-
];
|
|
15
|
-
exports.removalPenalty = 120;
|
|
16
|
-
exports.additionPenalty = 20;
|
|
17
|
-
exports.differentNumericTypePenalty = 15;
|
|
18
|
-
exports.longLessPenalty = 8;
|
|
19
|
-
exports.longMorePenalty = 6;
|
|
20
|
-
exports.shortLessPenalty = 6;
|
|
21
|
-
exports.shortMorePenalty = 3;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CanonicalCodeForDisplayNames.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/DisplayNames/CanonicalCodeForDisplayNames.ts"],"names":[],"mappings":"AAcA,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,EACnD,IAAI,EAAE,MAAM,GACX,MAAM,CAqBR"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CanonicalCodeForDisplayNames = void 0;
|
|
4
|
-
var CanonicalizeLocaleList_1 = require("../CanonicalizeLocaleList");
|
|
5
|
-
var utils_1 = require("../utils");
|
|
6
|
-
var IsWellFormedCurrencyCode_1 = require("../IsWellFormedCurrencyCode");
|
|
7
|
-
var UNICODE_REGION_SUBTAG_REGEX = /^([a-z]{2}|[0-9]{3})$/i;
|
|
8
|
-
var ALPHA_4 = /^[a-z]{4}$/i;
|
|
9
|
-
function isUnicodeRegionSubtag(region) {
|
|
10
|
-
return UNICODE_REGION_SUBTAG_REGEX.test(region);
|
|
11
|
-
}
|
|
12
|
-
function isUnicodeScriptSubtag(script) {
|
|
13
|
-
return ALPHA_4.test(script);
|
|
14
|
-
}
|
|
15
|
-
function CanonicalCodeForDisplayNames(type, code) {
|
|
16
|
-
if (type === 'language') {
|
|
17
|
-
return CanonicalizeLocaleList_1.CanonicalizeLocaleList([code])[0];
|
|
18
|
-
}
|
|
19
|
-
if (type === 'region') {
|
|
20
|
-
if (!isUnicodeRegionSubtag(code)) {
|
|
21
|
-
throw RangeError('invalid region');
|
|
22
|
-
}
|
|
23
|
-
return code.toUpperCase();
|
|
24
|
-
}
|
|
25
|
-
if (type === 'script') {
|
|
26
|
-
if (!isUnicodeScriptSubtag(code)) {
|
|
27
|
-
throw RangeError('invalid script');
|
|
28
|
-
}
|
|
29
|
-
return "" + code[0].toUpperCase() + code.slice(1).toLowerCase();
|
|
30
|
-
}
|
|
31
|
-
utils_1.invariant(type === 'currency', 'invalid type');
|
|
32
|
-
if (!IsWellFormedCurrencyCode_1.IsWellFormedCurrencyCode(code)) {
|
|
33
|
-
throw RangeError('invalid currency');
|
|
34
|
-
}
|
|
35
|
-
return code.toUpperCase();
|
|
36
|
-
}
|
|
37
|
-
exports.CanonicalCodeForDisplayNames = CanonicalCodeForDisplayNames;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export interface OperandsRecord {
|
|
2
|
-
/**
|
|
3
|
-
* Absolute value of the source number (integer and decimals)
|
|
4
|
-
*/
|
|
5
|
-
Number: number;
|
|
6
|
-
/**
|
|
7
|
-
* Number of digits of `number`
|
|
8
|
-
*/
|
|
9
|
-
IntegerDigits: number;
|
|
10
|
-
/**
|
|
11
|
-
* Number of visible fraction digits in [[Number]], with trailing zeroes.
|
|
12
|
-
*/
|
|
13
|
-
NumberOfFractionDigits: number;
|
|
14
|
-
/**
|
|
15
|
-
* Number of visible fraction digits in [[Number]], without trailing zeroes.
|
|
16
|
-
*/
|
|
17
|
-
NumberOfFractionDigitsWithoutTrailing: number;
|
|
18
|
-
/**
|
|
19
|
-
* Number of visible fractional digits in [[Number]], with trailing zeroes.
|
|
20
|
-
*/
|
|
21
|
-
FractionDigits: number;
|
|
22
|
-
/**
|
|
23
|
-
* Number of visible fractional digits in [[Number]], without trailing zeroes.
|
|
24
|
-
*/
|
|
25
|
-
FractionDigitsWithoutTrailing: number;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* http://ecma-international.org/ecma-402/7.0/index.html#sec-getoperands
|
|
29
|
-
* @param s
|
|
30
|
-
*/
|
|
31
|
-
export declare function GetOperands(s: string): OperandsRecord;
|
|
32
|
-
//# sourceMappingURL=GetOperands.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GetOperands.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/PluralRules/GetOperands.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAA;IAC9B;;OAEG;IACH,qCAAqC,EAAE,MAAM,CAAA;IAC7C;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,6BAA6B,EAAE,MAAM,CAAA;CACtC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAyCrD"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GetOperands = void 0;
|
|
4
|
-
var utils_1 = require("../utils");
|
|
5
|
-
var _262_1 = require("../262");
|
|
6
|
-
/**
|
|
7
|
-
* http://ecma-international.org/ecma-402/7.0/index.html#sec-getoperands
|
|
8
|
-
* @param s
|
|
9
|
-
*/
|
|
10
|
-
function GetOperands(s) {
|
|
11
|
-
utils_1.invariant(typeof s === 'string', "GetOperands should have been called with a string");
|
|
12
|
-
var n = _262_1.ToNumber(s);
|
|
13
|
-
utils_1.invariant(isFinite(n), 'n should be finite');
|
|
14
|
-
var dp = s.indexOf('.');
|
|
15
|
-
var iv;
|
|
16
|
-
var f;
|
|
17
|
-
var v;
|
|
18
|
-
var fv = '';
|
|
19
|
-
if (dp === -1) {
|
|
20
|
-
iv = n;
|
|
21
|
-
f = 0;
|
|
22
|
-
v = 0;
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
iv = s.slice(0, dp);
|
|
26
|
-
fv = s.slice(dp, s.length);
|
|
27
|
-
f = _262_1.ToNumber(fv);
|
|
28
|
-
v = fv.length;
|
|
29
|
-
}
|
|
30
|
-
var i = Math.abs(_262_1.ToNumber(iv));
|
|
31
|
-
var w;
|
|
32
|
-
var t;
|
|
33
|
-
if (f !== 0) {
|
|
34
|
-
var ft = fv.replace(/0+$/, '');
|
|
35
|
-
w = ft.length;
|
|
36
|
-
t = _262_1.ToNumber(ft);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
w = 0;
|
|
40
|
-
t = 0;
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
Number: n,
|
|
44
|
-
IntegerDigits: i,
|
|
45
|
-
NumberOfFractionDigits: v,
|
|
46
|
-
NumberOfFractionDigitsWithoutTrailing: w,
|
|
47
|
-
FractionDigits: f,
|
|
48
|
-
FractionDigitsWithoutTrailing: t,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
exports.GetOperands = GetOperands;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { PluralRulesInternal, PluralRulesData } from '../types/plural-rules';
|
|
2
|
-
export declare function InitializePluralRules(pl: Intl.PluralRules, locales: string | string[] | undefined, options: Intl.PluralRulesOptions | undefined, { availableLocales, relevantExtensionKeys, localeData, getDefaultLocale, getInternalSlots, }: {
|
|
3
|
-
availableLocales: Set<string>;
|
|
4
|
-
relevantExtensionKeys: string[];
|
|
5
|
-
localeData: Record<string, PluralRulesData | undefined>;
|
|
6
|
-
getDefaultLocale(): string;
|
|
7
|
-
getInternalSlots(pl: Intl.PluralRules): PluralRulesInternal;
|
|
8
|
-
}): Intl.PluralRules;
|
|
9
|
-
//# sourceMappingURL=InitializePluralRules.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InitializePluralRules.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/PluralRules/InitializePluralRules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAA;AAO1E,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EACtC,OAAO,EAAE,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAC5C,EACE,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,EAAE;IACD,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC,CAAA;IACvD,gBAAgB,IAAI,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAA;CAC5D,oBAkCF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InitializePluralRules = void 0;
|
|
4
|
-
var CanonicalizeLocaleList_1 = require("../CanonicalizeLocaleList");
|
|
5
|
-
var GetOption_1 = require("../GetOption");
|
|
6
|
-
var SetNumberFormatDigitOptions_1 = require("../NumberFormat/SetNumberFormatDigitOptions");
|
|
7
|
-
var ResolveLocale_1 = require("../ResolveLocale");
|
|
8
|
-
var CoerceOptionsToObject_1 = require("../CoerceOptionsToObject");
|
|
9
|
-
function InitializePluralRules(pl, locales, options, _a) {
|
|
10
|
-
var availableLocales = _a.availableLocales, relevantExtensionKeys = _a.relevantExtensionKeys, localeData = _a.localeData, getDefaultLocale = _a.getDefaultLocale, getInternalSlots = _a.getInternalSlots;
|
|
11
|
-
var requestedLocales = CanonicalizeLocaleList_1.CanonicalizeLocaleList(locales);
|
|
12
|
-
var opt = Object.create(null);
|
|
13
|
-
var opts = CoerceOptionsToObject_1.CoerceOptionsToObject(options);
|
|
14
|
-
var internalSlots = getInternalSlots(pl);
|
|
15
|
-
internalSlots.initializedPluralRules = true;
|
|
16
|
-
var matcher = GetOption_1.GetOption(opts, 'localeMatcher', 'string', ['best fit', 'lookup'], 'best fit');
|
|
17
|
-
opt.localeMatcher = matcher;
|
|
18
|
-
internalSlots.type = GetOption_1.GetOption(opts, 'type', 'string', ['cardinal', 'ordinal'], 'cardinal');
|
|
19
|
-
SetNumberFormatDigitOptions_1.SetNumberFormatDigitOptions(internalSlots, opts, 0, 3, 'standard');
|
|
20
|
-
var r = ResolveLocale_1.ResolveLocale(availableLocales, requestedLocales, opt, relevantExtensionKeys, localeData, getDefaultLocale);
|
|
21
|
-
internalSlots.locale = r.locale;
|
|
22
|
-
return pl;
|
|
23
|
-
}
|
|
24
|
-
exports.InitializePluralRules = InitializePluralRules;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { LDMLPluralRule, PluralRulesInternal } from '../types/plural-rules';
|
|
2
|
-
import { OperandsRecord } from './GetOperands';
|
|
3
|
-
/**
|
|
4
|
-
* http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural
|
|
5
|
-
* @param pl
|
|
6
|
-
* @param n
|
|
7
|
-
* @param PluralRuleSelect Has to pass in bc it's implementation-specific
|
|
8
|
-
*/
|
|
9
|
-
export declare function ResolvePlural(pl: Intl.PluralRules, n: number, { getInternalSlots, PluralRuleSelect, }: {
|
|
10
|
-
getInternalSlots(pl: Intl.PluralRules): PluralRulesInternal;
|
|
11
|
-
PluralRuleSelect: (locale: string, type: 'cardinal' | 'ordinal', n: number, operands: OperandsRecord) => LDMLPluralRule;
|
|
12
|
-
}): LDMLPluralRule;
|
|
13
|
-
//# sourceMappingURL=ResolvePlural.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResolvePlural.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/PluralRules/ResolvePlural.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,uBAAuB,CAAA;AAEzE,OAAO,EAAc,cAAc,EAAC,MAAM,eAAe,CAAA;AAEzD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,CAAC,EAAE,MAAM,EACT,EACE,gBAAgB,EAChB,gBAAgB,GACjB,EAAE;IACD,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAA;IAC3D,gBAAgB,EAAE,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,cAAc,KACrB,cAAc,CAAA;CACpB,GACA,cAAc,CAgBhB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResolvePlural = void 0;
|
|
4
|
-
var utils_1 = require("../utils");
|
|
5
|
-
var _262_1 = require("../262");
|
|
6
|
-
var FormatNumericToString_1 = require("../NumberFormat/FormatNumericToString");
|
|
7
|
-
var GetOperands_1 = require("./GetOperands");
|
|
8
|
-
/**
|
|
9
|
-
* http://ecma-international.org/ecma-402/7.0/index.html#sec-resolveplural
|
|
10
|
-
* @param pl
|
|
11
|
-
* @param n
|
|
12
|
-
* @param PluralRuleSelect Has to pass in bc it's implementation-specific
|
|
13
|
-
*/
|
|
14
|
-
function ResolvePlural(pl, n, _a) {
|
|
15
|
-
var getInternalSlots = _a.getInternalSlots, PluralRuleSelect = _a.PluralRuleSelect;
|
|
16
|
-
var internalSlots = getInternalSlots(pl);
|
|
17
|
-
utils_1.invariant(_262_1.Type(internalSlots) === 'Object', 'pl has to be an object');
|
|
18
|
-
utils_1.invariant('initializedPluralRules' in internalSlots, 'pluralrules must be initialized');
|
|
19
|
-
utils_1.invariant(_262_1.Type(n) === 'Number', 'n must be a number');
|
|
20
|
-
if (!isFinite(n)) {
|
|
21
|
-
return 'other';
|
|
22
|
-
}
|
|
23
|
-
var locale = internalSlots.locale, type = internalSlots.type;
|
|
24
|
-
var res = FormatNumericToString_1.FormatNumericToString(internalSlots, n);
|
|
25
|
-
var s = res.formattedString;
|
|
26
|
-
var operands = GetOperands_1.GetOperands(s);
|
|
27
|
-
return PluralRuleSelect(locale, type, n, operands);
|
|
28
|
-
}
|
|
29
|
-
exports.ResolvePlural = ResolvePlural;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { RelativeTimeFormatInternal } from '../types/relative-time';
|
|
2
|
-
export declare function FormatRelativeTime(rtf: Intl.RelativeTimeFormat, value: number, unit: Intl.RelativeTimeFormatUnit, implDetails: {
|
|
3
|
-
getInternalSlots(rtf: Intl.RelativeTimeFormat): RelativeTimeFormatInternal;
|
|
4
|
-
}): string;
|
|
5
|
-
//# sourceMappingURL=FormatRelativeTime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormatRelativeTime.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/RelativeTimeFormat/FormatRelativeTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAA;AAGjE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,CAAC,sBAAsB,EACjC,WAAW,EAAE;IACX,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,0BAA0B,CAAA;CAC3E,GACA,MAAM,CAOR"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormatRelativeTime = void 0;
|
|
4
|
-
var PartitionRelativeTimePattern_1 = require("./PartitionRelativeTimePattern");
|
|
5
|
-
function FormatRelativeTime(rtf, value, unit, implDetails) {
|
|
6
|
-
var parts = PartitionRelativeTimePattern_1.PartitionRelativeTimePattern(rtf, value, unit, implDetails);
|
|
7
|
-
var result = '';
|
|
8
|
-
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
9
|
-
var part = parts_1[_i];
|
|
10
|
-
result += part.value;
|
|
11
|
-
}
|
|
12
|
-
return result;
|
|
13
|
-
}
|
|
14
|
-
exports.FormatRelativeTime = FormatRelativeTime;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { RelativeTimeFormatInternal } from '../types/relative-time';
|
|
2
|
-
export declare function FormatRelativeTimeToParts(rtf: Intl.RelativeTimeFormat, value: number, unit: Intl.RelativeTimeFormatUnit, implDetails: {
|
|
3
|
-
getInternalSlots(rtf: Intl.RelativeTimeFormat): RelativeTimeFormatInternal;
|
|
4
|
-
}): Intl.RelativeTimeFormatPart[];
|
|
5
|
-
//# sourceMappingURL=FormatRelativeTimeToParts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FormatRelativeTimeToParts.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/RelativeTimeFormat/FormatRelativeTimeToParts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,wBAAwB,CAAA;AAIjE,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,CAAC,sBAAsB,EACjC,WAAW,EAAE;IACX,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,0BAA0B,CAAA;CAC3E,GACA,IAAI,CAAC,sBAAsB,EAAE,CAe/B"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormatRelativeTimeToParts = void 0;
|
|
4
|
-
var PartitionRelativeTimePattern_1 = require("./PartitionRelativeTimePattern");
|
|
5
|
-
var _262_1 = require("../262");
|
|
6
|
-
function FormatRelativeTimeToParts(rtf, value, unit, implDetails) {
|
|
7
|
-
var parts = PartitionRelativeTimePattern_1.PartitionRelativeTimePattern(rtf, value, unit, implDetails);
|
|
8
|
-
var result = _262_1.ArrayCreate(0);
|
|
9
|
-
for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {
|
|
10
|
-
var part = parts_1[_i];
|
|
11
|
-
var o = {
|
|
12
|
-
type: part.type,
|
|
13
|
-
value: part.value,
|
|
14
|
-
};
|
|
15
|
-
if ('unit' in part) {
|
|
16
|
-
o.unit = part.unit;
|
|
17
|
-
}
|
|
18
|
-
result.push(o);
|
|
19
|
-
}
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
exports.FormatRelativeTimeToParts = FormatRelativeTimeToParts;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { RelativeTimeFormatInternal, LocaleFieldsData } from '../types/relative-time';
|
|
2
|
-
export declare function InitializeRelativeTimeFormat(rtf: Intl.RelativeTimeFormat, locales: string | string[] | undefined, options: Intl.RelativeTimeFormatOptions | undefined, { getInternalSlots, availableLocales, relevantExtensionKeys, localeData, getDefaultLocale, }: {
|
|
3
|
-
getInternalSlots(rtf: Intl.RelativeTimeFormat): RelativeTimeFormatInternal;
|
|
4
|
-
availableLocales: Set<string>;
|
|
5
|
-
relevantExtensionKeys: string[];
|
|
6
|
-
localeData: Record<string, LocaleFieldsData | undefined>;
|
|
7
|
-
getDefaultLocale(): string;
|
|
8
|
-
}): Intl.RelativeTimeFormat;
|
|
9
|
-
//# sourceMappingURL=InitializeRelativeTimeFormat.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InitializeRelativeTimeFormat.d.ts","sourceRoot":"","sources":["../../../../../../packages/ecma402-abstract/RelativeTimeFormat/InitializeRelativeTimeFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAS/B,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAC5B,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EACtC,OAAO,EAAE,IAAI,CAAC,yBAAyB,GAAG,SAAS,EACnD,EACE,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,GACjB,EAAE;IACD,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,0BAA0B,CAAA;IAC1E,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7B,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC,CAAA;IACxD,gBAAgB,IAAI,MAAM,CAAA;CAC3B,2BA4DF"}
|