????
Current Path : C:/inetpub/vhost/binhdinhinvest.gdtvietnam.com/api/node_modules/@js-joda/core/dist/ |
Current File : C:/inetpub/vhost/binhdinhinvest.gdtvietnam.com/api/node_modules/@js-joda/core/dist/js-joda.js |
//! @version @js-joda/core - 5.5.3 //! @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, assert: assert, requireNonNull: requireNonNull, requireInstance: requireInstance, abstractMethodFail: abstractMethodFail }); /** * @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 (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.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; }(); 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