@js-joda/locale 4.2.1 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/js-joda-locale.esm.js +1823 -0
- package/dist/js-joda-locale.js +1095 -1297
- package/dist/js-joda-locale.js.map +1 -1
- package/dist/js-joda-locale.min.js +9 -36
- package/dist/prebuilt/de/index.js +1105 -1307
- package/dist/prebuilt/de/index.js.map +1 -1
- package/dist/prebuilt/de-de/index.js +1105 -1307
- package/dist/prebuilt/de-de/index.js.map +1 -1
- package/dist/prebuilt/en/index.js +1106 -1308
- package/dist/prebuilt/en/index.js.map +1 -1
- package/dist/prebuilt/en-us/index.js +1105 -1307
- package/dist/prebuilt/en-us/index.js.map +1 -1
- package/dist/prebuilt/es/index.js +1106 -1308
- package/dist/prebuilt/es/index.js.map +1 -1
- package/dist/prebuilt/fr/index.js +1106 -1308
- package/dist/prebuilt/fr/index.js.map +1 -1
- package/dist/prebuilt/fr-fr/index.js +1105 -1307
- package/dist/prebuilt/fr-fr/index.js.map +1 -1
- package/dist/prebuilt/hi/index.js +1105 -1307
- package/dist/prebuilt/hi/index.js.map +1 -1
- package/dist/prebuilt/it/index.js +1105 -1307
- package/dist/prebuilt/it/index.js.map +1 -1
- package/dist/prebuilt/it-it/index.js +1105 -1307
- package/dist/prebuilt/it-it/index.js.map +1 -1
- package/dist/prebuilt/ja/index.js +1105 -1307
- package/dist/prebuilt/ja/index.js.map +1 -1
- package/dist/prebuilt/ja-jp/index.js +1105 -1307
- package/dist/prebuilt/ja-jp/index.js.map +1 -1
- package/dist/prebuilt/ko/index.js +1105 -1307
- package/dist/prebuilt/ko/index.js.map +1 -1
- package/dist/prebuilt/ro/index.js +1105 -1307
- package/dist/prebuilt/ro/index.js.map +1 -1
- package/dist/prebuilt/ru/index.js +4035 -0
- package/dist/prebuilt/ru/index.js.map +1 -0
- package/dist/prebuilt/sv/index.js +1105 -1307
- package/dist/prebuilt/sv/index.js.map +1 -1
- package/dist/prebuilt/sv-se/index.js +1105 -1307
- package/dist/prebuilt/sv-se/index.js.map +1 -1
- package/dist/prebuilt/zh/index.js +1105 -1307
- package/dist/prebuilt/zh/index.js.map +1 -1
- package/package.json +24 -17
- package/src/Locale.js +8 -0
- package/src/js-joda-locale.js +3 -1
- package/{dist → typings}/js-joda-locale.d.ts +28 -2
- package/.babelrc +0 -24
- package/build_package.default.json +0 -14
- package/build_package.prebuilt.json +0 -66
- package/examples/usage_browser.html +0 -111
- package/examples/usage_browser_build.html +0 -72
- package/examples/usage_es6.js +0 -15
- package/examples/usage_node.js +0 -38
- package/examples/usage_node_build.js +0 -48
- package/utils/CldrDataIgnorePlugin.js +0 -57
- package/utils/README_package.template.md +0 -13
- package/utils/buildWebpackConfig.js +0 -28
- package/utils/build_package.js +0 -170
- package/utils/create_packages.js +0 -136
- package/utils/load_cldrData.prebuilt.js +0 -18
- package/utils/publish_release.js +0 -151
- package/webpack.config.js +0 -88
|
@@ -0,0 +1,1823 @@
|
|
|
1
|
+
//! @version @js-joda/locale - 4.5.0
|
|
2
|
+
//! @copyright (c) 2015-present, Philipp Thürwächter, Pattrick Hüper & js-joda contributors
|
|
3
|
+
//! @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
|
|
4
|
+
//! @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
|
|
5
|
+
|
|
6
|
+
import { IllegalArgumentException, DateTimeFormatterBuilder, SignStyle, TextStyle, ChronoField, IsoFields, _, TemporalQueries, ZoneOffset, ZoneRulesProvider, ZoneId, ValueRange, DayOfWeek, ChronoUnit, IllegalStateException, LocalDate, Year, ResolverStyle, DateTimeException, IsoChronology, TemporalField, DateTimeFormatter, use } from '@js-joda/core';
|
|
7
|
+
import cldrData from 'cldr-data';
|
|
8
|
+
import Cldr from 'cldrjs';
|
|
9
|
+
|
|
10
|
+
function _extends() {
|
|
11
|
+
_extends = Object.assign || function (target) {
|
|
12
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
13
|
+
var source = arguments[i];
|
|
14
|
+
|
|
15
|
+
for (var key in source) {
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
17
|
+
target[key] = source[key];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return target;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return _extends.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _inheritsLoose(subClass, superClass) {
|
|
29
|
+
subClass.prototype = Object.create(superClass.prototype);
|
|
30
|
+
subClass.prototype.constructor = subClass;
|
|
31
|
+
|
|
32
|
+
_setPrototypeOf(subClass, superClass);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function _setPrototypeOf(o, p) {
|
|
36
|
+
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
|
|
37
|
+
o.__proto__ = p;
|
|
38
|
+
return o;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return _setPrototypeOf(o, p);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
45
|
+
if (!o) return;
|
|
46
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
47
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
48
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
49
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
50
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function _arrayLikeToArray(arr, len) {
|
|
54
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
55
|
+
|
|
56
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
57
|
+
|
|
58
|
+
return arr2;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
62
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
63
|
+
if (it) return (it = it.call(o)).next.bind(it);
|
|
64
|
+
|
|
65
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
66
|
+
if (it) o = it;
|
|
67
|
+
var i = 0;
|
|
68
|
+
return function () {
|
|
69
|
+
if (i >= o.length) return {
|
|
70
|
+
done: true
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
done: false,
|
|
74
|
+
value: o[i++]
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var TextPrinterParser = function () {
|
|
83
|
+
function TextPrinterParser(field, textStyle, provider) {
|
|
84
|
+
this._field = field;
|
|
85
|
+
this._textStyle = textStyle;
|
|
86
|
+
this._provider = provider;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var _proto = TextPrinterParser.prototype;
|
|
90
|
+
|
|
91
|
+
_proto.field = function field() {
|
|
92
|
+
return this._field;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
_proto.textStyle = function textStyle() {
|
|
96
|
+
return this._textStyle;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
_proto.provider = function provider() {
|
|
100
|
+
return this._provider;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
_proto.print = function print(context, buf) {
|
|
104
|
+
var value = context.getValue(this._field);
|
|
105
|
+
|
|
106
|
+
if (value === null) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
var text = this._provider.getText(this._field, value, this._textStyle, context.locale());
|
|
111
|
+
|
|
112
|
+
if (text === null) {
|
|
113
|
+
return this._numberPrinterParser().print(context, buf);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
buf.append(text);
|
|
117
|
+
return true;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
_proto.parse = function parse(context, parseText, position) {
|
|
121
|
+
var length = parseText.length;
|
|
122
|
+
|
|
123
|
+
if (position < 0 || position > length) {
|
|
124
|
+
throw new IllegalArgumentException("The position is invalid: " + position);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
var style = context.isStrict() ? this._textStyle : null;
|
|
128
|
+
|
|
129
|
+
var it = this._provider.getTextIterator(this._field, style, context.locale());
|
|
130
|
+
|
|
131
|
+
if (it != null) {
|
|
132
|
+
for (var _iterator = _createForOfIteratorHelperLoose(it), _step; !(_step = _iterator()).done;) {
|
|
133
|
+
var entry = _step.value;
|
|
134
|
+
var itText = entry.key;
|
|
135
|
+
|
|
136
|
+
if (context.subSequenceEquals(itText, 0, parseText, position, itText.length)) {
|
|
137
|
+
return context.setParsedField(this._field, entry.value, position, position + itText.length);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (context.isStrict()) {
|
|
142
|
+
return ~position;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
return this._numberPrinterParser().parse(context, parseText, position);
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
_proto._numberPrinterParser = function _numberPrinterParser() {
|
|
150
|
+
if (this._currentNumberPrinterParser == null) {
|
|
151
|
+
this._currentNumberPrinterParser = new DateTimeFormatterBuilder.NumberPrinterParser(this._field, 1, 19, SignStyle.NORMAL);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
return this._currentNumberPrinterParser;
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
_proto.toString = function toString() {
|
|
158
|
+
if (this._textStyle === TextStyle.FULL) {
|
|
159
|
+
return "Text(" + this._field + ")";
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return "Text(" + this._field + "," + this._textStyle + ")";
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
return TextPrinterParser;
|
|
166
|
+
}();
|
|
167
|
+
|
|
168
|
+
/*
|
|
169
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
170
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
171
|
+
*/
|
|
172
|
+
var createEntry = function createEntry(text, field) {
|
|
173
|
+
return {
|
|
174
|
+
key: text,
|
|
175
|
+
value: field,
|
|
176
|
+
toString: function toString() {
|
|
177
|
+
return text + "->" + field;
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
var _comparator = function _comparator(obj1, obj2) {
|
|
183
|
+
return obj2.key.length - obj1.key.length;
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
var LocaleStore = function () {
|
|
187
|
+
function LocaleStore(valueTextMap) {
|
|
188
|
+
this._valueTextMap = valueTextMap;
|
|
189
|
+
var map = {};
|
|
190
|
+
var allList = [];
|
|
191
|
+
Object.keys(valueTextMap).forEach(function (style) {
|
|
192
|
+
var reverse = {};
|
|
193
|
+
var list = [];
|
|
194
|
+
Object.keys(valueTextMap[style]).forEach(function (key) {
|
|
195
|
+
var value = valueTextMap[style][key];
|
|
196
|
+
|
|
197
|
+
if (reverse[value] === undefined) {
|
|
198
|
+
reverse[value] = createEntry(value, parseInt(key));
|
|
199
|
+
list.push(reverse[value]);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
list.sort(_comparator);
|
|
203
|
+
map[style] = list;
|
|
204
|
+
allList = allList.concat(list);
|
|
205
|
+
map[null] = allList;
|
|
206
|
+
});
|
|
207
|
+
allList.sort(_comparator);
|
|
208
|
+
this._parsable = map;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var _proto = LocaleStore.prototype;
|
|
212
|
+
|
|
213
|
+
_proto.getText = function getText(value, style) {
|
|
214
|
+
var map = this._valueTextMap[style];
|
|
215
|
+
return map != null ? map[value] : null;
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
_proto.getTextIterator = function getTextIterator(style) {
|
|
219
|
+
var list = this._parsable[style];
|
|
220
|
+
return list != null ? list[Symbol.iterator]() : null;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
return LocaleStore;
|
|
224
|
+
}();
|
|
225
|
+
|
|
226
|
+
/*
|
|
227
|
+
* @copyright (c) 2020, Philipp Thuerwaechter & Pattrick Hueper
|
|
228
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
229
|
+
*/
|
|
230
|
+
var cldrDataLoaded = new Set();
|
|
231
|
+
var loadCldrData = function loadCldrData(path) {
|
|
232
|
+
if (!cldrDataLoaded.has(path)) {
|
|
233
|
+
Cldr.load(cldrData(path));
|
|
234
|
+
cldrDataLoaded.add(path);
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
var localeToCldrInstanceCache = {};
|
|
238
|
+
var getOrCreateCldrInstance = function getOrCreateCldrInstance(locale) {
|
|
239
|
+
if (localeToCldrInstanceCache[locale] == null) {
|
|
240
|
+
localeToCldrInstanceCache[locale] = new Cldr(locale);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
return localeToCldrInstanceCache[locale];
|
|
244
|
+
};
|
|
245
|
+
var localeToMapZonesCache = {};
|
|
246
|
+
var getOrCreateMapZones = function getOrCreateMapZones(cldr) {
|
|
247
|
+
if (localeToMapZonesCache[cldr.locale] == null) {
|
|
248
|
+
var mapZones = {};
|
|
249
|
+
cldr.get('supplemental/metaZones/metazones').forEach(function (metaZone) {
|
|
250
|
+
if (metaZone.mapZone) {
|
|
251
|
+
if (!mapZones[metaZone.mapZone._other]) {
|
|
252
|
+
mapZones[metaZone.mapZone._other] = {};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
mapZones[metaZone.mapZone._other][metaZone.mapZone._territory] = metaZone.mapZone._type;
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
localeToMapZonesCache[cldr.locale] = mapZones;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return localeToMapZonesCache[cldr.locale];
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
/*
|
|
265
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
266
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
267
|
+
*/
|
|
268
|
+
|
|
269
|
+
var CldrDateTimeTextProvider = function () {
|
|
270
|
+
function CldrDateTimeTextProvider() {
|
|
271
|
+
this._cache = {};
|
|
272
|
+
loadCldrData('supplemental/likelySubtags.json');
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
var _proto = CldrDateTimeTextProvider.prototype;
|
|
276
|
+
|
|
277
|
+
_proto.getAvailableLocales = function getAvailableLocales() {
|
|
278
|
+
return cldrData('availableLocales.json').availableLocales;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
_proto.getText = function getText(field, value, style, locale) {
|
|
282
|
+
var store = this._findStore(field, locale);
|
|
283
|
+
|
|
284
|
+
if (store instanceof LocaleStore) {
|
|
285
|
+
return store.getText(value, style);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
return null;
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
_proto.getTextIterator = function getTextIterator(field, style, locale) {
|
|
292
|
+
var store = this._findStore(field, locale);
|
|
293
|
+
|
|
294
|
+
if (store instanceof LocaleStore) {
|
|
295
|
+
return store.getTextIterator(style);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return null;
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
_proto._findStore = function _findStore(field, locale) {
|
|
302
|
+
var key = createEntry(field, locale);
|
|
303
|
+
var store = this._cache[key];
|
|
304
|
+
|
|
305
|
+
if (store === undefined) {
|
|
306
|
+
store = this._createStore(field, locale);
|
|
307
|
+
this._cache[key] = store;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
return store;
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
_proto._createStore = function _createStore(field, locale) {
|
|
314
|
+
loadCldrData("main/" + locale.localeString() + "/ca-gregorian.json");
|
|
315
|
+
var cldr = getOrCreateCldrInstance(locale.localeString());
|
|
316
|
+
|
|
317
|
+
if (field === ChronoField.MONTH_OF_YEAR) {
|
|
318
|
+
var monthsData = cldr.main('dates/calendars/gregorian/months/format');
|
|
319
|
+
var styleMap = {};
|
|
320
|
+
var data = {};
|
|
321
|
+
data[1] = monthsData.wide[1];
|
|
322
|
+
data[2] = monthsData.wide[2];
|
|
323
|
+
data[3] = monthsData.wide[3];
|
|
324
|
+
data[4] = monthsData.wide[4];
|
|
325
|
+
data[5] = monthsData.wide[5];
|
|
326
|
+
data[6] = monthsData.wide[6];
|
|
327
|
+
data[7] = monthsData.wide[7];
|
|
328
|
+
data[8] = monthsData.wide[8];
|
|
329
|
+
data[9] = monthsData.wide[9];
|
|
330
|
+
data[10] = monthsData.wide[10];
|
|
331
|
+
data[11] = monthsData.wide[11];
|
|
332
|
+
data[12] = monthsData.wide[12];
|
|
333
|
+
styleMap[TextStyle.FULL] = data;
|
|
334
|
+
data = {};
|
|
335
|
+
data[1] = monthsData.narrow[1];
|
|
336
|
+
data[2] = monthsData.narrow[2];
|
|
337
|
+
data[3] = monthsData.narrow[3];
|
|
338
|
+
data[4] = monthsData.narrow[4];
|
|
339
|
+
data[5] = monthsData.narrow[5];
|
|
340
|
+
data[6] = monthsData.narrow[6];
|
|
341
|
+
data[7] = monthsData.narrow[7];
|
|
342
|
+
data[8] = monthsData.narrow[8];
|
|
343
|
+
data[9] = monthsData.narrow[9];
|
|
344
|
+
data[10] = monthsData.narrow[10];
|
|
345
|
+
data[11] = monthsData.narrow[11];
|
|
346
|
+
data[12] = monthsData.narrow[12];
|
|
347
|
+
styleMap[TextStyle.NARROW] = data;
|
|
348
|
+
data = {};
|
|
349
|
+
data[1] = monthsData.abbreviated[1];
|
|
350
|
+
data[2] = monthsData.abbreviated[2];
|
|
351
|
+
data[3] = monthsData.abbreviated[3];
|
|
352
|
+
data[4] = monthsData.abbreviated[4];
|
|
353
|
+
data[5] = monthsData.abbreviated[5];
|
|
354
|
+
data[6] = monthsData.abbreviated[6];
|
|
355
|
+
data[7] = monthsData.abbreviated[7];
|
|
356
|
+
data[8] = monthsData.abbreviated[8];
|
|
357
|
+
data[9] = monthsData.abbreviated[9];
|
|
358
|
+
data[10] = monthsData.abbreviated[10];
|
|
359
|
+
data[11] = monthsData.abbreviated[11];
|
|
360
|
+
data[12] = monthsData.abbreviated[12];
|
|
361
|
+
styleMap[TextStyle.SHORT] = data;
|
|
362
|
+
return this._createLocaleStore(styleMap);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if (field === ChronoField.DAY_OF_WEEK) {
|
|
366
|
+
var daysData = cldr.main('dates/calendars/gregorian/days/format');
|
|
367
|
+
var _styleMap = {};
|
|
368
|
+
var _data = {};
|
|
369
|
+
_data[1] = daysData.wide.mon;
|
|
370
|
+
_data[2] = daysData.wide.tue;
|
|
371
|
+
_data[3] = daysData.wide.wed;
|
|
372
|
+
_data[4] = daysData.wide.thu;
|
|
373
|
+
_data[5] = daysData.wide.fri;
|
|
374
|
+
_data[6] = daysData.wide.sat;
|
|
375
|
+
_data[7] = daysData.wide.sun;
|
|
376
|
+
_styleMap[TextStyle.FULL] = _data;
|
|
377
|
+
_data = {};
|
|
378
|
+
_data[1] = daysData.narrow.mon;
|
|
379
|
+
_data[2] = daysData.narrow.tue;
|
|
380
|
+
_data[3] = daysData.narrow.wed;
|
|
381
|
+
_data[4] = daysData.narrow.thu;
|
|
382
|
+
_data[5] = daysData.narrow.fri;
|
|
383
|
+
_data[6] = daysData.narrow.sat;
|
|
384
|
+
_data[7] = daysData.narrow.sun;
|
|
385
|
+
_styleMap[TextStyle.NARROW] = _data;
|
|
386
|
+
_data = {};
|
|
387
|
+
_data[1] = daysData.abbreviated.mon;
|
|
388
|
+
_data[2] = daysData.abbreviated.tue;
|
|
389
|
+
_data[3] = daysData.abbreviated.wed;
|
|
390
|
+
_data[4] = daysData.abbreviated.thu;
|
|
391
|
+
_data[5] = daysData.abbreviated.fri;
|
|
392
|
+
_data[6] = daysData.abbreviated.sat;
|
|
393
|
+
_data[7] = daysData.abbreviated.sun;
|
|
394
|
+
_styleMap[TextStyle.SHORT] = _data;
|
|
395
|
+
return this._createLocaleStore(_styleMap);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
if (field === ChronoField.AMPM_OF_DAY) {
|
|
399
|
+
var dayPeriodsData = cldr.main('dates/calendars/gregorian/dayPeriods/format');
|
|
400
|
+
var _styleMap2 = {};
|
|
401
|
+
var _data2 = {};
|
|
402
|
+
_data2[0] = dayPeriodsData.wide.am;
|
|
403
|
+
_data2[1] = dayPeriodsData.wide.pm;
|
|
404
|
+
_styleMap2[TextStyle.FULL] = _data2;
|
|
405
|
+
_data2 = {};
|
|
406
|
+
_data2[0] = dayPeriodsData.narrow.am;
|
|
407
|
+
_data2[1] = dayPeriodsData.narrow.pm;
|
|
408
|
+
_styleMap2[TextStyle.NARROW] = _data2;
|
|
409
|
+
_data2 = {};
|
|
410
|
+
_data2[0] = dayPeriodsData.abbreviated.am;
|
|
411
|
+
_data2[1] = dayPeriodsData.abbreviated.pm;
|
|
412
|
+
_styleMap2[TextStyle.SHORT] = _data2;
|
|
413
|
+
return this._createLocaleStore(_styleMap2);
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
if (field === ChronoField.ERA) {
|
|
417
|
+
var erasData = cldr.main('dates/calendars/gregorian/eras');
|
|
418
|
+
var _styleMap3 = {};
|
|
419
|
+
var _data3 = {};
|
|
420
|
+
_data3[0] = erasData.eraNames['0'];
|
|
421
|
+
_data3[1] = erasData.eraNames['1'];
|
|
422
|
+
_styleMap3[TextStyle.FULL] = _data3;
|
|
423
|
+
_data3 = {};
|
|
424
|
+
_data3[0] = erasData.eraNarrow['0'];
|
|
425
|
+
_data3[1] = erasData.eraNarrow['1'];
|
|
426
|
+
_styleMap3[TextStyle.NARROW] = _data3;
|
|
427
|
+
_data3 = {};
|
|
428
|
+
_data3[0] = erasData.eraAbbr['0'];
|
|
429
|
+
_data3[1] = erasData.eraAbbr['1'];
|
|
430
|
+
_styleMap3[TextStyle.SHORT] = _data3;
|
|
431
|
+
return this._createLocaleStore(_styleMap3);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (field === IsoFields.QUARTER_OF_YEAR) {
|
|
435
|
+
var quartersData = cldr.main('dates/calendars/gregorian/quarters/format');
|
|
436
|
+
var _styleMap4 = {};
|
|
437
|
+
var _data4 = {};
|
|
438
|
+
_data4[1] = quartersData.wide['1'];
|
|
439
|
+
_data4[2] = quartersData.wide['2'];
|
|
440
|
+
_data4[3] = quartersData.wide['3'];
|
|
441
|
+
_data4[4] = quartersData.wide['4'];
|
|
442
|
+
_styleMap4[TextStyle.FULL] = _data4;
|
|
443
|
+
_data4 = {};
|
|
444
|
+
_data4[1] = quartersData.narrow['1'];
|
|
445
|
+
_data4[2] = quartersData.narrow['2'];
|
|
446
|
+
_data4[3] = quartersData.narrow['3'];
|
|
447
|
+
_data4[4] = quartersData.narrow['4'];
|
|
448
|
+
_styleMap4[TextStyle.NARROW] = _data4;
|
|
449
|
+
_data4 = {};
|
|
450
|
+
_data4[1] = quartersData.abbreviated['1'];
|
|
451
|
+
_data4[2] = quartersData.abbreviated['2'];
|
|
452
|
+
_data4[3] = quartersData.abbreviated['3'];
|
|
453
|
+
_data4[4] = quartersData.abbreviated['4'];
|
|
454
|
+
_styleMap4[TextStyle.SHORT] = _data4;
|
|
455
|
+
return this._createLocaleStore(_styleMap4);
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
return null;
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
_proto._createLocaleStore = function _createLocaleStore(valueTextMap) {
|
|
462
|
+
valueTextMap[TextStyle.FULL_STANDALONE] = valueTextMap[TextStyle.FULL];
|
|
463
|
+
valueTextMap[TextStyle.SHORT_STANDALONE] = valueTextMap[TextStyle.SHORT];
|
|
464
|
+
|
|
465
|
+
if (Object.keys(valueTextMap).indexOf(TextStyle.NARROW) > -1 && Object.keys(valueTextMap).indexOf(TextStyle.NARROW_STANDALONE) === -1) {
|
|
466
|
+
valueTextMap[TextStyle.NARROW_STANDALONE] = valueTextMap[TextStyle.NARROW];
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
return new LocaleStore(valueTextMap);
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
return CldrDateTimeTextProvider;
|
|
473
|
+
}();
|
|
474
|
+
|
|
475
|
+
var _jodaInternal$assert$2 = _.assert,
|
|
476
|
+
requireNonNull$3 = _jodaInternal$assert$2.requireNonNull,
|
|
477
|
+
requireInstance$2 = _jodaInternal$assert$2.requireInstance;
|
|
478
|
+
|
|
479
|
+
var LENGTH_COMPARATOR = function LENGTH_COMPARATOR(str1, str2) {
|
|
480
|
+
var cmp = str2.length - str1.length;
|
|
481
|
+
|
|
482
|
+
if (cmp === 0) {
|
|
483
|
+
cmp = str1.localeCompare(str2);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
return cmp;
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
var resolveZoneIdTextCache = {};
|
|
490
|
+
|
|
491
|
+
var CldrZoneTextPrinterParser = function () {
|
|
492
|
+
function CldrZoneTextPrinterParser(textStyle) {
|
|
493
|
+
requireNonNull$3(textStyle, 'textStyle');
|
|
494
|
+
requireInstance$2(textStyle, TextStyle, 'textStyle');
|
|
495
|
+
this._textStyle = textStyle;
|
|
496
|
+
this._zoneIdsLocales = {};
|
|
497
|
+
loadCldrData('supplemental/likelySubtags.json');
|
|
498
|
+
loadCldrData('supplemental/metaZones.json');
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
var _proto = CldrZoneTextPrinterParser.prototype;
|
|
502
|
+
|
|
503
|
+
_proto._cachedResolveZoneIdText = function _cachedResolveZoneIdText(cldr, zoneId, style, type) {
|
|
504
|
+
if (resolveZoneIdTextCache[cldr.locale] == null) {
|
|
505
|
+
resolveZoneIdTextCache[cldr.locale] = {};
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
var zoneIdToStyle = resolveZoneIdTextCache[cldr.locale];
|
|
509
|
+
|
|
510
|
+
if (zoneIdToStyle[zoneId] == null) {
|
|
511
|
+
zoneIdToStyle[zoneId] = {};
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
var styleToType = zoneIdToStyle[zoneId];
|
|
515
|
+
|
|
516
|
+
if (styleToType[style] == null) {
|
|
517
|
+
styleToType[style] = {};
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
var typeToResolvedZoneIdText = styleToType[style];
|
|
521
|
+
|
|
522
|
+
if (typeToResolvedZoneIdText[type] == null) {
|
|
523
|
+
typeToResolvedZoneIdText[type] = this._resolveZoneIdText(cldr, zoneId, style, type);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
return typeToResolvedZoneIdText[type];
|
|
527
|
+
};
|
|
528
|
+
|
|
529
|
+
_proto._resolveZoneIdText = function _resolveZoneIdText(cldr, zoneId, style, type) {
|
|
530
|
+
var zoneData = cldr.main("dates/timeZoneNames/zone/" + zoneId + "/" + style + "/" + type);
|
|
531
|
+
|
|
532
|
+
if (zoneData) {
|
|
533
|
+
return zoneData;
|
|
534
|
+
} else {
|
|
535
|
+
var metazoneInfo = cldr.get("supplemental/metaZones/metazoneInfo/timezone/" + zoneId);
|
|
536
|
+
|
|
537
|
+
if (metazoneInfo) {
|
|
538
|
+
var metazone = metazoneInfo[metazoneInfo.length - 1]['usesMetazone']['_mzone'];
|
|
539
|
+
var metaZoneData = cldr.main("dates/timeZoneNames/metazone/" + metazone + "/" + style + "/" + type);
|
|
540
|
+
|
|
541
|
+
if (metaZoneData) {
|
|
542
|
+
return metaZoneData;
|
|
543
|
+
} else {
|
|
544
|
+
metaZoneData = cldr.main("dates/timeZoneNames/metazone/" + metazone + "/" + style + "/generic");
|
|
545
|
+
|
|
546
|
+
if (!metaZoneData) {
|
|
547
|
+
metaZoneData = cldr.main("dates/timeZoneNames/metazone/" + metazone + "/" + style + "/standard");
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
if (metaZoneData) {
|
|
551
|
+
return metaZoneData;
|
|
552
|
+
} else {
|
|
553
|
+
var mapZones = getOrCreateMapZones(cldr);
|
|
554
|
+
var preferredZone = mapZones[metazone][cldr.attributes.territory];
|
|
555
|
+
|
|
556
|
+
if (preferredZone) {
|
|
557
|
+
if (preferredZone !== zoneId) {
|
|
558
|
+
return this._cachedResolveZoneIdText(cldr, preferredZone, style, type);
|
|
559
|
+
}
|
|
560
|
+
} else {
|
|
561
|
+
var goldenZone = mapZones[metazone]['001'];
|
|
562
|
+
|
|
563
|
+
if (goldenZone !== zoneId) {
|
|
564
|
+
return this._cachedResolveZoneIdText(cldr, goldenZone, style, type);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
};
|
|
572
|
+
|
|
573
|
+
_proto.print = function print(context, buf) {
|
|
574
|
+
var zone = context.getValueQuery(TemporalQueries.zoneId());
|
|
575
|
+
|
|
576
|
+
if (zone == null) {
|
|
577
|
+
return false;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
if (zone.normalized() instanceof ZoneOffset) {
|
|
581
|
+
buf.append(zone.id());
|
|
582
|
+
return true;
|
|
583
|
+
}
|
|
584
|
+
var tzType = 'generic';
|
|
585
|
+
var tzstyle = this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short';
|
|
586
|
+
loadCldrData("main/" + context.locale().localeString() + "/timeZoneNames.json");
|
|
587
|
+
var cldr = getOrCreateCldrInstance(context.locale().localeString());
|
|
588
|
+
|
|
589
|
+
var text = this._cachedResolveZoneIdText(cldr, zone.id(), tzstyle, tzType);
|
|
590
|
+
|
|
591
|
+
if (text) {
|
|
592
|
+
buf.append(text);
|
|
593
|
+
} else {
|
|
594
|
+
buf.append(zone.id());
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
return true;
|
|
598
|
+
};
|
|
599
|
+
|
|
600
|
+
_proto._resolveZoneIds = function _resolveZoneIds(localString) {
|
|
601
|
+
if (this._zoneIdsLocales[localString] != null) {
|
|
602
|
+
return this._zoneIdsLocales[localString];
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
var ids = {};
|
|
606
|
+
loadCldrData("main/" + localString + "/timeZoneNames.json");
|
|
607
|
+
var cldr = getOrCreateCldrInstance(localString);
|
|
608
|
+
|
|
609
|
+
for (var _iterator = _createForOfIteratorHelperLoose(ZoneRulesProvider.getAvailableZoneIds()), _step; !(_step = _iterator()).done;) {
|
|
610
|
+
var id = _step.value;
|
|
611
|
+
ids[id] = id;
|
|
612
|
+
var tzstyle = this._textStyle.asNormal() === TextStyle.FULL ? 'long' : 'short';
|
|
613
|
+
|
|
614
|
+
var genericText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'generic');
|
|
615
|
+
|
|
616
|
+
if (genericText) {
|
|
617
|
+
ids[genericText] = id;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
var standardText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'standard');
|
|
621
|
+
|
|
622
|
+
if (standardText) {
|
|
623
|
+
ids[standardText] = id;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
var daylightText = this._cachedResolveZoneIdText(cldr, id, tzstyle, 'daylight');
|
|
627
|
+
|
|
628
|
+
if (daylightText) {
|
|
629
|
+
ids[daylightText] = id;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
var sortedKeys = Object.keys(ids).sort(LENGTH_COMPARATOR);
|
|
634
|
+
this._zoneIdsLocales[localString] = {
|
|
635
|
+
ids: ids,
|
|
636
|
+
sortedKeys: sortedKeys
|
|
637
|
+
};
|
|
638
|
+
return this._zoneIdsLocales[localString];
|
|
639
|
+
};
|
|
640
|
+
|
|
641
|
+
_proto.parse = function parse(context, text, position) {
|
|
642
|
+
for (var _i = 0, _arr = ['UTC', 'GMT']; _i < _arr.length; _i++) {
|
|
643
|
+
var name = _arr[_i];
|
|
644
|
+
|
|
645
|
+
if (context.subSequenceEquals(text, position, name, 0, name.length)) {
|
|
646
|
+
context.setParsedZone(ZoneId.of(name));
|
|
647
|
+
return position + name.length;
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
var _this$_resolveZoneIds = this._resolveZoneIds(context.locale().localeString()),
|
|
652
|
+
ids = _this$_resolveZoneIds.ids,
|
|
653
|
+
sortedKeys = _this$_resolveZoneIds.sortedKeys;
|
|
654
|
+
|
|
655
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(sortedKeys), _step2; !(_step2 = _iterator2()).done;) {
|
|
656
|
+
var _name = _step2.value;
|
|
657
|
+
|
|
658
|
+
if (context.subSequenceEquals(text, position, _name, 0, _name.length)) {
|
|
659
|
+
context.setParsedZone(ZoneId.of(ids[_name]));
|
|
660
|
+
return position + _name.length;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
return ~position;
|
|
665
|
+
};
|
|
666
|
+
|
|
667
|
+
_proto.toString = function toString() {
|
|
668
|
+
return "ZoneText(" + this._textStyle + ")";
|
|
669
|
+
};
|
|
670
|
+
|
|
671
|
+
return CldrZoneTextPrinterParser;
|
|
672
|
+
}();
|
|
673
|
+
|
|
674
|
+
/**
|
|
675
|
+
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
|
|
676
|
+
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
|
|
677
|
+
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
|
|
678
|
+
*/
|
|
679
|
+
var MathUtil$1 = _.MathUtil;
|
|
680
|
+
|
|
681
|
+
var LocalizedOffsetPrinterParser = function () {
|
|
682
|
+
function LocalizedOffsetPrinterParser(textStyle) {
|
|
683
|
+
this._textStyle = textStyle;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
var _proto = LocalizedOffsetPrinterParser.prototype;
|
|
687
|
+
|
|
688
|
+
_proto.textStyle = function textStyle() {
|
|
689
|
+
return this._textStyle;
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
_proto.print = function print(context, buf) {
|
|
693
|
+
var offsetSecs = context.getValue(ChronoField.OFFSET_SECONDS);
|
|
694
|
+
|
|
695
|
+
if (offsetSecs == null) {
|
|
696
|
+
return false;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
buf.append('GMT');
|
|
700
|
+
|
|
701
|
+
if (this._textStyle === TextStyle.FULL) {
|
|
702
|
+
return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').print(context, buf);
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
var totalSecs = MathUtil$1.safeToInt(offsetSecs);
|
|
706
|
+
|
|
707
|
+
if (totalSecs !== 0) {
|
|
708
|
+
var absHours = Math.abs(MathUtil$1.intMod(MathUtil$1.intDiv(totalSecs, 3600), 100));
|
|
709
|
+
var absMinutes = Math.abs(MathUtil$1.intMod(MathUtil$1.intDiv(totalSecs, 60), 60));
|
|
710
|
+
var absSeconds = Math.abs(MathUtil$1.intMod(totalSecs, 60));
|
|
711
|
+
buf.append(totalSecs < 0 ? '-' : '+').append(absHours);
|
|
712
|
+
|
|
713
|
+
if (absMinutes > 0 || absSeconds > 0) {
|
|
714
|
+
buf.append(':').append(MathUtil$1.intDiv(absMinutes, 10)).append(MathUtil$1.intMod(absMinutes, 10));
|
|
715
|
+
|
|
716
|
+
if (absSeconds > 0) {
|
|
717
|
+
buf.append(':').append(MathUtil$1.intDiv(absSeconds, 10)).append(MathUtil$1.intMod(absSeconds, 10));
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
return true;
|
|
723
|
+
};
|
|
724
|
+
|
|
725
|
+
_proto.parse = function parse(context, text, position) {
|
|
726
|
+
if (context.subSequenceEquals(text, position, 'GMT', 0, 3) === false) {
|
|
727
|
+
return ~position;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
position += 3;
|
|
731
|
+
|
|
732
|
+
if (this._textStyle === TextStyle.FULL) {
|
|
733
|
+
return new DateTimeFormatterBuilder.OffsetIdPrinterParser('', '+HH:MM:ss').parse(context, text, position);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
var end = text.length;
|
|
737
|
+
|
|
738
|
+
if (position === end) {
|
|
739
|
+
return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
var sign = text.charAt(position);
|
|
743
|
+
|
|
744
|
+
if (sign !== '+' && sign !== '-') {
|
|
745
|
+
return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
var negative = sign === '-' ? -1 : 1;
|
|
749
|
+
|
|
750
|
+
if (position === end) {
|
|
751
|
+
return ~position;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
position++;
|
|
755
|
+
var ch = text.charAt(position);
|
|
756
|
+
|
|
757
|
+
if (ch < '0' || ch > '9') {
|
|
758
|
+
return ~position;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
position++;
|
|
762
|
+
var hour = MathUtil$1.parseInt(ch);
|
|
763
|
+
|
|
764
|
+
if (position !== end) {
|
|
765
|
+
ch = text.charAt(position);
|
|
766
|
+
|
|
767
|
+
if (ch >= '0' && ch <= '9') {
|
|
768
|
+
hour = hour * 10 + MathUtil$1.parseInt(ch);
|
|
769
|
+
|
|
770
|
+
if (hour > 23) {
|
|
771
|
+
return ~position;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
position++;
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
if (position === end || text.charAt(position) !== ':') {
|
|
779
|
+
var _offset = negative * 3600 * hour;
|
|
780
|
+
|
|
781
|
+
return context.setParsedField(ChronoField.OFFSET_SECONDS, _offset, position, position);
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
position++;
|
|
785
|
+
|
|
786
|
+
if (position > end - 2) {
|
|
787
|
+
return ~position;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
ch = text.charAt(position);
|
|
791
|
+
|
|
792
|
+
if (ch < '0' || ch > '9') {
|
|
793
|
+
return ~position;
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
position++;
|
|
797
|
+
var min = MathUtil$1.parseInt(ch);
|
|
798
|
+
ch = text.charAt(position);
|
|
799
|
+
|
|
800
|
+
if (ch < '0' || ch > '9') {
|
|
801
|
+
return ~position;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
position++;
|
|
805
|
+
min = min * 10 + MathUtil$1.parseInt(ch);
|
|
806
|
+
|
|
807
|
+
if (min > 59) {
|
|
808
|
+
return ~position;
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
if (position === end || text.charAt(position) !== ':') {
|
|
812
|
+
var _offset2 = negative * (3600 * hour + 60 * min);
|
|
813
|
+
|
|
814
|
+
return context.setParsedField(ChronoField.OFFSET_SECONDS, _offset2, position, position);
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
position++;
|
|
818
|
+
|
|
819
|
+
if (position > end - 2) {
|
|
820
|
+
return ~position;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
ch = text.charAt(position);
|
|
824
|
+
|
|
825
|
+
if (ch < '0' || ch > '9') {
|
|
826
|
+
return ~position;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
position++;
|
|
830
|
+
var sec = MathUtil$1.parseInt(ch);
|
|
831
|
+
ch = text.charAt(position);
|
|
832
|
+
|
|
833
|
+
if (ch < '0' || ch > '9') {
|
|
834
|
+
return ~position;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
position++;
|
|
838
|
+
sec = sec * 10 + MathUtil$1.parseInt(ch);
|
|
839
|
+
|
|
840
|
+
if (sec > 59) {
|
|
841
|
+
return ~position;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
var offset = negative * (3600 * hour + 60 * min + sec);
|
|
845
|
+
return context.setParsedField(ChronoField.OFFSET_SECONDS, offset, position, position);
|
|
846
|
+
};
|
|
847
|
+
|
|
848
|
+
_proto.toString = function toString() {
|
|
849
|
+
return "LocalizedOffset(" + this._textStyle + ")";
|
|
850
|
+
};
|
|
851
|
+
|
|
852
|
+
return LocalizedOffsetPrinterParser;
|
|
853
|
+
}();
|
|
854
|
+
|
|
855
|
+
/*
|
|
856
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
857
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
858
|
+
*/
|
|
859
|
+
var MathUtil = _.MathUtil,
|
|
860
|
+
_jodaInternal$assert$1 = _.assert,
|
|
861
|
+
requireNonNull$2 = _jodaInternal$assert$1.requireNonNull,
|
|
862
|
+
requireInstance$1 = _jodaInternal$assert$1.requireInstance;
|
|
863
|
+
var DAY_OF_WEEK_RANGE = ValueRange.of(1, 7);
|
|
864
|
+
var WEEK_OF_MONTH_RANGE = ValueRange.of(0, 1, 4, 6);
|
|
865
|
+
var WEEK_OF_YEAR_RANGE = ValueRange.of(0, 1, 52, 54);
|
|
866
|
+
var WEEK_OF_WEEK_BASED_YEAR_RANGE = ValueRange.of(1, 52, 53);
|
|
867
|
+
var WEEK_BASED_YEAR_RANGE = ChronoField.YEAR.range();
|
|
868
|
+
var _weekDayMap = {
|
|
869
|
+
'mon': DayOfWeek.MONDAY,
|
|
870
|
+
'tue': DayOfWeek.TUESDAY,
|
|
871
|
+
'wed': DayOfWeek.WEDNESDAY,
|
|
872
|
+
'thu': DayOfWeek.THURSDAY,
|
|
873
|
+
'fri': DayOfWeek.FRIDAY,
|
|
874
|
+
'sat': DayOfWeek.SATURDAY,
|
|
875
|
+
'sun': DayOfWeek.SUNDAY
|
|
876
|
+
};
|
|
877
|
+
var ComputedDayOfField = function () {
|
|
878
|
+
ComputedDayOfField.ofDayOfWeekField = function ofDayOfWeekField(weekDef) {
|
|
879
|
+
return new ComputedDayOfField('DayOfWeek', weekDef, ChronoUnit.DAYS, ChronoUnit.WEEKS, DAY_OF_WEEK_RANGE);
|
|
880
|
+
};
|
|
881
|
+
|
|
882
|
+
ComputedDayOfField.ofWeekOfMonthField = function ofWeekOfMonthField(weekDef) {
|
|
883
|
+
return new ComputedDayOfField('WeekOfMonth', weekDef, ChronoUnit.WEEKS, ChronoUnit.MONTHS, WEEK_OF_MONTH_RANGE);
|
|
884
|
+
};
|
|
885
|
+
|
|
886
|
+
ComputedDayOfField.ofWeekOfYearField = function ofWeekOfYearField(weekDef) {
|
|
887
|
+
return new ComputedDayOfField('WeekOfYear', weekDef, ChronoUnit.WEEKS, ChronoUnit.YEARS, WEEK_OF_YEAR_RANGE);
|
|
888
|
+
};
|
|
889
|
+
|
|
890
|
+
ComputedDayOfField.ofWeekOfWeekBasedYearField = function ofWeekOfWeekBasedYearField(weekDef) {
|
|
891
|
+
return new ComputedDayOfField('WeekOfWeekBasedYear', weekDef, ChronoUnit.WEEKS, IsoFields.WEEK_BASED_YEARS, WEEK_OF_WEEK_BASED_YEAR_RANGE);
|
|
892
|
+
};
|
|
893
|
+
|
|
894
|
+
ComputedDayOfField.ofWeekBasedYearField = function ofWeekBasedYearField(weekDef) {
|
|
895
|
+
return new ComputedDayOfField('WeekBasedYear', weekDef, IsoFields.WEEK_BASED_YEARS, ChronoUnit.FOREVER, WEEK_BASED_YEAR_RANGE);
|
|
896
|
+
};
|
|
897
|
+
|
|
898
|
+
function ComputedDayOfField(name, weekDef, baseUnit, rangeUnit, range) {
|
|
899
|
+
this._name = name;
|
|
900
|
+
this._weekDef = weekDef;
|
|
901
|
+
this._baseUnit = baseUnit;
|
|
902
|
+
this._rangeUnit = rangeUnit;
|
|
903
|
+
this._range = range;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
var _proto = ComputedDayOfField.prototype;
|
|
907
|
+
|
|
908
|
+
_proto.getFrom = function getFrom(temporal) {
|
|
909
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
910
|
+
|
|
911
|
+
var dow = this._localizedDayOfWeek(temporal, sow);
|
|
912
|
+
|
|
913
|
+
if (this._rangeUnit === ChronoUnit.WEEKS) {
|
|
914
|
+
return dow;
|
|
915
|
+
} else if (this._rangeUnit === ChronoUnit.MONTHS) {
|
|
916
|
+
return this._localizedWeekOfMonth(temporal, dow);
|
|
917
|
+
} else if (this._rangeUnit === ChronoUnit.YEARS) {
|
|
918
|
+
return this._localizedWeekOfYear(temporal, dow);
|
|
919
|
+
} else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {
|
|
920
|
+
return this._localizedWOWBY(temporal);
|
|
921
|
+
} else if (this._rangeUnit === ChronoUnit.FOREVER) {
|
|
922
|
+
return this._localizedWBY(temporal);
|
|
923
|
+
} else {
|
|
924
|
+
throw new IllegalStateException('unreachable');
|
|
925
|
+
}
|
|
926
|
+
};
|
|
927
|
+
|
|
928
|
+
_proto._localizedDayOfWeek = function _localizedDayOfWeek(temporal, sow) {
|
|
929
|
+
var isoDow = temporal.get(ChronoField.DAY_OF_WEEK);
|
|
930
|
+
return MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
931
|
+
};
|
|
932
|
+
|
|
933
|
+
_proto._localizedWeekOfMonth = function _localizedWeekOfMonth(temporal, dow) {
|
|
934
|
+
var dom = temporal.get(ChronoField.DAY_OF_MONTH);
|
|
935
|
+
|
|
936
|
+
var offset = this._startOfWeekOffset(dom, dow);
|
|
937
|
+
|
|
938
|
+
return ComputedDayOfField._computeWeek(offset, dom);
|
|
939
|
+
};
|
|
940
|
+
|
|
941
|
+
_proto._localizedWeekOfYear = function _localizedWeekOfYear(temporal, dow) {
|
|
942
|
+
var doy = temporal.get(ChronoField.DAY_OF_YEAR);
|
|
943
|
+
|
|
944
|
+
var offset = this._startOfWeekOffset(doy, dow);
|
|
945
|
+
|
|
946
|
+
return ComputedDayOfField._computeWeek(offset, doy);
|
|
947
|
+
};
|
|
948
|
+
|
|
949
|
+
_proto._localizedWOWBY = function _localizedWOWBY(temporal) {
|
|
950
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
951
|
+
|
|
952
|
+
var isoDow = temporal.get(ChronoField.DAY_OF_WEEK);
|
|
953
|
+
var dow = MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
954
|
+
|
|
955
|
+
var woy = this._localizedWeekOfYear(temporal, dow);
|
|
956
|
+
|
|
957
|
+
if (woy === 0) {
|
|
958
|
+
var previous = LocalDate.from(temporal).minus(1, ChronoUnit.WEEKS);
|
|
959
|
+
return this._localizedWeekOfYear(previous, dow) + 1;
|
|
960
|
+
} else if (woy >= 53) {
|
|
961
|
+
var offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);
|
|
962
|
+
|
|
963
|
+
var year = temporal.get(ChronoField.YEAR);
|
|
964
|
+
var yearLen = Year.isLeap(year) ? 366 : 365;
|
|
965
|
+
|
|
966
|
+
var weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());
|
|
967
|
+
|
|
968
|
+
if (woy >= weekIndexOfFirstWeekNextYear) {
|
|
969
|
+
return woy - (weekIndexOfFirstWeekNextYear - 1);
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
return woy;
|
|
974
|
+
};
|
|
975
|
+
|
|
976
|
+
_proto._localizedWBY = function _localizedWBY(temporal) {
|
|
977
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
978
|
+
|
|
979
|
+
var isoDow = temporal.get(ChronoField.DAY_OF_WEEK);
|
|
980
|
+
var dow = MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
981
|
+
var year = temporal.get(ChronoField.YEAR);
|
|
982
|
+
|
|
983
|
+
var woy = this._localizedWeekOfYear(temporal, dow);
|
|
984
|
+
|
|
985
|
+
if (woy === 0) {
|
|
986
|
+
return year - 1;
|
|
987
|
+
} else if (woy < 53) {
|
|
988
|
+
return year;
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
var offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);
|
|
992
|
+
|
|
993
|
+
var yearLen = Year.isLeap(year) ? 366 : 365;
|
|
994
|
+
|
|
995
|
+
var weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());
|
|
996
|
+
|
|
997
|
+
if (woy >= weekIndexOfFirstWeekNextYear) {
|
|
998
|
+
return year + 1;
|
|
999
|
+
}
|
|
1000
|
+
|
|
1001
|
+
return year;
|
|
1002
|
+
};
|
|
1003
|
+
|
|
1004
|
+
_proto._startOfWeekOffset = function _startOfWeekOffset(day, dow) {
|
|
1005
|
+
var weekStart = MathUtil.floorMod(day - dow, 7);
|
|
1006
|
+
var offset = -weekStart;
|
|
1007
|
+
|
|
1008
|
+
if (weekStart + 1 > this._weekDef.minimalDaysInFirstWeek()) {
|
|
1009
|
+
offset = 7 - weekStart;
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
return offset;
|
|
1013
|
+
};
|
|
1014
|
+
|
|
1015
|
+
ComputedDayOfField._computeWeek = function _computeWeek(offset, day) {
|
|
1016
|
+
return MathUtil.intDiv(7 + offset + (day - 1), 7);
|
|
1017
|
+
};
|
|
1018
|
+
|
|
1019
|
+
_proto.adjustInto = function adjustInto(temporal, newValue) {
|
|
1020
|
+
var newVal = this._range.checkValidIntValue(newValue, this);
|
|
1021
|
+
|
|
1022
|
+
var currentVal = temporal.get(this);
|
|
1023
|
+
|
|
1024
|
+
if (newVal === currentVal) {
|
|
1025
|
+
return temporal;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
if (this._rangeUnit === ChronoUnit.FOREVER) {
|
|
1029
|
+
var baseWowby = temporal.get(this._weekDef.weekOfWeekBasedYear());
|
|
1030
|
+
var diffWeeks = MathUtil.roundDown((newValue - currentVal) * 52.1775);
|
|
1031
|
+
var result = temporal.plus(diffWeeks, ChronoUnit.WEEKS);
|
|
1032
|
+
|
|
1033
|
+
if (result.get(this) > newVal) {
|
|
1034
|
+
var newWowby = result.get(this._weekDef.weekOfWeekBasedYear());
|
|
1035
|
+
result = result.minus(newWowby, ChronoUnit.WEEKS);
|
|
1036
|
+
} else {
|
|
1037
|
+
if (result.get(this) < newVal) {
|
|
1038
|
+
result = result.plus(2, ChronoUnit.WEEKS);
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
var _newWowby = result.get(this._weekDef.weekOfWeekBasedYear());
|
|
1042
|
+
|
|
1043
|
+
result = result.plus(baseWowby - _newWowby, ChronoUnit.WEEKS);
|
|
1044
|
+
|
|
1045
|
+
if (result.get(this) > newVal) {
|
|
1046
|
+
result = result.minus(1, ChronoUnit.WEEKS);
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
return result;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
var delta = newVal - currentVal;
|
|
1054
|
+
return temporal.plus(delta, this._baseUnit);
|
|
1055
|
+
};
|
|
1056
|
+
|
|
1057
|
+
_proto.resolve = function resolve(fieldValues, partialTemporal, resolverStyle) {
|
|
1058
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
1059
|
+
|
|
1060
|
+
if (this._rangeUnit === ChronoUnit.WEEKS) {
|
|
1061
|
+
var value = fieldValues.remove(this);
|
|
1062
|
+
|
|
1063
|
+
var localDow = this._range.checkValidIntValue(value, this);
|
|
1064
|
+
|
|
1065
|
+
var _isoDow = MathUtil.floorMod(sow - 1 + (localDow - 1), 7) + 1;
|
|
1066
|
+
|
|
1067
|
+
fieldValues.put(ChronoField.DAY_OF_WEEK, _isoDow);
|
|
1068
|
+
return null;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
if (fieldValues.containsKey(ChronoField.DAY_OF_WEEK) === false) {
|
|
1072
|
+
return null;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
if (this._rangeUnit === ChronoUnit.FOREVER) {
|
|
1076
|
+
if (fieldValues.containsKey(this._weekDef.weekOfWeekBasedYear()) === false) {
|
|
1077
|
+
return null;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
var _isoDow2 = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));
|
|
1081
|
+
|
|
1082
|
+
var _dow = MathUtil.floorMod(_isoDow2 - sow, 7) + 1;
|
|
1083
|
+
|
|
1084
|
+
var wby = this.range().checkValidIntValue(fieldValues.get(this), this);
|
|
1085
|
+
var date;
|
|
1086
|
+
var days;
|
|
1087
|
+
|
|
1088
|
+
if (resolverStyle === ResolverStyle.LENIENT) {
|
|
1089
|
+
date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek());
|
|
1090
|
+
var wowby = fieldValues.get(this._weekDef.weekOfWeekBasedYear());
|
|
1091
|
+
|
|
1092
|
+
var dateDow = this._localizedDayOfWeek(date, sow);
|
|
1093
|
+
|
|
1094
|
+
var weeks = wowby - this._localizedWeekOfYear(date, dateDow);
|
|
1095
|
+
|
|
1096
|
+
days = weeks * 7 + (_dow - dateDow);
|
|
1097
|
+
} else {
|
|
1098
|
+
date = LocalDate.of(wby, 1, this._weekDef.minimalDaysInFirstWeek());
|
|
1099
|
+
|
|
1100
|
+
var _wowby = this._weekDef.weekOfWeekBasedYear().range().checkValidIntValue(fieldValues.get(this._weekDef.weekOfWeekBasedYear()), this._weekDef.weekOfWeekBasedYear);
|
|
1101
|
+
|
|
1102
|
+
var _dateDow = this._localizedDayOfWeek(date, sow);
|
|
1103
|
+
|
|
1104
|
+
var _weeks = _wowby - this._localizedWeekOfYear(date, _dateDow);
|
|
1105
|
+
|
|
1106
|
+
days = _weeks * 7 + (_dow - _dateDow);
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
date = date.plus(days, ChronoUnit.DAYS);
|
|
1110
|
+
|
|
1111
|
+
if (resolverStyle === ResolverStyle.STRICT) {
|
|
1112
|
+
if (date.getLong(this) !== fieldValues.get(this)) {
|
|
1113
|
+
throw new DateTimeException('Strict mode rejected date parsed to a different year');
|
|
1114
|
+
}
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
fieldValues.remove(this);
|
|
1118
|
+
fieldValues.remove(this._weekDef.weekOfWeekBasedYear());
|
|
1119
|
+
fieldValues.remove(ChronoField.DAY_OF_WEEK);
|
|
1120
|
+
return date;
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
if (fieldValues.containsKey(ChronoField.YEAR) === false) {
|
|
1124
|
+
return null;
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
var isoDow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.get(ChronoField.DAY_OF_WEEK));
|
|
1128
|
+
var dow = MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
1129
|
+
var year = ChronoField.YEAR.checkValidIntValue(fieldValues.get(ChronoField.YEAR));
|
|
1130
|
+
|
|
1131
|
+
if (this._rangeUnit === ChronoUnit.MONTHS) {
|
|
1132
|
+
if (fieldValues.containsKey(ChronoField.MONTH_OF_YEAR) === false) {
|
|
1133
|
+
return null;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
var _value = fieldValues.remove(this);
|
|
1137
|
+
|
|
1138
|
+
var _date;
|
|
1139
|
+
|
|
1140
|
+
var _days;
|
|
1141
|
+
|
|
1142
|
+
if (resolverStyle === ResolverStyle.LENIENT) {
|
|
1143
|
+
var month = fieldValues.get(ChronoField.MONTH_OF_YEAR);
|
|
1144
|
+
_date = LocalDate.of(year, 1, 1);
|
|
1145
|
+
_date = _date.plus(month - 1, ChronoUnit.MONTHS);
|
|
1146
|
+
|
|
1147
|
+
var _dateDow2 = this._localizedDayOfWeek(_date, sow);
|
|
1148
|
+
|
|
1149
|
+
var _weeks2 = _value - this._localizedWeekOfMonth(_date, _dateDow2);
|
|
1150
|
+
|
|
1151
|
+
_days = _weeks2 * 7 + (dow - _dateDow2);
|
|
1152
|
+
} else {
|
|
1153
|
+
var _month = ChronoField.MONTH_OF_YEAR.checkValidIntValue(fieldValues.get(ChronoField.MONTH_OF_YEAR));
|
|
1154
|
+
|
|
1155
|
+
_date = LocalDate.of(year, _month, 8);
|
|
1156
|
+
|
|
1157
|
+
var _dateDow3 = this._localizedDayOfWeek(_date, sow);
|
|
1158
|
+
|
|
1159
|
+
var wom = this._range.checkValidIntValue(_value, this);
|
|
1160
|
+
|
|
1161
|
+
var _weeks3 = wom - this._localizedWeekOfMonth(_date, _dateDow3);
|
|
1162
|
+
|
|
1163
|
+
_days = _weeks3 * 7 + (dow - _dateDow3);
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
_date = _date.plus(_days, ChronoUnit.DAYS);
|
|
1167
|
+
|
|
1168
|
+
if (resolverStyle === ResolverStyle.STRICT) {
|
|
1169
|
+
if (_date.getLong(ChronoField.MONTH_OF_YEAR) !== fieldValues.get(ChronoField.MONTH_OF_YEAR)) {
|
|
1170
|
+
throw new DateTimeException('Strict mode rejected date parsed to a different month');
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
fieldValues.remove(this);
|
|
1175
|
+
fieldValues.remove(ChronoField.YEAR);
|
|
1176
|
+
fieldValues.remove(ChronoField.MONTH_OF_YEAR);
|
|
1177
|
+
fieldValues.remove(ChronoField.DAY_OF_WEEK);
|
|
1178
|
+
return _date;
|
|
1179
|
+
} else if (this._rangeUnit === ChronoUnit.YEARS) {
|
|
1180
|
+
var _value2 = fieldValues.remove(this);
|
|
1181
|
+
|
|
1182
|
+
var _date2 = LocalDate.of(year, 1, 1);
|
|
1183
|
+
|
|
1184
|
+
var _days2;
|
|
1185
|
+
|
|
1186
|
+
if (resolverStyle === ResolverStyle.LENIENT) {
|
|
1187
|
+
var _dateDow4 = this._localizedDayOfWeek(_date2, sow);
|
|
1188
|
+
|
|
1189
|
+
var _weeks4 = _value2 - this._localizedWeekOfYear(_date2, _dateDow4);
|
|
1190
|
+
|
|
1191
|
+
_days2 = _weeks4 * 7 + (dow - _dateDow4);
|
|
1192
|
+
} else {
|
|
1193
|
+
var _dateDow5 = this._localizedDayOfWeek(_date2, sow);
|
|
1194
|
+
|
|
1195
|
+
var woy = this._range.checkValidIntValue(_value2, this);
|
|
1196
|
+
|
|
1197
|
+
var _weeks5 = woy - this._localizedWeekOfYear(_date2, _dateDow5);
|
|
1198
|
+
|
|
1199
|
+
_days2 = _weeks5 * 7 + (dow - _dateDow5);
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
_date2 = _date2.plus(_days2, ChronoUnit.DAYS);
|
|
1203
|
+
|
|
1204
|
+
if (resolverStyle === ResolverStyle.STRICT) {
|
|
1205
|
+
if (_date2.getLong(ChronoField.YEAR) !== fieldValues.get(ChronoField.YEAR)) {
|
|
1206
|
+
throw new DateTimeException('Strict mode rejected date parsed to a different year');
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
fieldValues.remove(this);
|
|
1211
|
+
fieldValues.remove(ChronoField.YEAR);
|
|
1212
|
+
fieldValues.remove(ChronoField.DAY_OF_WEEK);
|
|
1213
|
+
return _date2;
|
|
1214
|
+
} else {
|
|
1215
|
+
throw new IllegalStateException('unreachable');
|
|
1216
|
+
}
|
|
1217
|
+
};
|
|
1218
|
+
|
|
1219
|
+
_proto.name = function name() {
|
|
1220
|
+
return this._name;
|
|
1221
|
+
};
|
|
1222
|
+
|
|
1223
|
+
_proto.baseUnit = function baseUnit() {
|
|
1224
|
+
return this._baseUnit;
|
|
1225
|
+
};
|
|
1226
|
+
|
|
1227
|
+
_proto.rangeUnit = function rangeUnit() {
|
|
1228
|
+
return this._rangeUnit;
|
|
1229
|
+
};
|
|
1230
|
+
|
|
1231
|
+
_proto.range = function range() {
|
|
1232
|
+
return this._range;
|
|
1233
|
+
};
|
|
1234
|
+
|
|
1235
|
+
_proto.isDateBased = function isDateBased() {
|
|
1236
|
+
return true;
|
|
1237
|
+
};
|
|
1238
|
+
|
|
1239
|
+
_proto.isTimeBased = function isTimeBased() {
|
|
1240
|
+
return false;
|
|
1241
|
+
};
|
|
1242
|
+
|
|
1243
|
+
_proto.isSupportedBy = function isSupportedBy(temporal) {
|
|
1244
|
+
if (temporal.isSupported(ChronoField.DAY_OF_WEEK)) {
|
|
1245
|
+
if (this._rangeUnit === ChronoUnit.WEEKS) {
|
|
1246
|
+
return true;
|
|
1247
|
+
} else if (this._rangeUnit === ChronoUnit.MONTHS) {
|
|
1248
|
+
return temporal.isSupported(ChronoField.DAY_OF_MONTH);
|
|
1249
|
+
} else if (this._rangeUnit === ChronoUnit.YEARS) {
|
|
1250
|
+
return temporal.isSupported(ChronoField.DAY_OF_YEAR);
|
|
1251
|
+
} else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {
|
|
1252
|
+
return temporal.isSupported(ChronoField.EPOCH_DAY);
|
|
1253
|
+
} else if (this._rangeUnit === ChronoUnit.FOREVER) {
|
|
1254
|
+
return temporal.isSupported(ChronoField.EPOCH_DAY);
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
return false;
|
|
1259
|
+
};
|
|
1260
|
+
|
|
1261
|
+
_proto.rangeRefinedBy = function rangeRefinedBy(temporal) {
|
|
1262
|
+
if (this._rangeUnit === ChronoUnit.WEEKS) {
|
|
1263
|
+
return this._range;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
var field = null;
|
|
1267
|
+
|
|
1268
|
+
if (this._rangeUnit === ChronoUnit.MONTHS) {
|
|
1269
|
+
field = ChronoField.DAY_OF_MONTH;
|
|
1270
|
+
} else if (this._rangeUnit === ChronoUnit.YEARS) {
|
|
1271
|
+
field = ChronoField.DAY_OF_YEAR;
|
|
1272
|
+
} else if (this._rangeUnit === IsoFields.WEEK_BASED_YEARS) {
|
|
1273
|
+
return this._rangeWOWBY(temporal);
|
|
1274
|
+
} else if (this._rangeUnit === ChronoUnit.FOREVER) {
|
|
1275
|
+
return temporal.range(ChronoField.YEAR);
|
|
1276
|
+
} else {
|
|
1277
|
+
throw new IllegalStateException('unreachable');
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
1281
|
+
|
|
1282
|
+
var isoDow = temporal.get(ChronoField.DAY_OF_WEEK);
|
|
1283
|
+
var dow = MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
1284
|
+
|
|
1285
|
+
var offset = this._startOfWeekOffset(temporal.get(field), dow);
|
|
1286
|
+
|
|
1287
|
+
var fieldRange = temporal.range(field);
|
|
1288
|
+
return ValueRange.of(ComputedDayOfField._computeWeek(offset, fieldRange.minimum()), ComputedDayOfField._computeWeek(offset, fieldRange.maximum()));
|
|
1289
|
+
};
|
|
1290
|
+
|
|
1291
|
+
_proto._rangeWOWBY = function _rangeWOWBY(temporal) {
|
|
1292
|
+
var sow = this._weekDef.firstDayOfWeek().value();
|
|
1293
|
+
|
|
1294
|
+
var isoDow = temporal.get(ChronoField.DAY_OF_WEEK);
|
|
1295
|
+
var dow = MathUtil.floorMod(isoDow - sow, 7) + 1;
|
|
1296
|
+
|
|
1297
|
+
var woy = this._localizedWeekOfYear(temporal, dow);
|
|
1298
|
+
|
|
1299
|
+
if (woy === 0) {
|
|
1300
|
+
return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).minus(2, ChronoUnit.WEEKS));
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
var offset = this._startOfWeekOffset(temporal.get(ChronoField.DAY_OF_YEAR), dow);
|
|
1304
|
+
|
|
1305
|
+
var year = temporal.get(ChronoField.YEAR);
|
|
1306
|
+
var yearLen = Year.isLeap(year) ? 366 : 365;
|
|
1307
|
+
|
|
1308
|
+
var weekIndexOfFirstWeekNextYear = ComputedDayOfField._computeWeek(offset, yearLen + this._weekDef.minimalDaysInFirstWeek());
|
|
1309
|
+
|
|
1310
|
+
if (woy >= weekIndexOfFirstWeekNextYear) {
|
|
1311
|
+
return this._rangeWOWBY(IsoChronology.INSTANCE.date(temporal).plus(2, ChronoUnit.WEEKS));
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
return ValueRange.of(1, weekIndexOfFirstWeekNextYear - 1);
|
|
1315
|
+
};
|
|
1316
|
+
|
|
1317
|
+
_proto.displayName = function displayName(locale) {
|
|
1318
|
+
requireNonNull$2(locale, 'locale');
|
|
1319
|
+
|
|
1320
|
+
if (this._rangeUnit === ChronoUnit.YEARS) {
|
|
1321
|
+
return 'Week';
|
|
1322
|
+
}
|
|
1323
|
+
|
|
1324
|
+
return this.toString();
|
|
1325
|
+
};
|
|
1326
|
+
|
|
1327
|
+
_proto.toString = function toString() {
|
|
1328
|
+
return this._name + "[" + this._weekDef.toString() + "]";
|
|
1329
|
+
};
|
|
1330
|
+
|
|
1331
|
+
return ComputedDayOfField;
|
|
1332
|
+
}();
|
|
1333
|
+
var WeekFieldsCache = new Map();
|
|
1334
|
+
var WeekFields = function () {
|
|
1335
|
+
WeekFields.of = function of(firstDayOrLocale, minDays) {
|
|
1336
|
+
if (minDays === undefined) {
|
|
1337
|
+
return WeekFields.ofLocale(firstDayOrLocale);
|
|
1338
|
+
} else {
|
|
1339
|
+
return WeekFields.ofFirstDayOfWeekMinDays(firstDayOrLocale, minDays);
|
|
1340
|
+
}
|
|
1341
|
+
};
|
|
1342
|
+
|
|
1343
|
+
WeekFields.ofLocale = function ofLocale(locale) {
|
|
1344
|
+
requireNonNull$2(locale, 'locale');
|
|
1345
|
+
Cldr.load(cldrData('supplemental/weekData.json'));
|
|
1346
|
+
var cldr = new Cldr(locale.localeString());
|
|
1347
|
+
var worldRegion = '001';
|
|
1348
|
+
var weekData = cldr.get('supplemental/weekData');
|
|
1349
|
+
|
|
1350
|
+
var dow = _weekDayMap[weekData.firstDay[locale.country()]];
|
|
1351
|
+
|
|
1352
|
+
if (!dow) {
|
|
1353
|
+
dow = _weekDayMap[weekData.firstDay[worldRegion]];
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
var minDays = weekData.minDays[locale.country()];
|
|
1357
|
+
|
|
1358
|
+
if (!minDays) {
|
|
1359
|
+
minDays = weekData.minDays[worldRegion];
|
|
1360
|
+
}
|
|
1361
|
+
|
|
1362
|
+
return WeekFields.ofFirstDayOfWeekMinDays(dow, minDays);
|
|
1363
|
+
};
|
|
1364
|
+
|
|
1365
|
+
WeekFields.ofFirstDayOfWeekMinDays = function ofFirstDayOfWeekMinDays(firstDayOfWeek, minimalDaysInFirstWeek) {
|
|
1366
|
+
requireNonNull$2(firstDayOfWeek, 'firstDayOfWeek');
|
|
1367
|
+
requireInstance$1(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');
|
|
1368
|
+
requireNonNull$2(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');
|
|
1369
|
+
var key = firstDayOfWeek.toString() + minimalDaysInFirstWeek;
|
|
1370
|
+
var rules = WeekFieldsCache.get(key);
|
|
1371
|
+
|
|
1372
|
+
if (rules == null) {
|
|
1373
|
+
rules = new WeekFields(firstDayOfWeek, minimalDaysInFirstWeek);
|
|
1374
|
+
WeekFieldsCache.set(key, rules);
|
|
1375
|
+
rules = WeekFieldsCache.get(key);
|
|
1376
|
+
}
|
|
1377
|
+
|
|
1378
|
+
return rules;
|
|
1379
|
+
};
|
|
1380
|
+
|
|
1381
|
+
function WeekFields(firstDayOfWeek, minimalDaysInFirstWeek) {
|
|
1382
|
+
requireNonNull$2(firstDayOfWeek, 'firstDayOfWeek');
|
|
1383
|
+
requireInstance$1(firstDayOfWeek, DayOfWeek, 'firstDayOfWeek');
|
|
1384
|
+
requireNonNull$2(minimalDaysInFirstWeek, 'minimalDaysInFirstWeek');
|
|
1385
|
+
|
|
1386
|
+
if (minimalDaysInFirstWeek < 1 || minimalDaysInFirstWeek > 7) {
|
|
1387
|
+
throw new IllegalArgumentException('Minimal number of days is invalid');
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
this._firstDayOfWeek = firstDayOfWeek;
|
|
1391
|
+
this._minimalDays = minimalDaysInFirstWeek;
|
|
1392
|
+
this._dayOfWeek = ComputedDayOfField.ofDayOfWeekField(this);
|
|
1393
|
+
this._weekOfMonth = ComputedDayOfField.ofWeekOfMonthField(this);
|
|
1394
|
+
this._weekOfYear = ComputedDayOfField.ofWeekOfYearField(this);
|
|
1395
|
+
this._weekOfWeekBasedYear = ComputedDayOfField.ofWeekOfWeekBasedYearField(this);
|
|
1396
|
+
this._weekBasedYear = ComputedDayOfField.ofWeekBasedYearField(this);
|
|
1397
|
+
Cldr.load(cldrData('supplemental/likelySubtags.json'));
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
var _proto2 = WeekFields.prototype;
|
|
1401
|
+
|
|
1402
|
+
_proto2.firstDayOfWeek = function firstDayOfWeek() {
|
|
1403
|
+
return this._firstDayOfWeek;
|
|
1404
|
+
};
|
|
1405
|
+
|
|
1406
|
+
_proto2.minimalDaysInFirstWeek = function minimalDaysInFirstWeek() {
|
|
1407
|
+
return this._minimalDays;
|
|
1408
|
+
};
|
|
1409
|
+
|
|
1410
|
+
_proto2.dayOfWeek = function dayOfWeek() {
|
|
1411
|
+
return this._dayOfWeek;
|
|
1412
|
+
};
|
|
1413
|
+
|
|
1414
|
+
_proto2.weekOfMonth = function weekOfMonth() {
|
|
1415
|
+
return this._weekOfMonth;
|
|
1416
|
+
};
|
|
1417
|
+
|
|
1418
|
+
_proto2.weekOfYear = function weekOfYear() {
|
|
1419
|
+
return this._weekOfYear;
|
|
1420
|
+
};
|
|
1421
|
+
|
|
1422
|
+
_proto2.weekOfWeekBasedYear = function weekOfWeekBasedYear() {
|
|
1423
|
+
return this._weekOfWeekBasedYear;
|
|
1424
|
+
};
|
|
1425
|
+
|
|
1426
|
+
_proto2.weekBasedYear = function weekBasedYear() {
|
|
1427
|
+
return this._weekBasedYear;
|
|
1428
|
+
};
|
|
1429
|
+
|
|
1430
|
+
_proto2.equals = function equals(other) {
|
|
1431
|
+
if (this === other) {
|
|
1432
|
+
return true;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
if (other instanceof WeekFields) {
|
|
1436
|
+
return this.hashCode() === other.hashCode();
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
return false;
|
|
1440
|
+
};
|
|
1441
|
+
|
|
1442
|
+
_proto2.hashCode = function hashCode() {
|
|
1443
|
+
return this._firstDayOfWeek.ordinal() * 7 + this._minimalDays;
|
|
1444
|
+
};
|
|
1445
|
+
|
|
1446
|
+
_proto2.toString = function toString() {
|
|
1447
|
+
return "WeekFields[" + this._firstDayOfWeek + "," + this._minimalDays + "]";
|
|
1448
|
+
};
|
|
1449
|
+
|
|
1450
|
+
return WeekFields;
|
|
1451
|
+
}();
|
|
1452
|
+
function _init$2() {
|
|
1453
|
+
WeekFields.ISO = WeekFields.of(DayOfWeek.MONDAY, 4);
|
|
1454
|
+
WeekFields.SUNDAY_START = WeekFields.of(DayOfWeek.SUNDAY, 1);
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
/*
|
|
1458
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
1459
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
1460
|
+
*/
|
|
1461
|
+
var StringBuilder = _.StringBuilder;
|
|
1462
|
+
|
|
1463
|
+
var WeekFieldsPrinterParser = function () {
|
|
1464
|
+
function WeekFieldsPrinterParser(letter, count) {
|
|
1465
|
+
this._letter = letter;
|
|
1466
|
+
this._count = count;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
var _proto = WeekFieldsPrinterParser.prototype;
|
|
1470
|
+
|
|
1471
|
+
_proto.print = function print(context, buf) {
|
|
1472
|
+
var weekFields = WeekFields.of(context.locale());
|
|
1473
|
+
|
|
1474
|
+
var pp = this._evaluate(weekFields);
|
|
1475
|
+
|
|
1476
|
+
return pp.print(context, buf);
|
|
1477
|
+
};
|
|
1478
|
+
|
|
1479
|
+
_proto.parse = function parse(context, text, position) {
|
|
1480
|
+
var weekFields = WeekFields.of(context.locale());
|
|
1481
|
+
|
|
1482
|
+
var pp = this._evaluate(weekFields);
|
|
1483
|
+
|
|
1484
|
+
return pp.parse(context, text, position);
|
|
1485
|
+
};
|
|
1486
|
+
|
|
1487
|
+
_proto._evaluate = function _evaluate(weekFields) {
|
|
1488
|
+
var pp = null;
|
|
1489
|
+
|
|
1490
|
+
switch (this._letter) {
|
|
1491
|
+
case 'e':
|
|
1492
|
+
pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);
|
|
1493
|
+
break;
|
|
1494
|
+
|
|
1495
|
+
case 'c':
|
|
1496
|
+
pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.dayOfWeek(), this._count, 2, SignStyle.NOT_NEGATIVE);
|
|
1497
|
+
break;
|
|
1498
|
+
|
|
1499
|
+
case 'w':
|
|
1500
|
+
pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfWeekBasedYear(), this._count, 2, SignStyle.NOT_NEGATIVE);
|
|
1501
|
+
break;
|
|
1502
|
+
|
|
1503
|
+
case 'W':
|
|
1504
|
+
pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekOfMonth(), 1, 2, SignStyle.NOT_NEGATIVE);
|
|
1505
|
+
break;
|
|
1506
|
+
|
|
1507
|
+
case 'Y':
|
|
1508
|
+
if (this._count === 2) {
|
|
1509
|
+
pp = new DateTimeFormatterBuilder.ReducedPrinterParser(weekFields.weekBasedYear(), 2, 2, 0, DateTimeFormatterBuilder.ReducedPrinterParser.BASE_DATE);
|
|
1510
|
+
} else {
|
|
1511
|
+
pp = new DateTimeFormatterBuilder.NumberPrinterParser(weekFields.weekBasedYear(), this._count, 19, this._count < 4 ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD, -1);
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
break;
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
return pp;
|
|
1518
|
+
};
|
|
1519
|
+
|
|
1520
|
+
_proto.toString = function toString() {
|
|
1521
|
+
var sb = new StringBuilder(30);
|
|
1522
|
+
sb.append('Localized(');
|
|
1523
|
+
|
|
1524
|
+
if (this._letter === 'Y') {
|
|
1525
|
+
if (this._count === 1) {
|
|
1526
|
+
sb.append('WeekBasedYear');
|
|
1527
|
+
} else if (this._count === 2) {
|
|
1528
|
+
sb.append('ReducedValue(WeekBasedYear,2,2,2000-01-01)');
|
|
1529
|
+
} else {
|
|
1530
|
+
sb.append('WeekBasedYear,').append(this._count).append(',').append(19).append(',').append(this._count < 4 ? SignStyle.NORMAL : SignStyle.EXCEEDS_PAD);
|
|
1531
|
+
}
|
|
1532
|
+
} else {
|
|
1533
|
+
if (this._letter === 'c' || this._letter === 'e') {
|
|
1534
|
+
sb.append('DayOfWeek');
|
|
1535
|
+
} else if (this._letter === 'w') {
|
|
1536
|
+
sb.append('WeekOfWeekBasedYear');
|
|
1537
|
+
} else if (this._letter === 'W') {
|
|
1538
|
+
sb.append('WeekOfMonth');
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
sb.append(',');
|
|
1542
|
+
sb.append(this._count);
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
sb.append(')');
|
|
1546
|
+
return sb.toString();
|
|
1547
|
+
};
|
|
1548
|
+
|
|
1549
|
+
return WeekFieldsPrinterParser;
|
|
1550
|
+
}();
|
|
1551
|
+
|
|
1552
|
+
var _jodaInternal$assert = _.assert,
|
|
1553
|
+
requireNonNull$1 = _jodaInternal$assert.requireNonNull,
|
|
1554
|
+
requireInstance = _jodaInternal$assert.requireInstance;
|
|
1555
|
+
|
|
1556
|
+
var CldrDateTimeFormatterBuilder = function (_DateTimeFormatterBui) {
|
|
1557
|
+
_inheritsLoose(CldrDateTimeFormatterBuilder, _DateTimeFormatterBui);
|
|
1558
|
+
|
|
1559
|
+
function CldrDateTimeFormatterBuilder() {
|
|
1560
|
+
return _DateTimeFormatterBui.apply(this, arguments) || this;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
var _proto = CldrDateTimeFormatterBuilder.prototype;
|
|
1564
|
+
|
|
1565
|
+
_proto.appendText = function appendText(field, styleOrMap) {
|
|
1566
|
+
if (styleOrMap === undefined) {
|
|
1567
|
+
return this.appendTextField(field);
|
|
1568
|
+
} else if (styleOrMap instanceof TextStyle) {
|
|
1569
|
+
return this.appendTextFieldStyle(field, styleOrMap);
|
|
1570
|
+
} else {
|
|
1571
|
+
return this.appendTextFieldMap(field, styleOrMap);
|
|
1572
|
+
}
|
|
1573
|
+
};
|
|
1574
|
+
|
|
1575
|
+
_proto.appendTextField = function appendTextField(field) {
|
|
1576
|
+
return this.appendTextFieldStyle(field, TextStyle.FULL);
|
|
1577
|
+
};
|
|
1578
|
+
|
|
1579
|
+
_proto.appendTextFieldStyle = function appendTextFieldStyle(field, textStyle) {
|
|
1580
|
+
requireNonNull$1(field, 'field');
|
|
1581
|
+
requireInstance(field, TemporalField, 'field');
|
|
1582
|
+
requireNonNull$1(textStyle, 'textStyle');
|
|
1583
|
+
requireInstance(textStyle, TextStyle, 'textStyle');
|
|
1584
|
+
|
|
1585
|
+
this._appendInternal(new TextPrinterParser(field, textStyle, new CldrDateTimeTextProvider()));
|
|
1586
|
+
|
|
1587
|
+
return this;
|
|
1588
|
+
};
|
|
1589
|
+
|
|
1590
|
+
_proto.appendTextFieldMap = function appendTextFieldMap(field, textLookup) {
|
|
1591
|
+
requireNonNull$1(field, 'field');
|
|
1592
|
+
requireInstance(field, ChronoField, 'field');
|
|
1593
|
+
requireNonNull$1(textLookup, 'textLookup');
|
|
1594
|
+
|
|
1595
|
+
var copy = _extends({}, textLookup);
|
|
1596
|
+
|
|
1597
|
+
var map = {};
|
|
1598
|
+
map[TextStyle.FULL] = copy;
|
|
1599
|
+
var store = new LocaleStore(map);
|
|
1600
|
+
var provider = {
|
|
1601
|
+
getText: function getText(field, value, style) {
|
|
1602
|
+
return store.getText(value, style);
|
|
1603
|
+
},
|
|
1604
|
+
getTextIterator: function getTextIterator(field, style) {
|
|
1605
|
+
return store.getTextIterator(style);
|
|
1606
|
+
}
|
|
1607
|
+
};
|
|
1608
|
+
|
|
1609
|
+
this._appendInternal(new TextPrinterParser(field, TextStyle.FULL, provider));
|
|
1610
|
+
|
|
1611
|
+
return this;
|
|
1612
|
+
};
|
|
1613
|
+
|
|
1614
|
+
_proto.appendWeekField = function appendWeekField(field, count) {
|
|
1615
|
+
requireNonNull$1(field, 'field');
|
|
1616
|
+
requireNonNull$1(count, 'count');
|
|
1617
|
+
|
|
1618
|
+
this._appendInternal(new WeekFieldsPrinterParser(field, count));
|
|
1619
|
+
|
|
1620
|
+
return this;
|
|
1621
|
+
};
|
|
1622
|
+
|
|
1623
|
+
_proto.appendZoneText = function appendZoneText(textStyle) {
|
|
1624
|
+
this._appendInternal(new CldrZoneTextPrinterParser(textStyle));
|
|
1625
|
+
|
|
1626
|
+
return this;
|
|
1627
|
+
};
|
|
1628
|
+
|
|
1629
|
+
_proto.appendLocalizedOffset = function appendLocalizedOffset(textStyle) {
|
|
1630
|
+
requireNonNull$1(textStyle, 'textStyle');
|
|
1631
|
+
|
|
1632
|
+
if (textStyle !== TextStyle.FULL && textStyle !== TextStyle.SHORT) {
|
|
1633
|
+
throw new IllegalArgumentException('Style must be either full or short');
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1636
|
+
this._appendInternal(new LocalizedOffsetPrinterParser(textStyle));
|
|
1637
|
+
|
|
1638
|
+
return this;
|
|
1639
|
+
};
|
|
1640
|
+
|
|
1641
|
+
return CldrDateTimeFormatterBuilder;
|
|
1642
|
+
}(DateTimeFormatterBuilder);
|
|
1643
|
+
|
|
1644
|
+
/*
|
|
1645
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
1646
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
1647
|
+
*/
|
|
1648
|
+
|
|
1649
|
+
var Locale = function () {
|
|
1650
|
+
Locale.getAvailableLocales = function getAvailableLocales() {
|
|
1651
|
+
return new CldrDateTimeTextProvider().getAvailableLocales();
|
|
1652
|
+
};
|
|
1653
|
+
|
|
1654
|
+
function Locale(language, country, localeString) {
|
|
1655
|
+
if (country === void 0) {
|
|
1656
|
+
country = '';
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
if (localeString === void 0) {
|
|
1660
|
+
localeString = '';
|
|
1661
|
+
}
|
|
1662
|
+
|
|
1663
|
+
this._language = language;
|
|
1664
|
+
this._country = country;
|
|
1665
|
+
this._localeString = localeString;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
var _proto = Locale.prototype;
|
|
1669
|
+
|
|
1670
|
+
_proto.language = function language() {
|
|
1671
|
+
return this._language;
|
|
1672
|
+
};
|
|
1673
|
+
|
|
1674
|
+
_proto.country = function country() {
|
|
1675
|
+
return this._country;
|
|
1676
|
+
};
|
|
1677
|
+
|
|
1678
|
+
_proto.localeString = function localeString() {
|
|
1679
|
+
if (this._localeString.length > 0) {
|
|
1680
|
+
return this._localeString;
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1683
|
+
if (this._country.length > 0) {
|
|
1684
|
+
return this._language + "-" + this._country;
|
|
1685
|
+
} else {
|
|
1686
|
+
return this._language;
|
|
1687
|
+
}
|
|
1688
|
+
};
|
|
1689
|
+
|
|
1690
|
+
_proto.toString = function toString() {
|
|
1691
|
+
return "Locale[" + this.localeString() + "]";
|
|
1692
|
+
};
|
|
1693
|
+
|
|
1694
|
+
_proto.equals = function equals(other) {
|
|
1695
|
+
if (!other) {
|
|
1696
|
+
return false;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
if (!(other instanceof Locale)) {
|
|
1700
|
+
return false;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
return this.localeString() === other.localeString();
|
|
1704
|
+
};
|
|
1705
|
+
|
|
1706
|
+
return Locale;
|
|
1707
|
+
}();
|
|
1708
|
+
function _init$1() {
|
|
1709
|
+
Locale.ENGLISH = new Locale('en');
|
|
1710
|
+
Locale.US = new Locale('en', 'US', 'en');
|
|
1711
|
+
Locale.UK = new Locale('en', 'GB');
|
|
1712
|
+
Locale.CANADA = new Locale('en', 'CA');
|
|
1713
|
+
Locale.FRENCH = new Locale('fr');
|
|
1714
|
+
Locale.FRANCE = new Locale('fr', 'FR', 'fr');
|
|
1715
|
+
Locale.GERMAN = new Locale('de');
|
|
1716
|
+
Locale.GERMANY = new Locale('de', 'DE', 'de');
|
|
1717
|
+
Locale.KOREAN = new Locale('ko');
|
|
1718
|
+
Locale.JAPANESE = new Locale('ja', 'JP');
|
|
1719
|
+
Locale.JAPAN = new Locale('ja', 'JP', 'ja');
|
|
1720
|
+
Locale.ITALIAN = new Locale('it');
|
|
1721
|
+
Locale.ITALY = new Locale('it', 'IT', 'it');
|
|
1722
|
+
Locale.CHINESE = new Locale('zh');
|
|
1723
|
+
Locale.ROMANIAN = new Locale('ro');
|
|
1724
|
+
Locale.SWEDISH = new Locale('sv');
|
|
1725
|
+
Locale.SWEDEN = new Locale('sv', 'SE', 'sv');
|
|
1726
|
+
Locale.HINDI = new Locale('hi');
|
|
1727
|
+
Locale.RUSSIAN = new Locale('ru');
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
var requireNonNull = _.assert.requireNonNull;
|
|
1731
|
+
|
|
1732
|
+
var LocaleDateTimeFormatter = function (_DateTimeFormatter) {
|
|
1733
|
+
_inheritsLoose(LocaleDateTimeFormatter, _DateTimeFormatter);
|
|
1734
|
+
|
|
1735
|
+
function LocaleDateTimeFormatter() {
|
|
1736
|
+
return _DateTimeFormatter.apply(this, arguments) || this;
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
var _proto = LocaleDateTimeFormatter.prototype;
|
|
1740
|
+
|
|
1741
|
+
_proto.withLocale = function withLocale(locale) {
|
|
1742
|
+
requireNonNull(locale, 'locale');
|
|
1743
|
+
|
|
1744
|
+
if (locale.equals(this._locale)) {
|
|
1745
|
+
return this;
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1748
|
+
return new DateTimeFormatter(this._printerParser, locale, this._decimalStyle, this._resolverStyle, this._resolverFields, this._chrono, this._zone);
|
|
1749
|
+
};
|
|
1750
|
+
|
|
1751
|
+
return LocaleDateTimeFormatter;
|
|
1752
|
+
}(DateTimeFormatter);
|
|
1753
|
+
function _init() {
|
|
1754
|
+
var dow = {
|
|
1755
|
+
1: 'Mon',
|
|
1756
|
+
2: 'Tue',
|
|
1757
|
+
3: 'Wed',
|
|
1758
|
+
4: 'Thu',
|
|
1759
|
+
5: 'Fri',
|
|
1760
|
+
6: 'Sat',
|
|
1761
|
+
7: 'Sun'
|
|
1762
|
+
};
|
|
1763
|
+
var moy = {
|
|
1764
|
+
1: 'Jan',
|
|
1765
|
+
2: 'Feb',
|
|
1766
|
+
3: 'Mar',
|
|
1767
|
+
4: 'Apr',
|
|
1768
|
+
5: 'May',
|
|
1769
|
+
6: 'Jun',
|
|
1770
|
+
7: 'Jul',
|
|
1771
|
+
8: 'Aug',
|
|
1772
|
+
9: 'Sep',
|
|
1773
|
+
10: 'Oct',
|
|
1774
|
+
11: 'Nov',
|
|
1775
|
+
12: 'Dec'
|
|
1776
|
+
};
|
|
1777
|
+
LocaleDateTimeFormatter.RFC_1123_DATE_TIME = new CldrDateTimeFormatterBuilder().parseCaseInsensitive().parseLenient().optionalStart().appendText(ChronoField.DAY_OF_WEEK, dow).appendLiteral(', ').optionalEnd().appendValue(ChronoField.DAY_OF_MONTH, 2).appendLiteral(' ').appendText(ChronoField.MONTH_OF_YEAR, moy).appendLiteral(' ').appendValue(ChronoField.YEAR, 4).appendLiteral(' ').appendValue(ChronoField.HOUR_OF_DAY, 2).appendLiteral(':').appendValue(ChronoField.MINUTE_OF_HOUR, 2).optionalStart().appendLiteral(':').appendValue(ChronoField.SECOND_OF_MINUTE, 2).optionalEnd().appendLiteral(' ').appendZoneId().toFormatter(ResolverStyle.SMART).withChronology(IsoChronology.INSTANCE);
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
/*
|
|
1781
|
+
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
|
|
1782
|
+
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
|
|
1783
|
+
*/
|
|
1784
|
+
var isInit = false;
|
|
1785
|
+
|
|
1786
|
+
function init() {
|
|
1787
|
+
if (isInit) {
|
|
1788
|
+
return;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
isInit = true;
|
|
1792
|
+
_init$1();
|
|
1793
|
+
_init$2();
|
|
1794
|
+
_init();
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
init();
|
|
1798
|
+
|
|
1799
|
+
/*
|
|
1800
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
1801
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
1802
|
+
*/
|
|
1803
|
+
function plug (jsJoda) {
|
|
1804
|
+
Object.getOwnPropertyNames(CldrDateTimeFormatterBuilder.prototype).forEach(function (prop) {
|
|
1805
|
+
if (prop !== 'constructor') {
|
|
1806
|
+
jsJoda.DateTimeFormatterBuilder.prototype[prop] = CldrDateTimeFormatterBuilder.prototype[prop];
|
|
1807
|
+
}
|
|
1808
|
+
});
|
|
1809
|
+
Object.getOwnPropertyNames(LocaleDateTimeFormatter.prototype).forEach(function (prop) {
|
|
1810
|
+
if (prop !== 'constructor') {
|
|
1811
|
+
jsJoda.DateTimeFormatter.prototype[prop] = LocaleDateTimeFormatter.prototype[prop];
|
|
1812
|
+
}
|
|
1813
|
+
});
|
|
1814
|
+
jsJoda.DateTimeFormatter.RFC_1123_DATE_TIME = LocaleDateTimeFormatter.RFC_1123_DATE_TIME;
|
|
1815
|
+
}
|
|
1816
|
+
|
|
1817
|
+
/*
|
|
1818
|
+
* @copyright (c) 2017, Philipp Thuerwaechter & Pattrick Hueper
|
|
1819
|
+
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
|
|
1820
|
+
*/
|
|
1821
|
+
use(plug);
|
|
1822
|
+
|
|
1823
|
+
export { Locale };
|