@js-joda/timezone 2.15.0 → 2.16.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/dist/js-joda-timezone-10-year-range.esm.js +25 -118
- package/dist/js-joda-timezone-10-year-range.esm.js.map +1 -1
- package/dist/js-joda-timezone-10-year-range.js +25 -118
- package/dist/js-joda-timezone-10-year-range.js.map +1 -1
- package/dist/js-joda-timezone-10-year-range.min.js +2 -2
- package/dist/js-joda-timezone-1970-2030.esm.js +31 -124
- package/dist/js-joda-timezone-1970-2030.esm.js.map +1 -1
- package/dist/js-joda-timezone-1970-2030.js +31 -124
- package/dist/js-joda-timezone-1970-2030.js.map +1 -1
- package/dist/js-joda-timezone-1970-2030.min.js +2 -2
- package/dist/js-joda-timezone-2012-2022.esm.js +24 -117
- package/dist/js-joda-timezone-2012-2022.esm.js.map +1 -1
- package/dist/js-joda-timezone-2012-2022.js +24 -117
- package/dist/js-joda-timezone-2012-2022.js.map +1 -1
- package/dist/js-joda-timezone-2012-2022.min.js +2 -2
- package/dist/js-joda-timezone-2017-2027.esm.js +25 -118
- package/dist/js-joda-timezone-2017-2027.esm.js.map +1 -1
- package/dist/js-joda-timezone-2017-2027.js +25 -118
- package/dist/js-joda-timezone-2017-2027.js.map +1 -1
- package/dist/js-joda-timezone-2017-2027.min.js +2 -2
- package/dist/js-joda-timezone-empty.esm.js +17 -110
- package/dist/js-joda-timezone-empty.esm.js.map +1 -1
- package/dist/js-joda-timezone-empty.js +17 -110
- package/dist/js-joda-timezone-empty.js.map +1 -1
- package/dist/js-joda-timezone-empty.min.js +2 -2
- package/dist/js-joda-timezone.esm.js +228 -321
- package/dist/js-joda-timezone.esm.js.map +1 -1
- package/dist/js-joda-timezone.js +228 -321
- package/dist/js-joda-timezone.js.map +1 -1
- package/dist/js-joda-timezone.min.js +2 -2
- package/package.json +4 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//! @version @js-joda/timezone - 2.
|
|
1
|
+
//! @version @js-joda/timezone - 2.16.0
|
|
2
2
|
//! @copyright (c) 2015-present, Philipp Thürwächter, Pattrick Hüper & js-joda contributors
|
|
3
3
|
//! @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
|
|
4
4
|
//! @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
|
|
@@ -12,19 +12,15 @@
|
|
|
12
12
|
function _inheritsLoose(subClass, superClass) {
|
|
13
13
|
subClass.prototype = Object.create(superClass.prototype);
|
|
14
14
|
subClass.prototype.constructor = subClass;
|
|
15
|
-
|
|
16
15
|
_setPrototypeOf(subClass, superClass);
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
function _setPrototypeOf(o, p) {
|
|
20
|
-
_setPrototypeOf = Object.setPrototypeOf
|
|
18
|
+
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
|
|
21
19
|
o.__proto__ = p;
|
|
22
20
|
return o;
|
|
23
21
|
};
|
|
24
|
-
|
|
25
22
|
return _setPrototypeOf(o, p);
|
|
26
23
|
}
|
|
27
|
-
|
|
28
24
|
function _unsupportedIterableToArray(o, minLen) {
|
|
29
25
|
if (!o) return;
|
|
30
26
|
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
@@ -33,19 +29,14 @@
|
|
|
33
29
|
if (n === "Map" || n === "Set") return Array.from(o);
|
|
34
30
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
35
31
|
}
|
|
36
|
-
|
|
37
32
|
function _arrayLikeToArray(arr, len) {
|
|
38
33
|
if (len == null || len > arr.length) len = arr.length;
|
|
39
|
-
|
|
40
34
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
41
|
-
|
|
42
35
|
return arr2;
|
|
43
36
|
}
|
|
44
|
-
|
|
45
37
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
46
38
|
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
47
39
|
if (it) return (it = it.call(o)).next.bind(it);
|
|
48
|
-
|
|
49
40
|
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
50
41
|
if (it) o = it;
|
|
51
42
|
var i = 0;
|
|
@@ -59,147 +50,110 @@
|
|
|
59
50
|
};
|
|
60
51
|
};
|
|
61
52
|
}
|
|
62
|
-
|
|
63
53
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
64
54
|
}
|
|
65
55
|
|
|
66
56
|
var MomentZoneRules = function (_ZoneRules) {
|
|
67
57
|
_inheritsLoose(MomentZoneRules, _ZoneRules);
|
|
68
|
-
|
|
69
58
|
function MomentZoneRules(tzdbInfo) {
|
|
70
59
|
var _this;
|
|
71
|
-
|
|
72
60
|
_this = _ZoneRules.call(this) || this;
|
|
73
61
|
_this._tzdbInfo = tzdbInfo;
|
|
74
62
|
_this._ldtUntils = new LDTUntils(_this._tzdbInfo.untils, _this._tzdbInfo.offsets);
|
|
75
63
|
return _this;
|
|
76
64
|
}
|
|
77
|
-
|
|
78
65
|
var _proto = MomentZoneRules.prototype;
|
|
79
|
-
|
|
80
66
|
_proto.isFixedOffset = function isFixedOffset() {
|
|
81
67
|
return this._tzdbInfo.offsets.length === 1;
|
|
82
68
|
};
|
|
83
|
-
|
|
84
69
|
_proto.offsetOfInstant = function offsetOfInstant(instant) {
|
|
85
70
|
var epochMilli = instant.toEpochMilli();
|
|
86
71
|
return this.offsetOfEpochMilli(epochMilli);
|
|
87
72
|
};
|
|
88
|
-
|
|
89
73
|
_proto.offsetOfEpochMilli = function offsetOfEpochMilli(epochMilli) {
|
|
90
74
|
var index = binarySearch(this._tzdbInfo.untils, epochMilli);
|
|
91
75
|
return core.ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(index));
|
|
92
76
|
};
|
|
93
|
-
|
|
94
77
|
_proto.offsetOfLocalDateTime = function offsetOfLocalDateTime(localDateTime) {
|
|
95
78
|
var info = this._offsetInfo(localDateTime);
|
|
96
|
-
|
|
97
79
|
if (info instanceof core.ZoneOffsetTransition) {
|
|
98
80
|
return info.offsetBefore();
|
|
99
81
|
}
|
|
100
|
-
|
|
101
82
|
return info;
|
|
102
83
|
};
|
|
103
|
-
|
|
104
84
|
_proto._offsetInfo = function _offsetInfo(localDateTime) {
|
|
105
85
|
var index = ldtBinarySearch(this._ldtUntils, localDateTime);
|
|
106
86
|
var offsetIndex = index >> 1;
|
|
107
|
-
|
|
108
87
|
if (index % 2 === 1) {
|
|
109
88
|
var ldtBefore = this._ldtUntils.get(Math.max(index - 1, 0));
|
|
110
|
-
|
|
111
89
|
var ldtAfter = this._ldtUntils.get(Math.min(index, this._ldtUntils.size - 1));
|
|
112
|
-
|
|
113
90
|
var offsetBefore = core.ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));
|
|
114
91
|
var offsetAfter = core.ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(Math.min(offsetIndex + 1, this._tzdbInfo.offsets.length - 1)));
|
|
115
|
-
|
|
116
92
|
if (offsetBefore.compareTo(offsetAfter) > 0) {
|
|
117
93
|
return core.ZoneOffsetTransition.of(ldtBefore, offsetBefore, offsetAfter);
|
|
118
94
|
} else {
|
|
119
95
|
return core.ZoneOffsetTransition.of(ldtAfter, offsetBefore, offsetAfter);
|
|
120
96
|
}
|
|
121
97
|
}
|
|
122
|
-
|
|
123
98
|
return core.ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));
|
|
124
99
|
};
|
|
125
|
-
|
|
126
100
|
_proto._offsetByIndexInSeconds = function _offsetByIndexInSeconds(index) {
|
|
127
101
|
return -offsetInSeconds(this._tzdbInfo.offsets[index]);
|
|
128
102
|
};
|
|
129
|
-
|
|
130
103
|
_proto.validOffsets = function validOffsets(localDateTime) {
|
|
131
104
|
var info = this._offsetInfo(localDateTime);
|
|
132
|
-
|
|
133
105
|
if (info instanceof core.ZoneOffsetTransition) {
|
|
134
106
|
return info.validOffsets();
|
|
135
107
|
}
|
|
136
|
-
|
|
137
108
|
return [info];
|
|
138
109
|
};
|
|
139
|
-
|
|
140
110
|
_proto.transition = function transition(localDateTime) {
|
|
141
111
|
var info = this._offsetInfo(localDateTime);
|
|
142
|
-
|
|
143
112
|
if (info instanceof core.ZoneOffsetTransition) {
|
|
144
113
|
return info;
|
|
145
114
|
}
|
|
146
|
-
|
|
147
115
|
return null;
|
|
148
116
|
};
|
|
149
|
-
|
|
150
117
|
_proto.standardOffset = function standardOffset(instant) {
|
|
151
118
|
notSupported('ZoneRules.standardOffset');
|
|
152
119
|
};
|
|
153
|
-
|
|
154
120
|
_proto.daylightSavings = function daylightSavings(instant) {
|
|
155
121
|
notSupported('ZoneRules.daylightSavings');
|
|
156
122
|
};
|
|
157
|
-
|
|
158
123
|
_proto.isDaylightSavings = function isDaylightSavings(instant) {
|
|
159
124
|
notSupported('ZoneRules.isDaylightSavings');
|
|
160
125
|
};
|
|
161
|
-
|
|
162
126
|
_proto.isValidOffset = function isValidOffset(localDateTime, offset) {
|
|
163
127
|
return this.validOffsets(localDateTime).some(function (o) {
|
|
164
128
|
return o.equals(offset);
|
|
165
129
|
});
|
|
166
130
|
};
|
|
167
|
-
|
|
168
131
|
_proto.nextTransition = function nextTransition(instant) {
|
|
169
132
|
notSupported('ZoneRules.nextTransition');
|
|
170
133
|
};
|
|
171
|
-
|
|
172
134
|
_proto.previousTransition = function previousTransition(instant) {
|
|
173
135
|
notSupported('ZoneRules.previousTransition');
|
|
174
136
|
};
|
|
175
|
-
|
|
176
137
|
_proto.transitions = function transitions() {
|
|
177
138
|
notSupported('ZoneRules.transitions');
|
|
178
139
|
};
|
|
179
|
-
|
|
180
140
|
_proto.transitionRules = function transitionRules() {
|
|
181
141
|
notSupported('ZoneRules.transitionRules');
|
|
182
142
|
};
|
|
183
|
-
|
|
184
143
|
_proto.equals = function equals(other) {
|
|
185
144
|
if (this === other) {
|
|
186
145
|
return true;
|
|
187
146
|
}
|
|
188
|
-
|
|
189
147
|
if (other instanceof MomentZoneRules) {
|
|
190
148
|
return this._tzdbInfo === other._tzdbInfo;
|
|
191
149
|
}
|
|
192
|
-
|
|
193
150
|
return false;
|
|
194
151
|
};
|
|
195
|
-
|
|
196
152
|
_proto.toString = function toString() {
|
|
197
153
|
return this._tzdbInfo.name;
|
|
198
154
|
};
|
|
199
|
-
|
|
200
155
|
return MomentZoneRules;
|
|
201
156
|
}(core.ZoneRules);
|
|
202
|
-
|
|
203
157
|
var LDTUntils = function () {
|
|
204
158
|
function LDTUntils(_tzdbUntils, tzdbOffsets) {
|
|
205
159
|
this._tzdbUntils = _tzdbUntils;
|
|
@@ -207,16 +161,12 @@
|
|
|
207
161
|
this._ldtUntils = [];
|
|
208
162
|
this.size = this._tzdbUntils.length * 2;
|
|
209
163
|
}
|
|
210
|
-
|
|
211
164
|
var _proto2 = LDTUntils.prototype;
|
|
212
|
-
|
|
213
165
|
_proto2._generateTupple = function _generateTupple(index) {
|
|
214
166
|
var epochMillis = this._tzdbUntils[index];
|
|
215
|
-
|
|
216
167
|
if (epochMillis === Infinity) {
|
|
217
168
|
return [core.LocalDateTime.MAX, core.LocalDateTime.MAX];
|
|
218
169
|
}
|
|
219
|
-
|
|
220
170
|
var instant = core.Instant.ofEpochMilli(epochMillis);
|
|
221
171
|
var offset1 = offsetInSeconds(this._tzdbOffsets[index]);
|
|
222
172
|
var zone1 = core.ZoneOffset.ofTotalSeconds(-offset1);
|
|
@@ -225,36 +175,28 @@
|
|
|
225
175
|
var offset2 = offsetInSeconds(this._tzdbOffsets[nextIndex]);
|
|
226
176
|
var zone2 = core.ZoneOffset.ofTotalSeconds(-offset2);
|
|
227
177
|
var ldt2 = core.LocalDateTime.ofInstant(instant, zone2);
|
|
228
|
-
|
|
229
178
|
if (offset1 > offset2) {
|
|
230
179
|
return [ldt1, ldt2];
|
|
231
180
|
} else {
|
|
232
181
|
return [ldt2, ldt1];
|
|
233
182
|
}
|
|
234
183
|
};
|
|
235
|
-
|
|
236
184
|
_proto2._getTupple = function _getTupple(index) {
|
|
237
185
|
if (this._ldtUntils[index] == null) {
|
|
238
186
|
this._ldtUntils[index] = this._generateTupple(index);
|
|
239
187
|
}
|
|
240
|
-
|
|
241
188
|
return this._ldtUntils[index];
|
|
242
189
|
};
|
|
243
|
-
|
|
244
190
|
_proto2.get = function get(index) {
|
|
245
191
|
var ldtTupple = this._getTupple(index >> 1);
|
|
246
|
-
|
|
247
192
|
return ldtTupple[index % 2];
|
|
248
193
|
};
|
|
249
|
-
|
|
250
194
|
return LDTUntils;
|
|
251
195
|
}();
|
|
252
|
-
|
|
253
196
|
function ldtBinarySearch(array, value) {
|
|
254
197
|
var hi = array.size - 1,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
198
|
+
lo = -1,
|
|
199
|
+
mid;
|
|
258
200
|
while (hi - lo > 1) {
|
|
259
201
|
if (!value.isBefore(array.get(mid = hi + lo >> 1))) {
|
|
260
202
|
lo = mid;
|
|
@@ -262,14 +204,11 @@
|
|
|
262
204
|
hi = mid;
|
|
263
205
|
}
|
|
264
206
|
}
|
|
265
|
-
|
|
266
207
|
return hi;
|
|
267
208
|
}
|
|
268
|
-
|
|
269
209
|
function offsetInSeconds(tzdbOffset) {
|
|
270
210
|
return roundDown(+tzdbOffset * 60);
|
|
271
211
|
}
|
|
272
|
-
|
|
273
212
|
function roundDown(r) {
|
|
274
213
|
if (r < 0) {
|
|
275
214
|
return Math.ceil(r);
|
|
@@ -277,12 +216,10 @@
|
|
|
277
216
|
return Math.floor(r);
|
|
278
217
|
}
|
|
279
218
|
}
|
|
280
|
-
|
|
281
219
|
function binarySearch(array, value) {
|
|
282
220
|
var hi = array.length - 1,
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
221
|
+
lo = -1,
|
|
222
|
+
mid;
|
|
286
223
|
while (hi - lo > 1) {
|
|
287
224
|
if (array[mid = hi + lo >> 1] <= value) {
|
|
288
225
|
lo = mid;
|
|
@@ -290,10 +227,8 @@
|
|
|
290
227
|
hi = mid;
|
|
291
228
|
}
|
|
292
229
|
}
|
|
293
|
-
|
|
294
230
|
return hi;
|
|
295
231
|
}
|
|
296
|
-
|
|
297
232
|
function notSupported(msg) {
|
|
298
233
|
throw new Error("not supported: " + msg);
|
|
299
234
|
}
|
|
@@ -304,69 +239,56 @@
|
|
|
304
239
|
} else if (charCode > 64) {
|
|
305
240
|
return charCode - 29;
|
|
306
241
|
}
|
|
307
|
-
|
|
308
242
|
return charCode - 48;
|
|
309
243
|
}
|
|
310
|
-
|
|
311
244
|
function unpackBase60(string) {
|
|
312
245
|
var i = 0,
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
246
|
+
parts = string.split('.'),
|
|
247
|
+
whole = parts[0],
|
|
248
|
+
fractional = parts[1] || '',
|
|
249
|
+
multiplier = 1,
|
|
250
|
+
num,
|
|
251
|
+
out = 0,
|
|
252
|
+
sign = 1;
|
|
321
253
|
if (string.charCodeAt(0) === 45) {
|
|
322
254
|
i = 1;
|
|
323
255
|
sign = -1;
|
|
324
256
|
}
|
|
325
|
-
|
|
326
257
|
for (i; i < whole.length; i++) {
|
|
327
258
|
num = charCodeToInt(whole.charCodeAt(i));
|
|
328
259
|
out = 60 * out + num;
|
|
329
260
|
}
|
|
330
|
-
|
|
331
261
|
for (i = 0; i < fractional.length; i++) {
|
|
332
262
|
multiplier = multiplier / 60;
|
|
333
263
|
num = charCodeToInt(fractional.charCodeAt(i));
|
|
334
264
|
out += num * multiplier;
|
|
335
265
|
}
|
|
336
|
-
|
|
337
266
|
return out * sign;
|
|
338
267
|
}
|
|
339
|
-
|
|
340
268
|
function arrayToInt(array) {
|
|
341
269
|
for (var i = 0; i < array.length; i++) {
|
|
342
270
|
array[i] = unpackBase60(array[i]);
|
|
343
271
|
}
|
|
344
272
|
}
|
|
345
|
-
|
|
346
273
|
function intToUntil(array, length) {
|
|
347
274
|
for (var i = 0; i < length; i++) {
|
|
348
275
|
array[i] = Math.round((array[i - 1] || 0) + array[i] * 60000);
|
|
349
276
|
}
|
|
350
|
-
|
|
351
277
|
array[length - 1] = Infinity;
|
|
352
278
|
}
|
|
353
|
-
|
|
354
279
|
function mapIndices(source, indices) {
|
|
355
280
|
var out = [],
|
|
356
|
-
|
|
357
|
-
|
|
281
|
+
i;
|
|
358
282
|
for (i = 0; i < indices.length; i++) {
|
|
359
283
|
out[i] = source[indices[i]];
|
|
360
284
|
}
|
|
361
|
-
|
|
362
285
|
return out;
|
|
363
286
|
}
|
|
364
|
-
|
|
365
287
|
function unpack(string) {
|
|
366
288
|
var data = string.split('|'),
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
289
|
+
offsets = data[2].split(' '),
|
|
290
|
+
indices = data[3].split(''),
|
|
291
|
+
untils = data[4].split(' ');
|
|
370
292
|
arrayToInt(offsets);
|
|
371
293
|
arrayToInt(indices);
|
|
372
294
|
arrayToInt(untils);
|
|
@@ -387,37 +309,28 @@
|
|
|
387
309
|
var links = {};
|
|
388
310
|
var MomentZoneRulesProvider = function (_ZoneRulesProvider) {
|
|
389
311
|
_inheritsLoose(MomentZoneRulesProvider, _ZoneRulesProvider);
|
|
390
|
-
|
|
391
312
|
function MomentZoneRulesProvider() {
|
|
392
313
|
return _ZoneRulesProvider.apply(this, arguments) || this;
|
|
393
314
|
}
|
|
394
|
-
|
|
395
315
|
MomentZoneRulesProvider.getRules = function getRules(zoneId) {
|
|
396
316
|
var tzdbZoneInfo = zones[links[zoneId]];
|
|
397
|
-
|
|
398
317
|
if (tzdbZoneInfo == null) {
|
|
399
318
|
throw new core.DateTimeException("Unknown time-zone ID: " + zoneId);
|
|
400
319
|
}
|
|
401
|
-
|
|
402
320
|
return new MomentZoneRules(tzdbZoneInfo);
|
|
403
321
|
};
|
|
404
|
-
|
|
405
322
|
MomentZoneRulesProvider.getAvailableZoneIds = function getAvailableZoneIds() {
|
|
406
323
|
return AVAILABLE_ZONE_IDS;
|
|
407
324
|
};
|
|
408
|
-
|
|
409
325
|
MomentZoneRulesProvider.getVersion = function getVersion() {
|
|
410
326
|
return TZDB_VERSION;
|
|
411
327
|
};
|
|
412
|
-
|
|
413
328
|
MomentZoneRulesProvider.getTzdbData = function getTzdbData() {
|
|
414
329
|
return TZDB_DATA;
|
|
415
330
|
};
|
|
416
|
-
|
|
417
331
|
MomentZoneRulesProvider.loadTzdbData = function loadTzdbData(packedJson) {
|
|
418
332
|
TZDB_DATA = packedJson;
|
|
419
333
|
TZDB_VERSION = packedJson.version;
|
|
420
|
-
|
|
421
334
|
for (var _iterator = _createForOfIteratorHelperLoose(packedJson.zones), _step; !(_step = _iterator()).done;) {
|
|
422
335
|
var packedZoneInfo = _step.value;
|
|
423
336
|
var tzdbZoneInfo = unpack(packedZoneInfo);
|
|
@@ -425,7 +338,6 @@
|
|
|
425
338
|
zones[tzdbZoneInfo.name] = tzdbZoneInfo;
|
|
426
339
|
links[tzdbZoneInfo.name] = tzdbZoneInfo.name;
|
|
427
340
|
}
|
|
428
|
-
|
|
429
341
|
for (var _iterator2 = _createForOfIteratorHelperLoose(packedJson.links), _step2; !(_step2 = _iterator2()).done;) {
|
|
430
342
|
var packedLink = _step2.value;
|
|
431
343
|
var link = packedLink.split('|');
|
|
@@ -433,7 +345,6 @@
|
|
|
433
345
|
links[link[1]] = link[0];
|
|
434
346
|
}
|
|
435
347
|
};
|
|
436
|
-
|
|
437
348
|
return MomentZoneRulesProvider;
|
|
438
349
|
}(core.ZoneRulesProvider);
|
|
439
350
|
|
|
@@ -442,17 +353,13 @@
|
|
|
442
353
|
var resolvedTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
443
354
|
return ZoneId.of(resolvedTimeZone);
|
|
444
355
|
} catch (err) {}
|
|
445
|
-
|
|
446
356
|
return null;
|
|
447
357
|
}
|
|
448
|
-
|
|
449
358
|
function extendSystemDefaultZoneId(ZoneId) {
|
|
450
359
|
var resolvedZoneId = getResolvedZoneId(ZoneId);
|
|
451
|
-
|
|
452
360
|
if (resolvedZoneId == null) {
|
|
453
361
|
return;
|
|
454
362
|
}
|
|
455
|
-
|
|
456
363
|
ZoneId.systemDefault = function () {
|
|
457
364
|
return resolvedZoneId;
|
|
458
365
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"js-joda-timezone-empty.js","sources":["../src/MomentZoneRules.js","../src/unpack.js","../src/MomentZoneRulesProvider.js","../src/system-default-zone.js","../src/plug.js","../src/auto-plug.js","../src/js-joda-timezone-empty.js"],"sourcesContent":["/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n LocalDateTime, Instant, ZoneOffset, ZoneOffsetTransition, ZoneRules\n} from '@js-joda/core';\n\nexport class MomentZoneRules extends ZoneRules{\n constructor(tzdbInfo){\n super();\n this._tzdbInfo = tzdbInfo;\n this._ldtUntils = new LDTUntils(this._tzdbInfo.untils, this._tzdbInfo.offsets);\n }\n /**\n * Checks of the zone rules are fixed, such that the offset never varies.\n *\n * @return {boolean} true if the time-zone is fixed and the offset never changes\n */\n isFixedOffset(){\n return this._tzdbInfo.offsets.length === 1;\n }\n\n //-----------------------------------------------------------------------\n\n /**\n * Gets the offset applicable at the specified instant in these rules.\n * <p>\n * The mapping from an instant to an offset is simple, there is only\n * one valid offset for each instant.\n * This method returns that offset.\n *\n * @param {Instant} instant - the instant to find the offset for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the offset, not null\n */\n offsetOfInstant(instant){\n const epochMilli = instant.toEpochMilli();\n return this.offsetOfEpochMilli(epochMilli);\n }\n\n /**\n * Gets the offset applicable at the specified epochMilli in these rules.\n *\n * The method is for javascript performance optimisation.\n *\n * @param {number} epochMilli - the epoch millisecond to find the offset for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the offset, not null\n */\n offsetOfEpochMilli(epochMilli){\n const index = binarySearch(this._tzdbInfo.untils, epochMilli);\n return ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(index));\n }\n\n\n /**\n * Gets a suitable offset for the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * Thus, for any given local date-time there can be zero, one or two valid offsets.\n * This method returns the single offset in the Normal case, and in the Gap or Overlap\n * case it returns the offset before the transition.\n * <p>\n * Since, in the case of Gap and Overlap, the offset returned is a \"best\" value, rather\n * than the \"correct\" value, it should be treated with care. Applications that care\n * about the correct offset should use a combination of this method,\n * {@link #getValidOffsets(LocalDateTime)} and {@link #getTransition(LocalDateTime)}.\n *\n * @param {LocalDateTime} localDateTime - the local date-time to query, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the best available offset for the local date-time, not null\n */\n offsetOfLocalDateTime(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info.offsetBefore();\n }\n return info;\n }\n\n _offsetInfo(localDateTime) {\n const index = ldtBinarySearch(this._ldtUntils, localDateTime);\n const offsetIndex = index >> 1;\n\n if (index % 2 === 1){\n const ldtBefore = this._ldtUntils.get(Math.max(index-1, 0));\n const ldtAfter = this._ldtUntils.get(Math.min(index, this._ldtUntils.size-1));\n const offsetBefore = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));\n const offsetAfter = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(Math.min(offsetIndex+1, this._tzdbInfo.offsets.length-1)));\n // console.log(offsetBefore.toString(), offsetAfter.toString());\n if (offsetBefore.compareTo(offsetAfter) > 0) {\n // gap\n // console.log('gap', ldtBefore.toString(), localDateTime.toString(), ldtAfter.toString());\n return ZoneOffsetTransition.of(ldtBefore, offsetBefore, offsetAfter);\n } else {\n // overlap\n // console.log('overlap', ldtBefore.toString(), localDateTime.toString(), ldtAfter.toString());\n return ZoneOffsetTransition.of(ldtAfter, offsetBefore, offsetAfter);\n }\n }\n return ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));\n }\n\n _offsetByIndexInSeconds(index){\n return -offsetInSeconds(this._tzdbInfo.offsets[index]);\n }\n\n /**\n * Gets the offset applicable at the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * Thus, for any given local date-time there can be zero, one or two valid offsets.\n * This method returns that list of valid offsets, which is a list of size 0, 1 or 2.\n * In the case where there are two offsets, the earlier offset is returned at index 0\n * and the later offset at index 1.\n * <p>\n * There are various ways to handle the conversion from a {@code LocalDateTime}.\n * One technique, using this method, would be:\n * <pre>\n * List<ZoneOffset> validOffsets = rules.getOffset(localDT);\n * if (validOffsets.size() == 1) {\n * // Normal case: only one valid offset\n * zoneOffset = validOffsets.get(0);\n * } else {\n * // Gap or Overlap: determine what to do from transition (which will be non-null)\n * ZoneOffsetTransition trans = rules.getTransition(localDT);\n * }\n * </pre>\n * <p>\n * In theory, it is possible for there to be more than two valid offsets.\n * This would happen if clocks to be put back more than once in quick succession.\n * This has never happened in the history of time-zones and thus has no special handling.\n * However, if it were to happen, then the list would return more than 2 entries.\n *\n * @param {LocalDateTime} localDateTime - the local date-time to query for valid offsets, not null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition | ZoneOffset[]} the list of valid offsets, may be immutable, not null\n */\n validOffsets(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info.validOffsets();\n }\n return [info];\n }\n\n /**\n * Gets the offset transition applicable at the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * A transition is used to model the cases of a Gap or Overlap.\n * The Normal case will return null.\n * <p>\n * There are various ways to handle the conversion from a {@code LocalDateTime}.\n * One technique, using this method, would be:\n * <pre>\n * ZoneOffsetTransition trans = rules.getTransition(localDT);\n * if (trans != null) {\n * // Gap or Overlap: determine what to do from transition\n * } else {\n * // Normal case: only one valid offset\n * zoneOffset = rule.getOffset(localDT);\n * }\n * </pre>\n *\n * @param {LocalDateTime} localDateTime the local date-time to query for offset transition, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the offset transition, null if the local date-time is not in transition\n */\n // eslint-disable-next-line no-unused-vars\n transition(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info;\n }\n return null;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the standard offset for the specified instant in this zone.\n * <p>\n * This provides access to historic information on how the standard offset\n * has changed over time.\n * The standard offset is the offset before any daylight saving time is applied.\n * This is typically the offset applicable during winter.\n *\n * @param {Instant} instant - the instant to find the offset information for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the standard offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n standardOffset(instant){\n notSupported('ZoneRules.standardOffset');\n }\n\n /**\n * Gets the amount of daylight savings in use for the specified instant in this zone.\n * <p>\n * This provides access to historic information on how the amount of daylight\n * savings has changed over time.\n * This is the difference between the standard offset and the actual offset.\n * Typically the amount is zero during winter and one hour during summer.\n * Time-zones are second-based, so the nanosecond part of the duration will be zero.\n *\n * @param {Instant} instant - the instant to find the daylight savings for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {Duration} the difference between the standard and actual offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n daylightSavings(instant){\n notSupported('ZoneRules.daylightSavings');\n }\n\n /**\n * Checks if the specified instant is in daylight savings.\n * <p>\n * This checks if the standard and actual offsets are the same at the specified instant.\n *\n * @param {Instant} instant - the instant to find the offset information for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {boolean} the standard offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n isDaylightSavings(instant) {\n notSupported('ZoneRules.isDaylightSavings');\n }\n\n /**\n * Checks if the offset date-time is valid for these rules.\n * <p>\n * To be valid, the local date-time must not be in a gap and the offset\n * must match the valid offsets.\n *\n * @param {LocalDateTime} localDateTime - the date-time to check, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @param {ZoneOffset} offset - the offset to check, null returns false\n * @return {boolean} true if the offset date-time is valid for these rules\n */\n isValidOffset(localDateTime, offset){\n return this.validOffsets(localDateTime).some( o => o.equals(offset));\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the next transition after the specified instant.\n * <p>\n * This returns details of the next transition after the specified instant.\n * For example, if the instant represents a point where \"Summer\" daylight savings time\n * applies, then the method will return the transition to the next \"Winter\" time.\n *\n * @param {Instant} instant - the instant to get the next transition after, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the next transition after the specified instant, null if this is after the last transition\n */\n // eslint-disable-next-line no-unused-vars\n nextTransition(instant){\n notSupported('ZoneRules.nextTransition');\n }\n\n /**\n * Gets the previous transition before the specified instant.\n * <p>\n * This returns details of the previous transition after the specified instant.\n * For example, if the instant represents a point where \"summer\" daylight saving time\n * applies, then the method will return the transition from the previous \"winter\" time.\n *\n * @param {Instant} instant - the instant to get the previous transition after, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the previous transition after the specified instant, null if this is before the first transition\n */\n // eslint-disable-next-line no-unused-vars\n previousTransition(instant){\n notSupported('ZoneRules.previousTransition');\n }\n\n /**\n * Gets the complete list of fully defined transitions.\n * <p>\n * The complete set of transitions for this rules instance is defined by this method\n * and {@link #getTransitionRules()}. This method returns those transitions that have\n * been fully defined. These are typically historical, but may be in the future.\n * <p>\n * The list will be empty for fixed offset rules and for any time-zone where there has\n * only ever been a single offset. The list will also be empty if the transition rules are unknown.\n *\n * @return {ZoneOffsetTransition[]} an immutable list of fully defined transitions, not null\n */\n transitions(){\n notSupported('ZoneRules.transitions');\n }\n\n /**\n * Gets the list of transition rules for years beyond those defined in the transition list.\n * <p>\n * The complete set of transitions for this rules instance is defined by this method\n * and {@link #getTransitions()}. This method returns instances of {@link ZoneOffsetTransitionRule}\n * that define an algorithm for when transitions will occur.\n * <p>\n * For any given {@code ZoneRules}, this list contains the transition rules for years\n * beyond those years that have been fully defined. These rules typically refer to future\n * daylight saving time rule changes.\n * <p>\n * If the zone defines daylight savings into the future, then the list will normally\n * be of size two and hold information about entering and exiting daylight savings.\n * If the zone does not have daylight savings, or information about future changes\n * is uncertain, then the list will be empty.\n * <p>\n * The list will be empty for fixed offset rules and for any time-zone where there is no\n * daylight saving time. The list will also be empty if the transition rules are unknown.\n *\n * @return {ZoneOffsetTransitionRule[]} an immutable list of transition rules, not null\n */\n transitionRules(){\n notSupported('ZoneRules.transitionRules');\n }\n\n /**\n *\n * @param other\n * @returns {boolean}\n */\n equals(other) {\n if (this === other) {\n return true;\n }\n if (other instanceof MomentZoneRules) {\n return this._tzdbInfo === other._tzdbInfo;\n }\n return false;\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this._tzdbInfo.name;\n }\n}\n\nclass LDTUntils {\n constructor(_tzdbUntils, tzdbOffsets) {\n this._tzdbUntils = _tzdbUntils;\n this._tzdbOffsets = tzdbOffsets;\n this._ldtUntils = [];\n this.size = this._tzdbUntils.length * 2;\n }\n\n\n _generateTupple(index) {\n const epochMillis = this._tzdbUntils[index];\n if (epochMillis === Infinity) {\n return [LocalDateTime.MAX, LocalDateTime.MAX];\n }\n const instant = Instant.ofEpochMilli(epochMillis);\n\n const offset1 = offsetInSeconds(this._tzdbOffsets[index]);\n const zone1 = ZoneOffset.ofTotalSeconds(-offset1);\n const ldt1 = LocalDateTime.ofInstant(instant, zone1);\n\n const nextIndex = Math.min(index + 1, this._tzdbOffsets.length - 1);\n const offset2 = offsetInSeconds(this._tzdbOffsets[nextIndex]);\n const zone2 = ZoneOffset.ofTotalSeconds(-offset2);\n const ldt2 = LocalDateTime.ofInstant(instant, zone2);\n\n if(offset1 > offset2) {\n return [ldt1, ldt2];\n } else {\n return [ldt2, ldt1];\n }\n }\n\n _getTupple(index){\n if (this._ldtUntils[index] == null) {\n this._ldtUntils[index] = this._generateTupple(index);\n }\n return this._ldtUntils[index];\n }\n\n get(index) {\n const ldtTupple = this._getTupple(index >> 1);\n return ldtTupple[index % 2];\n }\n}\n\n// modified bin-search, to always find existing indices for non-empty arrays\n// value in array at index is larger than input value (or last index of array)\nfunction ldtBinarySearch(array, value) {\n let hi = array.size - 1, lo = -1, mid;\n while (hi - lo > 1) {\n if (!value.isBefore(array.get(mid = hi + lo >> 1))) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nfunction offsetInSeconds(tzdbOffset){\n return roundDown(+tzdbOffset*60);\n}\n\nfunction roundDown(r){\n if (r < 0) {\n return Math.ceil(r);\n } else {\n return Math.floor(r);\n }\n}\n\n// modified bin-search, to always find existing indices for non-empty arrays\n// value in array at index is larger than input value (or last index of array)\nfunction binarySearch(array, value) {\n let hi = array.length - 1, lo = -1, mid;\n while (hi - lo > 1) {\n if (array[mid = hi + lo >> 1] <= value) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nfunction notSupported(msg){\n throw new Error(`not supported: ${msg}`);\n}\n","/* eslint-disable no-var */\n\n//! moment-timezone.js\n//! version : 0.5.2\n//! author : Tim Wood\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n/************************************\n Unpacking\n ************************************/\n\n/**\n * @private\n *\n * @param charCode\n * @returns {number}\n */\nfunction charCodeToInt(charCode) {\n if (charCode > 96) {\n return charCode - 87;\n } else if (charCode > 64) {\n return charCode - 29;\n }\n return charCode - 48;\n}\n\nfunction unpackBase60(string) {\n var i = 0,\n parts = string.split('.'),\n whole = parts[0],\n fractional = parts[1] || '',\n multiplier = 1,\n num,\n out = 0,\n sign = 1;\n\n // handle negative numbers\n if (string.charCodeAt(0) === 45) {\n i = 1;\n sign = -1;\n }\n\n // handle digits before the decimal\n for (i; i < whole.length; i++) {\n num = charCodeToInt(whole.charCodeAt(i));\n out = 60 * out + num;\n }\n\n // handle digits after the decimal\n for (i = 0; i < fractional.length; i++) {\n multiplier = multiplier / 60;\n num = charCodeToInt(fractional.charCodeAt(i));\n out += num * multiplier;\n }\n\n return out * sign;\n}\n\nfunction arrayToInt (array) {\n for (var i = 0; i < array.length; i++) {\n array[i] = unpackBase60(array[i]);\n }\n}\n\nfunction intToUntil (array, length) {\n for (var i = 0; i < length; i++) {\n array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n }\n\n array[length - 1] = Infinity;\n}\n\nfunction mapIndices (source, indices) {\n var out = [], i;\n\n for (i = 0; i < indices.length; i++) {\n out[i] = source[indices[i]];\n }\n\n return out;\n}\n\n/**\n * @private\n *\n * @param string\n * @returns {{offsets: *[], abbrs: *[], name, untils: *, population: number}}\n */\nexport function unpack (string) {\n var data = string.split('|'),\n offsets = data[2].split(' '),\n indices = data[3].split(''),\n untils = data[4].split(' ');\n\n arrayToInt(offsets);\n arrayToInt(indices);\n arrayToInt(untils);\n\n intToUntil(untils, indices.length);\n\n return {\n name : data[0],\n abbrs : mapIndices(data[1].split(' '), indices),\n offsets : mapIndices(offsets, indices),\n untils : untils,\n population : data[5] | 0\n };\n}\n\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n DateTimeException,\n ZoneRulesProvider,\n} from '@js-joda/core';\n\nimport { MomentZoneRules } from './MomentZoneRules';\n\nimport { unpack } from './unpack';\n\nlet TZDB_DATA;\nlet TZDB_VERSION;\nconst AVAILABLE_ZONE_IDS = [];\n\nconst zones = {};\nconst links = {};\n\nexport class MomentZoneRulesProvider extends ZoneRulesProvider {\n /**\n * Gets the rules for the zone ID.\n * <p>\n * This returns the latest available rules for the zone ID.\n * <p>\n * This method relies on time-zone data provider files that are configured.\n *\n * @param {string} zoneId\n * @return {ZoneRules}\n */\n static getRules(zoneId){\n const tzdbZoneInfo = zones[links[zoneId]];\n if(tzdbZoneInfo == null){\n throw new DateTimeException(`Unknown time-zone ID: ${zoneId}`);\n }\n return new MomentZoneRules(tzdbZoneInfo);\n }\n\n\n /**\n * Gets the set of available zone IDs.\n * <p>\n * These zone IDs are loaded and available for use by {@code ZoneId}.\n *\n * @return {string[]} a modifiable copy of the set of zone IDs, not null\n */\n static getAvailableZoneIds(){\n return AVAILABLE_ZONE_IDS;\n }\n\n /**\n *\n * @return {string} the tzdb version.\n */\n static getVersion() {\n return TZDB_VERSION;\n }\n\n /**\n * Provides the packed tzdb data,\n * the data has the same format as provided from moment-timezone.\n *\n * @return {object} the packed tzdb data.\n */\n static getTzdbData(){\n return TZDB_DATA;\n }\n\n /**\n * Sets the packed tzdb data.\n * Accepts tzdb data in the same format as provided from moment-timezone.\n *\n * @param packedJson\n */\n static loadTzdbData(packedJson){\n TZDB_DATA = packedJson;\n TZDB_VERSION = packedJson.version;\n\n for (const packedZoneInfo of packedJson.zones) {\n const tzdbZoneInfo = unpack(packedZoneInfo);\n AVAILABLE_ZONE_IDS.push(tzdbZoneInfo.name);\n zones[tzdbZoneInfo.name] = tzdbZoneInfo;\n links[tzdbZoneInfo.name] = tzdbZoneInfo.name;\n }\n\n for (const packedLink of packedJson.links) {\n const link = packedLink.split('|');\n AVAILABLE_ZONE_IDS.push(link[1]);\n links[link[1]] = link[0];\n }\n }\n}\n","/**\n * @private\n *\n * @param ZoneId\n * @returns {null|*}\n */\nfunction getResolvedZoneId(ZoneId) {\n try {\n const resolvedTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return ZoneId.of(resolvedTimeZone);\n } catch (err) {\n // ignore\n }\n return null;\n}\n\n/**\n * @private\n *\n * @param ZoneId\n */\nexport default function extendSystemDefaultZoneId(ZoneId) {\n const resolvedZoneId = getResolvedZoneId(ZoneId);\n\n if (resolvedZoneId == null) {\n return;\n }\n\n ZoneId.systemDefault = function () {\n return resolvedZoneId;\n };\n}\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { MomentZoneRulesProvider } from './MomentZoneRulesProvider';\nimport extendSystemDefaultZoneId from './system-default-zone';\n\n/**\n * @private\n */\nexport default function (jsJoda) {\n jsJoda.ZoneRulesProvider.getRules = MomentZoneRulesProvider.getRules;\n jsJoda.ZoneRulesProvider.getAvailableZoneIds = MomentZoneRulesProvider.getAvailableZoneIds;\n jsJoda.ZoneRulesProvider.getTzdbData = MomentZoneRulesProvider.getTzdbData;\n jsJoda.ZoneRulesProvider.loadTzdbData = MomentZoneRulesProvider.loadTzdbData;\n\n extendSystemDefaultZoneId(jsJoda.ZoneId);\n return jsJoda;\n}\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { use } from '@js-joda/core';\n\nimport plug from './plug';\n\n/**\n * @private\n */\nexport default function autoPlug() {\n use(plug);\n}\n\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport autoPlug from './auto-plug';\n\nautoPlug();"],"names":["MomentZoneRules","tzdbInfo","_tzdbInfo","_ldtUntils","LDTUntils","untils","offsets","isFixedOffset","length","offsetOfInstant","instant","epochMilli","toEpochMilli","offsetOfEpochMilli","index","binarySearch","ZoneOffset","ofTotalSeconds","_offsetByIndexInSeconds","offsetOfLocalDateTime","localDateTime","info","_offsetInfo","ZoneOffsetTransition","offsetBefore","ldtBinarySearch","offsetIndex","ldtBefore","get","Math","max","ldtAfter","min","size","offsetAfter","compareTo","of","offsetInSeconds","validOffsets","transition","standardOffset","notSupported","daylightSavings","isDaylightSavings","isValidOffset","offset","some","o","equals","nextTransition","previousTransition","transitions","transitionRules","other","toString","name","ZoneRules","_tzdbUntils","tzdbOffsets","_tzdbOffsets","_generateTupple","epochMillis","Infinity","LocalDateTime","MAX","Instant","ofEpochMilli","offset1","zone1","ldt1","ofInstant","nextIndex","offset2","zone2","ldt2","_getTupple","ldtTupple","array","value","hi","lo","mid","isBefore","tzdbOffset","roundDown","r","ceil","floor","msg","Error","charCodeToInt","charCode","unpackBase60","string","i","parts","split","whole","fractional","multiplier","num","out","sign","charCodeAt","arrayToInt","intToUntil","round","mapIndices","source","indices","unpack","data","abbrs","population","TZDB_DATA","TZDB_VERSION","AVAILABLE_ZONE_IDS","zones","links","MomentZoneRulesProvider","getRules","zoneId","tzdbZoneInfo","DateTimeException","getAvailableZoneIds","getVersion","getTzdbData","loadTzdbData","packedJson","version","packedZoneInfo","push","packedLink","link","ZoneRulesProvider","getResolvedZoneId","ZoneId","resolvedTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","err","extendSystemDefaultZoneId","resolvedZoneId","systemDefault","jsJoda","autoPlug","use","plug"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"js-joda-timezone-empty.js","sources":["../src/MomentZoneRules.js","../src/unpack.js","../src/MomentZoneRulesProvider.js","../src/system-default-zone.js","../src/plug.js","../src/auto-plug.js","../src/js-joda-timezone-empty.js"],"sourcesContent":["/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n LocalDateTime, Instant, ZoneOffset, ZoneOffsetTransition, ZoneRules\n} from '@js-joda/core';\n\nexport class MomentZoneRules extends ZoneRules{\n constructor(tzdbInfo){\n super();\n this._tzdbInfo = tzdbInfo;\n this._ldtUntils = new LDTUntils(this._tzdbInfo.untils, this._tzdbInfo.offsets);\n }\n /**\n * Checks of the zone rules are fixed, such that the offset never varies.\n *\n * @return {boolean} true if the time-zone is fixed and the offset never changes\n */\n isFixedOffset(){\n return this._tzdbInfo.offsets.length === 1;\n }\n\n //-----------------------------------------------------------------------\n\n /**\n * Gets the offset applicable at the specified instant in these rules.\n * <p>\n * The mapping from an instant to an offset is simple, there is only\n * one valid offset for each instant.\n * This method returns that offset.\n *\n * @param {Instant} instant - the instant to find the offset for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the offset, not null\n */\n offsetOfInstant(instant){\n const epochMilli = instant.toEpochMilli();\n return this.offsetOfEpochMilli(epochMilli);\n }\n\n /**\n * Gets the offset applicable at the specified epochMilli in these rules.\n *\n * The method is for javascript performance optimisation.\n *\n * @param {number} epochMilli - the epoch millisecond to find the offset for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the offset, not null\n */\n offsetOfEpochMilli(epochMilli){\n const index = binarySearch(this._tzdbInfo.untils, epochMilli);\n return ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(index));\n }\n\n\n /**\n * Gets a suitable offset for the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * Thus, for any given local date-time there can be zero, one or two valid offsets.\n * This method returns the single offset in the Normal case, and in the Gap or Overlap\n * case it returns the offset before the transition.\n * <p>\n * Since, in the case of Gap and Overlap, the offset returned is a \"best\" value, rather\n * than the \"correct\" value, it should be treated with care. Applications that care\n * about the correct offset should use a combination of this method,\n * {@link #getValidOffsets(LocalDateTime)} and {@link #getTransition(LocalDateTime)}.\n *\n * @param {LocalDateTime} localDateTime - the local date-time to query, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the best available offset for the local date-time, not null\n */\n offsetOfLocalDateTime(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info.offsetBefore();\n }\n return info;\n }\n\n _offsetInfo(localDateTime) {\n const index = ldtBinarySearch(this._ldtUntils, localDateTime);\n const offsetIndex = index >> 1;\n\n if (index % 2 === 1){\n const ldtBefore = this._ldtUntils.get(Math.max(index-1, 0));\n const ldtAfter = this._ldtUntils.get(Math.min(index, this._ldtUntils.size-1));\n const offsetBefore = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));\n const offsetAfter = ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(Math.min(offsetIndex+1, this._tzdbInfo.offsets.length-1)));\n // console.log(offsetBefore.toString(), offsetAfter.toString());\n if (offsetBefore.compareTo(offsetAfter) > 0) {\n // gap\n // console.log('gap', ldtBefore.toString(), localDateTime.toString(), ldtAfter.toString());\n return ZoneOffsetTransition.of(ldtBefore, offsetBefore, offsetAfter);\n } else {\n // overlap\n // console.log('overlap', ldtBefore.toString(), localDateTime.toString(), ldtAfter.toString());\n return ZoneOffsetTransition.of(ldtAfter, offsetBefore, offsetAfter);\n }\n }\n return ZoneOffset.ofTotalSeconds(this._offsetByIndexInSeconds(offsetIndex));\n }\n\n _offsetByIndexInSeconds(index){\n return -offsetInSeconds(this._tzdbInfo.offsets[index]);\n }\n\n /**\n * Gets the offset applicable at the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * Thus, for any given local date-time there can be zero, one or two valid offsets.\n * This method returns that list of valid offsets, which is a list of size 0, 1 or 2.\n * In the case where there are two offsets, the earlier offset is returned at index 0\n * and the later offset at index 1.\n * <p>\n * There are various ways to handle the conversion from a {@code LocalDateTime}.\n * One technique, using this method, would be:\n * <pre>\n * List<ZoneOffset> validOffsets = rules.getOffset(localDT);\n * if (validOffsets.size() == 1) {\n * // Normal case: only one valid offset\n * zoneOffset = validOffsets.get(0);\n * } else {\n * // Gap or Overlap: determine what to do from transition (which will be non-null)\n * ZoneOffsetTransition trans = rules.getTransition(localDT);\n * }\n * </pre>\n * <p>\n * In theory, it is possible for there to be more than two valid offsets.\n * This would happen if clocks to be put back more than once in quick succession.\n * This has never happened in the history of time-zones and thus has no special handling.\n * However, if it were to happen, then the list would return more than 2 entries.\n *\n * @param {LocalDateTime} localDateTime - the local date-time to query for valid offsets, not null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition | ZoneOffset[]} the list of valid offsets, may be immutable, not null\n */\n validOffsets(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info.validOffsets();\n }\n return [info];\n }\n\n /**\n * Gets the offset transition applicable at the specified local date-time in these rules.\n * <p>\n * The mapping from a local date-time to an offset is not straightforward.\n * There are three cases:\n * <p><ul>\n * <li>Normal, with one valid offset. For the vast majority of the year, the normal\n * case applies, where there is a single valid offset for the local date-time.</li>\n * <li>Gap, with zero valid offsets. This is when clocks jump forward typically\n * due to the spring daylight savings change from \"winter\" to \"summer\".\n * In a gap there are local date-time values with no valid offset.</li>\n * <li>Overlap, with two valid offsets. This is when clocks are set back typically\n * due to the autumn daylight savings change from \"summer\" to \"winter\".\n * In an overlap there are local date-time values with two valid offsets.</li>\n * </ul><p>\n * A transition is used to model the cases of a Gap or Overlap.\n * The Normal case will return null.\n * <p>\n * There are various ways to handle the conversion from a {@code LocalDateTime}.\n * One technique, using this method, would be:\n * <pre>\n * ZoneOffsetTransition trans = rules.getTransition(localDT);\n * if (trans != null) {\n * // Gap or Overlap: determine what to do from transition\n * } else {\n * // Normal case: only one valid offset\n * zoneOffset = rule.getOffset(localDT);\n * }\n * </pre>\n *\n * @param {LocalDateTime} localDateTime the local date-time to query for offset transition, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the offset transition, null if the local date-time is not in transition\n */\n // eslint-disable-next-line no-unused-vars\n transition(localDateTime){\n const info = this._offsetInfo(localDateTime);\n if (info instanceof ZoneOffsetTransition) {\n return info;\n }\n return null;\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the standard offset for the specified instant in this zone.\n * <p>\n * This provides access to historic information on how the standard offset\n * has changed over time.\n * The standard offset is the offset before any daylight saving time is applied.\n * This is typically the offset applicable during winter.\n *\n * @param {Instant} instant - the instant to find the offset information for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffset} the standard offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n standardOffset(instant){\n notSupported('ZoneRules.standardOffset');\n }\n\n /**\n * Gets the amount of daylight savings in use for the specified instant in this zone.\n * <p>\n * This provides access to historic information on how the amount of daylight\n * savings has changed over time.\n * This is the difference between the standard offset and the actual offset.\n * Typically the amount is zero during winter and one hour during summer.\n * Time-zones are second-based, so the nanosecond part of the duration will be zero.\n *\n * @param {Instant} instant - the instant to find the daylight savings for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {Duration} the difference between the standard and actual offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n daylightSavings(instant){\n notSupported('ZoneRules.daylightSavings');\n }\n\n /**\n * Checks if the specified instant is in daylight savings.\n * <p>\n * This checks if the standard and actual offsets are the same at the specified instant.\n *\n * @param {Instant} instant - the instant to find the offset information for, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {boolean} the standard offset, not null\n */\n // eslint-disable-next-line no-unused-vars\n isDaylightSavings(instant) {\n notSupported('ZoneRules.isDaylightSavings');\n }\n\n /**\n * Checks if the offset date-time is valid for these rules.\n * <p>\n * To be valid, the local date-time must not be in a gap and the offset\n * must match the valid offsets.\n *\n * @param {LocalDateTime} localDateTime - the date-time to check, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @param {ZoneOffset} offset - the offset to check, null returns false\n * @return {boolean} true if the offset date-time is valid for these rules\n */\n isValidOffset(localDateTime, offset){\n return this.validOffsets(localDateTime).some( o => o.equals(offset));\n }\n\n //-----------------------------------------------------------------------\n /**\n * Gets the next transition after the specified instant.\n * <p>\n * This returns details of the next transition after the specified instant.\n * For example, if the instant represents a point where \"Summer\" daylight savings time\n * applies, then the method will return the transition to the next \"Winter\" time.\n *\n * @param {Instant} instant - the instant to get the next transition after, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the next transition after the specified instant, null if this is after the last transition\n */\n // eslint-disable-next-line no-unused-vars\n nextTransition(instant){\n notSupported('ZoneRules.nextTransition');\n }\n\n /**\n * Gets the previous transition before the specified instant.\n * <p>\n * This returns details of the previous transition after the specified instant.\n * For example, if the instant represents a point where \"summer\" daylight saving time\n * applies, then the method will return the transition from the previous \"winter\" time.\n *\n * @param {Instant} instant - the instant to get the previous transition after, not null, but null\n * may be ignored if the rules have a single offset for all instants\n * @return {ZoneOffsetTransition} the previous transition after the specified instant, null if this is before the first transition\n */\n // eslint-disable-next-line no-unused-vars\n previousTransition(instant){\n notSupported('ZoneRules.previousTransition');\n }\n\n /**\n * Gets the complete list of fully defined transitions.\n * <p>\n * The complete set of transitions for this rules instance is defined by this method\n * and {@link #getTransitionRules()}. This method returns those transitions that have\n * been fully defined. These are typically historical, but may be in the future.\n * <p>\n * The list will be empty for fixed offset rules and for any time-zone where there has\n * only ever been a single offset. The list will also be empty if the transition rules are unknown.\n *\n * @return {ZoneOffsetTransition[]} an immutable list of fully defined transitions, not null\n */\n transitions(){\n notSupported('ZoneRules.transitions');\n }\n\n /**\n * Gets the list of transition rules for years beyond those defined in the transition list.\n * <p>\n * The complete set of transitions for this rules instance is defined by this method\n * and {@link #getTransitions()}. This method returns instances of {@link ZoneOffsetTransitionRule}\n * that define an algorithm for when transitions will occur.\n * <p>\n * For any given {@code ZoneRules}, this list contains the transition rules for years\n * beyond those years that have been fully defined. These rules typically refer to future\n * daylight saving time rule changes.\n * <p>\n * If the zone defines daylight savings into the future, then the list will normally\n * be of size two and hold information about entering and exiting daylight savings.\n * If the zone does not have daylight savings, or information about future changes\n * is uncertain, then the list will be empty.\n * <p>\n * The list will be empty for fixed offset rules and for any time-zone where there is no\n * daylight saving time. The list will also be empty if the transition rules are unknown.\n *\n * @return {ZoneOffsetTransitionRule[]} an immutable list of transition rules, not null\n */\n transitionRules(){\n notSupported('ZoneRules.transitionRules');\n }\n\n /**\n *\n * @param other\n * @returns {boolean}\n */\n equals(other) {\n if (this === other) {\n return true;\n }\n if (other instanceof MomentZoneRules) {\n return this._tzdbInfo === other._tzdbInfo;\n }\n return false;\n }\n\n /**\n *\n * @returns {string}\n */\n toString() {\n return this._tzdbInfo.name;\n }\n}\n\nclass LDTUntils {\n constructor(_tzdbUntils, tzdbOffsets) {\n this._tzdbUntils = _tzdbUntils;\n this._tzdbOffsets = tzdbOffsets;\n this._ldtUntils = [];\n this.size = this._tzdbUntils.length * 2;\n }\n\n\n _generateTupple(index) {\n const epochMillis = this._tzdbUntils[index];\n if (epochMillis === Infinity) {\n return [LocalDateTime.MAX, LocalDateTime.MAX];\n }\n const instant = Instant.ofEpochMilli(epochMillis);\n\n const offset1 = offsetInSeconds(this._tzdbOffsets[index]);\n const zone1 = ZoneOffset.ofTotalSeconds(-offset1);\n const ldt1 = LocalDateTime.ofInstant(instant, zone1);\n\n const nextIndex = Math.min(index + 1, this._tzdbOffsets.length - 1);\n const offset2 = offsetInSeconds(this._tzdbOffsets[nextIndex]);\n const zone2 = ZoneOffset.ofTotalSeconds(-offset2);\n const ldt2 = LocalDateTime.ofInstant(instant, zone2);\n\n if(offset1 > offset2) {\n return [ldt1, ldt2];\n } else {\n return [ldt2, ldt1];\n }\n }\n\n _getTupple(index){\n if (this._ldtUntils[index] == null) {\n this._ldtUntils[index] = this._generateTupple(index);\n }\n return this._ldtUntils[index];\n }\n\n get(index) {\n const ldtTupple = this._getTupple(index >> 1);\n return ldtTupple[index % 2];\n }\n}\n\n// modified bin-search, to always find existing indices for non-empty arrays\n// value in array at index is larger than input value (or last index of array)\nfunction ldtBinarySearch(array, value) {\n let hi = array.size - 1, lo = -1, mid;\n while (hi - lo > 1) {\n if (!value.isBefore(array.get(mid = hi + lo >> 1))) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nfunction offsetInSeconds(tzdbOffset){\n return roundDown(+tzdbOffset*60);\n}\n\nfunction roundDown(r){\n if (r < 0) {\n return Math.ceil(r);\n } else {\n return Math.floor(r);\n }\n}\n\n// modified bin-search, to always find existing indices for non-empty arrays\n// value in array at index is larger than input value (or last index of array)\nfunction binarySearch(array, value) {\n let hi = array.length - 1, lo = -1, mid;\n while (hi - lo > 1) {\n if (array[mid = hi + lo >> 1] <= value) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return hi;\n}\n\nfunction notSupported(msg){\n throw new Error(`not supported: ${msg}`);\n}\n","/* eslint-disable no-var */\n\n//! moment-timezone.js\n//! version : 0.5.2\n//! author : Tim Wood\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n/************************************\n Unpacking\n ************************************/\n\n/**\n * @private\n *\n * @param charCode\n * @returns {number}\n */\nfunction charCodeToInt(charCode) {\n if (charCode > 96) {\n return charCode - 87;\n } else if (charCode > 64) {\n return charCode - 29;\n }\n return charCode - 48;\n}\n\nfunction unpackBase60(string) {\n var i = 0,\n parts = string.split('.'),\n whole = parts[0],\n fractional = parts[1] || '',\n multiplier = 1,\n num,\n out = 0,\n sign = 1;\n\n // handle negative numbers\n if (string.charCodeAt(0) === 45) {\n i = 1;\n sign = -1;\n }\n\n // handle digits before the decimal\n for (i; i < whole.length; i++) {\n num = charCodeToInt(whole.charCodeAt(i));\n out = 60 * out + num;\n }\n\n // handle digits after the decimal\n for (i = 0; i < fractional.length; i++) {\n multiplier = multiplier / 60;\n num = charCodeToInt(fractional.charCodeAt(i));\n out += num * multiplier;\n }\n\n return out * sign;\n}\n\nfunction arrayToInt (array) {\n for (var i = 0; i < array.length; i++) {\n array[i] = unpackBase60(array[i]);\n }\n}\n\nfunction intToUntil (array, length) {\n for (var i = 0; i < length; i++) {\n array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n }\n\n array[length - 1] = Infinity;\n}\n\nfunction mapIndices (source, indices) {\n var out = [], i;\n\n for (i = 0; i < indices.length; i++) {\n out[i] = source[indices[i]];\n }\n\n return out;\n}\n\n/**\n * @private\n *\n * @param string\n * @returns {{offsets: *[], abbrs: *[], name, untils: *, population: number}}\n */\nexport function unpack (string) {\n var data = string.split('|'),\n offsets = data[2].split(' '),\n indices = data[3].split(''),\n untils = data[4].split(' ');\n\n arrayToInt(offsets);\n arrayToInt(indices);\n arrayToInt(untils);\n\n intToUntil(untils, indices.length);\n\n return {\n name : data[0],\n abbrs : mapIndices(data[1].split(' '), indices),\n offsets : mapIndices(offsets, indices),\n untils : untils,\n population : data[5] | 0\n };\n}\n\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport {\n DateTimeException,\n ZoneRulesProvider,\n} from '@js-joda/core';\n\nimport { MomentZoneRules } from './MomentZoneRules';\n\nimport { unpack } from './unpack';\n\nlet TZDB_DATA;\nlet TZDB_VERSION;\nconst AVAILABLE_ZONE_IDS = [];\n\nconst zones = {};\nconst links = {};\n\nexport class MomentZoneRulesProvider extends ZoneRulesProvider {\n /**\n * Gets the rules for the zone ID.\n * <p>\n * This returns the latest available rules for the zone ID.\n * <p>\n * This method relies on time-zone data provider files that are configured.\n *\n * @param {string} zoneId\n * @return {ZoneRules}\n */\n static getRules(zoneId){\n const tzdbZoneInfo = zones[links[zoneId]];\n if(tzdbZoneInfo == null){\n throw new DateTimeException(`Unknown time-zone ID: ${zoneId}`);\n }\n return new MomentZoneRules(tzdbZoneInfo);\n }\n\n\n /**\n * Gets the set of available zone IDs.\n * <p>\n * These zone IDs are loaded and available for use by {@code ZoneId}.\n *\n * @return {string[]} a modifiable copy of the set of zone IDs, not null\n */\n static getAvailableZoneIds(){\n return AVAILABLE_ZONE_IDS;\n }\n\n /**\n *\n * @return {string} the tzdb version.\n */\n static getVersion() {\n return TZDB_VERSION;\n }\n\n /**\n * Provides the packed tzdb data,\n * the data has the same format as provided from moment-timezone.\n *\n * @return {object} the packed tzdb data.\n */\n static getTzdbData(){\n return TZDB_DATA;\n }\n\n /**\n * Sets the packed tzdb data.\n * Accepts tzdb data in the same format as provided from moment-timezone.\n *\n * @param packedJson\n */\n static loadTzdbData(packedJson){\n TZDB_DATA = packedJson;\n TZDB_VERSION = packedJson.version;\n\n for (const packedZoneInfo of packedJson.zones) {\n const tzdbZoneInfo = unpack(packedZoneInfo);\n AVAILABLE_ZONE_IDS.push(tzdbZoneInfo.name);\n zones[tzdbZoneInfo.name] = tzdbZoneInfo;\n links[tzdbZoneInfo.name] = tzdbZoneInfo.name;\n }\n\n for (const packedLink of packedJson.links) {\n const link = packedLink.split('|');\n AVAILABLE_ZONE_IDS.push(link[1]);\n links[link[1]] = link[0];\n }\n }\n}\n","/**\n * @private\n *\n * @param ZoneId\n * @returns {null|*}\n */\nfunction getResolvedZoneId(ZoneId) {\n try {\n const resolvedTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n return ZoneId.of(resolvedTimeZone);\n } catch (err) {\n // ignore\n }\n return null;\n}\n\n/**\n * @private\n *\n * @param ZoneId\n */\nexport default function extendSystemDefaultZoneId(ZoneId) {\n const resolvedZoneId = getResolvedZoneId(ZoneId);\n\n if (resolvedZoneId == null) {\n return;\n }\n\n ZoneId.systemDefault = function () {\n return resolvedZoneId;\n };\n}\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { MomentZoneRulesProvider } from './MomentZoneRulesProvider';\nimport extendSystemDefaultZoneId from './system-default-zone';\n\n/**\n * @private\n */\nexport default function (jsJoda) {\n jsJoda.ZoneRulesProvider.getRules = MomentZoneRulesProvider.getRules;\n jsJoda.ZoneRulesProvider.getAvailableZoneIds = MomentZoneRulesProvider.getAvailableZoneIds;\n jsJoda.ZoneRulesProvider.getTzdbData = MomentZoneRulesProvider.getTzdbData;\n jsJoda.ZoneRulesProvider.loadTzdbData = MomentZoneRulesProvider.loadTzdbData;\n\n extendSystemDefaultZoneId(jsJoda.ZoneId);\n return jsJoda;\n}\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport { use } from '@js-joda/core';\n\nimport plug from './plug';\n\n/**\n * @private\n */\nexport default function autoPlug() {\n use(plug);\n}\n\n","/*\n * @copyright (c) 2016-present, Philipp Thürwächter, Pattrick Hüper\n * @license BSD-3-Clause (see LICENSE in the root directory of this source tree)\n */\n\nimport autoPlug from './auto-plug';\n\nautoPlug();"],"names":["MomentZoneRules","tzdbInfo","_tzdbInfo","_ldtUntils","LDTUntils","untils","offsets","isFixedOffset","length","offsetOfInstant","instant","epochMilli","toEpochMilli","offsetOfEpochMilli","index","binarySearch","ZoneOffset","ofTotalSeconds","_offsetByIndexInSeconds","offsetOfLocalDateTime","localDateTime","info","_offsetInfo","ZoneOffsetTransition","offsetBefore","ldtBinarySearch","offsetIndex","ldtBefore","get","Math","max","ldtAfter","min","size","offsetAfter","compareTo","of","offsetInSeconds","validOffsets","transition","standardOffset","notSupported","daylightSavings","isDaylightSavings","isValidOffset","offset","some","o","equals","nextTransition","previousTransition","transitions","transitionRules","other","toString","name","ZoneRules","_tzdbUntils","tzdbOffsets","_tzdbOffsets","_generateTupple","epochMillis","Infinity","LocalDateTime","MAX","Instant","ofEpochMilli","offset1","zone1","ldt1","ofInstant","nextIndex","offset2","zone2","ldt2","_getTupple","ldtTupple","array","value","hi","lo","mid","isBefore","tzdbOffset","roundDown","r","ceil","floor","msg","Error","charCodeToInt","charCode","unpackBase60","string","i","parts","split","whole","fractional","multiplier","num","out","sign","charCodeAt","arrayToInt","intToUntil","round","mapIndices","source","indices","unpack","data","abbrs","population","TZDB_DATA","TZDB_VERSION","AVAILABLE_ZONE_IDS","zones","links","MomentZoneRulesProvider","getRules","zoneId","tzdbZoneInfo","DateTimeException","getAvailableZoneIds","getVersion","getTzdbData","loadTzdbData","packedJson","version","packedZoneInfo","push","packedLink","link","ZoneRulesProvider","getResolvedZoneId","ZoneId","resolvedTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","err","extendSystemDefaultZoneId","resolvedZoneId","systemDefault","jsJoda","autoPlug","use","plug"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,IAAaA,eAAe,GAAA,UAAA,UAAA,EAAA;EAAA,EAAA,cAAA,CAAA,eAAA,EAAA,UAAA,CAAA,CAAA;EACxB,EAAA,SAAA,eAAA,CAAYC,QAAQ,EAAC;EAAA,IAAA,IAAA,KAAA,CAAA;MACjB,KAAO,GAAA,UAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,IAAA,CAAA;MACP,KAAKC,CAAAA,SAAS,GAAGD,QAAQ,CAAA;EACzB,IAAA,KAAA,CAAKE,UAAU,GAAG,IAAIC,SAAS,CAAC,KAAKF,CAAAA,SAAS,CAACG,MAAM,EAAE,KAAA,CAAKH,SAAS,CAACI,OAAO,CAAC,CAAA;EAAC,IAAA,OAAA,KAAA,CAAA;EACnF,GAAA;EAAC,EAAA,IAAA,MAAA,GAAA,eAAA,CAAA,SAAA,CAAA;IAAA,MAMDC,CAAAA,aAAa,GAAb,SAAe,aAAA,GAAA;MACX,OAAO,IAAI,CAACL,SAAS,CAACI,OAAO,CAACE,MAAM,KAAK,CAAC,CAAA;KAC7C,CAAA;EAAA,EAAA,MAAA,CAeDC,eAAe,GAAf,SAAgBC,eAAAA,CAAAA,OAAO,EAAC;EACpB,IAAA,IAAMC,UAAU,GAAGD,OAAO,CAACE,YAAY,EAAE,CAAA;EACzC,IAAA,OAAO,IAAI,CAACC,kBAAkB,CAACF,UAAU,CAAC,CAAA;KAC7C,CAAA;EAAA,EAAA,MAAA,CAWDE,kBAAkB,GAAlB,SAAmBF,kBAAAA,CAAAA,UAAU,EAAC;MAC1B,IAAMG,KAAK,GAAIC,YAAY,CAAC,IAAI,CAACb,SAAS,CAACG,MAAM,EAAEM,UAAU,CAAC,CAAA;MAC9D,OAAOK,eAAU,CAACC,cAAc,CAAC,IAAI,CAACC,uBAAuB,CAACJ,KAAK,CAAC,CAAC,CAAA;KACxE,CAAA;EAAA,EAAA,MAAA,CA+BDK,qBAAqB,GAArB,SAAsBC,qBAAAA,CAAAA,aAAa,EAAC;EAChC,IAAA,IAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAACF,aAAa,CAAC,CAAA;MAC5C,IAAIC,IAAI,YAAYE,yBAAoB,EAAE;QACtC,OAAOF,IAAI,CAACG,YAAY,EAAE,CAAA;EAC9B,KAAA;EACA,IAAA,OAAOH,IAAI,CAAA;KACd,CAAA;EAAA,EAAA,MAAA,CAEDC,WAAW,GAAX,SAAYF,WAAAA,CAAAA,aAAa,EAAE;MACvB,IAAMN,KAAK,GAAIW,eAAe,CAAC,IAAI,CAACtB,UAAU,EAAEiB,aAAa,CAAC,CAAA;EAC9D,IAAA,IAAMM,WAAW,GAAGZ,KAAK,IAAI,CAAC,CAAA;EAE9B,IAAA,IAAIA,KAAK,GAAG,CAAC,KAAK,CAAC,EAAC;EAChB,MAAA,IAAMa,SAAS,GAAG,IAAI,CAACxB,UAAU,CAACyB,GAAG,CAACC,IAAI,CAACC,GAAG,CAAChB,KAAK,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC3D,IAAMiB,QAAQ,GAAG,IAAI,CAAC5B,UAAU,CAACyB,GAAG,CAACC,IAAI,CAACG,GAAG,CAAClB,KAAK,EAAE,IAAI,CAACX,UAAU,CAAC8B,IAAI,GAAC,CAAC,CAAC,CAAC,CAAA;EAC7E,MAAA,IAAMT,YAAY,GAAGR,eAAU,CAACC,cAAc,CAAC,IAAI,CAACC,uBAAuB,CAACQ,WAAW,CAAC,CAAC,CAAA;EACzF,MAAA,IAAMQ,WAAW,GAAGlB,eAAU,CAACC,cAAc,CAAC,IAAI,CAACC,uBAAuB,CAACW,IAAI,CAACG,GAAG,CAACN,WAAW,GAAC,CAAC,EAAE,IAAI,CAACxB,SAAS,CAACI,OAAO,CAACE,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAErI,IAAIgB,YAAY,CAACW,SAAS,CAACD,WAAW,CAAC,GAAG,CAAC,EAAE;UAGzC,OAAOX,yBAAoB,CAACa,EAAE,CAACT,SAAS,EAAEH,YAAY,EAAEU,WAAW,CAAC,CAAA;EACxE,OAAC,MAAM;UAGH,OAAOX,yBAAoB,CAACa,EAAE,CAACL,QAAQ,EAAEP,YAAY,EAAEU,WAAW,CAAC,CAAA;EACvE,OAAA;EACJ,KAAA;MACA,OAAOlB,eAAU,CAACC,cAAc,CAAC,IAAI,CAACC,uBAAuB,CAACQ,WAAW,CAAC,CAAC,CAAA;KAC9E,CAAA;EAAA,EAAA,MAAA,CAEDR,uBAAuB,GAAvB,SAAwBJ,uBAAAA,CAAAA,KAAK,EAAC;MAC1B,OAAO,CAACuB,eAAe,CAAC,IAAI,CAACnC,SAAS,CAACI,OAAO,CAACQ,KAAK,CAAC,CAAC,CAAA;KACzD,CAAA;EAAA,EAAA,MAAA,CA4CDwB,YAAY,GAAZ,SAAalB,YAAAA,CAAAA,aAAa,EAAC;EACvB,IAAA,IAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAACF,aAAa,CAAC,CAAA;MAC5C,IAAIC,IAAI,YAAYE,yBAAoB,EAAE;QACtC,OAAOF,IAAI,CAACiB,YAAY,EAAE,CAAA;EAC9B,KAAA;MACA,OAAO,CAACjB,IAAI,CAAC,CAAA;KAChB,CAAA;EAAA,EAAA,MAAA,CAqCDkB,UAAU,GAAV,SAAWnB,UAAAA,CAAAA,aAAa,EAAC;EACrB,IAAA,IAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAACF,aAAa,CAAC,CAAA;MAC5C,IAAIC,IAAI,YAAYE,yBAAoB,EAAE;EACtC,MAAA,OAAOF,IAAI,CAAA;EACf,KAAA;EACA,IAAA,OAAO,IAAI,CAAA;KACd,CAAA;EAAA,EAAA,MAAA,CAgBDmB,cAAc,GAAd,SAAe9B,cAAAA,CAAAA,OAAO,EAAC;MACnB+B,YAAY,CAAC,0BAA0B,CAAC,CAAA;KAC3C,CAAA;EAAA,EAAA,MAAA,CAgBDC,eAAe,GAAf,SAAgBhC,eAAAA,CAAAA,OAAO,EAAC;MACpB+B,YAAY,CAAC,2BAA2B,CAAC,CAAA;KAC5C,CAAA;EAAA,EAAA,MAAA,CAYDE,iBAAiB,GAAjB,SAAkBjC,iBAAAA,CAAAA,OAAO,EAAE;MACvB+B,YAAY,CAAC,6BAA6B,CAAC,CAAA;KAC9C,CAAA;EAAA,EAAA,MAAA,CAaDG,aAAa,GAAb,SAAA,aAAA,CAAcxB,aAAa,EAAEyB,MAAM,EAAC;MAChC,OAAO,IAAI,CAACP,YAAY,CAAClB,aAAa,CAAC,CAAC0B,IAAI,CAAE,UAAAC,CAAC,EAAA;EAAA,MAAA,OAAIA,CAAC,CAACC,MAAM,CAACH,MAAM,CAAC,CAAA;OAAC,CAAA,CAAA;KACvE,CAAA;EAAA,EAAA,MAAA,CAeDI,cAAc,GAAd,SAAevC,cAAAA,CAAAA,OAAO,EAAC;MACnB+B,YAAY,CAAC,0BAA0B,CAAC,CAAA;KAC3C,CAAA;EAAA,EAAA,MAAA,CAcDS,kBAAkB,GAAlB,SAAmBxC,kBAAAA,CAAAA,OAAO,EAAC;MACvB+B,YAAY,CAAC,8BAA8B,CAAC,CAAA;KAC/C,CAAA;IAAA,MAcDU,CAAAA,WAAW,GAAX,SAAa,WAAA,GAAA;MACTV,YAAY,CAAC,uBAAuB,CAAC,CAAA;KACxC,CAAA;IAAA,MAuBDW,CAAAA,eAAe,GAAf,SAAiB,eAAA,GAAA;MACbX,YAAY,CAAC,2BAA2B,CAAC,CAAA;KAC5C,CAAA;EAAA,EAAA,MAAA,CAODO,MAAM,GAAN,SAAOK,MAAAA,CAAAA,KAAK,EAAE;MACV,IAAI,IAAI,KAAKA,KAAK,EAAE;EAChB,MAAA,OAAO,IAAI,CAAA;EACf,KAAA;MACA,IAAIA,KAAK,YAAYrD,eAAe,EAAE;EAClC,MAAA,OAAO,IAAI,CAACE,SAAS,KAAKmD,KAAK,CAACnD,SAAS,CAAA;EAC7C,KAAA;EACA,IAAA,OAAO,KAAK,CAAA;KACf,CAAA;IAAA,MAMDoD,CAAAA,QAAQ,GAAR,SAAW,QAAA,GAAA;EACP,IAAA,OAAO,IAAI,CAACpD,SAAS,CAACqD,IAAI,CAAA;KAC7B,CAAA;EAAA,EAAA,OAAA,eAAA,CAAA;EAAA,CAAA,CA5WgCC,cAAS,CAAA,CAAA;EA6W7C,IAEKpD,SAAS,GAAA,YAAA;IACX,SAAYqD,SAAAA,CAAAA,WAAW,EAAEC,WAAW,EAAE;MAClC,IAAI,CAACD,WAAW,GAAGA,WAAW,CAAA;MAC9B,IAAI,CAACE,YAAY,GAAGD,WAAW,CAAA;MAC/B,IAAI,CAACvD,UAAU,GAAG,EAAE,CAAA;MACpB,IAAI,CAAC8B,IAAI,GAAG,IAAI,CAACwB,WAAW,CAACjD,MAAM,GAAG,CAAC,CAAA;EAC3C,GAAA;EAAC,EAAA,IAAA,OAAA,GAAA,SAAA,CAAA,SAAA,CAAA;EAAA,EAAA,OAAA,CAGDoD,eAAe,GAAf,SAAgB9C,eAAAA,CAAAA,KAAK,EAAE;EACnB,IAAA,IAAM+C,WAAW,GAAG,IAAI,CAACJ,WAAW,CAAC3C,KAAK,CAAC,CAAA;MAC3C,IAAI+C,WAAW,KAAKC,QAAQ,EAAE;QAC1B,OAAO,CAACC,kBAAa,CAACC,GAAG,EAAED,kBAAa,CAACC,GAAG,CAAC,CAAA;EACjD,KAAA;EACA,IAAA,IAAMtD,OAAO,GAAGuD,YAAO,CAACC,YAAY,CAACL,WAAW,CAAC,CAAA;MAEjD,IAAMM,OAAO,GAAG9B,eAAe,CAAC,IAAI,CAACsB,YAAY,CAAC7C,KAAK,CAAC,CAAC,CAAA;MACzD,IAAMsD,KAAK,GAAGpD,eAAU,CAACC,cAAc,CAAC,CAACkD,OAAO,CAAC,CAAA;MACjD,IAAME,IAAI,GAAGN,kBAAa,CAACO,SAAS,CAAC5D,OAAO,EAAE0D,KAAK,CAAC,CAAA;EAEpD,IAAA,IAAMG,SAAS,GAAG1C,IAAI,CAACG,GAAG,CAAClB,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC6C,YAAY,CAACnD,MAAM,GAAG,CAAC,CAAC,CAAA;MACnE,IAAMgE,OAAO,GAAGnC,eAAe,CAAC,IAAI,CAACsB,YAAY,CAACY,SAAS,CAAC,CAAC,CAAA;MAC7D,IAAME,KAAK,GAAGzD,eAAU,CAACC,cAAc,CAAC,CAACuD,OAAO,CAAC,CAAA;MACjD,IAAME,IAAI,GAAGX,kBAAa,CAACO,SAAS,CAAC5D,OAAO,EAAE+D,KAAK,CAAC,CAAA;MAEpD,IAAGN,OAAO,GAAGK,OAAO,EAAE;EAClB,MAAA,OAAO,CAACH,IAAI,EAAEK,IAAI,CAAC,CAAA;EACvB,KAAC,MAAM;EACH,MAAA,OAAO,CAACA,IAAI,EAAEL,IAAI,CAAC,CAAA;EACvB,KAAA;KACH,CAAA;EAAA,EAAA,OAAA,CAEDM,UAAU,GAAV,SAAW7D,UAAAA,CAAAA,KAAK,EAAC;MACb,IAAI,IAAI,CAACX,UAAU,CAACW,KAAK,CAAC,IAAI,IAAI,EAAE;QAChC,IAAI,CAACX,UAAU,CAACW,KAAK,CAAC,GAAG,IAAI,CAAC8C,eAAe,CAAC9C,KAAK,CAAC,CAAA;EACxD,KAAA;EACA,IAAA,OAAO,IAAI,CAACX,UAAU,CAACW,KAAK,CAAC,CAAA;KAChC,CAAA;EAAA,EAAA,OAAA,CAEDc,GAAG,GAAH,SAAId,GAAAA,CAAAA,KAAK,EAAE;MACP,IAAM8D,SAAS,GAAG,IAAI,CAACD,UAAU,CAAC7D,KAAK,IAAI,CAAC,CAAC,CAAA;EAC7C,IAAA,OAAO8D,SAAS,CAAC9D,KAAK,GAAG,CAAC,CAAC,CAAA;KAC9B,CAAA;EAAA,EAAA,OAAA,SAAA,CAAA;EAAA,CAAA,EAAA,CAAA;EAKL,SAASW,eAAe,CAACoD,KAAK,EAAEC,KAAK,EAAE;EACnC,EAAA,IAAIC,EAAE,GAAGF,KAAK,CAAC5C,IAAI,GAAG,CAAC;MAAE+C,EAAE,GAAG,CAAC,CAAC;MAAEC,GAAG,CAAA;EACrC,EAAA,OAAOF,EAAE,GAAGC,EAAE,GAAG,CAAC,EAAE;EAChB,IAAA,IAAI,CAACF,KAAK,CAACI,QAAQ,CAACL,KAAK,CAACjD,GAAG,CAACqD,GAAG,GAAGF,EAAE,GAAGC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;EAChDA,MAAAA,EAAE,GAAGC,GAAG,CAAA;EACZ,KAAC,MAAM;EACHF,MAAAA,EAAE,GAAGE,GAAG,CAAA;EACZ,KAAA;EACJ,GAAA;EACA,EAAA,OAAOF,EAAE,CAAA;EACb,CAAA;EAEA,SAAS1C,eAAe,CAAC8C,UAAU,EAAC;EAChC,EAAA,OAAOC,SAAS,CAAC,CAACD,UAAU,GAAC,EAAE,CAAC,CAAA;EACpC,CAAA;EAEA,SAASC,SAAS,CAACC,CAAC,EAAC;IACjB,IAAIA,CAAC,GAAG,CAAC,EAAE;EACP,IAAA,OAAOxD,IAAI,CAACyD,IAAI,CAACD,CAAC,CAAC,CAAA;EACvB,GAAC,MAAM;EACH,IAAA,OAAOxD,IAAI,CAAC0D,KAAK,CAACF,CAAC,CAAC,CAAA;EACxB,GAAA;EACJ,CAAA;EAIA,SAAStE,YAAY,CAAC8D,KAAK,EAAEC,KAAK,EAAE;EAChC,EAAA,IAAIC,EAAE,GAAGF,KAAK,CAACrE,MAAM,GAAG,CAAC;MAAEwE,EAAE,GAAG,CAAC,CAAC;MAAEC,GAAG,CAAA;EACvC,EAAA,OAAOF,EAAE,GAAGC,EAAE,GAAG,CAAC,EAAE;EAChB,IAAA,IAAIH,KAAK,CAACI,GAAG,GAAGF,EAAE,GAAGC,EAAE,IAAI,CAAC,CAAC,IAAIF,KAAK,EAAE;EACpCE,MAAAA,EAAE,GAAGC,GAAG,CAAA;EACZ,KAAC,MAAM;EACHF,MAAAA,EAAE,GAAGE,GAAG,CAAA;EACZ,KAAA;EACJ,GAAA;EACA,EAAA,OAAOF,EAAE,CAAA;EACb,CAAA;EAEA,SAAStC,YAAY,CAAC+C,GAAG,EAAC;EACtB,EAAA,MAAM,IAAIC,KAAK,CAAmBD,iBAAAA,GAAAA,GAAG,CAAG,CAAA;EAC5C;;EC9bA,SAASE,aAAa,CAACC,QAAQ,EAAE;IAC7B,IAAIA,QAAQ,GAAG,EAAE,EAAE;MACf,OAAOA,QAAQ,GAAG,EAAE,CAAA;EACxB,GAAC,MAAM,IAAIA,QAAQ,GAAG,EAAE,EAAE;MACtB,OAAOA,QAAQ,GAAG,EAAE,CAAA;EACxB,GAAA;IACA,OAAOA,QAAQ,GAAG,EAAE,CAAA;EACxB,CAAA;EAEA,SAASC,YAAY,CAACC,MAAM,EAAE;IAC1B,IAAIC,CAAC,GAAG,CAAC;EACLC,IAAAA,KAAK,GAAGF,MAAM,CAACG,KAAK,CAAC,GAAG,CAAC;EACzBC,IAAAA,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC;EAChBG,IAAAA,UAAU,GAAGH,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;EAC3BI,IAAAA,UAAU,GAAG,CAAC;MACdC,GAAG;EACHC,IAAAA,GAAG,GAAG,CAAC;EACPC,IAAAA,IAAI,GAAG,CAAC,CAAA;IAGZ,IAAIT,MAAM,CAACU,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;EAC7BT,IAAAA,CAAC,GAAG,CAAC,CAAA;MACLQ,IAAI,GAAG,CAAC,CAAC,CAAA;EACb,GAAA;IAGA,KAAKR,CAAC,EAAEA,CAAC,GAAGG,KAAK,CAACzF,MAAM,EAAEsF,CAAC,EAAE,EAAE;MAC3BM,GAAG,GAAGV,aAAa,CAACO,KAAK,CAACM,UAAU,CAACT,CAAC,CAAC,CAAC,CAAA;EACxCO,IAAAA,GAAG,GAAG,EAAE,GAAGA,GAAG,GAAGD,GAAG,CAAA;EACxB,GAAA;EAGA,EAAA,KAAKN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGI,UAAU,CAAC1F,MAAM,EAAEsF,CAAC,EAAE,EAAE;MACpCK,UAAU,GAAGA,UAAU,GAAG,EAAE,CAAA;MAC5BC,GAAG,GAAGV,aAAa,CAACQ,UAAU,CAACK,UAAU,CAACT,CAAC,CAAC,CAAC,CAAA;MAC7CO,GAAG,IAAID,GAAG,GAAGD,UAAU,CAAA;EAC3B,GAAA;IAEA,OAAOE,GAAG,GAAGC,IAAI,CAAA;EACrB,CAAA;EAEA,SAASE,UAAU,CAAE3B,KAAK,EAAE;EACxB,EAAA,KAAK,IAAIiB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGjB,KAAK,CAACrE,MAAM,EAAEsF,CAAC,EAAE,EAAE;MACnCjB,KAAK,CAACiB,CAAC,CAAC,GAAGF,YAAY,CAACf,KAAK,CAACiB,CAAC,CAAC,CAAC,CAAA;EACrC,GAAA;EACJ,CAAA;EAEA,SAASW,UAAU,CAAE5B,KAAK,EAAErE,MAAM,EAAE;IAChC,KAAK,IAAIsF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtF,MAAM,EAAEsF,CAAC,EAAE,EAAE;MAC7BjB,KAAK,CAACiB,CAAC,CAAC,GAAGjE,IAAI,CAAC6E,KAAK,CAAC,CAAC7B,KAAK,CAACiB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAKjB,KAAK,CAACiB,CAAC,CAAC,GAAG,KAAM,CAAC,CAAA;EACnE,GAAA;EAEAjB,EAAAA,KAAK,CAACrE,MAAM,GAAG,CAAC,CAAC,GAAGsD,QAAQ,CAAA;EAChC,CAAA;EAEA,SAAS6C,UAAU,CAAEC,MAAM,EAAEC,OAAO,EAAE;IAClC,IAAIR,GAAG,GAAG,EAAE;MAAEP,CAAC,CAAA;EAEf,EAAA,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGe,OAAO,CAACrG,MAAM,EAAEsF,CAAC,EAAE,EAAE;MACjCO,GAAG,CAACP,CAAC,CAAC,GAAGc,MAAM,CAACC,OAAO,CAACf,CAAC,CAAC,CAAC,CAAA;EAC/B,GAAA;EAEA,EAAA,OAAOO,GAAG,CAAA;EACd,CAAA;EAQO,SAASS,MAAM,CAAEjB,MAAM,EAAE;EAC5B,EAAA,IAAIkB,IAAI,GAAGlB,MAAM,CAACG,KAAK,CAAC,GAAG,CAAC;MACxB1F,OAAO,GAAGyG,IAAI,CAAC,CAAC,CAAC,CAACf,KAAK,CAAC,GAAG,CAAC;MAC5Ba,OAAO,GAAGE,IAAI,CAAC,CAAC,CAAC,CAACf,KAAK,CAAC,EAAE,CAAC;MAC3B3F,MAAM,GAAI0G,IAAI,CAAC,CAAC,CAAC,CAACf,KAAK,CAAC,GAAG,CAAC,CAAA;IAEhCQ,UAAU,CAAClG,OAAO,CAAC,CAAA;IACnBkG,UAAU,CAACK,OAAO,CAAC,CAAA;IACnBL,UAAU,CAACnG,MAAM,CAAC,CAAA;EAElBoG,EAAAA,UAAU,CAACpG,MAAM,EAAEwG,OAAO,CAACrG,MAAM,CAAC,CAAA;IAElC,OAAO;EACH+C,IAAAA,IAAI,EAASwD,IAAI,CAAC,CAAC,CAAC;EACpBC,IAAAA,KAAK,EAAQL,UAAU,CAACI,IAAI,CAAC,CAAC,CAAC,CAACf,KAAK,CAAC,GAAG,CAAC,EAAEa,OAAO,CAAC;EACpDvG,IAAAA,OAAO,EAAMqG,UAAU,CAACrG,OAAO,EAAEuG,OAAO,CAAC;EACzCxG,IAAAA,MAAM,EAAOA,MAAM;EACnB4G,IAAAA,UAAU,EAAGF,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;KAC1B,CAAA;EACL;;EC7FA,IAAIG,SAAS,CAAA;EACb,IAAIC,YAAY,CAAA;EAChB,IAAMC,kBAAkB,GAAG,EAAE,CAAA;EAE7B,IAAMC,KAAK,GAAG,EAAE,CAAA;EAChB,IAAMC,KAAK,GAAG,EAAE,CAAA;EAEhB,IAAaC,uBAAuB,GAAA,UAAA,kBAAA,EAAA;EAAA,EAAA,cAAA,CAAA,uBAAA,EAAA,kBAAA,CAAA,CAAA;EAAA,EAAA,SAAA,uBAAA,GAAA;EAAA,IAAA,OAAA,kBAAA,CAAA,KAAA,CAAA,IAAA,EAAA,SAAA,CAAA,IAAA,IAAA,CAAA;EAAA,GAAA;EAAA,EAAA,uBAAA,CAWzBC,QAAQ,GAAf,SAAgBC,QAAAA,CAAAA,MAAM,EAAC;MACnB,IAAMC,YAAY,GAAGL,KAAK,CAACC,KAAK,CAACG,MAAM,CAAC,CAAC,CAAA;MACzC,IAAGC,YAAY,IAAI,IAAI,EAAC;EACpB,MAAA,MAAM,IAAIC,sBAAiB,CAA0BF,wBAAAA,GAAAA,MAAM,CAAG,CAAA;EAClE,KAAA;EACA,IAAA,OAAO,IAAIzH,eAAe,CAAC0H,YAAY,CAAC,CAAA;KAC3C,CAAA;IAAA,uBAUME,CAAAA,mBAAmB,GAA1B,SAA4B,mBAAA,GAAA;EACxB,IAAA,OAAOR,kBAAkB,CAAA;KAC5B,CAAA;IAAA,uBAMMS,CAAAA,UAAU,GAAjB,SAAoB,UAAA,GAAA;EAChB,IAAA,OAAOV,YAAY,CAAA;KACtB,CAAA;IAAA,uBAQMW,CAAAA,WAAW,GAAlB,SAAoB,WAAA,GAAA;EAChB,IAAA,OAAOZ,SAAS,CAAA;KACnB,CAAA;EAAA,EAAA,uBAAA,CAQMa,YAAY,GAAnB,SAAoBC,YAAAA,CAAAA,UAAU,EAAC;EAC3Bd,IAAAA,SAAS,GAAGc,UAAU,CAAA;MACtBb,YAAY,GAAGa,UAAU,CAACC,OAAO,CAAA;MAEjC,KAA6BD,IAAAA,SAAAA,GAAAA,+BAAAA,CAAAA,UAAU,CAACX,KAAK,CAAE,EAAA,KAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,EAAA,EAAA,IAAA,GAAA;EAAA,MAAA,IAApCa,cAAc,GAAA,KAAA,CAAA,KAAA,CAAA;EACrB,MAAA,IAAMR,YAAY,GAAGZ,MAAM,CAACoB,cAAc,CAAC,CAAA;EAC3Cd,MAAAA,kBAAkB,CAACe,IAAI,CAACT,YAAY,CAACnE,IAAI,CAAC,CAAA;EAC1C8D,MAAAA,KAAK,CAACK,YAAY,CAACnE,IAAI,CAAC,GAAGmE,YAAY,CAAA;QACvCJ,KAAK,CAACI,YAAY,CAACnE,IAAI,CAAC,GAAGmE,YAAY,CAACnE,IAAI,CAAA;EAChD,KAAA;MAEA,KAAyByE,IAAAA,UAAAA,GAAAA,+BAAAA,CAAAA,UAAU,CAACV,KAAK,CAAE,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,GAAA,UAAA,EAAA,EAAA,IAAA,GAAA;EAAA,MAAA,IAAhCc,UAAU,GAAA,MAAA,CAAA,KAAA,CAAA;EACjB,MAAA,IAAMC,IAAI,GAAGD,UAAU,CAACpC,KAAK,CAAC,GAAG,CAAC,CAAA;EAClCoB,MAAAA,kBAAkB,CAACe,IAAI,CAACE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QAChCf,KAAK,CAACe,IAAI,CAAC,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,CAAA;EAC5B,KAAA;KACH,CAAA;EAAA,EAAA,OAAA,uBAAA,CAAA;EAAA,CAAA,CAvEwCC,sBAAiB,CAAA;;EChB9D,SAASC,iBAAiB,CAACC,MAAM,EAAE;IAC/B,IAAI;MACA,IAAMC,gBAAgB,GAAGC,IAAI,CAACC,cAAc,EAAE,CAACC,eAAe,EAAE,CAACC,QAAQ,CAAA;EACzE,IAAA,OAAOL,MAAM,CAACpG,EAAE,CAACqG,gBAAgB,CAAC,CAAA;EACtC,GAAC,CAAC,OAAOK,GAAG,EAAE,EAEd;EACA,EAAA,OAAO,IAAI,CAAA;EACf,CAAA;EAOe,SAASC,yBAAyB,CAACP,MAAM,EAAE;EACtD,EAAA,IAAMQ,cAAc,GAAGT,iBAAiB,CAACC,MAAM,CAAC,CAAA;IAEhD,IAAIQ,cAAc,IAAI,IAAI,EAAE;EACxB,IAAA,OAAA;EACJ,GAAA;IAEAR,MAAM,CAACS,aAAa,GAAG,YAAY;EAC/B,IAAA,OAAOD,cAAc,CAAA;KACxB,CAAA;EACL;;EC/BA;EACA;EACA;EACA;EAQe,aAAA,EAAUE,MAAM,EAAE;EAC7BA,EAAAA,MAAM,CAACZ,iBAAiB,CAACd,QAAQ,GAAGD,uBAAuB,CAACC,QAAQ,CAAA;EACpE0B,EAAAA,MAAM,CAACZ,iBAAiB,CAACV,mBAAmB,GAAGL,uBAAuB,CAACK,mBAAmB,CAAA;EAC1FsB,EAAAA,MAAM,CAACZ,iBAAiB,CAACR,WAAW,GAAGP,uBAAuB,CAACO,WAAW,CAAA;EAC1EoB,EAAAA,MAAM,CAACZ,iBAAiB,CAACP,YAAY,GAAGR,uBAAuB,CAACQ,YAAY,CAAA;EAE5EgB,EAAAA,yBAAyB,CAACG,MAAM,CAACV,MAAM,CAAC,CAAA;EACxC,EAAA,OAAOU,MAAM,CAAA;EACjB;;ECnBA;EACA;EACA;EACA;EASe,SAASC,QAAQ,GAAG;IAC/BC,QAAG,CAACC,IAAI,CAAC,CAAA;EACb;;ECdA;EACA;EACA;EACA;EAIAF,QAAQ,EAAE;;;;;;"}
|