"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.utcYears = exports.default = void 0; var _interval = _interopRequireDefault(require("./interval.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var utcYear = (0, _interval.default)(function (date) { date.setUTCMonth(0, 1); date.setUTCHours(0, 0, 0, 0); }, function (date, step) { date.setUTCFullYear(date.getUTCFullYear() + step); }, function (start, end) { return end.getUTCFullYear() - start.getUTCFullYear(); }, function (date) { return date.getUTCFullYear(); }); // An optimized implementation for this simple case. utcYear.every = function (k) { return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : (0, _interval.default)(function (date) { date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k); date.setUTCMonth(0, 1); date.setUTCHours(0, 0, 0, 0); }, function (date, step) { date.setUTCFullYear(date.getUTCFullYear() + step * k); }); }; var _default = utcYear; exports.default = _default; var utcYears = utcYear.range; exports.utcYears = utcYears;