@@ -14,8 +14,7 @@ DateTimeFormatImpl getDateTimeFormatter4X(
14
14
Locale locale,
15
15
Data data,
16
16
DateTimeFormatOptions options,
17
- ) =>
18
- DateTimeFormat4X (locale, data, options);
17
+ ) => DateTimeFormat4X (locale, data, options);
19
18
20
19
class DateTimeFormat4X extends DateTimeFormatImpl {
21
20
final icu.DateTimeFormatter ? _dateTimeFormatter;
@@ -25,27 +24,29 @@ class DateTimeFormat4X extends DateTimeFormatImpl {
25
24
final icu.DataProvider _data;
26
25
27
26
DateTimeFormat4X (super .locale, Data data, super .options)
28
- : _data = data.to4X (),
29
- _dateTimeFormatter = _setDateTimeFormatter (options, data, locale),
30
- _timeFormatter = options.timeFormatStyle != null
31
- ? icu.TimeFormatter .withLength (
27
+ : _data = data.to4X (),
28
+ _dateTimeFormatter = _setDateTimeFormatter (options, data, locale),
29
+ _timeFormatter =
30
+ options.timeFormatStyle != null
31
+ ? icu.TimeFormatter .withLength (
32
32
data.to4X (),
33
33
locale.to4X (),
34
34
options.dateFormatStyle? .timeTo4xOptions () ??
35
35
icu.TimeLength .short,
36
36
)
37
- : null ,
38
- _dateFormatter = _setDateFormatter (options, data, locale),
39
- _zonedDateTimeFormatter = options.timeZone != null
40
- ? icu.ZonedDateTimeFormatter .withLengths (
37
+ : null ,
38
+ _dateFormatter = _setDateFormatter (options, data, locale),
39
+ _zonedDateTimeFormatter =
40
+ options.timeZone != null
41
+ ? icu.ZonedDateTimeFormatter .withLengths (
41
42
data.to4X (),
42
43
locale.to4X (),
43
44
options.dateFormatStyle? .dateTo4xOptions () ??
44
45
icu.DateLength .short, //TODO: Check defaults
45
46
options.timeFormatStyle? .timeTo4xOptions () ??
46
47
icu.TimeLength .short, //TODO: Check defaults
47
48
)
48
- : null ;
49
+ : null ;
49
50
50
51
static icu.DateTimeFormatter ? _setDateTimeFormatter (
51
52
DateTimeFormatOptions options,
@@ -101,8 +102,9 @@ class DateTimeFormat4X extends DateTimeFormatImpl {
101
102
);
102
103
if (_zonedDateTimeFormatter != null ) {
103
104
final ianaToBcp47Mapper = icu.IanaToBcp47Mapper (_data);
104
- final timeZone = icu.CustomTimeZone .empty ()
105
- ..trySetIanaTimeZoneId (ianaToBcp47Mapper, options.timeZone! );
105
+ final timeZone =
106
+ icu.CustomTimeZone .empty ()
107
+ ..trySetIanaTimeZoneId (ianaToBcp47Mapper, options.timeZone! );
106
108
return _zonedDateTimeFormatter.formatDatetimeWithCustomTimeZone (
107
109
isoDateTime,
108
110
timeZone,
@@ -115,46 +117,47 @@ class DateTimeFormat4X extends DateTimeFormatImpl {
115
117
return _timeFormatter.formatDatetime (isoDateTime);
116
118
} else {
117
119
throw UnimplementedError (
118
- 'Custom skeletons are not yet supported in ICU4X. '
119
- 'Either date or time formatting has to be enabled.' );
120
+ 'Custom skeletons are not yet supported in ICU4X. '
121
+ 'Either date or time formatting has to be enabled.' ,
122
+ );
120
123
}
121
124
}
122
125
}
123
126
124
127
extension on TimeFormatStyle {
125
128
icu.TimeLength timeTo4xOptions () => switch (this ) {
126
- TimeFormatStyle .full => icu.TimeLength .full,
127
- TimeFormatStyle .long => icu.TimeLength .long,
128
- TimeFormatStyle .medium => icu.TimeLength .medium,
129
- TimeFormatStyle .short => icu.TimeLength .short,
130
- };
129
+ TimeFormatStyle .full => icu.TimeLength .full,
130
+ TimeFormatStyle .long => icu.TimeLength .long,
131
+ TimeFormatStyle .medium => icu.TimeLength .medium,
132
+ TimeFormatStyle .short => icu.TimeLength .short,
133
+ };
131
134
icu.DateLength dateTo4xOptions () => switch (this ) {
132
- TimeFormatStyle .full => icu.DateLength .full,
133
- TimeFormatStyle .long => icu.DateLength .long,
134
- TimeFormatStyle .medium => icu.DateLength .medium,
135
- TimeFormatStyle .short => icu.DateLength .short,
136
- };
135
+ TimeFormatStyle .full => icu.DateLength .full,
136
+ TimeFormatStyle .long => icu.DateLength .long,
137
+ TimeFormatStyle .medium => icu.DateLength .medium,
138
+ TimeFormatStyle .short => icu.DateLength .short,
139
+ };
137
140
}
138
141
139
142
extension on Calendar {
140
143
icu.AnyCalendarKind to4x () => switch (this ) {
141
- Calendar .buddhist => icu.AnyCalendarKind .buddhist,
142
- Calendar .chinese => icu.AnyCalendarKind .chinese,
143
- Calendar .coptic => icu.AnyCalendarKind .coptic,
144
- Calendar .dangi => icu.AnyCalendarKind .dangi,
145
- Calendar .ethioaa => icu.AnyCalendarKind .ethiopianAmeteAlem,
146
- Calendar .ethiopic => icu.AnyCalendarKind .ethiopian,
147
- Calendar .gregory => icu.AnyCalendarKind .gregorian,
148
- Calendar .hebrew => icu.AnyCalendarKind .hebrew,
149
- Calendar .indian => icu.AnyCalendarKind .indian,
150
- Calendar .islamic => icu.AnyCalendarKind .islamicObservational,
151
- Calendar .islamicUmalqura => icu.AnyCalendarKind .islamicUmmAlQura,
152
- Calendar .islamicTbla => icu.AnyCalendarKind .islamicTabular,
153
- Calendar .islamicCivil => icu.AnyCalendarKind .islamicCivil,
154
- Calendar .islamicRgsa => icu.AnyCalendarKind .islamicObservational,
155
- Calendar .iso8601 => icu.AnyCalendarKind .iso,
156
- Calendar .japanese => icu.AnyCalendarKind .japanese,
157
- Calendar .persian => icu.AnyCalendarKind .persian,
158
- Calendar .roc => icu.AnyCalendarKind .roc,
159
- };
144
+ Calendar .buddhist => icu.AnyCalendarKind .buddhist,
145
+ Calendar .chinese => icu.AnyCalendarKind .chinese,
146
+ Calendar .coptic => icu.AnyCalendarKind .coptic,
147
+ Calendar .dangi => icu.AnyCalendarKind .dangi,
148
+ Calendar .ethioaa => icu.AnyCalendarKind .ethiopianAmeteAlem,
149
+ Calendar .ethiopic => icu.AnyCalendarKind .ethiopian,
150
+ Calendar .gregory => icu.AnyCalendarKind .gregorian,
151
+ Calendar .hebrew => icu.AnyCalendarKind .hebrew,
152
+ Calendar .indian => icu.AnyCalendarKind .indian,
153
+ Calendar .islamic => icu.AnyCalendarKind .islamicObservational,
154
+ Calendar .islamicUmalqura => icu.AnyCalendarKind .islamicUmmAlQura,
155
+ Calendar .islamicTbla => icu.AnyCalendarKind .islamicTabular,
156
+ Calendar .islamicCivil => icu.AnyCalendarKind .islamicCivil,
157
+ Calendar .islamicRgsa => icu.AnyCalendarKind .islamicObservational,
158
+ Calendar .iso8601 => icu.AnyCalendarKind .iso,
159
+ Calendar .japanese => icu.AnyCalendarKind .japanese,
160
+ Calendar .persian => icu.AnyCalendarKind .persian,
161
+ Calendar .roc => icu.AnyCalendarKind .roc,
162
+ };
160
163
}
0 commit comments