{"version":3,"file":"date-time.cjs","names":["C.M","prettyUnit","en","wrapper","U","C.REGEX_PARSE","C.INVALID_DATE_STRING","C.Y","C.M","C.W","C.DATE","C.H","C.MIN","C.S","C.MS","C.REGEX_FORMAT","C.MILLISECONDS_A_MINUTE","C.Q","C.MILLISECONDS_A_WEEK","C.MILLISECONDS_A_DAY","C.MILLISECONDS_A_HOUR","C.MILLISECONDS_A_SECOND"],"sources":["../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/constant.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/locale/en.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/utils.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/index.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/plugin/duration/index.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/plugin/relativeTime/index.js","../node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/esm/locale/ru.js","../src/date-time/_shared.ts","../src/date-time/add-days.ts","../src/date-time/add-minutes.ts","../src/date-time/change-date.ts","../src/date-time/day-time-duration.ts","../src/date-time/format-date.ts","../src/date-time/get-format-duration.ts","../src/date-time/get-time-diff.ts","../src/date-time/set-hours.ts","../src/date-time/set-minutes.ts","../src/date-time/subtract-days.ts","../src/date-time/time-duration.ts"],"sourcesContent":["export var SECONDS_A_MINUTE = 60;\nexport var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;\nexport var SECONDS_A_DAY = SECONDS_A_HOUR * 24;\nexport var SECONDS_A_WEEK = SECONDS_A_DAY * 7;\nexport var MILLISECONDS_A_SECOND = 1e3;\nexport var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;\nexport var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;\nexport var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;\nexport var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND; // English locales\n\nexport var MS = 'millisecond';\nexport var S = 'second';\nexport var MIN = 'minute';\nexport var H = 'hour';\nexport var D = 'day';\nexport var W = 'week';\nexport var M = 'month';\nexport var Q = 'quarter';\nexport var Y = 'year';\nexport var DATE = 'date';\nexport var FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ssZ';\nexport var INVALID_DATE_STRING = 'Invalid Date'; // regex\n\nexport var REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nexport var REGEX_FORMAT = /\\[([^\\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;","// English [en]\n// We don't need weekdaysShort, weekdaysMin, monthsShort in en.js locale\nexport default {\n  name: 'en',\n  weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n  months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n  ordinal: function ordinal(n) {\n    var s = ['th', 'st', 'nd', 'rd'];\n    var v = n % 100;\n    return \"[\" + n + (s[(v - 20) % 10] || s[v] || s[0]) + \"]\";\n  }\n};","import * as C from './constant';\n\nvar padStart = function padStart(string, length, pad) {\n  var s = String(string);\n  if (!s || s.length >= length) return string;\n  return \"\" + Array(length + 1 - s.length).join(pad) + string;\n};\n\nvar padZoneStr = function padZoneStr(instance) {\n  var negMinutes = -instance.utcOffset();\n  var minutes = Math.abs(negMinutes);\n  var hourOffset = Math.floor(minutes / 60);\n  var minuteOffset = minutes % 60;\n  return \"\" + (negMinutes <= 0 ? '+' : '-') + padStart(hourOffset, 2, '0') + \":\" + padStart(minuteOffset, 2, '0');\n};\n\nvar monthDiff = function monthDiff(a, b) {\n  // function from moment.js in order to keep the same result\n  if (a.date() < b.date()) return -monthDiff(b, a);\n  var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month());\n  var anchor = a.clone().add(wholeMonthDiff, C.M);\n  var c = b - anchor < 0;\n  var anchor2 = a.clone().add(wholeMonthDiff + (c ? -1 : 1), C.M);\n  return +(-(wholeMonthDiff + (b - anchor) / (c ? anchor - anchor2 : anchor2 - anchor)) || 0);\n};\n\nvar absFloor = function absFloor(n) {\n  return n < 0 ? Math.ceil(n) || 0 : Math.floor(n);\n};\n\nvar prettyUnit = function prettyUnit(u) {\n  var special = {\n    M: C.M,\n    y: C.Y,\n    w: C.W,\n    d: C.D,\n    D: C.DATE,\n    h: C.H,\n    m: C.MIN,\n    s: C.S,\n    ms: C.MS,\n    Q: C.Q\n  };\n  return special[u] || String(u || '').toLowerCase().replace(/s$/, '');\n};\n\nvar isUndefined = function isUndefined(s) {\n  return s === undefined;\n};\n\nexport default {\n  s: padStart,\n  z: padZoneStr,\n  m: monthDiff,\n  a: absFloor,\n  p: prettyUnit,\n  u: isUndefined\n};","import * as C from './constant';\nimport en from './locale/en';\nimport U from './utils';\nvar L = 'en'; // global locale\n\nvar Ls = {}; // global loaded locale\n\nLs[L] = en;\nvar IS_DAYJS = '$isDayjsObject'; // eslint-disable-next-line no-use-before-define\n\nvar isDayjs = function isDayjs(d) {\n  return d instanceof Dayjs || !!(d && d[IS_DAYJS]);\n};\n\nvar parseLocale = function parseLocale(preset, object, isLocal) {\n  var l;\n  if (!preset) return L;\n\n  if (typeof preset === 'string') {\n    var presetLower = preset.toLowerCase();\n\n    if (Ls[presetLower]) {\n      l = presetLower;\n    }\n\n    if (object) {\n      Ls[presetLower] = object;\n      l = presetLower;\n    }\n\n    var presetSplit = preset.split('-');\n\n    if (!l && presetSplit.length > 1) {\n      return parseLocale(presetSplit[0]);\n    }\n  } else {\n    var name = preset.name;\n    Ls[name] = preset;\n    l = name;\n  }\n\n  if (!isLocal && l) L = l;\n  return l || !isLocal && L;\n};\n\nvar dayjs = function dayjs(date, c) {\n  if (isDayjs(date)) {\n    return date.clone();\n  } // eslint-disable-next-line no-nested-ternary\n\n\n  var cfg = typeof c === 'object' ? c : {};\n  cfg.date = date;\n  cfg.args = arguments; // eslint-disable-line prefer-rest-params\n\n  return new Dayjs(cfg); // eslint-disable-line no-use-before-define\n};\n\nvar wrapper = function wrapper(date, instance) {\n  return dayjs(date, {\n    locale: instance.$L,\n    utc: instance.$u,\n    x: instance.$x,\n    $offset: instance.$offset // todo: refactor; do not use this.$offset in you code\n\n  });\n};\n\nvar Utils = U; // for plugin use\n\nUtils.l = parseLocale;\nUtils.i = isDayjs;\nUtils.w = wrapper;\n\nvar parseDate = function parseDate(cfg) {\n  var date = cfg.date,\n      utc = cfg.utc;\n  if (date === null) return new Date(NaN); // null is invalid\n\n  if (Utils.u(date)) return new Date(); // today\n\n  if (date instanceof Date) return new Date(date);\n\n  if (typeof date === 'string' && !/Z$/i.test(date)) {\n    var d = date.match(C.REGEX_PARSE);\n\n    if (d) {\n      var m = d[2] - 1 || 0;\n      var ms = (d[7] || '0').substring(0, 3);\n\n      if (utc) {\n        return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms));\n      }\n\n      return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n    }\n  }\n\n  return new Date(date); // everything else\n};\n\nvar Dayjs = /*#__PURE__*/function () {\n  function Dayjs(cfg) {\n    this.$L = parseLocale(cfg.locale, null, true);\n    this.parse(cfg); // for plugin\n\n    this.$x = this.$x || cfg.x || {};\n    this[IS_DAYJS] = true;\n  }\n\n  var _proto = Dayjs.prototype;\n\n  _proto.parse = function parse(cfg) {\n    this.$d = parseDate(cfg);\n    this.init();\n  };\n\n  _proto.init = function init() {\n    var $d = this.$d;\n    this.$y = $d.getFullYear();\n    this.$M = $d.getMonth();\n    this.$D = $d.getDate();\n    this.$W = $d.getDay();\n    this.$H = $d.getHours();\n    this.$m = $d.getMinutes();\n    this.$s = $d.getSeconds();\n    this.$ms = $d.getMilliseconds();\n  } // eslint-disable-next-line class-methods-use-this\n  ;\n\n  _proto.$utils = function $utils() {\n    return Utils;\n  };\n\n  _proto.isValid = function isValid() {\n    return !(this.$d.toString() === C.INVALID_DATE_STRING);\n  };\n\n  _proto.isSame = function isSame(that, units) {\n    var other = dayjs(that);\n    return this.startOf(units) <= other && other <= this.endOf(units);\n  };\n\n  _proto.isAfter = function isAfter(that, units) {\n    return dayjs(that) < this.startOf(units);\n  };\n\n  _proto.isBefore = function isBefore(that, units) {\n    return this.endOf(units) < dayjs(that);\n  };\n\n  _proto.$g = function $g(input, get, set) {\n    if (Utils.u(input)) return this[get];\n    return this.set(set, input);\n  };\n\n  _proto.unix = function unix() {\n    return Math.floor(this.valueOf() / 1000);\n  };\n\n  _proto.valueOf = function valueOf() {\n    // timezone(hour) * 60 * 60 * 1000 => ms\n    return this.$d.getTime();\n  };\n\n  _proto.startOf = function startOf(units, _startOf) {\n    var _this = this;\n\n    // startOf -> endOf\n    var isStartOf = !Utils.u(_startOf) ? _startOf : true;\n    var unit = Utils.p(units);\n\n    var instanceFactory = function instanceFactory(d, m) {\n      var ins = Utils.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this);\n      return isStartOf ? ins : ins.endOf(C.D);\n    };\n\n    var instanceFactorySet = function instanceFactorySet(method, slice) {\n      var argumentStart = [0, 0, 0, 0];\n      var argumentEnd = [23, 59, 59, 999];\n      return Utils.w(_this.toDate()[method].apply( // eslint-disable-line prefer-spread\n      _this.toDate('s'), (isStartOf ? argumentStart : argumentEnd).slice(slice)), _this);\n    };\n\n    var $W = this.$W,\n        $M = this.$M,\n        $D = this.$D;\n    var utcPad = \"set\" + (this.$u ? 'UTC' : '');\n\n    switch (unit) {\n      case C.Y:\n        return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11);\n\n      case C.M:\n        return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1);\n\n      case C.W:\n        {\n          var weekStart = this.$locale().weekStart || 0;\n          var gap = ($W < weekStart ? $W + 7 : $W) - weekStart;\n          return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M);\n        }\n\n      case C.D:\n      case C.DATE:\n        return instanceFactorySet(utcPad + \"Hours\", 0);\n\n      case C.H:\n        return instanceFactorySet(utcPad + \"Minutes\", 1);\n\n      case C.MIN:\n        return instanceFactorySet(utcPad + \"Seconds\", 2);\n\n      case C.S:\n        return instanceFactorySet(utcPad + \"Milliseconds\", 3);\n\n      default:\n        return this.clone();\n    }\n  };\n\n  _proto.endOf = function endOf(arg) {\n    return this.startOf(arg, false);\n  };\n\n  _proto.$set = function $set(units, _int) {\n    var _C$D$C$DATE$C$M$C$Y$C;\n\n    // private set\n    var unit = Utils.p(units);\n    var utcPad = \"set\" + (this.$u ? 'UTC' : '');\n    var name = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[C.D] = utcPad + \"Date\", _C$D$C$DATE$C$M$C$Y$C[C.DATE] = utcPad + \"Date\", _C$D$C$DATE$C$M$C$Y$C[C.M] = utcPad + \"Month\", _C$D$C$DATE$C$M$C$Y$C[C.Y] = utcPad + \"FullYear\", _C$D$C$DATE$C$M$C$Y$C[C.H] = utcPad + \"Hours\", _C$D$C$DATE$C$M$C$Y$C[C.MIN] = utcPad + \"Minutes\", _C$D$C$DATE$C$M$C$Y$C[C.S] = utcPad + \"Seconds\", _C$D$C$DATE$C$M$C$Y$C[C.MS] = utcPad + \"Milliseconds\", _C$D$C$DATE$C$M$C$Y$C)[unit];\n    var arg = unit === C.D ? this.$D + (_int - this.$W) : _int;\n\n    if (unit === C.M || unit === C.Y) {\n      // clone is for badMutable plugin\n      var date = this.clone().set(C.DATE, 1);\n      date.$d[name](arg);\n      date.init();\n      this.$d = date.set(C.DATE, Math.min(this.$D, date.daysInMonth())).$d;\n    } else if (name) this.$d[name](arg);\n\n    this.init();\n    return this;\n  };\n\n  _proto.set = function set(string, _int2) {\n    return this.clone().$set(string, _int2);\n  };\n\n  _proto.get = function get(unit) {\n    return this[Utils.p(unit)]();\n  };\n\n  _proto.add = function add(number, units) {\n    var _this2 = this,\n        _C$MIN$C$H$C$S$unit;\n\n    number = Number(number); // eslint-disable-line no-param-reassign\n\n    var unit = Utils.p(units);\n\n    var instanceFactorySet = function instanceFactorySet(n) {\n      var d = dayjs(_this2);\n      return Utils.w(d.date(d.date() + Math.round(n * number)), _this2);\n    };\n\n    if (unit === C.M) {\n      return this.set(C.M, this.$M + number);\n    }\n\n    if (unit === C.Y) {\n      return this.set(C.Y, this.$y + number);\n    }\n\n    if (unit === C.D) {\n      return instanceFactorySet(1);\n    }\n\n    if (unit === C.W) {\n      return instanceFactorySet(7);\n    }\n\n    var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[C.MIN] = C.MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[C.H] = C.MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[C.S] = C.MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit] || 1; // ms\n\n    var nextTimeStamp = this.$d.getTime() + number * step;\n    return Utils.w(nextTimeStamp, this);\n  };\n\n  _proto.subtract = function subtract(number, string) {\n    return this.add(number * -1, string);\n  };\n\n  _proto.format = function format(formatStr) {\n    var _this3 = this;\n\n    var locale = this.$locale();\n    if (!this.isValid()) return locale.invalidDate || C.INVALID_DATE_STRING;\n    var str = formatStr || C.FORMAT_DEFAULT;\n    var zoneStr = Utils.z(this);\n    var $H = this.$H,\n        $m = this.$m,\n        $M = this.$M;\n    var weekdays = locale.weekdays,\n        months = locale.months,\n        meridiem = locale.meridiem;\n\n    var getShort = function getShort(arr, index, full, length) {\n      return arr && (arr[index] || arr(_this3, str)) || full[index].slice(0, length);\n    };\n\n    var get$H = function get$H(num) {\n      return Utils.s($H % 12 || 12, num, '0');\n    };\n\n    var meridiemFunc = meridiem || function (hour, minute, isLowercase) {\n      var m = hour < 12 ? 'AM' : 'PM';\n      return isLowercase ? m.toLowerCase() : m;\n    };\n\n    var matches = function matches(match) {\n      switch (match) {\n        case 'YY':\n          return String(_this3.$y).slice(-2);\n\n        case 'YYYY':\n          return Utils.s(_this3.$y, 4, '0');\n\n        case 'M':\n          return $M + 1;\n\n        case 'MM':\n          return Utils.s($M + 1, 2, '0');\n\n        case 'MMM':\n          return getShort(locale.monthsShort, $M, months, 3);\n\n        case 'MMMM':\n          return getShort(months, $M);\n\n        case 'D':\n          return _this3.$D;\n\n        case 'DD':\n          return Utils.s(_this3.$D, 2, '0');\n\n        case 'd':\n          return String(_this3.$W);\n\n        case 'dd':\n          return getShort(locale.weekdaysMin, _this3.$W, weekdays, 2);\n\n        case 'ddd':\n          return getShort(locale.weekdaysShort, _this3.$W, weekdays, 3);\n\n        case 'dddd':\n          return weekdays[_this3.$W];\n\n        case 'H':\n          return String($H);\n\n        case 'HH':\n          return Utils.s($H, 2, '0');\n\n        case 'h':\n          return get$H(1);\n\n        case 'hh':\n          return get$H(2);\n\n        case 'a':\n          return meridiemFunc($H, $m, true);\n\n        case 'A':\n          return meridiemFunc($H, $m, false);\n\n        case 'm':\n          return String($m);\n\n        case 'mm':\n          return Utils.s($m, 2, '0');\n\n        case 's':\n          return String(_this3.$s);\n\n        case 'ss':\n          return Utils.s(_this3.$s, 2, '0');\n\n        case 'SSS':\n          return Utils.s(_this3.$ms, 3, '0');\n\n        case 'Z':\n          return zoneStr;\n        // 'ZZ' logic below\n\n        default:\n          break;\n      }\n\n      return null;\n    };\n\n    return str.replace(C.REGEX_FORMAT, function (match, $1) {\n      return $1 || matches(match) || zoneStr.replace(':', '');\n    }); // 'ZZ'\n  };\n\n  _proto.utcOffset = function utcOffset() {\n    // Because a bug at FF24, we're rounding the timezone offset around 15 minutes\n    // https://github.com/moment/moment/pull/1871\n    return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;\n  };\n\n  _proto.diff = function diff(input, units, _float) {\n    var _this4 = this;\n\n    var unit = Utils.p(units);\n    var that = dayjs(input);\n    var zoneDelta = (that.utcOffset() - this.utcOffset()) * C.MILLISECONDS_A_MINUTE;\n    var diff = this - that;\n\n    var getMonth = function getMonth() {\n      return Utils.m(_this4, that);\n    };\n\n    var result;\n\n    switch (unit) {\n      case C.Y:\n        result = getMonth() / 12;\n        break;\n\n      case C.M:\n        result = getMonth();\n        break;\n\n      case C.Q:\n        result = getMonth() / 3;\n        break;\n\n      case C.W:\n        result = (diff - zoneDelta) / C.MILLISECONDS_A_WEEK;\n        break;\n\n      case C.D:\n        result = (diff - zoneDelta) / C.MILLISECONDS_A_DAY;\n        break;\n\n      case C.H:\n        result = diff / C.MILLISECONDS_A_HOUR;\n        break;\n\n      case C.MIN:\n        result = diff / C.MILLISECONDS_A_MINUTE;\n        break;\n\n      case C.S:\n        result = diff / C.MILLISECONDS_A_SECOND;\n        break;\n\n      default:\n        result = diff; // milliseconds\n\n        break;\n    }\n\n    return _float ? result : Utils.a(result);\n  };\n\n  _proto.daysInMonth = function daysInMonth() {\n    return this.endOf(C.M).$D;\n  };\n\n  _proto.$locale = function $locale() {\n    // get locale object\n    return Ls[this.$L];\n  };\n\n  _proto.locale = function locale(preset, object) {\n    if (!preset) return this.$L;\n    var that = this.clone();\n    var nextLocaleName = parseLocale(preset, object, true);\n    if (nextLocaleName) that.$L = nextLocaleName;\n    return that;\n  };\n\n  _proto.clone = function clone() {\n    return Utils.w(this.$d, this);\n  };\n\n  _proto.toDate = function toDate() {\n    return new Date(this.valueOf());\n  };\n\n  _proto.toJSON = function toJSON() {\n    return this.isValid() ? this.toISOString() : null;\n  };\n\n  _proto.toISOString = function toISOString() {\n    // ie 8 return\n    // new Dayjs(this.valueOf() + this.$d.getTimezoneOffset() * 60000)\n    // .format('YYYY-MM-DDTHH:mm:ss.SSS[Z]')\n    return this.$d.toISOString();\n  };\n\n  _proto.toString = function toString() {\n    return this.$d.toUTCString();\n  };\n\n  return Dayjs;\n}();\n\nvar proto = Dayjs.prototype;\ndayjs.prototype = proto;\n[['$ms', C.MS], ['$s', C.S], ['$m', C.MIN], ['$H', C.H], ['$W', C.D], ['$M', C.M], ['$y', C.Y], ['$D', C.DATE]].forEach(function (g) {\n  proto[g[1]] = function (input) {\n    return this.$g(input, g[0], g[1]);\n  };\n});\n\ndayjs.extend = function (plugin, option) {\n  if (!plugin.$i) {\n    // install plugin only once\n    plugin(option, Dayjs, dayjs);\n    plugin.$i = true;\n  }\n\n  return dayjs;\n};\n\ndayjs.locale = parseLocale;\ndayjs.isDayjs = isDayjs;\n\ndayjs.unix = function (timestamp) {\n  return dayjs(timestamp * 1e3);\n};\n\ndayjs.en = Ls[L];\ndayjs.Ls = Ls;\ndayjs.p = {};\nexport default dayjs;","import { MILLISECONDS_A_DAY, MILLISECONDS_A_HOUR, MILLISECONDS_A_MINUTE, MILLISECONDS_A_SECOND, MILLISECONDS_A_WEEK } from '../../constant';\nvar MILLISECONDS_A_YEAR = MILLISECONDS_A_DAY * 365;\nvar MILLISECONDS_A_MONTH = MILLISECONDS_A_YEAR / 12;\nvar DURATION_REGEX_PARSE = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\nvar DURATION_REGEX_FORMAT = /\\[([^\\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g;\nvar unitToMS = {\n  years: MILLISECONDS_A_YEAR,\n  months: MILLISECONDS_A_MONTH,\n  days: MILLISECONDS_A_DAY,\n  hours: MILLISECONDS_A_HOUR,\n  minutes: MILLISECONDS_A_MINUTE,\n  seconds: MILLISECONDS_A_SECOND,\n  milliseconds: 1,\n  weeks: MILLISECONDS_A_WEEK\n};\n\nvar isDuration = function isDuration(d) {\n  return d instanceof Duration;\n}; // eslint-disable-line no-use-before-define\n\n\nvar $d;\nvar $u;\n\nvar wrapper = function wrapper(input, instance, unit) {\n  return new Duration(input, unit, instance.$l);\n}; // eslint-disable-line no-use-before-define\n\n\nvar prettyUnit = function prettyUnit(unit) {\n  return $u.p(unit) + \"s\";\n};\n\nvar isNegative = function isNegative(number) {\n  return number < 0;\n};\n\nvar roundNumber = function roundNumber(number) {\n  return isNegative(number) ? Math.ceil(number) : Math.floor(number);\n};\n\nvar absolute = function absolute(number) {\n  return Math.abs(number);\n};\n\nvar getNumberUnitFormat = function getNumberUnitFormat(number, unit) {\n  if (!number) {\n    return {\n      negative: false,\n      format: ''\n    };\n  }\n\n  if (isNegative(number)) {\n    return {\n      negative: true,\n      format: \"\" + absolute(number) + unit\n    };\n  }\n\n  return {\n    negative: false,\n    format: \"\" + number + unit\n  };\n};\n\nvar Duration = /*#__PURE__*/function () {\n  function Duration(input, unit, locale) {\n    var _this = this;\n\n    this.$d = {};\n    this.$l = locale;\n\n    if (input === undefined) {\n      this.$ms = 0;\n      this.parseFromMilliseconds();\n    }\n\n    if (unit) {\n      return wrapper(input * unitToMS[prettyUnit(unit)], this);\n    }\n\n    if (typeof input === 'number') {\n      this.$ms = input;\n      this.parseFromMilliseconds();\n      return this;\n    }\n\n    if (typeof input === 'object') {\n      Object.keys(input).forEach(function (k) {\n        _this.$d[prettyUnit(k)] = input[k];\n      });\n      this.calMilliseconds();\n      return this;\n    }\n\n    if (typeof input === 'string') {\n      var d = input.match(DURATION_REGEX_PARSE);\n\n      if (d) {\n        var properties = d.slice(2);\n        var numberD = properties.map(function (value) {\n          return value != null ? Number(value) : 0;\n        });\n        this.$d.years = numberD[0];\n        this.$d.months = numberD[1];\n        this.$d.weeks = numberD[2];\n        this.$d.days = numberD[3];\n        this.$d.hours = numberD[4];\n        this.$d.minutes = numberD[5];\n        this.$d.seconds = numberD[6];\n        this.calMilliseconds();\n        return this;\n      }\n    }\n\n    return this;\n  }\n\n  var _proto = Duration.prototype;\n\n  _proto.calMilliseconds = function calMilliseconds() {\n    var _this2 = this;\n\n    this.$ms = Object.keys(this.$d).reduce(function (total, unit) {\n      return total + (_this2.$d[unit] || 0) * unitToMS[unit];\n    }, 0);\n  };\n\n  _proto.parseFromMilliseconds = function parseFromMilliseconds() {\n    var $ms = this.$ms;\n    this.$d.years = roundNumber($ms / MILLISECONDS_A_YEAR);\n    $ms %= MILLISECONDS_A_YEAR;\n    this.$d.months = roundNumber($ms / MILLISECONDS_A_MONTH);\n    $ms %= MILLISECONDS_A_MONTH;\n    this.$d.days = roundNumber($ms / MILLISECONDS_A_DAY);\n    $ms %= MILLISECONDS_A_DAY;\n    this.$d.hours = roundNumber($ms / MILLISECONDS_A_HOUR);\n    $ms %= MILLISECONDS_A_HOUR;\n    this.$d.minutes = roundNumber($ms / MILLISECONDS_A_MINUTE);\n    $ms %= MILLISECONDS_A_MINUTE;\n    this.$d.seconds = roundNumber($ms / MILLISECONDS_A_SECOND);\n    $ms %= MILLISECONDS_A_SECOND;\n    this.$d.milliseconds = $ms;\n  };\n\n  _proto.toISOString = function toISOString() {\n    var Y = getNumberUnitFormat(this.$d.years, 'Y');\n    var M = getNumberUnitFormat(this.$d.months, 'M');\n    var days = +this.$d.days || 0;\n\n    if (this.$d.weeks) {\n      days += this.$d.weeks * 7;\n    }\n\n    var D = getNumberUnitFormat(days, 'D');\n    var H = getNumberUnitFormat(this.$d.hours, 'H');\n    var m = getNumberUnitFormat(this.$d.minutes, 'M');\n    var seconds = this.$d.seconds || 0;\n\n    if (this.$d.milliseconds) {\n      seconds += this.$d.milliseconds / 1000;\n      seconds = Math.round(seconds * 1000) / 1000;\n    }\n\n    var S = getNumberUnitFormat(seconds, 'S');\n    var negativeMode = Y.negative || M.negative || D.negative || H.negative || m.negative || S.negative;\n    var T = H.format || m.format || S.format ? 'T' : '';\n    var P = negativeMode ? '-' : '';\n    var result = P + \"P\" + Y.format + M.format + D.format + T + H.format + m.format + S.format;\n    return result === 'P' || result === '-P' ? 'P0D' : result;\n  };\n\n  _proto.toJSON = function toJSON() {\n    return this.toISOString();\n  };\n\n  _proto.format = function format(formatStr) {\n    var str = formatStr || 'YYYY-MM-DDTHH:mm:ss';\n    var matches = {\n      Y: this.$d.years,\n      YY: $u.s(this.$d.years, 2, '0'),\n      YYYY: $u.s(this.$d.years, 4, '0'),\n      M: this.$d.months,\n      MM: $u.s(this.$d.months, 2, '0'),\n      D: this.$d.days,\n      DD: $u.s(this.$d.days, 2, '0'),\n      H: this.$d.hours,\n      HH: $u.s(this.$d.hours, 2, '0'),\n      m: this.$d.minutes,\n      mm: $u.s(this.$d.minutes, 2, '0'),\n      s: this.$d.seconds,\n      ss: $u.s(this.$d.seconds, 2, '0'),\n      SSS: $u.s(this.$d.milliseconds, 3, '0')\n    };\n    return str.replace(DURATION_REGEX_FORMAT, function (match, $1) {\n      return $1 || String(matches[match]);\n    });\n  };\n\n  _proto.as = function as(unit) {\n    return this.$ms / unitToMS[prettyUnit(unit)];\n  };\n\n  _proto.get = function get(unit) {\n    var base = this.$ms;\n    var pUnit = prettyUnit(unit);\n\n    if (pUnit === 'milliseconds') {\n      base %= 1000;\n    } else if (pUnit === 'weeks') {\n      base = roundNumber(base / unitToMS[pUnit]);\n    } else {\n      base = this.$d[pUnit];\n    }\n\n    return base || 0; // a === 0 will be true on both 0 and -0\n  };\n\n  _proto.add = function add(input, unit, isSubtract) {\n    var another;\n\n    if (unit) {\n      another = input * unitToMS[prettyUnit(unit)];\n    } else if (isDuration(input)) {\n      another = input.$ms;\n    } else {\n      another = wrapper(input, this).$ms;\n    }\n\n    return wrapper(this.$ms + another * (isSubtract ? -1 : 1), this);\n  };\n\n  _proto.subtract = function subtract(input, unit) {\n    return this.add(input, unit, true);\n  };\n\n  _proto.locale = function locale(l) {\n    var that = this.clone();\n    that.$l = l;\n    return that;\n  };\n\n  _proto.clone = function clone() {\n    return wrapper(this.$ms, this);\n  };\n\n  _proto.humanize = function humanize(withSuffix) {\n    return $d().add(this.$ms, 'ms').locale(this.$l).fromNow(!withSuffix);\n  };\n\n  _proto.valueOf = function valueOf() {\n    return this.asMilliseconds();\n  };\n\n  _proto.milliseconds = function milliseconds() {\n    return this.get('milliseconds');\n  };\n\n  _proto.asMilliseconds = function asMilliseconds() {\n    return this.as('milliseconds');\n  };\n\n  _proto.seconds = function seconds() {\n    return this.get('seconds');\n  };\n\n  _proto.asSeconds = function asSeconds() {\n    return this.as('seconds');\n  };\n\n  _proto.minutes = function minutes() {\n    return this.get('minutes');\n  };\n\n  _proto.asMinutes = function asMinutes() {\n    return this.as('minutes');\n  };\n\n  _proto.hours = function hours() {\n    return this.get('hours');\n  };\n\n  _proto.asHours = function asHours() {\n    return this.as('hours');\n  };\n\n  _proto.days = function days() {\n    return this.get('days');\n  };\n\n  _proto.asDays = function asDays() {\n    return this.as('days');\n  };\n\n  _proto.weeks = function weeks() {\n    return this.get('weeks');\n  };\n\n  _proto.asWeeks = function asWeeks() {\n    return this.as('weeks');\n  };\n\n  _proto.months = function months() {\n    return this.get('months');\n  };\n\n  _proto.asMonths = function asMonths() {\n    return this.as('months');\n  };\n\n  _proto.years = function years() {\n    return this.get('years');\n  };\n\n  _proto.asYears = function asYears() {\n    return this.as('years');\n  };\n\n  return Duration;\n}();\n\nvar manipulateDuration = function manipulateDuration(date, duration, k) {\n  return date.add(duration.years() * k, 'y').add(duration.months() * k, 'M').add(duration.days() * k, 'd').add(duration.hours() * k, 'h').add(duration.minutes() * k, 'm').add(duration.seconds() * k, 's').add(duration.milliseconds() * k, 'ms');\n};\n\nexport default (function (option, Dayjs, dayjs) {\n  $d = dayjs;\n  $u = dayjs().$utils();\n\n  dayjs.duration = function (input, unit) {\n    var $l = dayjs.locale();\n    return wrapper(input, {\n      $l: $l\n    }, unit);\n  };\n\n  dayjs.isDuration = isDuration;\n  var oldAdd = Dayjs.prototype.add;\n  var oldSubtract = Dayjs.prototype.subtract;\n\n  Dayjs.prototype.add = function (value, unit) {\n    if (isDuration(value)) {\n      return manipulateDuration(this, value, 1);\n    }\n\n    return oldAdd.bind(this)(value, unit);\n  };\n\n  Dayjs.prototype.subtract = function (value, unit) {\n    if (isDuration(value)) {\n      return manipulateDuration(this, value, -1);\n    }\n\n    return oldSubtract.bind(this)(value, unit);\n  };\n});","import * as C from '../../constant';\nexport default (function (o, c, d) {\n  o = o || {};\n  var proto = c.prototype;\n  var relObj = {\n    future: 'in %s',\n    past: '%s ago',\n    s: 'a few seconds',\n    m: 'a minute',\n    mm: '%d minutes',\n    h: 'an hour',\n    hh: '%d hours',\n    d: 'a day',\n    dd: '%d days',\n    M: 'a month',\n    MM: '%d months',\n    y: 'a year',\n    yy: '%d years'\n  };\n  d.en.relativeTime = relObj;\n\n  proto.fromToBase = function (input, withoutSuffix, instance, isFrom, postFormat) {\n    var loc = instance.$locale().relativeTime || relObj;\n    var T = o.thresholds || [{\n      l: 's',\n      r: 44,\n      d: C.S\n    }, {\n      l: 'm',\n      r: 89\n    }, {\n      l: 'mm',\n      r: 44,\n      d: C.MIN\n    }, {\n      l: 'h',\n      r: 89\n    }, {\n      l: 'hh',\n      r: 21,\n      d: C.H\n    }, {\n      l: 'd',\n      r: 35\n    }, {\n      l: 'dd',\n      r: 25,\n      d: C.D\n    }, {\n      l: 'M',\n      r: 45\n    }, {\n      l: 'MM',\n      r: 10,\n      d: C.M\n    }, {\n      l: 'y',\n      r: 17\n    }, {\n      l: 'yy',\n      d: C.Y\n    }];\n    var Tl = T.length;\n    var result;\n    var out;\n    var isFuture;\n\n    for (var i = 0; i < Tl; i += 1) {\n      var t = T[i];\n\n      if (t.d) {\n        result = isFrom ? d(input).diff(instance, t.d, true) : instance.diff(input, t.d, true);\n      }\n\n      var abs = (o.rounding || Math.round)(Math.abs(result));\n      isFuture = result > 0;\n\n      if (abs <= t.r || !t.r) {\n        if (abs <= 1 && i > 0) t = T[i - 1]; // 1 minutes -> a minute, 0 seconds -> 0 second\n\n        var format = loc[t.l];\n\n        if (postFormat) {\n          abs = postFormat(\"\" + abs);\n        }\n\n        if (typeof format === 'string') {\n          out = format.replace('%d', abs);\n        } else {\n          out = format(abs, withoutSuffix, t.l, isFuture);\n        }\n\n        break;\n      }\n    }\n\n    if (withoutSuffix) return out;\n    var pastOrFuture = isFuture ? loc.future : loc.past;\n\n    if (typeof pastOrFuture === 'function') {\n      return pastOrFuture(out);\n    }\n\n    return pastOrFuture.replace('%s', out);\n  };\n\n  function fromTo(input, withoutSuffix, instance, isFrom) {\n    return proto.fromToBase(input, withoutSuffix, instance, isFrom);\n  }\n\n  proto.to = function (input, withoutSuffix) {\n    return fromTo(input, withoutSuffix, this, true);\n  };\n\n  proto.from = function (input, withoutSuffix) {\n    return fromTo(input, withoutSuffix, this);\n  };\n\n  var makeNow = function makeNow(thisDay) {\n    return thisDay.$u ? d.utc() : d();\n  };\n\n  proto.toNow = function (withoutSuffix) {\n    return this.to(makeNow(this), withoutSuffix);\n  };\n\n  proto.fromNow = function (withoutSuffix) {\n    return this.from(makeNow(this), withoutSuffix);\n  };\n});","// Russian [ru]\nimport dayjs from '../index';\nvar monthFormat = 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_');\nvar monthStandalone = 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_');\nvar monthShortFormat = 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_');\nvar monthShortStandalone = 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_');\nvar MONTHS_IN_FORMAT = /D[oD]?(\\[[^[\\]]*\\]|\\s)+MMMM?/;\n\nfunction plural(word, num) {\n  var forms = word.split('_');\n  return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]; // eslint-disable-line\n}\n\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\n  var format = {\n    mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n    hh: 'час_часа_часов',\n    dd: 'день_дня_дней',\n    MM: 'месяц_месяца_месяцев',\n    yy: 'год_года_лет'\n  };\n\n  if (key === 'm') {\n    return withoutSuffix ? 'минута' : 'минуту';\n  }\n\n  return number + \" \" + plural(format[key], +number);\n}\n\nvar months = function months(dayjsInstance, format) {\n  if (MONTHS_IN_FORMAT.test(format)) {\n    return monthFormat[dayjsInstance.month()];\n  }\n\n  return monthStandalone[dayjsInstance.month()];\n};\n\nmonths.s = monthStandalone;\nmonths.f = monthFormat;\n\nvar monthsShort = function monthsShort(dayjsInstance, format) {\n  if (MONTHS_IN_FORMAT.test(format)) {\n    return monthShortFormat[dayjsInstance.month()];\n  }\n\n  return monthShortStandalone[dayjsInstance.month()];\n};\n\nmonthsShort.s = monthShortStandalone;\nmonthsShort.f = monthShortFormat;\nvar locale = {\n  name: 'ru',\n  weekdays: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n  weekdaysShort: 'вск_пнд_втр_срд_чтв_птн_сбт'.split('_'),\n  weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n  months: months,\n  monthsShort: monthsShort,\n  weekStart: 1,\n  yearStart: 4,\n  formats: {\n    LT: 'H:mm',\n    LTS: 'H:mm:ss',\n    L: 'DD.MM.YYYY',\n    LL: 'D MMMM YYYY г.',\n    LLL: 'D MMMM YYYY г., H:mm',\n    LLLL: 'dddd, D MMMM YYYY г., H:mm'\n  },\n  relativeTime: {\n    future: 'через %s',\n    past: '%s назад',\n    s: 'несколько секунд',\n    m: relativeTimeWithPlural,\n    mm: relativeTimeWithPlural,\n    h: 'час',\n    hh: relativeTimeWithPlural,\n    d: 'день',\n    dd: relativeTimeWithPlural,\n    M: 'месяц',\n    MM: relativeTimeWithPlural,\n    y: 'год',\n    yy: relativeTimeWithPlural\n  },\n  ordinal: function ordinal(n) {\n    return n;\n  },\n  meridiem: function meridiem(hour) {\n    if (hour < 4) {\n      return 'ночи';\n    } else if (hour < 12) {\n      return 'утра';\n    } else if (hour < 17) {\n      return 'дня';\n    }\n\n    return 'вечера';\n  }\n};\ndayjs.locale(locale, null, true);\nexport default locale;","import dayjs, { type Dayjs } from 'dayjs/esm/index.js';\nimport duration from 'dayjs/esm/plugin/duration/index.js';\nimport relativeTime from 'dayjs/esm/plugin/relativeTime/index.js';\nimport type { Maybe } from 'yummies/types';\n\nimport 'dayjs/esm/locale/ru.js';\n\ndayjs.extend(relativeTime);\ndayjs.extend(duration);\ndayjs.locale('ru');\n\nexport type RawDateToFormat = Date | string | number | Dayjs;\n\nexport { dayjs, type Dayjs };\n\nexport const toLibFormat = (value: Maybe<RawDateToFormat>): Dayjs | null => {\n  let result: Maybe<Dayjs> = null;\n  if (dayjs.isDayjs(value)) {\n    result = value;\n  } else if (value != null) {\n    result = dayjs(value);\n  }\n\n  if (!result?.isValid()) {\n    return null;\n  }\n\n  return result;\n};\n","import { type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Returns a new date shifted forward by the provided number of days.\n *\n * @example\n * ```ts\n * addDays(new Date('2024-03-15'), 7);\n * ```\n */\nexport const addDays = (date: RawDateToFormat, count: number) =>\n  toLibFormat(date)?.add(count, 'd').toDate();\n","import { type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Returns a new date shifted forward by the provided number of minutes.\n *\n * @example\n * ```ts\n * addMinutes(new Date('2024-03-15T12:00:00'), 15);\n * ```\n */\nexport const addMinutes = (date: RawDateToFormat, count: number) =>\n  toLibFormat(date)?.add(count, 'm').toDate();\n","import type { ManipulateType } from 'dayjs/esm/index.js';\nimport type { Maybe } from 'yummies/types';\nimport { type RawDateToFormat, toLibFormat } from './_shared.js';\n\ntype DateChangeParam = [amount: number, unit?: Maybe<ManipulateType>];\n\n/**\n * Applies one or more date adjustments and returns a new `Date` instance.\n *\n * @example\n * ```ts\n * changeDate(new Date(), 1, 'day', 30, 'minute');\n * ```\n */\nexport const changeDate = (\n  date: Maybe<RawDateToFormat>,\n  ...args: [\n    ...DateChangeParam,\n    ...Partial<DateChangeParam>,\n    ...Partial<DateChangeParam>,\n    ...Partial<DateChangeParam>,\n    ...Partial<DateChangeParam>,\n    ...Partial<DateChangeParam>,\n  ]\n) => {\n  let wrappedDate = toLibFormat(date)!;\n\n  for (let i = 0; i < args.length; i += 2) {\n    const amount = args[i] as DateChangeParam[0];\n    const unit = args[i + 1] as DateChangeParam[1];\n    if (unit != null) {\n      wrappedDate = wrappedDate.add(amount, unit);\n    }\n  }\n\n  return wrappedDate.toDate();\n};\n","import { unitsToMs } from 'yummies/ms';\n\n/**\n * Splits a duration in milliseconds into day-based time parts.\n *\n * @example\n * ```ts\n * dayTimeDuration(ms(1, 'day') + ms(2, 'hour'));\n * ```\n */\nexport const dayTimeDuration = (timeInMs: number) => {\n  let left = Math.max(timeInMs, 0);\n\n  const days = Math.floor(left / unitsToMs.day);\n  left = left % unitsToMs.day;\n\n  const hours = Math.floor(left / unitsToMs.hour);\n  left = left % unitsToMs.hour;\n\n  const minutes = Math.floor(left / unitsToMs.min);\n  left = left % unitsToMs.min;\n\n  const seconds = Math.floor(left / unitsToMs.sec);\n  left = left % unitsToMs.sec;\n\n  const milliseconds = Math.floor(left);\n\n  return {\n    days,\n    hours,\n    minutes,\n    seconds,\n    milliseconds,\n  };\n};\n","import type duration from 'dayjs/esm/plugin/duration/index.js';\nimport { format } from 'yummies/format';\nimport { typeGuard } from 'yummies/type-guard';\nimport type { Maybe } from 'yummies/types';\nimport { dayjs, type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Formats a date-like value using predefined presets or a custom pattern.\n *\n * @example\n * ```ts\n * formatDate('2024-03-15', { format: 'time-short' });\n * ```\n */\nexport const formatDate = (\n  value: Maybe<RawDateToFormat>,\n  settings?: Maybe<{\n    format?:\n      | 'human'\n      | 'full'\n      | 'short'\n      | 'day'\n      | 'day-only'\n      | 'date'\n      | 'month'\n      | 'spent-time'\n      | 'time'\n      | 'time-short';\n    pattern?: string;\n    asTime?: boolean;\n  }>,\n) => {\n  const dateFormat = settings?.format;\n  const datePattern = settings?.pattern;\n  const asTime = settings?.asTime;\n\n  let libDate: duration.Duration | dayjs.Dayjs | null = null;\n\n  if (asTime && typeGuard.isNumber(value)) {\n    libDate = dayjs.duration(value);\n  } else {\n    libDate = toLibFormat(value);\n  }\n\n  if (!libDate) {\n    return format.NO_VALUE;\n  }\n\n  if (datePattern) {\n    return libDate.format(datePattern);\n  }\n\n  if (dateFormat === 'human' || dateFormat === 'spent-time') {\n    if ('fromNow' in libDate) {\n      return libDate.fromNow(dateFormat === 'spent-time');\n    } else {\n      return format.NO_VALUE;\n    }\n  }\n\n  switch (dateFormat) {\n    case 'full': {\n      return libDate.format('DD MMM YYYY HH:mm:ss');\n    }\n    case 'short': {\n      return libDate.format('DD MMM HH:mm');\n    }\n    case 'time': {\n      return libDate.format('HH:mm:ss');\n    }\n    case 'time-short': {\n      return libDate.format('HH:mm');\n    }\n    case 'day': {\n      return libDate.format('DD MMM YYYY');\n    }\n    case 'month': {\n      return libDate.format('MMMM YYYY');\n    }\n    default: {\n      return libDate.format('DD.MM.YYYY');\n    }\n  }\n};\n","import { declension } from 'yummies/text';\nimport { dayjs } from './_shared.js';\nimport { dayTimeDuration } from './day-time-duration.js';\n\nconst durationFormatLabels = {\n  days: { compact: 'д', full: ['день', 'дня', 'дней'] },\n  hours: { compact: 'ч', full: ['час', 'часа', 'часов'] },\n  minutes: { compact: 'мин', full: ['минута', 'минуты', 'минут'] },\n  seconds: { compact: 'сек', full: ['секунда', 'секунды', 'секунд'] },\n} as const;\n\n/**\n * Formats a duration either from milliseconds or between two dates.\n *\n * @example\n * ```ts\n * getFormatDuration(ms(2, 'hour') + ms(15, 'min'));\n * ```\n */\nexport function getFormatDuration(\n  dateA: Date,\n  dateB: Date,\n  compact?: boolean,\n): string;\nexport function getFormatDuration(ms: number, compact?: boolean): string;\n\nexport function getFormatDuration(...args: any[]): string {\n  let compact = false;\n  let diff = 0;\n\n  if (args[0] instanceof Date) {\n    const startedDate = dayjs(args[0]);\n    const endedDate = dayjs(args[1]);\n\n    diff = endedDate.diff(startedDate, 'ms');\n    compact = args[2] === true;\n  } else {\n    diff = args[0];\n    compact = args[1] === true;\n  }\n\n  const { days, hours, minutes, seconds } = dayTimeDuration(diff);\n\n  const formattedParts: string[] = [];\n\n  if (days) {\n    if (compact) {\n      formattedParts.push(`${days} ${durationFormatLabels.days.compact}`);\n    } else {\n      formattedParts.push(\n        `${days} ${declension(days, durationFormatLabels.days.full)}`,\n      );\n    }\n  }\n\n  if (hours) {\n    if (compact) {\n      formattedParts.push(`${hours} ${durationFormatLabels.hours.compact}`);\n    } else {\n      formattedParts.push(\n        `${hours} ${declension(hours, durationFormatLabels.hours.full)}`,\n      );\n    }\n  }\n\n  if (minutes) {\n    if (compact) {\n      formattedParts.push(`${minutes} ${durationFormatLabels.minutes.compact}`);\n    } else {\n      formattedParts.push(\n        `${minutes} ${declension(minutes, durationFormatLabels.minutes.full)}`,\n      );\n    }\n  }\n\n  if (seconds) {\n    if (compact) {\n      formattedParts.push(`${seconds} ${durationFormatLabels.seconds.compact}`);\n    } else {\n      formattedParts.push(\n        `${seconds} ${declension(seconds, durationFormatLabels.seconds.full)}`,\n      );\n    }\n  }\n\n  return formattedParts.join(' ');\n}\n","import { ms } from 'yummies/ms';\nimport { type RawDateToFormat, toLibFormat } from './_shared.js';\n\nexport type TimeDiff = {\n  minutes: number;\n  seconds: number;\n  total: {\n    ms: number;\n    hours: number;\n  };\n};\n\n/**\n * Calculates the difference between two dates in minutes, seconds and total units.\n *\n * @example\n * ```ts\n * getTimeDiff(new Date('2024-03-15T12:30:00'), new Date('2024-03-15T12:00:00'));\n * ```\n */\nexport const getTimeDiff = (\n  dateA: RawDateToFormat,\n  dateB: RawDateToFormat,\n): TimeDiff => {\n  const leftDate = toLibFormat(dateA)?.toDate();\n  const rightDate = toLibFormat(dateB)?.toDate();\n\n  if (!leftDate || !rightDate) {\n    return {\n      minutes: 0,\n      seconds: 0,\n      total: { ms: 0, hours: 0 },\n    };\n  }\n\n  const msDiff = leftDate.getTime() - rightDate.getTime();\n\n  return {\n    minutes: Math.max(Math.floor(msDiff / ms(1, 'min')), 0),\n    seconds: Math.max(Math.floor((msDiff % ms(1, 'min')) / 1000), 0),\n    total: {\n      hours: Math.round(msDiff / ms(1, 'hour')),\n      ms: msDiff,\n    },\n  };\n};\n","import { type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Returns a new date with the hours field replaced.\n *\n * @example\n * ```ts\n * setHours(new Date('2024-03-15T12:00:00'), 9);\n * ```\n */\nexport const setHours = (date: RawDateToFormat, hours: number) =>\n  toLibFormat(date)?.set('h', hours).toDate();\n","import { type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Returns a new date with the minutes field replaced.\n *\n * @example\n * ```ts\n * setMinutes(new Date('2024-03-15T12:00:00'), 45);\n * ```\n */\nexport const setMinutes = (date: RawDateToFormat, minutes: number) =>\n  toLibFormat(date)?.set('m', minutes).toDate();\n","import { type RawDateToFormat, toLibFormat } from './_shared.js';\n\n/**\n * Returns a new date shifted backward by the provided number of days.\n *\n * @example\n * ```ts\n * subtractDays(new Date('2024-03-15'), 7);\n * ```\n */\nexport const subtractDays = (date: RawDateToFormat, count: number) =>\n  toLibFormat(date)?.subtract(count, 'd').toDate();\n","import { unitsToMs } from 'yummies/ms';\nimport { dayTimeDuration } from './day-time-duration.js';\n\n/**\n * Converts milliseconds into hour-based time parts without keeping full days separately.\n *\n * @example\n * ```ts\n * timeDuration(ms(1, 'hour') + ms(30, 'min'));\n * ```\n */\nexport const timeDuration = (timeInMs: number) => {\n  const { days, hours, milliseconds, minutes, seconds } =\n    dayTimeDuration(timeInMs);\n\n  return {\n    hours: hours + unitsToMs.day * days,\n    milliseconds,\n    minutes,\n    seconds,\n  };\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}