Files
PayDirt/node_modules/@js-joda/core/dist/js-joda.js
RochesterX 6e820464d5 Initial
2025-11-12 10:13:24 -05:00

10569 lines
430 KiB
JavaScript

//! @version @js-joda/core - 5.6.5
//! @copyright (c) 2015-present, Philipp Thürwächter, Pattrick Hüper & js-joda contributors
//! @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
//! @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.JSJoda = {}));
})(this, (function (exports) { 'use strict';
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
function createErrorType(name, init, superErrorClass) {
if (superErrorClass === void 0) {
superErrorClass = Error;
}
function JsJodaException(message) {
if (!Error.captureStackTrace) {
this.stack = new Error().stack;
} else {
Error.captureStackTrace(this, this.constructor);
}
this.message = message;
init && init.apply(this, arguments);
this.toString = function () {
return this.name + ": " + this.message;
};
}
JsJodaException.prototype = Object.create(superErrorClass.prototype);
JsJodaException.prototype.name = name;
JsJodaException.prototype.constructor = JsJodaException;
return JsJodaException;
}
var DateTimeException = createErrorType('DateTimeException', messageWithCause);
var DateTimeParseException = createErrorType('DateTimeParseException', messageForDateTimeParseException);
var UnsupportedTemporalTypeException = createErrorType('UnsupportedTemporalTypeException', null, DateTimeException);
var ArithmeticException = createErrorType('ArithmeticException');
var IllegalArgumentException = createErrorType('IllegalArgumentException');
var IllegalStateException = createErrorType('IllegalStateException');
var NullPointerException = createErrorType('NullPointerException');
function messageWithCause(message, cause) {
if (cause === void 0) {
cause = null;
}
var msg = message || this.name;
if (cause !== null && cause instanceof Error) {
msg += "\n-------\nCaused by: " + cause.stack + "\n-------\n";
}
this.message = msg;
}
function messageForDateTimeParseException(message, text, index, cause) {
if (text === void 0) {
text = '';
}
if (index === void 0) {
index = 0;
}
if (cause === void 0) {
cause = null;
}
var msg = message || this.name;
msg += ": " + text + ", at index: " + index;
if (cause !== null && cause instanceof Error) {
msg += "\n-------\nCaused by: " + cause.stack + "\n-------\n";
}
this.message = msg;
this.parsedString = function () {
return text;
};
this.errorIndex = function () {
return index;
};
}
function _inheritsLoose(subClass, superClass) {
subClass.prototype = Object.create(superClass.prototype);
subClass.prototype.constructor = subClass;
_setPrototypeOf(subClass, superClass);
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
function assert(assertion, msg, error) {
if (!assertion) {
if (error) {
throw new error(msg);
} else {
throw new Error(msg);
}
}
}
function requireNonNull(value, parameterName) {
if (value == null) {
throw new NullPointerException(parameterName + " must not be null");
}
return value;
}
function requireInstance(value, _class, parameterName) {
if (!(value instanceof _class)) {
throw new IllegalArgumentException(parameterName + " must be an instance of " + (_class.name ? _class.name : _class) + (value && value.constructor && value.constructor.name ? ", but is " + value.constructor.name : ''));
}
return value;
}
function abstractMethodFail(methodName) {
throw new TypeError("abstract method \"" + methodName + "\" is not implemented");
}
var assert$1 = /*#__PURE__*/Object.freeze({
__proto__: null,
abstractMethodFail: abstractMethodFail,
assert: assert,
requireInstance: requireInstance,
requireNonNull: requireNonNull
});
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var MAX_SAFE_INTEGER = 9007199254740991;
var MIN_SAFE_INTEGER = -9007199254740991;
var MathUtil = function () {
function MathUtil() {}
MathUtil.intDiv = function intDiv(x, y) {
var r = x / y;
r = MathUtil.roundDown(r);
return MathUtil.safeZero(r);
};
MathUtil.intMod = function intMod(x, y) {
var r = x - MathUtil.intDiv(x, y) * y;
r = MathUtil.roundDown(r);
return MathUtil.safeZero(r);
};
MathUtil.roundDown = function roundDown(r) {
if (r < 0) {
return Math.ceil(r);
} else {
return Math.floor(r);
}
};
MathUtil.floorDiv = function floorDiv(x, y) {
var r = Math.floor(x / y);
return MathUtil.safeZero(r);
};
MathUtil.floorMod = function floorMod(x, y) {
var r = x - MathUtil.floorDiv(x, y) * y;
return MathUtil.safeZero(r);
};
MathUtil.safeAdd = function safeAdd(x, y) {
MathUtil.verifyInt(x);
MathUtil.verifyInt(y);
if (x === 0) {
return MathUtil.safeZero(y);
}
if (y === 0) {
return MathUtil.safeZero(x);
}
var r = MathUtil.safeToInt(x + y);
if (r === x || r === y) {
throw new ArithmeticException('Invalid addition beyond MAX_SAFE_INTEGER!');
}
return r;
};
MathUtil.safeSubtract = function safeSubtract(x, y) {
MathUtil.verifyInt(x);
MathUtil.verifyInt(y);
if (x === 0 && y === 0) {
return 0;
} else if (x === 0) {
return MathUtil.safeZero(-1 * y);
} else if (y === 0) {
return MathUtil.safeZero(x);
}
return MathUtil.safeToInt(x - y);
};
MathUtil.safeMultiply = function safeMultiply(x, y) {
MathUtil.verifyInt(x);
MathUtil.verifyInt(y);
if (x === 1) {
return MathUtil.safeZero(y);
}
if (y === 1) {
return MathUtil.safeZero(x);
}
if (x === 0 || y === 0) {
return 0;
}
var r = MathUtil.safeToInt(x * y);
if (r / y !== x || x === MIN_SAFE_INTEGER && y === -1 || y === MIN_SAFE_INTEGER && x === -1) {
throw new ArithmeticException("Multiplication overflows: " + x + " * " + y);
}
return r;
};
MathUtil.parseInt = function (_parseInt) {
function parseInt(_x) {
return _parseInt.apply(this, arguments);
}
parseInt.toString = function () {
return _parseInt.toString();
};
return parseInt;
}(function (value) {
var r = parseInt(value);
return MathUtil.safeToInt(r);
});
MathUtil.safeToInt = function safeToInt(value) {
MathUtil.verifyInt(value);
return MathUtil.safeZero(value);
};
MathUtil.verifyInt = function verifyInt(value) {
if (value == null) {
throw new ArithmeticException("Invalid value: '" + value + "', using null or undefined as argument");
}
if (isNaN(value)) {
throw new ArithmeticException('Invalid int value, using NaN as argument');
}
if (Number.isInteger) {
if (!Number.isInteger(Number(value))) {
throw new ArithmeticException("Invalid value: '" + value + "' is a float");
}
} else if (value % 1 !== 0) {
throw new ArithmeticException("Invalid value: '" + value + "' is a float");
}
if (value > MAX_SAFE_INTEGER || value < MIN_SAFE_INTEGER) {
throw new ArithmeticException("Calculation overflows an int: " + value);
}
};
MathUtil.safeZero = function safeZero(value) {
return value === 0 ? 0 : +value;
};
MathUtil.compareNumbers = function compareNumbers(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
};
MathUtil.smi = function smi(int) {
return int >>> 1 & 0x40000000 | int & 0xBFFFFFFF;
};
MathUtil.hash = function hash(number) {
if (number !== number || number === Infinity) {
return 0;
}
var result = number;
while (number > 0xFFFFFFFF) {
number /= 0xFFFFFFFF;
result ^= number;
}
return MathUtil.smi(result);
};
MathUtil.hashCode = function hashCode() {
var result = 17;
for (var _len = arguments.length, numbers = new Array(_len), _key = 0; _key < _len; _key++) {
numbers[_key] = arguments[_key];
}
for (var _i = 0, _numbers = numbers; _i < _numbers.length; _i++) {
var n = _numbers[_i];
result = (result << 5) - result + MathUtil.hash(n);
}
return MathUtil.hash(result);
};
return MathUtil;
}();
MathUtil.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
MathUtil.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var Enum = function () {
function Enum(name) {
this._name = name;
}
var _proto = Enum.prototype;
_proto.equals = function equals(other) {
return this === other;
};
_proto.toString = function toString() {
return this._name;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return Enum;
}();
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var TemporalAmount = function () {
function TemporalAmount() {}
var _proto = TemporalAmount.prototype;
_proto.get = function get(unit) {
abstractMethodFail('get');
};
_proto.units = function units() {
abstractMethodFail('units');
};
_proto.addTo = function addTo(temporal) {
abstractMethodFail('addTo');
};
_proto.subtractFrom = function subtractFrom(temporal) {
abstractMethodFail('subtractFrom');
};
return TemporalAmount;
}();
if (typeof Symbol !== 'undefined' && Symbol.toPrimitive) {
TemporalAmount.prototype[Symbol.toPrimitive] = function (hint) {
if (hint !== 'number') {
return this.toString();
}
throw new TypeError('A conversion from TemporalAmount to a number is not allowed. ' + 'To compare use the methods .equals(), .compareTo(), .isBefore() ' + 'or one that is more suitable to your use case.');
};
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var TemporalUnit = function () {
function TemporalUnit() {}
var _proto = TemporalUnit.prototype;
_proto.duration = function duration() {
abstractMethodFail('duration');
};
_proto.isDurationEstimated = function isDurationEstimated() {
abstractMethodFail('isDurationEstimated');
};
_proto.isDateBased = function isDateBased() {
abstractMethodFail('isDateBased');
};
_proto.isTimeBased = function isTimeBased() {
abstractMethodFail('isTimeBased');
};
_proto.isSupportedBy = function isSupportedBy(temporal) {
abstractMethodFail('isSupportedBy');
};
_proto.addTo = function addTo(dateTime, periodToAdd) {
abstractMethodFail('addTo');
};
_proto.between = function between(temporal1, temporal2) {
abstractMethodFail('between');
};
return TemporalUnit;
}();
var Duration = function (_TemporalAmount) {
_inheritsLoose(Duration, _TemporalAmount);
function Duration(seconds, nanos) {
var _this;
_this = _TemporalAmount.call(this) || this;
_this._seconds = MathUtil.safeToInt(seconds);
_this._nanos = MathUtil.safeToInt(nanos);
return _this;
}
Duration.ofDays = function ofDays(days) {
return Duration._create(MathUtil.safeMultiply(days, LocalTime.SECONDS_PER_DAY), 0);
};
Duration.ofHours = function ofHours(hours) {
return Duration._create(MathUtil.safeMultiply(hours, LocalTime.SECONDS_PER_HOUR), 0);
};
Duration.ofMinutes = function ofMinutes(minutes) {
return Duration._create(MathUtil.safeMultiply(minutes, LocalTime.SECONDS_PER_MINUTE), 0);
};
Duration.ofSeconds = function ofSeconds(seconds, nanoAdjustment) {
if (nanoAdjustment === void 0) {
nanoAdjustment = 0;
}
var secs = MathUtil.safeAdd(seconds, MathUtil.floorDiv(nanoAdjustment, LocalTime.NANOS_PER_SECOND));
var nos = MathUtil.floorMod(nanoAdjustment, LocalTime.NANOS_PER_SECOND);
return Duration._create(secs, nos);
};
Duration.ofMillis = function ofMillis(millis) {
var secs = MathUtil.intDiv(millis, 1000);
var mos = MathUtil.intMod(millis, 1000);
if (mos < 0) {
mos += 1000;
secs--;
}
return Duration._create(secs, mos * 1000000);
};
Duration.ofNanos = function ofNanos(nanos) {
var secs = MathUtil.intDiv(nanos, LocalTime.NANOS_PER_SECOND);
var nos = MathUtil.intMod(nanos, LocalTime.NANOS_PER_SECOND);
if (nos < 0) {
nos += LocalTime.NANOS_PER_SECOND;
secs--;
}
return this._create(secs, nos);
};
Duration.of = function of(amount, unit) {
return Duration.ZERO.plus(amount, unit);
};
Duration.from = function from(amount) {
requireNonNull(amount, 'amount');
requireInstance(amount, TemporalAmount);
var duration = Duration.ZERO;
amount.units().forEach(function (unit) {
duration = duration.plus(amount.get(unit), unit);
});
return duration;
};
Duration.between = function between(startInclusive, endExclusive) {
requireNonNull(startInclusive, 'startInclusive');
requireNonNull(endExclusive, 'endExclusive');
var secs = startInclusive.until(endExclusive, ChronoUnit.SECONDS);
var nanos = 0;
if (startInclusive.isSupported(ChronoField.NANO_OF_SECOND) && endExclusive.isSupported(ChronoField.NANO_OF_SECOND)) {
try {
var startNos = startInclusive.getLong(ChronoField.NANO_OF_SECOND);
nanos = endExclusive.getLong(ChronoField.NANO_OF_SECOND) - startNos;
if (secs > 0 && nanos < 0) {
nanos += LocalTime.NANOS_PER_SECOND;
} else if (secs < 0 && nanos > 0) {
nanos -= LocalTime.NANOS_PER_SECOND;
} else if (secs === 0 && nanos !== 0) {
var adjustedEnd = endExclusive.with(ChronoField.NANO_OF_SECOND, startNos);
secs = startInclusive.until(adjustedEnd, ChronoUnit.SECONDS);
}
} catch (e) {}
}
return this.ofSeconds(secs, nanos);
};
Duration.parse = function parse(text) {
requireNonNull(text, 'text');
var PATTERN = new RegExp('([-+]?)P(?:([-+]?[0-9]+)D)?(T(?:([-+]?[0-9]+)H)?(?:([-+]?[0-9]+)M)?(?:([-+]?[0-9]+)(?:[.,]([0-9]{0,9}))?S)?)?', 'i');
var matches = PATTERN.exec(text);
if (matches !== null) {
if ('T' === matches[3] === false) {
var negate = '-' === matches[1];
var dayMatch = matches[2];
var hourMatch = matches[4];
var minuteMatch = matches[5];
var secondMatch = matches[6];
var fractionMatch = matches[7];
if (dayMatch != null || hourMatch != null || minuteMatch != null || secondMatch != null) {
var daysAsSecs = Duration._parseNumber(text, dayMatch, LocalTime.SECONDS_PER_DAY, 'days');
var hoursAsSecs = Duration._parseNumber(text, hourMatch, LocalTime.SECONDS_PER_HOUR, 'hours');
var minsAsSecs = Duration._parseNumber(text, minuteMatch, LocalTime.SECONDS_PER_MINUTE, 'minutes');
var seconds = Duration._parseNumber(text, secondMatch, 1, 'seconds');
var negativeSecs = secondMatch != null && secondMatch.charAt(0) === '-';
var nanos = Duration._parseFraction(text, fractionMatch, negativeSecs ? -1 : 1);
try {
return Duration._create(negate, daysAsSecs, hoursAsSecs, minsAsSecs, seconds, nanos);
} catch (ex) {
throw new DateTimeParseException('Text cannot be parsed to a Duration: overflow', text, 0, ex);
}
}
}
}
throw new DateTimeParseException('Text cannot be parsed to a Duration', text, 0);
};
Duration._parseNumber = function _parseNumber(text, parsed, multiplier, errorText) {
if (parsed == null) {
return 0;
}
try {
if (parsed[0] === '+') {
parsed = parsed.substring(1);
}
return MathUtil.safeMultiply(parseFloat(parsed), multiplier);
} catch (ex) {
throw new DateTimeParseException("Text cannot be parsed to a Duration: " + errorText, text, 0, ex);
}
};
Duration._parseFraction = function _parseFraction(text, parsed, negate) {
if (parsed == null || parsed.length === 0) {
return 0;
}
parsed = (parsed + "000000000").substring(0, 9);
return parseFloat(parsed) * negate;
};
Duration._create = function _create() {
if (arguments.length <= 2) {
return Duration._createSecondsNanos(arguments[0], arguments[1]);
} else {
return Duration._createNegateDaysHoursMinutesSecondsNanos(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
}
};
Duration._createNegateDaysHoursMinutesSecondsNanos = function _createNegateDaysHoursMinutesSecondsNanos(negate, daysAsSecs, hoursAsSecs, minsAsSecs, secs, nanos) {
var seconds = MathUtil.safeAdd(daysAsSecs, MathUtil.safeAdd(hoursAsSecs, MathUtil.safeAdd(minsAsSecs, secs)));
if (negate) {
return Duration.ofSeconds(seconds, nanos).negated();
}
return Duration.ofSeconds(seconds, nanos);
};
Duration._createSecondsNanos = function _createSecondsNanos(seconds, nanoAdjustment) {
if (seconds === void 0) {
seconds = 0;
}
if (nanoAdjustment === void 0) {
nanoAdjustment = 0;
}
if (seconds === 0 && nanoAdjustment === 0) {
return Duration.ZERO;
}
return new Duration(seconds, nanoAdjustment);
};
var _proto = Duration.prototype;
_proto.get = function get(unit) {
if (unit === ChronoUnit.SECONDS) {
return this._seconds;
} else if (unit === ChronoUnit.NANOS) {
return this._nanos;
} else {
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
};
_proto.units = function units() {
return [ChronoUnit.SECONDS, ChronoUnit.NANOS];
};
_proto.isZero = function isZero() {
return this._seconds === 0 && this._nanos === 0;
};
_proto.isNegative = function isNegative() {
return this._seconds < 0;
};
_proto.seconds = function seconds() {
return this._seconds;
};
_proto.nano = function nano() {
return this._nanos;
};
_proto.withSeconds = function withSeconds(seconds) {
return Duration._create(seconds, this._nanos);
};
_proto.withNanos = function withNanos(nanoOfSecond) {
ChronoField.NANO_OF_SECOND.checkValidIntValue(nanoOfSecond);
return Duration._create(this._seconds, nanoOfSecond);
};
_proto.plusDuration = function plusDuration(duration) {
requireNonNull(duration, 'duration');
return this.plus(duration.seconds(), duration.nano());
};
_proto.plus = function plus(durationOrNumber, unitOrNumber) {
if (arguments.length === 1) {
return this.plusDuration(durationOrNumber);
} else if (arguments.length === 2 && unitOrNumber instanceof TemporalUnit) {
return this.plusAmountUnit(durationOrNumber, unitOrNumber);
} else {
return this.plusSecondsNanos(durationOrNumber, unitOrNumber);
}
};
_proto.plusAmountUnit = function plusAmountUnit(amountToAdd, unit) {
requireNonNull(amountToAdd, 'amountToAdd');
requireNonNull(unit, 'unit');
if (unit === ChronoUnit.DAYS) {
return this.plusSecondsNanos(MathUtil.safeMultiply(amountToAdd, LocalTime.SECONDS_PER_DAY), 0);
}
if (unit.isDurationEstimated()) {
throw new UnsupportedTemporalTypeException('Unit must not have an estimated duration');
}
if (amountToAdd === 0) {
return this;
}
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.NANOS:
return this.plusNanos(amountToAdd);
case ChronoUnit.MICROS:
return this.plusSecondsNanos(MathUtil.intDiv(amountToAdd, 1000000 * 1000) * 1000, MathUtil.intMod(amountToAdd, 1000000 * 1000) * 1000);
case ChronoUnit.MILLIS:
return this.plusMillis(amountToAdd);
case ChronoUnit.SECONDS:
return this.plusSeconds(amountToAdd);
}
return this.plusSecondsNanos(MathUtil.safeMultiply(unit.duration().seconds(), amountToAdd), 0);
}
var duration = unit.duration().multipliedBy(amountToAdd);
return this.plusSecondsNanos(duration.seconds(), duration.nano());
};
_proto.plusDays = function plusDays(daysToAdd) {
return this.plusSecondsNanos(MathUtil.safeMultiply(daysToAdd, LocalTime.SECONDS_PER_DAY), 0);
};
_proto.plusHours = function plusHours(hoursToAdd) {
return this.plusSecondsNanos(MathUtil.safeMultiply(hoursToAdd, LocalTime.SECONDS_PER_HOUR), 0);
};
_proto.plusMinutes = function plusMinutes(minutesToAdd) {
return this.plusSecondsNanos(MathUtil.safeMultiply(minutesToAdd, LocalTime.SECONDS_PER_MINUTE), 0);
};
_proto.plusSeconds = function plusSeconds(secondsToAdd) {
return this.plusSecondsNanos(secondsToAdd, 0);
};
_proto.plusMillis = function plusMillis(millisToAdd) {
return this.plusSecondsNanos(MathUtil.intDiv(millisToAdd, 1000), MathUtil.intMod(millisToAdd, 1000) * 1000000);
};
_proto.plusNanos = function plusNanos(nanosToAdd) {
return this.plusSecondsNanos(0, nanosToAdd);
};
_proto.plusSecondsNanos = function plusSecondsNanos(secondsToAdd, nanosToAdd) {
requireNonNull(secondsToAdd, 'secondsToAdd');
requireNonNull(nanosToAdd, 'nanosToAdd');
if (secondsToAdd === 0 && nanosToAdd === 0) {
return this;
}
var epochSec = MathUtil.safeAdd(this._seconds, secondsToAdd);
epochSec = MathUtil.safeAdd(epochSec, MathUtil.intDiv(nanosToAdd, LocalTime.NANOS_PER_SECOND));
nanosToAdd = MathUtil.intMod(nanosToAdd, LocalTime.NANOS_PER_SECOND);
var nanoAdjustment = MathUtil.safeAdd(this._nanos, nanosToAdd);
return Duration.ofSeconds(epochSec, nanoAdjustment);
};
_proto.minus = function minus(durationOrNumber, unit) {
if (arguments.length === 1) {
return this.minusDuration(durationOrNumber);
} else {
return this.minusAmountUnit(durationOrNumber, unit);
}
};
_proto.minusDuration = function minusDuration(duration) {
requireNonNull(duration, 'duration');
var secsToSubtract = duration.seconds();
var nanosToSubtract = duration.nano();
if (secsToSubtract === MIN_SAFE_INTEGER) {
return this.plus(MAX_SAFE_INTEGER, -nanosToSubtract);
}
return this.plus(-secsToSubtract, -nanosToSubtract);
};
_proto.minusAmountUnit = function minusAmountUnit(amountToSubtract, unit) {
requireNonNull(amountToSubtract, 'amountToSubtract');
requireNonNull(unit, 'unit');
return amountToSubtract === MIN_SAFE_INTEGER ? this.plusAmountUnit(MAX_SAFE_INTEGER, unit) : this.plusAmountUnit(-amountToSubtract, unit);
};
_proto.minusDays = function minusDays(daysToSubtract) {
return daysToSubtract === MIN_SAFE_INTEGER ? this.plusDays(MAX_SAFE_INTEGER) : this.plusDays(-daysToSubtract);
};
_proto.minusHours = function minusHours(hoursToSubtract) {
return hoursToSubtract === MIN_SAFE_INTEGER ? this.plusHours(MAX_SAFE_INTEGER) : this.plusHours(-hoursToSubtract);
};
_proto.minusMinutes = function minusMinutes(minutesToSubtract) {
return minutesToSubtract === MIN_SAFE_INTEGER ? this.plusMinutes(MAX_SAFE_INTEGER) : this.plusMinutes(-minutesToSubtract);
};
_proto.minusSeconds = function minusSeconds(secondsToSubtract) {
return secondsToSubtract === MIN_SAFE_INTEGER ? this.plusSeconds(MAX_SAFE_INTEGER) : this.plusSeconds(-secondsToSubtract);
};
_proto.minusMillis = function minusMillis(millisToSubtract) {
return millisToSubtract === MIN_SAFE_INTEGER ? this.plusMillis(MAX_SAFE_INTEGER) : this.plusMillis(-millisToSubtract);
};
_proto.minusNanos = function minusNanos(nanosToSubtract) {
return nanosToSubtract === MIN_SAFE_INTEGER ? this.plusNanos(MAX_SAFE_INTEGER) : this.plusNanos(-nanosToSubtract);
};
_proto.multipliedBy = function multipliedBy(multiplicand) {
if (multiplicand === 0) {
return Duration.ZERO;
}
if (multiplicand === 1) {
return this;
}
var secs = MathUtil.safeMultiply(this._seconds, multiplicand);
var nos = MathUtil.safeMultiply(this._nanos, multiplicand);
secs = secs + MathUtil.intDiv(nos, LocalTime.NANOS_PER_SECOND);
nos = MathUtil.intMod(nos, LocalTime.NANOS_PER_SECOND);
return Duration.ofSeconds(secs, nos);
};
_proto.dividedBy = function dividedBy(divisor) {
if (divisor === 0) {
throw new ArithmeticException('Cannot divide by zero');
}
if (divisor === 1) {
return this;
}
var secs = MathUtil.intDiv(this._seconds, divisor);
var secsMod = MathUtil.roundDown((this._seconds / divisor - secs) * LocalTime.NANOS_PER_SECOND);
var nos = MathUtil.intDiv(this._nanos, divisor);
nos = secsMod + nos;
return Duration.ofSeconds(secs, nos);
};
_proto.negated = function negated() {
return this.multipliedBy(-1);
};
_proto.abs = function abs() {
return this.isNegative() ? this.negated() : this;
};
_proto.addTo = function addTo(temporal) {
requireNonNull(temporal, 'temporal');
if (this._seconds !== 0) {
temporal = temporal.plus(this._seconds, ChronoUnit.SECONDS);
}
if (this._nanos !== 0) {
temporal = temporal.plus(this._nanos, ChronoUnit.NANOS);
}
return temporal;
};
_proto.subtractFrom = function subtractFrom(temporal) {
requireNonNull(temporal, 'temporal');
if (this._seconds !== 0) {
temporal = temporal.minus(this._seconds, ChronoUnit.SECONDS);
}
if (this._nanos !== 0) {
temporal = temporal.minus(this._nanos, ChronoUnit.NANOS);
}
return temporal;
};
_proto.toDays = function toDays() {
return MathUtil.intDiv(this._seconds, LocalTime.SECONDS_PER_DAY);
};
_proto.toHours = function toHours() {
return MathUtil.intDiv(this._seconds, LocalTime.SECONDS_PER_HOUR);
};
_proto.toMinutes = function toMinutes() {
return MathUtil.intDiv(this._seconds, LocalTime.SECONDS_PER_MINUTE);
};
_proto.toMillis = function toMillis() {
var millis = Math.round(MathUtil.safeMultiply(this._seconds, 1000));
millis = MathUtil.safeAdd(millis, MathUtil.intDiv(this._nanos, 1000000));
return millis;
};
_proto.toNanos = function toNanos() {
var totalNanos = MathUtil.safeMultiply(this._seconds, LocalTime.NANOS_PER_SECOND);
totalNanos = MathUtil.safeAdd(totalNanos, this._nanos);
return totalNanos;
};
_proto.compareTo = function compareTo(otherDuration) {
requireNonNull(otherDuration, 'otherDuration');
requireInstance(otherDuration, Duration, 'otherDuration');
var cmp = MathUtil.compareNumbers(this._seconds, otherDuration.seconds());
if (cmp !== 0) {
return cmp;
}
return this._nanos - otherDuration.nano();
};
_proto.equals = function equals(otherDuration) {
if (this === otherDuration) {
return true;
}
if (otherDuration instanceof Duration) {
return this.seconds() === otherDuration.seconds() && this.nano() === otherDuration.nano();
}
return false;
};
_proto.toString = function toString() {
if (this === Duration.ZERO) {
return 'PT0S';
}
var hours = MathUtil.intDiv(this._seconds, LocalTime.SECONDS_PER_HOUR);
var minutes = MathUtil.intDiv(MathUtil.intMod(this._seconds, LocalTime.SECONDS_PER_HOUR), LocalTime.SECONDS_PER_MINUTE);
var secs = MathUtil.intMod(this._seconds, LocalTime.SECONDS_PER_MINUTE);
var rval = 'PT';
if (hours !== 0) {
rval += hours + "H";
}
if (minutes !== 0) {
rval += minutes + "M";
}
if (secs === 0 && this._nanos === 0 && rval.length > 2) {
return rval;
}
if (secs < 0 && this._nanos > 0) {
if (secs === -1) {
rval += '-0';
} else {
rval += secs + 1;
}
} else {
rval += secs;
}
if (this._nanos > 0) {
rval += '.';
var nanoString;
if (secs < 0) {
nanoString = "" + (2 * LocalTime.NANOS_PER_SECOND - this._nanos);
} else {
nanoString = "" + (LocalTime.NANOS_PER_SECOND + this._nanos);
}
nanoString = nanoString.slice(1, nanoString.length);
rval += nanoString;
while (rval.charAt(rval.length - 1) === '0') {
rval = rval.slice(0, rval.length - 1);
}
}
rval += 'S';
return rval;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return Duration;
}(TemporalAmount);
function _init$n() {
Duration.ZERO = new Duration(0, 0);
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE.md in the root directory of this source tree)
*/var YearConstants = function YearConstants() {};
function _init$m() {
YearConstants.MIN_VALUE = -999999;
YearConstants.MAX_VALUE = 999999;
}
var ChronoUnit = function (_TemporalUnit) {
_inheritsLoose(ChronoUnit, _TemporalUnit);
function ChronoUnit(name, estimatedDuration) {
var _this;
_this = _TemporalUnit.call(this) || this;
_this._name = name;
_this._duration = estimatedDuration;
return _this;
}
var _proto = ChronoUnit.prototype;
_proto.duration = function duration() {
return this._duration;
};
_proto.isDurationEstimated = function isDurationEstimated() {
return this.isDateBased() || this === ChronoUnit.FOREVER;
};
_proto.isDateBased = function isDateBased() {
return this.compareTo(ChronoUnit.DAYS) >= 0 && this !== ChronoUnit.FOREVER;
};
_proto.isTimeBased = function isTimeBased() {
return this.compareTo(ChronoUnit.DAYS) < 0;
};
_proto.isSupportedBy = function isSupportedBy(temporal) {
if (this === ChronoUnit.FOREVER) {
return false;
}
try {
temporal.plus(1, this);
return true;
} catch (e) {
try {
temporal.plus(-1, this);
return true;
} catch (e2) {
return false;
}
}
};
_proto.addTo = function addTo(temporal, amount) {
return temporal.plus(amount, this);
};
_proto.between = function between(temporal1, temporal2) {
return temporal1.until(temporal2, this);
};
_proto.toString = function toString() {
return this._name;
};
_proto.compareTo = function compareTo(other) {
return this.duration().compareTo(other.duration());
};
return ChronoUnit;
}(TemporalUnit);
function _init$l() {
ChronoUnit.NANOS = new ChronoUnit('Nanos', Duration.ofNanos(1));
ChronoUnit.MICROS = new ChronoUnit('Micros', Duration.ofNanos(1000));
ChronoUnit.MILLIS = new ChronoUnit('Millis', Duration.ofNanos(1000000));
ChronoUnit.SECONDS = new ChronoUnit('Seconds', Duration.ofSeconds(1));
ChronoUnit.MINUTES = new ChronoUnit('Minutes', Duration.ofSeconds(60));
ChronoUnit.HOURS = new ChronoUnit('Hours', Duration.ofSeconds(3600));
ChronoUnit.HALF_DAYS = new ChronoUnit('HalfDays', Duration.ofSeconds(43200));
ChronoUnit.DAYS = new ChronoUnit('Days', Duration.ofSeconds(86400));
ChronoUnit.WEEKS = new ChronoUnit('Weeks', Duration.ofSeconds(7 * 86400));
ChronoUnit.MONTHS = new ChronoUnit('Months', Duration.ofSeconds(31556952 / 12));
ChronoUnit.YEARS = new ChronoUnit('Years', Duration.ofSeconds(31556952));
ChronoUnit.DECADES = new ChronoUnit('Decades', Duration.ofSeconds(31556952 * 10));
ChronoUnit.CENTURIES = new ChronoUnit('Centuries', Duration.ofSeconds(31556952 * 100));
ChronoUnit.MILLENNIA = new ChronoUnit('Millennia', Duration.ofSeconds(31556952 * 1000));
ChronoUnit.ERAS = new ChronoUnit('Eras', Duration.ofSeconds(31556952 * (YearConstants.MAX_VALUE + 1)));
ChronoUnit.FOREVER = new ChronoUnit('Forever', Duration.ofSeconds(MathUtil.MAX_SAFE_INTEGER, 999999999));
}
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var TemporalField = function () {
function TemporalField() {}
var _proto = TemporalField.prototype;
_proto.isDateBased = function isDateBased() {
abstractMethodFail('isDateBased');
};
_proto.isTimeBased = function isTimeBased() {
abstractMethodFail('isTimeBased');
};
_proto.baseUnit = function baseUnit() {
abstractMethodFail('baseUnit');
};
_proto.rangeUnit = function rangeUnit() {
abstractMethodFail('rangeUnit');
};
_proto.range = function range() {
abstractMethodFail('range');
};
_proto.rangeRefinedBy = function rangeRefinedBy(temporal) {
abstractMethodFail('rangeRefinedBy');
};
_proto.getFrom = function getFrom(temporal) {
abstractMethodFail('getFrom');
};
_proto.adjustInto = function adjustInto(temporal, newValue) {
abstractMethodFail('adjustInto');
};
_proto.isSupportedBy = function isSupportedBy(temporal) {
abstractMethodFail('isSupportedBy');
};
_proto.displayName = function displayName() {
abstractMethodFail('displayName');
};
_proto.equals = function equals(other) {
abstractMethodFail('equals');
};
_proto.name = function name() {
abstractMethodFail('name');
};
return TemporalField;
}();
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ValueRange = function () {
function ValueRange(minSmallest, minLargest, maxSmallest, maxLargest) {
assert(!(minSmallest > minLargest), "Smallest minimum value '" + minSmallest + "' must be less than largest minimum value '" + minLargest + "'", IllegalArgumentException);
assert(!(maxSmallest > maxLargest), "Smallest maximum value '" + maxSmallest + "' must be less than largest maximum value '" + maxLargest + "'", IllegalArgumentException);
assert(!(minLargest > maxLargest), "Minimum value '" + minLargest + "' must be less than maximum value '" + maxLargest + "'", IllegalArgumentException);
this._minSmallest = minSmallest;
this._minLargest = minLargest;
this._maxLargest = maxLargest;
this._maxSmallest = maxSmallest;
}
var _proto = ValueRange.prototype;
_proto.isFixed = function isFixed() {
return this._minSmallest === this._minLargest && this._maxSmallest === this._maxLargest;
};
_proto.minimum = function minimum() {
return this._minSmallest;
};
_proto.largestMinimum = function largestMinimum() {
return this._minLargest;
};
_proto.maximum = function maximum() {
return this._maxLargest;
};
_proto.smallestMaximum = function smallestMaximum() {
return this._maxSmallest;
};
_proto.isValidValue = function isValidValue(value) {
return this.minimum() <= value && value <= this.maximum();
};
_proto.checkValidValue = function checkValidValue(value, field) {
var msg;
if (!this.isValidValue(value)) {
if (field != null) {
msg = "Invalid value for " + field + " (valid values " + this.toString() + "): " + value;
} else {
msg = "Invalid value (valid values " + this.toString() + "): " + value;
}
return assert(false, msg, DateTimeException);
}
return value;
};
_proto.checkValidIntValue = function checkValidIntValue(value, field) {
if (this.isValidIntValue(value) === false) {
throw new DateTimeException("Invalid int value for " + field + ": " + value);
}
return value;
};
_proto.isValidIntValue = function isValidIntValue(value) {
return this.isIntValue() && this.isValidValue(value);
};
_proto.isIntValue = function isIntValue() {
return this.minimum() >= MathUtil.MIN_SAFE_INTEGER && this.maximum() <= MathUtil.MAX_SAFE_INTEGER;
};
_proto.equals = function equals(other) {
if (other === this) {
return true;
}
if (other instanceof ValueRange) {
return this._minSmallest === other._minSmallest && this._minLargest === other._minLargest && this._maxSmallest === other._maxSmallest && this._maxLargest === other._maxLargest;
}
return false;
};
_proto.hashCode = function hashCode() {
return MathUtil.hashCode(this._minSmallest, this._minLargest, this._maxSmallest, this._maxLargest);
};
_proto.toString = function toString() {
var str = this.minimum() + (this.minimum() !== this.largestMinimum() ? "/" + this.largestMinimum() : '');
str += ' - ';
str += this.smallestMaximum() + (this.smallestMaximum() !== this.maximum() ? "/" + this.maximum() : '');
return str;
};
ValueRange.of = function of() {
if (arguments.length === 2) {
return new ValueRange(arguments[0], arguments[0], arguments[1], arguments[1]);
} else if (arguments.length === 3) {
return new ValueRange(arguments[0], arguments[0], arguments[1], arguments[2]);
} else if (arguments.length === 4) {
return new ValueRange(arguments[0], arguments[1], arguments[2], arguments[3]);
} else {
return assert(false, "Invalid number of arguments " + arguments.length, IllegalArgumentException);
}
};
return ValueRange;
}();
var ChronoField = function (_TemporalField) {
_inheritsLoose(ChronoField, _TemporalField);
ChronoField.byName = function byName(fieldName) {
for (var prop in ChronoField) {
if (ChronoField[prop]) {
if (ChronoField[prop] instanceof ChronoField && ChronoField[prop].name() === fieldName) {
return ChronoField[prop];
}
}
}
};
function ChronoField(name, baseUnit, rangeUnit, range) {
var _this;
_this = _TemporalField.call(this) || this;
_this._name = name;
_this._baseUnit = baseUnit;
_this._rangeUnit = rangeUnit;
_this._range = range;
return _this;
}
var _proto = ChronoField.prototype;
_proto.name = function name() {
return this._name;
};
_proto.baseUnit = function baseUnit() {
return this._baseUnit;
};
_proto.rangeUnit = function rangeUnit() {
return this._rangeUnit;
};
_proto.range = function range() {
return this._range;
};
_proto.displayName = function displayName() {
return this.toString();
};
_proto.checkValidValue = function checkValidValue(value) {
return this.range().checkValidValue(value, this);
};
_proto.checkValidIntValue = function checkValidIntValue(value) {
return this.range().checkValidIntValue(value, this);
};
_proto.isDateBased = function isDateBased() {
var dateBased = this === ChronoField.DAY_OF_WEEK || this === ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH || this === ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR || this === ChronoField.DAY_OF_MONTH || this === ChronoField.DAY_OF_YEAR || this === ChronoField.EPOCH_DAY || this === ChronoField.ALIGNED_WEEK_OF_MONTH || this === ChronoField.ALIGNED_WEEK_OF_YEAR || this === ChronoField.MONTH_OF_YEAR || this === ChronoField.PROLEPTIC_MONTH || this === ChronoField.YEAR_OF_ERA || this === ChronoField.YEAR || this === ChronoField.ERA;
return dateBased;
};
_proto.isTimeBased = function isTimeBased() {
var timeBased = this === ChronoField.NANO_OF_SECOND || this === ChronoField.NANO_OF_DAY || this === ChronoField.MICRO_OF_SECOND || this === ChronoField.MICRO_OF_DAY || this === ChronoField.MILLI_OF_SECOND || this === ChronoField.MILLI_OF_DAY || this === ChronoField.SECOND_OF_MINUTE || this === ChronoField.SECOND_OF_DAY || this === ChronoField.MINUTE_OF_HOUR || this === ChronoField.MINUTE_OF_DAY || this === ChronoField.HOUR_OF_AMPM || this === ChronoField.CLOCK_HOUR_OF_AMPM || this === ChronoField.HOUR_OF_DAY || this === ChronoField.CLOCK_HOUR_OF_DAY || this === ChronoField.AMPM_OF_DAY;
return timeBased;
};
_proto.rangeRefinedBy = function rangeRefinedBy(temporal) {
return temporal.range(this);
};
_proto.getFrom = function getFrom(temporal) {
return temporal.getLong(this);
};
_proto.toString = function toString() {
return this.name();
};
_proto.equals = function equals(other) {
return this === other;
};
_proto.adjustInto = function adjustInto(temporal, newValue) {
return temporal.with(this, newValue);
};
_proto.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(this);
};
return ChronoField;
}(TemporalField);
function _init$k() {
ChronoField.NANO_OF_SECOND = new ChronoField('NanoOfSecond', ChronoUnit.NANOS, ChronoUnit.SECONDS, ValueRange.of(0, 999999999));
ChronoField.NANO_OF_DAY = new ChronoField('NanoOfDay', ChronoUnit.NANOS, ChronoUnit.DAYS, ValueRange.of(0, 86400 * 1000000000 - 1));
ChronoField.MICRO_OF_SECOND = new ChronoField('MicroOfSecond', ChronoUnit.MICROS, ChronoUnit.SECONDS, ValueRange.of(0, 999999));
ChronoField.MICRO_OF_DAY = new ChronoField('MicroOfDay', ChronoUnit.MICROS, ChronoUnit.DAYS, ValueRange.of(0, 86400 * 1000000 - 1));
ChronoField.MILLI_OF_SECOND = new ChronoField('MilliOfSecond', ChronoUnit.MILLIS, ChronoUnit.SECONDS, ValueRange.of(0, 999));
ChronoField.MILLI_OF_DAY = new ChronoField('MilliOfDay', ChronoUnit.MILLIS, ChronoUnit.DAYS, ValueRange.of(0, 86400 * 1000 - 1));
ChronoField.SECOND_OF_MINUTE = new ChronoField('SecondOfMinute', ChronoUnit.SECONDS, ChronoUnit.MINUTES, ValueRange.of(0, 59));
ChronoField.SECOND_OF_DAY = new ChronoField('SecondOfDay', ChronoUnit.SECONDS, ChronoUnit.DAYS, ValueRange.of(0, 86400 - 1));
ChronoField.MINUTE_OF_HOUR = new ChronoField('MinuteOfHour', ChronoUnit.MINUTES, ChronoUnit.HOURS, ValueRange.of(0, 59));
ChronoField.MINUTE_OF_DAY = new ChronoField('MinuteOfDay', ChronoUnit.MINUTES, ChronoUnit.DAYS, ValueRange.of(0, 24 * 60 - 1));
ChronoField.HOUR_OF_AMPM = new ChronoField('HourOfAmPm', ChronoUnit.HOURS, ChronoUnit.HALF_DAYS, ValueRange.of(0, 11));
ChronoField.CLOCK_HOUR_OF_AMPM = new ChronoField('ClockHourOfAmPm', ChronoUnit.HOURS, ChronoUnit.HALF_DAYS, ValueRange.of(1, 12));
ChronoField.HOUR_OF_DAY = new ChronoField('HourOfDay', ChronoUnit.HOURS, ChronoUnit.DAYS, ValueRange.of(0, 23));
ChronoField.CLOCK_HOUR_OF_DAY = new ChronoField('ClockHourOfDay', ChronoUnit.HOURS, ChronoUnit.DAYS, ValueRange.of(1, 24));
ChronoField.AMPM_OF_DAY = new ChronoField('AmPmOfDay', ChronoUnit.HALF_DAYS, ChronoUnit.DAYS, ValueRange.of(0, 1));
ChronoField.DAY_OF_WEEK = new ChronoField('DayOfWeek', ChronoUnit.DAYS, ChronoUnit.WEEKS, ValueRange.of(1, 7));
ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH = new ChronoField('AlignedDayOfWeekInMonth', ChronoUnit.DAYS, ChronoUnit.WEEKS, ValueRange.of(1, 7));
ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR = new ChronoField('AlignedDayOfWeekInYear', ChronoUnit.DAYS, ChronoUnit.WEEKS, ValueRange.of(1, 7));
ChronoField.DAY_OF_MONTH = new ChronoField('DayOfMonth', ChronoUnit.DAYS, ChronoUnit.MONTHS, ValueRange.of(1, 28, 31), 'day');
ChronoField.DAY_OF_YEAR = new ChronoField('DayOfYear', ChronoUnit.DAYS, ChronoUnit.YEARS, ValueRange.of(1, 365, 366));
ChronoField.EPOCH_DAY = new ChronoField('EpochDay', ChronoUnit.DAYS, ChronoUnit.FOREVER, ValueRange.of(-365961662, 364522971));
ChronoField.ALIGNED_WEEK_OF_MONTH = new ChronoField('AlignedWeekOfMonth', ChronoUnit.WEEKS, ChronoUnit.MONTHS, ValueRange.of(1, 4, 5));
ChronoField.ALIGNED_WEEK_OF_YEAR = new ChronoField('AlignedWeekOfYear', ChronoUnit.WEEKS, ChronoUnit.YEARS, ValueRange.of(1, 53));
ChronoField.MONTH_OF_YEAR = new ChronoField('MonthOfYear', ChronoUnit.MONTHS, ChronoUnit.YEARS, ValueRange.of(1, 12), 'month');
ChronoField.PROLEPTIC_MONTH = new ChronoField('ProlepticMonth', ChronoUnit.MONTHS, ChronoUnit.FOREVER, ValueRange.of(YearConstants.MIN_VALUE * 12, YearConstants.MAX_VALUE * 12 + 11));
ChronoField.YEAR_OF_ERA = new ChronoField('YearOfEra', ChronoUnit.YEARS, ChronoUnit.FOREVER, ValueRange.of(1, YearConstants.MAX_VALUE, YearConstants.MAX_VALUE + 1));
ChronoField.YEAR = new ChronoField('Year', ChronoUnit.YEARS, ChronoUnit.FOREVER, ValueRange.of(YearConstants.MIN_VALUE, YearConstants.MAX_VALUE), 'year');
ChronoField.ERA = new ChronoField('Era', ChronoUnit.ERAS, ChronoUnit.FOREVER, ValueRange.of(0, 1));
ChronoField.INSTANT_SECONDS = new ChronoField('InstantSeconds', ChronoUnit.SECONDS, ChronoUnit.FOREVER, ValueRange.of(MIN_SAFE_INTEGER, MAX_SAFE_INTEGER));
ChronoField.OFFSET_SECONDS = new ChronoField('OffsetSeconds', ChronoUnit.SECONDS, ChronoUnit.FOREVER, ValueRange.of(-18 * 3600, 18 * 3600));
}
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var TemporalQueries = function () {
function TemporalQueries() {}
TemporalQueries.zoneId = function zoneId() {
return TemporalQueries.ZONE_ID;
};
TemporalQueries.chronology = function chronology() {
return TemporalQueries.CHRONO;
};
TemporalQueries.precision = function precision() {
return TemporalQueries.PRECISION;
};
TemporalQueries.zone = function zone() {
return TemporalQueries.ZONE;
};
TemporalQueries.offset = function offset() {
return TemporalQueries.OFFSET;
};
TemporalQueries.localDate = function localDate() {
return TemporalQueries.LOCAL_DATE;
};
TemporalQueries.localTime = function localTime() {
return TemporalQueries.LOCAL_TIME;
};
return TemporalQueries;
}();
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var TemporalAccessor = function () {
function TemporalAccessor() {}
var _proto = TemporalAccessor.prototype;
_proto.query = function query(_query) {
if (_query === TemporalQueries.zoneId() || _query === TemporalQueries.chronology() || _query === TemporalQueries.precision()) {
return null;
}
return _query.queryFrom(this);
};
_proto.get = function get(field) {
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
abstractMethodFail('getLong');
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
if (this.isSupported(field)) {
return field.range();
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.rangeRefinedBy(this);
};
_proto.isSupported = function isSupported(field) {
abstractMethodFail('isSupported');
};
return TemporalAccessor;
}();
var TemporalQuery = function (_Enum) {
_inheritsLoose(TemporalQuery, _Enum);
function TemporalQuery() {
return _Enum.apply(this, arguments) || this;
}
var _proto = TemporalQuery.prototype;
_proto.queryFrom = function queryFrom(temporal) {
abstractMethodFail('queryFrom');
};
return TemporalQuery;
}(Enum);
function createTemporalQuery(name, queryFromFunction) {
var ExtendedTemporalQuery = function (_TemporalQuery) {
_inheritsLoose(ExtendedTemporalQuery, _TemporalQuery);
function ExtendedTemporalQuery() {
return _TemporalQuery.apply(this, arguments) || this;
}
return ExtendedTemporalQuery;
}(TemporalQuery);
ExtendedTemporalQuery.prototype.queryFrom = queryFromFunction;
return new ExtendedTemporalQuery(name);
}
var DayOfWeek = function (_TemporalAccessor) {
_inheritsLoose(DayOfWeek, _TemporalAccessor);
function DayOfWeek(ordinal, name) {
var _this;
_this = _TemporalAccessor.call(this) || this;
_this._ordinal = ordinal;
_this._name = name;
return _this;
}
var _proto = DayOfWeek.prototype;
_proto.ordinal = function ordinal() {
return this._ordinal;
};
_proto.name = function name() {
return this._name;
};
DayOfWeek.values = function values() {
return ENUMS.slice();
};
DayOfWeek.valueOf = function valueOf(name) {
var ordinal = 0;
for (ordinal; ordinal < ENUMS.length; ordinal++) {
if (ENUMS[ordinal].name() === name) {
break;
}
}
return DayOfWeek.of(ordinal + 1);
};
DayOfWeek.of = function of(dayOfWeek) {
if (dayOfWeek < 1 || dayOfWeek > 7) {
throw new DateTimeException("Invalid value for DayOfWeek: " + dayOfWeek);
}
return ENUMS[dayOfWeek - 1];
};
DayOfWeek.from = function from(temporal) {
assert(temporal != null, 'temporal', NullPointerException);
if (temporal instanceof DayOfWeek) {
return temporal;
}
try {
return DayOfWeek.of(temporal.get(ChronoField.DAY_OF_WEEK));
} catch (ex) {
if (ex instanceof DateTimeException) {
throw new DateTimeException("Unable to obtain DayOfWeek from TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''), ex);
} else {
throw ex;
}
}
};
_proto.value = function value() {
return this._ordinal + 1;
};
_proto.displayName = function displayName(style, locale) {
throw new IllegalArgumentException('Pattern using (localized) text not implemented yet!');
};
_proto.isSupported = function isSupported(field) {
if (field instanceof ChronoField) {
return field === ChronoField.DAY_OF_WEEK;
}
return field != null && field.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field === ChronoField.DAY_OF_WEEK) {
return field.range();
} else if (field instanceof ChronoField) {
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.rangeRefinedBy(this);
};
_proto.get = function get(field) {
if (field === ChronoField.DAY_OF_WEEK) {
return this.value();
}
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
if (field === ChronoField.DAY_OF_WEEK) {
return this.value();
} else if (field instanceof ChronoField) {
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.plus = function plus(days) {
var amount = MathUtil.floorMod(days, 7);
return ENUMS[MathUtil.floorMod(this._ordinal + (amount + 7), 7)];
};
_proto.minus = function minus(days) {
return this.plus(-1 * MathUtil.floorMod(days, 7));
};
_proto.query = function query(_query) {
if (_query === TemporalQueries.precision()) {
return ChronoUnit.DAYS;
} else if (_query === TemporalQueries.localDate() || _query === TemporalQueries.localTime() || _query === TemporalQueries.chronology() || _query === TemporalQueries.zone() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.offset()) {
return null;
}
assert(_query != null, 'query', NullPointerException);
return _query.queryFrom(this);
};
_proto.adjustInto = function adjustInto(temporal) {
requireNonNull(temporal, 'temporal');
return temporal.with(ChronoField.DAY_OF_WEEK, this.value());
};
_proto.equals = function equals(other) {
return this === other;
};
_proto.toString = function toString() {
return this._name;
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, DayOfWeek, 'other');
return this._ordinal - other._ordinal;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return DayOfWeek;
}(TemporalAccessor);
var ENUMS;
function _init$j() {
DayOfWeek.MONDAY = new DayOfWeek(0, 'MONDAY');
DayOfWeek.TUESDAY = new DayOfWeek(1, 'TUESDAY');
DayOfWeek.WEDNESDAY = new DayOfWeek(2, 'WEDNESDAY');
DayOfWeek.THURSDAY = new DayOfWeek(3, 'THURSDAY');
DayOfWeek.FRIDAY = new DayOfWeek(4, 'FRIDAY');
DayOfWeek.SATURDAY = new DayOfWeek(5, 'SATURDAY');
DayOfWeek.SUNDAY = new DayOfWeek(6, 'SUNDAY');
DayOfWeek.FROM = createTemporalQuery('DayOfWeek.FROM', function (temporal) {
return DayOfWeek.from(temporal);
});
ENUMS = [DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY, DayOfWeek.THURSDAY, DayOfWeek.FRIDAY, DayOfWeek.SATURDAY, DayOfWeek.SUNDAY];
}
var Month = function (_TemporalAccessor) {
_inheritsLoose(Month, _TemporalAccessor);
function Month(value, name) {
var _this;
_this = _TemporalAccessor.call(this) || this;
_this._value = MathUtil.safeToInt(value);
_this._name = name;
return _this;
}
var _proto = Month.prototype;
_proto.value = function value() {
return this._value;
};
_proto.ordinal = function ordinal() {
return this._value - 1;
};
_proto.name = function name() {
return this._name;
};
_proto.displayName = function displayName(style, locale) {
throw new IllegalArgumentException('Pattern using (localized) text not implemented yet!');
};
_proto.isSupported = function isSupported(field) {
if (null === field) {
return false;
}
if (field instanceof ChronoField) {
return field === ChronoField.MONTH_OF_YEAR;
}
return field != null && field.isSupportedBy(this);
};
_proto.get = function get(field) {
if (field === ChronoField.MONTH_OF_YEAR) {
return this.value();
}
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
if (field === ChronoField.MONTH_OF_YEAR) {
return this.value();
} else if (field instanceof ChronoField) {
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.plus = function plus(months) {
var amount = MathUtil.intMod(months, 12) + 12;
var newMonthVal = MathUtil.intMod(this.value() + amount, 12);
newMonthVal = newMonthVal === 0 ? 12 : newMonthVal;
return Month.of(newMonthVal);
};
_proto.minus = function minus(months) {
return this.plus(-1 * MathUtil.intMod(months, 12));
};
_proto.length = function length(leapYear) {
switch (this) {
case Month.FEBRUARY:
return leapYear ? 29 : 28;
case Month.APRIL:
case Month.JUNE:
case Month.SEPTEMBER:
case Month.NOVEMBER:
return 30;
default:
return 31;
}
};
_proto.minLength = function minLength() {
switch (this) {
case Month.FEBRUARY:
return 28;
case Month.APRIL:
case Month.JUNE:
case Month.SEPTEMBER:
case Month.NOVEMBER:
return 30;
default:
return 31;
}
};
_proto.maxLength = function maxLength() {
switch (this) {
case Month.FEBRUARY:
return 29;
case Month.APRIL:
case Month.JUNE:
case Month.SEPTEMBER:
case Month.NOVEMBER:
return 30;
default:
return 31;
}
};
_proto.firstDayOfYear = function firstDayOfYear(leapYear) {
var leap = leapYear ? 1 : 0;
switch (this) {
case Month.JANUARY:
return 1;
case Month.FEBRUARY:
return 32;
case Month.MARCH:
return 60 + leap;
case Month.APRIL:
return 91 + leap;
case Month.MAY:
return 121 + leap;
case Month.JUNE:
return 152 + leap;
case Month.JULY:
return 182 + leap;
case Month.AUGUST:
return 213 + leap;
case Month.SEPTEMBER:
return 244 + leap;
case Month.OCTOBER:
return 274 + leap;
case Month.NOVEMBER:
return 305 + leap;
case Month.DECEMBER:
default:
return 335 + leap;
}
};
_proto.firstMonthOfQuarter = function firstMonthOfQuarter() {
switch (this) {
case Month.JANUARY:
case Month.FEBRUARY:
case Month.MARCH:
return Month.JANUARY;
case Month.APRIL:
case Month.MAY:
case Month.JUNE:
return Month.APRIL;
case Month.JULY:
case Month.AUGUST:
case Month.SEPTEMBER:
return Month.JULY;
case Month.OCTOBER:
case Month.NOVEMBER:
case Month.DECEMBER:
default:
return Month.OCTOBER;
}
};
_proto.query = function query(_query) {
assert(_query != null, 'query() parameter must not be null', DateTimeException);
if (_query === TemporalQueries.chronology()) {
return IsoChronology.INSTANCE;
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.MONTHS;
}
return _TemporalAccessor.prototype.query.call(this, _query);
};
_proto.toString = function toString() {
switch (this) {
case Month.JANUARY:
return 'JANUARY';
case Month.FEBRUARY:
return 'FEBRUARY';
case Month.MARCH:
return 'MARCH';
case Month.APRIL:
return 'APRIL';
case Month.MAY:
return 'MAY';
case Month.JUNE:
return 'JUNE';
case Month.JULY:
return 'JULY';
case Month.AUGUST:
return 'AUGUST';
case Month.SEPTEMBER:
return 'SEPTEMBER';
case Month.OCTOBER:
return 'OCTOBER';
case Month.NOVEMBER:
return 'NOVEMBER';
case Month.DECEMBER:
return 'DECEMBER';
default:
return "unknown Month, value: " + this.value();
}
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.MONTH_OF_YEAR, this.value());
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, Month, 'other');
return this._value - other._value;
};
_proto.equals = function equals(other) {
return this === other;
};
Month.valueOf = function valueOf(name) {
var ordinal = 0;
for (ordinal; ordinal < MONTHS.length; ordinal++) {
if (MONTHS[ordinal].name() === name) {
break;
}
}
return Month.of(ordinal + 1);
};
Month.values = function values() {
return MONTHS.slice();
};
Month.of = function of(month) {
if (month < 1 || month > 12) {
assert(false, "Invalid value for MonthOfYear: " + month, DateTimeException);
}
return MONTHS[month - 1];
};
Month.from = function from(temporal) {
if (temporal instanceof Month) {
return temporal;
}
try {
return Month.of(temporal.get(ChronoField.MONTH_OF_YEAR));
} catch (ex) {
throw new DateTimeException("Unable to obtain Month from TemporalAccessor: " + temporal + " of type " + (temporal && temporal.constructor != null ? temporal.constructor.name : ''), ex);
}
};
return Month;
}(TemporalAccessor);
var MONTHS;
function _init$i() {
Month.JANUARY = new Month(1, 'JANUARY');
Month.FEBRUARY = new Month(2, 'FEBRUARY');
Month.MARCH = new Month(3, 'MARCH');
Month.APRIL = new Month(4, 'APRIL');
Month.MAY = new Month(5, 'MAY');
Month.JUNE = new Month(6, 'JUNE');
Month.JULY = new Month(7, 'JULY');
Month.AUGUST = new Month(8, 'AUGUST');
Month.SEPTEMBER = new Month(9, 'SEPTEMBER');
Month.OCTOBER = new Month(10, 'OCTOBER');
Month.NOVEMBER = new Month(11, 'NOVEMBER');
Month.DECEMBER = new Month(12, 'DECEMBER');
MONTHS = [Month.JANUARY, Month.FEBRUARY, Month.MARCH, Month.APRIL, Month.MAY, Month.JUNE, Month.JULY, Month.AUGUST, Month.SEPTEMBER, Month.OCTOBER, Month.NOVEMBER, Month.DECEMBER];
}
var PATTERN = /([-+]?)P(?:([-+]?[0-9]+)Y)?(?:([-+]?[0-9]+)M)?(?:([-+]?[0-9]+)W)?(?:([-+]?[0-9]+)D)?/;
var Period = function (_TemporalAmount) {
_inheritsLoose(Period, _TemporalAmount);
function Period(years, months, days) {
var _this;
_this = _TemporalAmount.call(this) || this;
var _years = MathUtil.safeToInt(years);
var _months = MathUtil.safeToInt(months);
var _days = MathUtil.safeToInt(days);
if (_years === 0 && _months === 0 && _days === 0) {
if (!Period.ZERO) {
_this._years = _years;
_this._months = _months;
_this._days = _days;
Period.ZERO = _assertThisInitialized(_this);
}
return Period.ZERO || _assertThisInitialized(_this);
}
_this._years = _years;
_this._months = _months;
_this._days = _days;
return _this;
}
Period.ofYears = function ofYears(years) {
return Period.create(years, 0, 0);
};
Period.ofMonths = function ofMonths(months) {
return Period.create(0, months, 0);
};
Period.ofWeeks = function ofWeeks(weeks) {
return Period.create(0, 0, MathUtil.safeMultiply(weeks, 7));
};
Period.ofDays = function ofDays(days) {
return Period.create(0, 0, days);
};
Period.of = function of(years, months, days) {
return Period.create(years, months, days);
};
Period.from = function from(amount) {
if (amount instanceof Period) {
return amount;
}
requireNonNull(amount, 'amount');
var years = 0;
var months = 0;
var days = 0;
var units = amount.units();
for (var i = 0; i < units.length; i++) {
var unit = units[i];
var unitAmount = amount.get(unit);
if (unit === ChronoUnit.YEARS) {
years = MathUtil.safeToInt(unitAmount);
} else if (unit === ChronoUnit.MONTHS) {
months = MathUtil.safeToInt(unitAmount);
} else if (unit === ChronoUnit.DAYS) {
days = MathUtil.safeToInt(unitAmount);
} else {
throw new DateTimeException("Unit must be Years, Months or Days, but was " + unit);
}
}
return Period.create(years, months, days);
};
Period.between = function between(startDate, endDate) {
requireNonNull(startDate, 'startDate');
requireNonNull(endDate, 'endDate');
requireInstance(startDate, LocalDate, 'startDate');
requireInstance(endDate, LocalDate, 'endDate');
return startDate.until(endDate);
};
Period.parse = function parse(text) {
requireNonNull(text, 'text');
try {
return Period._parse(text);
} catch (ex) {
if (ex instanceof ArithmeticException) {
throw new DateTimeParseException('Text cannot be parsed to a Period', text, 0, ex);
} else {
throw ex;
}
}
};
Period._parse = function _parse(text) {
var matches = PATTERN.exec(text);
if (matches != null) {
var negate = '-' === matches[1] ? -1 : 1;
var yearMatch = matches[2];
var monthMatch = matches[3];
var weekMatch = matches[4];
var dayMatch = matches[5];
if (yearMatch != null || monthMatch != null || weekMatch != null || dayMatch != null) {
var years = Period._parseNumber(text, yearMatch, negate);
var months = Period._parseNumber(text, monthMatch, negate);
var weeks = Period._parseNumber(text, weekMatch, negate);
var days = Period._parseNumber(text, dayMatch, negate);
days = MathUtil.safeAdd(days, MathUtil.safeMultiply(weeks, 7));
return Period.create(years, months, days);
}
}
throw new DateTimeParseException('Text cannot be parsed to a Period', text, 0);
};
Period._parseNumber = function _parseNumber(text, str, negate) {
if (str == null) {
return 0;
}
var val = MathUtil.parseInt(str);
return MathUtil.safeMultiply(val, negate);
};
Period.create = function create(years, months, days) {
return new Period(years, months, days);
};
var _proto = Period.prototype;
_proto.units = function units() {
return [ChronoUnit.YEARS, ChronoUnit.MONTHS, ChronoUnit.DAYS];
};
_proto.chronology = function chronology() {
return IsoChronology.INSTANCE;
};
_proto.get = function get(unit) {
if (unit === ChronoUnit.YEARS) {
return this._years;
}
if (unit === ChronoUnit.MONTHS) {
return this._months;
}
if (unit === ChronoUnit.DAYS) {
return this._days;
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
};
_proto.isZero = function isZero() {
return this === Period.ZERO;
};
_proto.isNegative = function isNegative() {
return this._years < 0 || this._months < 0 || this._days < 0;
};
_proto.years = function years() {
return this._years;
};
_proto.months = function months() {
return this._months;
};
_proto.days = function days() {
return this._days;
};
_proto.withYears = function withYears(years) {
if (years === this._years) {
return this;
}
return Period.create(years, this._months, this._days);
};
_proto.withMonths = function withMonths(months) {
if (months === this._months) {
return this;
}
return Period.create(this._years, months, this._days);
};
_proto.withDays = function withDays(days) {
if (days === this._days) {
return this;
}
return Period.create(this._years, this._months, days);
};
_proto.plus = function plus(amountToAdd) {
var amount = Period.from(amountToAdd);
return Period.create(MathUtil.safeAdd(this._years, amount._years), MathUtil.safeAdd(this._months, amount._months), MathUtil.safeAdd(this._days, amount._days));
};
_proto.plusYears = function plusYears(yearsToAdd) {
if (yearsToAdd === 0) {
return this;
}
return Period.create(MathUtil.safeToInt(MathUtil.safeAdd(this._years, yearsToAdd)), this._months, this._days);
};
_proto.plusMonths = function plusMonths(monthsToAdd) {
if (monthsToAdd === 0) {
return this;
}
return Period.create(this._years, MathUtil.safeToInt(MathUtil.safeAdd(this._months, monthsToAdd)), this._days);
};
_proto.plusDays = function plusDays(daysToAdd) {
if (daysToAdd === 0) {
return this;
}
return Period.create(this._years, this._months, MathUtil.safeToInt(MathUtil.safeAdd(this._days, daysToAdd)));
};
_proto.minus = function minus(amountToSubtract) {
var amount = Period.from(amountToSubtract);
return Period.create(MathUtil.safeSubtract(this._years, amount._years), MathUtil.safeSubtract(this._months, amount._months), MathUtil.safeSubtract(this._days, amount._days));
};
_proto.minusYears = function minusYears(yearsToSubtract) {
return this.plusYears(-1 * yearsToSubtract);
};
_proto.minusMonths = function minusMonths(monthsToSubtract) {
return this.plusMonths(-1 * monthsToSubtract);
};
_proto.minusDays = function minusDays(daysToSubtract) {
return this.plusDays(-1 * daysToSubtract);
};
_proto.multipliedBy = function multipliedBy(scalar) {
if (this === Period.ZERO || scalar === 1) {
return this;
}
return Period.create(MathUtil.safeMultiply(this._years, scalar), MathUtil.safeMultiply(this._months, scalar), MathUtil.safeMultiply(this._days, scalar));
};
_proto.negated = function negated() {
return this.multipliedBy(-1);
};
_proto.normalized = function normalized() {
var totalMonths = this.toTotalMonths();
var splitYears = MathUtil.intDiv(totalMonths, 12);
var splitMonths = MathUtil.intMod(totalMonths, 12);
if (splitYears === this._years && splitMonths === this._months) {
return this;
}
return Period.create(MathUtil.safeToInt(splitYears), splitMonths, this._days);
};
_proto.toTotalMonths = function toTotalMonths() {
return this._years * 12 + this._months;
};
_proto.addTo = function addTo(temporal) {
requireNonNull(temporal, 'temporal');
if (this._years !== 0) {
if (this._months !== 0) {
temporal = temporal.plus(this.toTotalMonths(), ChronoUnit.MONTHS);
} else {
temporal = temporal.plus(this._years, ChronoUnit.YEARS);
}
} else if (this._months !== 0) {
temporal = temporal.plus(this._months, ChronoUnit.MONTHS);
}
if (this._days !== 0) {
temporal = temporal.plus(this._days, ChronoUnit.DAYS);
}
return temporal;
};
_proto.subtractFrom = function subtractFrom(temporal) {
requireNonNull(temporal, 'temporal');
if (this._years !== 0) {
if (this._months !== 0) {
temporal = temporal.minus(this.toTotalMonths(), ChronoUnit.MONTHS);
} else {
temporal = temporal.minus(this._years, ChronoUnit.YEARS);
}
} else if (this._months !== 0) {
temporal = temporal.minus(this._months, ChronoUnit.MONTHS);
}
if (this._days !== 0) {
temporal = temporal.minus(this._days, ChronoUnit.DAYS);
}
return temporal;
};
_proto.equals = function equals(obj) {
if (this === obj) {
return true;
}
if (obj instanceof Period) {
var other = obj;
return this._years === other._years && this._months === other._months && this._days === other._days;
}
return false;
};
_proto.hashCode = function hashCode() {
return MathUtil.hashCode(this._years, this._months, this._days);
};
_proto.toString = function toString() {
if (this === Period.ZERO) {
return 'P0D';
} else {
var buf = 'P';
if (this._years !== 0) {
buf += this._years + "Y";
}
if (this._months !== 0) {
buf += this._months + "M";
}
if (this._days !== 0) {
buf += this._days + "D";
}
return buf;
}
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return Period;
}(TemporalAmount);
function _init$h() {
Period.ofDays(0);
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var ParsePosition = function () {
function ParsePosition(index) {
this._index = index;
this._errorIndex = -1;
}
var _proto = ParsePosition.prototype;
_proto.getIndex = function getIndex() {
return this._index;
};
_proto.setIndex = function setIndex(index) {
this._index = index;
};
_proto.getErrorIndex = function getErrorIndex() {
return this._errorIndex;
};
_proto.setErrorIndex = function setErrorIndex(errorIndex) {
this._errorIndex = errorIndex;
};
return ParsePosition;
}();
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var EnumMap = function () {
function EnumMap() {
this._map = {};
}
var _proto = EnumMap.prototype;
_proto.putAll = function putAll(otherMap) {
for (var key in otherMap._map) {
this._map[key] = otherMap._map[key];
}
return this;
};
_proto.containsKey = function containsKey(key) {
return this._map.hasOwnProperty(key.name()) && this.get(key) !== undefined;
};
_proto.get = function get(key) {
return this._map[key.name()];
};
_proto.put = function put(key, val) {
return this.set(key, val);
};
_proto.set = function set(key, val) {
this._map[key.name()] = val;
return this;
};
_proto.retainAll = function retainAll(keyList) {
var map = {};
for (var i = 0; i < keyList.length; i++) {
var key = keyList[i].name();
map[key] = this._map[key];
}
this._map = map;
return this;
};
_proto.remove = function remove(key) {
var keyName = key.name();
var val = this._map[keyName];
this._map[keyName] = undefined;
return val;
};
_proto.keySet = function keySet() {
return this._map;
};
_proto.clear = function clear() {
this._map = {};
};
return EnumMap;
}();
var ResolverStyle = function (_Enum) {
_inheritsLoose(ResolverStyle, _Enum);
function ResolverStyle() {
return _Enum.apply(this, arguments) || this;
}
return ResolverStyle;
}(Enum);
ResolverStyle.STRICT = new ResolverStyle('STRICT');
ResolverStyle.SMART = new ResolverStyle('SMART');
ResolverStyle.LENIENT = new ResolverStyle('LENIENT');
var Temporal = function (_TemporalAccessor) {
_inheritsLoose(Temporal, _TemporalAccessor);
function Temporal() {
return _TemporalAccessor.apply(this, arguments) || this;
}
var _proto = Temporal.prototype;
_proto.isSupported = function isSupported(fieldOrUnit) {
abstractMethodFail('isSupported');
};
_proto.minus = function minus(amount, unit) {
if (arguments.length < 2) {
return this._minusAmount(amount);
} else {
return this._minusUnit(amount, unit);
}
};
_proto._minusAmount = function _minusAmount(amount) {
requireNonNull(amount, 'amount');
requireInstance(amount, TemporalAmount, 'amount');
return amount.subtractFrom(this);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
requireNonNull(amountToSubtract, 'amountToSubtract');
requireNonNull(unit, 'unit');
requireInstance(unit, TemporalUnit, 'unit');
return this._plusUnit(-amountToSubtract, unit);
};
_proto.plus = function plus(amount, unit) {
if (arguments.length < 2) {
return this._plusAmount(amount);
} else {
return this._plusUnit(amount, unit);
}
};
_proto._plusAmount = function _plusAmount(amount) {
requireNonNull(amount, 'amount');
requireInstance(amount, TemporalAmount, 'amount');
return amount.addTo(this);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
abstractMethodFail('_plusUnit');
};
_proto.until = function until(endTemporal, unit) {
abstractMethodFail('until');
};
_proto.with = function _with(adjusterOrField, newValue) {
if (arguments.length < 2) {
return this._withAdjuster(adjusterOrField);
} else {
return this._withField(adjusterOrField, newValue);
}
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster, 'adjuster');
assert(typeof adjuster.adjustInto === 'function', 'adjuster must be a TemporalAdjuster', IllegalArgumentException);
return adjuster.adjustInto(this);
};
_proto._withField = function _withField(field, newValue) {
abstractMethodFail('_withField');
};
return Temporal;
}(TemporalAccessor);
if (typeof Symbol !== 'undefined' && Symbol.toPrimitive) {
Temporal.prototype[Symbol.toPrimitive] = function (hint) {
if (hint !== 'number') {
return this.toString();
}
throw new TypeError('A conversion from Temporal to a number is not allowed. ' + 'To compare use the methods .equals(), .compareTo(), .isBefore() ' + 'or one that is more suitable to your use case.');
};
}
var ChronoLocalDate = function (_Temporal) {
_inheritsLoose(ChronoLocalDate, _Temporal);
function ChronoLocalDate() {
return _Temporal.apply(this, arguments) || this;
}
var _proto = ChronoLocalDate.prototype;
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit.isDateBased();
} else if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isDateBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.query = function query(_query) {
if (_query === TemporalQueries.chronology()) {
return this.chronology();
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.DAYS;
} else if (_query === TemporalQueries.localDate()) {
return LocalDate.ofEpochDay(this.toEpochDay());
} else if (_query === TemporalQueries.localTime() || _query === TemporalQueries.zone() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.offset()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.EPOCH_DAY, this.toEpochDay());
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return formatter.format(this);
};
return ChronoLocalDate;
}(Temporal);
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var StringUtil = function () {
function StringUtil() {}
StringUtil.startsWith = function startsWith(text, pattern) {
return text.indexOf(pattern) === 0;
};
StringUtil.hashCode = function hashCode(text) {
var len = text.length;
if (len === 0) {
return 0;
}
var hash = 0;
for (var i = 0; i < len; i++) {
var chr = text.charCodeAt(i);
hash = (hash << 5) - hash + chr;
hash |= 0;
}
return MathUtil.smi(hash);
};
return StringUtil;
}();
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ZoneId = function () {
function ZoneId() {}
ZoneId.systemDefault = function systemDefault() {
throw new DateTimeException('not supported operation');
};
ZoneId.getAvailableZoneIds = function getAvailableZoneIds() {
throw new DateTimeException('not supported operation');
};
ZoneId.of = function of(zoneId) {
throw new DateTimeException("not supported operation" + zoneId);
};
ZoneId.ofOffset = function ofOffset(prefix, offset) {
throw new DateTimeException("not supported operation" + prefix + offset);
};
ZoneId.from = function from(temporal) {
throw new DateTimeException("not supported operation" + temporal);
};
var _proto = ZoneId.prototype;
_proto.id = function id() {
abstractMethodFail('ZoneId.id');
};
_proto.rules = function rules() {
abstractMethodFail('ZoneId.rules');
};
_proto.normalized = function normalized() {
var rules = this.rules();
if (rules.isFixedOffset()) {
return rules.offset(Instant.EPOCH);
}
return this;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof ZoneId) {
return this.id() === other.id();
}
return false;
};
_proto.hashCode = function hashCode() {
return StringUtil.hashCode(this.id());
};
_proto.toString = function toString() {
return this.id();
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return ZoneId;
}();
var ZoneRules = function () {
function ZoneRules() {}
ZoneRules.of = function of(offset) {
requireNonNull(offset, 'offset');
return new Fixed(offset);
};
var _proto = ZoneRules.prototype;
_proto.isFixedOffset = function isFixedOffset() {
abstractMethodFail('ZoneRules.isFixedOffset');
};
_proto.offset = function offset(instantOrLocalDateTime) {
if (instantOrLocalDateTime instanceof Instant) {
return this.offsetOfInstant(instantOrLocalDateTime);
} else {
return this.offsetOfLocalDateTime(instantOrLocalDateTime);
}
};
_proto.offsetOfInstant = function offsetOfInstant(instant) {
abstractMethodFail('ZoneRules.offsetInstant');
};
_proto.offsetOfEpochMilli = function offsetOfEpochMilli(epochMilli) {
abstractMethodFail('ZoneRules.offsetOfEpochMilli');
};
_proto.offsetOfLocalDateTime = function offsetOfLocalDateTime(localDateTime) {
abstractMethodFail('ZoneRules.offsetLocalDateTime');
};
_proto.validOffsets = function validOffsets(localDateTime) {
abstractMethodFail('ZoneRules.validOffsets');
};
_proto.transition = function transition(localDateTime) {
abstractMethodFail('ZoneRules.transition');
};
_proto.standardOffset = function standardOffset(instant) {
abstractMethodFail('ZoneRules.standardOffset');
};
_proto.daylightSavings = function daylightSavings(instant) {
abstractMethodFail('ZoneRules.daylightSavings');
};
_proto.isDaylightSavings = function isDaylightSavings(instant) {
abstractMethodFail('ZoneRules.isDaylightSavings');
};
_proto.isValidOffset = function isValidOffset(localDateTime, offset) {
abstractMethodFail('ZoneRules.isValidOffset');
};
_proto.nextTransition = function nextTransition(instant) {
abstractMethodFail('ZoneRules.nextTransition');
};
_proto.previousTransition = function previousTransition(instant) {
abstractMethodFail('ZoneRules.previousTransition');
};
_proto.transitions = function transitions() {
abstractMethodFail('ZoneRules.transitions');
};
_proto.transitionRules = function transitionRules() {
abstractMethodFail('ZoneRules.transitionRules');
};
_proto.toString = function toString() {
abstractMethodFail('ZoneRules.toString');
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return ZoneRules;
}();
var Fixed = function (_ZoneRules) {
_inheritsLoose(Fixed, _ZoneRules);
function Fixed(offset) {
var _this;
_this = _ZoneRules.call(this) || this;
_this._offset = offset;
return _this;
}
var _proto2 = Fixed.prototype;
_proto2.isFixedOffset = function isFixedOffset() {
return true;
};
_proto2.offsetOfInstant = function offsetOfInstant() {
return this._offset;
};
_proto2.offsetOfEpochMilli = function offsetOfEpochMilli() {
return this._offset;
};
_proto2.offsetOfLocalDateTime = function offsetOfLocalDateTime() {
return this._offset;
};
_proto2.validOffsets = function validOffsets() {
return [this._offset];
};
_proto2.transition = function transition() {
return null;
};
_proto2.standardOffset = function standardOffset() {
return this._offset;
};
_proto2.daylightSavings = function daylightSavings() {
return Duration.ZERO;
};
_proto2.isDaylightSavings = function isDaylightSavings() {
return false;
};
_proto2.isValidOffset = function isValidOffset(localDateTime, offset) {
return this._offset.equals(offset);
};
_proto2.nextTransition = function nextTransition() {
return null;
};
_proto2.previousTransition = function previousTransition() {
return null;
};
_proto2.transitions = function transitions() {
return [];
};
_proto2.transitionRules = function transitionRules() {
return [];
};
_proto2.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof Fixed) {
return this._offset.equals(other._offset);
}
return false;
};
_proto2.toString = function toString() {
return "FixedRules:" + this._offset.toString();
};
return Fixed;
}(ZoneRules);
var SECONDS_CACHE = {};
var ID_CACHE = {};
var ZoneOffset = function (_ZoneId) {
_inheritsLoose(ZoneOffset, _ZoneId);
function ZoneOffset(totalSeconds) {
var _this;
_this = _ZoneId.call(this) || this;
ZoneOffset._validateTotalSeconds(totalSeconds);
_this._totalSeconds = MathUtil.safeToInt(totalSeconds);
_this._rules = ZoneRules.of(_assertThisInitialized(_this));
_this._id = ZoneOffset._buildId(totalSeconds);
return _this;
}
var _proto = ZoneOffset.prototype;
_proto.totalSeconds = function totalSeconds() {
return this._totalSeconds;
};
_proto.id = function id() {
return this._id;
};
ZoneOffset._buildId = function _buildId(totalSeconds) {
if (totalSeconds === 0) {
return 'Z';
} else {
var absTotalSeconds = Math.abs(totalSeconds);
var absHours = MathUtil.intDiv(absTotalSeconds, LocalTime.SECONDS_PER_HOUR);
var absMinutes = MathUtil.intMod(MathUtil.intDiv(absTotalSeconds, LocalTime.SECONDS_PER_MINUTE), LocalTime.MINUTES_PER_HOUR);
var buf = "" + (totalSeconds < 0 ? '-' : '+') + (absHours < 10 ? '0' : '') + absHours + (absMinutes < 10 ? ':0' : ':') + absMinutes;
var absSeconds = MathUtil.intMod(absTotalSeconds, LocalTime.SECONDS_PER_MINUTE);
if (absSeconds !== 0) {
buf += (absSeconds < 10 ? ':0' : ':') + absSeconds;
}
return buf;
}
};
ZoneOffset._validateTotalSeconds = function _validateTotalSeconds(totalSeconds) {
if (Math.abs(totalSeconds) > ZoneOffset.MAX_SECONDS) {
throw new DateTimeException('Zone offset not in valid range: -18:00 to +18:00');
}
};
ZoneOffset._validate = function _validate(hours, minutes, seconds) {
if (hours < -18 || hours > 18) {
throw new DateTimeException("Zone offset hours not in valid range: value " + hours + " is not in the range -18 to 18");
}
if (hours > 0) {
if (minutes < 0 || seconds < 0) {
throw new DateTimeException('Zone offset minutes and seconds must be positive because hours is positive');
}
} else if (hours < 0) {
if (minutes > 0 || seconds > 0) {
throw new DateTimeException('Zone offset minutes and seconds must be negative because hours is negative');
}
} else if (minutes > 0 && seconds < 0 || minutes < 0 && seconds > 0) {
throw new DateTimeException('Zone offset minutes and seconds must have the same sign');
}
if (Math.abs(minutes) > 59) {
throw new DateTimeException("Zone offset minutes not in valid range: abs(value) " + Math.abs(minutes) + " is not in the range 0 to 59");
}
if (Math.abs(seconds) > 59) {
throw new DateTimeException("Zone offset seconds not in valid range: abs(value) " + Math.abs(seconds) + " is not in the range 0 to 59");
}
if (Math.abs(hours) === 18 && (Math.abs(minutes) > 0 || Math.abs(seconds) > 0)) {
throw new DateTimeException('Zone offset not in valid range: -18:00 to +18:00');
}
};
ZoneOffset.of = function of(offsetId) {
requireNonNull(offsetId, 'offsetId');
var offset = ID_CACHE[offsetId];
if (offset != null) {
return offset;
}
var hours, minutes, seconds;
switch (offsetId.length) {
case 2:
offsetId = offsetId[0] + "0" + offsetId[1];
case 3:
hours = ZoneOffset._parseNumber(offsetId, 1, false);
minutes = 0;
seconds = 0;
break;
case 5:
hours = ZoneOffset._parseNumber(offsetId, 1, false);
minutes = ZoneOffset._parseNumber(offsetId, 3, false);
seconds = 0;
break;
case 6:
hours = ZoneOffset._parseNumber(offsetId, 1, false);
minutes = ZoneOffset._parseNumber(offsetId, 4, true);
seconds = 0;
break;
case 7:
hours = ZoneOffset._parseNumber(offsetId, 1, false);
minutes = ZoneOffset._parseNumber(offsetId, 3, false);
seconds = ZoneOffset._parseNumber(offsetId, 5, false);
break;
case 9:
hours = ZoneOffset._parseNumber(offsetId, 1, false);
minutes = ZoneOffset._parseNumber(offsetId, 4, true);
seconds = ZoneOffset._parseNumber(offsetId, 7, true);
break;
default:
throw new DateTimeException("Invalid ID for ZoneOffset, invalid format: " + offsetId);
}
var first = offsetId[0];
if (first !== '+' && first !== '-') {
throw new DateTimeException("Invalid ID for ZoneOffset, plus/minus not found when expected: " + offsetId);
}
if (first === '-') {
return ZoneOffset.ofHoursMinutesSeconds(-hours, -minutes, -seconds);
} else {
return ZoneOffset.ofHoursMinutesSeconds(hours, minutes, seconds);
}
};
ZoneOffset._parseNumber = function _parseNumber(offsetId, pos, precededByColon) {
if (precededByColon && offsetId[pos - 1] !== ':') {
throw new DateTimeException("Invalid ID for ZoneOffset, colon not found when expected: " + offsetId);
}
var ch1 = offsetId[pos];
var ch2 = offsetId[pos + 1];
if (ch1 < '0' || ch1 > '9' || ch2 < '0' || ch2 > '9') {
throw new DateTimeException("Invalid ID for ZoneOffset, non numeric characters found: " + offsetId);
}
return (ch1.charCodeAt(0) - 48) * 10 + (ch2.charCodeAt(0) - 48);
};
ZoneOffset.ofHours = function ofHours(hours) {
return ZoneOffset.ofHoursMinutesSeconds(hours, 0, 0);
};
ZoneOffset.ofHoursMinutes = function ofHoursMinutes(hours, minutes) {
return ZoneOffset.ofHoursMinutesSeconds(hours, minutes, 0);
};
ZoneOffset.ofHoursMinutesSeconds = function ofHoursMinutesSeconds(hours, minutes, seconds) {
ZoneOffset._validate(hours, minutes, seconds);
var totalSeconds = hours * LocalTime.SECONDS_PER_HOUR + minutes * LocalTime.SECONDS_PER_MINUTE + seconds;
return ZoneOffset.ofTotalSeconds(totalSeconds);
};
ZoneOffset.ofTotalMinutes = function ofTotalMinutes(totalMinutes) {
var totalSeconds = totalMinutes * LocalTime.SECONDS_PER_MINUTE;
return ZoneOffset.ofTotalSeconds(totalSeconds);
};
ZoneOffset.ofTotalSeconds = function ofTotalSeconds(totalSeconds) {
if (totalSeconds % (15 * LocalTime.SECONDS_PER_MINUTE) === 0) {
var totalSecs = totalSeconds;
var result = SECONDS_CACHE[totalSecs];
if (result == null) {
result = new ZoneOffset(totalSeconds);
SECONDS_CACHE[totalSecs] = result;
ID_CACHE[result.id()] = result;
}
return result;
} else {
return new ZoneOffset(totalSeconds);
}
};
_proto.rules = function rules() {
return this._rules;
};
_proto.get = function get(field) {
return this.getLong(field);
};
_proto.getLong = function getLong(field) {
if (field === ChronoField.OFFSET_SECONDS) {
return this._totalSeconds;
} else if (field instanceof ChronoField) {
throw new DateTimeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.offset() || _query === TemporalQueries.zone()) {
return this;
} else if (_query === TemporalQueries.localDate() || _query === TemporalQueries.localTime() || _query === TemporalQueries.precision() || _query === TemporalQueries.chronology() || _query === TemporalQueries.zoneId()) {
return null;
}
return _query.queryFrom(this);
};
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.OFFSET_SECONDS, this._totalSeconds);
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
return other._totalSeconds - this._totalSeconds;
};
_proto.equals = function equals(obj) {
if (this === obj) {
return true;
}
if (obj instanceof ZoneOffset) {
return this._totalSeconds === obj._totalSeconds;
}
return false;
};
_proto.hashCode = function hashCode() {
return this._totalSeconds;
};
_proto.toString = function toString() {
return this._id;
};
return ZoneOffset;
}(ZoneId);
function _init$g() {
ZoneOffset.MAX_SECONDS = 18 * LocalTime.SECONDS_PER_HOUR;
ZoneOffset.UTC = ZoneOffset.ofTotalSeconds(0);
ZoneOffset.MIN = ZoneOffset.ofTotalSeconds(-ZoneOffset.MAX_SECONDS);
ZoneOffset.MAX = ZoneOffset.ofTotalSeconds(ZoneOffset.MAX_SECONDS);
}
var DateTimeBuilder = function (_TemporalAccessor) {
_inheritsLoose(DateTimeBuilder, _TemporalAccessor);
DateTimeBuilder.create = function create(field, value) {
var dtb = new DateTimeBuilder();
dtb._addFieldValue(field, value);
return dtb;
};
function DateTimeBuilder() {
var _this;
_this = _TemporalAccessor.call(this) || this;
_this.fieldValues = new EnumMap();
_this.chrono = null;
_this.zone = null;
_this.date = null;
_this.time = null;
_this.leapSecond = false;
_this.excessDays = null;
return _this;
}
var _proto = DateTimeBuilder.prototype;
_proto.getFieldValue0 = function getFieldValue0(field) {
return this.fieldValues.get(field);
};
_proto._addFieldValue = function _addFieldValue(field, value) {
requireNonNull(field, 'field');
var old = this.getFieldValue0(field);
if (old != null && old !== value) {
throw new DateTimeException("Conflict found: " + field + " " + old + " differs from " + field + " " + value + ": " + this);
}
return this._putFieldValue0(field, value);
};
_proto._putFieldValue0 = function _putFieldValue0(field, value) {
this.fieldValues.put(field, value);
return this;
};
_proto.resolve = function resolve(resolverStyle, resolverFields) {
if (resolverFields != null) {
this.fieldValues.retainAll(resolverFields);
}
this._mergeDate(resolverStyle);
this._mergeTime(resolverStyle);
this._resolveTimeInferZeroes(resolverStyle);
if (this.excessDays != null && this.excessDays.isZero() === false && this.date != null && this.time != null) {
this.date = this.date.plus(this.excessDays);
this.excessDays = Period.ZERO;
}
this._resolveInstant();
return this;
};
_proto._mergeDate = function _mergeDate(resolverStyle) {
this._checkDate(IsoChronology.INSTANCE.resolveDate(this.fieldValues, resolverStyle));
};
_proto._checkDate = function _checkDate(date) {
if (date != null) {
this._addObject(date);
for (var fieldName in this.fieldValues.keySet()) {
var field = ChronoField.byName(fieldName);
if (field) {
if (this.fieldValues.get(field) !== undefined) {
if (field.isDateBased()) {
var val1 = void 0;
try {
val1 = date.getLong(field);
} catch (ex) {
if (ex instanceof DateTimeException) {
continue;
} else {
throw ex;
}
}
var val2 = this.fieldValues.get(field);
if (val1 !== val2) {
throw new DateTimeException("Conflict found: Field " + field + " " + val1 + " differs from " + field + " " + val2 + " derived from " + date);
}
}
}
}
}
}
};
_proto._mergeTime = function _mergeTime(resolverStyle) {
if (this.fieldValues.containsKey(ChronoField.CLOCK_HOUR_OF_DAY)) {
var ch = this.fieldValues.remove(ChronoField.CLOCK_HOUR_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
if (resolverStyle === ResolverStyle.SMART && ch === 0) ; else {
ChronoField.CLOCK_HOUR_OF_DAY.checkValidValue(ch);
}
}
this._addFieldValue(ChronoField.HOUR_OF_DAY, ch === 24 ? 0 : ch);
}
if (this.fieldValues.containsKey(ChronoField.CLOCK_HOUR_OF_AMPM)) {
var _ch = this.fieldValues.remove(ChronoField.CLOCK_HOUR_OF_AMPM);
if (resolverStyle !== ResolverStyle.LENIENT) {
if (resolverStyle === ResolverStyle.SMART && _ch === 0) ; else {
ChronoField.CLOCK_HOUR_OF_AMPM.checkValidValue(_ch);
}
}
this._addFieldValue(ChronoField.HOUR_OF_AMPM, _ch === 12 ? 0 : _ch);
}
if (resolverStyle !== ResolverStyle.LENIENT) {
if (this.fieldValues.containsKey(ChronoField.AMPM_OF_DAY)) {
ChronoField.AMPM_OF_DAY.checkValidValue(this.fieldValues.get(ChronoField.AMPM_OF_DAY));
}
if (this.fieldValues.containsKey(ChronoField.HOUR_OF_AMPM)) {
ChronoField.HOUR_OF_AMPM.checkValidValue(this.fieldValues.get(ChronoField.HOUR_OF_AMPM));
}
}
if (this.fieldValues.containsKey(ChronoField.AMPM_OF_DAY) && this.fieldValues.containsKey(ChronoField.HOUR_OF_AMPM)) {
var ap = this.fieldValues.remove(ChronoField.AMPM_OF_DAY);
var hap = this.fieldValues.remove(ChronoField.HOUR_OF_AMPM);
this._addFieldValue(ChronoField.HOUR_OF_DAY, ap * 12 + hap);
}
if (this.fieldValues.containsKey(ChronoField.NANO_OF_DAY)) {
var nod = this.fieldValues.remove(ChronoField.NANO_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.NANO_OF_DAY.checkValidValue(nod);
}
this._addFieldValue(ChronoField.SECOND_OF_DAY, MathUtil.intDiv(nod, 1000000000));
this._addFieldValue(ChronoField.NANO_OF_SECOND, MathUtil.intMod(nod, 1000000000));
}
if (this.fieldValues.containsKey(ChronoField.MICRO_OF_DAY)) {
var cod = this.fieldValues.remove(ChronoField.MICRO_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.MICRO_OF_DAY.checkValidValue(cod);
}
this._addFieldValue(ChronoField.SECOND_OF_DAY, MathUtil.intDiv(cod, 1000000));
this._addFieldValue(ChronoField.MICRO_OF_SECOND, MathUtil.intMod(cod, 1000000));
}
if (this.fieldValues.containsKey(ChronoField.MILLI_OF_DAY)) {
var lod = this.fieldValues.remove(ChronoField.MILLI_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.MILLI_OF_DAY.checkValidValue(lod);
}
this._addFieldValue(ChronoField.SECOND_OF_DAY, MathUtil.intDiv(lod, 1000));
this._addFieldValue(ChronoField.MILLI_OF_SECOND, MathUtil.intMod(lod, 1000));
}
if (this.fieldValues.containsKey(ChronoField.SECOND_OF_DAY)) {
var sod = this.fieldValues.remove(ChronoField.SECOND_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.SECOND_OF_DAY.checkValidValue(sod);
}
this._addFieldValue(ChronoField.HOUR_OF_DAY, MathUtil.intDiv(sod, 3600));
this._addFieldValue(ChronoField.MINUTE_OF_HOUR, MathUtil.intMod(MathUtil.intDiv(sod, 60), 60));
this._addFieldValue(ChronoField.SECOND_OF_MINUTE, MathUtil.intMod(sod, 60));
}
if (this.fieldValues.containsKey(ChronoField.MINUTE_OF_DAY)) {
var mod = this.fieldValues.remove(ChronoField.MINUTE_OF_DAY);
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.MINUTE_OF_DAY.checkValidValue(mod);
}
this._addFieldValue(ChronoField.HOUR_OF_DAY, MathUtil.intDiv(mod, 60));
this._addFieldValue(ChronoField.MINUTE_OF_HOUR, MathUtil.intMod(mod, 60));
}
if (resolverStyle !== ResolverStyle.LENIENT) {
if (this.fieldValues.containsKey(ChronoField.MILLI_OF_SECOND)) {
ChronoField.MILLI_OF_SECOND.checkValidValue(this.fieldValues.get(ChronoField.MILLI_OF_SECOND));
}
if (this.fieldValues.containsKey(ChronoField.MICRO_OF_SECOND)) {
ChronoField.MICRO_OF_SECOND.checkValidValue(this.fieldValues.get(ChronoField.MICRO_OF_SECOND));
}
}
if (this.fieldValues.containsKey(ChronoField.MILLI_OF_SECOND) && this.fieldValues.containsKey(ChronoField.MICRO_OF_SECOND)) {
var los = this.fieldValues.remove(ChronoField.MILLI_OF_SECOND);
var cos = this.fieldValues.get(ChronoField.MICRO_OF_SECOND);
this._putFieldValue0(ChronoField.MICRO_OF_SECOND, los * 1000 + MathUtil.intMod(cos, 1000));
}
if (this.fieldValues.containsKey(ChronoField.MICRO_OF_SECOND) && this.fieldValues.containsKey(ChronoField.NANO_OF_SECOND)) {
var nos = this.fieldValues.get(ChronoField.NANO_OF_SECOND);
this._putFieldValue0(ChronoField.MICRO_OF_SECOND, MathUtil.intDiv(nos, 1000));
this.fieldValues.remove(ChronoField.MICRO_OF_SECOND);
}
if (this.fieldValues.containsKey(ChronoField.MILLI_OF_SECOND) && this.fieldValues.containsKey(ChronoField.NANO_OF_SECOND)) {
var _nos = this.fieldValues.get(ChronoField.NANO_OF_SECOND);
this._putFieldValue0(ChronoField.MILLI_OF_SECOND, MathUtil.intDiv(_nos, 1000000));
this.fieldValues.remove(ChronoField.MILLI_OF_SECOND);
}
if (this.fieldValues.containsKey(ChronoField.MICRO_OF_SECOND)) {
var _cos = this.fieldValues.remove(ChronoField.MICRO_OF_SECOND);
this._putFieldValue0(ChronoField.NANO_OF_SECOND, _cos * 1000);
} else if (this.fieldValues.containsKey(ChronoField.MILLI_OF_SECOND)) {
var _los = this.fieldValues.remove(ChronoField.MILLI_OF_SECOND);
this._putFieldValue0(ChronoField.NANO_OF_SECOND, _los * 1000000);
}
};
_proto._resolveTimeInferZeroes = function _resolveTimeInferZeroes(resolverStyle) {
var hod = this.fieldValues.get(ChronoField.HOUR_OF_DAY);
var moh = this.fieldValues.get(ChronoField.MINUTE_OF_HOUR);
var som = this.fieldValues.get(ChronoField.SECOND_OF_MINUTE);
var nos = this.fieldValues.get(ChronoField.NANO_OF_SECOND);
if (hod == null) {
return;
}
if (moh == null && (som != null || nos != null)) {
return;
}
if (moh != null && som == null && nos != null) {
return;
}
if (resolverStyle !== ResolverStyle.LENIENT) {
if (hod != null) {
if (resolverStyle === ResolverStyle.SMART && hod === 24 && (moh == null || moh === 0) && (som == null || som === 0) && (nos == null || nos === 0)) {
hod = 0;
this.excessDays = Period.ofDays(1);
}
var hodVal = ChronoField.HOUR_OF_DAY.checkValidIntValue(hod);
if (moh != null) {
var mohVal = ChronoField.MINUTE_OF_HOUR.checkValidIntValue(moh);
if (som != null) {
var somVal = ChronoField.SECOND_OF_MINUTE.checkValidIntValue(som);
if (nos != null) {
var nosVal = ChronoField.NANO_OF_SECOND.checkValidIntValue(nos);
this._addObject(LocalTime.of(hodVal, mohVal, somVal, nosVal));
} else {
this._addObject(LocalTime.of(hodVal, mohVal, somVal));
}
} else {
if (nos == null) {
this._addObject(LocalTime.of(hodVal, mohVal));
}
}
} else {
if (som == null && nos == null) {
this._addObject(LocalTime.of(hodVal, 0));
}
}
}
} else {
if (hod != null) {
var _hodVal = hod;
if (moh != null) {
if (som != null) {
if (nos == null) {
nos = 0;
}
var totalNanos = MathUtil.safeMultiply(_hodVal, 3600000000000);
totalNanos = MathUtil.safeAdd(totalNanos, MathUtil.safeMultiply(moh, 60000000000));
totalNanos = MathUtil.safeAdd(totalNanos, MathUtil.safeMultiply(som, 1000000000));
totalNanos = MathUtil.safeAdd(totalNanos, nos);
var excessDays = MathUtil.floorDiv(totalNanos, 86400000000000);
var nod = MathUtil.floorMod(totalNanos, 86400000000000);
this._addObject(LocalTime.ofNanoOfDay(nod));
this.excessDays = Period.ofDays(excessDays);
} else {
var totalSecs = MathUtil.safeMultiply(_hodVal, 3600);
totalSecs = MathUtil.safeAdd(totalSecs, MathUtil.safeMultiply(moh, 60));
var _excessDays = MathUtil.floorDiv(totalSecs, 86400);
var sod = MathUtil.floorMod(totalSecs, 86400);
this._addObject(LocalTime.ofSecondOfDay(sod));
this.excessDays = Period.ofDays(_excessDays);
}
} else {
var _excessDays2 = MathUtil.safeToInt(MathUtil.floorDiv(_hodVal, 24));
_hodVal = MathUtil.floorMod(_hodVal, 24);
this._addObject(LocalTime.of(_hodVal, 0));
this.excessDays = Period.ofDays(_excessDays2);
}
}
}
this.fieldValues.remove(ChronoField.HOUR_OF_DAY);
this.fieldValues.remove(ChronoField.MINUTE_OF_HOUR);
this.fieldValues.remove(ChronoField.SECOND_OF_MINUTE);
this.fieldValues.remove(ChronoField.NANO_OF_SECOND);
};
_proto._addObject = function _addObject(dateOrTime) {
if (dateOrTime instanceof ChronoLocalDate) {
this.date = dateOrTime;
} else if (dateOrTime instanceof LocalTime) {
this.time = dateOrTime;
}
};
_proto._resolveInstant = function _resolveInstant() {
if (this.date != null && this.time != null) {
var offsetSecs = this.fieldValues.get(ChronoField.OFFSET_SECONDS);
if (offsetSecs != null) {
var offset = ZoneOffset.ofTotalSeconds(offsetSecs);
var instant = this.date.atTime(this.time).atZone(offset).getLong(ChronoField.INSTANT_SECONDS);
this.fieldValues.put(ChronoField.INSTANT_SECONDS, instant);
} else if (this.zone != null) {
var _instant = this.date.atTime(this.time).atZone(this.zone).getLong(ChronoField.INSTANT_SECONDS);
this.fieldValues.put(ChronoField.INSTANT_SECONDS, _instant);
}
}
};
_proto.build = function build(type) {
return type.queryFrom(this);
};
_proto.isSupported = function isSupported(field) {
if (field == null) {
return false;
}
return this.fieldValues.containsKey(field) && this.fieldValues.get(field) !== undefined || this.date != null && this.date.isSupported(field) || this.time != null && this.time.isSupported(field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
var value = this.getFieldValue0(field);
if (value == null) {
if (this.date != null && this.date.isSupported(field)) {
return this.date.getLong(field);
}
if (this.time != null && this.time.isSupported(field)) {
return this.time.getLong(field);
}
throw new DateTimeException("Field not found: " + field);
}
return value;
};
_proto.query = function query(_query) {
if (_query === TemporalQueries.zoneId()) {
return this.zone;
} else if (_query === TemporalQueries.chronology()) {
return this.chrono;
} else if (_query === TemporalQueries.localDate()) {
return this.date != null ? LocalDate.from(this.date) : null;
} else if (_query === TemporalQueries.localTime()) {
return this.time;
} else if (_query === TemporalQueries.zone() || _query === TemporalQueries.offset()) {
return _query.queryFrom(this);
} else if (_query === TemporalQueries.precision()) {
return null;
}
return _query.queryFrom(this);
};
return DateTimeBuilder;
}(TemporalAccessor);
var DateTimeParseContext = function () {
function DateTimeParseContext() {
if (arguments.length === 1) {
if (arguments[0] instanceof DateTimeParseContext) {
this._constructorSelf.apply(this, arguments);
return;
} else {
this._constructorFormatter.apply(this, arguments);
}
} else {
this._constructorParam.apply(this, arguments);
}
this._caseSensitive = true;
this._strict = true;
this._parsed = [new Parsed(this)];
}
var _proto = DateTimeParseContext.prototype;
_proto._constructorParam = function _constructorParam(locale, symbols, chronology) {
this._locale = locale;
this._symbols = symbols;
this._overrideChronology = chronology;
};
_proto._constructorFormatter = function _constructorFormatter(formatter) {
this._locale = formatter.locale();
this._symbols = formatter.decimalStyle();
this._overrideChronology = formatter.chronology();
};
_proto._constructorSelf = function _constructorSelf(other) {
this._locale = other._locale;
this._symbols = other._symbols;
this._overrideChronology = other._overrideChronology;
this._overrideZone = other._overrideZone;
this._caseSensitive = other._caseSensitive;
this._strict = other._strict;
this._parsed = [new Parsed(this)];
};
_proto.copy = function copy() {
return new DateTimeParseContext(this);
};
_proto.symbols = function symbols() {
return this._symbols;
};
_proto.isStrict = function isStrict() {
return this._strict;
};
_proto.setStrict = function setStrict(strict) {
this._strict = strict;
};
_proto.locale = function locale() {
return this._locale;
};
_proto.setLocale = function setLocale(locale) {
this._locale = locale;
};
_proto.startOptional = function startOptional() {
this._parsed.push(this.currentParsed().copy());
};
_proto.endOptional = function endOptional(successful) {
if (successful) {
this._parsed.splice(this._parsed.length - 2, 1);
} else {
this._parsed.splice(this._parsed.length - 1, 1);
}
};
_proto.isCaseSensitive = function isCaseSensitive() {
return this._caseSensitive;
};
_proto.setCaseSensitive = function setCaseSensitive(caseSensitive) {
this._caseSensitive = caseSensitive;
};
_proto.subSequenceEquals = function subSequenceEquals(cs1, offset1, cs2, offset2, length) {
if (offset1 + length > cs1.length || offset2 + length > cs2.length) {
return false;
}
if (!this.isCaseSensitive()) {
cs1 = cs1.toLowerCase();
cs2 = cs2.toLowerCase();
}
for (var i = 0; i < length; i++) {
var ch1 = cs1[offset1 + i];
var ch2 = cs2[offset2 + i];
if (ch1 !== ch2) {
return false;
}
}
return true;
};
_proto.charEquals = function charEquals(ch1, ch2) {
if (this.isCaseSensitive()) {
return ch1 === ch2;
}
return this.charEqualsIgnoreCase(ch1, ch2);
};
_proto.charEqualsIgnoreCase = function charEqualsIgnoreCase(c1, c2) {
return c1 === c2 || c1.toLowerCase() === c2.toLowerCase();
};
_proto.setParsedField = function setParsedField(field, value, errorPos, successPos) {
var currentParsedFieldValues = this.currentParsed().fieldValues;
var old = currentParsedFieldValues.get(field);
currentParsedFieldValues.set(field, value);
return old != null && old !== value ? ~errorPos : successPos;
};
_proto.setParsedZone = function setParsedZone(zone) {
requireNonNull(zone, 'zone');
this.currentParsed().zone = zone;
};
_proto.getParsed = function getParsed(field) {
return this.currentParsed().fieldValues.get(field);
};
_proto.toParsed = function toParsed() {
return this.currentParsed();
};
_proto.currentParsed = function currentParsed() {
return this._parsed[this._parsed.length - 1];
};
_proto.setParsedLeapSecond = function setParsedLeapSecond() {
this.currentParsed().leapSecond = true;
};
_proto.getEffectiveChronology = function getEffectiveChronology() {
var chrono = this.currentParsed().chrono;
if (chrono == null) {
chrono = this._overrideChronology;
if (chrono == null) {
chrono = IsoChronology.INSTANCE;
}
}
return chrono;
};
return DateTimeParseContext;
}();
var Parsed = function (_Temporal) {
_inheritsLoose(Parsed, _Temporal);
function Parsed(dateTimeParseContext) {
var _this;
_this = _Temporal.call(this) || this;
_this.chrono = null;
_this.zone = null;
_this.fieldValues = new EnumMap();
_this.leapSecond = false;
_this.dateTimeParseContext = dateTimeParseContext;
return _this;
}
var _proto2 = Parsed.prototype;
_proto2.copy = function copy() {
var cloned = new Parsed();
cloned.chrono = this.chrono;
cloned.zone = this.zone;
cloned.fieldValues.putAll(this.fieldValues);
cloned.leapSecond = this.leapSecond;
cloned.dateTimeParseContext = this.dateTimeParseContext;
return cloned;
};
_proto2.toString = function toString() {
return this.fieldValues + ", " + this.chrono + ", " + this.zone;
};
_proto2.isSupported = function isSupported(field) {
return this.fieldValues.containsKey(field);
};
_proto2.get = function get(field) {
var val = this.fieldValues.get(field);
assert(val != null);
return val;
};
_proto2.query = function query(_query) {
if (_query === TemporalQueries.chronology()) {
return this.chrono;
}
if (_query === TemporalQueries.zoneId() || _query === TemporalQueries.zone()) {
return this.zone;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto2.toBuilder = function toBuilder() {
var builder = new DateTimeBuilder();
builder.fieldValues.putAll(this.fieldValues);
builder.chrono = this.dateTimeParseContext.getEffectiveChronology();
if (this.zone != null) {
builder.zone = this.zone;
} else {
builder.zone = this.overrideZone;
}
builder.leapSecond = this.leapSecond;
builder.excessDays = this.excessDays;
return builder;
};
return Parsed;
}(Temporal);
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var DateTimePrintContext = function () {
function DateTimePrintContext(temporal, localeOrFormatter, symbols) {
if (arguments.length === 2 && arguments[1] instanceof DateTimeFormatter) {
this._temporal = DateTimePrintContext.adjust(temporal, localeOrFormatter);
this._locale = localeOrFormatter.locale();
this._symbols = localeOrFormatter.decimalStyle();
} else {
this._temporal = temporal;
this._locale = localeOrFormatter;
this._symbols = symbols;
}
this._optional = 0;
}
DateTimePrintContext.adjust = function adjust(temporal, formatter) {
return temporal;
};
var _proto = DateTimePrintContext.prototype;
_proto.symbols = function symbols() {
return this._symbols;
};
_proto.startOptional = function startOptional() {
this._optional++;
};
_proto.endOptional = function endOptional() {
this._optional--;
};
_proto.getValueQuery = function getValueQuery(query) {
var result = this._temporal.query(query);
if (result == null && this._optional === 0) {
throw new DateTimeException("Unable to extract value: " + this._temporal);
}
return result;
};
_proto.getValue = function getValue(field) {
try {
return this._temporal.getLong(field);
} catch (ex) {
if (ex instanceof DateTimeException && this._optional > 0) {
return null;
}
throw ex;
}
};
_proto.temporal = function temporal() {
return this._temporal;
};
_proto.locale = function locale() {
return this._locale;
};
_proto.setDateTime = function setDateTime(temporal) {
this._temporal = temporal;
};
_proto.setLocale = function setLocale(locale) {
this._locale = locale;
};
return DateTimePrintContext;
}();
var IsoFields = {};
var QUARTER_DAYS = [0, 90, 181, 273, 0, 91, 182, 274];
var Field = function (_TemporalField) {
_inheritsLoose(Field, _TemporalField);
function Field() {
return _TemporalField.apply(this, arguments) || this;
}
var _proto = Field.prototype;
_proto.isDateBased = function isDateBased() {
return true;
};
_proto.isTimeBased = function isTimeBased() {
return false;
};
_proto._isIso = function _isIso() {
return true;
};
Field._getWeekRangeByLocalDate = function _getWeekRangeByLocalDate(date) {
var wby = Field._getWeekBasedYear(date);
return ValueRange.of(1, Field._getWeekRangeByYear(wby));
};
Field._getWeekRangeByYear = function _getWeekRangeByYear(wby) {
var date = LocalDate.of(wby, 1, 1);
if (date.dayOfWeek() === DayOfWeek.THURSDAY || date.dayOfWeek() === DayOfWeek.WEDNESDAY && date.isLeapYear()) {
return 53;
}
return 52;
};
Field._getWeek = function _getWeek(date) {
var dow0 = date.dayOfWeek().ordinal();
var doy0 = date.dayOfYear() - 1;
var doyThu0 = doy0 + (3 - dow0);
var alignedWeek = MathUtil.intDiv(doyThu0, 7);
var firstThuDoy0 = doyThu0 - alignedWeek * 7;
var firstMonDoy0 = firstThuDoy0 - 3;
if (firstMonDoy0 < -3) {
firstMonDoy0 += 7;
}
if (doy0 < firstMonDoy0) {
return Field._getWeekRangeByLocalDate(date.withDayOfYear(180).minusYears(1)).maximum();
}
var week = MathUtil.intDiv(doy0 - firstMonDoy0, 7) + 1;
if (week === 53) {
if ((firstMonDoy0 === -3 || firstMonDoy0 === -2 && date.isLeapYear()) === false) {
week = 1;
}
}
return week;
};
Field._getWeekBasedYear = function _getWeekBasedYear(date) {
var year = date.year();
var doy = date.dayOfYear();
if (doy <= 3) {
var dow = date.dayOfWeek().ordinal();
if (doy - dow < -2) {
year--;
}
} else if (doy >= 363) {
var _dow = date.dayOfWeek().ordinal();
doy = doy - 363 - (date.isLeapYear() ? 1 : 0);
if (doy - _dow >= 0) {
year++;
}
}
return year;
};
_proto.displayName = function displayName() {
return this.toString();
};
_proto.resolve = function resolve() {
return null;
};
_proto.name = function name() {
return this.toString();
};
return Field;
}(TemporalField);
var DAY_OF_QUARTER_FIELD = function (_Field) {
_inheritsLoose(DAY_OF_QUARTER_FIELD, _Field);
function DAY_OF_QUARTER_FIELD() {
return _Field.apply(this, arguments) || this;
}
var _proto2 = DAY_OF_QUARTER_FIELD.prototype;
_proto2.toString = function toString() {
return 'DayOfQuarter';
};
_proto2.baseUnit = function baseUnit() {
return ChronoUnit.DAYS;
};
_proto2.rangeUnit = function rangeUnit() {
return QUARTER_YEARS;
};
_proto2.range = function range() {
return ValueRange.of(1, 90, 92);
};
_proto2.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(ChronoField.DAY_OF_YEAR) && temporal.isSupported(ChronoField.MONTH_OF_YEAR) && temporal.isSupported(ChronoField.YEAR) && this._isIso(temporal);
};
_proto2.rangeRefinedBy = function rangeRefinedBy(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: DayOfQuarter');
}
var qoy = temporal.getLong(QUARTER_OF_YEAR);
if (qoy === 1) {
var year = temporal.getLong(ChronoField.YEAR);
return IsoChronology.isLeapYear(year) ? ValueRange.of(1, 91) : ValueRange.of(1, 90);
} else if (qoy === 2) {
return ValueRange.of(1, 91);
} else if (qoy === 3 || qoy === 4) {
return ValueRange.of(1, 92);
}
return this.range();
};
_proto2.getFrom = function getFrom(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: DayOfQuarter');
}
var doy = temporal.get(ChronoField.DAY_OF_YEAR);
var moy = temporal.get(ChronoField.MONTH_OF_YEAR);
var year = temporal.getLong(ChronoField.YEAR);
return doy - QUARTER_DAYS[MathUtil.intDiv(moy - 1, 3) + (IsoChronology.isLeapYear(year) ? 4 : 0)];
};
_proto2.adjustInto = function adjustInto(temporal, newValue) {
var curValue = this.getFrom(temporal);
this.range().checkValidValue(newValue, this);
return temporal.with(ChronoField.DAY_OF_YEAR, temporal.getLong(ChronoField.DAY_OF_YEAR) + (newValue - curValue));
};
_proto2.resolve = function resolve(fieldValues, partialTemporal, resolverStyle) {
var yearLong = fieldValues.get(ChronoField.YEAR);
var qoyLong = fieldValues.get(QUARTER_OF_YEAR);
if (yearLong == null || qoyLong == null) {
return null;
}
var y = ChronoField.YEAR.checkValidIntValue(yearLong);
var doq = fieldValues.get(DAY_OF_QUARTER);
var date;
if (resolverStyle === ResolverStyle.LENIENT) {
var qoy = qoyLong;
date = LocalDate.of(y, 1, 1);
date = date.plusMonths(MathUtil.safeMultiply(MathUtil.safeSubtract(qoy, 1), 3));
date = date.plusDays(MathUtil.safeSubtract(doq, 1));
} else {
var _qoy = QUARTER_OF_YEAR.range().checkValidIntValue(qoyLong, QUARTER_OF_YEAR);
if (resolverStyle === ResolverStyle.STRICT) {
var max = 92;
if (_qoy === 1) {
max = IsoChronology.isLeapYear(y) ? 91 : 90;
} else if (_qoy === 2) {
max = 91;
}
ValueRange.of(1, max).checkValidValue(doq, this);
} else {
this.range().checkValidValue(doq, this);
}
date = LocalDate.of(y, (_qoy - 1) * 3 + 1, 1).plusDays(doq - 1);
}
fieldValues.remove(this);
fieldValues.remove(ChronoField.YEAR);
fieldValues.remove(QUARTER_OF_YEAR);
return date;
};
return DAY_OF_QUARTER_FIELD;
}(Field);
var QUARTER_OF_YEAR_FIELD = function (_Field2) {
_inheritsLoose(QUARTER_OF_YEAR_FIELD, _Field2);
function QUARTER_OF_YEAR_FIELD() {
return _Field2.apply(this, arguments) || this;
}
var _proto3 = QUARTER_OF_YEAR_FIELD.prototype;
_proto3.toString = function toString() {
return 'QuarterOfYear';
};
_proto3.baseUnit = function baseUnit() {
return QUARTER_YEARS;
};
_proto3.rangeUnit = function rangeUnit() {
return ChronoUnit.YEARS;
};
_proto3.range = function range() {
return ValueRange.of(1, 4);
};
_proto3.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(ChronoField.MONTH_OF_YEAR) && this._isIso(temporal);
};
_proto3.rangeRefinedBy = function rangeRefinedBy(temporal) {
return this.range();
};
_proto3.getFrom = function getFrom(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: QuarterOfYear');
}
var moy = temporal.getLong(ChronoField.MONTH_OF_YEAR);
return MathUtil.intDiv(moy + 2, 3);
};
_proto3.adjustInto = function adjustInto(temporal, newValue) {
var curValue = this.getFrom(temporal);
this.range().checkValidValue(newValue, this);
return temporal.with(ChronoField.MONTH_OF_YEAR, temporal.getLong(ChronoField.MONTH_OF_YEAR) + (newValue - curValue) * 3);
};
return QUARTER_OF_YEAR_FIELD;
}(Field);
var WEEK_OF_WEEK_BASED_YEAR_FIELD = function (_Field3) {
_inheritsLoose(WEEK_OF_WEEK_BASED_YEAR_FIELD, _Field3);
function WEEK_OF_WEEK_BASED_YEAR_FIELD() {
return _Field3.apply(this, arguments) || this;
}
var _proto4 = WEEK_OF_WEEK_BASED_YEAR_FIELD.prototype;
_proto4.toString = function toString() {
return 'WeekOfWeekBasedYear';
};
_proto4.baseUnit = function baseUnit() {
return ChronoUnit.WEEKS;
};
_proto4.rangeUnit = function rangeUnit() {
return WEEK_BASED_YEARS;
};
_proto4.range = function range() {
return ValueRange.of(1, 52, 53);
};
_proto4.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(ChronoField.EPOCH_DAY) && this._isIso(temporal);
};
_proto4.rangeRefinedBy = function rangeRefinedBy(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: WeekOfWeekBasedYear');
}
return Field._getWeekRangeByLocalDate(LocalDate.from(temporal));
};
_proto4.getFrom = function getFrom(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: WeekOfWeekBasedYear');
}
return Field._getWeek(LocalDate.from(temporal));
};
_proto4.adjustInto = function adjustInto(temporal, newValue) {
this.range().checkValidValue(newValue, this);
return temporal.plus(MathUtil.safeSubtract(newValue, this.getFrom(temporal)), ChronoUnit.WEEKS);
};
_proto4.resolve = function resolve(fieldValues, partialTemporal, resolverStyle) {
var wbyLong = fieldValues.get(WEEK_BASED_YEAR);
var dowLong = fieldValues.get(ChronoField.DAY_OF_WEEK);
if (wbyLong == null || dowLong == null) {
return null;
}
var wby = WEEK_BASED_YEAR.range().checkValidIntValue(wbyLong, WEEK_BASED_YEAR);
var wowby = fieldValues.get(WEEK_OF_WEEK_BASED_YEAR);
var date;
if (resolverStyle === ResolverStyle.LENIENT) {
var dow = dowLong;
var weeks = 0;
if (dow > 7) {
weeks = MathUtil.intDiv(dow - 1, 7);
dow = MathUtil.intMod(dow - 1, 7) + 1;
} else if (dow < 1) {
weeks = MathUtil.intDiv(dow, 7) - 1;
dow = MathUtil.intMod(dow, 7) + 7;
}
date = LocalDate.of(wby, 1, 4).plusWeeks(wowby - 1).plusWeeks(weeks).with(ChronoField.DAY_OF_WEEK, dow);
} else {
var _dow2 = ChronoField.DAY_OF_WEEK.checkValidIntValue(dowLong);
if (resolverStyle === ResolverStyle.STRICT) {
var temp = LocalDate.of(wby, 1, 4);
var range = Field._getWeekRangeByLocalDate(temp);
range.checkValidValue(wowby, this);
} else {
this.range().checkValidValue(wowby, this);
}
date = LocalDate.of(wby, 1, 4).plusWeeks(wowby - 1).with(ChronoField.DAY_OF_WEEK, _dow2);
}
fieldValues.remove(this);
fieldValues.remove(WEEK_BASED_YEAR);
fieldValues.remove(ChronoField.DAY_OF_WEEK);
return date;
};
_proto4.displayName = function displayName() {
return 'Week';
};
return WEEK_OF_WEEK_BASED_YEAR_FIELD;
}(Field);
var WEEK_BASED_YEAR_FIELD = function (_Field4) {
_inheritsLoose(WEEK_BASED_YEAR_FIELD, _Field4);
function WEEK_BASED_YEAR_FIELD() {
return _Field4.apply(this, arguments) || this;
}
var _proto5 = WEEK_BASED_YEAR_FIELD.prototype;
_proto5.toString = function toString() {
return 'WeekBasedYear';
};
_proto5.baseUnit = function baseUnit() {
return WEEK_BASED_YEARS;
};
_proto5.rangeUnit = function rangeUnit() {
return ChronoUnit.FOREVER;
};
_proto5.range = function range() {
return ChronoField.YEAR.range();
};
_proto5.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(ChronoField.EPOCH_DAY) && this._isIso(temporal);
};
_proto5.rangeRefinedBy = function rangeRefinedBy(temporal) {
return ChronoField.YEAR.range();
};
_proto5.getFrom = function getFrom(temporal) {
if (temporal.isSupported(this) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: WeekBasedYear');
}
return Field._getWeekBasedYear(LocalDate.from(temporal));
};
_proto5.adjustInto = function adjustInto(temporal, newValue) {
if (this.isSupportedBy(temporal) === false) {
throw new UnsupportedTemporalTypeException('Unsupported field: WeekBasedYear');
}
var newWby = this.range().checkValidIntValue(newValue, WEEK_BASED_YEAR);
var date = LocalDate.from(temporal);
var dow = date.get(ChronoField.DAY_OF_WEEK);
var week = Field._getWeek(date);
if (week === 53 && Field._getWeekRangeByYear(newWby) === 52) {
week = 52;
}
var resolved = LocalDate.of(newWby, 1, 4);
var days = dow - resolved.get(ChronoField.DAY_OF_WEEK) + (week - 1) * 7;
resolved = resolved.plusDays(days);
return temporal.with(resolved);
};
return WEEK_BASED_YEAR_FIELD;
}(Field);
var Unit = function (_TemporalUnit) {
_inheritsLoose(Unit, _TemporalUnit);
function Unit(name, estimatedDuration) {
var _this;
_this = _TemporalUnit.call(this) || this;
_this._name = name;
_this._duration = estimatedDuration;
return _this;
}
var _proto6 = Unit.prototype;
_proto6.duration = function duration() {
return this._duration;
};
_proto6.isDurationEstimated = function isDurationEstimated() {
return true;
};
_proto6.isDateBased = function isDateBased() {
return true;
};
_proto6.isTimeBased = function isTimeBased() {
return false;
};
_proto6.isSupportedBy = function isSupportedBy(temporal) {
return temporal.isSupported(ChronoField.EPOCH_DAY);
};
_proto6.addTo = function addTo(temporal, periodToAdd) {
switch (this) {
case WEEK_BASED_YEARS:
{
var added = MathUtil.safeAdd(temporal.get(WEEK_BASED_YEAR), periodToAdd);
return temporal.with(WEEK_BASED_YEAR, added);
}
case QUARTER_YEARS:
return temporal.plus(MathUtil.intDiv(periodToAdd, 256), ChronoUnit.YEARS).plus(MathUtil.intMod(periodToAdd, 256) * 3, ChronoUnit.MONTHS);
default:
throw new IllegalStateException('Unreachable');
}
};
_proto6.between = function between(temporal1, temporal2) {
switch (this) {
case WEEK_BASED_YEARS:
return MathUtil.safeSubtract(temporal2.getLong(WEEK_BASED_YEAR), temporal1.getLong(WEEK_BASED_YEAR));
case QUARTER_YEARS:
return MathUtil.intDiv(temporal1.until(temporal2, ChronoUnit.MONTHS), 3);
default:
throw new IllegalStateException('Unreachable');
}
};
_proto6.toString = function toString() {
return this._name;
};
return Unit;
}(TemporalUnit);
var DAY_OF_QUARTER = null;
var QUARTER_OF_YEAR = null;
var WEEK_OF_WEEK_BASED_YEAR = null;
var WEEK_BASED_YEAR = null;
var WEEK_BASED_YEARS = null;
var QUARTER_YEARS = null;
function _init$f() {
DAY_OF_QUARTER = new DAY_OF_QUARTER_FIELD();
QUARTER_OF_YEAR = new QUARTER_OF_YEAR_FIELD();
WEEK_OF_WEEK_BASED_YEAR = new WEEK_OF_WEEK_BASED_YEAR_FIELD();
WEEK_BASED_YEAR = new WEEK_BASED_YEAR_FIELD();
WEEK_BASED_YEARS = new Unit('WeekBasedYears', Duration.ofSeconds(31556952));
QUARTER_YEARS = new Unit('QuarterYears', Duration.ofSeconds(31556952 / 4));
IsoFields.DAY_OF_QUARTER = DAY_OF_QUARTER;
IsoFields.QUARTER_OF_YEAR = QUARTER_OF_YEAR;
IsoFields.WEEK_OF_WEEK_BASED_YEAR = WEEK_OF_WEEK_BASED_YEAR;
IsoFields.WEEK_BASED_YEAR = WEEK_BASED_YEAR;
IsoFields.WEEK_BASED_YEARS = WEEK_BASED_YEARS;
IsoFields.QUARTER_YEARS = QUARTER_YEARS;
LocalDate.prototype.isoWeekOfWeekyear = function () {
return this.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
};
LocalDate.prototype.isoWeekyear = function () {
return this.get(IsoFields.WEEK_BASED_YEAR);
};
}
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var DecimalStyle = function () {
function DecimalStyle(zeroChar, positiveSignChar, negativeSignChar, decimalPointChar) {
this._zeroDigit = zeroChar;
this._zeroDigitCharCode = zeroChar.charCodeAt(0);
this._positiveSign = positiveSignChar;
this._negativeSign = negativeSignChar;
this._decimalSeparator = decimalPointChar;
}
var _proto = DecimalStyle.prototype;
_proto.positiveSign = function positiveSign() {
return this._positiveSign;
};
_proto.withPositiveSign = function withPositiveSign(positiveSign) {
if (positiveSign === this._positiveSign) {
return this;
}
return new DecimalStyle(this._zeroDigit, positiveSign, this._negativeSign, this._decimalSeparator);
};
_proto.negativeSign = function negativeSign() {
return this._negativeSign;
};
_proto.withNegativeSign = function withNegativeSign(negativeSign) {
if (negativeSign === this._negativeSign) {
return this;
}
return new DecimalStyle(this._zeroDigit, this._positiveSign, negativeSign, this._decimalSeparator);
};
_proto.zeroDigit = function zeroDigit() {
return this._zeroDigit;
};
_proto.withZeroDigit = function withZeroDigit(zeroDigit) {
if (zeroDigit === this._zeroDigit) {
return this;
}
return new DecimalStyle(zeroDigit, this._positiveSign, this._negativeSign, this._decimalSeparator);
};
_proto.decimalSeparator = function decimalSeparator() {
return this._decimalSeparator;
};
_proto.withDecimalSeparator = function withDecimalSeparator(decimalSeparator) {
if (decimalSeparator === this._decimalSeparator) {
return this;
}
return new DecimalStyle(this._zeroDigit, this._positiveSign, this._negativeSign, decimalSeparator);
};
_proto.convertToDigit = function convertToDigit(char) {
var val = char.charCodeAt(0) - this._zeroDigitCharCode;
return val >= 0 && val <= 9 ? val : -1;
};
_proto.convertNumberToI18N = function convertNumberToI18N(numericText) {
if (this._zeroDigit === '0') {
return numericText;
}
var diff = this._zeroDigitCharCode - '0'.charCodeAt(0);
var convertedText = '';
for (var i = 0; i < numericText.length; i++) {
convertedText += String.fromCharCode(numericText.charCodeAt(i) + diff);
}
return convertedText;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof DecimalStyle) {
return this._zeroDigit === other._zeroDigit && this._positiveSign === other._positiveSign && this._negativeSign === other._negativeSign && this._decimalSeparator === other._decimalSeparator;
}
return false;
};
_proto.hashCode = function hashCode() {
return this._zeroDigit + this._positiveSign + this._negativeSign + this._decimalSeparator;
};
_proto.toString = function toString() {
return "DecimalStyle[" + this._zeroDigit + this._positiveSign + this._negativeSign + this._decimalSeparator + "]";
};
DecimalStyle.of = function of() {
throw new Error('not yet supported');
};
DecimalStyle.availableLocales = function availableLocales() {
throw new Error('not yet supported');
};
return DecimalStyle;
}();
DecimalStyle.STANDARD = new DecimalStyle('0', '+', '-', '.');
var SignStyle = function (_Enum) {
_inheritsLoose(SignStyle, _Enum);
function SignStyle() {
return _Enum.apply(this, arguments) || this;
}
var _proto = SignStyle.prototype;
_proto.parse = function parse(positive, strict, fixedWidth) {
switch (this) {
case SignStyle.NORMAL:
return !positive || !strict;
case SignStyle.ALWAYS:
case SignStyle.EXCEEDS_PAD:
return true;
default:
return !strict && !fixedWidth;
}
};
return SignStyle;
}(Enum);
SignStyle.NORMAL = new SignStyle('NORMAL');
SignStyle.NEVER = new SignStyle('NEVER');
SignStyle.ALWAYS = new SignStyle('ALWAYS');
SignStyle.EXCEEDS_PAD = new SignStyle('EXCEEDS_PAD');
SignStyle.NOT_NEGATIVE = new SignStyle('NOT_NEGATIVE');
var TextStyle = function (_Enum) {
_inheritsLoose(TextStyle, _Enum);
function TextStyle() {
return _Enum.apply(this, arguments) || this;
}
var _proto = TextStyle.prototype;
_proto.isStandalone = function isStandalone() {
switch (this) {
case TextStyle.FULL_STANDALONE:
case TextStyle.SHORT_STANDALONE:
case TextStyle.NARROW_STANDALONE:
return true;
default:
return false;
}
};
_proto.asStandalone = function asStandalone() {
switch (this) {
case TextStyle.FULL:
return TextStyle.FULL_STANDALONE;
case TextStyle.SHORT:
return TextStyle.SHORT_STANDALONE;
case TextStyle.NARROW:
return TextStyle.NARROW_STANDALONE;
default:
return this;
}
};
_proto.asNormal = function asNormal() {
switch (this) {
case TextStyle.FULL_STANDALONE:
return TextStyle.FULL;
case TextStyle.SHORT_STANDALONE:
return TextStyle.SHORT;
case TextStyle.NARROW_STANDALONE:
return TextStyle.NARROW;
default:
return this;
}
};
return TextStyle;
}(Enum);
TextStyle.FULL = new TextStyle('FULL');
TextStyle.FULL_STANDALONE = new TextStyle('FULL_STANDALONE');
TextStyle.SHORT = new TextStyle('SHORT');
TextStyle.SHORT_STANDALONE = new TextStyle('SHORT_STANDALONE');
TextStyle.NARROW = new TextStyle('NARROW');
TextStyle.NARROW_STANDALONE = new TextStyle('NARROW_STANDALONE');
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var CharLiteralPrinterParser = function () {
function CharLiteralPrinterParser(literal) {
if (literal.length > 1) {
throw new IllegalArgumentException("invalid literal, too long: \"" + literal + "\"");
}
this._literal = literal;
}
var _proto = CharLiteralPrinterParser.prototype;
_proto.print = function print(context, buf) {
buf.append(this._literal);
return true;
};
_proto.parse = function parse(context, text, position) {
var length = text.length;
if (position === length) {
return ~position;
}
var ch = text.charAt(position);
if (context.charEquals(this._literal, ch) === false) {
return ~position;
}
return position + this._literal.length;
};
_proto.toString = function toString() {
if (this._literal === '\'') {
return "''";
}
return "'" + this._literal + "'";
};
return CharLiteralPrinterParser;
}();
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var CompositePrinterParser = function () {
function CompositePrinterParser(printerParsers, optional) {
this._printerParsers = printerParsers;
this._optional = optional;
}
var _proto = CompositePrinterParser.prototype;
_proto.withOptional = function withOptional(optional) {
if (optional === this._optional) {
return this;
}
return new CompositePrinterParser(this._printerParsers, optional);
};
_proto.print = function print(context, buf) {
var length = buf.length();
if (this._optional) {
context.startOptional();
}
try {
for (var i = 0; i < this._printerParsers.length; i++) {
var pp = this._printerParsers[i];
if (pp.print(context, buf) === false) {
buf.setLength(length);
return true;
}
}
} finally {
if (this._optional) {
context.endOptional();
}
}
return true;
};
_proto.parse = function parse(context, text, position) {
if (this._optional) {
context.startOptional();
var pos = position;
for (var i = 0; i < this._printerParsers.length; i++) {
var pp = this._printerParsers[i];
pos = pp.parse(context, text, pos);
if (pos < 0) {
context.endOptional(false);
return position;
}
}
context.endOptional(true);
return pos;
} else {
for (var _i = 0; _i < this._printerParsers.length; _i++) {
var _pp = this._printerParsers[_i];
position = _pp.parse(context, text, position);
if (position < 0) {
break;
}
}
return position;
}
};
_proto.toString = function toString() {
var buf = '';
if (this._printerParsers != null) {
buf += this._optional ? '[' : '(';
for (var i = 0; i < this._printerParsers.length; i++) {
var pp = this._printerParsers[i];
buf += pp.toString();
}
buf += this._optional ? ']' : ')';
}
return buf;
};
return CompositePrinterParser;
}();
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var FractionPrinterParser = function () {
function FractionPrinterParser(field, minWidth, maxWidth, decimalPoint) {
requireNonNull(field, 'field');
if (field.range().isFixed() === false) {
throw new IllegalArgumentException("Field must have a fixed set of values: " + field);
}
if (minWidth < 0 || minWidth > 9) {
throw new IllegalArgumentException("Minimum width must be from 0 to 9 inclusive but was " + minWidth);
}
if (maxWidth < 1 || maxWidth > 9) {
throw new IllegalArgumentException("Maximum width must be from 1 to 9 inclusive but was " + maxWidth);
}
if (maxWidth < minWidth) {
throw new IllegalArgumentException("Maximum width must exceed or equal the minimum width but " + maxWidth + " < " + minWidth);
}
this.field = field;
this.minWidth = minWidth;
this.maxWidth = maxWidth;
this.decimalPoint = decimalPoint;
}
var _proto = FractionPrinterParser.prototype;
_proto.print = function print(context, buf) {
var value = context.getValue(this.field);
if (value === null) {
return false;
}
var symbols = context.symbols();
if (value === 0) {
if (this.minWidth > 0) {
if (this.decimalPoint) {
buf.append(symbols.decimalSeparator());
}
for (var i = 0; i < this.minWidth; i++) {
buf.append(symbols.zeroDigit());
}
}
} else {
var fraction = this.convertToFraction(value, symbols.zeroDigit());
var outputScale = Math.min(Math.max(fraction.length, this.minWidth), this.maxWidth);
fraction = fraction.substr(0, outputScale);
if (fraction * 1 > 0) {
while (fraction.length > this.minWidth && fraction[fraction.length - 1] === '0') {
fraction = fraction.substr(0, fraction.length - 1);
}
}
var str = fraction;
str = symbols.convertNumberToI18N(str);
if (this.decimalPoint) {
buf.append(symbols.decimalSeparator());
}
buf.append(str);
}
return true;
};
_proto.parse = function parse(context, text, position) {
var effectiveMin = context.isStrict() ? this.minWidth : 0;
var effectiveMax = context.isStrict() ? this.maxWidth : 9;
var length = text.length;
if (position === length) {
return effectiveMin > 0 ? ~position : position;
}
if (this.decimalPoint) {
if (text[position] !== context.symbols().decimalSeparator()) {
return effectiveMin > 0 ? ~position : position;
}
position++;
}
var minEndPos = position + effectiveMin;
if (minEndPos > length) {
return ~position;
}
var maxEndPos = Math.min(position + effectiveMax, length);
var total = 0;
var pos = position;
while (pos < maxEndPos) {
var ch = text.charAt(pos++);
var digit = context.symbols().convertToDigit(ch);
if (digit < 0) {
if (pos < minEndPos) {
return ~position;
}
pos--;
break;
}
total = total * 10 + digit;
}
var moveLeft = pos - position;
var scale = Math.pow(10, moveLeft);
var value = this.convertFromFraction(total, scale);
return context.setParsedField(this.field, value, position, pos);
};
_proto.convertToFraction = function convertToFraction(value, zeroDigit) {
var range = this.field.range();
range.checkValidValue(value, this.field);
var _min = range.minimum();
var _range = range.maximum() - _min + 1;
var _value = value - _min;
var _scaled = MathUtil.intDiv(_value * 1000000000, _range);
var fraction = "" + _scaled;
while (fraction.length < 9) {
fraction = zeroDigit + fraction;
}
return fraction;
};
_proto.convertFromFraction = function convertFromFraction(total, scale) {
var range = this.field.range();
var _min = range.minimum();
var _range = range.maximum() - _min + 1;
var _value = MathUtil.intDiv(total * _range, scale);
return _value;
};
_proto.toString = function toString() {
var decimal = this.decimalPoint ? ',DecimalPoint' : '';
return "Fraction(" + this.field + "," + this.minWidth + "," + this.maxWidth + decimal + ")";
};
return FractionPrinterParser;
}();
var MAX_WIDTH$1 = 15;
var EXCEED_POINTS = [0, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000];
var NumberPrinterParser = function () {
function NumberPrinterParser(field, minWidth, maxWidth, signStyle, subsequentWidth) {
if (subsequentWidth === void 0) {
subsequentWidth = 0;
}
this._field = field;
this._minWidth = minWidth;
this._maxWidth = maxWidth;
this._signStyle = signStyle;
this._subsequentWidth = subsequentWidth;
}
var _proto = NumberPrinterParser.prototype;
_proto.field = function field() {
return this._field;
};
_proto.minWidth = function minWidth() {
return this._minWidth;
};
_proto.maxWidth = function maxWidth() {
return this._maxWidth;
};
_proto.signStyle = function signStyle() {
return this._signStyle;
};
_proto.withFixedWidth = function withFixedWidth() {
if (this._subsequentWidth === -1) {
return this;
}
return new NumberPrinterParser(this._field, this._minWidth, this._maxWidth, this._signStyle, -1);
};
_proto.withSubsequentWidth = function withSubsequentWidth(subsequentWidth) {
return new NumberPrinterParser(this._field, this._minWidth, this._maxWidth, this._signStyle, this._subsequentWidth + subsequentWidth);
};
_proto._isFixedWidth = function _isFixedWidth() {
return this._subsequentWidth === -1 || this._subsequentWidth > 0 && this._minWidth === this._maxWidth && this._signStyle === SignStyle.NOT_NEGATIVE;
};
_proto.print = function print(context, buf) {
var contextValue = context.getValue(this._field);
if (contextValue == null) {
return false;
}
var value = this._getValue(context, contextValue);
var symbols = context.symbols();
var str = "" + Math.abs(value);
if (str.length > this._maxWidth) {
throw new DateTimeException("Field " + this._field + " cannot be printed as the value " + value + " exceeds the maximum print width of " + this._maxWidth);
}
str = symbols.convertNumberToI18N(str);
if (value >= 0) {
switch (this._signStyle) {
case SignStyle.EXCEEDS_PAD:
if (this._minWidth < MAX_WIDTH$1 && value >= EXCEED_POINTS[this._minWidth]) {
buf.append(symbols.positiveSign());
}
break;
case SignStyle.ALWAYS:
buf.append(symbols.positiveSign());
break;
}
} else {
switch (this._signStyle) {
case SignStyle.NORMAL:
case SignStyle.EXCEEDS_PAD:
case SignStyle.ALWAYS:
buf.append(symbols.negativeSign());
break;
case SignStyle.NOT_NEGATIVE:
throw new DateTimeException("Field " + this._field + " cannot be printed as the value " + value + " cannot be negative according to the SignStyle");
}
}
for (var i = 0; i < this._minWidth - str.length; i++) {
buf.append(symbols.zeroDigit());
}
buf.append(str);
return true;
};
_proto.parse = function parse(context, text, position) {
var length = text.length;
if (position === length) {
return ~position;
}
assert(position >= 0 && position < length);
var sign = text.charAt(position);
var negative = false;
var positive = false;
if (sign === context.symbols().positiveSign()) {
if (this._signStyle.parse(true, context.isStrict(), this._minWidth === this._maxWidth) === false) {
return ~position;
}
positive = true;
position++;
} else if (sign === context.symbols().negativeSign()) {
if (this._signStyle.parse(false, context.isStrict(), this._minWidth === this._maxWidth) === false) {
return ~position;
}
negative = true;
position++;
} else {
if (this._signStyle === SignStyle.ALWAYS && context.isStrict()) {
return ~position;
}
}
var effMinWidth = context.isStrict() || this._isFixedWidth() ? this._minWidth : 1;
var minEndPos = position + effMinWidth;
if (minEndPos > length) {
return ~position;
}
var effMaxWidth = (context.isStrict() || this._isFixedWidth() ? this._maxWidth : 9) + Math.max(this._subsequentWidth, 0);
var total = 0;
var pos = position;
for (var pass = 0; pass < 2; pass++) {
var maxEndPos = Math.min(pos + effMaxWidth, length);
while (pos < maxEndPos) {
var ch = text.charAt(pos++);
var digit = context.symbols().convertToDigit(ch);
if (digit < 0) {
pos--;
if (pos < minEndPos) {
return ~position;
}
break;
}
if (pos - position > MAX_WIDTH$1) {
throw new ArithmeticException('number text exceeds length');
} else {
total = total * 10 + digit;
}
}
if (this._subsequentWidth > 0 && pass === 0) {
var parseLen = pos - position;
effMaxWidth = Math.max(effMinWidth, parseLen - this._subsequentWidth);
pos = position;
total = 0;
} else {
break;
}
}
if (negative) {
if (total === 0 && context.isStrict()) {
return ~(position - 1);
}
if (total !== 0) {
total = -total;
}
} else if (this._signStyle === SignStyle.EXCEEDS_PAD && context.isStrict()) {
var _parseLen = pos - position;
if (positive) {
if (_parseLen <= this._minWidth) {
return ~(position - 1);
}
} else {
if (_parseLen > this._minWidth) {
return ~position;
}
}
}
return this._setValue(context, total, position, pos);
};
_proto._getValue = function _getValue(context, value) {
return value;
};
_proto._setValue = function _setValue(context, value, errorPos, successPos) {
return context.setParsedField(this._field, value, errorPos, successPos);
};
_proto.toString = function toString() {
if (this._minWidth === 1 && this._maxWidth === MAX_WIDTH$1 && this._signStyle === SignStyle.NORMAL) {
return "Value(" + this._field + ")";
}
if (this._minWidth === this._maxWidth && this._signStyle === SignStyle.NOT_NEGATIVE) {
return "Value(" + this._field + "," + this._minWidth + ")";
}
return "Value(" + this._field + "," + this._minWidth + "," + this._maxWidth + "," + this._signStyle + ")";
};
return NumberPrinterParser;
}();
var ReducedPrinterParser = function (_NumberPrinterParser) {
_inheritsLoose(ReducedPrinterParser, _NumberPrinterParser);
function ReducedPrinterParser(field, width, maxWidth, baseValue, baseDate) {
var _this;
_this = _NumberPrinterParser.call(this, field, width, maxWidth, SignStyle.NOT_NEGATIVE) || this;
if (width < 1 || width > 10) {
throw new IllegalArgumentException("The width must be from 1 to 10 inclusive but was " + width);
}
if (maxWidth < 1 || maxWidth > 10) {
throw new IllegalArgumentException("The maxWidth must be from 1 to 10 inclusive but was " + maxWidth);
}
if (maxWidth < width) {
throw new IllegalArgumentException('The maxWidth must be greater than the width');
}
if (baseDate === null) {
if (field.range().isValidValue(baseValue) === false) {
throw new IllegalArgumentException('The base value must be within the range of the field');
}
if (baseValue + EXCEED_POINTS[width] > MathUtil.MAX_SAFE_INTEGER) {
throw new DateTimeException('Unable to add printer-parser as the range exceeds the capacity of an int');
}
}
_this._baseValue = baseValue;
_this._baseDate = baseDate;
return _this;
}
var _proto2 = ReducedPrinterParser.prototype;
_proto2._getValue = function _getValue(context, value) {
var absValue = Math.abs(value);
var baseValue = this._baseValue;
if (this._baseDate !== null) {
context.temporal();
var chrono = IsoChronology.INSTANCE;
baseValue = chrono.date(this._baseDate).get(this._field);
}
if (value >= baseValue && value < baseValue + EXCEED_POINTS[this._minWidth]) {
return absValue % EXCEED_POINTS[this._minWidth];
}
return absValue % EXCEED_POINTS[this._maxWidth];
};
_proto2._setValue = function _setValue(context, value, errorPos, successPos) {
var baseValue = this._baseValue;
if (this._baseDate != null) {
var chrono = context.getEffectiveChronology();
baseValue = chrono.date(this._baseDate).get(this._field);
}
var parseLen = successPos - errorPos;
if (parseLen === this._minWidth && value >= 0) {
var range = EXCEED_POINTS[this._minWidth];
var lastPart = baseValue % range;
var basePart = baseValue - lastPart;
if (baseValue > 0) {
value = basePart + value;
} else {
value = basePart - value;
}
if (value < baseValue) {
value += range;
}
}
return context.setParsedField(this._field, value, errorPos, successPos);
};
_proto2.withFixedWidth = function withFixedWidth() {
if (this._subsequentWidth === -1) {
return this;
}
return new ReducedPrinterParser(this._field, this._minWidth, this._maxWidth, this._baseValue, this._baseDate);
};
_proto2.withSubsequentWidth = function withSubsequentWidth(subsequentWidth) {
return new ReducedPrinterParser(this._field, this._minWidth, this._maxWidth, this._baseValue, this._baseDate, this._subsequentWidth + subsequentWidth);
};
_proto2.isFixedWidth = function isFixedWidth(context) {
if (context.isStrict() === false) {
return false;
}
return _NumberPrinterParser.prototype.isFixedWidth.call(this, context);
};
_proto2.toString = function toString() {
return "ReducedValue(" + this._field + "," + this._minWidth + "," + this._maxWidth + "," + (this._baseDate != null ? this._baseDate : this._baseValue) + ")";
};
return ReducedPrinterParser;
}(NumberPrinterParser);
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var PATTERNS = ['+HH', '+HHmm', '+HH:mm', '+HHMM', '+HH:MM', '+HHMMss', '+HH:MM:ss', '+HHMMSS', '+HH:MM:SS'];
var OffsetIdPrinterParser = function () {
function OffsetIdPrinterParser(noOffsetText, pattern) {
requireNonNull(noOffsetText, 'noOffsetText');
requireNonNull(pattern, 'pattern');
this.noOffsetText = noOffsetText;
this.type = this._checkPattern(pattern);
}
var _proto = OffsetIdPrinterParser.prototype;
_proto._checkPattern = function _checkPattern(pattern) {
for (var i = 0; i < PATTERNS.length; i++) {
if (PATTERNS[i] === pattern) {
return i;
}
}
throw new IllegalArgumentException("Invalid zone offset pattern: " + pattern);
};
_proto.print = function print(context, buf) {
var offsetSecs = context.getValue(ChronoField.OFFSET_SECONDS);
if (offsetSecs == null) {
return false;
}
var totalSecs = MathUtil.safeToInt(offsetSecs);
if (totalSecs === 0) {
buf.append(this.noOffsetText);
} else {
var absHours = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs, 3600), 100));
var absMinutes = Math.abs(MathUtil.intMod(MathUtil.intDiv(totalSecs, 60), 60));
var absSeconds = Math.abs(MathUtil.intMod(totalSecs, 60));
var bufPos = buf.length();
var output = absHours;
buf.append(totalSecs < 0 ? '-' : '+').appendChar(MathUtil.intDiv(absHours, 10) + "0").appendChar(MathUtil.intMod(absHours, 10) + "0");
if (this.type >= 3 || this.type >= 1 && absMinutes > 0) {
buf.append(this.type % 2 === 0 ? ':' : '').appendChar(MathUtil.intDiv(absMinutes, 10) + "0").appendChar(absMinutes % 10 + "0");
output += absMinutes;
if (this.type >= 7 || this.type >= 5 && absSeconds > 0) {
buf.append(this.type % 2 === 0 ? ':' : '').appendChar(MathUtil.intDiv(absSeconds, 10) + "0").appendChar(absSeconds % 10 + "0");
output += absSeconds;
}
}
if (output === 0) {
buf.setLength(bufPos);
buf.append(this.noOffsetText);
}
}
return true;
};
_proto.parse = function parse(context, text, position) {
var length = text.length;
var noOffsetLen = this.noOffsetText.length;
if (noOffsetLen === 0) {
if (position === length) {
return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position);
}
} else {
if (position === length) {
return ~position;
}
if (context.subSequenceEquals(text, position, this.noOffsetText, 0, noOffsetLen)) {
return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position + noOffsetLen);
}
}
var sign = text[position];
if (sign === '+' || sign === '-') {
var negative = sign === '-' ? -1 : 1;
var array = [0, 0, 0, 0];
array[0] = position + 1;
if ((this._parseNumber(array, 1, text, true) || this._parseNumber(array, 2, text, this.type >= 3) || this._parseNumber(array, 3, text, false)) === false) {
var offsetSecs = MathUtil.safeZero(negative * (array[1] * 3600 + array[2] * 60 + array[3]));
return context.setParsedField(ChronoField.OFFSET_SECONDS, offsetSecs, position, array[0]);
}
}
if (noOffsetLen === 0) {
return context.setParsedField(ChronoField.OFFSET_SECONDS, 0, position, position + noOffsetLen);
}
return ~position;
};
_proto._parseNumber = function _parseNumber(array, arrayIndex, parseText, required) {
if ((this.type + 3) / 2 < arrayIndex) {
return false;
}
var pos = array[0];
if (this.type % 2 === 0 && arrayIndex > 1) {
if (pos + 1 > parseText.length || parseText[pos] !== ':') {
return required;
}
pos++;
}
if (pos + 2 > parseText.length) {
return required;
}
var ch1 = parseText[pos++];
var ch2 = parseText[pos++];
if (ch1 < '0' || ch1 > '9' || ch2 < '0' || ch2 > '9') {
return required;
}
var value = (ch1.charCodeAt(0) - 48) * 10 + (ch2.charCodeAt(0) - 48);
if (value < 0 || value > 59) {
return required;
}
array[arrayIndex] = value;
array[0] = pos;
return false;
};
_proto.toString = function toString() {
var converted = this.noOffsetText.replace('\'', '\'\'');
return "Offset(" + PATTERNS[this.type] + ",'" + converted + "')";
};
return OffsetIdPrinterParser;
}();
OffsetIdPrinterParser.INSTANCE_ID = new OffsetIdPrinterParser('Z', '+HH:MM:ss');
OffsetIdPrinterParser.PATTERNS = PATTERNS;
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var PadPrinterParserDecorator = function () {
function PadPrinterParserDecorator(printerParser, padWidth, padChar) {
this._printerParser = printerParser;
this._padWidth = padWidth;
this._padChar = padChar;
}
var _proto = PadPrinterParserDecorator.prototype;
_proto.print = function print(context, buf) {
var preLen = buf.length();
if (this._printerParser.print(context, buf) === false) {
return false;
}
var len = buf.length() - preLen;
if (len > this._padWidth) {
throw new DateTimeException("Cannot print as output of " + len + " characters exceeds pad width of " + this._padWidth);
}
for (var i = 0; i < this._padWidth - len; i++) {
buf.insert(preLen, this._padChar);
}
return true;
};
_proto.parse = function parse(context, text, position) {
var strict = context.isStrict();
var caseSensitive = context.isCaseSensitive();
assert(!(position > text.length));
assert(position >= 0);
if (position === text.length) {
return ~position;
}
var endPos = position + this._padWidth;
if (endPos > text.length) {
if (strict) {
return ~position;
}
endPos = text.length;
}
var pos = position;
while (pos < endPos && (caseSensitive ? text[pos] === this._padChar : context.charEquals(text[pos], this._padChar))) {
pos++;
}
text = text.substring(0, endPos);
var resultPos = this._printerParser.parse(context, text, pos);
if (resultPos !== endPos && strict) {
return ~(position + pos);
}
return resultPos;
};
_proto.toString = function toString() {
return "Pad(" + this._printerParser + "," + this._padWidth + (this._padChar === ' ' ? ')' : ",'" + this._padChar + "')");
};
return PadPrinterParserDecorator;
}();
var SettingsParser = function (_Enum) {
_inheritsLoose(SettingsParser, _Enum);
function SettingsParser() {
return _Enum.apply(this, arguments) || this;
}
var _proto = SettingsParser.prototype;
_proto.print = function print() {
return true;
};
_proto.parse = function parse(context, text, position) {
switch (this) {
case SettingsParser.SENSITIVE:
context.setCaseSensitive(true);
break;
case SettingsParser.INSENSITIVE:
context.setCaseSensitive(false);
break;
case SettingsParser.STRICT:
context.setStrict(true);
break;
case SettingsParser.LENIENT:
context.setStrict(false);
break;
}
return position;
};
_proto.toString = function toString() {
switch (this) {
case SettingsParser.SENSITIVE:
return 'ParseCaseSensitive(true)';
case SettingsParser.INSENSITIVE:
return 'ParseCaseSensitive(false)';
case SettingsParser.STRICT:
return 'ParseStrict(true)';
case SettingsParser.LENIENT:
return 'ParseStrict(false)';
}
};
return SettingsParser;
}(Enum);
SettingsParser.SENSITIVE = new SettingsParser('SENSITIVE');
SettingsParser.INSENSITIVE = new SettingsParser('INSENSITIVE');
SettingsParser.STRICT = new SettingsParser('STRICT');
SettingsParser.LENIENT = new SettingsParser('LENIENT');
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var StringLiteralPrinterParser = function () {
function StringLiteralPrinterParser(literal) {
this._literal = literal;
}
var _proto = StringLiteralPrinterParser.prototype;
_proto.print = function print(context, buf) {
buf.append(this._literal);
return true;
};
_proto.parse = function parse(context, text, position) {
var length = text.length;
assert(!(position > length || position < 0));
if (context.subSequenceEquals(text, position, this._literal, 0, this._literal.length) === false) {
return ~position;
}
return position + this._literal.length;
};
_proto.toString = function toString() {
var converted = this._literal.replace("'", "''");
return "'" + converted + "'";
};
return StringLiteralPrinterParser;
}();
/*
* @copyright (c) 2016, Philipp Thürwächter, Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ZoneRulesProvider = function () {
function ZoneRulesProvider() {}
ZoneRulesProvider.getRules = function getRules(zoneId) {
throw new DateTimeException("unsupported ZoneId:" + zoneId);
};
ZoneRulesProvider.getAvailableZoneIds = function getAvailableZoneIds() {
return [];
};
return ZoneRulesProvider;
}();
var ZoneRegion = function (_ZoneId) {
_inheritsLoose(ZoneRegion, _ZoneId);
ZoneRegion.ofId = function ofId(zoneId) {
var rules = ZoneRulesProvider.getRules(zoneId);
return new ZoneRegion(zoneId, rules);
};
function ZoneRegion(id, rules) {
var _this;
_this = _ZoneId.call(this) || this;
_this._id = id;
_this._rules = rules;
return _this;
}
var _proto = ZoneRegion.prototype;
_proto.id = function id() {
return this._id;
};
_proto.rules = function rules() {
return this._rules;
};
return ZoneRegion;
}(ZoneId);
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ZoneIdPrinterParser = function () {
function ZoneIdPrinterParser(query, description) {
this.query = query;
this.description = description;
}
var _proto = ZoneIdPrinterParser.prototype;
_proto.print = function print(context, buf) {
var zone = context.getValueQuery(this.query);
if (zone == null) {
return false;
}
buf.append(zone.id());
return true;
};
_proto.parse = function parse(context, text, position) {
var length = text.length;
if (position > length) {
return ~position;
}
if (position === length) {
return ~position;
}
var nextChar = text.charAt(position);
if (nextChar === '+' || nextChar === '-') {
var newContext = context.copy();
var endPos = OffsetIdPrinterParser.INSTANCE_ID.parse(newContext, text, position);
if (endPos < 0) {
return endPos;
}
var offset = newContext.getParsed(ChronoField.OFFSET_SECONDS);
var zone = ZoneOffset.ofTotalSeconds(offset);
context.setParsedZone(zone);
return endPos;
} else if (length >= position + 2) {
var nextNextChar = text.charAt(position + 1);
if (context.charEquals(nextChar, 'U') && context.charEquals(nextNextChar, 'T')) {
if (length >= position + 3 && context.charEquals(text.charAt(position + 2), 'C')) {
return this._parsePrefixedOffset(context, text, position, position + 3);
}
return this._parsePrefixedOffset(context, text, position, position + 2);
} else if (context.charEquals(nextChar, 'G') && length >= position + 3 && context.charEquals(nextNextChar, 'M') && context.charEquals(text.charAt(position + 2), 'T')) {
return this._parsePrefixedOffset(context, text, position, position + 3);
}
}
if (text.substr(position, 6) === 'SYSTEM') {
context.setParsedZone(ZoneId.systemDefault());
return position + 6;
}
if (context.charEquals(nextChar, 'Z')) {
context.setParsedZone(ZoneOffset.UTC);
return position + 1;
}
var availableZoneIds = ZoneRulesProvider.getAvailableZoneIds();
if (zoneIdTree.size !== availableZoneIds.length) {
zoneIdTree = ZoneIdTree.createTreeMap(availableZoneIds);
}
var maxParseLength = length - position;
var treeMap = zoneIdTree.treeMap;
var parsedZoneId = null;
var parseLength = 0;
while (treeMap != null) {
var parsedSubZoneId = text.substr(position, Math.min(treeMap.length, maxParseLength));
treeMap = treeMap.get(parsedSubZoneId);
if (treeMap != null && treeMap.isLeaf) {
parsedZoneId = parsedSubZoneId;
parseLength = treeMap.length;
}
}
if (parsedZoneId != null) {
context.setParsedZone(ZoneRegion.ofId(parsedZoneId));
return position + parseLength;
}
return ~position;
};
_proto._parsePrefixedOffset = function _parsePrefixedOffset(context, text, prefixPos, position) {
var prefix = text.substring(prefixPos, position).toUpperCase();
var newContext = context.copy();
if (position < text.length && context.charEquals(text.charAt(position), 'Z')) {
context.setParsedZone(ZoneId.ofOffset(prefix, ZoneOffset.UTC));
return position;
}
var endPos = OffsetIdPrinterParser.INSTANCE_ID.parse(newContext, text, position);
if (endPos < 0) {
context.setParsedZone(ZoneId.ofOffset(prefix, ZoneOffset.UTC));
return position;
}
var offsetSecs = newContext.getParsed(ChronoField.OFFSET_SECONDS);
var offset = ZoneOffset.ofTotalSeconds(offsetSecs);
context.setParsedZone(ZoneId.ofOffset(prefix, offset));
return endPos;
};
_proto.toString = function toString() {
return this.description;
};
return ZoneIdPrinterParser;
}();
var ZoneIdTree = function () {
ZoneIdTree.createTreeMap = function createTreeMap(availableZoneIds) {
var sortedZoneIds = availableZoneIds.sort(function (a, b) {
return a.length - b.length;
});
var treeMap = new ZoneIdTreeMap(sortedZoneIds[0].length, false);
for (var i = 0; i < sortedZoneIds.length; i++) {
treeMap.add(sortedZoneIds[i]);
}
return new ZoneIdTree(sortedZoneIds.length, treeMap);
};
function ZoneIdTree(size, treeMap) {
this.size = size;
this.treeMap = treeMap;
}
return ZoneIdTree;
}();
var ZoneIdTreeMap = function () {
function ZoneIdTreeMap(length, isLeaf) {
if (length === void 0) {
length = 0;
}
if (isLeaf === void 0) {
isLeaf = false;
}
this.length = length;
this.isLeaf = isLeaf;
this._treeMap = {};
}
var _proto2 = ZoneIdTreeMap.prototype;
_proto2.add = function add(zoneId) {
var idLength = zoneId.length;
if (idLength === this.length) {
this._treeMap[zoneId] = new ZoneIdTreeMap(idLength, true);
} else if (idLength > this.length) {
var subZoneId = zoneId.substr(0, this.length);
var subTreeMap = this._treeMap[subZoneId];
if (subTreeMap == null) {
subTreeMap = new ZoneIdTreeMap(idLength, false);
this._treeMap[subZoneId] = subTreeMap;
}
subTreeMap.add(zoneId);
}
};
_proto2.get = function get(zoneId) {
return this._treeMap[zoneId];
};
return ZoneIdTreeMap;
}();
var zoneIdTree = new ZoneIdTree([]);
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var MAX_WIDTH = 15;
var DateTimeFormatterBuilder = function () {
function DateTimeFormatterBuilder() {
this._active = this;
this._parent = null;
this._printerParsers = [];
this._optional = false;
this._padNextWidth = 0;
this._padNextChar = null;
this._valueParserIndex = -1;
}
DateTimeFormatterBuilder._of = function _of(parent, optional) {
requireNonNull(parent, 'parent');
requireNonNull(optional, 'optional');
var dtFormatterBuilder = new DateTimeFormatterBuilder();
dtFormatterBuilder._parent = parent;
dtFormatterBuilder._optional = optional;
return dtFormatterBuilder;
};
var _proto = DateTimeFormatterBuilder.prototype;
_proto.parseCaseSensitive = function parseCaseSensitive() {
this._appendInternalPrinterParser(SettingsParser.SENSITIVE);
return this;
};
_proto.parseCaseInsensitive = function parseCaseInsensitive() {
this._appendInternalPrinterParser(SettingsParser.INSENSITIVE);
return this;
};
_proto.parseStrict = function parseStrict() {
this._appendInternalPrinterParser(SettingsParser.STRICT);
return this;
};
_proto.parseLenient = function parseLenient() {
this._appendInternalPrinterParser(SettingsParser.LENIENT);
return this;
};
_proto.parseDefaulting = function parseDefaulting(field, value) {
requireNonNull(field);
this._appendInternal(new DefaultingParser(field, value));
return this;
};
_proto.appendValue = function appendValue() {
if (arguments.length === 1) {
return this._appendValue1.apply(this, arguments);
} else if (arguments.length === 2) {
return this._appendValue2.apply(this, arguments);
} else {
return this._appendValue4.apply(this, arguments);
}
};
_proto._appendValue1 = function _appendValue1(field) {
requireNonNull(field);
this._appendValuePrinterParser(new NumberPrinterParser(field, 1, MAX_WIDTH, SignStyle.NORMAL));
return this;
};
_proto._appendValue2 = function _appendValue2(field, width) {
requireNonNull(field);
if (width < 1 || width > MAX_WIDTH) {
throw new IllegalArgumentException("The width must be from 1 to " + MAX_WIDTH + " inclusive but was " + width);
}
var pp = new NumberPrinterParser(field, width, width, SignStyle.NOT_NEGATIVE);
this._appendValuePrinterParser(pp);
return this;
};
_proto._appendValue4 = function _appendValue4(field, minWidth, maxWidth, signStyle) {
requireNonNull(field);
requireNonNull(signStyle);
if (minWidth === maxWidth && signStyle === SignStyle.NOT_NEGATIVE) {
return this._appendValue2(field, maxWidth);
}
if (minWidth < 1 || minWidth > MAX_WIDTH) {
throw new IllegalArgumentException("The minimum width must be from 1 to " + MAX_WIDTH + " inclusive but was " + minWidth);
}
if (maxWidth < 1 || maxWidth > MAX_WIDTH) {
throw new IllegalArgumentException("The minimum width must be from 1 to " + MAX_WIDTH + " inclusive but was " + maxWidth);
}
if (maxWidth < minWidth) {
throw new IllegalArgumentException("The maximum width must exceed or equal the minimum width but " + maxWidth + " < " + minWidth);
}
var pp = new NumberPrinterParser(field, minWidth, maxWidth, signStyle);
this._appendValuePrinterParser(pp);
return this;
};
_proto.appendValueReduced = function appendValueReduced() {
if (arguments.length === 4 && arguments[3] instanceof ChronoLocalDate) {
return this._appendValueReducedFieldWidthMaxWidthBaseDate.apply(this, arguments);
} else {
return this._appendValueReducedFieldWidthMaxWidthBaseValue.apply(this, arguments);
}
};
_proto._appendValueReducedFieldWidthMaxWidthBaseValue = function _appendValueReducedFieldWidthMaxWidthBaseValue(field, width, maxWidth, baseValue) {
requireNonNull(field, 'field');
var pp = new ReducedPrinterParser(field, width, maxWidth, baseValue, null);
this._appendValuePrinterParser(pp);
return this;
};
_proto._appendValueReducedFieldWidthMaxWidthBaseDate = function _appendValueReducedFieldWidthMaxWidthBaseDate(field, width, maxWidth, baseDate) {
requireNonNull(field, 'field');
requireNonNull(baseDate, 'baseDate');
requireInstance(baseDate, ChronoLocalDate, 'baseDate');
var pp = new ReducedPrinterParser(field, width, maxWidth, 0, baseDate);
this._appendValuePrinterParser(pp);
return this;
};
_proto._appendValuePrinterParser = function _appendValuePrinterParser(pp) {
assert(pp != null);
if (this._active._valueParserIndex >= 0 && this._active._printerParsers[this._active._valueParserIndex] instanceof NumberPrinterParser) {
var activeValueParser = this._active._valueParserIndex;
var basePP = this._active._printerParsers[activeValueParser];
if (pp.minWidth() === pp.maxWidth() && pp.signStyle() === SignStyle.NOT_NEGATIVE) {
basePP = basePP.withSubsequentWidth(pp.maxWidth());
this._appendInternal(pp.withFixedWidth());
this._active._valueParserIndex = activeValueParser;
} else {
basePP = basePP.withFixedWidth();
this._active._valueParserIndex = this._appendInternal(pp);
}
this._active._printerParsers[activeValueParser] = basePP;
} else {
this._active._valueParserIndex = this._appendInternal(pp);
}
return this;
};
_proto.appendFraction = function appendFraction(field, minWidth, maxWidth, decimalPoint) {
this._appendInternal(new FractionPrinterParser(field, minWidth, maxWidth, decimalPoint));
return this;
};
_proto.appendInstant = function appendInstant(fractionalDigits) {
if (fractionalDigits === void 0) {
fractionalDigits = -2;
}
if (fractionalDigits < -2 || fractionalDigits > 9) {
throw new IllegalArgumentException("Invalid fractional digits: " + fractionalDigits);
}
this._appendInternal(new InstantPrinterParser(fractionalDigits));
return this;
};
_proto.appendOffsetId = function appendOffsetId() {
this._appendInternal(OffsetIdPrinterParser.INSTANCE_ID);
return this;
};
_proto.appendOffset = function appendOffset(pattern, noOffsetText) {
this._appendInternalPrinterParser(new OffsetIdPrinterParser(noOffsetText, pattern));
return this;
};
_proto.appendZoneId = function appendZoneId() {
this._appendInternal(new ZoneIdPrinterParser(TemporalQueries.zoneId(), 'ZoneId()'));
return this;
};
_proto.appendPattern = function appendPattern(pattern) {
requireNonNull(pattern, 'pattern');
this._parsePattern(pattern);
return this;
};
_proto.appendZoneText = function appendZoneText() {
throw new IllegalArgumentException('Pattern using (localized) text not implemented, use @js-joda/locale plugin!');
};
_proto.appendText = function appendText() {
throw new IllegalArgumentException('Pattern using (localized) text not implemented, use @js-joda/locale plugin!');
};
_proto.appendLocalizedOffset = function appendLocalizedOffset() {
throw new IllegalArgumentException('Pattern using (localized) text not implemented, use @js-joda/locale plugin!');
};
_proto.appendWeekField = function appendWeekField() {
throw new IllegalArgumentException('Pattern using (localized) text not implemented, use @js-joda/locale plugin!');
};
_proto._parsePattern = function _parsePattern(pattern) {
var FIELD_MAP = {
'G': ChronoField.ERA,
'y': ChronoField.YEAR_OF_ERA,
'u': ChronoField.YEAR,
'Q': IsoFields.QUARTER_OF_YEAR,
'q': IsoFields.QUARTER_OF_YEAR,
'M': ChronoField.MONTH_OF_YEAR,
'L': ChronoField.MONTH_OF_YEAR,
'D': ChronoField.DAY_OF_YEAR,
'd': ChronoField.DAY_OF_MONTH,
'F': ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH,
'E': ChronoField.DAY_OF_WEEK,
'c': ChronoField.DAY_OF_WEEK,
'e': ChronoField.DAY_OF_WEEK,
'a': ChronoField.AMPM_OF_DAY,
'H': ChronoField.HOUR_OF_DAY,
'k': ChronoField.CLOCK_HOUR_OF_DAY,
'K': ChronoField.HOUR_OF_AMPM,
'h': ChronoField.CLOCK_HOUR_OF_AMPM,
'm': ChronoField.MINUTE_OF_HOUR,
's': ChronoField.SECOND_OF_MINUTE,
'S': ChronoField.NANO_OF_SECOND,
'A': ChronoField.MILLI_OF_DAY,
'n': ChronoField.NANO_OF_SECOND,
'N': ChronoField.NANO_OF_DAY
};
for (var pos = 0; pos < pattern.length; pos++) {
var cur = pattern.charAt(pos);
if (cur >= 'A' && cur <= 'Z' || cur >= 'a' && cur <= 'z') {
var start = pos++;
for (; pos < pattern.length && pattern.charAt(pos) === cur; pos++);
var count = pos - start;
if (cur === 'p') {
var pad = 0;
if (pos < pattern.length) {
cur = pattern.charAt(pos);
if (cur >= 'A' && cur <= 'Z' || cur >= 'a' && cur <= 'z') {
pad = count;
start = pos++;
for (; pos < pattern.length && pattern.charAt(pos) === cur; pos++);
count = pos - start;
}
}
if (pad === 0) {
throw new IllegalArgumentException("Pad letter 'p' must be followed by valid pad pattern: " + pattern);
}
this.padNext(pad);
}
var field = FIELD_MAP[cur];
if (field != null) {
this._parseField(cur, count, field);
} else if (cur === 'z') {
if (count > 4) {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
} else if (count === 4) {
this.appendZoneText(TextStyle.FULL);
} else {
this.appendZoneText(TextStyle.SHORT);
}
} else if (cur === 'V') {
if (count !== 2) {
throw new IllegalArgumentException("Pattern letter count must be 2: " + cur);
}
this.appendZoneId();
} else if (cur === 'Z') {
if (count < 4) {
this.appendOffset('+HHMM', '+0000');
} else if (count === 4) {
this.appendLocalizedOffset(TextStyle.FULL);
} else if (count === 5) {
this.appendOffset('+HH:MM:ss', 'Z');
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
} else if (cur === 'O') {
if (count === 1) {
this.appendLocalizedOffset(TextStyle.SHORT);
} else if (count === 4) {
this.appendLocalizedOffset(TextStyle.FULL);
} else {
throw new IllegalArgumentException("Pattern letter count must be 1 or 4: " + cur);
}
} else if (cur === 'X') {
if (count > 5) {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
this.appendOffset(OffsetIdPrinterParser.PATTERNS[count + (count === 1 ? 0 : 1)], 'Z');
} else if (cur === 'x') {
if (count > 5) {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
var zero = count === 1 ? '+00' : count % 2 === 0 ? '+0000' : '+00:00';
this.appendOffset(OffsetIdPrinterParser.PATTERNS[count + (count === 1 ? 0 : 1)], zero);
} else if (cur === 'W') {
if (count > 1) {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
this.appendWeekField('W', count);
} else if (cur === 'w') {
if (count > 2) {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
this.appendWeekField('w', count);
} else if (cur === 'Y') {
this.appendWeekField('Y', count);
} else {
throw new IllegalArgumentException("Unknown pattern letter: " + cur);
}
pos--;
} else if (cur === '\'') {
var _start = pos++;
for (; pos < pattern.length; pos++) {
if (pattern.charAt(pos) === '\'') {
if (pos + 1 < pattern.length && pattern.charAt(pos + 1) === '\'') {
pos++;
} else {
break;
}
}
}
if (pos >= pattern.length) {
throw new IllegalArgumentException("Pattern ends with an incomplete string literal: " + pattern);
}
var str = pattern.substring(_start + 1, pos);
if (str.length === 0) {
this.appendLiteral('\'');
} else {
this.appendLiteral(str.replace('\'\'', '\''));
}
} else if (cur === '[') {
this.optionalStart();
} else if (cur === ']') {
if (this._active._parent === null) {
throw new IllegalArgumentException('Pattern invalid as it contains ] without previous [');
}
this.optionalEnd();
} else if (cur === '{' || cur === '}' || cur === '#') {
throw new IllegalArgumentException("Pattern includes reserved character: '" + cur + "'");
} else {
this.appendLiteral(cur);
}
}
};
_proto._parseField = function _parseField(cur, count, field) {
switch (cur) {
case 'u':
case 'y':
if (count === 2) {
this.appendValueReduced(field, 2, 2, ReducedPrinterParser.BASE_DATE);
} else if (count < 4) {
this.appendValue(field, count, MAX_WIDTH, SignStyle.NORMAL);
} else {
this.appendValue(field, count, MAX_WIDTH, SignStyle.EXCEEDS_PAD);
}
break;
case 'M':
case 'Q':
switch (count) {
case 1:
this.appendValue(field);
break;
case 2:
this.appendValue(field, 2);
break;
case 3:
this.appendText(field, TextStyle.SHORT);
break;
case 4:
this.appendText(field, TextStyle.FULL);
break;
case 5:
this.appendText(field, TextStyle.NARROW);
break;
default:
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'L':
case 'q':
switch (count) {
case 1:
this.appendValue(field);
break;
case 2:
this.appendValue(field, 2);
break;
case 3:
this.appendText(field, TextStyle.SHORT_STANDALONE);
break;
case 4:
this.appendText(field, TextStyle.FULL_STANDALONE);
break;
case 5:
this.appendText(field, TextStyle.NARROW_STANDALONE);
break;
default:
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'e':
switch (count) {
case 1:
case 2:
this.appendWeekField('e', count);
break;
case 3:
this.appendText(field, TextStyle.SHORT);
break;
case 4:
this.appendText(field, TextStyle.FULL);
break;
case 5:
this.appendText(field, TextStyle.NARROW);
break;
default:
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'c':
switch (count) {
case 1:
this.appendWeekField('c', count);
break;
case 2:
throw new IllegalArgumentException("Invalid number of pattern letters: " + cur);
case 3:
this.appendText(field, TextStyle.SHORT_STANDALONE);
break;
case 4:
this.appendText(field, TextStyle.FULL_STANDALONE);
break;
case 5:
this.appendText(field, TextStyle.NARROW_STANDALONE);
break;
default:
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'a':
if (count === 1) {
this.appendText(field, TextStyle.SHORT);
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'E':
case 'G':
switch (count) {
case 1:
case 2:
case 3:
this.appendText(field, TextStyle.SHORT);
break;
case 4:
this.appendText(field, TextStyle.FULL);
break;
case 5:
this.appendText(field, TextStyle.NARROW);
break;
default:
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'S':
this.appendFraction(ChronoField.NANO_OF_SECOND, count, count, false);
break;
case 'F':
if (count === 1) {
this.appendValue(field);
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'd':
case 'h':
case 'H':
case 'k':
case 'K':
case 'm':
case 's':
if (count === 1) {
this.appendValue(field);
} else if (count === 2) {
this.appendValue(field, count);
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
case 'D':
if (count === 1) {
this.appendValue(field);
} else if (count <= 3) {
this.appendValue(field, count);
} else {
throw new IllegalArgumentException("Too many pattern letters: " + cur);
}
break;
default:
if (count === 1) {
this.appendValue(field);
} else {
this.appendValue(field, count);
}
break;
}
};
_proto.padNext = function padNext() {
if (arguments.length === 1) {
return this._padNext1.apply(this, arguments);
} else {
return this._padNext2.apply(this, arguments);
}
};
_proto._padNext1 = function _padNext1(padWidth) {
return this._padNext2(padWidth, ' ');
};
_proto._padNext2 = function _padNext2(padWidth, padChar) {
if (padWidth < 1) {
throw new IllegalArgumentException("The pad width must be at least one but was " + padWidth);
}
this._active._padNextWidth = padWidth;
this._active._padNextChar = padChar;
this._active._valueParserIndex = -1;
return this;
};
_proto.optionalStart = function optionalStart() {
this._active._valueParserIndex = -1;
this._active = DateTimeFormatterBuilder._of(this._active, true);
return this;
};
_proto.optionalEnd = function optionalEnd() {
if (this._active._parent == null) {
throw new IllegalStateException('Cannot call optionalEnd() as there was no previous call to optionalStart()');
}
if (this._active._printerParsers.length > 0) {
var cpp = new CompositePrinterParser(this._active._printerParsers, this._active._optional);
this._active = this._active._parent;
this._appendInternal(cpp);
} else {
this._active = this._active._parent;
}
return this;
};
_proto._appendInternal = function _appendInternal(pp) {
assert(pp != null);
if (this._active._padNextWidth > 0) {
if (pp != null) {
pp = new PadPrinterParserDecorator(pp, this._active._padNextWidth, this._active._padNextChar);
}
this._active._padNextWidth = 0;
this._active._padNextChar = 0;
}
this._active._printerParsers.push(pp);
this._active._valueParserIndex = -1;
return this._active._printerParsers.length - 1;
};
_proto.appendLiteral = function appendLiteral(literal) {
assert(literal != null);
if (literal.length > 0) {
if (literal.length === 1) {
this._appendInternalPrinterParser(new CharLiteralPrinterParser(literal.charAt(0)));
} else {
this._appendInternalPrinterParser(new StringLiteralPrinterParser(literal));
}
}
return this;
};
_proto._appendInternalPrinterParser = function _appendInternalPrinterParser(pp) {
assert(pp != null);
if (this._active._padNextWidth > 0) {
if (pp != null) {
pp = new PadPrinterParserDecorator(pp, this._active._padNextWidth, this._active._padNextChar);
}
this._active._padNextWidth = 0;
this._active._padNextChar = 0;
}
this._active._printerParsers.push(pp);
this._active._valueParserIndex = -1;
return this._active._printerParsers.length - 1;
};
_proto.append = function append(formatter) {
requireNonNull(formatter, 'formatter');
this._appendInternal(formatter._toPrinterParser(false));
return this;
};
_proto.toFormatter = function toFormatter(resolverStyle) {
if (resolverStyle === void 0) {
resolverStyle = ResolverStyle.SMART;
}
while (this._active._parent != null) {
this.optionalEnd();
}
var pp = new CompositePrinterParser(this._printerParsers, false);
return new DateTimeFormatter(pp, null, DecimalStyle.STANDARD, resolverStyle, null, null, null);
};
return DateTimeFormatterBuilder;
}();
var SECONDS_PER_10000_YEARS = 146097 * 25 * 86400;
var SECONDS_0000_TO_1970 = (146097 * 5 - (30 * 365 + 7)) * 86400;
var InstantPrinterParser = function () {
function InstantPrinterParser(fractionalDigits) {
this.fractionalDigits = fractionalDigits;
}
var _proto2 = InstantPrinterParser.prototype;
_proto2.print = function print(context, buf) {
var inSecs = context.getValue(ChronoField.INSTANT_SECONDS);
var inNanos = 0;
if (context.temporal().isSupported(ChronoField.NANO_OF_SECOND)) {
inNanos = context.temporal().getLong(ChronoField.NANO_OF_SECOND);
}
if (inSecs == null) {
return false;
}
var inSec = inSecs;
var inNano = ChronoField.NANO_OF_SECOND.checkValidIntValue(inNanos);
if (inSec >= -SECONDS_0000_TO_1970) {
var zeroSecs = inSec - SECONDS_PER_10000_YEARS + SECONDS_0000_TO_1970;
var hi = MathUtil.floorDiv(zeroSecs, SECONDS_PER_10000_YEARS) + 1;
var lo = MathUtil.floorMod(zeroSecs, SECONDS_PER_10000_YEARS);
var ldt = LocalDateTime.ofEpochSecond(lo - SECONDS_0000_TO_1970, 0, ZoneOffset.UTC);
if (hi > 0) {
buf.append('+').append(hi);
}
buf.append(ldt.toString());
if (ldt.second() === 0) {
buf.append(':00');
}
} else {
var _zeroSecs = inSec + SECONDS_0000_TO_1970;
var _hi = MathUtil.intDiv(_zeroSecs, SECONDS_PER_10000_YEARS);
var _lo = MathUtil.intMod(_zeroSecs, SECONDS_PER_10000_YEARS);
var _ldt = LocalDateTime.ofEpochSecond(_lo - SECONDS_0000_TO_1970, 0, ZoneOffset.UTC);
var pos = buf.length();
buf.append(_ldt.toString());
if (_ldt.second() === 0) {
buf.append(':00');
}
if (_hi < 0) {
if (_ldt.year() === -10000) {
buf.replace(pos, pos + 2, "" + (_hi - 1));
} else if (_lo === 0) {
buf.insert(pos, _hi);
} else {
buf.insert(pos + 1, Math.abs(_hi));
}
}
}
if (this.fractionalDigits === -2) {
if (inNano !== 0) {
buf.append('.');
if (MathUtil.intMod(inNano, 1000000) === 0) {
buf.append(("" + (MathUtil.intDiv(inNano, 1000000) + 1000)).substring(1));
} else if (MathUtil.intMod(inNano, 1000) === 0) {
buf.append(("" + (MathUtil.intDiv(inNano, 1000) + 1000000)).substring(1));
} else {
buf.append(("" + (inNano + 1000000000)).substring(1));
}
}
} else if (this.fractionalDigits > 0 || this.fractionalDigits === -1 && inNano > 0) {
buf.append('.');
var div = 100000000;
for (var i = 0; this.fractionalDigits === -1 && inNano > 0 || i < this.fractionalDigits; i++) {
var digit = MathUtil.intDiv(inNano, div);
buf.append(digit);
inNano = inNano - digit * div;
div = MathUtil.intDiv(div, 10);
}
}
buf.append('Z');
return true;
};
_proto2.parse = function parse(context, text, position) {
var newContext = context.copy();
var minDigits = this.fractionalDigits < 0 ? 0 : this.fractionalDigits;
var maxDigits = this.fractionalDigits < 0 ? 9 : this.fractionalDigits;
var parser = new DateTimeFormatterBuilder().append(DateTimeFormatter.ISO_LOCAL_DATE).appendLiteral('T').appendValue(ChronoField.HOUR_OF_DAY, 2).appendLiteral(':').appendValue(ChronoField.MINUTE_OF_HOUR, 2).appendLiteral(':').appendValue(ChronoField.SECOND_OF_MINUTE, 2).appendFraction(ChronoField.NANO_OF_SECOND, minDigits, maxDigits, true).appendLiteral('Z').toFormatter()._toPrinterParser(false);
var pos = parser.parse(newContext, text, position);
if (pos < 0) {
return pos;
}
var yearParsed = newContext.getParsed(ChronoField.YEAR);
var month = newContext.getParsed(ChronoField.MONTH_OF_YEAR);
var day = newContext.getParsed(ChronoField.DAY_OF_MONTH);
var hour = newContext.getParsed(ChronoField.HOUR_OF_DAY);
var min = newContext.getParsed(ChronoField.MINUTE_OF_HOUR);
var secVal = newContext.getParsed(ChronoField.SECOND_OF_MINUTE);
var nanoVal = newContext.getParsed(ChronoField.NANO_OF_SECOND);
var sec = secVal != null ? secVal : 0;
var nano = nanoVal != null ? nanoVal : 0;
var year = MathUtil.intMod(yearParsed, 10000);
var days = 0;
if (hour === 24 && min === 0 && sec === 0 && nano === 0) {
hour = 0;
days = 1;
} else if (hour === 23 && min === 59 && sec === 60) {
context.setParsedLeapSecond();
sec = 59;
}
var instantSecs;
try {
var ldt = LocalDateTime.of(year, month, day, hour, min, sec, 0).plusDays(days);
instantSecs = ldt.toEpochSecond(ZoneOffset.UTC);
instantSecs += MathUtil.safeMultiply(MathUtil.intDiv(yearParsed, 10000), SECONDS_PER_10000_YEARS);
} catch (ex) {
return ~position;
}
var successPos = pos;
successPos = context.setParsedField(ChronoField.INSTANT_SECONDS, instantSecs, position, successPos);
return context.setParsedField(ChronoField.NANO_OF_SECOND, nano, position, successPos);
};
_proto2.toString = function toString() {
return 'Instant()';
};
return InstantPrinterParser;
}();
var DefaultingParser = function () {
function DefaultingParser(field, value) {
this._field = field;
this._value = value;
}
var _proto3 = DefaultingParser.prototype;
_proto3.print = function print() {
return true;
};
_proto3.parse = function parse(context, text, position) {
if (context.getParsed(this._field) == null) {
context.setParsedField(this._field, this._value, position, position);
}
return position;
};
return DefaultingParser;
}();
function _init$e() {
ReducedPrinterParser.BASE_DATE = LocalDate.of(2000, 1, 1);
DateTimeFormatterBuilder.CompositePrinterParser = CompositePrinterParser;
DateTimeFormatterBuilder.PadPrinterParserDecorator = PadPrinterParserDecorator;
DateTimeFormatterBuilder.SettingsParser = SettingsParser;
DateTimeFormatterBuilder.CharLiteralPrinterParser = StringLiteralPrinterParser;
DateTimeFormatterBuilder.StringLiteralPrinterParser = StringLiteralPrinterParser;
DateTimeFormatterBuilder.CharLiteralPrinterParser = CharLiteralPrinterParser;
DateTimeFormatterBuilder.NumberPrinterParser = NumberPrinterParser;
DateTimeFormatterBuilder.ReducedPrinterParser = ReducedPrinterParser;
DateTimeFormatterBuilder.FractionPrinterParser = FractionPrinterParser;
DateTimeFormatterBuilder.OffsetIdPrinterParser = OffsetIdPrinterParser;
DateTimeFormatterBuilder.ZoneIdPrinterParser = ZoneIdPrinterParser;
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/var StringBuilder = function () {
function StringBuilder() {
this._str = '';
}
var _proto = StringBuilder.prototype;
_proto.append = function append(str) {
this._str += str;
return this;
};
_proto.appendChar = function appendChar(str) {
this._str += str[0];
return this;
};
_proto.insert = function insert(offset, str) {
this._str = this._str.slice(0, offset) + str + this._str.slice(offset);
return this;
};
_proto.replace = function replace(start, end, str) {
this._str = this._str.slice(0, start) + str + this._str.slice(end);
return this;
};
_proto.length = function length() {
return this._str.length;
};
_proto.setLength = function setLength(length) {
this._str = this._str.slice(0, length);
return this;
};
_proto.toString = function toString() {
return this._str;
};
return StringBuilder;
}();
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var DateTimeFormatter = function () {
DateTimeFormatter.parsedExcessDays = function parsedExcessDays() {
return DateTimeFormatter.PARSED_EXCESS_DAYS;
};
DateTimeFormatter.parsedLeapSecond = function parsedLeapSecond() {
return DateTimeFormatter.PARSED_LEAP_SECOND;
};
DateTimeFormatter.ofPattern = function ofPattern(pattern) {
return new DateTimeFormatterBuilder().appendPattern(pattern).toFormatter();
};
function DateTimeFormatter(printerParser, locale, decimalStyle, resolverStyle, resolverFields, chrono, zone) {
if (chrono === void 0) {
chrono = IsoChronology.INSTANCE;
}
assert(printerParser != null);
assert(decimalStyle != null);
assert(resolverStyle != null);
this._printerParser = printerParser;
this._locale = locale;
this._decimalStyle = decimalStyle;
this._resolverStyle = resolverStyle;
this._resolverFields = resolverFields;
this._chrono = chrono;
this._zone = zone;
}
var _proto = DateTimeFormatter.prototype;
_proto.locale = function locale() {
return this._locale;
};
_proto.decimalStyle = function decimalStyle() {
return this._decimalStyle;
};
_proto.chronology = function chronology() {
return this._chrono;
};
_proto.withChronology = function withChronology(chrono) {
if (this._chrono != null && this._chrono.equals(chrono)) {
return this;
}
return new DateTimeFormatter(this._printerParser, this._locale, this._decimalStyle, this._resolverStyle, this._resolverFields, chrono, this._zone);
};
_proto.withLocale = function withLocale() {
return this;
};
_proto.withResolverStyle = function withResolverStyle(resolverStyle) {
requireNonNull(resolverStyle, 'resolverStyle');
if (resolverStyle.equals(this._resolverStyle)) {
return this;
}
return new DateTimeFormatter(this._printerParser, this._locale, this._decimalStyle, resolverStyle, this._resolverFields, this._chrono, this._zone);
};
_proto.format = function format(temporal) {
var buf = new StringBuilder(32);
this._formatTo(temporal, buf);
return buf.toString();
};
_proto._formatTo = function _formatTo(temporal, appendable) {
requireNonNull(temporal, 'temporal');
requireNonNull(appendable, 'appendable');
var context = new DateTimePrintContext(temporal, this);
this._printerParser.print(context, appendable);
};
_proto.parse = function parse(text, type) {
if (arguments.length === 1) {
return this.parse1(text);
} else {
return this.parse2(text, type);
}
};
_proto.parse1 = function parse1(text) {
requireNonNull(text, 'text');
try {
return this._parseToBuilder(text, null).resolve(this._resolverStyle, this._resolverFields);
} catch (ex) {
if (ex instanceof DateTimeParseException) {
throw ex;
} else {
throw this._createError(text, ex);
}
}
};
_proto.parse2 = function parse2(text, type) {
requireNonNull(text, 'text');
requireNonNull(type, 'type');
try {
var builder = this._parseToBuilder(text, null).resolve(this._resolverStyle, this._resolverFields);
return builder.build(type);
} catch (ex) {
if (ex instanceof DateTimeParseException) {
throw ex;
} else {
throw this._createError(text, ex);
}
}
};
_proto._createError = function _createError(text, ex) {
var abbr = '';
if (text.length > 64) {
abbr = text.substring(0, 64) + "...";
} else {
abbr = text;
}
return new DateTimeParseException("Text '" + abbr + "' could not be parsed: " + ex.message, text, 0, ex);
};
_proto._parseToBuilder = function _parseToBuilder(text, position) {
var pos = position != null ? position : new ParsePosition(0);
var result = this._parseUnresolved0(text, pos);
if (result == null || pos.getErrorIndex() >= 0 || position == null && pos.getIndex() < text.length) {
var abbr = '';
if (text.length > 64) {
abbr = text.substr(0, 64).toString() + "...";
} else {
abbr = text;
}
if (pos.getErrorIndex() >= 0) {
throw new DateTimeParseException("Text '" + abbr + "' could not be parsed at index " + pos.getErrorIndex(), text, pos.getErrorIndex());
} else {
throw new DateTimeParseException("Text '" + abbr + "' could not be parsed, unparsed text found at index " + pos.getIndex(), text, pos.getIndex());
}
}
return result.toBuilder();
};
_proto.parseUnresolved = function parseUnresolved(text, position) {
return this._parseUnresolved0(text, position);
};
_proto._parseUnresolved0 = function _parseUnresolved0(text, position) {
assert(text != null, 'text', NullPointerException);
assert(position != null, 'position', NullPointerException);
var context = new DateTimeParseContext(this);
var pos = position.getIndex();
pos = this._printerParser.parse(context, text, pos);
if (pos < 0) {
position.setErrorIndex(~pos);
return null;
}
position.setIndex(pos);
return context.toParsed();
};
_proto._toPrinterParser = function _toPrinterParser(optional) {
return this._printerParser.withOptional(optional);
};
_proto.toString = function toString() {
var pattern = this._printerParser.toString();
return pattern.indexOf('[') === 0 ? pattern : pattern.substring(1, pattern.length - 1);
};
return DateTimeFormatter;
}();
function _init$d() {
DateTimeFormatter.ISO_LOCAL_DATE = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).appendLiteral('-').appendValue(ChronoField.MONTH_OF_YEAR, 2).appendLiteral('-').appendValue(ChronoField.DAY_OF_MONTH, 2).toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_LOCAL_TIME = new DateTimeFormatterBuilder().appendValue(ChronoField.HOUR_OF_DAY, 2).appendLiteral(':').appendValue(ChronoField.MINUTE_OF_HOUR, 2).optionalStart().appendLiteral(':').appendValue(ChronoField.SECOND_OF_MINUTE, 2).optionalStart().appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true).toFormatter(ResolverStyle.STRICT);
DateTimeFormatter.ISO_LOCAL_DATE_TIME = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_DATE).appendLiteral('T').append(DateTimeFormatter.ISO_LOCAL_TIME).toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_INSTANT = new DateTimeFormatterBuilder().parseCaseInsensitive().appendInstant().toFormatter(ResolverStyle.STRICT);
DateTimeFormatter.ISO_OFFSET_DATE_TIME = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_DATE_TIME).appendOffsetId().toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_ZONED_DATE_TIME = new DateTimeFormatterBuilder().append(DateTimeFormatter.ISO_OFFSET_DATE_TIME).optionalStart().appendLiteral('[').parseCaseSensitive().appendZoneId().appendLiteral(']').toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.BASIC_ISO_DATE = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).appendValue(ChronoField.MONTH_OF_YEAR, 2).appendValue(ChronoField.DAY_OF_MONTH, 2).toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_OFFSET_DATE = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_DATE).appendOffsetId().toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_OFFSET_TIME = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_TIME).appendOffsetId().toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_ORDINAL_DATE = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).appendLiteral('-').appendValue(ChronoField.DAY_OF_YEAR).toFormatter(ResolverStyle.STRICT);
DateTimeFormatter.ISO_WEEK_DATE = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).appendLiteral('-W').appendValue(ChronoField.ALIGNED_WEEK_OF_YEAR).appendLiteral('-').appendValue(ChronoField.DAY_OF_WEEK).toFormatter(ResolverStyle.STRICT);
DateTimeFormatter.ISO_DATE = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_DATE).optionalStart().appendOffsetId().optionalEnd().toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.ISO_TIME = new DateTimeFormatterBuilder().parseCaseInsensitive().append(DateTimeFormatter.ISO_LOCAL_TIME).optionalStart().appendOffsetId().optionalEnd().toFormatter(ResolverStyle.STRICT);
DateTimeFormatter.ISO_DATE_TIME = new DateTimeFormatterBuilder().append(DateTimeFormatter.ISO_LOCAL_DATE_TIME).optionalStart().appendOffsetId().optionalEnd().toFormatter(ResolverStyle.STRICT).withChronology(IsoChronology.INSTANCE);
DateTimeFormatter.PARSED_EXCESS_DAYS = createTemporalQuery('PARSED_EXCESS_DAYS', function (temporal) {
if (temporal instanceof DateTimeBuilder) {
return temporal.excessDays;
} else {
return Period.ZERO;
}
});
DateTimeFormatter.PARSED_LEAP_SECOND = createTemporalQuery('PARSED_LEAP_SECOND', function (temporal) {
if (temporal instanceof DateTimeBuilder) {
return temporal.leapSecond;
} else {
return false;
}
});
}
var MonthDay = function (_TemporalAccessor) {
_inheritsLoose(MonthDay, _TemporalAccessor);
MonthDay.now = function now(zoneIdOrClock) {
if (arguments.length === 0) {
return MonthDay.now0();
} else if (arguments.length === 1 && zoneIdOrClock instanceof ZoneId) {
return MonthDay.nowZoneId(zoneIdOrClock);
} else {
return MonthDay.nowClock(zoneIdOrClock);
}
};
MonthDay.now0 = function now0() {
return this.nowClock(Clock.systemDefaultZone());
};
MonthDay.nowZoneId = function nowZoneId(zone) {
requireNonNull(zone, 'zone');
return this.nowClock(Clock.system(zone));
};
MonthDay.nowClock = function nowClock(clock) {
requireNonNull(clock, 'clock');
var now = LocalDate.now(clock);
return MonthDay.of(now.month(), now.dayOfMonth());
};
MonthDay.of = function of(monthOrNumber, number) {
if (arguments.length === 2 && monthOrNumber instanceof Month) {
return MonthDay.ofMonthNumber(monthOrNumber, number);
} else {
return MonthDay.ofNumberNumber(monthOrNumber, number);
}
};
MonthDay.ofMonthNumber = function ofMonthNumber(month, dayOfMonth) {
requireNonNull(month, 'month');
ChronoField.DAY_OF_MONTH.checkValidValue(dayOfMonth);
if (dayOfMonth > month.maxLength()) {
throw new DateTimeException("Illegal value for DayOfMonth field, value " + dayOfMonth + " is not valid for month " + month.toString());
}
return new MonthDay(month.value(), dayOfMonth);
};
MonthDay.ofNumberNumber = function ofNumberNumber(month, dayOfMonth) {
requireNonNull(month, 'month');
requireNonNull(dayOfMonth, 'dayOfMonth');
return MonthDay.of(Month.of(month), dayOfMonth);
};
MonthDay.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
requireInstance(temporal, TemporalAccessor, 'temporal');
if (temporal instanceof MonthDay) {
return temporal;
}
try {
return MonthDay.of(temporal.get(ChronoField.MONTH_OF_YEAR), temporal.get(ChronoField.DAY_OF_MONTH));
} catch (ex) {
throw new DateTimeException("Unable to obtain MonthDay from TemporalAccessor: " + temporal + ", type " + (temporal && temporal.constructor != null ? temporal.constructor.name : ''));
}
};
MonthDay.parse = function parse(text, formatter) {
if (arguments.length === 1) {
return MonthDay.parseString(text);
} else {
return MonthDay.parseStringFormatter(text, formatter);
}
};
MonthDay.parseString = function parseString(text) {
return MonthDay.parseStringFormatter(text, PARSER$2);
};
MonthDay.parseStringFormatter = function parseStringFormatter(text, formatter) {
requireNonNull(text, 'text');
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return formatter.parse(text, MonthDay.FROM);
};
function MonthDay(month, dayOfMonth) {
var _this;
_this = _TemporalAccessor.call(this) || this;
_this._month = MathUtil.safeToInt(month);
_this._day = MathUtil.safeToInt(dayOfMonth);
return _this;
}
var _proto = MonthDay.prototype;
_proto.monthValue = function monthValue() {
return this._month;
};
_proto.month = function month() {
return Month.of(this._month);
};
_proto.dayOfMonth = function dayOfMonth() {
return this._day;
};
_proto.isSupported = function isSupported(field) {
if (field instanceof ChronoField) {
return field === ChronoField.MONTH_OF_YEAR || field === ChronoField.DAY_OF_MONTH;
}
return field != null && field.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field === ChronoField.MONTH_OF_YEAR) {
return field.range();
} else if (field === ChronoField.DAY_OF_MONTH) {
return ValueRange.of(1, this.month().minLength(), this.month().maxLength());
}
return _TemporalAccessor.prototype.range.call(this, field);
};
_proto.get = function get(field) {
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.DAY_OF_MONTH:
return this._day;
case ChronoField.MONTH_OF_YEAR:
return this._month;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.isValidYear = function isValidYear(year) {
return (this._day === 29 && this._month === 2 && Year.isLeap(year) === false) === false;
};
_proto.withMonth = function withMonth(month) {
return this.with(Month.of(month));
};
_proto.with = function _with(month) {
requireNonNull(month, 'month');
if (month.value() === this._month) {
return this;
}
var day = Math.min(this._day, month.maxLength());
return new MonthDay(month.value(), day);
};
_proto.withDayOfMonth = function withDayOfMonth(dayOfMonth) {
if (dayOfMonth === this._day) {
return this;
}
return MonthDay.of(this._month, dayOfMonth);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
requireInstance(_query, TemporalQuery, 'query');
if (_query === TemporalQueries.chronology()) {
return IsoChronology.INSTANCE;
}
return _TemporalAccessor.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
requireNonNull(temporal, 'temporal');
temporal = temporal.with(ChronoField.MONTH_OF_YEAR, this._month);
return temporal.with(ChronoField.DAY_OF_MONTH, Math.min(temporal.range(ChronoField.DAY_OF_MONTH).maximum(), this._day));
};
_proto.atYear = function atYear(year) {
return LocalDate.of(year, this._month, this.isValidYear(year) ? this._day : 28);
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, MonthDay, 'other');
var cmp = this._month - other.monthValue();
if (cmp === 0) {
cmp = this._day - other.dayOfMonth();
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
requireNonNull(other, 'other');
requireInstance(other, MonthDay, 'other');
return this.compareTo(other) > 0;
};
_proto.isBefore = function isBefore(other) {
requireNonNull(other, 'other');
requireInstance(other, MonthDay, 'other');
return this.compareTo(other) < 0;
};
_proto.equals = function equals(obj) {
if (this === obj) {
return true;
}
if (obj instanceof MonthDay) {
var other = obj;
return this.monthValue() === other.monthValue() && this.dayOfMonth() === other.dayOfMonth();
}
return false;
};
_proto.toString = function toString() {
return "--" + (this._month < 10 ? '0' : '') + this._month + (this._day < 10 ? '-0' : '-') + this._day;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return formatter.format(this);
};
return MonthDay;
}(TemporalAccessor);
var PARSER$2;
function _init$c() {
PARSER$2 = new DateTimeFormatterBuilder().appendLiteral('--').appendValue(ChronoField.MONTH_OF_YEAR, 2).appendLiteral('-').appendValue(ChronoField.DAY_OF_MONTH, 2).toFormatter();
MonthDay.FROM = createTemporalQuery('MonthDay.FROM', function (temporal) {
return MonthDay.from(temporal);
});
}
var YearMonth = function (_Temporal) {
_inheritsLoose(YearMonth, _Temporal);
YearMonth.now = function now(zoneIdOrClock) {
if (arguments.length === 0) {
return YearMonth.now0();
} else if (arguments.length === 1 && zoneIdOrClock instanceof ZoneId) {
return YearMonth.nowZoneId(zoneIdOrClock);
} else {
return YearMonth.nowClock(zoneIdOrClock);
}
};
YearMonth.now0 = function now0() {
return YearMonth.nowClock(Clock.systemDefaultZone());
};
YearMonth.nowZoneId = function nowZoneId(zone) {
return YearMonth.nowClock(Clock.system(zone));
};
YearMonth.nowClock = function nowClock(clock) {
var now = LocalDate.now(clock);
return YearMonth.of(now.year(), now.month());
};
YearMonth.of = function of(year, monthOrNumber) {
if (arguments.length === 2 && monthOrNumber instanceof Month) {
return YearMonth.ofNumberMonth(year, monthOrNumber);
} else {
return YearMonth.ofNumberNumber(year, monthOrNumber);
}
};
YearMonth.ofNumberMonth = function ofNumberMonth(year, month) {
requireNonNull(month, 'month');
requireInstance(month, Month, 'month');
return YearMonth.ofNumberNumber(year, month.value());
};
YearMonth.ofNumberNumber = function ofNumberNumber(year, month) {
requireNonNull(year, 'year');
requireNonNull(month, 'month');
ChronoField.YEAR.checkValidValue(year);
ChronoField.MONTH_OF_YEAR.checkValidValue(month);
return new YearMonth(year, month);
};
YearMonth.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
if (temporal instanceof YearMonth) {
return temporal;
}
try {
return YearMonth.of(temporal.get(ChronoField.YEAR), temporal.get(ChronoField.MONTH_OF_YEAR));
} catch (ex) {
throw new DateTimeException("Unable to obtain YearMonth from TemporalAccessor: " + temporal + ", type " + (temporal && temporal.constructor != null ? temporal.constructor.name : ''));
}
};
YearMonth.parse = function parse(text, formatter) {
if (arguments.length === 1) {
return YearMonth.parseString(text);
} else {
return YearMonth.parseStringFormatter(text, formatter);
}
};
YearMonth.parseString = function parseString(text) {
return YearMonth.parseStringFormatter(text, PARSER$1);
};
YearMonth.parseStringFormatter = function parseStringFormatter(text, formatter) {
requireNonNull(formatter, 'formatter');
return formatter.parse(text, YearMonth.FROM);
};
function YearMonth(year, month) {
var _this;
_this = _Temporal.call(this) || this;
_this._year = MathUtil.safeToInt(year);
_this._month = MathUtil.safeToInt(month);
return _this;
}
var _proto = YearMonth.prototype;
_proto.isSupported = function isSupported(fieldOrUnit) {
if (arguments.length === 1 && fieldOrUnit instanceof TemporalField) {
return this.isSupportedField(fieldOrUnit);
} else {
return this.isSupportedUnit(fieldOrUnit);
}
};
_proto.isSupportedField = function isSupportedField(field) {
if (field instanceof ChronoField) {
return field === ChronoField.YEAR || field === ChronoField.MONTH_OF_YEAR || field === ChronoField.PROLEPTIC_MONTH || field === ChronoField.YEAR_OF_ERA || field === ChronoField.ERA;
}
return field != null && field.isSupportedBy(this);
};
_proto.isSupportedUnit = function isSupportedUnit(unit) {
if (unit instanceof ChronoUnit) {
return unit === ChronoUnit.MONTHS || unit === ChronoUnit.YEARS || unit === ChronoUnit.DECADES || unit === ChronoUnit.CENTURIES || unit === ChronoUnit.MILLENNIA || unit === ChronoUnit.ERAS;
}
return unit != null && unit.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field === ChronoField.YEAR_OF_ERA) {
return this.year() <= 0 ? ValueRange.of(1, Year.MAX_VALUE + 1) : ValueRange.of(1, Year.MAX_VALUE);
}
return _Temporal.prototype.range.call(this, field);
};
_proto.get = function get(field) {
requireNonNull(field, 'field');
requireInstance(field, TemporalField, 'field');
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
requireInstance(field, TemporalField, 'field');
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.MONTH_OF_YEAR:
return this._month;
case ChronoField.PROLEPTIC_MONTH:
return this._getProlepticMonth();
case ChronoField.YEAR_OF_ERA:
return this._year < 1 ? 1 - this._year : this._year;
case ChronoField.YEAR:
return this._year;
case ChronoField.ERA:
return this._year < 1 ? 0 : 1;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto._getProlepticMonth = function _getProlepticMonth() {
return MathUtil.safeAdd(MathUtil.safeMultiply(this._year, 12), this._month - 1);
};
_proto.year = function year() {
return this._year;
};
_proto.monthValue = function monthValue() {
return this._month;
};
_proto.month = function month() {
return Month.of(this._month);
};
_proto.isLeapYear = function isLeapYear() {
return IsoChronology.isLeapYear(this._year);
};
_proto.isValidDay = function isValidDay(dayOfMonth) {
return dayOfMonth >= 1 && dayOfMonth <= this.lengthOfMonth();
};
_proto.lengthOfMonth = function lengthOfMonth() {
return this.month().length(this.isLeapYear());
};
_proto.lengthOfYear = function lengthOfYear() {
return this.isLeapYear() ? 366 : 365;
};
_proto.with = function _with(adjusterOrField, value) {
if (arguments.length === 1) {
return this._withAdjuster(adjusterOrField);
} else {
return this._withField(adjusterOrField, value);
}
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
requireInstance(field, TemporalField, 'field');
if (field instanceof ChronoField) {
var f = field;
f.checkValidValue(newValue);
switch (f) {
case ChronoField.MONTH_OF_YEAR:
return this.withMonth(newValue);
case ChronoField.PROLEPTIC_MONTH:
return this.plusMonths(newValue - this.getLong(ChronoField.PROLEPTIC_MONTH));
case ChronoField.YEAR_OF_ERA:
return this.withYear(this._year < 1 ? 1 - newValue : newValue);
case ChronoField.YEAR:
return this.withYear(newValue);
case ChronoField.ERA:
return this.getLong(ChronoField.ERA) === newValue ? this : this.withYear(1 - this._year);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.adjustInto(this, newValue);
};
_proto.withYear = function withYear(year) {
ChronoField.YEAR.checkValidValue(year);
return new YearMonth(year, this._month);
};
_proto.withMonth = function withMonth(month) {
ChronoField.MONTH_OF_YEAR.checkValidValue(month);
return new YearMonth(this._year, month);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(unit, 'unit');
requireInstance(unit, TemporalUnit, 'unit');
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.MONTHS:
return this.plusMonths(amountToAdd);
case ChronoUnit.YEARS:
return this.plusYears(amountToAdd);
case ChronoUnit.DECADES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 10));
case ChronoUnit.CENTURIES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 100));
case ChronoUnit.MILLENNIA:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 1000));
case ChronoUnit.ERAS:
return this.with(ChronoField.ERA, MathUtil.safeAdd(this.getLong(ChronoField.ERA), amountToAdd));
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(yearsToAdd) {
if (yearsToAdd === 0) {
return this;
}
var newYear = ChronoField.YEAR.checkValidIntValue(this._year + yearsToAdd);
return this.withYear(newYear);
};
_proto.plusMonths = function plusMonths(monthsToAdd) {
if (monthsToAdd === 0) {
return this;
}
var monthCount = this._year * 12 + (this._month - 1);
var calcMonths = monthCount + monthsToAdd;
var newYear = ChronoField.YEAR.checkValidIntValue(MathUtil.floorDiv(calcMonths, 12));
var newMonth = MathUtil.floorMod(calcMonths, 12) + 1;
return new YearMonth(newYear, newMonth);
};
_proto.minusYears = function minusYears(yearsToSubtract) {
return yearsToSubtract === MathUtil.MIN_SAFE_INTEGER ? this.plusYears(MathUtil.MIN_SAFE_INTEGER).plusYears(1) : this.plusYears(-yearsToSubtract);
};
_proto.minusMonths = function minusMonths(monthsToSubtract) {
return monthsToSubtract === MathUtil.MIN_SAFE_INTEGER ? this.plusMonths(Math.MAX_SAFE_INTEGER).plusMonths(1) : this.plusMonths(-monthsToSubtract);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
requireInstance(_query, TemporalQuery, 'query');
if (_query === TemporalQueries.chronology()) {
return IsoChronology.INSTANCE;
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.MONTHS;
} else if (_query === TemporalQueries.localDate() || _query === TemporalQueries.localTime() || _query === TemporalQueries.zone() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.offset()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
requireNonNull(temporal, 'temporal');
requireInstance(temporal, Temporal, 'temporal');
return temporal.with(ChronoField.PROLEPTIC_MONTH, this._getProlepticMonth());
};
_proto.until = function until(endExclusive, unit) {
requireNonNull(endExclusive, 'endExclusive');
requireNonNull(unit, 'unit');
requireInstance(endExclusive, Temporal, 'endExclusive');
requireInstance(unit, TemporalUnit, 'unit');
var end = YearMonth.from(endExclusive);
if (unit instanceof ChronoUnit) {
var monthsUntil = end._getProlepticMonth() - this._getProlepticMonth();
switch (unit) {
case ChronoUnit.MONTHS:
return monthsUntil;
case ChronoUnit.YEARS:
return MathUtil.intDiv(monthsUntil, 12);
case ChronoUnit.DECADES:
return MathUtil.intDiv(monthsUntil, 120);
case ChronoUnit.CENTURIES:
return MathUtil.intDiv(monthsUntil, 1200);
case ChronoUnit.MILLENNIA:
return MathUtil.intDiv(monthsUntil, 12000);
case ChronoUnit.ERAS:
return end.getLong(ChronoField.ERA) - this.getLong(ChronoField.ERA);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
_proto.atDay = function atDay(dayOfMonth) {
requireNonNull(dayOfMonth, 'dayOfMonth');
return LocalDate.of(this._year, this._month, dayOfMonth);
};
_proto.atEndOfMonth = function atEndOfMonth() {
return LocalDate.of(this._year, this._month, this.lengthOfMonth());
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, YearMonth, 'other');
var cmp = this._year - other.year();
if (cmp === 0) {
cmp = this._month - other.monthValue();
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
return this.compareTo(other) > 0;
};
_proto.isBefore = function isBefore(other) {
return this.compareTo(other) < 0;
};
_proto.equals = function equals(obj) {
if (this === obj) {
return true;
}
if (obj instanceof YearMonth) {
var other = obj;
return this.year() === other.year() && this.monthValue() === other.monthValue();
}
return false;
};
_proto.toString = function toString() {
return PARSER$1.format(this);
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this);
};
return YearMonth;
}(Temporal);
var PARSER$1;
function _init$b() {
PARSER$1 = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).appendLiteral('-').appendValue(ChronoField.MONTH_OF_YEAR, 2).toFormatter();
YearMonth.FROM = createTemporalQuery('YearMonth.FROM', function (temporal) {
return YearMonth.from(temporal);
});
}
var Year = function (_Temporal) {
_inheritsLoose(Year, _Temporal);
function Year(value) {
var _this;
_this = _Temporal.call(this) || this;
_this._year = MathUtil.safeToInt(value);
return _this;
}
var _proto = Year.prototype;
_proto.value = function value() {
return this._year;
};
Year.now = function now(zoneIdOrClock) {
if (zoneIdOrClock === void 0) {
zoneIdOrClock = undefined;
}
if (zoneIdOrClock === undefined) {
return Year.now0();
} else if (zoneIdOrClock instanceof ZoneId) {
return Year.nowZoneId(zoneIdOrClock);
} else {
return Year.nowClock(zoneIdOrClock);
}
};
Year.now0 = function now0() {
return Year.nowClock(Clock.systemDefaultZone());
};
Year.nowZoneId = function nowZoneId(zone) {
requireNonNull(zone, 'zone');
requireInstance(zone, ZoneId, 'zone');
return Year.nowClock(Clock.system(zone));
};
Year.nowClock = function nowClock(clock) {
requireNonNull(clock, 'clock');
requireInstance(clock, Clock, 'clock');
var now = LocalDate.now(clock);
return Year.of(now.year());
};
Year.of = function of(isoYear) {
requireNonNull(isoYear, 'isoYear');
ChronoField.YEAR.checkValidValue(isoYear);
return new Year(isoYear);
};
Year.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
requireInstance(temporal, TemporalAccessor, 'temporal');
if (temporal instanceof Year) {
return temporal;
}
try {
return Year.of(temporal.get(ChronoField.YEAR));
} catch (ex) {
throw new DateTimeException("Unable to obtain Year from TemporalAccessor: " + temporal + ", type " + (temporal && temporal.constructor != null ? temporal.constructor.name : ''));
}
};
Year.parse = function parse(text, formatter) {
if (arguments.length <= 1) {
return Year.parseText(text);
} else {
return Year.parseTextFormatter(text, formatter);
}
};
Year.parseText = function parseText(text) {
requireNonNull(text, 'text');
return Year.parse(text, PARSER);
};
Year.parseTextFormatter = function parseTextFormatter(text, formatter) {
if (formatter === void 0) {
formatter = PARSER;
}
requireNonNull(text, 'text');
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return formatter.parse(text, Year.FROM);
};
Year.isLeap = function isLeap(year) {
return MathUtil.intMod(year, 4) === 0 && (MathUtil.intMod(year, 100) !== 0 || MathUtil.intMod(year, 400) === 0);
};
_proto.isSupported = function isSupported(fieldOrUnit) {
if (arguments.length === 1 && fieldOrUnit instanceof TemporalField) {
return this.isSupportedField(fieldOrUnit);
} else {
return this.isSupportedUnit(fieldOrUnit);
}
};
_proto.isSupportedField = function isSupportedField(field) {
if (field instanceof ChronoField) {
return field === ChronoField.YEAR || field === ChronoField.YEAR_OF_ERA || field === ChronoField.ERA;
}
return field != null && field.isSupportedBy(this);
};
_proto.isSupportedUnit = function isSupportedUnit(unit) {
if (unit instanceof ChronoUnit) {
return unit === ChronoUnit.YEARS || unit === ChronoUnit.DECADES || unit === ChronoUnit.CENTURIES || unit === ChronoUnit.MILLENNIA || unit === ChronoUnit.ERAS;
}
return unit != null && unit.isSupportedBy(this);
};
_proto.range = function range(field) {
if (this.isSupported(field)) {
return field.range();
} else if (field instanceof ChronoField) {
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return _Temporal.prototype.range.call(this, field);
};
_proto.get = function get(field) {
return this.range(field).checkValidIntValue(this.getLong(field), field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.YEAR_OF_ERA:
return this._year < 1 ? 1 - this._year : this._year;
case ChronoField.YEAR:
return this._year;
case ChronoField.ERA:
return this._year < 1 ? 0 : 1;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.isLeap = function isLeap() {
return Year.isLeap(this._year);
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
requireInstance(field, TemporalField, 'field');
if (field instanceof ChronoField) {
field.checkValidValue(newValue);
switch (field) {
case ChronoField.YEAR_OF_ERA:
return Year.of(this._year < 1 ? 1 - newValue : newValue);
case ChronoField.YEAR:
return Year.of(newValue);
case ChronoField.ERA:
return this.getLong(ChronoField.ERA) === newValue ? this : Year.of(1 - this._year);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.adjustInto(this, newValue);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(amountToAdd, 'amountToAdd');
requireNonNull(unit, 'unit');
requireInstance(unit, TemporalUnit, 'unit');
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.YEARS:
return this.plusYears(amountToAdd);
case ChronoUnit.DECADES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 10));
case ChronoUnit.CENTURIES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 100));
case ChronoUnit.MILLENNIA:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 1000));
case ChronoUnit.ERAS:
return this.with(ChronoField.ERA, MathUtil.safeAdd(this.getLong(ChronoField.ERA), amountToAdd));
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(yearsToAdd) {
if (yearsToAdd === 0) {
return this;
}
return Year.of(ChronoField.YEAR.checkValidIntValue(MathUtil.safeAdd(this._year, yearsToAdd)));
};
_proto.minusYears = function minusYears(yearsToSubtract) {
return yearsToSubtract === MathUtil.MIN_SAFE_INTEGER ? this.plusYears(MathUtil.MAX_SAFE_INTEGER).plusYears(1) : this.plusYears(-yearsToSubtract);
};
_proto.adjustInto = function adjustInto(temporal) {
requireNonNull(temporal, 'temporal');
return temporal.with(ChronoField.YEAR, this._year);
};
_proto.isValidMonthDay = function isValidMonthDay(monthDay) {
return monthDay != null && monthDay.isValidYear(this._year);
};
_proto.length = function length() {
return this.isLeap() ? 366 : 365;
};
_proto.atDay = function atDay(dayOfYear) {
return LocalDate.ofYearDay(this._year, dayOfYear);
};
_proto.atMonth = function atMonth(monthOrNumber) {
if (arguments.length === 1 && monthOrNumber instanceof Month) {
return this.atMonthMonth(monthOrNumber);
} else {
return this.atMonthNumber(monthOrNumber);
}
};
_proto.atMonthMonth = function atMonthMonth(month) {
requireNonNull(month, 'month');
requireInstance(month, Month, 'month');
return YearMonth.of(this._year, month);
};
_proto.atMonthNumber = function atMonthNumber(month) {
requireNonNull(month, 'month');
return YearMonth.of(this._year, month);
};
_proto.atMonthDay = function atMonthDay(monthDay) {
requireNonNull(monthDay, 'monthDay');
requireInstance(monthDay, MonthDay, 'monthDay');
return monthDay.atYear(this._year);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query()');
requireInstance(_query, TemporalQuery, 'query()');
if (_query === TemporalQueries.chronology()) {
return IsoChronology.INSTANCE;
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.YEARS;
} else if (_query === TemporalQueries.localDate() || _query === TemporalQueries.localTime() || _query === TemporalQueries.zone() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.offset()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, Year, 'other');
return this._year - other._year;
};
_proto.isAfter = function isAfter(other) {
requireNonNull(other, 'other');
requireInstance(other, Year, 'other');
return this._year > other._year;
};
_proto.isBefore = function isBefore(other) {
requireNonNull(other, 'other');
requireInstance(other, Year, 'other');
return this._year < other._year;
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return formatter.format(this);
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof Year) {
return this.value() === other.value();
}
return false;
};
_proto.toString = function toString() {
return "" + this._year;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.until = function until(endExclusive, unit) {
var end = Year.from(endExclusive);
if (unit instanceof ChronoUnit) {
var yearsUntil = end.value() - this.value();
switch (unit) {
case ChronoUnit.YEARS:
return yearsUntil;
case ChronoUnit.DECADES:
return MathUtil.intDiv(yearsUntil, 10);
case ChronoUnit.CENTURIES:
return MathUtil.intDiv(yearsUntil, 100);
case ChronoUnit.MILLENNIA:
return MathUtil.intDiv(yearsUntil, 1000);
case ChronoUnit.ERAS:
return end.getLong(ChronoField.ERA) - this.getLong(ChronoField.ERA);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
return Year;
}(Temporal);
var PARSER;
function _init$a() {
Year.MIN_VALUE = YearConstants.MIN_VALUE;
Year.MAX_VALUE = YearConstants.MAX_VALUE;
PARSER = new DateTimeFormatterBuilder().appendValue(ChronoField.YEAR, 4, 10, SignStyle.EXCEEDS_PAD).toFormatter();
Year.FROM = createTemporalQuery('Year.FROM', function (temporal) {
return Year.from(temporal);
});
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var TemporalAdjuster = function () {
function TemporalAdjuster() {}
var _proto = TemporalAdjuster.prototype;
_proto.adjustInto = function adjustInto(temporal) {
abstractMethodFail('adjustInto');
};
return TemporalAdjuster;
}();
var TemporalAdjusters = function () {
function TemporalAdjusters() {}
TemporalAdjusters.firstDayOfMonth = function firstDayOfMonth() {
return Impl.FIRST_DAY_OF_MONTH;
};
TemporalAdjusters.lastDayOfMonth = function lastDayOfMonth() {
return Impl.LAST_DAY_OF_MONTH;
};
TemporalAdjusters.firstDayOfNextMonth = function firstDayOfNextMonth() {
return Impl.FIRST_DAY_OF_NEXT_MONTH;
};
TemporalAdjusters.firstDayOfYear = function firstDayOfYear() {
return Impl.FIRST_DAY_OF_YEAR;
};
TemporalAdjusters.lastDayOfYear = function lastDayOfYear() {
return Impl.LAST_DAY_OF_YEAR;
};
TemporalAdjusters.firstDayOfNextYear = function firstDayOfNextYear() {
return Impl.FIRST_DAY_OF_NEXT_YEAR;
};
TemporalAdjusters.firstInMonth = function firstInMonth(dayOfWeek) {
requireNonNull(dayOfWeek, 'dayOfWeek');
return new DayOfWeekInMonth(1, dayOfWeek);
};
TemporalAdjusters.lastInMonth = function lastInMonth(dayOfWeek) {
requireNonNull(dayOfWeek, 'dayOfWeek');
return new DayOfWeekInMonth(-1, dayOfWeek);
};
TemporalAdjusters.dayOfWeekInMonth = function dayOfWeekInMonth(ordinal, dayOfWeek) {
requireNonNull(dayOfWeek, 'dayOfWeek');
return new DayOfWeekInMonth(ordinal, dayOfWeek);
};
TemporalAdjusters.next = function next(dayOfWeek) {
return new RelativeDayOfWeek(2, dayOfWeek);
};
TemporalAdjusters.nextOrSame = function nextOrSame(dayOfWeek) {
return new RelativeDayOfWeek(0, dayOfWeek);
};
TemporalAdjusters.previous = function previous(dayOfWeek) {
return new RelativeDayOfWeek(3, dayOfWeek);
};
TemporalAdjusters.previousOrSame = function previousOrSame(dayOfWeek) {
return new RelativeDayOfWeek(1, dayOfWeek);
};
return TemporalAdjusters;
}();
var Impl = function (_TemporalAdjuster) {
_inheritsLoose(Impl, _TemporalAdjuster);
function Impl(ordinal) {
var _this;
_this = _TemporalAdjuster.call(this) || this;
_this._ordinal = ordinal;
return _this;
}
var _proto = Impl.prototype;
_proto.adjustInto = function adjustInto(temporal) {
switch (this._ordinal) {
case 0:
return temporal.with(ChronoField.DAY_OF_MONTH, 1);
case 1:
return temporal.with(ChronoField.DAY_OF_MONTH, temporal.range(ChronoField.DAY_OF_MONTH).maximum());
case 2:
return temporal.with(ChronoField.DAY_OF_MONTH, 1).plus(1, ChronoUnit.MONTHS);
case 3:
return temporal.with(ChronoField.DAY_OF_YEAR, 1);
case 4:
return temporal.with(ChronoField.DAY_OF_YEAR, temporal.range(ChronoField.DAY_OF_YEAR).maximum());
case 5:
return temporal.with(ChronoField.DAY_OF_YEAR, 1).plus(1, ChronoUnit.YEARS);
}
throw new IllegalStateException('Unreachable');
};
return Impl;
}(TemporalAdjuster);
Impl.FIRST_DAY_OF_MONTH = new Impl(0);
Impl.LAST_DAY_OF_MONTH = new Impl(1);
Impl.FIRST_DAY_OF_NEXT_MONTH = new Impl(2);
Impl.FIRST_DAY_OF_YEAR = new Impl(3);
Impl.LAST_DAY_OF_YEAR = new Impl(4);
Impl.FIRST_DAY_OF_NEXT_YEAR = new Impl(5);
var DayOfWeekInMonth = function (_TemporalAdjuster2) {
_inheritsLoose(DayOfWeekInMonth, _TemporalAdjuster2);
function DayOfWeekInMonth(ordinal, dow) {
var _this2;
_this2 = _TemporalAdjuster2.call(this) || this;
_this2._ordinal = ordinal;
_this2._dowValue = dow.value();
return _this2;
}
var _proto2 = DayOfWeekInMonth.prototype;
_proto2.adjustInto = function adjustInto(temporal) {
if (this._ordinal >= 0) {
var temp = temporal.with(ChronoField.DAY_OF_MONTH, 1);
var curDow = temp.get(ChronoField.DAY_OF_WEEK);
var dowDiff = MathUtil.intMod(this._dowValue - curDow + 7, 7);
dowDiff += (this._ordinal - 1) * 7;
return temp.plus(dowDiff, ChronoUnit.DAYS);
} else {
var _temp = temporal.with(ChronoField.DAY_OF_MONTH, temporal.range(ChronoField.DAY_OF_MONTH).maximum());
var _curDow = _temp.get(ChronoField.DAY_OF_WEEK);
var daysDiff = this._dowValue - _curDow;
daysDiff = daysDiff === 0 ? 0 : daysDiff > 0 ? daysDiff - 7 : daysDiff;
daysDiff -= (-this._ordinal - 1) * 7;
return _temp.plus(daysDiff, ChronoUnit.DAYS);
}
};
return DayOfWeekInMonth;
}(TemporalAdjuster);
var RelativeDayOfWeek = function (_TemporalAdjuster3) {
_inheritsLoose(RelativeDayOfWeek, _TemporalAdjuster3);
function RelativeDayOfWeek(relative, dayOfWeek) {
var _this3;
_this3 = _TemporalAdjuster3.call(this) || this;
requireNonNull(dayOfWeek, 'dayOfWeek');
_this3._relative = relative;
_this3._dowValue = dayOfWeek.value();
return _this3;
}
var _proto3 = RelativeDayOfWeek.prototype;
_proto3.adjustInto = function adjustInto(temporal) {
var calDow = temporal.get(ChronoField.DAY_OF_WEEK);
if (this._relative < 2 && calDow === this._dowValue) {
return temporal;
}
if ((this._relative & 1) === 0) {
var daysDiff = calDow - this._dowValue;
return temporal.plus(daysDiff >= 0 ? 7 - daysDiff : -daysDiff, ChronoUnit.DAYS);
} else {
var _daysDiff = this._dowValue - calDow;
return temporal.minus(_daysDiff >= 0 ? 7 - _daysDiff : -_daysDiff, ChronoUnit.DAYS);
}
};
return RelativeDayOfWeek;
}(TemporalAdjuster);
var IsoChronology = function (_Enum) {
_inheritsLoose(IsoChronology, _Enum);
function IsoChronology() {
return _Enum.apply(this, arguments) || this;
}
IsoChronology.isLeapYear = function isLeapYear(prolepticYear) {
return (prolepticYear & 3) === 0 && (prolepticYear % 100 !== 0 || prolepticYear % 400 === 0);
};
var _proto = IsoChronology.prototype;
_proto._updateResolveMap = function _updateResolveMap(fieldValues, field, value) {
requireNonNull(fieldValues, 'fieldValues');
requireNonNull(field, 'field');
var current = fieldValues.get(field);
if (current != null && current !== value) {
throw new DateTimeException("Invalid state, field: " + field + " " + current + " conflicts with " + field + " " + value);
}
fieldValues.put(field, value);
};
_proto.resolveDate = function resolveDate(fieldValues, resolverStyle) {
if (fieldValues.containsKey(ChronoField.EPOCH_DAY)) {
return LocalDate.ofEpochDay(fieldValues.remove(ChronoField.EPOCH_DAY));
}
var prolepticMonth = fieldValues.remove(ChronoField.PROLEPTIC_MONTH);
if (prolepticMonth != null) {
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.PROLEPTIC_MONTH.checkValidValue(prolepticMonth);
}
this._updateResolveMap(fieldValues, ChronoField.MONTH_OF_YEAR, MathUtil.floorMod(prolepticMonth, 12) + 1);
this._updateResolveMap(fieldValues, ChronoField.YEAR, MathUtil.floorDiv(prolepticMonth, 12));
}
var yoeLong = fieldValues.remove(ChronoField.YEAR_OF_ERA);
if (yoeLong != null) {
if (resolverStyle !== ResolverStyle.LENIENT) {
ChronoField.YEAR_OF_ERA.checkValidValue(yoeLong);
}
var era = fieldValues.remove(ChronoField.ERA);
if (era == null) {
var year = fieldValues.get(ChronoField.YEAR);
if (resolverStyle === ResolverStyle.STRICT) {
if (year != null) {
this._updateResolveMap(fieldValues, ChronoField.YEAR, year > 0 ? yoeLong : MathUtil.safeSubtract(1, yoeLong));
} else {
fieldValues.put(ChronoField.YEAR_OF_ERA, yoeLong);
}
} else {
this._updateResolveMap(fieldValues, ChronoField.YEAR, year == null || year > 0 ? yoeLong : MathUtil.safeSubtract(1, yoeLong));
}
} else if (era === 1) {
this._updateResolveMap(fieldValues, ChronoField.YEAR, yoeLong);
} else if (era === 0) {
this._updateResolveMap(fieldValues, ChronoField.YEAR, MathUtil.safeSubtract(1, yoeLong));
} else {
throw new DateTimeException("Invalid value for era: " + era);
}
} else if (fieldValues.containsKey(ChronoField.ERA)) {
ChronoField.ERA.checkValidValue(fieldValues.get(ChronoField.ERA));
}
if (fieldValues.containsKey(ChronoField.YEAR)) {
if (fieldValues.containsKey(ChronoField.MONTH_OF_YEAR)) {
if (fieldValues.containsKey(ChronoField.DAY_OF_MONTH)) {
var y = ChronoField.YEAR.checkValidIntValue(fieldValues.remove(ChronoField.YEAR));
var moy = fieldValues.remove(ChronoField.MONTH_OF_YEAR);
var dom = fieldValues.remove(ChronoField.DAY_OF_MONTH);
if (resolverStyle === ResolverStyle.LENIENT) {
var months = moy - 1;
var days = dom - 1;
return LocalDate.of(y, 1, 1).plusMonths(months).plusDays(days);
} else if (resolverStyle === ResolverStyle.SMART) {
ChronoField.DAY_OF_MONTH.checkValidValue(dom);
if (moy === 4 || moy === 6 || moy === 9 || moy === 11) {
dom = Math.min(dom, 30);
} else if (moy === 2) {
dom = Math.min(dom, Month.FEBRUARY.length(Year.isLeap(y)));
}
return LocalDate.of(y, moy, dom);
} else {
return LocalDate.of(y, moy, dom);
}
}
}
if (fieldValues.containsKey(ChronoField.DAY_OF_YEAR)) {
var _y = ChronoField.YEAR.checkValidIntValue(fieldValues.remove(ChronoField.YEAR));
if (resolverStyle === ResolverStyle.LENIENT) {
var _days = MathUtil.safeSubtract(fieldValues.remove(ChronoField.DAY_OF_YEAR), 1);
return LocalDate.ofYearDay(_y, 1).plusDays(_days);
}
var doy = ChronoField.DAY_OF_YEAR.checkValidIntValue(fieldValues.remove(ChronoField.DAY_OF_YEAR));
return LocalDate.ofYearDay(_y, doy);
}
if (fieldValues.containsKey(ChronoField.ALIGNED_WEEK_OF_YEAR)) {
if (fieldValues.containsKey(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR)) {
var _y2 = ChronoField.YEAR.checkValidIntValue(fieldValues.remove(ChronoField.YEAR));
if (resolverStyle === ResolverStyle.LENIENT) {
var weeks = MathUtil.safeSubtract(fieldValues.remove(ChronoField.ALIGNED_WEEK_OF_YEAR), 1);
var _days2 = MathUtil.safeSubtract(fieldValues.remove(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR), 1);
return LocalDate.of(_y2, 1, 1).plusWeeks(weeks).plusDays(_days2);
}
var aw = ChronoField.ALIGNED_WEEK_OF_YEAR.checkValidIntValue(fieldValues.remove(ChronoField.ALIGNED_WEEK_OF_YEAR));
var ad = ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR.checkValidIntValue(fieldValues.remove(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR));
var date = LocalDate.of(_y2, 1, 1).plusDays((aw - 1) * 7 + (ad - 1));
if (resolverStyle === ResolverStyle.STRICT && date.get(ChronoField.YEAR) !== _y2) {
throw new DateTimeException('Strict mode rejected date parsed to a different year');
}
return date;
}
if (fieldValues.containsKey(ChronoField.DAY_OF_WEEK)) {
var _y3 = ChronoField.YEAR.checkValidIntValue(fieldValues.remove(ChronoField.YEAR));
if (resolverStyle === ResolverStyle.LENIENT) {
var _weeks = MathUtil.safeSubtract(fieldValues.remove(ChronoField.ALIGNED_WEEK_OF_YEAR), 1);
var _days3 = MathUtil.safeSubtract(fieldValues.remove(ChronoField.DAY_OF_WEEK), 1);
return LocalDate.of(_y3, 1, 1).plusWeeks(_weeks).plusDays(_days3);
}
var _aw = ChronoField.ALIGNED_WEEK_OF_YEAR.checkValidIntValue(fieldValues.remove(ChronoField.ALIGNED_WEEK_OF_YEAR));
var dow = ChronoField.DAY_OF_WEEK.checkValidIntValue(fieldValues.remove(ChronoField.DAY_OF_WEEK));
var _date = LocalDate.of(_y3, 1, 1).plusWeeks(_aw - 1).with(TemporalAdjusters.nextOrSame(DayOfWeek.of(dow)));
if (resolverStyle === ResolverStyle.STRICT && _date.get(ChronoField.YEAR) !== _y3) {
throw new DateTimeException('Strict mode rejected date parsed to a different month');
}
return _date;
}
}
}
return null;
};
_proto.date = function date(temporal) {
return LocalDate.from(temporal);
};
return IsoChronology;
}(Enum);
function _init$9() {
IsoChronology.INSTANCE = new IsoChronology('IsoChronology');
}
var OffsetTime = function (_Temporal) {
_inheritsLoose(OffsetTime, _Temporal);
OffsetTime.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
if (temporal instanceof OffsetTime) {
return temporal;
} else if (temporal instanceof OffsetDateTime) {
return temporal.toOffsetTime();
}
try {
var time = LocalTime.from(temporal);
var offset = ZoneOffset.from(temporal);
return new OffsetTime(time, offset);
} catch (ex) {
throw new DateTimeException("Unable to obtain OffsetTime TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
};
OffsetTime.now = function now(clockOrZone) {
if (arguments.length === 0) {
return OffsetTime._now(Clock.systemDefaultZone());
} else if (clockOrZone instanceof Clock) {
return OffsetTime._now(clockOrZone);
} else {
return OffsetTime._now(Clock.system(clockOrZone));
}
};
OffsetTime._now = function _now(clock) {
requireNonNull(clock, 'clock');
var now = clock.instant();
return OffsetTime.ofInstant(now, clock.zone().rules().offset(now));
};
OffsetTime.of = function of() {
if (arguments.length <= 2) {
return OffsetTime.ofTimeAndOffset.apply(this, arguments);
} else {
return OffsetTime.ofNumbers.apply(this, arguments);
}
};
OffsetTime.ofNumbers = function ofNumbers(hour, minute, second, nanoOfSecond, offset) {
var time = LocalTime.of(hour, minute, second, nanoOfSecond);
return new OffsetTime(time, offset);
};
OffsetTime.ofTimeAndOffset = function ofTimeAndOffset(time, offset) {
return new OffsetTime(time, offset);
};
OffsetTime.ofInstant = function ofInstant(instant, zone) {
requireNonNull(instant, 'instant');
requireInstance(instant, Instant, 'instant');
requireNonNull(zone, 'zone');
requireInstance(zone, ZoneId, 'zone');
var rules = zone.rules();
var offset = rules.offset(instant);
var secsOfDay = instant.epochSecond() % LocalTime.SECONDS_PER_DAY;
secsOfDay = (secsOfDay + offset.totalSeconds()) % LocalTime.SECONDS_PER_DAY;
if (secsOfDay < 0) {
secsOfDay += LocalTime.SECONDS_PER_DAY;
}
var time = LocalTime.ofSecondOfDay(secsOfDay, instant.nano());
return new OffsetTime(time, offset);
};
OffsetTime.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_OFFSET_TIME;
}
requireNonNull(formatter, 'formatter');
return formatter.parse(text, OffsetTime.FROM);
};
function OffsetTime(time, offset) {
var _this;
_this = _Temporal.call(this) || this;
requireNonNull(time, 'time');
requireInstance(time, LocalTime, 'time');
requireNonNull(offset, 'offset');
requireInstance(offset, ZoneOffset, 'offset');
_this._time = time;
_this._offset = offset;
return _this;
}
var _proto = OffsetTime.prototype;
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.NANO_OF_DAY, this._time.toNanoOfDay()).with(ChronoField.OFFSET_SECONDS, this.offset().totalSeconds());
};
_proto.atDate = function atDate(date) {
return OffsetDateTime.of(date, this._time, this._offset);
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this, OffsetTime.FROM);
};
_proto.get = function get(field) {
return _Temporal.prototype.get.call(this, field);
};
_proto.getLong = function getLong(field) {
if (field instanceof ChronoField) {
if (field === ChronoField.OFFSET_SECONDS) {
return this._offset.totalSeconds();
}
return this._time.getLong(field);
}
return field.getFrom(this);
};
_proto.hour = function hour() {
return this._time.hour();
};
_proto.minute = function minute() {
return this._time.minute();
};
_proto.second = function second() {
return this._time.second();
};
_proto.nano = function nano() {
return this._time.nano();
};
_proto.offset = function offset() {
return this._offset;
};
_proto.isAfter = function isAfter(other) {
requireNonNull(other, 'other');
return this._toEpochNano() > other._toEpochNano();
};
_proto.isBefore = function isBefore(other) {
requireNonNull(other, 'other');
return this._toEpochNano() < other._toEpochNano();
};
_proto.isEqual = function isEqual(other) {
requireNonNull(other, 'other');
return this._toEpochNano() === other._toEpochNano();
};
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit.isTimeBased() || fieldOrUnit === ChronoField.OFFSET_SECONDS;
} else if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isTimeBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.minusHours = function minusHours(hours) {
return this._withLocalTimeOffset(this._time.minusHours(hours), this._offset);
};
_proto.minusMinutes = function minusMinutes(minutes) {
return this._withLocalTimeOffset(this._time.minusMinutes(minutes), this._offset);
};
_proto.minusSeconds = function minusSeconds(seconds) {
return this._withLocalTimeOffset(this._time.minusSeconds(seconds), this._offset);
};
_proto.minusNanos = function minusNanos(nanos) {
return this._withLocalTimeOffset(this._time.minusNanos(nanos), this._offset);
};
_proto._minusAmount = function _minusAmount(amount) {
requireNonNull(amount);
return amount.subtractFrom(this);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
return this.plus(-1 * amountToSubtract, unit);
};
_proto._plusAmount = function _plusAmount(amount) {
requireNonNull(amount);
return amount.addTo(this);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
if (unit instanceof ChronoUnit) {
return this._withLocalTimeOffset(this._time.plus(amountToAdd, unit), this._offset);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusHours = function plusHours(hours) {
return this._withLocalTimeOffset(this._time.plusHours(hours), this._offset);
};
_proto.plusMinutes = function plusMinutes(minutes) {
return this._withLocalTimeOffset(this._time.plusMinutes(minutes), this._offset);
};
_proto.plusSeconds = function plusSeconds(seconds) {
return this._withLocalTimeOffset(this._time.plusSeconds(seconds), this._offset);
};
_proto.plusNanos = function plusNanos(nanos) {
return this._withLocalTimeOffset(this._time.plusNanos(nanos), this._offset);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
} else if (_query === TemporalQueries.offset() || _query === TemporalQueries.zone()) {
return this.offset();
} else if (_query === TemporalQueries.localTime()) {
return this._time;
} else if (_query === TemporalQueries.chronology() || _query === TemporalQueries.localDate() || _query === TemporalQueries.zoneId()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
if (field === ChronoField.OFFSET_SECONDS) {
return field.range();
}
return this._time.range(field);
}
return field.rangeRefinedBy(this);
};
_proto.toLocalTime = function toLocalTime() {
return this._time;
};
_proto.truncatedTo = function truncatedTo(unit) {
return this._withLocalTimeOffset(this._time.truncatedTo(unit), this._offset);
};
_proto.until = function until(endExclusive, unit) {
requireNonNull(endExclusive, 'endExclusive');
requireNonNull(unit, 'unit');
var end = OffsetTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
var nanosUntil = end._toEpochNano() - this._toEpochNano();
switch (unit) {
case ChronoUnit.NANOS:
return nanosUntil;
case ChronoUnit.MICROS:
return MathUtil.intDiv(nanosUntil, 1000);
case ChronoUnit.MILLIS:
return MathUtil.intDiv(nanosUntil, 1000000);
case ChronoUnit.SECONDS:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_SECOND);
case ChronoUnit.MINUTES:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_MINUTE);
case ChronoUnit.HOURS:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_HOUR);
case ChronoUnit.HALF_DAYS:
return MathUtil.intDiv(nanosUntil, 12 * LocalTime.NANOS_PER_HOUR);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
_proto.withHour = function withHour(hour) {
return this._withLocalTimeOffset(this._time.withHour(hour), this._offset);
};
_proto.withMinute = function withMinute(minute) {
return this._withLocalTimeOffset(this._time.withMinute(minute), this._offset);
};
_proto.withSecond = function withSecond(second) {
return this._withLocalTimeOffset(this._time.withSecond(second), this._offset);
};
_proto.withNano = function withNano(nano) {
return this._withLocalTimeOffset(this._time.withNano(nano), this._offset);
};
_proto.withOffsetSameInstant = function withOffsetSameInstant(offset) {
requireNonNull(offset, 'offset');
if (offset.equals(this._offset)) {
return this;
}
var difference = offset.totalSeconds() - this._offset.totalSeconds();
var adjusted = this._time.plusSeconds(difference);
return new OffsetTime(adjusted, offset);
};
_proto.withOffsetSameLocal = function withOffsetSameLocal(offset) {
return offset != null && offset.equals(this._offset) ? this : new OffsetTime(this._time, offset);
};
_proto._toEpochNano = function _toEpochNano() {
var nod = this._time.toNanoOfDay();
var offsetNanos = this._offset.totalSeconds() * LocalTime.NANOS_PER_SECOND;
return nod - offsetNanos;
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster, 'adjuster');
if (adjuster instanceof LocalTime) {
return this._withLocalTimeOffset(adjuster, this._offset);
} else if (adjuster instanceof ZoneOffset) {
return this._withLocalTimeOffset(this._time, adjuster);
} else if (adjuster instanceof OffsetTime) {
return adjuster;
}
return adjuster.adjustInto(this);
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
if (field === ChronoField.OFFSET_SECONDS) {
return this._withLocalTimeOffset(this._time, ZoneOffset.ofTotalSeconds(field.checkValidIntValue(newValue)));
}
return this._withLocalTimeOffset(this._time.with(field, newValue), this._offset);
}
return field.adjustInto(this, newValue);
};
_proto._withLocalTimeOffset = function _withLocalTimeOffset(time, offset) {
if (this._time === time && this._offset.equals(offset)) {
return this;
}
return new OffsetTime(time, offset);
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, OffsetTime, 'other');
if (this._offset.equals(other._offset)) {
return this._time.compareTo(other._time);
}
var compare = MathUtil.compareNumbers(this._toEpochNano(), other._toEpochNano());
if (compare === 0) {
return this._time.compareTo(other._time);
}
return compare;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof OffsetTime) {
return this._time.equals(other._time) && this._offset.equals(other._offset);
}
return false;
};
_proto.hashCode = function hashCode() {
return this._time.hashCode() ^ this._offset.hashCode();
};
_proto.toString = function toString() {
return this._time.toString() + this._offset.toString();
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return OffsetTime;
}(Temporal);
function _init$8() {
OffsetTime.MIN = OffsetTime.ofNumbers(0, 0, 0, 0, ZoneOffset.MAX);
OffsetTime.MAX = OffsetTime.ofNumbers(23, 59, 59, 999999999, ZoneOffset.MIN);
OffsetTime.FROM = createTemporalQuery('OffsetTime.FROM', function (temporal) {
return OffsetTime.from(temporal);
});
}
var ChronoZonedDateTime = function (_Temporal) {
_inheritsLoose(ChronoZonedDateTime, _Temporal);
function ChronoZonedDateTime() {
return _Temporal.apply(this, arguments) || this;
}
var _proto = ChronoZonedDateTime.prototype;
_proto.query = function query(_query) {
if (_query === TemporalQueries.zoneId() || _query === TemporalQueries.zone()) {
return this.zone();
} else if (_query === TemporalQueries.chronology()) {
return this.toLocalDate().chronology();
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
} else if (_query === TemporalQueries.offset()) {
return this.offset();
} else if (_query === TemporalQueries.localDate()) {
return LocalDate.ofEpochDay(this.toLocalDate().toEpochDay());
} else if (_query === TemporalQueries.localTime()) {
return this.toLocalTime();
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this);
};
_proto.toInstant = function toInstant() {
return Instant.ofEpochSecond(this.toEpochSecond(), this.toLocalTime().nano());
};
_proto.toEpochSecond = function toEpochSecond() {
var epochDay = this.toLocalDate().toEpochDay();
var secs = epochDay * 86400 + this.toLocalTime().toSecondOfDay();
secs -= this.offset().totalSeconds();
return secs;
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
var cmp = MathUtil.compareNumbers(this.toEpochSecond(), other.toEpochSecond());
if (cmp === 0) {
cmp = this.toLocalTime().nano() - other.toLocalTime().nano();
if (cmp === 0) {
cmp = this.toLocalDateTime().compareTo(other.toLocalDateTime());
if (cmp === 0) {
cmp = strcmp(this.zone().id(), other.zone().id());
}
}
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
requireNonNull(other, 'other');
var thisEpochSec = this.toEpochSecond();
var otherEpochSec = other.toEpochSecond();
return thisEpochSec > otherEpochSec || thisEpochSec === otherEpochSec && this.toLocalTime().nano() > other.toLocalTime().nano();
};
_proto.isBefore = function isBefore(other) {
requireNonNull(other, 'other');
var thisEpochSec = this.toEpochSecond();
var otherEpochSec = other.toEpochSecond();
return thisEpochSec < otherEpochSec || thisEpochSec === otherEpochSec && this.toLocalTime().nano() < other.toLocalTime().nano();
};
_proto.isEqual = function isEqual(other) {
requireNonNull(other, 'other');
return this.toEpochSecond() === other.toEpochSecond() && this.toLocalTime().nano() === other.toLocalTime().nano();
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof ChronoZonedDateTime) {
return this.compareTo(other) === 0;
}
return false;
};
return ChronoZonedDateTime;
}(Temporal);
function strcmp(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
var ZonedDateTime = function (_ChronoZonedDateTime) {
_inheritsLoose(ZonedDateTime, _ChronoZonedDateTime);
ZonedDateTime.now = function now(clockOrZone) {
var clock;
if (clockOrZone instanceof ZoneId) {
clock = Clock.system(clockOrZone);
} else {
clock = clockOrZone == null ? Clock.systemDefaultZone() : clockOrZone;
}
return ZonedDateTime.ofInstant(clock.instant(), clock.zone());
};
ZonedDateTime.of = function of() {
if (arguments.length <= 2) {
return ZonedDateTime.of2.apply(this, arguments);
} else if (arguments.length === 3 && arguments[0] instanceof LocalDate) {
return ZonedDateTime.of3.apply(this, arguments);
} else {
return ZonedDateTime.of8.apply(this, arguments);
}
};
ZonedDateTime.of3 = function of3(date, time, zone) {
return ZonedDateTime.of2(LocalDateTime.of(date, time), zone);
};
ZonedDateTime.of2 = function of2(localDateTime, zone) {
return ZonedDateTime.ofLocal(localDateTime, zone, null);
};
ZonedDateTime.of8 = function of8(year, month, dayOfMonth, hour, minute, second, nanoOfSecond, zone) {
var dt = LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);
return ZonedDateTime.ofLocal(dt, zone, null);
};
ZonedDateTime.ofLocal = function ofLocal(localDateTime, zone, preferredOffset) {
requireNonNull(localDateTime, 'localDateTime');
requireNonNull(zone, 'zone');
if (zone instanceof ZoneOffset) {
return new ZonedDateTime(localDateTime, zone, zone);
}
var offset = null;
var rules = zone.rules();
var validOffsets = rules.validOffsets(localDateTime);
if (validOffsets.length === 1) {
offset = validOffsets[0];
} else if (validOffsets.length === 0) {
var trans = rules.transition(localDateTime);
localDateTime = localDateTime.plusSeconds(trans.duration().seconds());
offset = trans.offsetAfter();
} else {
if (preferredOffset != null && validOffsets.some(function (validOffset) {
return validOffset.equals(preferredOffset);
})) {
offset = preferredOffset;
} else {
offset = requireNonNull(validOffsets[0], 'offset');
}
}
return new ZonedDateTime(localDateTime, offset, zone);
};
ZonedDateTime.ofInstant = function ofInstant() {
if (arguments.length === 2) {
return ZonedDateTime.ofInstant2.apply(this, arguments);
} else {
return ZonedDateTime.ofInstant3.apply(this, arguments);
}
};
ZonedDateTime.ofInstant2 = function ofInstant2(instant, zone) {
requireNonNull(instant, 'instant');
requireNonNull(zone, 'zone');
return ZonedDateTime._create(instant.epochSecond(), instant.nano(), zone);
};
ZonedDateTime.ofInstant3 = function ofInstant3(localDateTime, offset, zone) {
requireNonNull(localDateTime, 'localDateTime');
requireNonNull(offset, 'offset');
requireNonNull(zone, 'zone');
return ZonedDateTime._create(localDateTime.toEpochSecond(offset), localDateTime.nano(), zone);
};
ZonedDateTime._create = function _create(epochSecond, nanoOfSecond, zone) {
var rules = zone.rules();
var instant = Instant.ofEpochSecond(epochSecond, nanoOfSecond);
var offset = rules.offset(instant);
var ldt = LocalDateTime.ofEpochSecond(epochSecond, nanoOfSecond, offset);
return new ZonedDateTime(ldt, offset, zone);
};
ZonedDateTime.ofStrict = function ofStrict(localDateTime, offset, zone) {
requireNonNull(localDateTime, 'localDateTime');
requireNonNull(offset, 'offset');
requireNonNull(zone, 'zone');
var rules = zone.rules();
if (rules.isValidOffset(localDateTime, offset) === false) {
var trans = rules.transition(localDateTime);
if (trans != null && trans.isGap()) {
throw new DateTimeException("LocalDateTime " + localDateTime + " does not exist in zone " + zone + " due to a gap in the local time-line, typically caused by daylight savings");
}
throw new DateTimeException("ZoneOffset \"" + offset + "\" is not valid for LocalDateTime \"" + localDateTime + "\" in zone \"" + zone + "\"");
}
return new ZonedDateTime(localDateTime, offset, zone);
};
ZonedDateTime.ofLenient = function ofLenient(localDateTime, offset, zone) {
requireNonNull(localDateTime, 'localDateTime');
requireNonNull(offset, 'offset');
requireNonNull(zone, 'zone');
if (zone instanceof ZoneOffset && offset.equals(zone) === false) {
throw new IllegalArgumentException('ZoneId must match ZoneOffset');
}
return new ZonedDateTime(localDateTime, offset, zone);
};
ZonedDateTime.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
if (temporal instanceof ZonedDateTime) {
return temporal;
}
var zone = ZoneId.from(temporal);
if (temporal.isSupported(ChronoField.INSTANT_SECONDS)) {
var zdt = ZonedDateTime._from(temporal, zone);
if (zdt != null) return zdt;
}
var ldt = LocalDateTime.from(temporal);
return ZonedDateTime.of2(ldt, zone);
};
ZonedDateTime._from = function _from(temporal, zone) {
try {
return ZonedDateTime.__from(temporal, zone);
} catch (ex) {
if (!(ex instanceof DateTimeException)) throw ex;
}
};
ZonedDateTime.__from = function __from(temporal, zone) {
var epochSecond = temporal.getLong(ChronoField.INSTANT_SECONDS);
var nanoOfSecond = temporal.get(ChronoField.NANO_OF_SECOND);
return ZonedDateTime._create(epochSecond, nanoOfSecond, zone);
};
ZonedDateTime.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
}
requireNonNull(formatter, 'formatter');
return formatter.parse(text, ZonedDateTime.FROM);
};
function ZonedDateTime(dateTime, offset, zone) {
var _this;
requireNonNull(dateTime, 'dateTime');
requireNonNull(offset, 'offset');
requireNonNull(zone, 'zone');
_this = _ChronoZonedDateTime.call(this) || this;
_this._dateTime = dateTime;
_this._offset = offset;
_this._zone = zone;
return _this;
}
var _proto = ZonedDateTime.prototype;
_proto._resolveLocal = function _resolveLocal(newDateTime) {
requireNonNull(newDateTime, 'newDateTime');
return ZonedDateTime.ofLocal(newDateTime, this._zone, this._offset);
};
_proto._resolveInstant = function _resolveInstant(newDateTime) {
return ZonedDateTime.ofInstant3(newDateTime, this._offset, this._zone);
};
_proto._resolveOffset = function _resolveOffset(offset) {
if (offset.equals(this._offset) === false && this._zone.rules().isValidOffset(this._dateTime, offset)) {
return new ZonedDateTime(this._dateTime, offset, this._zone);
}
return this;
};
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return true;
} else if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isDateBased() || fieldOrUnit.isTimeBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
if (field === ChronoField.INSTANT_SECONDS || field === ChronoField.OFFSET_SECONDS) {
return field.range();
}
return this._dateTime.range(field);
}
return field.rangeRefinedBy(this);
};
_proto.get = function get(field) {
return this.getLong(field);
};
_proto.getLong = function getLong(field) {
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.INSTANT_SECONDS:
return this.toEpochSecond();
case ChronoField.OFFSET_SECONDS:
return this._offset.totalSeconds();
}
return this._dateTime.getLong(field);
}
requireNonNull(field, 'field');
return field.getFrom(this);
};
_proto.offset = function offset() {
return this._offset;
};
_proto.withEarlierOffsetAtOverlap = function withEarlierOffsetAtOverlap() {
var trans = this._zone.rules().transition(this._dateTime);
if (trans != null && trans.isOverlap()) {
var earlierOffset = trans.offsetBefore();
if (earlierOffset.equals(this._offset) === false) {
return new ZonedDateTime(this._dateTime, earlierOffset, this._zone);
}
}
return this;
};
_proto.withLaterOffsetAtOverlap = function withLaterOffsetAtOverlap() {
var trans = this._zone.rules().transition(this.toLocalDateTime());
if (trans != null) {
var laterOffset = trans.offsetAfter();
if (laterOffset.equals(this._offset) === false) {
return new ZonedDateTime(this._dateTime, laterOffset, this._zone);
}
}
return this;
};
_proto.zone = function zone() {
return this._zone;
};
_proto.withZoneSameLocal = function withZoneSameLocal(zone) {
requireNonNull(zone, 'zone');
return this._zone.equals(zone) ? this : ZonedDateTime.ofLocal(this._dateTime, zone, this._offset);
};
_proto.withZoneSameInstant = function withZoneSameInstant(zone) {
requireNonNull(zone, 'zone');
return this._zone.equals(zone) ? this : ZonedDateTime._create(this._dateTime.toEpochSecond(this._offset), this._dateTime.nano(), zone);
};
_proto.withFixedOffsetZone = function withFixedOffsetZone() {
return this._zone.equals(this._offset) ? this : new ZonedDateTime(this._dateTime, this._offset, this._offset);
};
_proto.year = function year() {
return this._dateTime.year();
};
_proto.monthValue = function monthValue() {
return this._dateTime.monthValue();
};
_proto.month = function month() {
return this._dateTime.month();
};
_proto.dayOfMonth = function dayOfMonth() {
return this._dateTime.dayOfMonth();
};
_proto.dayOfYear = function dayOfYear() {
return this._dateTime.dayOfYear();
};
_proto.dayOfWeek = function dayOfWeek() {
return this._dateTime.dayOfWeek();
};
_proto.hour = function hour() {
return this._dateTime.hour();
};
_proto.minute = function minute() {
return this._dateTime.minute();
};
_proto.second = function second() {
return this._dateTime.second();
};
_proto.nano = function nano() {
return this._dateTime.nano();
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
if (adjuster instanceof LocalDate) {
return this._resolveLocal(LocalDateTime.of(adjuster, this._dateTime.toLocalTime()));
} else if (adjuster instanceof LocalTime) {
return this._resolveLocal(LocalDateTime.of(this._dateTime.toLocalDate(), adjuster));
} else if (adjuster instanceof LocalDateTime) {
return this._resolveLocal(adjuster);
} else if (adjuster instanceof Instant) {
var instant = adjuster;
return ZonedDateTime._create(instant.epochSecond(), instant.nano(), this._zone);
} else if (adjuster instanceof ZoneOffset) {
return this._resolveOffset(adjuster);
}
return _ChronoZonedDateTime.prototype._withAdjuster.call(this, adjuster);
};
_proto._withField = function _withField(field, newValue) {
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.INSTANT_SECONDS:
return ZonedDateTime._create(newValue, this.nano(), this._zone);
case ChronoField.OFFSET_SECONDS:
{
var offset = ZoneOffset.ofTotalSeconds(field.checkValidIntValue(newValue));
return this._resolveOffset(offset);
}
}
return this._resolveLocal(this._dateTime.with(field, newValue));
}
return field.adjustInto(this, newValue);
};
_proto.withYear = function withYear(year) {
return this._resolveLocal(this._dateTime.withYear(year));
};
_proto.withMonth = function withMonth(month) {
return this._resolveLocal(this._dateTime.withMonth(month));
};
_proto.withDayOfMonth = function withDayOfMonth(dayOfMonth) {
return this._resolveLocal(this._dateTime.withDayOfMonth(dayOfMonth));
};
_proto.withDayOfYear = function withDayOfYear(dayOfYear) {
return this._resolveLocal(this._dateTime.withDayOfYear(dayOfYear));
};
_proto.withHour = function withHour(hour) {
return this._resolveLocal(this._dateTime.withHour(hour));
};
_proto.withMinute = function withMinute(minute) {
return this._resolveLocal(this._dateTime.withMinute(minute));
};
_proto.withSecond = function withSecond(second) {
return this._resolveLocal(this._dateTime.withSecond(second));
};
_proto.withNano = function withNano(nanoOfSecond) {
return this._resolveLocal(this._dateTime.withNano(nanoOfSecond));
};
_proto.truncatedTo = function truncatedTo(unit) {
return this._resolveLocal(this._dateTime.truncatedTo(unit));
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
if (unit instanceof ChronoUnit) {
if (unit.isDateBased()) {
return this._resolveLocal(this._dateTime.plus(amountToAdd, unit));
} else {
return this._resolveInstant(this._dateTime.plus(amountToAdd, unit));
}
}
requireNonNull(unit, 'unit');
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(years) {
return this._resolveLocal(this._dateTime.plusYears(years));
};
_proto.plusMonths = function plusMonths(months) {
return this._resolveLocal(this._dateTime.plusMonths(months));
};
_proto.plusWeeks = function plusWeeks(weeks) {
return this._resolveLocal(this._dateTime.plusWeeks(weeks));
};
_proto.plusDays = function plusDays(days) {
return this._resolveLocal(this._dateTime.plusDays(days));
};
_proto.plusHours = function plusHours(hours) {
return this._resolveInstant(this._dateTime.plusHours(hours));
};
_proto.plusMinutes = function plusMinutes(minutes) {
return this._resolveInstant(this._dateTime.plusMinutes(minutes));
};
_proto.plusSeconds = function plusSeconds(seconds) {
return this._resolveInstant(this._dateTime.plusSeconds(seconds));
};
_proto.plusNanos = function plusNanos(nanos) {
return this._resolveInstant(this._dateTime.plusNanos(nanos));
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
return this._plusUnit(-1 * amountToSubtract, unit);
};
_proto.minusYears = function minusYears(years) {
return this.plusYears(-1 * years);
};
_proto.minusMonths = function minusMonths(months) {
return this.plusMonths(-1 * months);
};
_proto.minusWeeks = function minusWeeks(weeks) {
return this.plusWeeks(-1 * weeks);
};
_proto.minusDays = function minusDays(days) {
return this.plusDays(-1 * days);
};
_proto.minusHours = function minusHours(hours) {
return this.plusHours(-1 * hours);
};
_proto.minusMinutes = function minusMinutes(minutes) {
return this.plusMinutes(-1 * minutes);
};
_proto.minusSeconds = function minusSeconds(seconds) {
return this.plusSeconds(-1 * seconds);
};
_proto.minusNanos = function minusNanos(nanos) {
return this.plusNanos(-1 * nanos);
};
_proto.query = function query(_query) {
if (_query === TemporalQueries.localDate()) {
return this.toLocalDate();
}
requireNonNull(_query, 'query');
return _ChronoZonedDateTime.prototype.query.call(this, _query);
};
_proto.until = function until(endExclusive, unit) {
var end = ZonedDateTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
end = end.withZoneSameInstant(this._zone);
if (unit.isDateBased()) {
return this._dateTime.until(end._dateTime, unit);
} else {
var difference = this._offset.totalSeconds() - end._offset.totalSeconds();
var adjustedEnd = end._dateTime.plusSeconds(difference);
return this._dateTime.until(adjustedEnd, unit);
}
}
return unit.between(this, end);
};
_proto.toLocalDateTime = function toLocalDateTime() {
return this._dateTime;
};
_proto.toLocalDate = function toLocalDate() {
return this._dateTime.toLocalDate();
};
_proto.toLocalTime = function toLocalTime() {
return this._dateTime.toLocalTime();
};
_proto.toOffsetDateTime = function toOffsetDateTime() {
return OffsetDateTime.of(this._dateTime, this._offset);
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof ZonedDateTime) {
return this._dateTime.equals(other._dateTime) && this._offset.equals(other._offset) && this._zone.equals(other._zone);
}
return false;
};
_proto.hashCode = function hashCode() {
return MathUtil.hashCode(this._dateTime.hashCode(), this._offset.hashCode(), this._zone.hashCode());
};
_proto.toString = function toString() {
var str = this._dateTime.toString() + this._offset.toString();
if (this._offset !== this._zone) {
str += "[" + this._zone.toString() + "]";
}
return str;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
return _ChronoZonedDateTime.prototype.format.call(this, formatter);
};
return ZonedDateTime;
}(ChronoZonedDateTime);
function _init$7() {
ZonedDateTime.FROM = createTemporalQuery('ZonedDateTime.FROM', function (temporal) {
return ZonedDateTime.from(temporal);
});
}
var OffsetDateTime = function (_Temporal) {
_inheritsLoose(OffsetDateTime, _Temporal);
OffsetDateTime.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
if (temporal instanceof OffsetDateTime) {
return temporal;
}
try {
var offset = ZoneOffset.from(temporal);
try {
var ldt = LocalDateTime.from(temporal);
return OffsetDateTime.of(ldt, offset);
} catch (_) {
var instant = Instant.from(temporal);
return OffsetDateTime.ofInstant(instant, offset);
}
} catch (ex) {
throw new DateTimeException("Unable to obtain OffsetDateTime TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
};
OffsetDateTime.now = function now(clockOrZone) {
if (arguments.length === 0) {
return OffsetDateTime.now(Clock.systemDefaultZone());
} else {
requireNonNull(clockOrZone, 'clockOrZone');
if (clockOrZone instanceof ZoneId) {
return OffsetDateTime.now(Clock.system(clockOrZone));
} else if (clockOrZone instanceof Clock) {
var now = clockOrZone.instant();
return OffsetDateTime.ofInstant(now, clockOrZone.zone().rules().offset(now));
} else {
throw new IllegalArgumentException('clockOrZone must be an instance of ZoneId or Clock');
}
}
};
OffsetDateTime.of = function of() {
if (arguments.length <= 2) {
return OffsetDateTime.ofDateTime.apply(this, arguments);
} else if (arguments.length === 3) {
return OffsetDateTime.ofDateAndTime.apply(this, arguments);
} else {
return OffsetDateTime.ofNumbers.apply(this, arguments);
}
};
OffsetDateTime.ofDateTime = function ofDateTime(dateTime, offset) {
return new OffsetDateTime(dateTime, offset);
};
OffsetDateTime.ofDateAndTime = function ofDateAndTime(date, time, offset) {
var dt = LocalDateTime.of(date, time);
return new OffsetDateTime(dt, offset);
};
OffsetDateTime.ofNumbers = function ofNumbers(year, month, dayOfMonth, hour, minute, second, nanoOfSecond, offset) {
if (hour === void 0) {
hour = 0;
}
if (minute === void 0) {
minute = 0;
}
if (second === void 0) {
second = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
var dt = LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond);
return new OffsetDateTime(dt, offset);
};
OffsetDateTime.ofInstant = function ofInstant(instant, zone) {
requireNonNull(instant, 'instant');
requireNonNull(zone, 'zone');
var rules = zone.rules();
var offset = rules.offset(instant);
var ldt = LocalDateTime.ofEpochSecond(instant.epochSecond(), instant.nano(), offset);
return new OffsetDateTime(ldt, offset);
};
OffsetDateTime.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
}
requireNonNull(formatter, 'formatter');
return formatter.parse(text, OffsetDateTime.FROM);
};
function OffsetDateTime(dateTime, offset) {
var _this;
_this = _Temporal.call(this) || this;
requireNonNull(dateTime, 'dateTime');
requireInstance(dateTime, LocalDateTime, 'dateTime');
requireNonNull(offset, 'offset');
requireInstance(offset, ZoneOffset, 'offset');
_this._dateTime = dateTime;
_this._offset = offset;
return _this;
}
var _proto = OffsetDateTime.prototype;
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.EPOCH_DAY, this.toLocalDate().toEpochDay()).with(ChronoField.NANO_OF_DAY, this.toLocalTime().toNanoOfDay()).with(ChronoField.OFFSET_SECONDS, this.offset().totalSeconds());
};
_proto.until = function until(endExclusive, unit) {
var end = OffsetDateTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
end = end.withOffsetSameInstant(this._offset);
return this._dateTime.until(end._dateTime, unit);
}
return unit.between(this, end);
};
_proto.atZoneSameInstant = function atZoneSameInstant(zone) {
return ZonedDateTime.ofInstant(this._dateTime, this._offset, zone);
};
_proto.atZoneSimilarLocal = function atZoneSimilarLocal(zone) {
return ZonedDateTime.ofLocal(this._dateTime, zone, this._offset);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.chronology()) {
return IsoChronology.INSTANCE;
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
} else if (_query === TemporalQueries.offset() || _query === TemporalQueries.zone()) {
return this.offset();
} else if (_query === TemporalQueries.localDate()) {
return this.toLocalDate();
} else if (_query === TemporalQueries.localTime()) {
return this.toLocalTime();
} else if (_query === TemporalQueries.zoneId()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.get = function get(field) {
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.INSTANT_SECONDS:
throw new DateTimeException("Field too large for an int: " + field);
case ChronoField.OFFSET_SECONDS:
return this.offset().totalSeconds();
}
return this._dateTime.get(field);
}
return _Temporal.prototype.get.call(this, field);
};
_proto.getLong = function getLong(field) {
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.INSTANT_SECONDS:
return this.toEpochSecond();
case ChronoField.OFFSET_SECONDS:
return this.offset().totalSeconds();
}
return this._dateTime.getLong(field);
}
return field.getFrom(this);
};
_proto.offset = function offset() {
return this._offset;
};
_proto.year = function year() {
return this._dateTime.year();
};
_proto.monthValue = function monthValue() {
return this._dateTime.monthValue();
};
_proto.month = function month() {
return this._dateTime.month();
};
_proto.dayOfMonth = function dayOfMonth() {
return this._dateTime.dayOfMonth();
};
_proto.dayOfYear = function dayOfYear() {
return this._dateTime.dayOfYear();
};
_proto.dayOfWeek = function dayOfWeek() {
return this._dateTime.dayOfWeek();
};
_proto.hour = function hour() {
return this._dateTime.hour();
};
_proto.minute = function minute() {
return this._dateTime.minute();
};
_proto.second = function second() {
return this._dateTime.second();
};
_proto.nano = function nano() {
return this._dateTime.nano();
};
_proto.toLocalDateTime = function toLocalDateTime() {
return this._dateTime;
};
_proto.toLocalDate = function toLocalDate() {
return this._dateTime.toLocalDate();
};
_proto.toLocalTime = function toLocalTime() {
return this._dateTime.toLocalTime();
};
_proto.toOffsetTime = function toOffsetTime() {
return OffsetTime.of(this._dateTime.toLocalTime(), this._offset);
};
_proto.toZonedDateTime = function toZonedDateTime() {
return ZonedDateTime.of(this._dateTime, this._offset);
};
_proto.toInstant = function toInstant() {
return this._dateTime.toInstant(this._offset);
};
_proto.toEpochSecond = function toEpochSecond() {
return this._dateTime.toEpochSecond(this._offset);
};
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit.isDateBased() || fieldOrUnit.isTimeBased();
}
if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isDateBased() || fieldOrUnit.isTimeBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
if (field === ChronoField.INSTANT_SECONDS || field === ChronoField.OFFSET_SECONDS) {
return field.range();
}
return this._dateTime.range(field);
}
return field.rangeRefinedBy(this);
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster);
if (adjuster instanceof LocalDate || adjuster instanceof LocalTime || adjuster instanceof LocalDateTime) {
return this._withDateTimeOffset(this._dateTime.with(adjuster), this._offset);
} else if (adjuster instanceof Instant) {
return OffsetDateTime.ofInstant(adjuster, this._offset);
} else if (adjuster instanceof ZoneOffset) {
return this._withDateTimeOffset(this._dateTime, adjuster);
} else if (adjuster instanceof OffsetDateTime) {
return adjuster;
}
return adjuster.adjustInto(this);
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field);
if (field instanceof ChronoField) {
var f = field;
switch (f) {
case ChronoField.INSTANT_SECONDS:
return OffsetDateTime.ofInstant(Instant.ofEpochSecond(newValue, this.nano()), this._offset);
case ChronoField.OFFSET_SECONDS:
{
return this._withDateTimeOffset(this._dateTime, ZoneOffset.ofTotalSeconds(f.checkValidIntValue(newValue)));
}
}
return this._withDateTimeOffset(this._dateTime.with(field, newValue), this._offset);
}
return field.adjustInto(this, newValue);
};
_proto._withDateTimeOffset = function _withDateTimeOffset(dateTime, offset) {
if (this._dateTime === dateTime && this._offset.equals(offset)) {
return this;
}
return new OffsetDateTime(dateTime, offset);
};
_proto.withYear = function withYear(year) {
return this._withDateTimeOffset(this._dateTime.withYear(year), this._offset);
};
_proto.withMonth = function withMonth(month) {
return this._withDateTimeOffset(this._dateTime.withMonth(month), this._offset);
};
_proto.withDayOfMonth = function withDayOfMonth(dayOfMonth) {
return this._withDateTimeOffset(this._dateTime.withDayOfMonth(dayOfMonth), this._offset);
};
_proto.withDayOfYear = function withDayOfYear(dayOfYear) {
return this._withDateTimeOffset(this._dateTime.withDayOfYear(dayOfYear), this._offset);
};
_proto.withHour = function withHour(hour) {
return this._withDateTimeOffset(this._dateTime.withHour(hour), this._offset);
};
_proto.withMinute = function withMinute(minute) {
return this._withDateTimeOffset(this._dateTime.withMinute(minute), this._offset);
};
_proto.withSecond = function withSecond(second) {
return this._withDateTimeOffset(this._dateTime.withSecond(second), this._offset);
};
_proto.withNano = function withNano(nanoOfSecond) {
return this._withDateTimeOffset(this._dateTime.withNano(nanoOfSecond), this._offset);
};
_proto.withOffsetSameLocal = function withOffsetSameLocal(offset) {
requireNonNull(offset, 'offset');
return this._withDateTimeOffset(this._dateTime, offset);
};
_proto.withOffsetSameInstant = function withOffsetSameInstant(offset) {
requireNonNull(offset, 'offset');
if (offset.equals(this._offset)) {
return this;
}
var difference = offset.totalSeconds() - this._offset.totalSeconds();
var adjusted = this._dateTime.plusSeconds(difference);
return new OffsetDateTime(adjusted, offset);
};
_proto.truncatedTo = function truncatedTo(unit) {
return this._withDateTimeOffset(this._dateTime.truncatedTo(unit), this._offset);
};
_proto._plusAmount = function _plusAmount(amount) {
requireNonNull(amount, 'amount');
return amount.addTo(this);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
if (unit instanceof ChronoUnit) {
return this._withDateTimeOffset(this._dateTime.plus(amountToAdd, unit), this._offset);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(years) {
return this._withDateTimeOffset(this._dateTime.plusYears(years), this._offset);
};
_proto.plusMonths = function plusMonths(months) {
return this._withDateTimeOffset(this._dateTime.plusMonths(months), this._offset);
};
_proto.plusWeeks = function plusWeeks(weeks) {
return this._withDateTimeOffset(this._dateTime.plusWeeks(weeks), this._offset);
};
_proto.plusDays = function plusDays(days) {
return this._withDateTimeOffset(this._dateTime.plusDays(days), this._offset);
};
_proto.plusHours = function plusHours(hours) {
return this._withDateTimeOffset(this._dateTime.plusHours(hours), this._offset);
};
_proto.plusMinutes = function plusMinutes(minutes) {
return this._withDateTimeOffset(this._dateTime.plusMinutes(minutes), this._offset);
};
_proto.plusSeconds = function plusSeconds(seconds) {
return this._withDateTimeOffset(this._dateTime.plusSeconds(seconds), this._offset);
};
_proto.plusNanos = function plusNanos(nanos) {
return this._withDateTimeOffset(this._dateTime.plusNanos(nanos), this._offset);
};
_proto._minusAmount = function _minusAmount(amount) {
requireNonNull(amount);
return amount.subtractFrom(this);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
return this.plus(-1 * amountToSubtract, unit);
};
_proto.minusYears = function minusYears(years) {
return this._withDateTimeOffset(this._dateTime.minusYears(years), this._offset);
};
_proto.minusMonths = function minusMonths(months) {
return this._withDateTimeOffset(this._dateTime.minusMonths(months), this._offset);
};
_proto.minusWeeks = function minusWeeks(weeks) {
return this._withDateTimeOffset(this._dateTime.minusWeeks(weeks), this._offset);
};
_proto.minusDays = function minusDays(days) {
return this._withDateTimeOffset(this._dateTime.minusDays(days), this._offset);
};
_proto.minusHours = function minusHours(hours) {
return this._withDateTimeOffset(this._dateTime.minusHours(hours), this._offset);
};
_proto.minusMinutes = function minusMinutes(minutes) {
return this._withDateTimeOffset(this._dateTime.minusMinutes(minutes), this._offset);
};
_proto.minusSeconds = function minusSeconds(seconds) {
return this._withDateTimeOffset(this._dateTime.minusSeconds(seconds), this._offset);
};
_proto.minusNanos = function minusNanos(nanos) {
return this._withDateTimeOffset(this._dateTime.minusNanos(nanos), this._offset);
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, OffsetDateTime, 'other');
if (this.offset().equals(other.offset())) {
return this.toLocalDateTime().compareTo(other.toLocalDateTime());
}
var cmp = MathUtil.compareNumbers(this.toEpochSecond(), other.toEpochSecond());
if (cmp === 0) {
cmp = this.toLocalTime().nano() - other.toLocalTime().nano();
if (cmp === 0) {
cmp = this.toLocalDateTime().compareTo(other.toLocalDateTime());
}
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
requireNonNull(other, 'other');
var thisEpochSec = this.toEpochSecond();
var otherEpochSec = other.toEpochSecond();
return thisEpochSec > otherEpochSec || thisEpochSec === otherEpochSec && this.toLocalTime().nano() > other.toLocalTime().nano();
};
_proto.isBefore = function isBefore(other) {
requireNonNull(other, 'other');
var thisEpochSec = this.toEpochSecond();
var otherEpochSec = other.toEpochSecond();
return thisEpochSec < otherEpochSec || thisEpochSec === otherEpochSec && this.toLocalTime().nano() < other.toLocalTime().nano();
};
_proto.isEqual = function isEqual(other) {
requireNonNull(other, 'other');
return this.toEpochSecond() === other.toEpochSecond() && this.toLocalTime().nano() === other.toLocalTime().nano();
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof OffsetDateTime) {
return this._dateTime.equals(other._dateTime) && this._offset.equals(other._offset);
}
return false;
};
_proto.hashCode = function hashCode() {
return this._dateTime.hashCode() ^ this._offset.hashCode();
};
_proto.toString = function toString() {
return this._dateTime.toString() + this._offset.toString();
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this);
};
return OffsetDateTime;
}(Temporal);
function _init$6() {
OffsetDateTime.MIN = LocalDateTime.MIN.atOffset(ZoneOffset.MAX);
OffsetDateTime.MAX = LocalDateTime.MAX.atOffset(ZoneOffset.MIN);
OffsetDateTime.FROM = createTemporalQuery('OffsetDateTime.FROM', function (temporal) {
return OffsetDateTime.from(temporal);
});
}
var DAYS_PER_CYCLE = 146097;
var DAYS_0000_TO_1970 = DAYS_PER_CYCLE * 5 - (30 * 365 + 7);
var LocalDate = function (_ChronoLocalDate) {
_inheritsLoose(LocalDate, _ChronoLocalDate);
LocalDate.now = function now(clockOrZone) {
var clock;
if (clockOrZone == null) {
clock = Clock.systemDefaultZone();
} else if (clockOrZone instanceof ZoneId) {
clock = Clock.system(clockOrZone);
} else {
clock = clockOrZone;
}
return LocalDate.ofInstant(clock.instant(), clock.zone());
};
LocalDate.ofInstant = function ofInstant(instant, zone) {
if (zone === void 0) {
zone = ZoneId.systemDefault();
}
requireNonNull(instant, 'instant');
var offset = zone.rules().offset(instant);
var epochSec = instant.epochSecond() + offset.totalSeconds();
var epochDay = MathUtil.floorDiv(epochSec, LocalTime.SECONDS_PER_DAY);
return LocalDate.ofEpochDay(epochDay);
};
LocalDate.of = function of(year, month, dayOfMonth) {
return new LocalDate(year, month, dayOfMonth);
};
LocalDate.ofYearDay = function ofYearDay(year, dayOfYear) {
ChronoField.YEAR.checkValidValue(year);
var leap = IsoChronology.isLeapYear(year);
if (dayOfYear === 366 && leap === false) {
assert(false, "Invalid date 'DayOfYear 366' as '" + year + "' is not a leap year", DateTimeException);
}
var moy = Month.of(Math.floor((dayOfYear - 1) / 31 + 1));
var monthEnd = moy.firstDayOfYear(leap) + moy.length(leap) - 1;
if (dayOfYear > monthEnd) {
moy = moy.plus(1);
}
var dom = dayOfYear - moy.firstDayOfYear(leap) + 1;
return new LocalDate(year, moy.value(), dom);
};
LocalDate.ofEpochDay = function ofEpochDay(epochDay) {
if (epochDay === void 0) {
epochDay = 0;
}
var adjust, adjustCycles, doyEst, yearEst, zeroDay;
zeroDay = epochDay + DAYS_0000_TO_1970;
zeroDay -= 60;
adjust = 0;
if (zeroDay < 0) {
adjustCycles = MathUtil.intDiv(zeroDay + 1, DAYS_PER_CYCLE) - 1;
adjust = adjustCycles * 400;
zeroDay += -adjustCycles * DAYS_PER_CYCLE;
}
yearEst = MathUtil.intDiv(400 * zeroDay + 591, DAYS_PER_CYCLE);
doyEst = zeroDay - (365 * yearEst + MathUtil.intDiv(yearEst, 4) - MathUtil.intDiv(yearEst, 100) + MathUtil.intDiv(yearEst, 400));
if (doyEst < 0) {
yearEst--;
doyEst = zeroDay - (365 * yearEst + MathUtil.intDiv(yearEst, 4) - MathUtil.intDiv(yearEst, 100) + MathUtil.intDiv(yearEst, 400));
}
yearEst += adjust;
var marchDoy0 = doyEst;
var marchMonth0 = MathUtil.intDiv(marchDoy0 * 5 + 2, 153);
var month = (marchMonth0 + 2) % 12 + 1;
var dom = marchDoy0 - MathUtil.intDiv(marchMonth0 * 306 + 5, 10) + 1;
yearEst += MathUtil.intDiv(marchMonth0, 10);
var year = yearEst;
return new LocalDate(year, month, dom);
};
LocalDate.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
var date = temporal.query(TemporalQueries.localDate());
if (date == null) {
throw new DateTimeException("Unable to obtain LocalDate from TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
return date;
};
LocalDate.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_LOCAL_DATE;
}
assert(formatter != null, 'formatter', NullPointerException);
return formatter.parse(text, LocalDate.FROM);
};
LocalDate._resolvePreviousValid = function _resolvePreviousValid(year, month, day) {
switch (month) {
case 2:
day = Math.min(day, IsoChronology.isLeapYear(year) ? 29 : 28);
break;
case 4:
case 6:
case 9:
case 11:
day = Math.min(day, 30);
break;
}
return LocalDate.of(year, month, day);
};
function LocalDate(year, month, dayOfMonth) {
var _this;
_this = _ChronoLocalDate.call(this) || this;
requireNonNull(year, 'year');
requireNonNull(month, 'month');
requireNonNull(dayOfMonth, 'dayOfMonth');
if (month instanceof Month) {
month = month.value();
}
_this._year = MathUtil.safeToInt(year);
_this._month = MathUtil.safeToInt(month);
_this._day = MathUtil.safeToInt(dayOfMonth);
LocalDate._validate(_this._year, _this._month, _this._day);
return _this;
}
LocalDate._validate = function _validate(year, month, dayOfMonth) {
var dom;
ChronoField.YEAR.checkValidValue(year);
ChronoField.MONTH_OF_YEAR.checkValidValue(month);
ChronoField.DAY_OF_MONTH.checkValidValue(dayOfMonth);
if (dayOfMonth > 28) {
dom = 31;
switch (month) {
case 2:
dom = IsoChronology.isLeapYear(year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
dom = 30;
}
if (dayOfMonth > dom) {
if (dayOfMonth === 29) {
assert(false, "Invalid date 'February 29' as '" + year + "' is not a leap year", DateTimeException);
} else {
assert(false, "Invalid date '" + year + "' '" + month + "' '" + dayOfMonth + "'", DateTimeException);
}
}
}
};
var _proto = LocalDate.prototype;
_proto.isSupported = function isSupported(field) {
return _ChronoLocalDate.prototype.isSupported.call(this, field);
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
if (field.isDateBased()) {
switch (field) {
case ChronoField.DAY_OF_MONTH:
return ValueRange.of(1, this.lengthOfMonth());
case ChronoField.DAY_OF_YEAR:
return ValueRange.of(1, this.lengthOfYear());
case ChronoField.ALIGNED_WEEK_OF_MONTH:
return ValueRange.of(1, this.month() === Month.FEBRUARY && this.isLeapYear() === false ? 4 : 5);
case ChronoField.YEAR_OF_ERA:
return this._year <= 0 ? ValueRange.of(1, Year.MAX_VALUE + 1) : ValueRange.of(1, Year.MAX_VALUE);
}
return field.range();
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.rangeRefinedBy(this);
};
_proto.get = function get(field) {
return this.getLong(field);
};
_proto.getLong = function getLong(field) {
assert(field != null, '', NullPointerException);
if (field instanceof ChronoField) {
return this._get0(field);
}
return field.getFrom(this);
};
_proto._get0 = function _get0(field) {
switch (field) {
case ChronoField.DAY_OF_WEEK:
return this.dayOfWeek().value();
case ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH:
return MathUtil.intMod(this._day - 1, 7) + 1;
case ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR:
return MathUtil.intMod(this.dayOfYear() - 1, 7) + 1;
case ChronoField.DAY_OF_MONTH:
return this._day;
case ChronoField.DAY_OF_YEAR:
return this.dayOfYear();
case ChronoField.EPOCH_DAY:
return this.toEpochDay();
case ChronoField.ALIGNED_WEEK_OF_MONTH:
return MathUtil.intDiv(this._day - 1, 7) + 1;
case ChronoField.ALIGNED_WEEK_OF_YEAR:
return MathUtil.intDiv(this.dayOfYear() - 1, 7) + 1;
case ChronoField.MONTH_OF_YEAR:
return this._month;
case ChronoField.PROLEPTIC_MONTH:
return this._prolepticMonth();
case ChronoField.YEAR_OF_ERA:
return this._year >= 1 ? this._year : 1 - this._year;
case ChronoField.YEAR:
return this._year;
case ChronoField.ERA:
return this._year >= 1 ? 1 : 0;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
};
_proto._prolepticMonth = function _prolepticMonth() {
return this._year * 12 + (this._month - 1);
};
_proto.chronology = function chronology() {
return IsoChronology.INSTANCE;
};
_proto.year = function year() {
return this._year;
};
_proto.monthValue = function monthValue() {
return this._month;
};
_proto.month = function month() {
return Month.of(this._month);
};
_proto.dayOfMonth = function dayOfMonth() {
return this._day;
};
_proto.dayOfYear = function dayOfYear() {
return this.month().firstDayOfYear(this.isLeapYear()) + this._day - 1;
};
_proto.dayOfWeek = function dayOfWeek() {
var dow0 = MathUtil.floorMod(this.toEpochDay() + 3, 7);
return DayOfWeek.of(dow0 + 1);
};
_proto.isLeapYear = function isLeapYear() {
return IsoChronology.isLeapYear(this._year);
};
_proto.lengthOfMonth = function lengthOfMonth() {
switch (this._month) {
case 2:
return this.isLeapYear() ? 29 : 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
};
_proto.lengthOfYear = function lengthOfYear() {
return this.isLeapYear() ? 366 : 365;
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster, 'adjuster');
if (adjuster instanceof LocalDate) {
return adjuster;
}
return _ChronoLocalDate.prototype._withAdjuster.call(this, adjuster);
};
_proto._withField = function _withField(field, newValue) {
assert(field != null, 'field', NullPointerException);
if (field instanceof ChronoField) {
var f = field;
f.checkValidValue(newValue);
switch (f) {
case ChronoField.DAY_OF_WEEK:
return this.plusDays(newValue - this.dayOfWeek().value());
case ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH:
return this.plusDays(newValue - this.getLong(ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH));
case ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR:
return this.plusDays(newValue - this.getLong(ChronoField.ALIGNED_DAY_OF_WEEK_IN_YEAR));
case ChronoField.DAY_OF_MONTH:
return this.withDayOfMonth(newValue);
case ChronoField.DAY_OF_YEAR:
return this.withDayOfYear(newValue);
case ChronoField.EPOCH_DAY:
return LocalDate.ofEpochDay(newValue);
case ChronoField.ALIGNED_WEEK_OF_MONTH:
return this.plusWeeks(newValue - this.getLong(ChronoField.ALIGNED_WEEK_OF_MONTH));
case ChronoField.ALIGNED_WEEK_OF_YEAR:
return this.plusWeeks(newValue - this.getLong(ChronoField.ALIGNED_WEEK_OF_YEAR));
case ChronoField.MONTH_OF_YEAR:
return this.withMonth(newValue);
case ChronoField.PROLEPTIC_MONTH:
return this.plusMonths(newValue - this.getLong(ChronoField.PROLEPTIC_MONTH));
case ChronoField.YEAR_OF_ERA:
return this.withYear(this._year >= 1 ? newValue : 1 - newValue);
case ChronoField.YEAR:
return this.withYear(newValue);
case ChronoField.ERA:
return this.getLong(ChronoField.ERA) === newValue ? this : this.withYear(1 - this._year);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.adjustInto(this, newValue);
};
_proto.withYear = function withYear(year) {
if (this._year === year) {
return this;
}
ChronoField.YEAR.checkValidValue(year);
return LocalDate._resolvePreviousValid(year, this._month, this._day);
};
_proto.withMonth = function withMonth(month) {
var m = month instanceof Month ? month.value() : month;
if (this._month === m) {
return this;
}
ChronoField.MONTH_OF_YEAR.checkValidValue(m);
return LocalDate._resolvePreviousValid(this._year, m, this._day);
};
_proto.withDayOfMonth = function withDayOfMonth(dayOfMonth) {
if (this._day === dayOfMonth) {
return this;
}
return LocalDate.of(this._year, this._month, dayOfMonth);
};
_proto.withDayOfYear = function withDayOfYear(dayOfYear) {
if (this.dayOfYear() === dayOfYear) {
return this;
}
return LocalDate.ofYearDay(this._year, dayOfYear);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(amountToAdd, 'amountToAdd');
requireNonNull(unit, 'unit');
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.DAYS:
return this.plusDays(amountToAdd);
case ChronoUnit.WEEKS:
return this.plusWeeks(amountToAdd);
case ChronoUnit.MONTHS:
return this.plusMonths(amountToAdd);
case ChronoUnit.YEARS:
return this.plusYears(amountToAdd);
case ChronoUnit.DECADES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 10));
case ChronoUnit.CENTURIES:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 100));
case ChronoUnit.MILLENNIA:
return this.plusYears(MathUtil.safeMultiply(amountToAdd, 1000));
case ChronoUnit.ERAS:
return this.with(ChronoField.ERA, MathUtil.safeAdd(this.getLong(ChronoField.ERA), amountToAdd));
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(yearsToAdd) {
if (yearsToAdd === 0) {
return this;
}
var newYear = ChronoField.YEAR.checkValidIntValue(this._year + yearsToAdd);
return LocalDate._resolvePreviousValid(newYear, this._month, this._day);
};
_proto.plusMonths = function plusMonths(monthsToAdd) {
if (monthsToAdd === 0) {
return this;
}
var monthCount = this._year * 12 + (this._month - 1);
var calcMonths = monthCount + monthsToAdd;
var newYear = ChronoField.YEAR.checkValidIntValue(MathUtil.floorDiv(calcMonths, 12));
var newMonth = MathUtil.floorMod(calcMonths, 12) + 1;
return LocalDate._resolvePreviousValid(newYear, newMonth, this._day);
};
_proto.plusWeeks = function plusWeeks(weeksToAdd) {
return this.plusDays(MathUtil.safeMultiply(weeksToAdd, 7));
};
_proto.plusDays = function plusDays(daysToAdd) {
if (daysToAdd === 0) {
return this;
}
var mjDay = MathUtil.safeAdd(this.toEpochDay(), daysToAdd);
return LocalDate.ofEpochDay(mjDay);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
requireNonNull(amountToSubtract, 'amountToSubtract');
requireNonNull(unit, 'unit');
return this._plusUnit(-1 * amountToSubtract, unit);
};
_proto.minusYears = function minusYears(yearsToSubtract) {
return this.plusYears(yearsToSubtract * -1);
};
_proto.minusMonths = function minusMonths(monthsToSubtract) {
return this.plusMonths(monthsToSubtract * -1);
};
_proto.minusWeeks = function minusWeeks(weeksToSubtract) {
return this.plusWeeks(weeksToSubtract * -1);
};
_proto.minusDays = function minusDays(daysToSubtract) {
return this.plusDays(daysToSubtract * -1);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.localDate()) {
return this;
}
return _ChronoLocalDate.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
return _ChronoLocalDate.prototype.adjustInto.call(this, temporal);
};
_proto.until = function until(p1, p2) {
if (arguments.length < 2) {
return this.until1(p1);
} else {
return this.until2(p1, p2);
}
};
_proto.until2 = function until2(endExclusive, unit) {
var end = LocalDate.from(endExclusive);
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.DAYS:
return this.daysUntil(end);
case ChronoUnit.WEEKS:
return MathUtil.intDiv(this.daysUntil(end), 7);
case ChronoUnit.MONTHS:
return this._monthsUntil(end);
case ChronoUnit.YEARS:
return MathUtil.intDiv(this._monthsUntil(end), 12);
case ChronoUnit.DECADES:
return MathUtil.intDiv(this._monthsUntil(end), 120);
case ChronoUnit.CENTURIES:
return MathUtil.intDiv(this._monthsUntil(end), 1200);
case ChronoUnit.MILLENNIA:
return MathUtil.intDiv(this._monthsUntil(end), 12000);
case ChronoUnit.ERAS:
return end.getLong(ChronoField.ERA) - this.getLong(ChronoField.ERA);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
_proto.daysUntil = function daysUntil(end) {
return end.toEpochDay() - this.toEpochDay();
};
_proto._monthsUntil = function _monthsUntil(end) {
var packed1 = this._prolepticMonth() * 32 + this.dayOfMonth();
var packed2 = end._prolepticMonth() * 32 + end.dayOfMonth();
return MathUtil.intDiv(packed2 - packed1, 32);
};
_proto.until1 = function until1(endDate) {
var end = LocalDate.from(endDate);
var totalMonths = end._prolepticMonth() - this._prolepticMonth();
var days = end._day - this._day;
if (totalMonths > 0 && days < 0) {
totalMonths--;
var calcDate = this.plusMonths(totalMonths);
days = end.toEpochDay() - calcDate.toEpochDay();
} else if (totalMonths < 0 && days > 0) {
totalMonths++;
days -= end.lengthOfMonth();
}
var years = MathUtil.intDiv(totalMonths, 12);
var months = MathUtil.intMod(totalMonths, 12);
return Period.of(years, months, days);
};
_proto.atTime = function atTime() {
if (arguments.length === 1) {
return this.atTime1.apply(this, arguments);
} else {
return this.atTime4.apply(this, arguments);
}
};
_proto.atTime1 = function atTime1(time) {
requireNonNull(time, 'time');
if (time instanceof LocalTime) {
return LocalDateTime.of(this, time);
} else if (time instanceof OffsetTime) {
return this._atTimeOffsetTime(time);
} else {
throw new IllegalArgumentException("time must be an instance of LocalTime or OffsetTime" + (time && time.constructor && time.constructor.name ? ", but is " + time.constructor.name : ''));
}
};
_proto.atTime4 = function atTime4(hour, minute, second, nanoOfSecond) {
if (second === void 0) {
second = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
return this.atTime1(LocalTime.of(hour, minute, second, nanoOfSecond));
};
_proto._atTimeOffsetTime = function _atTimeOffsetTime(time) {
return OffsetDateTime.of(LocalDateTime.of(this, time.toLocalTime()), time.offset());
};
_proto.atStartOfDay = function atStartOfDay(zone) {
if (zone != null) {
return this._atStartOfDayWithZone(zone);
} else {
return LocalDateTime.of(this, LocalTime.MIDNIGHT);
}
};
_proto._atStartOfDayWithZone = function _atStartOfDayWithZone(zone) {
requireNonNull(zone, 'zone');
var ldt = this.atTime(LocalTime.MIDNIGHT);
if (zone instanceof ZoneOffset === false) {
var trans = zone.rules().transition(ldt);
if (trans != null && trans.isGap()) {
ldt = trans.dateTimeAfter();
}
}
return ZonedDateTime.of(ldt, zone);
};
_proto.toEpochDay = function toEpochDay() {
var y = this._year;
var m = this._month;
var total = 0;
total += 365 * y;
if (y >= 0) {
total += MathUtil.intDiv(y + 3, 4) - MathUtil.intDiv(y + 99, 100) + MathUtil.intDiv(y + 399, 400);
} else {
total -= MathUtil.intDiv(y, -4) - MathUtil.intDiv(y, -100) + MathUtil.intDiv(y, -400);
}
total += MathUtil.intDiv(367 * m - 362, 12);
total += this.dayOfMonth() - 1;
if (m > 2) {
total--;
if (!IsoChronology.isLeapYear(y)) {
total--;
}
}
return total - DAYS_0000_TO_1970;
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, LocalDate, 'other');
return this._compareTo0(other);
};
_proto._compareTo0 = function _compareTo0(otherDate) {
var cmp = this._year - otherDate._year;
if (cmp === 0) {
cmp = this._month - otherDate._month;
if (cmp === 0) {
cmp = this._day - otherDate._day;
}
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
return this.compareTo(other) > 0;
};
_proto.isBefore = function isBefore(other) {
return this.compareTo(other) < 0;
};
_proto.isEqual = function isEqual(other) {
return this.compareTo(other) === 0;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof LocalDate) {
return this._compareTo0(other) === 0;
}
return false;
};
_proto.hashCode = function hashCode() {
var yearValue = this._year;
var monthValue = this._month;
var dayValue = this._day;
return MathUtil.hash(yearValue & 0xFFFFF800 ^ (yearValue << 11) + (monthValue << 6) + dayValue);
};
_proto.toString = function toString() {
var dayString, monthString, yearString;
var yearValue = this._year;
var monthValue = this._month;
var dayValue = this._day;
var absYear = Math.abs(yearValue);
if (absYear < 1000) {
if (yearValue < 0) {
yearString = "-" + ("" + (yearValue - 10000)).slice(-4);
} else {
yearString = ("" + (yearValue + 10000)).slice(-4);
}
} else {
if (yearValue > 9999) {
yearString = "+" + yearValue;
} else {
yearString = "" + yearValue;
}
}
if (monthValue < 10) {
monthString = "-0" + monthValue;
} else {
monthString = "-" + monthValue;
}
if (dayValue < 10) {
dayString = "-0" + dayValue;
} else {
dayString = "-" + dayValue;
}
return yearString + monthString + dayString;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
requireInstance(formatter, DateTimeFormatter, 'formatter');
return _ChronoLocalDate.prototype.format.call(this, formatter);
};
return LocalDate;
}(ChronoLocalDate);
function _init$5() {
LocalDate.MIN = LocalDate.of(YearConstants.MIN_VALUE, 1, 1);
LocalDate.MAX = LocalDate.of(YearConstants.MAX_VALUE, 12, 31);
LocalDate.EPOCH_0 = LocalDate.ofEpochDay(0);
LocalDate.FROM = createTemporalQuery('LocalDate.FROM', function (temporal) {
return LocalDate.from(temporal);
});
}
var ChronoLocalDateTime = function (_Temporal) {
_inheritsLoose(ChronoLocalDateTime, _Temporal);
function ChronoLocalDateTime() {
return _Temporal.apply(this, arguments) || this;
}
var _proto = ChronoLocalDateTime.prototype;
_proto.chronology = function chronology() {
return this.toLocalDate().chronology();
};
_proto.query = function query(_query) {
if (_query === TemporalQueries.chronology()) {
return this.chronology();
} else if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
} else if (_query === TemporalQueries.localDate()) {
return LocalDate.ofEpochDay(this.toLocalDate().toEpochDay());
} else if (_query === TemporalQueries.localTime()) {
return this.toLocalTime();
} else if (_query === TemporalQueries.zone() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.offset()) {
return null;
}
return _Temporal.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(ChronoField.EPOCH_DAY, this.toLocalDate().toEpochDay()).with(ChronoField.NANO_OF_DAY, this.toLocalTime().toNanoOfDay());
};
_proto.toInstant = function toInstant(offset) {
requireInstance(offset, ZoneOffset, 'zoneId');
return Instant.ofEpochSecond(this.toEpochSecond(offset), this.toLocalTime().nano());
};
_proto.toEpochSecond = function toEpochSecond(offset) {
requireNonNull(offset, 'offset');
var epochDay = this.toLocalDate().toEpochDay();
var secs = epochDay * 86400 + this.toLocalTime().toSecondOfDay();
secs -= offset.totalSeconds();
return MathUtil.safeToInt(secs);
};
return ChronoLocalDateTime;
}(Temporal);
var LocalDateTime = function (_ChronoLocalDateTime) {
_inheritsLoose(LocalDateTime, _ChronoLocalDateTime);
LocalDateTime.now = function now(clockOrZone) {
if (clockOrZone == null) {
return LocalDateTime._now(Clock.systemDefaultZone());
} else if (clockOrZone instanceof Clock) {
return LocalDateTime._now(clockOrZone);
} else {
return LocalDateTime._now(Clock.system(clockOrZone));
}
};
LocalDateTime._now = function _now(clock) {
requireNonNull(clock, 'clock');
return LocalDateTime.ofInstant(clock.instant(), clock.zone());
};
LocalDateTime._ofEpochMillis = function _ofEpochMillis(epochMilli, offset) {
var localSecond = MathUtil.floorDiv(epochMilli, 1000) + offset.totalSeconds();
var localEpochDay = MathUtil.floorDiv(localSecond, LocalTime.SECONDS_PER_DAY);
var secsOfDay = MathUtil.floorMod(localSecond, LocalTime.SECONDS_PER_DAY);
var nanoOfSecond = MathUtil.floorMod(epochMilli, 1000) * 1000000;
var date = LocalDate.ofEpochDay(localEpochDay);
var time = LocalTime.ofSecondOfDay(secsOfDay, nanoOfSecond);
return new LocalDateTime(date, time);
};
LocalDateTime.of = function of() {
if (arguments.length <= 2) {
return LocalDateTime.ofDateAndTime.apply(this, arguments);
} else {
return LocalDateTime.ofNumbers.apply(this, arguments);
}
};
LocalDateTime.ofNumbers = function ofNumbers(year, month, dayOfMonth, hour, minute, second, nanoOfSecond) {
if (hour === void 0) {
hour = 0;
}
if (minute === void 0) {
minute = 0;
}
if (second === void 0) {
second = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
var date = LocalDate.of(year, month, dayOfMonth);
var time = LocalTime.of(hour, minute, second, nanoOfSecond);
return new LocalDateTime(date, time);
};
LocalDateTime.ofDateAndTime = function ofDateAndTime(date, time) {
requireNonNull(date, 'date');
requireNonNull(time, 'time');
return new LocalDateTime(date, time);
};
LocalDateTime.ofInstant = function ofInstant(instant, zone) {
if (zone === void 0) {
zone = ZoneId.systemDefault();
}
requireNonNull(instant, 'instant');
requireInstance(instant, Instant, 'instant');
requireNonNull(zone, 'zone');
var offset = zone.rules().offset(instant);
return LocalDateTime.ofEpochSecond(instant.epochSecond(), instant.nano(), offset);
};
LocalDateTime.ofEpochSecond = function ofEpochSecond(epochSecond, nanoOfSecond, offset) {
if (epochSecond === void 0) {
epochSecond = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
if (arguments.length === 2 && nanoOfSecond instanceof ZoneOffset) {
offset = nanoOfSecond;
nanoOfSecond = 0;
}
requireNonNull(offset, 'offset');
var localSecond = epochSecond + offset.totalSeconds();
var localEpochDay = MathUtil.floorDiv(localSecond, LocalTime.SECONDS_PER_DAY);
var secsOfDay = MathUtil.floorMod(localSecond, LocalTime.SECONDS_PER_DAY);
var date = LocalDate.ofEpochDay(localEpochDay);
var time = LocalTime.ofSecondOfDay(secsOfDay, nanoOfSecond);
return new LocalDateTime(date, time);
};
LocalDateTime.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
if (temporal instanceof LocalDateTime) {
return temporal;
} else if (temporal instanceof ZonedDateTime) {
return temporal.toLocalDateTime();
}
try {
var date = LocalDate.from(temporal);
var time = LocalTime.from(temporal);
return new LocalDateTime(date, time);
} catch (ex) {
throw new DateTimeException("Unable to obtain LocalDateTime TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
};
LocalDateTime.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
}
requireNonNull(formatter, 'formatter');
return formatter.parse(text, LocalDateTime.FROM);
};
function LocalDateTime(date, time) {
var _this;
_this = _ChronoLocalDateTime.call(this) || this;
requireInstance(date, LocalDate, 'date');
requireInstance(time, LocalTime, 'time');
_this._date = date;
_this._time = time;
return _this;
}
var _proto = LocalDateTime.prototype;
_proto._withDateTime = function _withDateTime(newDate, newTime) {
if (this._date.equals(newDate) && this._time.equals(newTime)) {
return this;
}
return new LocalDateTime(newDate, newTime);
};
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit.isDateBased() || fieldOrUnit.isTimeBased();
} else if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isDateBased() || fieldOrUnit.isTimeBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.range = function range(field) {
if (field instanceof ChronoField) {
return field.isTimeBased() ? this._time.range(field) : this._date.range(field);
}
return field.rangeRefinedBy(this);
};
_proto.get = function get(field) {
if (field instanceof ChronoField) {
return field.isTimeBased() ? this._time.get(field) : this._date.get(field);
}
return _ChronoLocalDateTime.prototype.get.call(this, field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
return field.isTimeBased() ? this._time.getLong(field) : this._date.getLong(field);
}
return field.getFrom(this);
};
_proto.year = function year() {
return this._date.year();
};
_proto.monthValue = function monthValue() {
return this._date.monthValue();
};
_proto.month = function month() {
return this._date.month();
};
_proto.dayOfMonth = function dayOfMonth() {
return this._date.dayOfMonth();
};
_proto.dayOfYear = function dayOfYear() {
return this._date.dayOfYear();
};
_proto.dayOfWeek = function dayOfWeek() {
return this._date.dayOfWeek();
};
_proto.hour = function hour() {
return this._time.hour();
};
_proto.minute = function minute() {
return this._time.minute();
};
_proto.second = function second() {
return this._time.second();
};
_proto.nano = function nano() {
return this._time.nano();
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster, 'adjuster');
if (adjuster instanceof LocalDate) {
return this._withDateTime(adjuster, this._time);
} else if (adjuster instanceof LocalTime) {
return this._withDateTime(this._date, adjuster);
} else if (adjuster instanceof LocalDateTime) {
return adjuster;
}
return _ChronoLocalDateTime.prototype._withAdjuster.call(this, adjuster);
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
if (field.isTimeBased()) {
return this._withDateTime(this._date, this._time.with(field, newValue));
} else {
return this._withDateTime(this._date.with(field, newValue), this._time);
}
}
return field.adjustInto(this, newValue);
};
_proto.withYear = function withYear(year) {
return this._withDateTime(this._date.withYear(year), this._time);
};
_proto.withMonth = function withMonth(month) {
return this._withDateTime(this._date.withMonth(month), this._time);
};
_proto.withDayOfMonth = function withDayOfMonth(dayOfMonth) {
return this._withDateTime(this._date.withDayOfMonth(dayOfMonth), this._time);
};
_proto.withDayOfYear = function withDayOfYear(dayOfYear) {
return this._withDateTime(this._date.withDayOfYear(dayOfYear), this._time);
};
_proto.withHour = function withHour(hour) {
var newTime = this._time.withHour(hour);
return this._withDateTime(this._date, newTime);
};
_proto.withMinute = function withMinute(minute) {
var newTime = this._time.withMinute(minute);
return this._withDateTime(this._date, newTime);
};
_proto.withSecond = function withSecond(second) {
var newTime = this._time.withSecond(second);
return this._withDateTime(this._date, newTime);
};
_proto.withNano = function withNano(nanoOfSecond) {
var newTime = this._time.withNano(nanoOfSecond);
return this._withDateTime(this._date, newTime);
};
_proto.truncatedTo = function truncatedTo(unit) {
return this._withDateTime(this._date, this._time.truncatedTo(unit));
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(unit, 'unit');
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.NANOS:
return this.plusNanos(amountToAdd);
case ChronoUnit.MICROS:
return this.plusDays(MathUtil.intDiv(amountToAdd, LocalTime.MICROS_PER_DAY)).plusNanos(MathUtil.intMod(amountToAdd, LocalTime.MICROS_PER_DAY) * 1000);
case ChronoUnit.MILLIS:
return this.plusDays(MathUtil.intDiv(amountToAdd, LocalTime.MILLIS_PER_DAY)).plusNanos(MathUtil.intMod(amountToAdd, LocalTime.MILLIS_PER_DAY) * 1000000);
case ChronoUnit.SECONDS:
return this.plusSeconds(amountToAdd);
case ChronoUnit.MINUTES:
return this.plusMinutes(amountToAdd);
case ChronoUnit.HOURS:
return this.plusHours(amountToAdd);
case ChronoUnit.HALF_DAYS:
return this.plusDays(MathUtil.intDiv(amountToAdd, 256)).plusHours(MathUtil.intMod(amountToAdd, 256) * 12);
}
return this._withDateTime(this._date.plus(amountToAdd, unit), this._time);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusYears = function plusYears(years) {
var newDate = this._date.plusYears(years);
return this._withDateTime(newDate, this._time);
};
_proto.plusMonths = function plusMonths(months) {
var newDate = this._date.plusMonths(months);
return this._withDateTime(newDate, this._time);
};
_proto.plusWeeks = function plusWeeks(weeks) {
var newDate = this._date.plusWeeks(weeks);
return this._withDateTime(newDate, this._time);
};
_proto.plusDays = function plusDays(days) {
var newDate = this._date.plusDays(days);
return this._withDateTime(newDate, this._time);
};
_proto.plusHours = function plusHours(hours) {
return this._plusWithOverflow(this._date, hours, 0, 0, 0, 1);
};
_proto.plusMinutes = function plusMinutes(minutes) {
return this._plusWithOverflow(this._date, 0, minutes, 0, 0, 1);
};
_proto.plusSeconds = function plusSeconds(seconds) {
return this._plusWithOverflow(this._date, 0, 0, seconds, 0, 1);
};
_proto.plusNanos = function plusNanos(nanos) {
return this._plusWithOverflow(this._date, 0, 0, 0, nanos, 1);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
requireNonNull(unit, 'unit');
return this._plusUnit(-1 * amountToSubtract, unit);
};
_proto.minusYears = function minusYears(years) {
return this.plusYears(-1 * years);
};
_proto.minusMonths = function minusMonths(months) {
return this.plusMonths(-1 * months);
};
_proto.minusWeeks = function minusWeeks(weeks) {
return this.plusWeeks(-1 * weeks);
};
_proto.minusDays = function minusDays(days) {
return this.plusDays(-1 * days);
};
_proto.minusHours = function minusHours(hours) {
return this._plusWithOverflow(this._date, hours, 0, 0, 0, -1);
};
_proto.minusMinutes = function minusMinutes(minutes) {
return this._plusWithOverflow(this._date, 0, minutes, 0, 0, -1);
};
_proto.minusSeconds = function minusSeconds(seconds) {
return this._plusWithOverflow(this._date, 0, 0, seconds, 0, -1);
};
_proto.minusNanos = function minusNanos(nanos) {
return this._plusWithOverflow(this._date, 0, 0, 0, nanos, -1);
};
_proto._plusWithOverflow = function _plusWithOverflow(newDate, hours, minutes, seconds, nanos, sign) {
if (hours === 0 && minutes === 0 && seconds === 0 && nanos === 0) {
return this._withDateTime(newDate, this._time);
}
var totDays = MathUtil.intDiv(nanos, LocalTime.NANOS_PER_DAY) + MathUtil.intDiv(seconds, LocalTime.SECONDS_PER_DAY) + MathUtil.intDiv(minutes, LocalTime.MINUTES_PER_DAY) + MathUtil.intDiv(hours, LocalTime.HOURS_PER_DAY);
totDays *= sign;
var totNanos = MathUtil.intMod(nanos, LocalTime.NANOS_PER_DAY) + MathUtil.intMod(seconds, LocalTime.SECONDS_PER_DAY) * LocalTime.NANOS_PER_SECOND + MathUtil.intMod(minutes, LocalTime.MINUTES_PER_DAY) * LocalTime.NANOS_PER_MINUTE + MathUtil.intMod(hours, LocalTime.HOURS_PER_DAY) * LocalTime.NANOS_PER_HOUR;
var curNoD = this._time.toNanoOfDay();
totNanos = totNanos * sign + curNoD;
totDays += MathUtil.floorDiv(totNanos, LocalTime.NANOS_PER_DAY);
var newNoD = MathUtil.floorMod(totNanos, LocalTime.NANOS_PER_DAY);
var newTime = newNoD === curNoD ? this._time : LocalTime.ofNanoOfDay(newNoD);
return this._withDateTime(newDate.plusDays(totDays), newTime);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.localDate()) {
return this.toLocalDate();
}
return _ChronoLocalDateTime.prototype.query.call(this, _query);
};
_proto.adjustInto = function adjustInto(temporal) {
return _ChronoLocalDateTime.prototype.adjustInto.call(this, temporal);
};
_proto.until = function until(endExclusive, unit) {
requireNonNull(endExclusive, 'endExclusive');
requireNonNull(unit, 'unit');
var end = LocalDateTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
if (unit.isTimeBased()) {
var daysUntil = this._date.daysUntil(end._date);
var timeUntil = end._time.toNanoOfDay() - this._time.toNanoOfDay();
if (daysUntil > 0 && timeUntil < 0) {
daysUntil--;
timeUntil += LocalTime.NANOS_PER_DAY;
} else if (daysUntil < 0 && timeUntil > 0) {
daysUntil++;
timeUntil -= LocalTime.NANOS_PER_DAY;
}
var amount = daysUntil;
switch (unit) {
case ChronoUnit.NANOS:
amount = MathUtil.safeMultiply(amount, LocalTime.NANOS_PER_DAY);
return MathUtil.safeAdd(amount, timeUntil);
case ChronoUnit.MICROS:
amount = MathUtil.safeMultiply(amount, LocalTime.MICROS_PER_DAY);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, 1000));
case ChronoUnit.MILLIS:
amount = MathUtil.safeMultiply(amount, LocalTime.MILLIS_PER_DAY);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, 1000000));
case ChronoUnit.SECONDS:
amount = MathUtil.safeMultiply(amount, LocalTime.SECONDS_PER_DAY);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, LocalTime.NANOS_PER_SECOND));
case ChronoUnit.MINUTES:
amount = MathUtil.safeMultiply(amount, LocalTime.MINUTES_PER_DAY);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, LocalTime.NANOS_PER_MINUTE));
case ChronoUnit.HOURS:
amount = MathUtil.safeMultiply(amount, LocalTime.HOURS_PER_DAY);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, LocalTime.NANOS_PER_HOUR));
case ChronoUnit.HALF_DAYS:
amount = MathUtil.safeMultiply(amount, 2);
return MathUtil.safeAdd(amount, MathUtil.intDiv(timeUntil, LocalTime.NANOS_PER_HOUR * 12));
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
var endDate = end._date;
var endTime = end._time;
if (endDate.isAfter(this._date) && endTime.isBefore(this._time)) {
endDate = endDate.minusDays(1);
} else if (endDate.isBefore(this._date) && endTime.isAfter(this._time)) {
endDate = endDate.plusDays(1);
}
return this._date.until(endDate, unit);
}
return unit.between(this, end);
};
_proto.atOffset = function atOffset(offset) {
return OffsetDateTime.of(this, offset);
};
_proto.atZone = function atZone(zone) {
return ZonedDateTime.of(this, zone);
};
_proto.toLocalDate = function toLocalDate() {
return this._date;
};
_proto.toLocalTime = function toLocalTime() {
return this._time;
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, LocalDateTime, 'other');
return this._compareTo0(other);
};
_proto._compareTo0 = function _compareTo0(other) {
var cmp = this._date.compareTo(other.toLocalDate());
if (cmp === 0) {
cmp = this._time.compareTo(other.toLocalTime());
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
return this.compareTo(other) > 0;
};
_proto.isBefore = function isBefore(other) {
return this.compareTo(other) < 0;
};
_proto.isEqual = function isEqual(other) {
return this.compareTo(other) === 0;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof LocalDateTime) {
return this._date.equals(other._date) && this._time.equals(other._time);
}
return false;
};
_proto.hashCode = function hashCode() {
return this._date.hashCode() ^ this._time.hashCode();
};
_proto.toString = function toString() {
return this._date.toString() + "T" + this._time.toString();
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this);
};
return LocalDateTime;
}(ChronoLocalDateTime);
function _init$4() {
LocalDateTime.MIN = LocalDateTime.of(LocalDate.MIN, LocalTime.MIN);
LocalDateTime.MAX = LocalDateTime.of(LocalDate.MAX, LocalTime.MAX);
LocalDateTime.FROM = createTemporalQuery('LocalDateTime.FROM', function (temporal) {
return LocalDateTime.from(temporal);
});
}
var LocalTime = function (_Temporal) {
_inheritsLoose(LocalTime, _Temporal);
LocalTime.now = function now(clockOrZone) {
if (clockOrZone == null) {
return LocalTime._now(Clock.systemDefaultZone());
} else if (clockOrZone instanceof Clock) {
return LocalTime._now(clockOrZone);
} else {
return LocalTime._now(Clock.system(clockOrZone));
}
};
LocalTime._now = function _now(clock) {
if (clock === void 0) {
clock = Clock.systemDefaultZone();
}
requireNonNull(clock, 'clock');
return LocalTime.ofInstant(clock.instant(), clock.zone());
};
LocalTime.ofInstant = function ofInstant(instant, zone) {
if (zone === void 0) {
zone = ZoneId.systemDefault();
}
var offset = zone.rules().offset(instant);
var secsOfDay = MathUtil.intMod(instant.epochSecond(), LocalTime.SECONDS_PER_DAY);
secsOfDay = MathUtil.intMod(secsOfDay + offset.totalSeconds(), LocalTime.SECONDS_PER_DAY);
if (secsOfDay < 0) {
secsOfDay += LocalTime.SECONDS_PER_DAY;
}
return LocalTime.ofSecondOfDay(secsOfDay, instant.nano());
};
LocalTime.of = function of(hour, minute, second, nanoOfSecond) {
return new LocalTime(hour, minute, second, nanoOfSecond);
};
LocalTime.ofSecondOfDay = function ofSecondOfDay(secondOfDay, nanoOfSecond) {
if (secondOfDay === void 0) {
secondOfDay = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
ChronoField.SECOND_OF_DAY.checkValidValue(secondOfDay);
ChronoField.NANO_OF_SECOND.checkValidValue(nanoOfSecond);
var hours = MathUtil.intDiv(secondOfDay, LocalTime.SECONDS_PER_HOUR);
secondOfDay -= hours * LocalTime.SECONDS_PER_HOUR;
var minutes = MathUtil.intDiv(secondOfDay, LocalTime.SECONDS_PER_MINUTE);
secondOfDay -= minutes * LocalTime.SECONDS_PER_MINUTE;
return new LocalTime(hours, minutes, secondOfDay, nanoOfSecond);
};
LocalTime.ofNanoOfDay = function ofNanoOfDay(nanoOfDay) {
if (nanoOfDay === void 0) {
nanoOfDay = 0;
}
ChronoField.NANO_OF_DAY.checkValidValue(nanoOfDay);
var hours = MathUtil.intDiv(nanoOfDay, LocalTime.NANOS_PER_HOUR);
nanoOfDay -= hours * LocalTime.NANOS_PER_HOUR;
var minutes = MathUtil.intDiv(nanoOfDay, LocalTime.NANOS_PER_MINUTE);
nanoOfDay -= minutes * LocalTime.NANOS_PER_MINUTE;
var seconds = MathUtil.intDiv(nanoOfDay, LocalTime.NANOS_PER_SECOND);
nanoOfDay -= seconds * LocalTime.NANOS_PER_SECOND;
return new LocalTime(hours, minutes, seconds, nanoOfDay);
};
LocalTime.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
var time = temporal.query(TemporalQueries.localTime());
if (time == null) {
throw new DateTimeException("Unable to obtain LocalTime TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
return time;
};
LocalTime.parse = function parse(text, formatter) {
if (formatter === void 0) {
formatter = DateTimeFormatter.ISO_LOCAL_TIME;
}
requireNonNull(formatter, 'formatter');
return formatter.parse(text, LocalTime.FROM);
};
function LocalTime(hour, minute, second, nanoOfSecond) {
var _this;
if (hour === void 0) {
hour = 0;
}
if (minute === void 0) {
minute = 0;
}
if (second === void 0) {
second = 0;
}
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
_this = _Temporal.call(this) || this;
var _hour = MathUtil.safeToInt(hour);
var _minute = MathUtil.safeToInt(minute);
var _second = MathUtil.safeToInt(second);
var _nanoOfSecond = MathUtil.safeToInt(nanoOfSecond);
LocalTime._validate(_hour, _minute, _second, _nanoOfSecond);
if (_minute === 0 && _second === 0 && _nanoOfSecond === 0) {
if (!LocalTime.HOURS[_hour]) {
_this._hour = _hour;
_this._minute = _minute;
_this._second = _second;
_this._nano = _nanoOfSecond;
LocalTime.HOURS[_hour] = _assertThisInitialized(_this);
}
return LocalTime.HOURS[_hour] || _assertThisInitialized(_this);
}
_this._hour = _hour;
_this._minute = _minute;
_this._second = _second;
_this._nano = _nanoOfSecond;
return _this;
}
LocalTime._validate = function _validate(hour, minute, second, nanoOfSecond) {
ChronoField.HOUR_OF_DAY.checkValidValue(hour);
ChronoField.MINUTE_OF_HOUR.checkValidValue(minute);
ChronoField.SECOND_OF_MINUTE.checkValidValue(second);
ChronoField.NANO_OF_SECOND.checkValidValue(nanoOfSecond);
};
var _proto = LocalTime.prototype;
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit.isTimeBased();
} else if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isTimeBased();
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.range = function range(field) {
requireNonNull(field);
return _Temporal.prototype.range.call(this, field);
};
_proto.get = function get(field) {
return this.getLong(field);
};
_proto.getLong = function getLong(field) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
return this._get0(field);
}
return field.getFrom(this);
};
_proto._get0 = function _get0(field) {
switch (field) {
case ChronoField.NANO_OF_SECOND:
return this._nano;
case ChronoField.NANO_OF_DAY:
return this.toNanoOfDay();
case ChronoField.MICRO_OF_SECOND:
return MathUtil.intDiv(this._nano, 1000);
case ChronoField.MICRO_OF_DAY:
return MathUtil.intDiv(this.toNanoOfDay(), 1000);
case ChronoField.MILLI_OF_SECOND:
return MathUtil.intDiv(this._nano, 1000000);
case ChronoField.MILLI_OF_DAY:
return MathUtil.intDiv(this.toNanoOfDay(), 1000000);
case ChronoField.SECOND_OF_MINUTE:
return this._second;
case ChronoField.SECOND_OF_DAY:
return this.toSecondOfDay();
case ChronoField.MINUTE_OF_HOUR:
return this._minute;
case ChronoField.MINUTE_OF_DAY:
return this._hour * 60 + this._minute;
case ChronoField.HOUR_OF_AMPM:
return MathUtil.intMod(this._hour, 12);
case ChronoField.CLOCK_HOUR_OF_AMPM:
{
var ham = MathUtil.intMod(this._hour, 12);
return ham % 12 === 0 ? 12 : ham;
}
case ChronoField.HOUR_OF_DAY:
return this._hour;
case ChronoField.CLOCK_HOUR_OF_DAY:
return this._hour === 0 ? 24 : this._hour;
case ChronoField.AMPM_OF_DAY:
return MathUtil.intDiv(this._hour, 12);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
};
_proto.hour = function hour() {
return this._hour;
};
_proto.minute = function minute() {
return this._minute;
};
_proto.second = function second() {
return this._second;
};
_proto.nano = function nano() {
return this._nano;
};
_proto._withAdjuster = function _withAdjuster(adjuster) {
requireNonNull(adjuster, 'adjuster');
if (adjuster instanceof LocalTime) {
return adjuster;
}
return _Temporal.prototype._withAdjuster.call(this, adjuster);
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
requireInstance(field, TemporalField, 'field');
if (field instanceof ChronoField) {
field.checkValidValue(newValue);
switch (field) {
case ChronoField.NANO_OF_SECOND:
return this.withNano(newValue);
case ChronoField.NANO_OF_DAY:
return LocalTime.ofNanoOfDay(newValue);
case ChronoField.MICRO_OF_SECOND:
return this.withNano(newValue * 1000);
case ChronoField.MICRO_OF_DAY:
return LocalTime.ofNanoOfDay(newValue * 1000);
case ChronoField.MILLI_OF_SECOND:
return this.withNano(newValue * 1000000);
case ChronoField.MILLI_OF_DAY:
return LocalTime.ofNanoOfDay(newValue * 1000000);
case ChronoField.SECOND_OF_MINUTE:
return this.withSecond(newValue);
case ChronoField.SECOND_OF_DAY:
return this.plusSeconds(newValue - this.toSecondOfDay());
case ChronoField.MINUTE_OF_HOUR:
return this.withMinute(newValue);
case ChronoField.MINUTE_OF_DAY:
return this.plusMinutes(newValue - (this._hour * 60 + this._minute));
case ChronoField.HOUR_OF_AMPM:
return this.plusHours(newValue - MathUtil.intMod(this._hour, 12));
case ChronoField.CLOCK_HOUR_OF_AMPM:
return this.plusHours((newValue === 12 ? 0 : newValue) - MathUtil.intMod(this._hour, 12));
case ChronoField.HOUR_OF_DAY:
return this.withHour(newValue);
case ChronoField.CLOCK_HOUR_OF_DAY:
return this.withHour(newValue === 24 ? 0 : newValue);
case ChronoField.AMPM_OF_DAY:
return this.plusHours((newValue - MathUtil.intDiv(this._hour, 12)) * 12);
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.adjustInto(this, newValue);
};
_proto.withHour = function withHour(hour) {
if (hour === void 0) {
hour = 0;
}
if (this._hour === hour) {
return this;
}
return new LocalTime(hour, this._minute, this._second, this._nano);
};
_proto.withMinute = function withMinute(minute) {
if (minute === void 0) {
minute = 0;
}
if (this._minute === minute) {
return this;
}
return new LocalTime(this._hour, minute, this._second, this._nano);
};
_proto.withSecond = function withSecond(second) {
if (second === void 0) {
second = 0;
}
if (this._second === second) {
return this;
}
return new LocalTime(this._hour, this._minute, second, this._nano);
};
_proto.withNano = function withNano(nanoOfSecond) {
if (nanoOfSecond === void 0) {
nanoOfSecond = 0;
}
if (this._nano === nanoOfSecond) {
return this;
}
return new LocalTime(this._hour, this._minute, this._second, nanoOfSecond);
};
_proto.truncatedTo = function truncatedTo(unit) {
requireNonNull(unit, 'unit');
if (unit === ChronoUnit.NANOS) {
return this;
}
var unitDur = unit.duration();
if (unitDur.seconds() > LocalTime.SECONDS_PER_DAY) {
throw new DateTimeException('Unit is too large to be used for truncation');
}
var dur = unitDur.toNanos();
if (MathUtil.intMod(LocalTime.NANOS_PER_DAY, dur) !== 0) {
throw new DateTimeException('Unit must divide into a standard day without remainder');
}
var nod = this.toNanoOfDay();
return LocalTime.ofNanoOfDay(MathUtil.intDiv(nod, dur) * dur);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(unit, 'unit');
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.NANOS:
return this.plusNanos(amountToAdd);
case ChronoUnit.MICROS:
return this.plusNanos(MathUtil.intMod(amountToAdd, LocalTime.MICROS_PER_DAY) * 1000);
case ChronoUnit.MILLIS:
return this.plusNanos(MathUtil.intMod(amountToAdd, LocalTime.MILLIS_PER_DAY) * 1000000);
case ChronoUnit.SECONDS:
return this.plusSeconds(amountToAdd);
case ChronoUnit.MINUTES:
return this.plusMinutes(amountToAdd);
case ChronoUnit.HOURS:
return this.plusHours(amountToAdd);
case ChronoUnit.HALF_DAYS:
return this.plusHours(MathUtil.intMod(amountToAdd, 2) * 12);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusHours = function plusHours(hoursToAdd) {
if (hoursToAdd === 0) {
return this;
}
var newHour = MathUtil.intMod(MathUtil.intMod(hoursToAdd, LocalTime.HOURS_PER_DAY) + this._hour + LocalTime.HOURS_PER_DAY, LocalTime.HOURS_PER_DAY);
return new LocalTime(newHour, this._minute, this._second, this._nano);
};
_proto.plusMinutes = function plusMinutes(minutesToAdd) {
if (minutesToAdd === 0) {
return this;
}
var mofd = this._hour * LocalTime.MINUTES_PER_HOUR + this._minute;
var newMofd = MathUtil.intMod(MathUtil.intMod(minutesToAdd, LocalTime.MINUTES_PER_DAY) + mofd + LocalTime.MINUTES_PER_DAY, LocalTime.MINUTES_PER_DAY);
if (mofd === newMofd) {
return this;
}
var newHour = MathUtil.intDiv(newMofd, LocalTime.MINUTES_PER_HOUR);
var newMinute = MathUtil.intMod(newMofd, LocalTime.MINUTES_PER_HOUR);
return new LocalTime(newHour, newMinute, this._second, this._nano);
};
_proto.plusSeconds = function plusSeconds(secondsToAdd) {
if (secondsToAdd === 0) {
return this;
}
var sofd = this._hour * LocalTime.SECONDS_PER_HOUR + this._minute * LocalTime.SECONDS_PER_MINUTE + this._second;
var newSofd = MathUtil.intMod(MathUtil.intMod(secondsToAdd, LocalTime.SECONDS_PER_DAY) + sofd + LocalTime.SECONDS_PER_DAY, LocalTime.SECONDS_PER_DAY);
if (sofd === newSofd) {
return this;
}
var newHour = MathUtil.intDiv(newSofd, LocalTime.SECONDS_PER_HOUR);
var newMinute = MathUtil.intMod(MathUtil.intDiv(newSofd, LocalTime.SECONDS_PER_MINUTE), LocalTime.MINUTES_PER_HOUR);
var newSecond = MathUtil.intMod(newSofd, LocalTime.SECONDS_PER_MINUTE);
return new LocalTime(newHour, newMinute, newSecond, this._nano);
};
_proto.plusNanos = function plusNanos(nanosToAdd) {
if (nanosToAdd === 0) {
return this;
}
var nofd = this.toNanoOfDay();
var newNofd = MathUtil.intMod(MathUtil.intMod(nanosToAdd, LocalTime.NANOS_PER_DAY) + nofd + LocalTime.NANOS_PER_DAY, LocalTime.NANOS_PER_DAY);
if (nofd === newNofd) {
return this;
}
var newHour = MathUtil.intDiv(newNofd, LocalTime.NANOS_PER_HOUR);
var newMinute = MathUtil.intMod(MathUtil.intDiv(newNofd, LocalTime.NANOS_PER_MINUTE), LocalTime.MINUTES_PER_HOUR);
var newSecond = MathUtil.intMod(MathUtil.intDiv(newNofd, LocalTime.NANOS_PER_SECOND), LocalTime.SECONDS_PER_MINUTE);
var newNano = MathUtil.intMod(newNofd, LocalTime.NANOS_PER_SECOND);
return new LocalTime(newHour, newMinute, newSecond, newNano);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
requireNonNull(unit, 'unit');
return this._plusUnit(-1 * amountToSubtract, unit);
};
_proto.minusHours = function minusHours(hoursToSubtract) {
return this.plusHours(-1 * MathUtil.intMod(hoursToSubtract, LocalTime.HOURS_PER_DAY));
};
_proto.minusMinutes = function minusMinutes(minutesToSubtract) {
return this.plusMinutes(-1 * MathUtil.intMod(minutesToSubtract, LocalTime.MINUTES_PER_DAY));
};
_proto.minusSeconds = function minusSeconds(secondsToSubtract) {
return this.plusSeconds(-1 * MathUtil.intMod(secondsToSubtract, LocalTime.SECONDS_PER_DAY));
};
_proto.minusNanos = function minusNanos(nanosToSubtract) {
return this.plusNanos(-1 * MathUtil.intMod(nanosToSubtract, LocalTime.NANOS_PER_DAY));
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
} else if (_query === TemporalQueries.localTime()) {
return this;
}
if (_query === TemporalQueries.chronology() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.zone() || _query === TemporalQueries.offset() || _query === TemporalQueries.localDate()) {
return null;
}
return _query.queryFrom(this);
};
_proto.adjustInto = function adjustInto(temporal) {
return temporal.with(LocalTime.NANO_OF_DAY, this.toNanoOfDay());
};
_proto.until = function until(endExclusive, unit) {
requireNonNull(endExclusive, 'endExclusive');
requireNonNull(unit, 'unit');
var end = LocalTime.from(endExclusive);
if (unit instanceof ChronoUnit) {
var nanosUntil = end.toNanoOfDay() - this.toNanoOfDay();
switch (unit) {
case ChronoUnit.NANOS:
return nanosUntil;
case ChronoUnit.MICROS:
return MathUtil.intDiv(nanosUntil, 1000);
case ChronoUnit.MILLIS:
return MathUtil.intDiv(nanosUntil, 1000000);
case ChronoUnit.SECONDS:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_SECOND);
case ChronoUnit.MINUTES:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_MINUTE);
case ChronoUnit.HOURS:
return MathUtil.intDiv(nanosUntil, LocalTime.NANOS_PER_HOUR);
case ChronoUnit.HALF_DAYS:
return MathUtil.intDiv(nanosUntil, 12 * LocalTime.NANOS_PER_HOUR);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
_proto.atDate = function atDate(date) {
return LocalDateTime.of(date, this);
};
_proto.atOffset = function atOffset(offset) {
return OffsetTime.of(this, offset);
};
_proto.toSecondOfDay = function toSecondOfDay() {
var total = this._hour * LocalTime.SECONDS_PER_HOUR;
total += this._minute * LocalTime.SECONDS_PER_MINUTE;
total += this._second;
return total;
};
_proto.toNanoOfDay = function toNanoOfDay() {
var total = this._hour * LocalTime.NANOS_PER_HOUR;
total += this._minute * LocalTime.NANOS_PER_MINUTE;
total += this._second * LocalTime.NANOS_PER_SECOND;
total += this._nano;
return total;
};
_proto.compareTo = function compareTo(other) {
requireNonNull(other, 'other');
requireInstance(other, LocalTime, 'other');
var cmp = MathUtil.compareNumbers(this._hour, other._hour);
if (cmp === 0) {
cmp = MathUtil.compareNumbers(this._minute, other._minute);
if (cmp === 0) {
cmp = MathUtil.compareNumbers(this._second, other._second);
if (cmp === 0) {
cmp = MathUtil.compareNumbers(this._nano, other._nano);
}
}
}
return cmp;
};
_proto.isAfter = function isAfter(other) {
return this.compareTo(other) > 0;
};
_proto.isBefore = function isBefore(other) {
return this.compareTo(other) < 0;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof LocalTime) {
return this._hour === other._hour && this._minute === other._minute && this._second === other._second && this._nano === other._nano;
}
return false;
};
_proto.hashCode = function hashCode() {
var nod = this.toNanoOfDay();
return MathUtil.hash(nod);
};
_proto.toString = function toString() {
var buf = '';
var hourValue = this._hour;
var minuteValue = this._minute;
var secondValue = this._second;
var nanoValue = this._nano;
buf += hourValue < 10 ? '0' : '';
buf += hourValue;
buf += minuteValue < 10 ? ':0' : ':';
buf += minuteValue;
if (secondValue > 0 || nanoValue > 0) {
buf += secondValue < 10 ? ':0' : ':';
buf += secondValue;
if (nanoValue > 0) {
buf += '.';
if (MathUtil.intMod(nanoValue, 1000000) === 0) {
buf += ("" + (MathUtil.intDiv(nanoValue, 1000000) + 1000)).substring(1);
} else if (MathUtil.intMod(nanoValue, 1000) === 0) {
buf += ("" + (MathUtil.intDiv(nanoValue, 1000) + 1000000)).substring(1);
} else {
buf += ("" + (nanoValue + 1000000000)).substring(1);
}
}
}
return buf;
};
_proto.toJSON = function toJSON() {
return this.toString();
};
_proto.format = function format(formatter) {
requireNonNull(formatter, 'formatter');
return formatter.format(this);
};
return LocalTime;
}(Temporal);
function _init$3() {
LocalTime.HOURS = [];
for (var hour = 0; hour < 24; hour++) {
LocalTime.of(hour, 0, 0, 0);
}
LocalTime.MIN = LocalTime.HOURS[0];
LocalTime.MAX = new LocalTime(23, 59, 59, 999999999);
LocalTime.MIDNIGHT = LocalTime.HOURS[0];
LocalTime.NOON = LocalTime.HOURS[12];
LocalTime.FROM = createTemporalQuery('LocalTime.FROM', function (temporal) {
return LocalTime.from(temporal);
});
}
LocalTime.HOURS_PER_DAY = 24;
LocalTime.MINUTES_PER_HOUR = 60;
LocalTime.MINUTES_PER_DAY = LocalTime.MINUTES_PER_HOUR * LocalTime.HOURS_PER_DAY;
LocalTime.SECONDS_PER_MINUTE = 60;
LocalTime.SECONDS_PER_HOUR = LocalTime.SECONDS_PER_MINUTE * LocalTime.MINUTES_PER_HOUR;
LocalTime.SECONDS_PER_DAY = LocalTime.SECONDS_PER_HOUR * LocalTime.HOURS_PER_DAY;
LocalTime.MILLIS_PER_DAY = LocalTime.SECONDS_PER_DAY * 1000;
LocalTime.MICROS_PER_DAY = LocalTime.SECONDS_PER_DAY * 1000000;
LocalTime.NANOS_PER_SECOND = 1000000000;
LocalTime.NANOS_PER_MINUTE = LocalTime.NANOS_PER_SECOND * LocalTime.SECONDS_PER_MINUTE;
LocalTime.NANOS_PER_HOUR = LocalTime.NANOS_PER_MINUTE * LocalTime.MINUTES_PER_HOUR;
LocalTime.NANOS_PER_DAY = LocalTime.NANOS_PER_HOUR * LocalTime.HOURS_PER_DAY;
var NANOS_PER_MILLI = 1000000;
var Instant = function (_Temporal) {
_inheritsLoose(Instant, _Temporal);
Instant.now = function now(clock) {
if (clock === void 0) {
clock = Clock.systemUTC();
}
return clock.instant();
};
Instant.ofEpochSecond = function ofEpochSecond(epochSecond, nanoAdjustment) {
if (nanoAdjustment === void 0) {
nanoAdjustment = 0;
}
var secs = epochSecond + MathUtil.floorDiv(nanoAdjustment, LocalTime.NANOS_PER_SECOND);
var nos = MathUtil.floorMod(nanoAdjustment, LocalTime.NANOS_PER_SECOND);
return Instant._create(secs, nos);
};
Instant.ofEpochMilli = function ofEpochMilli(epochMilli) {
var secs = MathUtil.floorDiv(epochMilli, 1000);
var mos = MathUtil.floorMod(epochMilli, 1000);
return Instant._create(secs, mos * 1000000);
};
Instant.ofEpochMicro = function ofEpochMicro(epochMicro) {
var secs = MathUtil.floorDiv(epochMicro, 1000000);
var mos = MathUtil.floorMod(epochMicro, 1000000);
return Instant._create(secs, mos * 1000);
};
Instant.from = function from(temporal) {
try {
var instantSecs = temporal.getLong(ChronoField.INSTANT_SECONDS);
var nanoOfSecond = temporal.get(ChronoField.NANO_OF_SECOND);
return Instant.ofEpochSecond(instantSecs, nanoOfSecond);
} catch (ex) {
throw new DateTimeException("Unable to obtain Instant from TemporalAccessor: " + temporal + ", type " + typeof temporal, ex);
}
};
Instant.parse = function parse(text) {
return DateTimeFormatter.ISO_INSTANT.parse(text, Instant.FROM);
};
Instant._create = function _create(seconds, nanoOfSecond) {
if (seconds === 0 && nanoOfSecond === 0) {
return Instant.EPOCH;
}
return new Instant(seconds, nanoOfSecond);
};
Instant._validate = function _validate(seconds, nanoOfSecond) {
if (seconds < Instant.MIN_SECONDS || seconds > Instant.MAX_SECONDS) {
throw new DateTimeException('Instant exceeds minimum or maximum instant');
}
if (nanoOfSecond < 0 || nanoOfSecond > LocalTime.NANOS_PER_SECOND) {
throw new DateTimeException('Instant exceeds minimum or maximum instant');
}
};
function Instant(seconds, nanoOfSecond) {
var _this;
_this = _Temporal.call(this) || this;
Instant._validate(seconds, nanoOfSecond);
_this._seconds = MathUtil.safeToInt(seconds);
_this._nanos = MathUtil.safeToInt(nanoOfSecond);
return _this;
}
var _proto = Instant.prototype;
_proto.isSupported = function isSupported(fieldOrUnit) {
if (fieldOrUnit instanceof ChronoField) {
return fieldOrUnit === ChronoField.INSTANT_SECONDS || fieldOrUnit === ChronoField.NANO_OF_SECOND || fieldOrUnit === ChronoField.MICRO_OF_SECOND || fieldOrUnit === ChronoField.MILLI_OF_SECOND;
}
if (fieldOrUnit instanceof ChronoUnit) {
return fieldOrUnit.isTimeBased() || fieldOrUnit === ChronoUnit.DAYS;
}
return fieldOrUnit != null && fieldOrUnit.isSupportedBy(this);
};
_proto.range = function range(field) {
return _Temporal.prototype.range.call(this, field);
};
_proto.get = function get(field) {
return this.getLong(field);
};
_proto.getLong = function getLong(field) {
if (field instanceof ChronoField) {
switch (field) {
case ChronoField.NANO_OF_SECOND:
return this._nanos;
case ChronoField.MICRO_OF_SECOND:
return MathUtil.intDiv(this._nanos, 1000);
case ChronoField.MILLI_OF_SECOND:
return MathUtil.intDiv(this._nanos, NANOS_PER_MILLI);
case ChronoField.INSTANT_SECONDS:
return this._seconds;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.getFrom(this);
};
_proto.epochSecond = function epochSecond() {
return this._seconds;
};
_proto.nano = function nano() {
return this._nanos;
};
_proto._withField = function _withField(field, newValue) {
requireNonNull(field, 'field');
if (field instanceof ChronoField) {
field.checkValidValue(newValue);
switch (field) {
case ChronoField.MILLI_OF_SECOND:
{
var nval = newValue * NANOS_PER_MILLI;
return nval !== this._nanos ? Instant._create(this._seconds, nval) : this;
}
case ChronoField.MICRO_OF_SECOND:
{
var _nval = newValue * 1000;
return _nval !== this._nanos ? Instant._create(this._seconds, _nval) : this;
}
case ChronoField.NANO_OF_SECOND:
return newValue !== this._nanos ? Instant._create(this._seconds, newValue) : this;
case ChronoField.INSTANT_SECONDS:
return newValue !== this._seconds ? Instant._create(newValue, this._nanos) : this;
}
throw new UnsupportedTemporalTypeException("Unsupported field: " + field);
}
return field.adjustInto(this, newValue);
};
_proto.truncatedTo = function truncatedTo(unit) {
requireNonNull(unit, 'unit');
if (unit === ChronoUnit.NANOS) {
return this;
}
var unitDur = unit.duration();
if (unitDur.seconds() > LocalTime.SECONDS_PER_DAY) {
throw new DateTimeException('Unit is too large to be used for truncation');
}
var dur = unitDur.toNanos();
if (MathUtil.intMod(LocalTime.NANOS_PER_DAY, dur) !== 0) {
throw new DateTimeException('Unit must divide into a standard day without remainder');
}
var nod = MathUtil.intMod(this._seconds, LocalTime.SECONDS_PER_DAY) * LocalTime.NANOS_PER_SECOND + this._nanos;
var result = MathUtil.intDiv(nod, dur) * dur;
return this.plusNanos(result - nod);
};
_proto._plusUnit = function _plusUnit(amountToAdd, unit) {
requireNonNull(amountToAdd, 'amountToAdd');
requireNonNull(unit, 'unit');
requireInstance(unit, TemporalUnit);
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.NANOS:
return this.plusNanos(amountToAdd);
case ChronoUnit.MICROS:
return this.plusMicros(amountToAdd);
case ChronoUnit.MILLIS:
return this.plusMillis(amountToAdd);
case ChronoUnit.SECONDS:
return this.plusSeconds(amountToAdd);
case ChronoUnit.MINUTES:
return this.plusSeconds(MathUtil.safeMultiply(amountToAdd, LocalTime.SECONDS_PER_MINUTE));
case ChronoUnit.HOURS:
return this.plusSeconds(MathUtil.safeMultiply(amountToAdd, LocalTime.SECONDS_PER_HOUR));
case ChronoUnit.HALF_DAYS:
return this.plusSeconds(MathUtil.safeMultiply(amountToAdd, LocalTime.SECONDS_PER_DAY / 2));
case ChronoUnit.DAYS:
return this.plusSeconds(MathUtil.safeMultiply(amountToAdd, LocalTime.SECONDS_PER_DAY));
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.addTo(this, amountToAdd);
};
_proto.plusSeconds = function plusSeconds(secondsToAdd) {
return this._plus(secondsToAdd, 0);
};
_proto.plusMillis = function plusMillis(millisToAdd) {
return this._plus(MathUtil.intDiv(millisToAdd, 1000), MathUtil.intMod(millisToAdd, 1000) * NANOS_PER_MILLI);
};
_proto.plusNanos = function plusNanos(nanosToAdd) {
return this._plus(0, nanosToAdd);
};
_proto.plusMicros = function plusMicros(microsToAdd) {
return this._plus(MathUtil.intDiv(microsToAdd, 1000000), MathUtil.intMod(microsToAdd, 1000000) * 1000);
};
_proto._plus = function _plus(secondsToAdd, nanosToAdd) {
if (secondsToAdd === 0 && nanosToAdd === 0) {
return this;
}
var epochSec = this._seconds + secondsToAdd;
epochSec = epochSec + MathUtil.intDiv(nanosToAdd, LocalTime.NANOS_PER_SECOND);
var nanoAdjustment = this._nanos + nanosToAdd % LocalTime.NANOS_PER_SECOND;
return Instant.ofEpochSecond(epochSec, nanoAdjustment);
};
_proto._minusUnit = function _minusUnit(amountToSubtract, unit) {
return this._plusUnit(-1 * amountToSubtract, unit);
};
_proto.minusSeconds = function minusSeconds(secondsToSubtract) {
return this.plusSeconds(secondsToSubtract * -1);
};
_proto.minusMillis = function minusMillis(millisToSubtract) {
return this.plusMillis(-1 * millisToSubtract);
};
_proto.minusNanos = function minusNanos(nanosToSubtract) {
return this.plusNanos(-1 * nanosToSubtract);
};
_proto.minusMicros = function minusMicros(microsToSubtract) {
return this.plusMicros(-1 * microsToSubtract);
};
_proto.query = function query(_query) {
requireNonNull(_query, 'query');
if (_query === TemporalQueries.precision()) {
return ChronoUnit.NANOS;
}
if (_query === TemporalQueries.localDate() || _query === TemporalQueries.localTime() || _query === TemporalQueries.chronology() || _query === TemporalQueries.zoneId() || _query === TemporalQueries.zone() || _query === TemporalQueries.offset()) {
return null;
}
return _query.queryFrom(this);
};
_proto.adjustInto = function adjustInto(temporal) {
requireNonNull(temporal, 'temporal');
return temporal.with(ChronoField.INSTANT_SECONDS, this._seconds).with(ChronoField.NANO_OF_SECOND, this._nanos);
};
_proto.until = function until(endExclusive, unit) {
requireNonNull(endExclusive, 'endExclusive');
requireNonNull(unit, 'unit');
var end = Instant.from(endExclusive);
if (unit instanceof ChronoUnit) {
switch (unit) {
case ChronoUnit.NANOS:
return this._nanosUntil(end);
case ChronoUnit.MICROS:
return this._microsUntil(end);
case ChronoUnit.MILLIS:
return MathUtil.safeSubtract(end.toEpochMilli(), this.toEpochMilli());
case ChronoUnit.SECONDS:
return this._secondsUntil(end);
case ChronoUnit.MINUTES:
return MathUtil.intDiv(this._secondsUntil(end), LocalTime.SECONDS_PER_MINUTE);
case ChronoUnit.HOURS:
return MathUtil.intDiv(this._secondsUntil(end), LocalTime.SECONDS_PER_HOUR);
case ChronoUnit.HALF_DAYS:
return MathUtil.intDiv(this._secondsUntil(end), 12 * LocalTime.SECONDS_PER_HOUR);
case ChronoUnit.DAYS:
return MathUtil.intDiv(this._secondsUntil(end), LocalTime.SECONDS_PER_DAY);
}
throw new UnsupportedTemporalTypeException("Unsupported unit: " + unit);
}
return unit.between(this, end);
};
_proto._microsUntil = function _microsUntil(end) {
var secsDiff = MathUtil.safeSubtract(end.epochSecond(), this.epochSecond());
var totalMicros = MathUtil.safeMultiply(secsDiff, 1000000);
return MathUtil.safeAdd(totalMicros, MathUtil.intDiv(end.nano() - this.nano(), 1000));
};
_proto._nanosUntil = function _nanosUntil(end) {
var secsDiff = MathUtil.safeSubtract(end.epochSecond(), this.epochSecond());
var totalNanos = MathUtil.safeMultiply(secsDiff, LocalTime.NANOS_PER_SECOND);
return MathUtil.safeAdd(totalNanos, end.nano() - this.nano());
};
_proto._secondsUntil = function _secondsUntil(end) {
var secsDiff = MathUtil.safeSubtract(end.epochSecond(), this.epochSecond());
var nanosDiff = end.nano() - this.nano();
if (secsDiff > 0 && nanosDiff < 0) {
secsDiff--;
} else if (secsDiff < 0 && nanosDiff > 0) {
secsDiff++;
}
return secsDiff;
};
_proto.atOffset = function atOffset(offset) {
return OffsetDateTime.ofInstant(this, offset);
};
_proto.atZone = function atZone(zone) {
return ZonedDateTime.ofInstant(this, zone);
};
_proto.toEpochMilli = function toEpochMilli() {
var millis = MathUtil.safeMultiply(this._seconds, 1000);
return millis + MathUtil.intDiv(this._nanos, NANOS_PER_MILLI);
};
_proto.compareTo = function compareTo(otherInstant) {
requireNonNull(otherInstant, 'otherInstant');
requireInstance(otherInstant, Instant, 'otherInstant');
var cmp = MathUtil.compareNumbers(this._seconds, otherInstant._seconds);
if (cmp !== 0) {
return cmp;
}
return this._nanos - otherInstant._nanos;
};
_proto.isAfter = function isAfter(otherInstant) {
return this.compareTo(otherInstant) > 0;
};
_proto.isBefore = function isBefore(otherInstant) {
return this.compareTo(otherInstant) < 0;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
if (other instanceof Instant) {
return this.epochSecond() === other.epochSecond() && this.nano() === other.nano();
}
return false;
};
_proto.hashCode = function hashCode() {
return MathUtil.hashCode(this._seconds, this._nanos);
};
_proto.toString = function toString() {
return DateTimeFormatter.ISO_INSTANT.format(this);
};
_proto.toJSON = function toJSON() {
return this.toString();
};
return Instant;
}(Temporal);
function _init$2() {
Instant.MIN_SECONDS = -31619119219200;
Instant.MAX_SECONDS = 31494816403199;
Instant.EPOCH = new Instant(0, 0);
Instant.MIN = Instant.ofEpochSecond(Instant.MIN_SECONDS, 0);
Instant.MAX = Instant.ofEpochSecond(Instant.MAX_SECONDS, 999999999);
Instant.FROM = createTemporalQuery('Instant.FROM', function (temporal) {
return Instant.from(temporal);
});
}
var Clock = function () {
function Clock() {}
Clock.systemUTC = function systemUTC() {
return new SystemClock(ZoneOffset.UTC);
};
Clock.systemDefaultZone = function systemDefaultZone() {
return new SystemClock(ZoneId.systemDefault());
};
Clock.system = function system(zone) {
return new SystemClock(zone);
};
Clock.fixed = function fixed(fixedInstant, zoneId) {
return new FixedClock(fixedInstant, zoneId);
};
Clock.offset = function offset(baseClock, duration) {
return new OffsetClock(baseClock, duration);
};
var _proto = Clock.prototype;
_proto.millis = function millis() {
abstractMethodFail('Clock.millis');
};
_proto.instant = function instant() {
abstractMethodFail('Clock.instant');
};
_proto.zone = function zone() {
abstractMethodFail('Clock.zone');
};
_proto.withZone = function withZone() {
abstractMethodFail('Clock.withZone');
};
return Clock;
}();
var SystemClock = function (_Clock) {
_inheritsLoose(SystemClock, _Clock);
function SystemClock(zone) {
var _this;
requireNonNull(zone, 'zone');
_this = _Clock.call(this) || this;
_this._zone = zone;
return _this;
}
var _proto2 = SystemClock.prototype;
_proto2.zone = function zone() {
return this._zone;
};
_proto2.millis = function millis() {
return new Date().getTime();
};
_proto2.instant = function instant() {
return Instant.ofEpochMilli(this.millis());
};
_proto2.equals = function equals(obj) {
if (obj instanceof SystemClock) {
return this._zone.equals(obj._zone);
}
return false;
};
_proto2.withZone = function withZone(zone) {
if (zone.equals(this._zone)) {
return this;
}
return new SystemClock(zone);
};
_proto2.toString = function toString() {
return "SystemClock[" + this._zone.toString() + "]";
};
return SystemClock;
}(Clock);
var FixedClock = function (_Clock2) {
_inheritsLoose(FixedClock, _Clock2);
function FixedClock(fixedInstant, zoneId) {
var _this2;
_this2 = _Clock2.call(this) || this;
_this2._instant = fixedInstant;
_this2._zoneId = zoneId;
return _this2;
}
var _proto3 = FixedClock.prototype;
_proto3.instant = function instant() {
return this._instant;
};
_proto3.millis = function millis() {
return this._instant.toEpochMilli();
};
_proto3.zone = function zone() {
return this._zoneId;
};
_proto3.toString = function toString() {
return 'FixedClock[]';
};
_proto3.equals = function equals(obj) {
if (obj instanceof FixedClock) {
return this._instant.equals(obj._instant) && this._zoneId.equals(obj._zoneId);
}
return false;
};
_proto3.withZone = function withZone(zone) {
if (zone.equals(this._zoneId)) {
return this;
}
return new FixedClock(this._instant, zone);
};
return FixedClock;
}(Clock);
var OffsetClock = function (_Clock3) {
_inheritsLoose(OffsetClock, _Clock3);
function OffsetClock(baseClock, offset) {
var _this3;
_this3 = _Clock3.call(this) || this;
_this3._baseClock = baseClock;
_this3._offset = offset;
return _this3;
}
var _proto4 = OffsetClock.prototype;
_proto4.zone = function zone() {
return this._baseClock.zone();
};
_proto4.withZone = function withZone(zone) {
if (zone.equals(this._baseClock.zone())) {
return this;
}
return new OffsetClock(this._baseClock.withZone(zone), this._offset);
};
_proto4.millis = function millis() {
return this._baseClock.millis() + this._offset.toMillis();
};
_proto4.instant = function instant() {
return this._baseClock.instant().plus(this._offset);
};
_proto4.equals = function equals(obj) {
if (obj instanceof OffsetClock) {
return this._baseClock.equals(obj._baseClock) && this._offset.equals(obj._offset);
}
return false;
};
_proto4.toString = function toString() {
return "OffsetClock[" + this._baseClock + "," + this._offset + "]";
};
return OffsetClock;
}(Clock);
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ZoneOffsetTransition = function () {
ZoneOffsetTransition.of = function of(transition, offsetBefore, offsetAfter) {
return new ZoneOffsetTransition(transition, offsetBefore, offsetAfter);
};
function ZoneOffsetTransition(transition, offsetBefore, offsetAfter) {
requireNonNull(transition, 'transition');
requireNonNull(offsetBefore, 'offsetBefore');
requireNonNull(offsetAfter, 'offsetAfter');
if (offsetBefore.equals(offsetAfter)) {
throw new IllegalArgumentException('Offsets must not be equal');
}
if (transition.nano() !== 0) {
throw new IllegalArgumentException('Nano-of-second must be zero');
}
if (transition instanceof LocalDateTime) {
this._transition = transition;
} else {
this._transition = LocalDateTime.ofEpochSecond(transition, 0, offsetBefore);
}
this._offsetBefore = offsetBefore;
this._offsetAfter = offsetAfter;
}
var _proto = ZoneOffsetTransition.prototype;
_proto.instant = function instant() {
return this._transition.toInstant(this._offsetBefore);
};
_proto.toEpochSecond = function toEpochSecond() {
return this._transition.toEpochSecond(this._offsetBefore);
};
_proto.dateTimeBefore = function dateTimeBefore() {
return this._transition;
};
_proto.dateTimeAfter = function dateTimeAfter() {
return this._transition.plusSeconds(this.durationSeconds());
};
_proto.offsetBefore = function offsetBefore() {
return this._offsetBefore;
};
_proto.offsetAfter = function offsetAfter() {
return this._offsetAfter;
};
_proto.duration = function duration() {
return Duration.ofSeconds(this.durationSeconds());
};
_proto.durationSeconds = function durationSeconds() {
return this._offsetAfter.totalSeconds() - this._offsetBefore.totalSeconds();
};
_proto.isGap = function isGap() {
return this._offsetAfter.totalSeconds() > this._offsetBefore.totalSeconds();
};
_proto.isOverlap = function isOverlap() {
return this._offsetAfter.totalSeconds() < this._offsetBefore.totalSeconds();
};
_proto.isValidOffset = function isValidOffset(offset) {
return this.isGap() ? false : this._offsetBefore.equals(offset) || this._offsetAfter.equals(offset);
};
_proto.validOffsets = function validOffsets() {
if (this.isGap()) {
return [];
} else {
return [this._offsetBefore, this._offsetAfter];
}
};
_proto.compareTo = function compareTo(transition) {
return this.instant().compareTo(transition.instant());
};
_proto.equals = function equals(other) {
if (other === this) {
return true;
}
if (other instanceof ZoneOffsetTransition) {
var d = other;
return this._transition.equals(d._transition) && this._offsetBefore.equals(d.offsetBefore()) && this._offsetAfter.equals(d.offsetAfter());
}
return false;
};
_proto.hashCode = function hashCode() {
return this._transition.hashCode() ^ this._offsetBefore.hashCode() ^ this._offsetAfter.hashCode() >>> 16;
};
_proto.toString = function toString() {
return "Transition[" + (this.isGap() ? 'Gap' : 'Overlap') + " at " + this._transition.toString() + this._offsetBefore.toString() + " to " + this._offsetAfter + "]";
};
return ZoneOffsetTransition;
}();
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
function _init$1() {
TemporalQueries.ZONE_ID = createTemporalQuery('ZONE_ID', function (temporal) {
return temporal.query(TemporalQueries.ZONE_ID);
});
TemporalQueries.CHRONO = createTemporalQuery('CHRONO', function (temporal) {
return temporal.query(TemporalQueries.CHRONO);
});
TemporalQueries.PRECISION = createTemporalQuery('PRECISION', function (temporal) {
return temporal.query(TemporalQueries.PRECISION);
});
TemporalQueries.OFFSET = createTemporalQuery('OFFSET', function (temporal) {
if (temporal.isSupported(ChronoField.OFFSET_SECONDS)) {
return ZoneOffset.ofTotalSeconds(temporal.get(ChronoField.OFFSET_SECONDS));
}
return null;
});
TemporalQueries.ZONE = createTemporalQuery('ZONE', function (temporal) {
var zone = temporal.query(TemporalQueries.ZONE_ID);
return zone != null ? zone : temporal.query(TemporalQueries.OFFSET);
});
TemporalQueries.LOCAL_DATE = createTemporalQuery('LOCAL_DATE', function (temporal) {
if (temporal.isSupported(ChronoField.EPOCH_DAY)) {
return LocalDate.ofEpochDay(temporal.getLong(ChronoField.EPOCH_DAY));
}
return null;
});
TemporalQueries.LOCAL_TIME = createTemporalQuery('LOCAL_TIME', function (temporal) {
if (temporal.isSupported(ChronoField.NANO_OF_DAY)) {
return LocalTime.ofNanoOfDay(temporal.getLong(ChronoField.NANO_OF_DAY));
}
return null;
});
}
var SystemDefaultZoneRules = function (_ZoneRules) {
_inheritsLoose(SystemDefaultZoneRules, _ZoneRules);
function SystemDefaultZoneRules() {
return _ZoneRules.apply(this, arguments) || this;
}
var _proto = SystemDefaultZoneRules.prototype;
_proto.isFixedOffset = function isFixedOffset() {
return false;
};
_proto.offsetOfInstant = function offsetOfInstant(instant) {
var offsetInMinutes = new Date(instant.toEpochMilli()).getTimezoneOffset();
return ZoneOffset.ofTotalMinutes(offsetInMinutes * -1);
};
_proto.offsetOfEpochMilli = function offsetOfEpochMilli(epochMilli) {
var offsetInMinutes = new Date(epochMilli).getTimezoneOffset();
return ZoneOffset.ofTotalMinutes(offsetInMinutes * -1);
};
_proto.offsetOfLocalDateTime = function offsetOfLocalDateTime(localDateTime) {
var epochMilli = localDateTime.toEpochSecond(ZoneOffset.UTC) * 1000;
var offsetInMinutesBeforePossibleTransition = new Date(epochMilli).getTimezoneOffset();
var epochMilliSystemZone = epochMilli + offsetInMinutesBeforePossibleTransition * 60000;
var offsetInMinutesAfterPossibleTransition = new Date(epochMilliSystemZone).getTimezoneOffset();
return ZoneOffset.ofTotalMinutes(offsetInMinutesAfterPossibleTransition * -1);
};
_proto.validOffsets = function validOffsets(localDateTime) {
return [this.offsetOfLocalDateTime(localDateTime)];
};
_proto.transition = function transition() {
return null;
};
_proto.standardOffset = function standardOffset(instant) {
return this.offsetOfInstant(instant);
};
_proto.daylightSavings = function daylightSavings() {
this._throwNotSupported();
};
_proto.isDaylightSavings = function isDaylightSavings() {
this._throwNotSupported();
};
_proto.isValidOffset = function isValidOffset(dateTime, offset) {
return this.offsetOfLocalDateTime(dateTime).equals(offset);
};
_proto.nextTransition = function nextTransition() {
this._throwNotSupported();
};
_proto.previousTransition = function previousTransition() {
this._throwNotSupported();
};
_proto.transitions = function transitions() {
this._throwNotSupported();
};
_proto.transitionRules = function transitionRules() {
this._throwNotSupported();
};
_proto._throwNotSupported = function _throwNotSupported() {
throw new DateTimeException('not supported operation');
};
_proto.equals = function equals(other) {
if (this === other || other instanceof SystemDefaultZoneRules) {
return true;
} else {
return false;
}
};
_proto.toString = function toString() {
return 'SYSTEM';
};
return SystemDefaultZoneRules;
}(ZoneRules);
var SystemDefaultZoneId = function (_ZoneId) {
_inheritsLoose(SystemDefaultZoneId, _ZoneId);
function SystemDefaultZoneId() {
var _this;
_this = _ZoneId.call(this) || this;
_this._rules = new SystemDefaultZoneRules();
return _this;
}
var _proto = SystemDefaultZoneId.prototype;
_proto.rules = function rules() {
return this._rules;
};
_proto.equals = function equals(other) {
if (this === other) {
return true;
}
return false;
};
_proto.id = function id() {
return 'SYSTEM';
};
return SystemDefaultZoneId;
}(ZoneId);
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ZoneIdFactory = function () {
function ZoneIdFactory() {}
ZoneIdFactory.systemDefault = function systemDefault() {
return SYSTEM_DEFAULT_ZONE_ID_INSTANCE;
};
ZoneIdFactory.getAvailableZoneIds = function getAvailableZoneIds() {
return ZoneRulesProvider.getAvailableZoneIds();
};
ZoneIdFactory.of = function of(zoneId) {
requireNonNull(zoneId, 'zoneId');
if (zoneId === 'Z') {
return ZoneOffset.UTC;
}
if (zoneId.length === 1) {
throw new DateTimeException("Invalid zone: " + zoneId);
}
if (StringUtil.startsWith(zoneId, '+') || StringUtil.startsWith(zoneId, '-')) {
return ZoneOffset.of(zoneId);
}
if (zoneId === 'UTC' || zoneId === 'GMT' || zoneId === 'GMT0' || zoneId === 'UT') {
return new ZoneRegion(zoneId, ZoneOffset.UTC.rules());
}
if (StringUtil.startsWith(zoneId, 'UTC+') || StringUtil.startsWith(zoneId, 'GMT+') || StringUtil.startsWith(zoneId, 'UTC-') || StringUtil.startsWith(zoneId, 'GMT-')) {
var offset = ZoneOffset.of(zoneId.substring(3));
if (offset.totalSeconds() === 0) {
return new ZoneRegion(zoneId.substring(0, 3), offset.rules());
}
return new ZoneRegion(zoneId.substring(0, 3) + offset.id(), offset.rules());
}
if (StringUtil.startsWith(zoneId, 'UT+') || StringUtil.startsWith(zoneId, 'UT-')) {
var _offset = ZoneOffset.of(zoneId.substring(2));
if (_offset.totalSeconds() === 0) {
return new ZoneRegion('UT', _offset.rules());
}
return new ZoneRegion("UT" + _offset.id(), _offset.rules());
}
if (zoneId === 'SYSTEM') {
return ZoneId.systemDefault();
}
return ZoneRegion.ofId(zoneId);
};
ZoneIdFactory.ofOffset = function ofOffset(prefix, offset) {
requireNonNull(prefix, 'prefix');
requireNonNull(offset, 'offset');
if (prefix.length === 0) {
return offset;
}
if (prefix === 'GMT' || prefix === 'UTC' || prefix === 'UT') {
if (offset.totalSeconds() === 0) {
return new ZoneRegion(prefix, offset.rules());
}
return new ZoneRegion(prefix + offset.id(), offset.rules());
}
throw new IllegalArgumentException("Invalid prefix, must be GMT, UTC or UT: " + prefix);
};
ZoneIdFactory.from = function from(temporal) {
requireNonNull(temporal, 'temporal');
var obj = temporal.query(TemporalQueries.zone());
if (obj == null) {
throw new DateTimeException("Unable to obtain ZoneId from TemporalAccessor: " + temporal + ", type " + (temporal.constructor != null ? temporal.constructor.name : ''));
}
return obj;
};
return ZoneIdFactory;
}();
var SYSTEM_DEFAULT_ZONE_ID_INSTANCE = null;
function _init() {
SYSTEM_DEFAULT_ZONE_ID_INSTANCE = new SystemDefaultZoneId();
ZoneId.systemDefault = ZoneIdFactory.systemDefault;
ZoneId.getAvailableZoneIds = ZoneIdFactory.getAvailableZoneIds;
ZoneId.of = ZoneIdFactory.of;
ZoneId.ofOffset = ZoneIdFactory.ofOffset;
ZoneId.from = ZoneIdFactory.from;
ZoneOffset.from = ZoneIdFactory.from;
ZoneId.SYSTEM = SYSTEM_DEFAULT_ZONE_ID_INSTANCE;
ZoneId.UTC = ZoneOffset.ofTotalSeconds(0);
}
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var isInit = false;
function init() {
if (isInit) {
return;
}
isInit = true;
_init$m();
_init$n();
_init$l();
_init$k();
_init$3();
_init$f();
_init$1();
_init$j();
_init$2();
_init$5();
_init$4();
_init$a();
_init$i();
_init$b();
_init$c();
_init$h();
_init$g();
_init$7();
_init();
_init$9();
_init$d();
_init$e();
_init$6();
_init$8();
}
init();
/*
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var ToNativeJsConverter = function () {
function ToNativeJsConverter(temporal, zone) {
var zonedDateTime;
if (temporal instanceof Instant) {
this.instant = temporal;
return;
} else if (temporal instanceof LocalDate) {
zone = zone == null ? ZoneId.systemDefault() : zone;
zonedDateTime = temporal.atStartOfDay(zone);
} else if (temporal instanceof LocalDateTime) {
zone = zone == null ? ZoneId.systemDefault() : zone;
zonedDateTime = temporal.atZone(zone);
} else if (temporal instanceof ZonedDateTime) {
if (zone == null) {
zonedDateTime = temporal;
} else {
zonedDateTime = temporal.withZoneSameInstant(zone);
}
} else {
throw new IllegalArgumentException("unsupported instance for convert operation:" + temporal);
}
this.instant = zonedDateTime.toInstant();
}
var _proto = ToNativeJsConverter.prototype;
_proto.toDate = function toDate() {
return new Date(this.instant.toEpochMilli());
};
_proto.toEpochMilli = function toEpochMilli() {
return this.instant.toEpochMilli();
};
return ToNativeJsConverter;
}();
function convert(temporal, zone) {
return new ToNativeJsConverter(temporal, zone);
}
/*
* @copyright (c) 2015-present, Philipp Thürwächter, Pattrick Hüper & js-joda contributors
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
function nativeJs(date, zone) {
if (zone === void 0) {
zone = ZoneId.systemDefault();
}
requireNonNull(date, 'date');
requireNonNull(zone, 'zone');
if (date instanceof Date) {
return Instant.ofEpochMilli(date.getTime()).atZone(zone);
} else if (typeof date.toDate === 'function' && date.toDate() instanceof Date) {
return Instant.ofEpochMilli(date.toDate().getTime()).atZone(zone);
}
throw new IllegalArgumentException('date must be a javascript Date or a moment instance');
}
function bindUse(jsJoda) {
var used = [];
return function use(fn) {
if (!~used.indexOf(fn)) {
fn(jsJoda);
used.push(fn);
}
return jsJoda;
};
}
/**
* @copyright (c) 2016, Philipp Thürwächter & Pattrick Hüper
* @license BSD-3-Clause (see LICENSE in the root directory of this source tree)
*/
var _ = {
assert: assert$1,
DateTimeBuilder: DateTimeBuilder,
DateTimeParseContext: DateTimeParseContext,
DateTimePrintContext: DateTimePrintContext,
MathUtil: MathUtil,
StringUtil: StringUtil,
StringBuilder: StringBuilder
};
var jsJodaExports = {
_: _,
convert: convert,
nativeJs: nativeJs,
ArithmeticException: ArithmeticException,
DateTimeException: DateTimeException,
DateTimeParseException: DateTimeParseException,
IllegalArgumentException: IllegalArgumentException,
IllegalStateException: IllegalStateException,
UnsupportedTemporalTypeException: UnsupportedTemporalTypeException,
NullPointerException: NullPointerException,
Clock: Clock,
DayOfWeek: DayOfWeek,
Duration: Duration,
Instant: Instant,
LocalDate: LocalDate,
LocalTime: LocalTime,
LocalDateTime: LocalDateTime,
OffsetTime: OffsetTime,
OffsetDateTime: OffsetDateTime,
Month: Month,
MonthDay: MonthDay,
ParsePosition: ParsePosition,
Period: Period,
Year: Year,
YearConstants: YearConstants,
YearMonth: YearMonth,
ZonedDateTime: ZonedDateTime,
ZoneOffset: ZoneOffset,
ZoneId: ZoneId,
ZoneRegion: ZoneRegion,
ZoneOffsetTransition: ZoneOffsetTransition,
ZoneRules: ZoneRules,
ZoneRulesProvider: ZoneRulesProvider,
ChronoLocalDate: ChronoLocalDate,
ChronoLocalDateTime: ChronoLocalDateTime,
ChronoZonedDateTime: ChronoZonedDateTime,
IsoChronology: IsoChronology,
ChronoField: ChronoField,
ChronoUnit: ChronoUnit,
IsoFields: IsoFields,
Temporal: Temporal,
TemporalAccessor: TemporalAccessor,
TemporalAdjuster: TemporalAdjuster,
TemporalAdjusters: TemporalAdjusters,
TemporalAmount: TemporalAmount,
TemporalField: TemporalField,
TemporalQueries: TemporalQueries,
TemporalQuery: TemporalQuery,
TemporalUnit: TemporalUnit,
ValueRange: ValueRange,
DateTimeFormatter: DateTimeFormatter,
DateTimeFormatterBuilder: DateTimeFormatterBuilder,
DecimalStyle: DecimalStyle,
ResolverStyle: ResolverStyle,
SignStyle: SignStyle,
TextStyle: TextStyle
};
var use = bindUse(jsJodaExports);
jsJodaExports.use = use;
exports.ArithmeticException = ArithmeticException;
exports.ChronoField = ChronoField;
exports.ChronoLocalDate = ChronoLocalDate;
exports.ChronoLocalDateTime = ChronoLocalDateTime;
exports.ChronoUnit = ChronoUnit;
exports.ChronoZonedDateTime = ChronoZonedDateTime;
exports.Clock = Clock;
exports.DateTimeException = DateTimeException;
exports.DateTimeFormatter = DateTimeFormatter;
exports.DateTimeFormatterBuilder = DateTimeFormatterBuilder;
exports.DateTimeParseException = DateTimeParseException;
exports.DayOfWeek = DayOfWeek;
exports.DecimalStyle = DecimalStyle;
exports.Duration = Duration;
exports.IllegalArgumentException = IllegalArgumentException;
exports.IllegalStateException = IllegalStateException;
exports.Instant = Instant;
exports.IsoChronology = IsoChronology;
exports.IsoFields = IsoFields;
exports.LocalDate = LocalDate;
exports.LocalDateTime = LocalDateTime;
exports.LocalTime = LocalTime;
exports.Month = Month;
exports.MonthDay = MonthDay;
exports.NullPointerException = NullPointerException;
exports.OffsetDateTime = OffsetDateTime;
exports.OffsetTime = OffsetTime;
exports.ParsePosition = ParsePosition;
exports.Period = Period;
exports.ResolverStyle = ResolverStyle;
exports.SignStyle = SignStyle;
exports.Temporal = Temporal;
exports.TemporalAccessor = TemporalAccessor;
exports.TemporalAdjuster = TemporalAdjuster;
exports.TemporalAdjusters = TemporalAdjusters;
exports.TemporalAmount = TemporalAmount;
exports.TemporalField = TemporalField;
exports.TemporalQueries = TemporalQueries;
exports.TemporalQuery = TemporalQuery;
exports.TemporalUnit = TemporalUnit;
exports.TextStyle = TextStyle;
exports.UnsupportedTemporalTypeException = UnsupportedTemporalTypeException;
exports.ValueRange = ValueRange;
exports.Year = Year;
exports.YearConstants = YearConstants;
exports.YearMonth = YearMonth;
exports.ZoneId = ZoneId;
exports.ZoneOffset = ZoneOffset;
exports.ZoneOffsetTransition = ZoneOffsetTransition;
exports.ZoneRegion = ZoneRegion;
exports.ZoneRules = ZoneRules;
exports.ZoneRulesProvider = ZoneRulesProvider;
exports.ZonedDateTime = ZonedDateTime;
exports._ = _;
exports.convert = convert;
exports.nativeJs = nativeJs;
exports.use = use;
}));
//# sourceMappingURL=js-joda.js.map