@openmrs/esm-utils 5.6.1-pre.2049 → 5.6.1-pre.2058

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"openmrs-esm-utils.js","mappings":"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","sources":["webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/utc.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/comparator.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/range.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/semver.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/clean.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/cmp.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/coerce.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-build.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-loose.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/diff.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/eq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/inc.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/major.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/minor.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/neq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/parse.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/patch.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/prerelease.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rcompare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rsort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/satisfies.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/sort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/valid.js","webpack://@openmrs/esm-utils/./node_modules/semver/index.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/constants.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/debug.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/identifiers.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/re.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/gtr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/intersects.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/ltr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/max-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-version.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/outside.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/simplify.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/subset.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/to-comparators.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/valid.js","webpack://@openmrs/esm-utils/external system \"dayjs\"","webpack://@openmrs/esm-utils/webpack/bootstrap","webpack://@openmrs/esm-utils/webpack/runtime/compat get default export","webpack://@openmrs/esm-utils/webpack/runtime/define property getters","webpack://@openmrs/esm-utils/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-utils/webpack/runtime/make namespace object","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/manipulation.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/queries.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/utils.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/GregorianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/string.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_class_private_field_init.js","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/CalendarDate.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/conversion.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/BuddhistCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/EthiopicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/HebrewCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IndianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IslamicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/JapaneseCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/PersianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/TaiwanCalendar.mjs","webpack://@openmrs/esm-utils/./src/omrs-dates.ts","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/createCalendar.mjs","webpack://@openmrs/esm-utils/./src/age-helpers.ts","webpack://@openmrs/esm-utils/./src/is-online.ts","webpack://@openmrs/esm-utils/./src/patient-helpers.ts","webpack://@openmrs/esm-utils/./src/shallowEqual.ts","webpack://@openmrs/esm-utils/./src/storage.ts","webpack://@openmrs/esm-utils/./src/test-helpers.ts","webpack://@openmrs/esm-utils/./src/version.ts","webpack://@openmrs/esm-utils/./src/retry.ts"],"sourcesContent":["!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n const loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n return range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parse = (version, options) => {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst { ANY } = require('../classes/comparator.js')\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n// - If LT.semver is greater than that of any > comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub.length === 1 && sub[0].semver === ANY)\n return dom.length === 1 && dom[0].semver === ANY\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","module.exports = __WEBPACK_EXTERNAL_MODULE__688__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484} from \"./conversion.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nconst $735220c2d4774dd3$var$ONE_HOUR = 3600000;\nfunction $735220c2d4774dd3$export$e16d8520af44a096(date, duration) {\n let mutableDate = date.copy();\n let days = 'hour' in mutableDate ? $735220c2d4774dd3$var$addTimeFields(mutableDate, duration) : 0;\n $735220c2d4774dd3$var$addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) mutableDate.calendar.balanceYearMonth(mutableDate, date);\n mutableDate.month += duration.months || 0;\n $735220c2d4774dd3$var$balanceYearMonth(mutableDate);\n $735220c2d4774dd3$var$constrainMonthDay(mutableDate);\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n $735220c2d4774dd3$var$balanceDay(mutableDate);\n if (mutableDate.calendar.balanceDate) mutableDate.calendar.balanceDate(mutableDate);\n // Constrain in case adding ended up with a date outside the valid range for the calendar system.\n // The behavior here is slightly different than when constraining in the `set` function in that\n // we adjust smaller fields to their minimum/maximum values rather than constraining each field\n // individually. This matches the general behavior of `add` vs `set` regarding how fields are balanced.\n if (mutableDate.year < 1) {\n mutableDate.year = 1;\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);\n if (mutableDate.year > maxYear) {\n var _mutableDate_calendar_isInverseEra, _mutableDate_calendar;\n let isInverseEra = (_mutableDate_calendar_isInverseEra = (_mutableDate_calendar = mutableDate.calendar).isInverseEra) === null || _mutableDate_calendar_isInverseEra === void 0 ? void 0 : _mutableDate_calendar_isInverseEra.call(_mutableDate_calendar, mutableDate);\n mutableDate.year = maxYear;\n mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);\n mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n if (mutableDate.month < 1) {\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);\n if (mutableDate.month > maxMonth) {\n mutableDate.month = maxMonth;\n mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));\n return mutableDate;\n}\nfunction $735220c2d4774dd3$var$addYears(date, years) {\n var _date_calendar_isInverseEra, _date_calendar;\n if ((_date_calendar_isInverseEra = (_date_calendar = date.calendar).isInverseEra) === null || _date_calendar_isInverseEra === void 0 ? void 0 : _date_calendar_isInverseEra.call(_date_calendar, date)) years = -years;\n date.year += years;\n}\nfunction $735220c2d4774dd3$var$balanceYearMonth(date) {\n while(date.month < 1){\n $735220c2d4774dd3$var$addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n let monthsInYear = 0;\n while(date.month > (monthsInYear = date.calendar.getMonthsInYear(date))){\n date.month -= monthsInYear;\n $735220c2d4774dd3$var$addYears(date, 1);\n }\n}\nfunction $735220c2d4774dd3$var$balanceDay(date) {\n while(date.day < 1){\n date.month--;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n while(date.day > date.calendar.getDaysInMonth(date)){\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n }\n}\nfunction $735220c2d4774dd3$var$constrainMonthDay(date) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\nfunction $735220c2d4774dd3$export$c4e2ecac49351ef2(date) {\n if (date.calendar.constrainDate) date.calendar.constrainDate(date);\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n $735220c2d4774dd3$var$constrainMonthDay(date);\n}\nfunction $735220c2d4774dd3$export$3e2544e88a25bff8(duration) {\n let inverseDuration = {};\n for(let key in duration)if (typeof duration[key] === 'number') inverseDuration[key] = -duration[key];\n return inverseDuration;\n}\nfunction $735220c2d4774dd3$export$4e2d2ead65e5f7e3(date, duration) {\n return $735220c2d4774dd3$export$e16d8520af44a096(date, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$adaa4cf7ef1b65be(date, fields) {\n let mutableDate = date.copy();\n if (fields.era != null) mutableDate.era = fields.era;\n if (fields.year != null) mutableDate.year = fields.year;\n if (fields.month != null) mutableDate.month = fields.month;\n if (fields.day != null) mutableDate.day = fields.day;\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutableDate);\n return mutableDate;\n}\nfunction $735220c2d4774dd3$export$e5d5e1c1822b6e56(value, fields) {\n let mutableValue = value.copy();\n if (fields.hour != null) mutableValue.hour = fields.hour;\n if (fields.minute != null) mutableValue.minute = fields.minute;\n if (fields.second != null) mutableValue.second = fields.second;\n if (fields.millisecond != null) mutableValue.millisecond = fields.millisecond;\n $735220c2d4774dd3$export$7555de1e070510cb(mutableValue);\n return mutableValue;\n}\nfunction $735220c2d4774dd3$var$balanceTime(time) {\n time.second += Math.floor(time.millisecond / 1000);\n time.millisecond = $735220c2d4774dd3$var$nonNegativeMod(time.millisecond, 1000);\n time.minute += Math.floor(time.second / 60);\n time.second = $735220c2d4774dd3$var$nonNegativeMod(time.second, 60);\n time.hour += Math.floor(time.minute / 60);\n time.minute = $735220c2d4774dd3$var$nonNegativeMod(time.minute, 60);\n let days = Math.floor(time.hour / 24);\n time.hour = $735220c2d4774dd3$var$nonNegativeMod(time.hour, 24);\n return days;\n}\nfunction $735220c2d4774dd3$export$7555de1e070510cb(time) {\n time.millisecond = Math.max(0, Math.min(time.millisecond, 1000));\n time.second = Math.max(0, Math.min(time.second, 59));\n time.minute = Math.max(0, Math.min(time.minute, 59));\n time.hour = Math.max(0, Math.min(time.hour, 23));\n}\nfunction $735220c2d4774dd3$var$nonNegativeMod(a, b) {\n let result = a % b;\n if (result < 0) result += b;\n return result;\n}\nfunction $735220c2d4774dd3$var$addTimeFields(time, duration) {\n time.hour += duration.hours || 0;\n time.minute += duration.minutes || 0;\n time.second += duration.seconds || 0;\n time.millisecond += duration.milliseconds || 0;\n return $735220c2d4774dd3$var$balanceTime(time);\n}\nfunction $735220c2d4774dd3$export$7ed87b6bc2506470(time, duration) {\n let res = time.copy();\n $735220c2d4774dd3$var$addTimeFields(res, duration);\n return res;\n}\nfunction $735220c2d4774dd3$export$fe34d3a381cd7501(time, duration) {\n return $735220c2d4774dd3$export$7ed87b6bc2506470(time, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$d52ced6badfb9a4c(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'era':\n {\n let eras = value.calendar.getEras();\n let eraIndex = eras.indexOf(value.era);\n if (eraIndex < 0) throw new Error('Invalid era: ' + value.era);\n eraIndex = $735220c2d4774dd3$var$cycleValue(eraIndex, amount, 0, eras.length - 1, options === null || options === void 0 ? void 0 : options.round);\n mutable.era = eras[eraIndex];\n // Constrain the year and other fields within the era, so the era doesn't change when we balance below.\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n break;\n }\n case 'year':\n var _mutable_calendar_isInverseEra, _mutable_calendar;\n if ((_mutable_calendar_isInverseEra = (_mutable_calendar = mutable.calendar).isInverseEra) === null || _mutable_calendar_isInverseEra === void 0 ? void 0 : _mutable_calendar_isInverseEra.call(_mutable_calendar, mutable)) amount = -amount;\n // The year field should not cycle within the era as that can cause weird behavior affecting other fields.\n // We need to also allow values < 1 so that decrementing goes to the previous era. If we get -Infinity back\n // we know we wrapped around after reaching 9999 (the maximum), so set the year back to 1.\n mutable.year = $735220c2d4774dd3$var$cycleValue(value.year, amount, -Infinity, 9999, options === null || options === void 0 ? void 0 : options.round);\n if (mutable.year === -Infinity) mutable.year = 1;\n if (mutable.calendar.balanceYearMonth) mutable.calendar.balanceYearMonth(mutable, value);\n break;\n case 'month':\n mutable.month = $735220c2d4774dd3$var$cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'day':\n mutable.day = $735220c2d4774dd3$var$cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n if (value.calendar.balanceDate) value.calendar.balanceDate(mutable);\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n return mutable;\n}\nfunction $735220c2d4774dd3$export$dd02b3e0007dfe28(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'hour':\n {\n let hours = value.hour;\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = hours >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n mutable.hour = $735220c2d4774dd3$var$cycleValue(hours, amount, min, max, options === null || options === void 0 ? void 0 : options.round);\n break;\n }\n case 'minute':\n mutable.minute = $735220c2d4774dd3$var$cycleValue(value.minute, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'second':\n mutable.second = $735220c2d4774dd3$var$cycleValue(value.second, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'millisecond':\n mutable.millisecond = $735220c2d4774dd3$var$cycleValue(value.millisecond, amount, 0, 999, options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n return mutable;\n}\nfunction $735220c2d4774dd3$var$cycleValue(value, amount, min, max, round = false) {\n if (round) {\n value += Math.sign(amount);\n if (value < min) value = max;\n let div = Math.abs(amount);\n if (amount > 0) value = Math.ceil(value / div) * div;\n else value = Math.floor(value / div) * div;\n if (value > max) value = min;\n } else {\n value += amount;\n if (value < min) value = max - (min - value - 1);\n else if (value > max) value = min + (value - max - 1);\n }\n return value;\n}\nfunction $735220c2d4774dd3$export$96b1d28349274637(dateTime, duration) {\n let ms;\n if (duration.years != null && duration.years !== 0 || duration.months != null && duration.months !== 0 || duration.weeks != null && duration.weeks !== 0 || duration.days != null && duration.days !== 0) {\n let res = $735220c2d4774dd3$export$e16d8520af44a096((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), {\n years: duration.years,\n months: duration.months,\n weeks: duration.weeks,\n days: duration.days\n });\n // Changing the date may change the timezone offset, so we need to recompute\n // using the 'compatible' disambiguation.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n } else // Otherwise, preserve the offset of the original date.\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n // Perform time manipulation in milliseconds rather than on the original time fields to account for DST.\n // For example, adding one hour during a DST transition may result in the hour field staying the same or\n // skipping an hour. This results in the offset field changing value instead of the specified field.\n ms += duration.milliseconds || 0;\n ms += (duration.seconds || 0) * 1000;\n ms += (duration.minutes || 0) * 60000;\n ms += (duration.hours || 0) * 3600000;\n let res = (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(res, dateTime.calendar);\n}\nfunction $735220c2d4774dd3$export$6814caac34ca03c7(dateTime, duration) {\n return $735220c2d4774dd3$export$96b1d28349274637(dateTime, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$9a297d111fc86b79(dateTime, field, amount, options) {\n // For date fields, we want the time to remain consistent and the UTC offset to potentially change to account for DST changes.\n // For time fields, we want the time to change by the amount given. This may result in the hour field staying the same, but the UTC\n // offset changing in the case of a backward DST transition, or skipping an hour in the case of a forward DST transition.\n switch(field){\n case 'hour':\n {\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = dateTime.hour >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n // The minimum and maximum hour may be affected by daylight saving time.\n // For example, it might jump forward at midnight, and skip 1am.\n // Or it might end at midnight and repeat the 11pm hour. To handle this, we get\n // the possible absolute times for the min and max, and find the maximum range\n // that is within the current day.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let minDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: min\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let minAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === minDate.day)[0];\n let maxDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: max\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let maxAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === maxDate.day).pop();\n // Since hours may repeat, we need to operate on the absolute time in milliseconds.\n // This is done in hours from the Unix epoch so that cycleValue works correctly,\n // and then converted back to milliseconds.\n let ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n let hours = Math.floor(ms / $735220c2d4774dd3$var$ONE_HOUR);\n let remainder = ms % $735220c2d4774dd3$var$ONE_HOUR;\n ms = $735220c2d4774dd3$var$cycleValue(hours, amount, Math.floor(minAbsolute / $735220c2d4774dd3$var$ONE_HOUR), Math.floor(maxAbsolute / $735220c2d4774dd3$var$ONE_HOUR), options === null || options === void 0 ? void 0 : options.round) * $735220c2d4774dd3$var$ONE_HOUR + remainder;\n // Now compute the new timezone offset, and convert the absolute time back to local time.\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n case 'minute':\n case 'second':\n case 'millisecond':\n // @ts-ignore\n return $735220c2d4774dd3$export$dd02b3e0007dfe28(dateTime, field, amount, options);\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n {\n let res = $735220c2d4774dd3$export$d52ced6badfb9a4c((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), field, amount, options);\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n default:\n throw new Error('Unsupported field ' + field);\n }\n}\nfunction $735220c2d4774dd3$export$31b5430eb18be4f8(dateTime, fields, disambiguation) {\n // Set the date/time fields, and recompute the UTC offset to account for DST changes.\n // We also need to validate by converting back to a local time in case hours are skipped during forward DST transitions.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let res = $735220c2d4774dd3$export$e5d5e1c1822b6e56($735220c2d4774dd3$export$adaa4cf7ef1b65be(plainDateTime, fields), fields);\n // If the resulting plain date time values are equal, return the original time.\n // We don't want to change the offset when setting the time to the same value.\n if (res.compare(plainDateTime) === 0) return dateTime;\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n}\n\n\nexport {$735220c2d4774dd3$export$e16d8520af44a096 as add, $735220c2d4774dd3$export$c4e2ecac49351ef2 as constrain, $735220c2d4774dd3$export$3e2544e88a25bff8 as invertDuration, $735220c2d4774dd3$export$4e2d2ead65e5f7e3 as subtract, $735220c2d4774dd3$export$adaa4cf7ef1b65be as set, $735220c2d4774dd3$export$e5d5e1c1822b6e56 as setTime, $735220c2d4774dd3$export$7555de1e070510cb as constrainTime, $735220c2d4774dd3$export$7ed87b6bc2506470 as addTime, $735220c2d4774dd3$export$fe34d3a381cd7501 as subtractTime, $735220c2d4774dd3$export$d52ced6badfb9a4c as cycleDate, $735220c2d4774dd3$export$dd02b3e0007dfe28 as cycleTime, $735220c2d4774dd3$export$96b1d28349274637 as addZoned, $735220c2d4774dd3$export$6814caac34ca03c7 as subtractZoned, $735220c2d4774dd3$export$9a297d111fc86b79 as cycleZoned, $735220c2d4774dd3$export$31b5430eb18be4f8 as setZoned};\n//# sourceMappingURL=manipulation.module.js.map\n","import {fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDate as $11d87f3f76e88657$export$93522d1a439f3617} from \"./conversion.mjs\";\nimport {weekStartData as $2fe286d2fb449abb$export$7a5acbd77d414bd9} from \"./weekStartData.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $14e0f24ef4ac5c92$export$ea39ec197993aef0(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$5841f9eb9773f25f(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$91b62ebf2ba703ee(a, b) {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2(a, b) {\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$ea840f5a6dda8147(a, b) {\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$629b0a497aa65267(date, timeZone) {\n return $14e0f24ef4ac5c92$export$ea39ec197993aef0(date, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - $14e0f24ef4ac5c92$var$getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n return dayOfWeek;\n}\nfunction $14e0f24ef4ac5c92$export$461939dd4422153(timeZone) {\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(Date.now(), timeZone);\n}\nfunction $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone) {\n return (0, $11d87f3f76e88657$export$93522d1a439f3617)($14e0f24ef4ac5c92$export$461939dd4422153(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$68781ddf31c0090f(a, b) {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\nfunction $14e0f24ef4ac5c92$export$c19a80a9721b80f6(a, b) {\n return $14e0f24ef4ac5c92$var$timeToMs(a) - $14e0f24ef4ac5c92$var$timeToMs(b);\n}\nfunction $14e0f24ef4ac5c92$var$timeToMs(a) {\n return a.hour * 3600000 + a.minute * 60000 + a.second * 1000 + a.millisecond;\n}\nfunction $14e0f24ef4ac5c92$export$126c91c941de7e(a, timeZone) {\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(a, timeZone);\n let tomorrow = a.add({\n days: 1\n });\n let tomorrowMs = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\nlet $14e0f24ef4ac5c92$var$localTimeZone = null;\nfunction $14e0f24ef4ac5c92$export$aa8b41735afcabd2() {\n // TODO: invalidate this somehow?\n if ($14e0f24ef4ac5c92$var$localTimeZone == null) $14e0f24ef4ac5c92$var$localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n return $14e0f24ef4ac5c92$var$localTimeZone;\n}\nfunction $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date) {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({\n days: date.day - 1\n });\n}\nfunction $14e0f24ef4ac5c92$export$a2258d9c4118825c(date) {\n return date.add({\n days: date.calendar.getDaysInMonth(date) - date.day\n });\n}\nfunction $14e0f24ef4ac5c92$export$f91e89d3d0406102(date) {\n return $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date.subtract({\n months: date.month - 1\n }));\n}\nfunction $14e0f24ef4ac5c92$export$8b7aa55c66d5569e(date) {\n return $14e0f24ef4ac5c92$export$a2258d9c4118825c(date.add({\n months: date.calendar.getMonthsInYear(date) - date.month\n }));\n}\nfunction $14e0f24ef4ac5c92$export$5412ac11713b72ad(date) {\n if (date.calendar.getMinimumMonthInYear) return date.calendar.getMinimumMonthInYear(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$b2f4953d301981d5(date) {\n if (date.calendar.getMinimumDayInMonth) return date.calendar.getMinimumDayInMonth(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale) {\n let dayOfWeek = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale);\n return date.subtract({\n days: dayOfWeek\n });\n}\nfunction $14e0f24ef4ac5c92$export$ef8b6d9133084f4e(date, locale) {\n return $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale).add({\n days: 6\n });\n}\nconst $14e0f24ef4ac5c92$var$cachedRegions = new Map();\nfunction $14e0f24ef4ac5c92$var$getRegion(locale) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = $14e0f24ef4ac5c92$var$cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n if (region) $14e0f24ef4ac5c92$var$cachedRegions.set(locale, region);\n }\n return region;\n }\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? undefined : part;\n}\nfunction $14e0f24ef4ac5c92$var$getWeekStart(locale) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n return region ? (0, $2fe286d2fb449abb$export$7a5acbd77d414bd9)[region] || 0 : 0;\n}\nfunction $14e0f24ef4ac5c92$export$ccc1b2479e7dd654(date, locale) {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil(($14e0f24ef4ac5c92$export$2061056d06d7cdf7($14e0f24ef4ac5c92$export$a5a3b454ada2268e(date), locale) + days) / 7);\n}\nfunction $14e0f24ef4ac5c92$export$5c333a116e949cdd(a, b) {\n if (a && b) return a.compare(b) <= 0 ? a : b;\n return a || b;\n}\nfunction $14e0f24ef4ac5c92$export$a75f2bff57811055(a, b) {\n if (a && b) return a.compare(b) >= 0 ? a : b;\n return a || b;\n}\nconst $14e0f24ef4ac5c92$var$WEEKEND_DATA = {\n AF: [\n 4,\n 5\n ],\n AE: [\n 5,\n 6\n ],\n BH: [\n 5,\n 6\n ],\n DZ: [\n 5,\n 6\n ],\n EG: [\n 5,\n 6\n ],\n IL: [\n 5,\n 6\n ],\n IQ: [\n 5,\n 6\n ],\n IR: [\n 5,\n 5\n ],\n JO: [\n 5,\n 6\n ],\n KW: [\n 5,\n 6\n ],\n LY: [\n 5,\n 6\n ],\n OM: [\n 5,\n 6\n ],\n QA: [\n 5,\n 6\n ],\n SA: [\n 5,\n 6\n ],\n SD: [\n 5,\n 6\n ],\n SY: [\n 5,\n 6\n ],\n YE: [\n 5,\n 6\n ]\n};\nfunction $14e0f24ef4ac5c92$export$618d60ea299da42(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = $14e0f24ef4ac5c92$var$WEEKEND_DATA[region] || [\n 6,\n 0\n ];\n return dayOfWeek === start || dayOfWeek === end;\n}\nfunction $14e0f24ef4ac5c92$export$ee9d87258e1d19ed(date, locale) {\n return !$14e0f24ef4ac5c92$export$618d60ea299da42(date, locale);\n}\n\n\nexport {$14e0f24ef4ac5c92$export$ea39ec197993aef0 as isSameDay, $14e0f24ef4ac5c92$export$a18c89cbd24170ff as isSameMonth, $14e0f24ef4ac5c92$export$a5a3b454ada2268e as startOfMonth, $14e0f24ef4ac5c92$export$5841f9eb9773f25f as isSameYear, $14e0f24ef4ac5c92$export$f91e89d3d0406102 as startOfYear, $14e0f24ef4ac5c92$export$91b62ebf2ba703ee as isEqualDay, $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2 as isEqualMonth, $14e0f24ef4ac5c92$export$ea840f5a6dda8147 as isEqualYear, $14e0f24ef4ac5c92$export$629b0a497aa65267 as isToday, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3 as today, $14e0f24ef4ac5c92$export$2061056d06d7cdf7 as getDayOfWeek, $14e0f24ef4ac5c92$export$461939dd4422153 as now, $14e0f24ef4ac5c92$export$68781ddf31c0090f as compareDate, $14e0f24ef4ac5c92$export$c19a80a9721b80f6 as compareTime, $14e0f24ef4ac5c92$export$126c91c941de7e as getHoursInDay, $14e0f24ef4ac5c92$export$aa8b41735afcabd2 as getLocalTimeZone, $14e0f24ef4ac5c92$export$a2258d9c4118825c as endOfMonth, $14e0f24ef4ac5c92$export$8b7aa55c66d5569e as endOfYear, $14e0f24ef4ac5c92$export$5412ac11713b72ad as getMinimumMonthInYear, $14e0f24ef4ac5c92$export$b2f4953d301981d5 as getMinimumDayInMonth, $14e0f24ef4ac5c92$export$42c81a444fbfb5d4 as startOfWeek, $14e0f24ef4ac5c92$export$ef8b6d9133084f4e as endOfWeek, $14e0f24ef4ac5c92$export$ccc1b2479e7dd654 as getWeeksInMonth, $14e0f24ef4ac5c92$export$5c333a116e949cdd as minDate, $14e0f24ef4ac5c92$export$a75f2bff57811055 as maxDate, $14e0f24ef4ac5c92$export$618d60ea299da42 as isWeekend, $14e0f24ef4ac5c92$export$ee9d87258e1d19ed as isWeekday};\n//# sourceMappingURL=queries.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {\n return amount - numerator * Math.floor(amount / numerator);\n}\nfunction $2b4dce13dd5a17fa$export$784d13d8ee351f07(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.era, date.year, date.month, date.day);\n else return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.year, date.month, date.day);\n}\nfunction $2b4dce13dd5a17fa$export$27fa0172ae2644b3(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n else return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.year, date.month, date.day, date.hour, date.minute, date.second);\n}\n\n\nexport {$2b4dce13dd5a17fa$export$842a2cf37af977e1 as mod, $2b4dce13dd5a17fa$export$784d13d8ee351f07 as copy, $2b4dce13dd5a17fa$export$27fa0172ae2644b3 as copyDateTime};\n//# sourceMappingURL=utils.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $3b62074eb05584b2$var$EPOCH = 1721426; // 001/01/03 Julian C.E.\nfunction $3b62074eb05584b2$export$f297eb839006d339(era, year, month, day) {\n year = $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year);\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) monthOffset = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) monthOffset = -1;\n return $3b62074eb05584b2$var$EPOCH - 1 + 365 * y1 + Math.floor(y1 / 4) - Math.floor(y1 / 100) + Math.floor(y1 / 400) + Math.floor((367 * month - 362) / 12 + monthOffset + day);\n}\nfunction $3b62074eb05584b2$export$553d7fa8e3805fc0(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year) {\n return era === 'BC' ? 1 - year : year;\n}\nfunction $3b62074eb05584b2$export$4475b7e617eb123c(year) {\n let era = 'AD';\n if (year <= 0) {\n era = 'BC';\n year = 1 - year;\n }\n return [\n era,\n year\n ];\n}\nconst $3b62074eb05584b2$var$daysInMonth = {\n standard: [\n 31,\n 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ],\n leapyear: [\n 31,\n 29,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ]\n};\nclass $3b62074eb05584b2$export$80ee6245ec4f29ec {\n fromJulianDay(jd) {\n let jd0 = jd;\n let depoch = jd0 - $3b62074eb05584b2$var$EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let [era, year] = $3b62074eb05584b2$export$4475b7e617eb123c(extendedYear);\n let yearDay = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, 1, 1);\n let leapAdj = 2;\n if (jd0 < $3b62074eb05584b2$export$f297eb839006d339(era, year, 3, 1)) leapAdj = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) leapAdj = 1;\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, month, day);\n }\n toJulianDay(date) {\n return $3b62074eb05584b2$export$f297eb839006d339(date.era, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $3b62074eb05584b2$var$daysInMonth[$3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 'leapyear' : 'standard'][date.month - 1];\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date) {\n return 12;\n }\n getDaysInYear(date) {\n return $3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 366 : 365;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date) {\n return 9999;\n }\n getEras() {\n return [\n 'BC',\n 'AD'\n ];\n }\n isInverseEra(date) {\n return date.era === 'BC';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BC' ? 'AD' : 'BC';\n date.year = 1 - date.year;\n }\n }\n constructor(){\n this.identifier = 'gregory';\n }\n}\n\n\nexport {$3b62074eb05584b2$export$f297eb839006d339 as gregorianToJulianDay, $3b62074eb05584b2$export$c36e0ecb2d4fa69d as getExtendedYear, $3b62074eb05584b2$export$553d7fa8e3805fc0 as isLeapYear, $3b62074eb05584b2$export$4475b7e617eb123c as fromExtendedYear, $3b62074eb05584b2$export$80ee6245ec4f29ec as GregorianCalendar};\n//# sourceMappingURL=GregorianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, possibleAbsolutes as $11d87f3f76e88657$export$136f38efe7caf549, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toTimeZone as $11d87f3f76e88657$export$538b00033cc11c75} from \"./conversion.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2} from \"./queries.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nconst $fae977aafc393c5c$var$TIME_RE = /^(\\d{2})(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$DATE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst $fae977aafc393c5c$var$DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$ZONED_DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:([+-]\\d{2})(?::?(\\d{2}))?)?\\[(.*?)\\]$/;\nconst $fae977aafc393c5c$var$ABSOLUTE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:(?:([+-]\\d{2})(?::?(\\d{2}))?)|Z)$/;\nconst $fae977aafc393c5c$var$DATE_TIME_DURATION_RE = /^((?<negative>-)|\\+)?P((?<years>\\d*)Y)?((?<months>\\d*)M)?((?<weeks>\\d*)W)?((?<days>\\d*)D)?((?<time>T)((?<hours>\\d*[.,]?\\d{1,9})H)?((?<minutes>\\d*[.,]?\\d{1,9})M)?((?<seconds>\\d*[.,]?\\d{1,9})S)?)?$/;\nconst $fae977aafc393c5c$var$requiredDurationTimeGroups = [\n 'hours',\n 'minutes',\n 'seconds'\n];\nconst $fae977aafc393c5c$var$requiredDurationGroups = [\n 'years',\n 'months',\n 'weeks',\n 'days',\n ...$fae977aafc393c5c$var$requiredDurationTimeGroups\n];\nfunction $fae977aafc393c5c$export$c9698ec7f05a07e1(value) {\n let m = value.match($fae977aafc393c5c$var$TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 time string: ' + value);\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 23), m[2] ? $fae977aafc393c5c$var$parseNumber(m[2], 0, 59) : 0, m[3] ? $fae977aafc393c5c$var$parseNumber(m[3], 0, 59) : 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, Infinity) * 1000 : 0);\n}\nfunction $fae977aafc393c5c$export$6b862160d295c8e(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$588937bcd60ade55(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$fd7893f06e92a6a4(value, disambiguation) {\n let m = value.match($fae977aafc393c5c$var$ZONED_DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[10], 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(date);\n let ms;\n if (m[8]) {\n var _m_;\n date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(date) - date.offset;\n // Validate offset against parsed date.\n let absolutes = (0, $11d87f3f76e88657$export$136f38efe7caf549)(plainDateTime, date.timeZone);\n if (!absolutes.includes(ms)) throw new Error(`Offset ${$fae977aafc393c5c$var$offsetToString(date.offset)} is invalid for ${$fae977aafc393c5c$export$4223de14708adc63(date)} in ${date.timeZone}`);\n } else // Convert to absolute and back to fix invalid times due to DST.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)((0, $11d87f3f76e88657$export$b21e0b124e224484)(plainDateTime), date.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, date.timeZone);\n}\nfunction $fae977aafc393c5c$export$5adfdab05168c219(value, timeZone) {\n let m = value.match($fae977aafc393c5c$var$ABSOLUTE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, timeZone, 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n var _m_;\n if (m[8]) date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n return (0, $11d87f3f76e88657$export$538b00033cc11c75)(date, timeZone);\n}\nfunction $fae977aafc393c5c$export$8e384432362ed0f0(value) {\n return $fae977aafc393c5c$export$5adfdab05168c219(value, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $fae977aafc393c5c$var$parseNumber(value, min, max) {\n let val = Number(value);\n if (val < min || val > max) throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);\n return val;\n}\nfunction $fae977aafc393c5c$export$f59dee82248f5ad4(time) {\n return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}:${String(time.second).padStart(2, '0')}${time.millisecond ? String(time.millisecond / 1000).slice(1) : ''}`;\n}\nfunction $fae977aafc393c5c$export$60dfd74aa96791bd(date) {\n let gregorianDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n return `${String(gregorianDate.year).padStart(4, '0')}-${String(gregorianDate.month).padStart(2, '0')}-${String(gregorianDate.day).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$4223de14708adc63(date) {\n // @ts-ignore\n return `${$fae977aafc393c5c$export$60dfd74aa96791bd(date)}T${$fae977aafc393c5c$export$f59dee82248f5ad4(date)}`;\n}\nfunction $fae977aafc393c5c$var$offsetToString(offset) {\n let sign = Math.sign(offset) < 0 ? '-' : '+';\n offset = Math.abs(offset);\n let offsetHours = Math.floor(offset / 3600000);\n let offsetMinutes = offset % 3600000 / 60000;\n return `${sign}${String(offsetHours).padStart(2, '0')}:${String(offsetMinutes).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$bf79f1ebf4b18792(date) {\n return `${$fae977aafc393c5c$export$4223de14708adc63(date)}${$fae977aafc393c5c$var$offsetToString(date.offset)}[${date.timeZone}]`;\n}\nfunction $fae977aafc393c5c$export$ecae829bb3747ea6(value) {\n var _match_groups, _match_groups1, _match_groups2, _match_groups3, _match_groups4, _match_groups5, _match_groups6, _match_groups7, _match_groups8;\n const match = value.match($fae977aafc393c5c$var$DATE_TIME_DURATION_RE);\n if (!match) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const parseDurationGroup = (group, isNegative, min, max)=>{\n if (!group) return 0;\n try {\n const sign = isNegative ? -1 : 1;\n return sign * $fae977aafc393c5c$var$parseNumber(group.replace(',', '.'), min, max);\n } catch {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n };\n const isNegative = !!((_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups.negative);\n const hasRequiredGroups = $fae977aafc393c5c$var$requiredDurationGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const durationStringIncludesTime = (_match_groups1 = match.groups) === null || _match_groups1 === void 0 ? void 0 : _match_groups1.time;\n if (durationStringIncludesTime) {\n const hasRequiredDurationTimeGroups = $fae977aafc393c5c$var$requiredDurationTimeGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredDurationTimeGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n const duration = {\n years: parseDurationGroup((_match_groups2 = match.groups) === null || _match_groups2 === void 0 ? void 0 : _match_groups2.years, isNegative, 0, 9999),\n months: parseDurationGroup((_match_groups3 = match.groups) === null || _match_groups3 === void 0 ? void 0 : _match_groups3.months, isNegative, 0, 12),\n weeks: parseDurationGroup((_match_groups4 = match.groups) === null || _match_groups4 === void 0 ? void 0 : _match_groups4.weeks, isNegative, 0, Infinity),\n days: parseDurationGroup((_match_groups5 = match.groups) === null || _match_groups5 === void 0 ? void 0 : _match_groups5.days, isNegative, 0, 31),\n hours: parseDurationGroup((_match_groups6 = match.groups) === null || _match_groups6 === void 0 ? void 0 : _match_groups6.hours, isNegative, 0, 23),\n minutes: parseDurationGroup((_match_groups7 = match.groups) === null || _match_groups7 === void 0 ? void 0 : _match_groups7.minutes, isNegative, 0, 59),\n seconds: parseDurationGroup((_match_groups8 = match.groups) === null || _match_groups8 === void 0 ? void 0 : _match_groups8.seconds, isNegative, 0, 59)\n };\n if (duration.hours !== undefined && duration.hours % 1 !== 0 && (duration.minutes || duration.seconds)) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n if (duration.minutes !== undefined && duration.minutes % 1 !== 0 && duration.seconds) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n return duration;\n}\n\n\nexport {$fae977aafc393c5c$export$c9698ec7f05a07e1 as parseTime, $fae977aafc393c5c$export$6b862160d295c8e as parseDate, $fae977aafc393c5c$export$588937bcd60ade55 as parseDateTime, $fae977aafc393c5c$export$fd7893f06e92a6a4 as parseZonedDateTime, $fae977aafc393c5c$export$4223de14708adc63 as dateTimeToString, $fae977aafc393c5c$export$5adfdab05168c219 as parseAbsolute, $fae977aafc393c5c$export$8e384432362ed0f0 as parseAbsoluteToLocal, $fae977aafc393c5c$export$f59dee82248f5ad4 as timeToString, $fae977aafc393c5c$export$60dfd74aa96791bd as dateToString, $fae977aafc393c5c$export$bf79f1ebf4b18792 as zonedDateTimeToString, $fae977aafc393c5c$export$ecae829bb3747ea6 as parseDuration};\n//# sourceMappingURL=string.module.js.map\n","import { _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nexport function _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","export function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import {add as $735220c2d4774dd3$export$e16d8520af44a096, addTime as $735220c2d4774dd3$export$7ed87b6bc2506470, addZoned as $735220c2d4774dd3$export$96b1d28349274637, constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2, constrainTime as $735220c2d4774dd3$export$7555de1e070510cb, cycleDate as $735220c2d4774dd3$export$d52ced6badfb9a4c, cycleTime as $735220c2d4774dd3$export$dd02b3e0007dfe28, cycleZoned as $735220c2d4774dd3$export$9a297d111fc86b79, set as $735220c2d4774dd3$export$adaa4cf7ef1b65be, setTime as $735220c2d4774dd3$export$e5d5e1c1822b6e56, setZoned as $735220c2d4774dd3$export$31b5430eb18be4f8, subtract as $735220c2d4774dd3$export$4e2d2ead65e5f7e3, subtractTime as $735220c2d4774dd3$export$fe34d3a381cd7501, subtractZoned as $735220c2d4774dd3$export$6814caac34ca03c7} from \"./manipulation.mjs\";\nimport {compareDate as $14e0f24ef4ac5c92$export$68781ddf31c0090f, compareTime as $14e0f24ef4ac5c92$export$c19a80a9721b80f6} from \"./queries.mjs\";\nimport {dateTimeToString as $fae977aafc393c5c$export$4223de14708adc63, dateToString as $fae977aafc393c5c$export$60dfd74aa96791bd, timeToString as $fae977aafc393c5c$export$f59dee82248f5ad4, zonedDateTimeToString as $fae977aafc393c5c$export$bf79f1ebf4b18792} from \"./string.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toDate as $11d87f3f76e88657$export$e67a095c620b86fe, toZoned as $11d87f3f76e88657$export$84c95a83c799e074, zonedToDate as $11d87f3f76e88657$export$83aac07b4c37b25} from \"./conversion.mjs\";\nimport {_ as $aksy1$_} from \"@swc/helpers/_/_class_private_field_init\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $35ea8db9cb2ccb90$var$shiftArgs(args) {\n let calendar = typeof args[0] === 'object' ? args.shift() : new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n let era;\n if (typeof args[0] === 'string') era = args.shift();\n else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n return [\n calendar,\n era,\n year,\n month,\n day\n ];\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n// If that behavior is desired, use the AnyCalendarDate interface instead.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$99faa760c7908e4f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.era, this.year, this.month, this.day);\n else return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.year, this.month, this.day);\n }\n /** Returns a new `CalendarDate` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)(this, fields);\n }\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */ toDate(timeZone) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$60dfd74aa96791bd)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type1 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$680ea196effce5f {\n /** Returns a copy of this time. */ copy() {\n return new $35ea8db9cb2ccb90$export$680ea196effce5f(this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `Time` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$7ed87b6bc2506470)(this, duration);\n }\n /** Returns a new `Time` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$fe34d3a381cd7501)(this, duration);\n }\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields);\n }\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n /** Converts the time to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$f59dee82248f5ad4)(this);\n }\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, b);\n }\n constructor(hour = 0, minute = 0, second = 0, millisecond = 0){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type1, {\n writable: true,\n value: void 0\n });\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n (0, $735220c2d4774dd3$export$7555de1e070510cb)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type2 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$ca871e8dbb80966f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `CalendarDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)((0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields), fields);\n }\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n switch(field){\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n default:\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n }\n /** Converts the date to a native JavaScript Date object in the given time zone. */ toDate(timeZone, disambiguation) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone, disambiguation);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$4223de14708adc63)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n let res = (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n if (res === 0) return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, (0, $11d87f3f76e88657$export$b21e0b124e224484)(b));\n return res;\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type2, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type3 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$d3b7288e7994edea {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `ZonedDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$96b1d28349274637)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$6814caac34ca03c7)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields, disambiguation) {\n return (0, $735220c2d4774dd3$export$31b5430eb18be4f8)(this, fields, disambiguation);\n }\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$9a297d111fc86b79)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object. */ toDate() {\n return (0, $11d87f3f76e88657$export$83aac07b4c37b25)(this);\n }\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */ toString() {\n return (0, $fae977aafc393c5c$export$bf79f1ebf4b18792)(this);\n }\n /** Converts the date to an ISO 8601 formatted string in UTC. */ toAbsoluteString() {\n return this.toDate().toISOString();\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - (0, $11d87f3f76e88657$export$84c95a83c799e074)(b, this.timeZone).toDate().getTime();\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type3, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\n\n\nexport {$35ea8db9cb2ccb90$export$99faa760c7908e4f as CalendarDate, $35ea8db9cb2ccb90$export$680ea196effce5f as Time, $35ea8db9cb2ccb90$export$ca871e8dbb80966f as CalendarDateTime, $35ea8db9cb2ccb90$export$d3b7288e7994edea as ZonedDateTime};\n//# sourceMappingURL=CalendarDate.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2} from \"./manipulation.mjs\";\nimport {getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2} from \"./queries.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\n\nfunction $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) {\n date = $11d87f3f76e88657$export$b4a036af3fc0b032(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n return $11d87f3f76e88657$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\nfunction $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\nfunction $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone) {\n // Fast path for UTC.\n if (timeZone === 'UTC') return 0;\n // Fast path: for local timezone after 1970, use native Date.\n if (ms > 0 && timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)()) return new Date(ms).getTimezoneOffset() * -60000;\n let { year: year, month: month, day: day, hour: hour, minute: minute, second: second } = $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone);\n let utc = $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\nconst $11d87f3f76e88657$var$formattersByTimeZone = new Map();\nfunction $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone) {\n let formatter = $11d87f3f76e88657$var$formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone: timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n $11d87f3f76e88657$var$formattersByTimeZone.set(timeZone, formatter);\n }\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts = {};\n for (let part of parts)if (part.type !== 'literal') namedParts[part.type] = part.value;\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour,\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\nconst $11d87f3f76e88657$var$DAYMILLIS = 86400000;\nfunction $11d87f3f76e88657$export$136f38efe7caf549(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date);\n let earlier = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let later = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n return $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later);\n}\nfunction $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later) {\n let found = earlier === later ? [\n earlier\n ] : [\n earlier,\n later\n ];\n return found.filter((absolute)=>$11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute));\n}\nfunction $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute) {\n let parts = $11d87f3f76e88657$var$getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;\n}\nfunction $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation = 'compatible') {\n let dateTime = $11d87f3f76e88657$export$b21e0b124e224484(date);\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') return $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)() && disambiguation === 'compatible') {\n dateTime = $11d87f3f76e88657$export$b4a036af3fc0b032(dateTime, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n let offsetBefore = $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let offsetAfter = $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let valid = $11d87f3f76e88657$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n if (valid.length === 1) return valid[0];\n if (valid.length > 1) switch(disambiguation){\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n switch(disambiguation){\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\nfunction $11d87f3f76e88657$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = 'compatible') {\n return new Date($11d87f3f76e88657$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));\n}\nfunction $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone) {\n let offset = $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n return new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$e57ff100d91bd4b9(date, timeZone) {\n return $11d87f3f76e88657$export$1b96692a1ba042ac(date.getTime(), timeZone);\n}\nfunction $11d87f3f76e88657$export$d7f92bcd3596b086(date) {\n return $11d87f3f76e88657$export$e57ff100d91bd4b9(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $11d87f3f76e88657$export$93522d1a439f3617(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\nfunction $11d87f3f76e88657$export$6f4d78149f3f53ac(date) {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\nfunction $11d87f3f76e88657$export$4d0393e732857be5(date) {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\nfunction $11d87f3f76e88657$export$b21e0b124e224484(date, time) {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = date);\n else if ('hour' in date && !time) return date;\n if (time) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = time);\n return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$d33f79e3ffc3dc83(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\nfunction $11d87f3f76e88657$export$b4a036af3fc0b032(date, calendar) {\n if (date.calendar.identifier === calendar.identifier) return date;\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(copy);\n return copy;\n}\nfunction $11d87f3f76e88657$export$84c95a83c799e074(date, timeZone, disambiguation) {\n if (date instanceof (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)) {\n if (date.timeZone === timeZone) return date;\n return $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone);\n }\n let ms = $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation);\n return $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone);\n}\nfunction $11d87f3f76e88657$export$83aac07b4c37b25(date) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return new Date(ms);\n}\nfunction $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return $11d87f3f76e88657$export$b4a036af3fc0b032($11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone), date.calendar);\n}\nfunction $11d87f3f76e88657$export$d9b67bc93c097491(date) {\n return $11d87f3f76e88657$export$538b00033cc11c75(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\n\n\nexport {$11d87f3f76e88657$export$bd4fb2bc8bb06fb as epochFromDate, $11d87f3f76e88657$export$b4a036af3fc0b032 as toCalendar, $11d87f3f76e88657$export$59c99f3515d3493f as getTimeZoneOffset, $11d87f3f76e88657$export$136f38efe7caf549 as possibleAbsolutes, $11d87f3f76e88657$export$5107c82f94518f5c as toAbsolute, $11d87f3f76e88657$export$b21e0b124e224484 as toCalendarDateTime, $11d87f3f76e88657$export$e67a095c620b86fe as toDate, $11d87f3f76e88657$export$1b96692a1ba042ac as fromAbsolute, $11d87f3f76e88657$export$e57ff100d91bd4b9 as fromDate, $11d87f3f76e88657$export$d7f92bcd3596b086 as fromDateToLocal, $11d87f3f76e88657$export$93522d1a439f3617 as toCalendarDate, $11d87f3f76e88657$export$6f4d78149f3f53ac as toDateFields, $11d87f3f76e88657$export$4d0393e732857be5 as toTimeFields, $11d87f3f76e88657$export$d33f79e3ffc3dc83 as toTime, $11d87f3f76e88657$export$84c95a83c799e074 as toZoned, $11d87f3f76e88657$export$538b00033cc11c75 as toTimeZone, $11d87f3f76e88657$export$83aac07b4c37b25 as zonedToDate, $11d87f3f76e88657$export$d9b67bc93c097491 as toLocalTimeZone};\n//# sourceMappingURL=conversion.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $8d73d47422ca7302$var$BUDDHIST_ERA_START = -543;\nclass $8d73d47422ca7302$export$42d20a78301dee44 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let gregorianDate = super.fromJulianDay(jd);\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(gregorianDate.era, gregorianDate.year);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year - $8d73d47422ca7302$var$BUDDHIST_ERA_START, gregorianDate.month, gregorianDate.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($8d73d47422ca7302$var$toGregorian(date));\n }\n getEras() {\n return [\n 'BE'\n ];\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($8d73d47422ca7302$var$toGregorian(date));\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n this.identifier = 'buddhist';\n }\n}\nfunction $8d73d47422ca7302$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(date.year + $8d73d47422ca7302$var$BUDDHIST_ERA_START);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$8d73d47422ca7302$export$42d20a78301dee44 as BuddhistCalendar};\n//# sourceMappingURL=BuddhistCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $b956b2d7a6cf451f$var$ETHIOPIC_EPOCH = 1723856;\nconst $b956b2d7a6cf451f$var$COPTIC_EPOCH = 1824665;\n// The delta between Amete Alem 1 and Amete Mihret 1\n// AA 5501 = AM 1\nconst $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA = 5500;\nfunction $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, day) {\n return epoch // difference from Julian epoch to 1,1,1\n + 365 * year // number of days from years\n + Math.floor(year / 4) // extra day of leap year\n + 30 * (month - 1 // number of days from months (1 based)\n ) + day - 1 // number of days for present month (1 based)\n ;\n}\nfunction $b956b2d7a6cf451f$var$julianDayToCE(epoch, jd) {\n let year = Math.floor(4 * (jd - epoch) / 1461);\n let month = 1 + Math.floor((jd - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, 1, 1)) / 30);\n let day = jd + 1 - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, 1);\n return [\n year,\n month,\n day\n ];\n}\nfunction $b956b2d7a6cf451f$var$getLeapDay(year) {\n return Math.floor(year % 4 / 3);\n}\nfunction $b956b2d7a6cf451f$var$getDaysInMonth(year, month) {\n // The Ethiopian and Coptic calendars have 13 months, 12 of 30 days each and\n // an intercalary month at the end of the year of 5 or 6 days, depending whether\n // the year is a leap year or not. The Leap Year follows the same rules as the\n // Julian Calendar so that the extra month always has six days in the year before\n // a Julian Leap Year.\n if (month % 13 !== 0) // not intercalary month\n return 30;\n else // intercalary month 5 days + possible leap day\n return $b956b2d7a6cf451f$var$getLeapDay(year) + 5;\n}\nclass $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n let era = 'AM';\n if (year <= 0) {\n era = 'AA';\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'AA') year -= $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $b956b2d7a6cf451f$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear() {\n return 13;\n }\n getDaysInYear(date) {\n return 365 + $b956b2d7a6cf451f$var$getLeapDay(date.year);\n }\n getYearsInEra(date) {\n // 9999-12-31 gregorian is 9992-20-02 ethiopic.\n // Round down to 9991 for the last full year.\n // AA 9999-01-01 ethiopic is 4506-09-30 gregorian.\n return date.era === 'AA' ? 9999 : 9991;\n }\n getEras() {\n return [\n 'AA',\n 'AM'\n ];\n }\n constructor(){\n this.identifier = 'ethiopic';\n }\n}\nclass $b956b2d7a6cf451f$export$d72e0c37005a4914 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, 'AA', year, month, day);\n }\n getEras() {\n return [\n 'AA'\n ];\n }\n getYearsInEra() {\n // 9999-13-04 ethioaa is the maximum date, which is equivalent to 4506-09-29 gregorian.\n return 9999;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'ethioaa' // also known as 'ethiopic-amete-alem' in ICU\n ;\n }\n}\nclass $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$COPTIC_EPOCH, jd);\n let era = 'CE';\n if (year <= 0) {\n era = 'BCE';\n year = 1 - year;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$COPTIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$getDaysInMonth(year, date.month);\n }\n isInverseEra(date) {\n return date.era === 'BCE';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BCE' ? 'CE' : 'BCE';\n date.year = 1 - date.year;\n }\n }\n getEras() {\n return [\n 'BCE',\n 'CE'\n ];\n }\n getYearsInEra(date) {\n // 9999-12-30 gregorian is 9716-02-20 coptic.\n // Round down to 9715 for the last full year.\n // BCE 9999-01-01 coptic is BC 9716-06-15 gregorian.\n return date.era === 'BCE' ? 9999 : 9715;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'coptic';\n }\n}\n\n\nexport {$b956b2d7a6cf451f$export$26ba6eab5e20cd7d as EthiopicCalendar, $b956b2d7a6cf451f$export$d72e0c37005a4914 as EthiopicAmeteAlemCalendar, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 as CopticCalendar};\n//# sourceMappingURL=EthiopicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $7c5f6fbf42389787$var$HEBREW_EPOCH = 347997;\n// Hebrew date calculations are performed in terms of days, hours, and\n// \"parts\" (or halakim), which are 1/1080 of an hour, or 3 1/3 seconds.\nconst $7c5f6fbf42389787$var$HOUR_PARTS = 1080;\nconst $7c5f6fbf42389787$var$DAY_PARTS = 24 * $7c5f6fbf42389787$var$HOUR_PARTS;\n// An approximate value for the length of a lunar month.\n// It is used to calculate the approximate year and month of a given\n// absolute date.\nconst $7c5f6fbf42389787$var$MONTH_DAYS = 29;\nconst $7c5f6fbf42389787$var$MONTH_FRACT = 12 * $7c5f6fbf42389787$var$HOUR_PARTS + 793;\nconst $7c5f6fbf42389787$var$MONTH_PARTS = $7c5f6fbf42389787$var$MONTH_DAYS * $7c5f6fbf42389787$var$DAY_PARTS + $7c5f6fbf42389787$var$MONTH_FRACT;\nfunction $7c5f6fbf42389787$var$isLeapYear(year) {\n return (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(year * 7 + 1, 19) < 7;\n}\n// Test for delay of start of new year and to avoid\n// Sunday, Wednesday, and Friday as start of the new year.\nfunction $7c5f6fbf42389787$var$hebrewDelay1(year) {\n let months = Math.floor((235 * year - 234) / 19);\n let parts = 12084 + 13753 * months;\n let day = months * 29 + Math.floor(parts / 25920);\n if ((0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(3 * (day + 1), 7) < 3) day += 1;\n return day;\n}\n// Check for delay in start of new year due to length of adjacent years\nfunction $7c5f6fbf42389787$var$hebrewDelay2(year) {\n let last = $7c5f6fbf42389787$var$hebrewDelay1(year - 1);\n let present = $7c5f6fbf42389787$var$hebrewDelay1(year);\n let next = $7c5f6fbf42389787$var$hebrewDelay1(year + 1);\n if (next - present === 356) return 2;\n if (present - last === 382) return 1;\n return 0;\n}\nfunction $7c5f6fbf42389787$var$startOfYear(year) {\n return $7c5f6fbf42389787$var$hebrewDelay1(year) + $7c5f6fbf42389787$var$hebrewDelay2(year);\n}\nfunction $7c5f6fbf42389787$var$getDaysInYear(year) {\n return $7c5f6fbf42389787$var$startOfYear(year + 1) - $7c5f6fbf42389787$var$startOfYear(year);\n}\nfunction $7c5f6fbf42389787$var$getYearType(year) {\n let yearLength = $7c5f6fbf42389787$var$getDaysInYear(year);\n if (yearLength > 380) yearLength -= 30; // Subtract length of leap month.\n switch(yearLength){\n case 353:\n return 0; // deficient\n case 354:\n return 1; // normal\n case 355:\n return 2; // complete\n }\n}\nfunction $7c5f6fbf42389787$var$getDaysInMonth(year, month) {\n // Normalize month numbers from 1 - 13, even on non-leap years\n if (month >= 6 && !$7c5f6fbf42389787$var$isLeapYear(year)) month++;\n // First of all, dispose of fixed-length 29 day months\n if (month === 4 || month === 7 || month === 9 || month === 11 || month === 13) return 29;\n let yearType = $7c5f6fbf42389787$var$getYearType(year);\n // If it's Heshvan, days depend on length of year\n if (month === 2) return yearType === 2 ? 30 : 29;\n // Similarly, Kislev varies with the length of year\n if (month === 3) return yearType === 0 ? 29 : 30;\n // Adar I only exists in leap years\n if (month === 6) return $7c5f6fbf42389787$var$isLeapYear(year) ? 30 : 0;\n return 30;\n}\nclass $7c5f6fbf42389787$export$ca405048b8fb5af {\n fromJulianDay(jd) {\n let d = jd - $7c5f6fbf42389787$var$HEBREW_EPOCH;\n let m = d * $7c5f6fbf42389787$var$DAY_PARTS / $7c5f6fbf42389787$var$MONTH_PARTS; // Months (approx)\n let year = Math.floor((19 * m + 234) / 235) + 1; // Years (approx)\n let ys = $7c5f6fbf42389787$var$startOfYear(year); // 1st day of year\n let dayOfYear = Math.floor(d - ys);\n // Because of the postponement rules, it's possible to guess wrong. Fix it.\n while(dayOfYear < 1){\n year--;\n ys = $7c5f6fbf42389787$var$startOfYear(year);\n dayOfYear = Math.floor(d - ys);\n }\n // Now figure out which month we're in, and the date within that month\n let month = 1;\n let monthStart = 0;\n while(monthStart < dayOfYear){\n monthStart += $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n month++;\n }\n month--;\n monthStart -= $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n let day = dayOfYear - monthStart;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month, day);\n }\n toJulianDay(date) {\n let jd = $7c5f6fbf42389787$var$startOfYear(date.year);\n for(let month = 1; month < date.month; month++)jd += $7c5f6fbf42389787$var$getDaysInMonth(date.year, month);\n return jd + date.day + $7c5f6fbf42389787$var$HEBREW_EPOCH;\n }\n getDaysInMonth(date) {\n return $7c5f6fbf42389787$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear(date) {\n return $7c5f6fbf42389787$var$isLeapYear(date.year) ? 13 : 12;\n }\n getDaysInYear(date) {\n return $7c5f6fbf42389787$var$getDaysInYear(date.year);\n }\n getYearsInEra() {\n // 6239 gregorian\n return 9999;\n }\n getEras() {\n return [\n 'AM'\n ];\n }\n balanceYearMonth(date, previousDate) {\n // Keep date in the same month when switching between leap years and non leap years\n if (previousDate.year !== date.year) {\n if ($7c5f6fbf42389787$var$isLeapYear(previousDate.year) && !$7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month--;\n else if (!$7c5f6fbf42389787$var$isLeapYear(previousDate.year) && $7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month++;\n }\n }\n constructor(){\n this.identifier = 'hebrew';\n }\n}\n\n\nexport {$7c5f6fbf42389787$export$ca405048b8fb5af as HebrewCalendar};\n//# sourceMappingURL=HebrewCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec, gregorianToJulianDay as $3b62074eb05584b2$export$f297eb839006d339, isLeapYear as $3b62074eb05584b2$export$553d7fa8e3805fc0} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n// Starts in 78 AD,\nconst $82c358003bdda0a8$var$INDIAN_ERA_START = 78;\n// The Indian year starts 80 days later than the Gregorian year.\nconst $82c358003bdda0a8$var$INDIAN_YEAR_START = 80;\nclass $82c358003bdda0a8$export$39f31c639fa15726 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n // Gregorian date for Julian day\n let date = super.fromJulianDay(jd);\n // Year in Saka era\n let indianYear = date.year - $82c358003bdda0a8$var$INDIAN_ERA_START;\n // Day number in Gregorian year (starting from 0)\n let yDay = jd - (0, $3b62074eb05584b2$export$f297eb839006d339)(date.era, date.year, 1, 1);\n let leapMonth;\n if (yDay < $82c358003bdda0a8$var$INDIAN_YEAR_START) {\n // Day is at the end of the preceding Saka year\n indianYear--;\n // Days in leapMonth this year, previous Gregorian year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year - 1) ? 31 : 30;\n yDay += leapMonth + 155 + 90 + 10;\n } else {\n // Days in leapMonth this year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year) ? 31 : 30;\n yDay -= $82c358003bdda0a8$var$INDIAN_YEAR_START;\n }\n let indianMonth;\n let indianDay;\n if (yDay < leapMonth) {\n indianMonth = 1;\n indianDay = yDay + 1;\n } else {\n let mDay = yDay - leapMonth;\n if (mDay < 155) {\n indianMonth = Math.floor(mDay / 31) + 2;\n indianDay = mDay % 31 + 1;\n } else {\n mDay -= 155;\n indianMonth = Math.floor(mDay / 30) + 7;\n indianDay = mDay % 30 + 1;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, indianYear, indianMonth, indianDay);\n }\n toJulianDay(date) {\n let extendedYear = date.year + $82c358003bdda0a8$var$INDIAN_ERA_START;\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(extendedYear);\n let leapMonth;\n let jd;\n if ((0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(year)) {\n leapMonth = 31;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 21);\n } else {\n leapMonth = 30;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 22);\n }\n if (date.month === 1) return jd + date.day - 1;\n jd += leapMonth + Math.min(date.month - 2, 5) * 31;\n if (date.month >= 8) jd += (date.month - 7) * 30;\n jd += date.day - 1;\n return jd;\n }\n getDaysInMonth(date) {\n if (date.month === 1 && (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year + $82c358003bdda0a8$var$INDIAN_ERA_START)) return 31;\n if (date.month >= 2 && date.month <= 6) return 31;\n return 30;\n }\n getYearsInEra() {\n // 9999-12-31 gregorian is 9920-10-10 indian.\n // Round down to 9919 for the last full year.\n return 9919;\n }\n getEras() {\n return [\n 'saka'\n ];\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n this.identifier = 'indian';\n }\n}\n\n\nexport {$82c358003bdda0a8$export$39f31c639fa15726 as IndianCalendar};\n//# sourceMappingURL=IndianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $f2f3e0e3a817edbd$var$CIVIL_EPOC = 1948440; // CE 622 July 16 Friday (Julian calendar) / CE 622 July 19 (Gregorian calendar)\nconst $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC = 1948439; // CE 622 July 15 Thursday (Julian calendar)\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START = 1300;\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END = 1600;\nconst $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS = 460322;\nfunction $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, day) {\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + epoch - 1;\n}\nfunction $f2f3e0e3a817edbd$var$julianDayToIslamic(calendar, epoch, jd) {\n let year = Math.floor((30 * (jd - epoch) + 10646) / 10631);\n let month = Math.min(12, Math.ceil((jd - (29 + $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, 1, 1))) / 29.5) + 1);\n let day = jd - $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(calendar, year, month, day);\n}\nfunction $f2f3e0e3a817edbd$var$isLeapYear(year) {\n return (14 + 11 * year) % 30 < 11;\n}\nclass $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$CIVIL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$CIVIL_EPOC, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let length = 29 + date.month % 2;\n if (date.month === 12 && $f2f3e0e3a817edbd$var$isLeapYear(date.year)) length++;\n return length;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInYear(date) {\n return $f2f3e0e3a817edbd$var$isLeapYear(date.year) ? 355 : 354;\n }\n getYearsInEra() {\n // 9999 gregorian\n return 9665;\n }\n getEras() {\n return [\n 'AH'\n ];\n }\n constructor(){\n this.identifier = 'islamic-civil';\n }\n}\nclass $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, date.year, date.month, date.day);\n }\n constructor(...args){\n super(...args);\n this.identifier = 'islamic-tbla';\n }\n}\n// Generated by scripts/generate-umalqura.js\nconst $f2f3e0e3a817edbd$var$UMALQURA_DATA = 'qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=';\nlet $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH;\nlet $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE;\nfunction $f2f3e0e3a817edbd$var$umalquraYearStart(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS + $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthLength(year, month) {\n let idx = year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START;\n let mask = 0x01 << 11 - (month - 1);\n if (($f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH[idx] & mask) === 0) return 29;\n else return 30;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthStart(year, month) {\n let day = $f2f3e0e3a817edbd$var$umalquraYearStart(year);\n for(let i = 1; i < month; i++)day += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n return day;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraYearLength(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year + 1 - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nclass $f2f3e0e3a817edbd$export$5baab4758c231076 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n let days = jd - $f2f3e0e3a817edbd$var$CIVIL_EPOC;\n let startDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_START);\n let endDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END);\n if (days < startDays || days > endDays) return super.fromJulianDay(jd);\n else {\n let y = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START - 1;\n let m = 1;\n let d = 1;\n while(d > 0){\n y++;\n d = days - $f2f3e0e3a817edbd$var$umalquraYearStart(y) + 1;\n let yearLength = $f2f3e0e3a817edbd$var$umalquraYearLength(y);\n if (d === yearLength) {\n m = 12;\n break;\n } else if (d < yearLength) {\n let monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n m = 1;\n while(d > monthLength){\n d -= monthLength;\n m++;\n monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n }\n break;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, y, m, days - $f2f3e0e3a817edbd$var$umalquraMonthStart(y, m) + 1);\n }\n }\n toJulianDay(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.toJulianDay(date);\n return $f2f3e0e3a817edbd$var$CIVIL_EPOC + $f2f3e0e3a817edbd$var$umalquraMonthStart(date.year, date.month) + (date.day - 1);\n }\n getDaysInMonth(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInMonth(date);\n return $f2f3e0e3a817edbd$var$umalquraMonthLength(date.year, date.month);\n }\n getDaysInYear(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInYear(date);\n return $f2f3e0e3a817edbd$var$umalquraYearLength(date.year);\n }\n constructor(){\n super();\n this.identifier = 'islamic-umalqura';\n if (!$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH) $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH = new Uint16Array(Uint8Array.from(atob($f2f3e0e3a817edbd$var$UMALQURA_DATA), (c)=>c.charCodeAt(0)).buffer);\n if (!$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE) {\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE = new Uint32Array($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START + 1);\n let yearStart = 0;\n for(let year = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; year <= $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END; year++){\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] = yearStart;\n for(let i = 1; i <= 12; i++)yearStart += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n }\n }\n }\n}\n\n\nexport {$f2f3e0e3a817edbd$export$2066795aadd37bfc as IslamicCivilCalendar, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 as IslamicTabularCalendar, $f2f3e0e3a817edbd$export$5baab4758c231076 as IslamicUmalquraCalendar};\n//# sourceMappingURL=IslamicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $62225008020f0a13$var$ERA_START_DATES = [\n [\n 1868,\n 9,\n 8\n ],\n [\n 1912,\n 7,\n 30\n ],\n [\n 1926,\n 12,\n 25\n ],\n [\n 1989,\n 1,\n 8\n ],\n [\n 2019,\n 5,\n 1\n ]\n];\nconst $62225008020f0a13$var$ERA_END_DATES = [\n [\n 1912,\n 7,\n 29\n ],\n [\n 1926,\n 12,\n 24\n ],\n [\n 1989,\n 1,\n 7\n ],\n [\n 2019,\n 4,\n 30\n ]\n];\nconst $62225008020f0a13$var$ERA_ADDENDS = [\n 1867,\n 1911,\n 1925,\n 1988,\n 2018\n];\nconst $62225008020f0a13$var$ERA_NAMES = [\n 'meiji',\n 'taisho',\n 'showa',\n 'heisei',\n 'reiwa'\n];\nfunction $62225008020f0a13$var$findEraFromGregorianDate(date) {\n const idx = $62225008020f0a13$var$ERA_START_DATES.findIndex(([year, month, day])=>{\n if (date.year < year) return true;\n if (date.year === year && date.month < month) return true;\n if (date.year === year && date.month === month && date.day < day) return true;\n return false;\n });\n if (idx === -1) return $62225008020f0a13$var$ERA_START_DATES.length - 1;\n if (idx === 0) return 0;\n return idx - 1;\n}\nfunction $62225008020f0a13$var$toGregorian(date) {\n let eraAddend = $62225008020f0a13$var$ERA_ADDENDS[$62225008020f0a13$var$ERA_NAMES.indexOf(date.era)];\n if (!eraAddend) throw new Error('Unknown era: ' + date.era);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.year + eraAddend, date.month, date.day);\n}\nclass $62225008020f0a13$export$b746ab2b60cdffbf extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(date);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, $62225008020f0a13$var$ERA_NAMES[era], date.year - $62225008020f0a13$var$ERA_ADDENDS[era], date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($62225008020f0a13$var$toGregorian(date));\n }\n balanceDate(date) {\n let gregorianDate = $62225008020f0a13$var$toGregorian(date);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(gregorianDate);\n if ($62225008020f0a13$var$ERA_NAMES[era] !== date.era) {\n date.era = $62225008020f0a13$var$ERA_NAMES[era];\n date.year = gregorianDate.year - $62225008020f0a13$var$ERA_ADDENDS[era];\n }\n // Constrain in case we went before the first supported era.\n this.constrainDate(date);\n }\n constrainDate(date) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let end = $62225008020f0a13$var$ERA_END_DATES[idx];\n if (end != null) {\n let [endYear, endMonth, endDay] = end;\n // Constrain the year to the maximum possible value in the era.\n // Then constrain the month and day fields within that.\n let maxYear = endYear - $62225008020f0a13$var$ERA_ADDENDS[idx];\n date.year = Math.max(1, Math.min(maxYear, date.year));\n if (date.year === maxYear) {\n date.month = Math.min(endMonth, date.month);\n if (date.month === endMonth) date.day = Math.min(endDay, date.day);\n }\n }\n if (date.year === 1 && idx >= 0) {\n let [, startMonth, startDay] = $62225008020f0a13$var$ERA_START_DATES[idx];\n date.month = Math.max(startMonth, date.month);\n if (date.month === startMonth) date.day = Math.max(startDay, date.day);\n }\n }\n getEras() {\n return $62225008020f0a13$var$ERA_NAMES;\n }\n getYearsInEra(date) {\n // Get the number of years in the era, taking into account the date's month and day fields.\n let era = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let cur = $62225008020f0a13$var$ERA_START_DATES[era];\n let next = $62225008020f0a13$var$ERA_START_DATES[era + 1];\n if (next == null) // 9999 gregorian is the maximum year allowed.\n return 9999 - cur[0] + 1;\n let years = next[0] - cur[0];\n if (date.month < next[1] || date.month === next[1] && date.day < next[2]) years++;\n return years;\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($62225008020f0a13$var$toGregorian(date));\n }\n getMinimumMonthInYear(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start ? start[1] : 1;\n }\n getMinimumDayInMonth(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start && date.month === start[1] ? start[2] : 1;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'japanese';\n }\n}\nfunction $62225008020f0a13$var$getMinimums(date) {\n if (date.year === 1) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n return $62225008020f0a13$var$ERA_START_DATES[idx];\n }\n}\n\n\nexport {$62225008020f0a13$export$b746ab2b60cdffbf as JapaneseCalendar};\n//# sourceMappingURL=JapaneseCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $f3ed2e4472ae7e25$var$PERSIAN_EPOCH = 1948320;\n// Number of days from the start of the year to the start of each month.\nconst $f3ed2e4472ae7e25$var$MONTH_START = [\n 0,\n 31,\n 62,\n 93,\n 124,\n 155,\n 186,\n 216,\n 246,\n 276,\n 306,\n 336 // Esfand\n];\nclass $f3ed2e4472ae7e25$export$37fccdbfd14c5939 {\n fromJulianDay(jd) {\n let daysSinceEpoch = jd - $f3ed2e4472ae7e25$var$PERSIAN_EPOCH;\n let year = 1 + Math.floor((33 * daysSinceEpoch + 3) / 12053);\n let farvardin1 = 365 * (year - 1) + Math.floor((8 * year + 21) / 33);\n let dayOfYear = daysSinceEpoch - farvardin1;\n let month = dayOfYear < 216 ? Math.floor(dayOfYear / 31) : Math.floor((dayOfYear - 6) / 30);\n let day = dayOfYear - $f3ed2e4472ae7e25$var$MONTH_START[month] + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month + 1, day);\n }\n toJulianDay(date) {\n let jd = $f3ed2e4472ae7e25$var$PERSIAN_EPOCH - 1 + 365 * (date.year - 1) + Math.floor((8 * date.year + 21) / 33);\n jd += $f3ed2e4472ae7e25$var$MONTH_START[date.month - 1];\n jd += date.day;\n return jd;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInMonth(date) {\n if (date.month <= 6) return 31;\n if (date.month <= 11) return 30;\n let isLeapYear = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(25 * date.year + 11, 33) < 8;\n return isLeapYear ? 30 : 29;\n }\n getEras() {\n return [\n 'AP'\n ];\n }\n getYearsInEra() {\n // 9378-10-10 persian is 9999-12-31 gregorian.\n // Round down to 9377 to set the maximum full year.\n return 9377;\n }\n constructor(){\n this.identifier = 'persian';\n }\n}\n\n\nexport {$f3ed2e4472ae7e25$export$37fccdbfd14c5939 as PersianCalendar};\n//# sourceMappingURL=PersianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $5f31bd6f0c8940b2$var$TAIWAN_ERA_START = 1911;\nfunction $5f31bd6f0c8940b2$var$gregorianYear(date) {\n return date.era === 'minguo' ? date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START : 1 - date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n}\nfunction $5f31bd6f0c8940b2$var$gregorianToTaiwan(year) {\n let y = year - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n if (y > 0) return [\n 'minguo',\n y\n ];\n else return [\n 'before_minguo',\n 1 - y\n ];\n}\nclass $5f31bd6f0c8940b2$export$65e01080afcb0799 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let extendedYear = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan(extendedYear);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getEras() {\n return [\n 'before_minguo',\n 'minguo'\n ];\n }\n balanceDate(date) {\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan($5f31bd6f0c8940b2$var$gregorianYear(date));\n date.era = era;\n date.year = year;\n }\n isInverseEra(date) {\n return date.era === 'before_minguo';\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getYearsInEra(date) {\n return date.era === 'before_minguo' ? 9999 : 9999 - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'roc' // Republic of China\n ;\n }\n}\nfunction $5f31bd6f0c8940b2$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)($5f31bd6f0c8940b2$var$gregorianYear(date));\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$5f31bd6f0c8940b2$export$65e01080afcb0799 as TaiwanCalendar};\n//# sourceMappingURL=TaiwanCalendar.module.js.map\n","/**\n * @module\n * @category Date and Time\n */\nimport type { i18n } from 'i18next';\nimport { createCalendar, toCalendar, type CalendarDate } from '@internationalized/date';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport isToday from 'dayjs/plugin/isToday';\n\ndayjs.extend(utc);\ndayjs.extend(isToday);\n\ndeclare global {\n interface Window {\n i18next: i18n;\n }\n}\n\nexport type DateInput = string | number | Date;\n\nconst isoFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZZ';\n\n/**\n * This function checks whether a date string is the OpenMRS ISO format.\n * The format should be YYYY-MM-DDTHH:mm:ss.SSSZZ\n */\nexport function isOmrsDateStrict(omrsPayloadString: string): boolean {\n // omrs format 2018-03-19T00:00:00.000+0300\n if (omrsPayloadString === null || omrsPayloadString === undefined || omrsPayloadString.trim().length !== 28) {\n return false;\n }\n omrsPayloadString = omrsPayloadString.trim();\n\n // 11th character will always be T\n if (omrsPayloadString[10] !== 'T') {\n return false;\n }\n\n // checking time format\n if (omrsPayloadString[13] !== ':' || omrsPayloadString[16] !== ':' || omrsPayloadString[19] !== '.') {\n return false;\n }\n\n // checking UTC offset format\n if (!(omrsPayloadString[23] === '+' || omrsPayloadString[23] === '-')) {\n return false;\n }\n\n return dayjs(omrsPayloadString, isoFormat).isValid();\n}\n\n/**\n *\n * @param date Checks if the provided date is today.\n */\nexport function isOmrsDateToday(date: DateInput) {\n return dayjs(date).isToday();\n}\n\n/**\n * Converts the object to a date object if it is an OpenMRS ISO date time string.\n * Otherwise returns null.\n */\nexport function toDateObjectStrict(omrsDateString: string): Date | null {\n if (!isOmrsDateStrict(omrsDateString)) {\n return null;\n }\n\n return dayjs(omrsDateString, isoFormat).toDate();\n}\n\n/**\n * Formats the input to OpenMRS ISO format: \"YYYY-MM-DDTHH:mm:ss.SSSZZ\".\n */\nexport function toOmrsIsoString(date: DateInput, toUTC = false): string {\n let d = dayjs(date);\n\n if (toUTC) {\n d = d.utc();\n }\n\n return d.format(isoFormat);\n}\n\n/**\n * @deprecated use `formatTime`\n * Formats the input as a time string using the format \"HH:mm\".\n */\nexport function toOmrsTimeString24(date: DateInput) {\n return dayjs(date).format('HH:mm');\n}\n\n/**\n * @deprecated use `formatTime`\n * Formats the input as a time string using the format \"HH:mm A\".\n */\nexport function toOmrsTimeString(date: DateInput) {\n return dayjs.utc(date).format('HH:mm A');\n}\n\n/**\n * @deprecated use `formatDate(date, \"wide\")`\n * Formats the input as a date string using the format \"DD - MMM - YYYY\".\n */\nexport function toOmrsDayDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, 'DD - MMM - YYYY');\n}\n\n/**\n * @deprecated use `formatDate(date, \"no year\")`\n * Formats the input as a date string using the format \"DD-MMM\".\n */\nexport function toOmrsYearlessDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, 'DD-MMM');\n}\n\n/**\n * @deprecated use `formatDate(date)`\n * Formats the input as a date string. By default the format \"YYYY-MMM-DD\" is used.\n */\nexport function toOmrsDateFormat(date: DateInput, format = 'YYYY-MMM-DD') {\n return dayjs(date).format(format);\n}\n\n/**\n * Utility function to parse an arbitrary string into a date.\n * Uses `dayjs(dateString)`.\n */\nexport function parseDate(dateString: string) {\n return dayjs(dateString).toDate();\n}\n\nexport type FormatDateMode = 'standard' | 'wide';\n\nexport type FormatDateOptions = {\n /**\n * The calendar to use when formatting this date.\n */\n calendar?: string;\n /**\n * The locale to use when formatting this date\n */\n locale?: string;\n /**\n * - `standard`: \"03 Feb 2022\"\n * - `wide`: \"03 — Feb — 2022\"\n */\n mode: FormatDateMode;\n /**\n * Whether the time should be included in the output always (`true`),\n * never (`false`), or only when the input date is today (`for today`).\n */\n time: true | false | 'for today';\n /** Whether to include the day number */\n day: boolean;\n /** Whether to include the month number */\n month: boolean;\n /** Whether to include the year */\n year: boolean;\n /** The unicode numbering system to use */\n numberingSystem?: string;\n /**\n * Disables the special handling of dates that are today. If false\n * (the default), then dates that are today will be formatted as \"Today\"\n * in the locale language. If true, then dates that are today will be\n * formatted the same as all other dates.\n */\n noToday: boolean;\n};\n\nconst defaultOptions: FormatDateOptions = {\n mode: 'standard',\n time: 'for today',\n day: true,\n month: true,\n year: true,\n noToday: false,\n};\n\n/**\n * Internal cache for per-locale calendars\n */\nclass LocaleCalendars {\n #registry = new Map<string, string>();\n\n constructor() {\n this.#registry.set('am', 'ethiopic');\n }\n\n register(locale: string, calendar: string) {\n this.#registry.set(locale, calendar);\n }\n\n getCalendar(locale: Intl.Locale) {\n if (!Boolean(locale)) {\n return undefined;\n }\n\n if (locale.calendar) {\n return locale.calendar;\n }\n\n if (locale.region) {\n const key = `${locale.language}-${locale.region}`;\n if (this.#registry.has(key)) {\n return this.#registry.get(key);\n }\n }\n\n if (locale.language && this.#registry.has(locale.language)) {\n return this.#registry.get(locale.language);\n }\n\n const defaultCalendar = new Intl.DateTimeFormat(locale.toString()).resolvedOptions().calendar;\n\n // cache this result\n this.#registry.set(`${locale.language}${locale.region ? `-${locale.region}` : ''}`, defaultCalendar);\n\n return defaultCalendar;\n }\n}\n\nconst registeredLocaleCalendars = new LocaleCalendars();\n\n/**\n * Provides the name of the calendar to associate, as a default, with the given base locale.\n *\n * @example\n * ```\n * registerDefaultCalendar('en', 'buddhist') // sets the default calendar for the 'en' locale to Buddhist.\n * ```\n *\n * @param locale the locale to register this calendar for\n * @param calendar the calendar to use for this registration\n */\nexport function registerDefaultCalendar(locale: string, calendar: string) {\n registeredLocaleCalendars.register(locale, calendar);\n}\n\n/**\n * Retrieves the default calendar for the specified locale if any.\n *\n * @param locale the locale to look-up\n */\nexport function getDefaultCalendar(locale: Intl.Locale | string | undefined) {\n const locale_ = locale ?? getLocale();\n\n return registeredLocaleCalendars.getCalendar(locale_ instanceof Intl.Locale ? locale_ : new Intl.Locale(locale_));\n}\n\n/**\n * Formats the input date according to the current locale and the\n * given options.\n *\n * Default options:\n * - mode: \"standard\",\n * - time: \"for today\",\n * - day: true,\n * - month: true,\n * - year: true\n * - noToday: false\n *\n * If the date is today then \"Today\" is produced (in the locale language).\n * This behavior can be disabled with `noToday: true`.\n *\n * When time is included, it is appended with a comma and a space. This\n * agrees with the output of `Date.prototype.toLocaleString` for *most*\n * locales.\n */\n// TODO: Shouldn't throw on null input\nexport function formatDate(date: Date, options?: Partial<FormatDateOptions>) {\n let locale = options?.locale ?? getLocale();\n const _locale = new Intl.Locale(locale);\n\n const { calendar, mode, time, day, month, year, noToday, numberingSystem }: FormatDateOptions = {\n ...defaultOptions,\n ...{ noToday: _locale.language === 'am' ? true : false },\n ...options,\n };\n\n const formatCalendar = calendar ?? getDefaultCalendar(_locale);\n\n const formatterOptions: Intl.DateTimeFormatOptions = {\n calendar: formatCalendar,\n year: year ? 'numeric' : undefined,\n month: month ? 'short' : undefined,\n day: day ? '2-digit' : undefined,\n numberingSystem,\n };\n\n let localeString: string;\n const isToday = dayjs(date).isToday();\n if (isToday && !noToday) {\n // This produces the word \"Today\" in the language of `locale`\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n localeString = rtf.format(0, 'day');\n localeString = localeString[0].toLocaleUpperCase(locale) + localeString.slice(1);\n } else {\n if (_locale.language === 'en') {\n // This locale override is here rather than in `getLocale`\n // because Americans should see AM/PM for times.\n locale = 'en-GB';\n }\n\n const formatter = new Intl.DateTimeFormat(locale, formatterOptions);\n let parts = formatter.formatToParts(date);\n\n if ((_locale.language === 'en' || _locale.language === 'am') && mode == 'standard' && year && day) {\n // Custom formatting for English and Amharic. Use hyphens instead of spaces.\n parts = parts.map(formatParts('-'));\n }\n\n if (mode == 'wide') {\n parts = parts.map(formatParts(' — ')); // space-emdash-space\n }\n\n // omit the era when using the Ethiopic calendar\n if (formatterOptions.calendar === 'ethiopic') {\n parts = parts.filter((part, idx, values) => {\n if (\n part.type === 'era' ||\n (part.type === 'literal' && idx < values.length - 1 && values[idx + 1].type === 'era')\n ) {\n return false;\n }\n\n return true;\n });\n }\n\n localeString = parts.map((p) => p.value).join('');\n }\n if (time === true || (isToday && time === 'for today')) {\n localeString += `, ${formatTime(date)}`;\n }\n return localeString;\n}\n\n// Internal curried call-back for map()\nconst formatParts = (separator: string) => {\n return (part: Intl.DateTimeFormatPart, idx: number, values: Array<Intl.DateTimeFormatPart>) => {\n if (part.type !== 'literal' || part.value !== ' ') {\n return part;\n }\n\n if (idx < values.length - 1 && values[idx + 1].type === 'era') {\n return part;\n }\n\n return { type: 'literal', value: separator } as Intl.DateTimeFormatPart;\n };\n};\n\n/**\n * Formats the input as a time, according to the current locale.\n * 12-hour or 24-hour clock depends on locale.\n */\nexport function formatTime(date: Date) {\n return date.toLocaleTimeString(getLocale(), {\n hour: '2-digit',\n minute: '2-digit',\n });\n}\n\n/**\n * Formats the input into a string showing the date and time, according\n * to the current locale. The `mode` parameter is as described for\n * `formatDate`.\n *\n * This is created by concatenating the results of `formatDate`\n * and `formatTime` with a comma and space. This agrees with the\n * output of `Date.prototype.toLocaleString` for *most* locales.\n */\nexport function formatDatetime(date: Date, options?: Partial<Omit<FormatDateOptions, 'time'>>) {\n return formatDate(date, { ...options, time: true });\n}\n\n/**\n * Returns the current locale of the application.\n * @returns string\n */\nexport function getLocale() {\n let language = window.i18next.language;\n language = language.replace('_', '-'); // just in case\n // hack for `ht` until https://unicode-org.atlassian.net/browse/CLDR-14956 is fixed\n if (language === 'ht') {\n language = 'fr-HT';\n }\n\n return language;\n}\n\n/**\n * Converts a calendar date to the equivalent locale calendar date.\n * @returns CalendarDate\n */\nexport function convertToLocaleCalendar(date: CalendarDate, locale: string | Intl.Locale) {\n let locale_ = typeof locale === 'string' ? new Intl.Locale(locale) : locale;\n const localCalendarName = getDefaultCalendar(locale_);\n\n return localCalendarName ? toCalendar(date, createCalendar(localCalendarName)) : date;\n}\n","import {BuddhistCalendar as $8d73d47422ca7302$export$42d20a78301dee44} from \"./BuddhistCalendar.mjs\";\nimport {CopticCalendar as $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1, EthiopicAmeteAlemCalendar as $b956b2d7a6cf451f$export$d72e0c37005a4914, EthiopicCalendar as $b956b2d7a6cf451f$export$26ba6eab5e20cd7d} from \"./EthiopicCalendar.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {HebrewCalendar as $7c5f6fbf42389787$export$ca405048b8fb5af} from \"./HebrewCalendar.mjs\";\nimport {IndianCalendar as $82c358003bdda0a8$export$39f31c639fa15726} from \"./IndianCalendar.mjs\";\nimport {IslamicCivilCalendar as $f2f3e0e3a817edbd$export$2066795aadd37bfc, IslamicTabularCalendar as $f2f3e0e3a817edbd$export$37f0887f2f9d22f7, IslamicUmalquraCalendar as $f2f3e0e3a817edbd$export$5baab4758c231076} from \"./IslamicCalendar.mjs\";\nimport {JapaneseCalendar as $62225008020f0a13$export$b746ab2b60cdffbf} from \"./JapaneseCalendar.mjs\";\nimport {PersianCalendar as $f3ed2e4472ae7e25$export$37fccdbfd14c5939} from \"./PersianCalendar.mjs\";\nimport {TaiwanCalendar as $5f31bd6f0c8940b2$export$65e01080afcb0799} from \"./TaiwanCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\n\nfunction $64244302c3013299$export$dd0bbc9b26defe37(name) {\n switch(name){\n case 'buddhist':\n return new (0, $8d73d47422ca7302$export$42d20a78301dee44)();\n case 'ethiopic':\n return new (0, $b956b2d7a6cf451f$export$26ba6eab5e20cd7d)();\n case 'ethioaa':\n return new (0, $b956b2d7a6cf451f$export$d72e0c37005a4914)();\n case 'coptic':\n return new (0, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1)();\n case 'hebrew':\n return new (0, $7c5f6fbf42389787$export$ca405048b8fb5af)();\n case 'indian':\n return new (0, $82c358003bdda0a8$export$39f31c639fa15726)();\n case 'islamic-civil':\n return new (0, $f2f3e0e3a817edbd$export$2066795aadd37bfc)();\n case 'islamic-tbla':\n return new (0, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7)();\n case 'islamic-umalqura':\n return new (0, $f2f3e0e3a817edbd$export$5baab4758c231076)();\n case 'japanese':\n return new (0, $62225008020f0a13$export$b746ab2b60cdffbf)();\n case 'persian':\n return new (0, $f3ed2e4472ae7e25$export$37fccdbfd14c5939)();\n case 'roc':\n return new (0, $5f31bd6f0c8940b2$export$65e01080afcb0799)();\n case 'gregory':\n default:\n return new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n }\n}\n\n\nexport {$64244302c3013299$export$dd0bbc9b26defe37 as createCalendar};\n//# sourceMappingURL=createCalendar.module.js.map\n","/** @module @category Utility */\nimport { getLocale } from './omrs-dates';\n\n/**\n * Gets the number of days in the year of the given date.\n * @param date The date to compute the days within the year.\n * @returns The number of days.\n */\nexport function daysIntoYear(date: Date) {\n return (\n (Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) - Date.UTC(date.getUTCFullYear(), 0, 0)) /\n 24 /\n 60 /\n 60 /\n 1000\n );\n}\n\n/**\n * Checks if two dates are representing the same day.\n * @param firstDate The first date.\n * @param secondDate The second date.\n * @returns True if both are located on the same day.\n */\nexport function isSameDay(firstDate: Date, secondDate: Date) {\n const firstISO = firstDate.toISOString();\n const secondISO = secondDate.toISOString();\n return firstISO.slice(0, firstISO.indexOf('T')) === secondISO.slice(0, secondISO.indexOf('T'));\n}\n\n/**\n * Gets a human readable and locale supported age represention of the provided date string.\n * @param dateString The stringified date.\n * @returns A human-readable string version of the age.\n */\nexport function age(dateString: string): string {\n // Different from npm packages such as https://www.npmjs.com/package/timeago\n\n // First calculate the age in years\n const today = new Date();\n const birthDate = new Date(dateString);\n const monthDifference = today.getUTCMonth() - birthDate.getUTCMonth();\n const dateDifference = today.getUTCDate() - birthDate.getUTCDate();\n let age = today.getUTCFullYear() - birthDate.getUTCFullYear();\n if (monthDifference < 0 || (monthDifference === 0 && dateDifference < 0)) {\n age--;\n }\n\n // Now calculate the number of months in addition to the year's age\n let monthsAgo = monthDifference >= 0 ? monthDifference : monthDifference + 12;\n if (dateDifference < 0) {\n monthsAgo--;\n }\n\n // For patients less than a year old, we calculate the number of days/weeks they have been alive\n let totalDaysAgo = daysIntoYear(today) - daysIntoYear(birthDate);\n if (totalDaysAgo < 0) {\n totalDaysAgo += 365;\n }\n const weeksAgo = Math.floor(totalDaysAgo / 7);\n\n const locale = getLocale();\n\n // Depending on their age, return a different representation of their age.\n if (age === 0) {\n if (isSameDay(today, birthDate)) {\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n return rtf.format(0, 'day');\n } else if (totalDaysAgo < 31) {\n const totalDaysAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'day',\n unitDisplay: 'short',\n }).format(totalDaysAgo);\n\n return totalDaysAgoStr;\n } else {\n const weeksAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'week',\n unitDisplay: 'short',\n }).format(weeksAgo);\n return weeksAgoStr;\n }\n } else if (age < 2) {\n const monthsAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'month',\n unitDisplay: 'short',\n }).format(monthsAgo + 12);\n\n return monthsAgoStr;\n } else {\n const yearsAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'year',\n unitDisplay: 'short',\n }).format(age);\n return yearsAgoStr;\n }\n}\n","import type {} from '@openmrs/esm-globals';\n\nexport function isOnline(online?: boolean) {\n return window.offlineEnabled ? online ?? navigator.onLine : true;\n}\n","/** @module @category Utility */\n\nimport { type NameUse } from '@openmrs/esm-globals';\n\n/**\n * Gets the formatted display name for a patient.\n *\n * The display name will be taken from the patient's 'usual' name,\n * or may fall back to the patient's 'official' name.\n *\n * @param patient The patient details in FHIR format.\n * @returns The patient's display name or an empty string if name is not present.\n */\nexport function getPatientName(patient: fhir.Patient): string {\n const name = selectPreferredName(patient, 'usual', 'official');\n return formatPatientName(name);\n}\n\n/** @deprecated Use `getPatientName` */\nexport function displayName(patient: fhir.Patient): string {\n return getPatientName(patient);\n}\n\n/**\n * Get a formatted display string for an FHIR name.\n * @param name The name to be formatted.\n * @returns The formatted display name or an empty string if name is undefined.\n */\nexport function formatPatientName(name: fhir.HumanName | undefined): string {\n if (name) return name.text ?? defaultFormat(name);\n return '';\n}\n\n/** @deprecated Use `formatPatientName` */\nexport function formattedName(name: fhir.HumanName | undefined): string {\n return formatPatientName(name);\n}\n\n/**\n * Select the preferred name from the collection of names associated with a patient.\n *\n * Names may be specified with a usage such as 'usual', 'official', 'nickname', 'maiden', etc.\n * A name with no usage specified is treated as the 'usual' name.\n *\n * The chosen name will be selected according to the priority order of `preferredNames`,\n * @example\n * // normal use case; prefer usual name, fallback to official name\n * displayNameByUsage(patient, 'usual', 'official')\n * @example\n * // prefer usual name over nickname, fallback to official name\n * displayNameByUsage(patient, 'usual', 'nickname', 'official')\n *\n * @param patient The patient from whom a name will be selected.\n * @param preferredNames Optional ordered sequence of preferred name usages; defaults to 'usual' if not specified.\n * @return the preferred name for the patient, or undefined if no acceptable name could be found.\n */\nexport function selectPreferredName(patient: fhir.Patient, ...preferredNames: NameUse[]): fhir.HumanName | undefined {\n if (preferredNames.length == 0) {\n preferredNames = ['usual'];\n }\n for (const usage of preferredNames) {\n const name = patient.name?.find((name) => nameUsageMatches(name, usage));\n if (name) {\n return name;\n }\n }\n return undefined;\n}\n\n/**\n * Generate a display name by concatenating forenames and surname.\n * @param name the person's name.\n * @returns the person's name as a string.\n */\nfunction defaultFormat(name: fhir.HumanName): string {\n const forenames: string[] = name.given ?? [];\n const names: string[] = name.family ? forenames.concat(name.family) : forenames;\n return names.join(' ');\n}\n\n/**\n * Determine whether the usage of a given name matches the given NameUse.\n *\n * A name with no usage is treated as the 'usual' name.\n *\n * @param name the name to test.\n * @param usage the NameUse to test for.\n */\nfunction nameUsageMatches(name: fhir.HumanName, usage: NameUse): boolean {\n if (!name.use)\n // a name with no usage is treated as 'usual'\n return usage === 'usual';\n\n return name.use === usage;\n}\n","/** @module @category Utility */\n\n/**\n * Checks whether two objects are equal, using a shallow comparison, similar to React.\n *\n * In essence, shallowEquals ensures two objects have the same own properties and that the values\n * of these are equal (===) to each other.\n *\n * @param a The first value to compare\n * @param b The second value to compare\n * @returns true if the objects are shallowly equal to each other\n */\nexport function shallowEqual(a: unknown, b: unknown) {\n if (a === b || Object.is(a, b)) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {\n return false;\n }\n\n const objAKeys = Object.getOwnPropertyNames(a);\n const objBKeys = Object.getOwnPropertyNames(b);\n\n return objAKeys.length === objBKeys.length && objAKeys.every((key) => a[key] === b[key]);\n}\n","/** @module @category Utility */\n\n/**\n * Simple utility function to determine if an object implementing the WebStorage API\n * is actually available. Useful for testing the availability of `localStorage` or\n * `sessionStorage`.\n *\n * @param storage The WebStorage API object to check. Defaults to `localStorage`.\n * @returns True if the WebStorage API object is able to be accessed, false otherwise\n */\nexport function canAccessStorage(storage: Storage = window.localStorage) {\n try {\n storage.getItem('test');\n return true;\n } catch {\n return false;\n }\n}\n","/** @module @category Utility */\n\n/**\n * Given a config schema, this returns an object like is returned by `useConfig`\n * with all default values.\n *\n * This should be used in tests and not in production code.\n *\n * If all you need is the default values in your tests, these are returned by\n * default from the `useConfig`/`getConfig` mock. This function is useful if you\n * need to override some of the default values.\n */\nexport function getDefaultsFromConfigSchema<T = Record<string, any>>(schema): T {\n let tmp = {};\n for (let k of Object.keys(schema)) {\n if (schema[k].hasOwnProperty('_default')) {\n tmp[k] = schema[k]._default;\n } else if (k.startsWith('_')) {\n continue;\n } else if (isOrdinaryObject(schema[k])) {\n tmp[k] = getDefaultsFromConfigSchema(schema[k]);\n } else {\n tmp[k] = schema[k];\n }\n }\n return tmp as T;\n}\n\nfunction isOrdinaryObject(x) {\n return !!x && x.constructor === Object;\n}\n","/** @module @category Utility */\nimport * as semver from 'semver';\n\nfunction normalizeOnlyVersion(version: string) {\n const [major, minor, patch] = version.split('.');\n return `${major}.${minor}.${patch}`;\n}\n\nfunction normalizeFullVersion(version: string) {\n const idx = version.indexOf('-');\n const prerelease = idx >= 0;\n\n if (prerelease) {\n const ver = normalizeOnlyVersion(version.slice(0, idx));\n const pre = version.slice(idx + 1);\n return `${ver}-${pre}`;\n }\n\n return normalizeOnlyVersion(version);\n}\n\nexport function isVersionSatisfied(requiredVersion: string, installedVersion: string) {\n const version = normalizeFullVersion(installedVersion);\n\n return semver.satisfies(version, requiredVersion, {\n includePrerelease: true,\n } as semver.Options);\n}\n","/** @module @category Utility */\n\n/**\n * Options for configuring the behavior of the {@link retry} function.\n */\nexport interface RetryOptions {\n /**\n * Determines whether the retry function should retry executing the function after it failed\n * with an error on the current attempt.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n shouldRetry?(attempt: number);\n /**\n * Calculates the next delay (in milliseconds) before a retry attempt.\n * Returning a value for the inital attempt (`0`) delays the initial function invocation.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n getDelay?(attempt: number): number;\n /**\n * Called when invoking the function resulted in an error.\n * Allows running side-effects on errors, e.g. logging.\n * @param e The error thrown by the function.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n onError?(e: any, attempt: number): void;\n}\n\n/**\n * Executes the specified function and retries executing on failure with a custom backoff strategy\n * defined by the options.\n *\n * If not configured otherwise, this function uses the following default options:\n * * Retries 5 times beyond the initial attempt.\n * * Uses an exponential backoff starting with an initial delay of 1000ms.\n * @param fn The function to be executed and retried on failure.\n * @param options Additional options which configure the retry behavior.\n * @returns The result of successfully executing `fn`.\n * @throws Rethrows the final error of running `fn` when the function stops retrying.\n */\nexport async function retry<T>(fn: () => Promise<T>, options: RetryOptions = {}) {\n let { shouldRetry, getDelay, onError } = options;\n shouldRetry = shouldRetry ?? ((attempt) => limitAttempts(attempt, 5));\n getDelay = getDelay ?? ((attempt) => getExponentialDelay(attempt, 1000));\n\n let attempt = 0;\n let lastError: any = undefined;\n\n do {\n try {\n await delay(getDelay(attempt));\n return await fn();\n } catch (e) {\n onError?.(e, attempt);\n lastError = e;\n }\n } while (shouldRetry(attempt++));\n\n // If we reach this fn errored and shouldn't retry anymore. Simply rethrow the final error as\n // a means of ending the retry process without a result.\n throw lastError;\n}\n\nfunction limitAttempts(attempt: number, maxAttempts: number) {\n return attempt <= maxAttempts;\n}\n\nfunction getExponentialDelay(attempt: number, startingDelay: number, initialDelay = false) {\n const exponent = initialDelay ? attempt + 1 : attempt;\n return startingDelay * Math.pow(2, exponent);\n}\n\nasync function delay(ms: number) {\n if (ms <= 0) {\n return;\n }\n\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n"],"names":["module","exports","e","o","t","prototype","isToday","this","format","i","s","f","n","u","utc","date","args","arguments","toDate","locale","$L","add","utcOffset","local","parse","$u","$utils","$offset","call","r","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","a","match","Math","abs","getTimezoneOffset","$x","$localOffset","h","valueOf","isUTC","toISOString","toString","toUTCString","l","c","diff","ANY","Symbol","Comparator","constructor","comp","options","loose","includePrerelease","value","debug","semver","operator","version","re","COMPARATORLOOSE","COMPARATOR","m","TypeError","undefined","SemVer","test","er","cmp","intersects","Range","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","range","raw","set","split","map","parseRange","trim","filter","length","comps","join","hr","HYPHENRANGELOOSE","HYPHENRANGE","replace","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","parseComparator","replaceGTE0","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","comparators","result","remainingComparators","slice","testComparator","pop","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","id","toLowerCase","replaceTilde","TILDELOOSE","TILDE","_","M","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","tb","prerelease","allowed","major","minor","patch","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","num","build","compare","other","compareMain","comparePre","b","compareBuild","inc","release","identifier","push","isNaN","Error","eq","neq","gt","gte","lt","lte","op","String","rtl","next","COERCERTL","exec","index","lastIndex","COERCE","versionA","versionB","version1","version2","v1","v2","hasPre","prefix","defaultResult","key","parsed","list","sort","v","internalRe","src","tokens","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","Number","MAX_SAFE_COMPONENT_LENGTH","process","env","NODE_DEBUG","console","error","numeric","anum","bnum","R","createToken","name","isGlobal","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","r2","versions","max","maxSV","rangeObj","forEach","min","minSV","minver","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","high","low","prev","ranges","simplified","original","simpleSubset","sub","dom","eqSet","Set","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","size","sawNonNull","OUTER","simpleSub","simpleDom","isSub","__WEBPACK_EXTERNAL_MODULE__688__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","Object","defineProperty","enumerable","get","obj","prop","hasOwnProperty","toStringTag","$735220c2d4774dd3$export$e16d8520af44a096","duration","mutableDate","copy","days","time","hour","hours","minute","minutes","second","seconds","millisecond","milliseconds","floor","$735220c2d4774dd3$var$nonNegativeMod","$735220c2d4774dd3$var$balanceTime","$735220c2d4774dd3$var$addTimeFields","$735220c2d4774dd3$var$addYears","years","calendar","balanceYearMonth","month","months","$735220c2d4774dd3$var$balanceYearMonth","$735220c2d4774dd3$var$constrainMonthDay","day","weeks","getDaysInMonth","$735220c2d4774dd3$var$balanceDay","balanceDate","year","maxYear","getYearsInEra","_mutableDate_calendar_isInverseEra","_mutableDate_calendar","isInverseEra","getMonthsInYear","maxMonth","_date_calendar_isInverseEra","_date_calendar","monthsInYear","constrainDate","$735220c2d4774dd3$export$4e2d2ead65e5f7e3","inverseDuration","$735220c2d4774dd3$export$3e2544e88a25bff8","$735220c2d4774dd3$export$adaa4cf7ef1b65be","fields","era","$735220c2d4774dd3$export$d52ced6badfb9a4c","field","amount","mutable","eras","getEras","eraIndex","indexOf","$735220c2d4774dd3$var$cycleValue","round","_mutable_calendar_isInverseEra","_mutable_calendar","sign","div","ceil","$14e0f24ef4ac5c92$export$68781ddf31c0090f","toJulianDay","$14e0f24ef4ac5c92$var$timeToMs","$14e0f24ef4ac5c92$var$localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","$2b4dce13dd5a17fa$export$842a2cf37af977e1","numerator","Map","$3b62074eb05584b2$export$f297eb839006d339","y1","$3b62074eb05584b2$export$c36e0ecb2d4fa69d","monthOffset","$3b62074eb05584b2$export$553d7fa8e3805fc0","$3b62074eb05584b2$var$EPOCH","$3b62074eb05584b2$export$4475b7e617eb123c","$3b62074eb05584b2$var$daysInMonth","standard","leapyear","fromJulianDay","jd","jd0","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","extendedYear","yearDay","leapAdj","getDaysInYear","$fae977aafc393c5c$export$60dfd74aa96791bd","gregorianDate","padStart","_class_private_field_init","privateMap","privateCollection","has","_check_private_redeclaration","$35ea8db9cb2ccb90$var$shiftArgs","shift","$35ea8db9cb2ccb90$var$_type","WeakMap","subtract","cycle","$11d87f3f76e88657$export$e67a095c620b86fe","writable","$35ea8db9cb2ccb90$var$_type2","mutableValue","hourCycle","isPM","disambiguation","res","$11d87f3f76e88657$var$epochFromParts","Date","setUTCHours","setUTCFullYear","getTime","$11d87f3f76e88657$export$59c99f3515d3493f","ms","$11d87f3f76e88657$var$getTimeZoneParts","$11d87f3f76e88657$var$formattersByTimeZone","formatter","hour12","parts","formatToParts","namedParts","part","type","$11d87f3f76e88657$var$DAYMILLIS","dateTime","setFullYear","setHours","offsetBefore","offsetAfter","earlier","later","absolute","$11d87f3f76e88657$var$isValidWallTime","$11d87f3f76e88657$var$getValidWallTimes","RangeError","calendarDate","$8d73d47422ca7302$export$42d20a78301dee44","super","$8d73d47422ca7302$var$toGregorian","$b956b2d7a6cf451f$var$ETHIOPIC_EPOCH","$b956b2d7a6cf451f$var$COPTIC_EPOCH","$b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA","$b956b2d7a6cf451f$var$ceToJulianDay","epoch","$b956b2d7a6cf451f$var$julianDayToCE","$b956b2d7a6cf451f$var$getLeapDay","$b956b2d7a6cf451f$var$getDaysInMonth","$b956b2d7a6cf451f$export$26ba6eab5e20cd7d","$b956b2d7a6cf451f$export$d72e0c37005a4914","$b956b2d7a6cf451f$export$fe6243cbe1a4b7c1","$7c5f6fbf42389787$var$HEBREW_EPOCH","$7c5f6fbf42389787$var$isLeapYear","$7c5f6fbf42389787$var$hebrewDelay1","$7c5f6fbf42389787$var$startOfYear","last","present","$7c5f6fbf42389787$var$hebrewDelay2","$7c5f6fbf42389787$var$getDaysInYear","$7c5f6fbf42389787$var$getDaysInMonth","yearType","yearLength","$7c5f6fbf42389787$var$getYearType","$7c5f6fbf42389787$export$ca405048b8fb5af","$7c5f6fbf42389787$var$MONTH_DAYS","ys","dayOfYear","monthStart","previousDate","$82c358003bdda0a8$export$39f31c639fa15726","leapMonth","indianMonth","indianDay","indianYear","yDay","mDay","$f2f3e0e3a817edbd$var$CIVIL_EPOC","$f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_END","$f2f3e0e3a817edbd$var$UMALQURA_START_DAYS","$f2f3e0e3a817edbd$var$islamicToJulianDay","$f2f3e0e3a817edbd$var$julianDayToIslamic","$f2f3e0e3a817edbd$var$isLeapYear","$f2f3e0e3a817edbd$export$2066795aadd37bfc","$f2f3e0e3a817edbd$export$37f0887f2f9d22f7","$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE","$f2f3e0e3a817edbd$var$umalquraYearStart","$f2f3e0e3a817edbd$var$umalquraMonthLength","mask","$f2f3e0e3a817edbd$var$umalquraMonthStart","$f2f3e0e3a817edbd$var$umalquraYearLength","$f2f3e0e3a817edbd$export$5baab4758c231076","startDays","endDays","y","monthLength","Uint16Array","Uint8Array","atob","charCodeAt","buffer","Uint32Array","yearStart","$62225008020f0a13$var$ERA_START_DATES","$62225008020f0a13$var$ERA_END_DATES","$62225008020f0a13$var$ERA_ADDENDS","$62225008020f0a13$var$ERA_NAMES","$62225008020f0a13$var$findEraFromGregorianDate","idx","findIndex","$62225008020f0a13$var$toGregorian","eraAddend","$62225008020f0a13$export$b746ab2b60cdffbf","end","endYear","endMonth","endDay","startMonth","startDay","cur","getMinimumMonthInYear","start","$62225008020f0a13$var$getMinimums","getMinimumDayInMonth","$f3ed2e4472ae7e25$var$MONTH_START","$f3ed2e4472ae7e25$export$37fccdbfd14c5939","daysSinceEpoch","$f3ed2e4472ae7e25$var$PERSIAN_EPOCH","$5f31bd6f0c8940b2$var$TAIWAN_ERA_START","$5f31bd6f0c8940b2$var$gregorianYear","$5f31bd6f0c8940b2$var$gregorianToTaiwan","$5f31bd6f0c8940b2$export$65e01080afcb0799","$5f31bd6f0c8940b2$var$toGregorian","dayjs","isoFormat","isOmrsDateStrict","omrsPayloadString","isValid","isOmrsDateToday","toDateObjectStrict","omrsDateString","toOmrsIsoString","toUTC","toOmrsTimeString24","toOmrsTimeString","toOmrsDayDateFormat","toOmrsDateFormat","toOmrsYearlessDateFormat","parseDate","dateString","defaultOptions","mode","noToday","registeredLocaleCalendars","LocaleCalendars","registry","register","getCalendar","Boolean","region","language","defaultCalendar","registerDefaultCalendar","getDefaultCalendar","locale_","getLocale","Locale","formatDate","localeString","_locale","numberingSystem","formatterOptions","RelativeTimeFormat","toLocaleUpperCase","formatParts","values","formatTime","separator","toLocaleTimeString","formatDatetime","window","i18next","convertToLocaleCalendar","localCalendarName","toCalendar","createCalendar","daysIntoYear","UTC","isSameDay","firstDate","secondDate","firstISO","secondISO","age","today","birthDate","monthDifference","dateDifference","monthsAgo","totalDaysAgo","weeksAgo","NumberFormat","style","unit","unitDisplay","isOnline","online","offlineEnabled","navigator","onLine","getPatientName","patient","formatPatientName","selectPreferredName","displayName","text","forenames","given","family","concat","defaultFormat","formattedName","preferredNames","usage","find","use","nameUsageMatches","shallowEqual","is","Array","isArray","objAKeys","getOwnPropertyNames","objBKeys","canAccessStorage","storage","localStorage","getItem","getDefaultsFromConfigSchema","schema","x","tmp","keys","k","_default","startsWith","normalizeOnlyVersion","isVersionSatisfied","requiredVersion","installedVersion","ver","pre","normalizeFullVersion","retry","fn","shouldRetry","getDelay","onError","attempt","lastError","maxAttempts","limitAttempts","startingDelay","exponent","initialDelay","pow","getExponentialDelay","delay","Promise","setTimeout"],"sourceRoot":""}
1
+ {"version":3,"file":"openmrs-esm-utils.js","mappings":"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","sources":["webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-utils/../../../node_modules/dayjs/plugin/utc.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/comparator.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/range.js","webpack://@openmrs/esm-utils/./node_modules/semver/classes/semver.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/clean.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/cmp.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/coerce.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-build.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare-loose.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/compare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/diff.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/eq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/gte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/inc.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lt.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/lte.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/major.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/minor.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/neq.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/parse.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/patch.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/prerelease.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rcompare.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/rsort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/satisfies.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/sort.js","webpack://@openmrs/esm-utils/./node_modules/semver/functions/valid.js","webpack://@openmrs/esm-utils/./node_modules/semver/index.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/constants.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/debug.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/identifiers.js","webpack://@openmrs/esm-utils/./node_modules/semver/internal/re.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/gtr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/intersects.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/ltr.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/max-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-satisfying.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/min-version.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/outside.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/simplify.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/subset.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/to-comparators.js","webpack://@openmrs/esm-utils/./node_modules/semver/ranges/valid.js","webpack://@openmrs/esm-utils/external system \"dayjs\"","webpack://@openmrs/esm-utils/webpack/bootstrap","webpack://@openmrs/esm-utils/webpack/runtime/compat get default export","webpack://@openmrs/esm-utils/webpack/runtime/define property getters","webpack://@openmrs/esm-utils/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-utils/webpack/runtime/make namespace object","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/manipulation.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/queries.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/utils.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/GregorianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/string.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_class_private_field_init.js","webpack://@openmrs/esm-utils/../../../node_modules/@swc/helpers/esm/_check_private_redeclaration.js","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/CalendarDate.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/conversion.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/BuddhistCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/EthiopicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/HebrewCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IndianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/IslamicCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/JapaneseCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/PersianCalendar.mjs","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/TaiwanCalendar.mjs","webpack://@openmrs/esm-utils/./src/omrs-dates.ts","webpack://@openmrs/esm-utils/../../../node_modules/@internationalized/date/dist/createCalendar.mjs","webpack://@openmrs/esm-utils/./src/age-helpers.ts","webpack://@openmrs/esm-utils/./src/is-online.ts","webpack://@openmrs/esm-utils/./src/patient-helpers.ts","webpack://@openmrs/esm-utils/./src/shallowEqual.ts","webpack://@openmrs/esm-utils/./src/storage.ts","webpack://@openmrs/esm-utils/./src/test-helpers.ts","webpack://@openmrs/esm-utils/./src/version.ts","webpack://@openmrs/esm-utils/./src/retry.ts"],"sourcesContent":["!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n const loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n return range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parse = (version, options) => {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst { ANY } = require('../classes/comparator.js')\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else return false\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If LT\n// - If LT.semver is greater than that of any > comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If any C is a = range, and GT or LT are set, return false\n// - Else return true\n\nconst subset = (sub, dom, options) => {\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub.length === 1 && sub[0].semver === ANY)\n return dom.length === 1 && dom[0].semver === ANY\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","module.exports = __WEBPACK_EXTERNAL_MODULE__688__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484} from \"./conversion.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nconst $735220c2d4774dd3$var$ONE_HOUR = 3600000;\nfunction $735220c2d4774dd3$export$e16d8520af44a096(date, duration) {\n let mutableDate = date.copy();\n let days = 'hour' in mutableDate ? $735220c2d4774dd3$var$addTimeFields(mutableDate, duration) : 0;\n $735220c2d4774dd3$var$addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) mutableDate.calendar.balanceYearMonth(mutableDate, date);\n mutableDate.month += duration.months || 0;\n $735220c2d4774dd3$var$balanceYearMonth(mutableDate);\n $735220c2d4774dd3$var$constrainMonthDay(mutableDate);\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n $735220c2d4774dd3$var$balanceDay(mutableDate);\n if (mutableDate.calendar.balanceDate) mutableDate.calendar.balanceDate(mutableDate);\n // Constrain in case adding ended up with a date outside the valid range for the calendar system.\n // The behavior here is slightly different than when constraining in the `set` function in that\n // we adjust smaller fields to their minimum/maximum values rather than constraining each field\n // individually. This matches the general behavior of `add` vs `set` regarding how fields are balanced.\n if (mutableDate.year < 1) {\n mutableDate.year = 1;\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);\n if (mutableDate.year > maxYear) {\n var _mutableDate_calendar_isInverseEra, _mutableDate_calendar;\n let isInverseEra = (_mutableDate_calendar_isInverseEra = (_mutableDate_calendar = mutableDate.calendar).isInverseEra) === null || _mutableDate_calendar_isInverseEra === void 0 ? void 0 : _mutableDate_calendar_isInverseEra.call(_mutableDate_calendar, mutableDate);\n mutableDate.year = maxYear;\n mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);\n mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n if (mutableDate.month < 1) {\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);\n if (mutableDate.month > maxMonth) {\n mutableDate.month = maxMonth;\n mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));\n return mutableDate;\n}\nfunction $735220c2d4774dd3$var$addYears(date, years) {\n var _date_calendar_isInverseEra, _date_calendar;\n if ((_date_calendar_isInverseEra = (_date_calendar = date.calendar).isInverseEra) === null || _date_calendar_isInverseEra === void 0 ? void 0 : _date_calendar_isInverseEra.call(_date_calendar, date)) years = -years;\n date.year += years;\n}\nfunction $735220c2d4774dd3$var$balanceYearMonth(date) {\n while(date.month < 1){\n $735220c2d4774dd3$var$addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n let monthsInYear = 0;\n while(date.month > (monthsInYear = date.calendar.getMonthsInYear(date))){\n date.month -= monthsInYear;\n $735220c2d4774dd3$var$addYears(date, 1);\n }\n}\nfunction $735220c2d4774dd3$var$balanceDay(date) {\n while(date.day < 1){\n date.month--;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n while(date.day > date.calendar.getDaysInMonth(date)){\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n $735220c2d4774dd3$var$balanceYearMonth(date);\n }\n}\nfunction $735220c2d4774dd3$var$constrainMonthDay(date) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\nfunction $735220c2d4774dd3$export$c4e2ecac49351ef2(date) {\n if (date.calendar.constrainDate) date.calendar.constrainDate(date);\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n $735220c2d4774dd3$var$constrainMonthDay(date);\n}\nfunction $735220c2d4774dd3$export$3e2544e88a25bff8(duration) {\n let inverseDuration = {};\n for(let key in duration)if (typeof duration[key] === 'number') inverseDuration[key] = -duration[key];\n return inverseDuration;\n}\nfunction $735220c2d4774dd3$export$4e2d2ead65e5f7e3(date, duration) {\n return $735220c2d4774dd3$export$e16d8520af44a096(date, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$adaa4cf7ef1b65be(date, fields) {\n let mutableDate = date.copy();\n if (fields.era != null) mutableDate.era = fields.era;\n if (fields.year != null) mutableDate.year = fields.year;\n if (fields.month != null) mutableDate.month = fields.month;\n if (fields.day != null) mutableDate.day = fields.day;\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutableDate);\n return mutableDate;\n}\nfunction $735220c2d4774dd3$export$e5d5e1c1822b6e56(value, fields) {\n let mutableValue = value.copy();\n if (fields.hour != null) mutableValue.hour = fields.hour;\n if (fields.minute != null) mutableValue.minute = fields.minute;\n if (fields.second != null) mutableValue.second = fields.second;\n if (fields.millisecond != null) mutableValue.millisecond = fields.millisecond;\n $735220c2d4774dd3$export$7555de1e070510cb(mutableValue);\n return mutableValue;\n}\nfunction $735220c2d4774dd3$var$balanceTime(time) {\n time.second += Math.floor(time.millisecond / 1000);\n time.millisecond = $735220c2d4774dd3$var$nonNegativeMod(time.millisecond, 1000);\n time.minute += Math.floor(time.second / 60);\n time.second = $735220c2d4774dd3$var$nonNegativeMod(time.second, 60);\n time.hour += Math.floor(time.minute / 60);\n time.minute = $735220c2d4774dd3$var$nonNegativeMod(time.minute, 60);\n let days = Math.floor(time.hour / 24);\n time.hour = $735220c2d4774dd3$var$nonNegativeMod(time.hour, 24);\n return days;\n}\nfunction $735220c2d4774dd3$export$7555de1e070510cb(time) {\n time.millisecond = Math.max(0, Math.min(time.millisecond, 1000));\n time.second = Math.max(0, Math.min(time.second, 59));\n time.minute = Math.max(0, Math.min(time.minute, 59));\n time.hour = Math.max(0, Math.min(time.hour, 23));\n}\nfunction $735220c2d4774dd3$var$nonNegativeMod(a, b) {\n let result = a % b;\n if (result < 0) result += b;\n return result;\n}\nfunction $735220c2d4774dd3$var$addTimeFields(time, duration) {\n time.hour += duration.hours || 0;\n time.minute += duration.minutes || 0;\n time.second += duration.seconds || 0;\n time.millisecond += duration.milliseconds || 0;\n return $735220c2d4774dd3$var$balanceTime(time);\n}\nfunction $735220c2d4774dd3$export$7ed87b6bc2506470(time, duration) {\n let res = time.copy();\n $735220c2d4774dd3$var$addTimeFields(res, duration);\n return res;\n}\nfunction $735220c2d4774dd3$export$fe34d3a381cd7501(time, duration) {\n return $735220c2d4774dd3$export$7ed87b6bc2506470(time, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$d52ced6badfb9a4c(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'era':\n {\n let eras = value.calendar.getEras();\n let eraIndex = eras.indexOf(value.era);\n if (eraIndex < 0) throw new Error('Invalid era: ' + value.era);\n eraIndex = $735220c2d4774dd3$var$cycleValue(eraIndex, amount, 0, eras.length - 1, options === null || options === void 0 ? void 0 : options.round);\n mutable.era = eras[eraIndex];\n // Constrain the year and other fields within the era, so the era doesn't change when we balance below.\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n break;\n }\n case 'year':\n var _mutable_calendar_isInverseEra, _mutable_calendar;\n if ((_mutable_calendar_isInverseEra = (_mutable_calendar = mutable.calendar).isInverseEra) === null || _mutable_calendar_isInverseEra === void 0 ? void 0 : _mutable_calendar_isInverseEra.call(_mutable_calendar, mutable)) amount = -amount;\n // The year field should not cycle within the era as that can cause weird behavior affecting other fields.\n // We need to also allow values < 1 so that decrementing goes to the previous era. If we get -Infinity back\n // we know we wrapped around after reaching 9999 (the maximum), so set the year back to 1.\n mutable.year = $735220c2d4774dd3$var$cycleValue(value.year, amount, -Infinity, 9999, options === null || options === void 0 ? void 0 : options.round);\n if (mutable.year === -Infinity) mutable.year = 1;\n if (mutable.calendar.balanceYearMonth) mutable.calendar.balanceYearMonth(mutable, value);\n break;\n case 'month':\n mutable.month = $735220c2d4774dd3$var$cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'day':\n mutable.day = $735220c2d4774dd3$var$cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n if (value.calendar.balanceDate) value.calendar.balanceDate(mutable);\n $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);\n return mutable;\n}\nfunction $735220c2d4774dd3$export$dd02b3e0007dfe28(value, field, amount, options) {\n let mutable = value.copy();\n switch(field){\n case 'hour':\n {\n let hours = value.hour;\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = hours >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n mutable.hour = $735220c2d4774dd3$var$cycleValue(hours, amount, min, max, options === null || options === void 0 ? void 0 : options.round);\n break;\n }\n case 'minute':\n mutable.minute = $735220c2d4774dd3$var$cycleValue(value.minute, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'second':\n mutable.second = $735220c2d4774dd3$var$cycleValue(value.second, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);\n break;\n case 'millisecond':\n mutable.millisecond = $735220c2d4774dd3$var$cycleValue(value.millisecond, amount, 0, 999, options === null || options === void 0 ? void 0 : options.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n return mutable;\n}\nfunction $735220c2d4774dd3$var$cycleValue(value, amount, min, max, round = false) {\n if (round) {\n value += Math.sign(amount);\n if (value < min) value = max;\n let div = Math.abs(amount);\n if (amount > 0) value = Math.ceil(value / div) * div;\n else value = Math.floor(value / div) * div;\n if (value > max) value = min;\n } else {\n value += amount;\n if (value < min) value = max - (min - value - 1);\n else if (value > max) value = min + (value - max - 1);\n }\n return value;\n}\nfunction $735220c2d4774dd3$export$96b1d28349274637(dateTime, duration) {\n let ms;\n if (duration.years != null && duration.years !== 0 || duration.months != null && duration.months !== 0 || duration.weeks != null && duration.weeks !== 0 || duration.days != null && duration.days !== 0) {\n let res = $735220c2d4774dd3$export$e16d8520af44a096((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), {\n years: duration.years,\n months: duration.months,\n weeks: duration.weeks,\n days: duration.days\n });\n // Changing the date may change the timezone offset, so we need to recompute\n // using the 'compatible' disambiguation.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n } else // Otherwise, preserve the offset of the original date.\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n // Perform time manipulation in milliseconds rather than on the original time fields to account for DST.\n // For example, adding one hour during a DST transition may result in the hour field staying the same or\n // skipping an hour. This results in the offset field changing value instead of the specified field.\n ms += duration.milliseconds || 0;\n ms += (duration.seconds || 0) * 1000;\n ms += (duration.minutes || 0) * 60000;\n ms += (duration.hours || 0) * 3600000;\n let res = (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(res, dateTime.calendar);\n}\nfunction $735220c2d4774dd3$export$6814caac34ca03c7(dateTime, duration) {\n return $735220c2d4774dd3$export$96b1d28349274637(dateTime, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));\n}\nfunction $735220c2d4774dd3$export$9a297d111fc86b79(dateTime, field, amount, options) {\n // For date fields, we want the time to remain consistent and the UTC offset to potentially change to account for DST changes.\n // For time fields, we want the time to change by the amount given. This may result in the hour field staying the same, but the UTC\n // offset changing in the case of a backward DST transition, or skipping an hour in the case of a forward DST transition.\n switch(field){\n case 'hour':\n {\n let min = 0;\n let max = 23;\n if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {\n let isPM = dateTime.hour >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n // The minimum and maximum hour may be affected by daylight saving time.\n // For example, it might jump forward at midnight, and skip 1am.\n // Or it might end at midnight and repeat the 11pm hour. To handle this, we get\n // the possible absolute times for the min and max, and find the maximum range\n // that is within the current day.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let minDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: min\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let minAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === minDate.day)[0];\n let maxDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {\n hour: max\n }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let maxAbsolute = [\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'earlier'),\n (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, 'later')\n ].filter((ms)=>(0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone).day === maxDate.day).pop();\n // Since hours may repeat, we need to operate on the absolute time in milliseconds.\n // This is done in hours from the Unix epoch so that cycleValue works correctly,\n // and then converted back to milliseconds.\n let ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;\n let hours = Math.floor(ms / $735220c2d4774dd3$var$ONE_HOUR);\n let remainder = ms % $735220c2d4774dd3$var$ONE_HOUR;\n ms = $735220c2d4774dd3$var$cycleValue(hours, amount, Math.floor(minAbsolute / $735220c2d4774dd3$var$ONE_HOUR), Math.floor(maxAbsolute / $735220c2d4774dd3$var$ONE_HOUR), options === null || options === void 0 ? void 0 : options.round) * $735220c2d4774dd3$var$ONE_HOUR + remainder;\n // Now compute the new timezone offset, and convert the absolute time back to local time.\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n case 'minute':\n case 'second':\n case 'millisecond':\n // @ts-ignore\n return $735220c2d4774dd3$export$dd02b3e0007dfe28(dateTime, field, amount, options);\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n {\n let res = $735220c2d4774dd3$export$d52ced6badfb9a4c((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), field, amount, options);\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n }\n default:\n throw new Error('Unsupported field ' + field);\n }\n}\nfunction $735220c2d4774dd3$export$31b5430eb18be4f8(dateTime, fields, disambiguation) {\n // Set the date/time fields, and recompute the UTC offset to account for DST changes.\n // We also need to validate by converting back to a local time in case hours are skipped during forward DST transitions.\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);\n let res = $735220c2d4774dd3$export$e5d5e1c1822b6e56($735220c2d4774dd3$export$adaa4cf7ef1b65be(plainDateTime, fields), fields);\n // If the resulting plain date time values are equal, return the original time.\n // We don't want to change the offset when setting the time to the same value.\n if (res.compare(plainDateTime) === 0) return dateTime;\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);\n}\n\n\nexport {$735220c2d4774dd3$export$e16d8520af44a096 as add, $735220c2d4774dd3$export$c4e2ecac49351ef2 as constrain, $735220c2d4774dd3$export$3e2544e88a25bff8 as invertDuration, $735220c2d4774dd3$export$4e2d2ead65e5f7e3 as subtract, $735220c2d4774dd3$export$adaa4cf7ef1b65be as set, $735220c2d4774dd3$export$e5d5e1c1822b6e56 as setTime, $735220c2d4774dd3$export$7555de1e070510cb as constrainTime, $735220c2d4774dd3$export$7ed87b6bc2506470 as addTime, $735220c2d4774dd3$export$fe34d3a381cd7501 as subtractTime, $735220c2d4774dd3$export$d52ced6badfb9a4c as cycleDate, $735220c2d4774dd3$export$dd02b3e0007dfe28 as cycleTime, $735220c2d4774dd3$export$96b1d28349274637 as addZoned, $735220c2d4774dd3$export$6814caac34ca03c7 as subtractZoned, $735220c2d4774dd3$export$9a297d111fc86b79 as cycleZoned, $735220c2d4774dd3$export$31b5430eb18be4f8 as setZoned};\n//# sourceMappingURL=manipulation.module.js.map\n","import {fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDate as $11d87f3f76e88657$export$93522d1a439f3617} from \"./conversion.mjs\";\nimport {weekStartData as $2fe286d2fb449abb$export$7a5acbd77d414bd9} from \"./weekStartData.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $14e0f24ef4ac5c92$export$ea39ec197993aef0(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$5841f9eb9773f25f(a, b) {\n b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a.calendar);\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$91b62ebf2ba703ee(a, b) {\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\nfunction $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2(a, b) {\n a = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a);\n b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year && a.month === b.month;\n}\nfunction $14e0f24ef4ac5c92$export$ea840f5a6dda8147(a, b) {\n a = $14e0f24ef4ac5c92$export$f91e89d3d0406102(a);\n b = $14e0f24ef4ac5c92$export$f91e89d3d0406102(b);\n return a.calendar.identifier === b.calendar.identifier && a.era === b.era && a.year === b.year;\n}\nfunction $14e0f24ef4ac5c92$export$629b0a497aa65267(date, timeZone) {\n return $14e0f24ef4ac5c92$export$ea39ec197993aef0(date, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1 - $14e0f24ef4ac5c92$var$getWeekStart(locale)) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n return dayOfWeek;\n}\nfunction $14e0f24ef4ac5c92$export$461939dd4422153(timeZone) {\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(Date.now(), timeZone);\n}\nfunction $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone) {\n return (0, $11d87f3f76e88657$export$93522d1a439f3617)($14e0f24ef4ac5c92$export$461939dd4422153(timeZone));\n}\nfunction $14e0f24ef4ac5c92$export$68781ddf31c0090f(a, b) {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\nfunction $14e0f24ef4ac5c92$export$c19a80a9721b80f6(a, b) {\n return $14e0f24ef4ac5c92$var$timeToMs(a) - $14e0f24ef4ac5c92$var$timeToMs(b);\n}\nfunction $14e0f24ef4ac5c92$var$timeToMs(a) {\n return a.hour * 3600000 + a.minute * 60000 + a.second * 1000 + a.millisecond;\n}\nfunction $14e0f24ef4ac5c92$export$126c91c941de7e(a, timeZone) {\n let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(a, timeZone);\n let tomorrow = a.add({\n days: 1\n });\n let tomorrowMs = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\nlet $14e0f24ef4ac5c92$var$localTimeZone = null;\nfunction $14e0f24ef4ac5c92$export$aa8b41735afcabd2() {\n // TODO: invalidate this somehow?\n if ($14e0f24ef4ac5c92$var$localTimeZone == null) $14e0f24ef4ac5c92$var$localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n return $14e0f24ef4ac5c92$var$localTimeZone;\n}\nfunction $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date) {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({\n days: date.day - 1\n });\n}\nfunction $14e0f24ef4ac5c92$export$a2258d9c4118825c(date) {\n return date.add({\n days: date.calendar.getDaysInMonth(date) - date.day\n });\n}\nfunction $14e0f24ef4ac5c92$export$f91e89d3d0406102(date) {\n return $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date.subtract({\n months: date.month - 1\n }));\n}\nfunction $14e0f24ef4ac5c92$export$8b7aa55c66d5569e(date) {\n return $14e0f24ef4ac5c92$export$a2258d9c4118825c(date.add({\n months: date.calendar.getMonthsInYear(date) - date.month\n }));\n}\nfunction $14e0f24ef4ac5c92$export$5412ac11713b72ad(date) {\n if (date.calendar.getMinimumMonthInYear) return date.calendar.getMinimumMonthInYear(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$b2f4953d301981d5(date) {\n if (date.calendar.getMinimumDayInMonth) return date.calendar.getMinimumDayInMonth(date);\n return 1;\n}\nfunction $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale) {\n let dayOfWeek = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale);\n return date.subtract({\n days: dayOfWeek\n });\n}\nfunction $14e0f24ef4ac5c92$export$ef8b6d9133084f4e(date, locale) {\n return $14e0f24ef4ac5c92$export$42c81a444fbfb5d4(date, locale).add({\n days: 6\n });\n}\nconst $14e0f24ef4ac5c92$var$cachedRegions = new Map();\nfunction $14e0f24ef4ac5c92$var$getRegion(locale) {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = $14e0f24ef4ac5c92$var$cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n if (region) $14e0f24ef4ac5c92$var$cachedRegions.set(locale, region);\n }\n return region;\n }\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? undefined : part;\n}\nfunction $14e0f24ef4ac5c92$var$getWeekStart(locale) {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n return region ? (0, $2fe286d2fb449abb$export$7a5acbd77d414bd9)[region] || 0 : 0;\n}\nfunction $14e0f24ef4ac5c92$export$ccc1b2479e7dd654(date, locale) {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil(($14e0f24ef4ac5c92$export$2061056d06d7cdf7($14e0f24ef4ac5c92$export$a5a3b454ada2268e(date), locale) + days) / 7);\n}\nfunction $14e0f24ef4ac5c92$export$5c333a116e949cdd(a, b) {\n if (a && b) return a.compare(b) <= 0 ? a : b;\n return a || b;\n}\nfunction $14e0f24ef4ac5c92$export$a75f2bff57811055(a, b) {\n if (a && b) return a.compare(b) >= 0 ? a : b;\n return a || b;\n}\nconst $14e0f24ef4ac5c92$var$WEEKEND_DATA = {\n AF: [\n 4,\n 5\n ],\n AE: [\n 5,\n 6\n ],\n BH: [\n 5,\n 6\n ],\n DZ: [\n 5,\n 6\n ],\n EG: [\n 5,\n 6\n ],\n IL: [\n 5,\n 6\n ],\n IQ: [\n 5,\n 6\n ],\n IR: [\n 5,\n 5\n ],\n JO: [\n 5,\n 6\n ],\n KW: [\n 5,\n 6\n ],\n LY: [\n 5,\n 6\n ],\n OM: [\n 5,\n 6\n ],\n QA: [\n 5,\n 6\n ],\n SA: [\n 5,\n 6\n ],\n SD: [\n 5,\n 6\n ],\n SY: [\n 5,\n 6\n ],\n YE: [\n 5,\n 6\n ]\n};\nfunction $14e0f24ef4ac5c92$export$618d60ea299da42(date, locale) {\n let julian = date.calendar.toJulianDay(date);\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) dayOfWeek += 7;\n let region = $14e0f24ef4ac5c92$var$getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = $14e0f24ef4ac5c92$var$WEEKEND_DATA[region] || [\n 6,\n 0\n ];\n return dayOfWeek === start || dayOfWeek === end;\n}\nfunction $14e0f24ef4ac5c92$export$ee9d87258e1d19ed(date, locale) {\n return !$14e0f24ef4ac5c92$export$618d60ea299da42(date, locale);\n}\n\n\nexport {$14e0f24ef4ac5c92$export$ea39ec197993aef0 as isSameDay, $14e0f24ef4ac5c92$export$a18c89cbd24170ff as isSameMonth, $14e0f24ef4ac5c92$export$a5a3b454ada2268e as startOfMonth, $14e0f24ef4ac5c92$export$5841f9eb9773f25f as isSameYear, $14e0f24ef4ac5c92$export$f91e89d3d0406102 as startOfYear, $14e0f24ef4ac5c92$export$91b62ebf2ba703ee as isEqualDay, $14e0f24ef4ac5c92$export$5a8da0c44a3afdf2 as isEqualMonth, $14e0f24ef4ac5c92$export$ea840f5a6dda8147 as isEqualYear, $14e0f24ef4ac5c92$export$629b0a497aa65267 as isToday, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3 as today, $14e0f24ef4ac5c92$export$2061056d06d7cdf7 as getDayOfWeek, $14e0f24ef4ac5c92$export$461939dd4422153 as now, $14e0f24ef4ac5c92$export$68781ddf31c0090f as compareDate, $14e0f24ef4ac5c92$export$c19a80a9721b80f6 as compareTime, $14e0f24ef4ac5c92$export$126c91c941de7e as getHoursInDay, $14e0f24ef4ac5c92$export$aa8b41735afcabd2 as getLocalTimeZone, $14e0f24ef4ac5c92$export$a2258d9c4118825c as endOfMonth, $14e0f24ef4ac5c92$export$8b7aa55c66d5569e as endOfYear, $14e0f24ef4ac5c92$export$5412ac11713b72ad as getMinimumMonthInYear, $14e0f24ef4ac5c92$export$b2f4953d301981d5 as getMinimumDayInMonth, $14e0f24ef4ac5c92$export$42c81a444fbfb5d4 as startOfWeek, $14e0f24ef4ac5c92$export$ef8b6d9133084f4e as endOfWeek, $14e0f24ef4ac5c92$export$ccc1b2479e7dd654 as getWeeksInMonth, $14e0f24ef4ac5c92$export$5c333a116e949cdd as minDate, $14e0f24ef4ac5c92$export$a75f2bff57811055 as maxDate, $14e0f24ef4ac5c92$export$618d60ea299da42 as isWeekend, $14e0f24ef4ac5c92$export$ee9d87258e1d19ed as isWeekday};\n//# sourceMappingURL=queries.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {\n return amount - numerator * Math.floor(amount / numerator);\n}\nfunction $2b4dce13dd5a17fa$export$784d13d8ee351f07(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.era, date.year, date.month, date.day);\n else return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.calendar, date.year, date.month, date.day);\n}\nfunction $2b4dce13dd5a17fa$export$27fa0172ae2644b3(date) {\n if (date.era) return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n else return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.year, date.month, date.day, date.hour, date.minute, date.second);\n}\n\n\nexport {$2b4dce13dd5a17fa$export$842a2cf37af977e1 as mod, $2b4dce13dd5a17fa$export$784d13d8ee351f07 as copy, $2b4dce13dd5a17fa$export$27fa0172ae2644b3 as copyDateTime};\n//# sourceMappingURL=utils.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $3b62074eb05584b2$var$EPOCH = 1721426; // 001/01/03 Julian C.E.\nfunction $3b62074eb05584b2$export$f297eb839006d339(era, year, month, day) {\n year = $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year);\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) monthOffset = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) monthOffset = -1;\n return $3b62074eb05584b2$var$EPOCH - 1 + 365 * y1 + Math.floor(y1 / 4) - Math.floor(y1 / 100) + Math.floor(y1 / 400) + Math.floor((367 * month - 362) / 12 + monthOffset + day);\n}\nfunction $3b62074eb05584b2$export$553d7fa8e3805fc0(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year) {\n return era === 'BC' ? 1 - year : year;\n}\nfunction $3b62074eb05584b2$export$4475b7e617eb123c(year) {\n let era = 'AD';\n if (year <= 0) {\n era = 'BC';\n year = 1 - year;\n }\n return [\n era,\n year\n ];\n}\nconst $3b62074eb05584b2$var$daysInMonth = {\n standard: [\n 31,\n 28,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ],\n leapyear: [\n 31,\n 29,\n 31,\n 30,\n 31,\n 30,\n 31,\n 31,\n 30,\n 31,\n 30,\n 31\n ]\n};\nclass $3b62074eb05584b2$export$80ee6245ec4f29ec {\n fromJulianDay(jd) {\n let jd0 = jd;\n let depoch = jd0 - $3b62074eb05584b2$var$EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let [era, year] = $3b62074eb05584b2$export$4475b7e617eb123c(extendedYear);\n let yearDay = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, 1, 1);\n let leapAdj = 2;\n if (jd0 < $3b62074eb05584b2$export$f297eb839006d339(era, year, 3, 1)) leapAdj = 0;\n else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) leapAdj = 1;\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, month, day);\n }\n toJulianDay(date) {\n return $3b62074eb05584b2$export$f297eb839006d339(date.era, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $3b62074eb05584b2$var$daysInMonth[$3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 'leapyear' : 'standard'][date.month - 1];\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date) {\n return 12;\n }\n getDaysInYear(date) {\n return $3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 366 : 365;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date) {\n return 9999;\n }\n getEras() {\n return [\n 'BC',\n 'AD'\n ];\n }\n isInverseEra(date) {\n return date.era === 'BC';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BC' ? 'AD' : 'BC';\n date.year = 1 - date.year;\n }\n }\n constructor(){\n this.identifier = 'gregory';\n }\n}\n\n\nexport {$3b62074eb05584b2$export$f297eb839006d339 as gregorianToJulianDay, $3b62074eb05584b2$export$c36e0ecb2d4fa69d as getExtendedYear, $3b62074eb05584b2$export$553d7fa8e3805fc0 as isLeapYear, $3b62074eb05584b2$export$4475b7e617eb123c as fromExtendedYear, $3b62074eb05584b2$export$80ee6245ec4f29ec as GregorianCalendar};\n//# sourceMappingURL=GregorianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {epochFromDate as $11d87f3f76e88657$export$bd4fb2bc8bb06fb, fromAbsolute as $11d87f3f76e88657$export$1b96692a1ba042ac, possibleAbsolutes as $11d87f3f76e88657$export$136f38efe7caf549, toAbsolute as $11d87f3f76e88657$export$5107c82f94518f5c, toCalendar as $11d87f3f76e88657$export$b4a036af3fc0b032, toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toTimeZone as $11d87f3f76e88657$export$538b00033cc11c75} from \"./conversion.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2} from \"./queries.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\nconst $fae977aafc393c5c$var$TIME_RE = /^(\\d{2})(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$DATE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst $fae977aafc393c5c$var$DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst $fae977aafc393c5c$var$ZONED_DATE_TIME_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:([+-]\\d{2})(?::?(\\d{2}))?)?\\[(.*?)\\]$/;\nconst $fae977aafc393c5c$var$ABSOLUTE_RE = /^(\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:(?:([+-]\\d{2})(?::?(\\d{2}))?)|Z)$/;\nconst $fae977aafc393c5c$var$DATE_TIME_DURATION_RE = /^((?<negative>-)|\\+)?P((?<years>\\d*)Y)?((?<months>\\d*)M)?((?<weeks>\\d*)W)?((?<days>\\d*)D)?((?<time>T)((?<hours>\\d*[.,]?\\d{1,9})H)?((?<minutes>\\d*[.,]?\\d{1,9})M)?((?<seconds>\\d*[.,]?\\d{1,9})S)?)?$/;\nconst $fae977aafc393c5c$var$requiredDurationTimeGroups = [\n 'hours',\n 'minutes',\n 'seconds'\n];\nconst $fae977aafc393c5c$var$requiredDurationGroups = [\n 'years',\n 'months',\n 'weeks',\n 'days',\n ...$fae977aafc393c5c$var$requiredDurationTimeGroups\n];\nfunction $fae977aafc393c5c$export$c9698ec7f05a07e1(value) {\n let m = value.match($fae977aafc393c5c$var$TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 time string: ' + value);\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 23), m[2] ? $fae977aafc393c5c$var$parseNumber(m[2], 0, 59) : 0, m[3] ? $fae977aafc393c5c$var$parseNumber(m[3], 0, 59) : 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, Infinity) * 1000 : 0);\n}\nfunction $fae977aafc393c5c$export$6b862160d295c8e(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$588937bcd60ade55(value) {\n let m = value.match($fae977aafc393c5c$var$DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date;\n}\nfunction $fae977aafc393c5c$export$fd7893f06e92a6a4(value, disambiguation) {\n let m = value.match($fae977aafc393c5c$var$ZONED_DATE_TIME_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[10], 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(date);\n let ms;\n if (m[8]) {\n var _m_;\n date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(date) - date.offset;\n // Validate offset against parsed date.\n let absolutes = (0, $11d87f3f76e88657$export$136f38efe7caf549)(plainDateTime, date.timeZone);\n if (!absolutes.includes(ms)) throw new Error(`Offset ${$fae977aafc393c5c$var$offsetToString(date.offset)} is invalid for ${$fae977aafc393c5c$export$4223de14708adc63(date)} in ${date.timeZone}`);\n } else // Convert to absolute and back to fix invalid times due to DST.\n ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)((0, $11d87f3f76e88657$export$b21e0b124e224484)(plainDateTime), date.timeZone, disambiguation);\n return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, date.timeZone);\n}\nfunction $fae977aafc393c5c$export$5adfdab05168c219(value, timeZone) {\n let m = value.match($fae977aafc393c5c$var$ABSOLUTE_RE);\n if (!m) throw new Error('Invalid ISO 8601 date time string: ' + value);\n let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)($fae977aafc393c5c$var$parseNumber(m[1], 1, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, timeZone, 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1000 : 0);\n date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n var _m_;\n if (m[8]) date.offset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23) * 3600000 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : '0', 0, 59) * 60000;\n return (0, $11d87f3f76e88657$export$538b00033cc11c75)(date, timeZone);\n}\nfunction $fae977aafc393c5c$export$8e384432362ed0f0(value) {\n return $fae977aafc393c5c$export$5adfdab05168c219(value, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $fae977aafc393c5c$var$parseNumber(value, min, max) {\n let val = Number(value);\n if (val < min || val > max) throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);\n return val;\n}\nfunction $fae977aafc393c5c$export$f59dee82248f5ad4(time) {\n return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}:${String(time.second).padStart(2, '0')}${time.millisecond ? String(time.millisecond / 1000).slice(1) : ''}`;\n}\nfunction $fae977aafc393c5c$export$60dfd74aa96791bd(date) {\n let gregorianDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n return `${String(gregorianDate.year).padStart(4, '0')}-${String(gregorianDate.month).padStart(2, '0')}-${String(gregorianDate.day).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$4223de14708adc63(date) {\n // @ts-ignore\n return `${$fae977aafc393c5c$export$60dfd74aa96791bd(date)}T${$fae977aafc393c5c$export$f59dee82248f5ad4(date)}`;\n}\nfunction $fae977aafc393c5c$var$offsetToString(offset) {\n let sign = Math.sign(offset) < 0 ? '-' : '+';\n offset = Math.abs(offset);\n let offsetHours = Math.floor(offset / 3600000);\n let offsetMinutes = offset % 3600000 / 60000;\n return `${sign}${String(offsetHours).padStart(2, '0')}:${String(offsetMinutes).padStart(2, '0')}`;\n}\nfunction $fae977aafc393c5c$export$bf79f1ebf4b18792(date) {\n return `${$fae977aafc393c5c$export$4223de14708adc63(date)}${$fae977aafc393c5c$var$offsetToString(date.offset)}[${date.timeZone}]`;\n}\nfunction $fae977aafc393c5c$export$ecae829bb3747ea6(value) {\n var _match_groups, _match_groups1, _match_groups2, _match_groups3, _match_groups4, _match_groups5, _match_groups6, _match_groups7, _match_groups8;\n const match = value.match($fae977aafc393c5c$var$DATE_TIME_DURATION_RE);\n if (!match) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const parseDurationGroup = (group, isNegative, min, max)=>{\n if (!group) return 0;\n try {\n const sign = isNegative ? -1 : 1;\n return sign * $fae977aafc393c5c$var$parseNumber(group.replace(',', '.'), min, max);\n } catch {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n };\n const isNegative = !!((_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups.negative);\n const hasRequiredGroups = $fae977aafc393c5c$var$requiredDurationGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n const durationStringIncludesTime = (_match_groups1 = match.groups) === null || _match_groups1 === void 0 ? void 0 : _match_groups1.time;\n if (durationStringIncludesTime) {\n const hasRequiredDurationTimeGroups = $fae977aafc393c5c$var$requiredDurationTimeGroups.some((group)=>{\n var _match_groups;\n return (_match_groups = match.groups) === null || _match_groups === void 0 ? void 0 : _match_groups[group];\n });\n if (!hasRequiredDurationTimeGroups) throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n const duration = {\n years: parseDurationGroup((_match_groups2 = match.groups) === null || _match_groups2 === void 0 ? void 0 : _match_groups2.years, isNegative, 0, 9999),\n months: parseDurationGroup((_match_groups3 = match.groups) === null || _match_groups3 === void 0 ? void 0 : _match_groups3.months, isNegative, 0, 12),\n weeks: parseDurationGroup((_match_groups4 = match.groups) === null || _match_groups4 === void 0 ? void 0 : _match_groups4.weeks, isNegative, 0, Infinity),\n days: parseDurationGroup((_match_groups5 = match.groups) === null || _match_groups5 === void 0 ? void 0 : _match_groups5.days, isNegative, 0, 31),\n hours: parseDurationGroup((_match_groups6 = match.groups) === null || _match_groups6 === void 0 ? void 0 : _match_groups6.hours, isNegative, 0, 23),\n minutes: parseDurationGroup((_match_groups7 = match.groups) === null || _match_groups7 === void 0 ? void 0 : _match_groups7.minutes, isNegative, 0, 59),\n seconds: parseDurationGroup((_match_groups8 = match.groups) === null || _match_groups8 === void 0 ? void 0 : _match_groups8.seconds, isNegative, 0, 59)\n };\n if (duration.hours !== undefined && duration.hours % 1 !== 0 && (duration.minutes || duration.seconds)) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n if (duration.minutes !== undefined && duration.minutes % 1 !== 0 && duration.seconds) throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n return duration;\n}\n\n\nexport {$fae977aafc393c5c$export$c9698ec7f05a07e1 as parseTime, $fae977aafc393c5c$export$6b862160d295c8e as parseDate, $fae977aafc393c5c$export$588937bcd60ade55 as parseDateTime, $fae977aafc393c5c$export$fd7893f06e92a6a4 as parseZonedDateTime, $fae977aafc393c5c$export$4223de14708adc63 as dateTimeToString, $fae977aafc393c5c$export$5adfdab05168c219 as parseAbsolute, $fae977aafc393c5c$export$8e384432362ed0f0 as parseAbsoluteToLocal, $fae977aafc393c5c$export$f59dee82248f5ad4 as timeToString, $fae977aafc393c5c$export$60dfd74aa96791bd as dateToString, $fae977aafc393c5c$export$bf79f1ebf4b18792 as zonedDateTimeToString, $fae977aafc393c5c$export$ecae829bb3747ea6 as parseDuration};\n//# sourceMappingURL=string.module.js.map\n","import { _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nexport function _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n","export function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n","import {add as $735220c2d4774dd3$export$e16d8520af44a096, addTime as $735220c2d4774dd3$export$7ed87b6bc2506470, addZoned as $735220c2d4774dd3$export$96b1d28349274637, constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2, constrainTime as $735220c2d4774dd3$export$7555de1e070510cb, cycleDate as $735220c2d4774dd3$export$d52ced6badfb9a4c, cycleTime as $735220c2d4774dd3$export$dd02b3e0007dfe28, cycleZoned as $735220c2d4774dd3$export$9a297d111fc86b79, set as $735220c2d4774dd3$export$adaa4cf7ef1b65be, setTime as $735220c2d4774dd3$export$e5d5e1c1822b6e56, setZoned as $735220c2d4774dd3$export$31b5430eb18be4f8, subtract as $735220c2d4774dd3$export$4e2d2ead65e5f7e3, subtractTime as $735220c2d4774dd3$export$fe34d3a381cd7501, subtractZoned as $735220c2d4774dd3$export$6814caac34ca03c7} from \"./manipulation.mjs\";\nimport {compareDate as $14e0f24ef4ac5c92$export$68781ddf31c0090f, compareTime as $14e0f24ef4ac5c92$export$c19a80a9721b80f6} from \"./queries.mjs\";\nimport {dateTimeToString as $fae977aafc393c5c$export$4223de14708adc63, dateToString as $fae977aafc393c5c$export$60dfd74aa96791bd, timeToString as $fae977aafc393c5c$export$f59dee82248f5ad4, zonedDateTimeToString as $fae977aafc393c5c$export$bf79f1ebf4b18792} from \"./string.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {toCalendarDateTime as $11d87f3f76e88657$export$b21e0b124e224484, toDate as $11d87f3f76e88657$export$e67a095c620b86fe, toZoned as $11d87f3f76e88657$export$84c95a83c799e074, zonedToDate as $11d87f3f76e88657$export$83aac07b4c37b25} from \"./conversion.mjs\";\nimport {_ as $aksy1$_} from \"@swc/helpers/_/_class_private_field_init\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $35ea8db9cb2ccb90$var$shiftArgs(args) {\n let calendar = typeof args[0] === 'object' ? args.shift() : new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n let era;\n if (typeof args[0] === 'string') era = args.shift();\n else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n return [\n calendar,\n era,\n year,\n month,\n day\n ];\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n// If that behavior is desired, use the AnyCalendarDate interface instead.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$99faa760c7908e4f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.era, this.year, this.month, this.day);\n else return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.year, this.month, this.day);\n }\n /** Returns a new `CalendarDate` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)(this, fields);\n }\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */ toDate(timeZone) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$60dfd74aa96791bd)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type1 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$680ea196effce5f {\n /** Returns a copy of this time. */ copy() {\n return new $35ea8db9cb2ccb90$export$680ea196effce5f(this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `Time` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$7ed87b6bc2506470)(this, duration);\n }\n /** Returns a new `Time` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$fe34d3a381cd7501)(this, duration);\n }\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields);\n }\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n /** Converts the time to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$f59dee82248f5ad4)(this);\n }\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */ compare(b) {\n return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, b);\n }\n constructor(hour = 0, minute = 0, second = 0, millisecond = 0){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type1, {\n writable: true,\n value: void 0\n });\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n (0, $735220c2d4774dd3$export$7555de1e070510cb)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type2 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$ca871e8dbb80966f {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `CalendarDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);\n }\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields) {\n return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)((0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields), fields);\n }\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n switch(field){\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);\n default:\n return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);\n }\n }\n /** Converts the date to a native JavaScript Date object in the given time zone. */ toDate(timeZone, disambiguation) {\n return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone, disambiguation);\n }\n /** Converts the date to an ISO 8601 formatted string. */ toString() {\n return (0, $fae977aafc393c5c$export$4223de14708adc63)(this);\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n let res = (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);\n if (res === 0) return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, (0, $11d87f3f76e88657$export$b21e0b124e224484)(b));\n return res;\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type2, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\nvar // This prevents TypeScript from allowing other types with the same fields to match.\n// @ts-ignore\n$35ea8db9cb2ccb90$var$_type3 = /*#__PURE__*/ new WeakMap();\nclass $35ea8db9cb2ccb90$export$d3b7288e7994edea {\n /** Returns a copy of this date. */ copy() {\n if (this.era) return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n else return new $35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n /** Returns a new `ZonedDateTime` with the given duration added to it. */ add(duration) {\n return (0, $735220c2d4774dd3$export$96b1d28349274637)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */ subtract(duration) {\n return (0, $735220c2d4774dd3$export$6814caac34ca03c7)(this, duration);\n }\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */ set(fields, disambiguation) {\n return (0, $735220c2d4774dd3$export$31b5430eb18be4f8)(this, fields, disambiguation);\n }\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */ cycle(field, amount, options) {\n return (0, $735220c2d4774dd3$export$9a297d111fc86b79)(this, field, amount, options);\n }\n /** Converts the date to a native JavaScript Date object. */ toDate() {\n return (0, $11d87f3f76e88657$export$83aac07b4c37b25)(this);\n }\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */ toString() {\n return (0, $fae977aafc393c5c$export$bf79f1ebf4b18792)(this);\n }\n /** Converts the date to an ISO 8601 formatted string in UTC. */ toAbsoluteString() {\n return this.toDate().toISOString();\n }\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */ compare(b) {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - (0, $11d87f3f76e88657$export$84c95a83c799e074)(b, this.timeZone).toDate().getTime();\n }\n constructor(...args){\n (0, $aksy1$_)(this, $35ea8db9cb2ccb90$var$_type3, {\n writable: true,\n value: void 0\n });\n let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);\n }\n}\n\n\nexport {$35ea8db9cb2ccb90$export$99faa760c7908e4f as CalendarDate, $35ea8db9cb2ccb90$export$680ea196effce5f as Time, $35ea8db9cb2ccb90$export$ca871e8dbb80966f as CalendarDateTime, $35ea8db9cb2ccb90$export$d3b7288e7994edea as ZonedDateTime};\n//# sourceMappingURL=CalendarDate.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f, CalendarDateTime as $35ea8db9cb2ccb90$export$ca871e8dbb80966f, Time as $35ea8db9cb2ccb90$export$680ea196effce5f, ZonedDateTime as $35ea8db9cb2ccb90$export$d3b7288e7994edea} from \"./CalendarDate.mjs\";\nimport {constrain as $735220c2d4774dd3$export$c4e2ecac49351ef2} from \"./manipulation.mjs\";\nimport {getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {getLocalTimeZone as $14e0f24ef4ac5c92$export$aa8b41735afcabd2} from \"./queries.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n\n\nfunction $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) {\n date = $11d87f3f76e88657$export$b4a036af3fc0b032(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n return $11d87f3f76e88657$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\nfunction $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\nfunction $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone) {\n // Fast path for UTC.\n if (timeZone === 'UTC') return 0;\n // Fast path: for local timezone after 1970, use native Date.\n if (ms > 0 && timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)()) return new Date(ms).getTimezoneOffset() * -60000;\n let { year: year, month: month, day: day, hour: hour, minute: minute, second: second } = $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone);\n let utc = $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\nconst $11d87f3f76e88657$var$formattersByTimeZone = new Map();\nfunction $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone) {\n let formatter = $11d87f3f76e88657$var$formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone: timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n $11d87f3f76e88657$var$formattersByTimeZone.set(timeZone, formatter);\n }\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts = {};\n for (let part of parts)if (part.type !== 'literal') namedParts[part.type] = part.value;\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour,\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\nconst $11d87f3f76e88657$var$DAYMILLIS = 86400000;\nfunction $11d87f3f76e88657$export$136f38efe7caf549(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date);\n let earlier = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let later = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n return $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later);\n}\nfunction $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later) {\n let found = earlier === later ? [\n earlier\n ] : [\n earlier,\n later\n ];\n return found.filter((absolute)=>$11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute));\n}\nfunction $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute) {\n let parts = $11d87f3f76e88657$var$getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;\n}\nfunction $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation = 'compatible') {\n let dateTime = $11d87f3f76e88657$export$b21e0b124e224484(date);\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') return $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)() && disambiguation === 'compatible') {\n dateTime = $11d87f3f76e88657$export$b4a036af3fc0b032(dateTime, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);\n let offsetBefore = $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let offsetAfter = $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);\n let valid = $11d87f3f76e88657$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n if (valid.length === 1) return valid[0];\n if (valid.length > 1) switch(disambiguation){\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n switch(disambiguation){\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\nfunction $11d87f3f76e88657$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = 'compatible') {\n return new Date($11d87f3f76e88657$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));\n}\nfunction $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone) {\n let offset = $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n return new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$e57ff100d91bd4b9(date, timeZone) {\n return $11d87f3f76e88657$export$1b96692a1ba042ac(date.getTime(), timeZone);\n}\nfunction $11d87f3f76e88657$export$d7f92bcd3596b086(date) {\n return $11d87f3f76e88657$export$e57ff100d91bd4b9(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\nfunction $11d87f3f76e88657$export$93522d1a439f3617(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\nfunction $11d87f3f76e88657$export$6f4d78149f3f53ac(date) {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\nfunction $11d87f3f76e88657$export$4d0393e732857be5(date) {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\nfunction $11d87f3f76e88657$export$b21e0b124e224484(date, time) {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = date);\n else if ('hour' in date && !time) return date;\n if (time) ({ hour: hour, minute: minute, second: second, millisecond: millisecond } = time);\n return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);\n}\nfunction $11d87f3f76e88657$export$d33f79e3ffc3dc83(dateTime) {\n return new (0, $35ea8db9cb2ccb90$export$680ea196effce5f)(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\nfunction $11d87f3f76e88657$export$b4a036af3fc0b032(date, calendar) {\n if (date.calendar.identifier === calendar.identifier) return date;\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(copy);\n return copy;\n}\nfunction $11d87f3f76e88657$export$84c95a83c799e074(date, timeZone, disambiguation) {\n if (date instanceof (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)) {\n if (date.timeZone === timeZone) return date;\n return $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone);\n }\n let ms = $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation);\n return $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone);\n}\nfunction $11d87f3f76e88657$export$83aac07b4c37b25(date) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return new Date(ms);\n}\nfunction $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone) {\n let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;\n return $11d87f3f76e88657$export$b4a036af3fc0b032($11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone), date.calendar);\n}\nfunction $11d87f3f76e88657$export$d9b67bc93c097491(date) {\n return $11d87f3f76e88657$export$538b00033cc11c75(date, (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)());\n}\n\n\nexport {$11d87f3f76e88657$export$bd4fb2bc8bb06fb as epochFromDate, $11d87f3f76e88657$export$b4a036af3fc0b032 as toCalendar, $11d87f3f76e88657$export$59c99f3515d3493f as getTimeZoneOffset, $11d87f3f76e88657$export$136f38efe7caf549 as possibleAbsolutes, $11d87f3f76e88657$export$5107c82f94518f5c as toAbsolute, $11d87f3f76e88657$export$b21e0b124e224484 as toCalendarDateTime, $11d87f3f76e88657$export$e67a095c620b86fe as toDate, $11d87f3f76e88657$export$1b96692a1ba042ac as fromAbsolute, $11d87f3f76e88657$export$e57ff100d91bd4b9 as fromDate, $11d87f3f76e88657$export$d7f92bcd3596b086 as fromDateToLocal, $11d87f3f76e88657$export$93522d1a439f3617 as toCalendarDate, $11d87f3f76e88657$export$6f4d78149f3f53ac as toDateFields, $11d87f3f76e88657$export$4d0393e732857be5 as toTimeFields, $11d87f3f76e88657$export$d33f79e3ffc3dc83 as toTime, $11d87f3f76e88657$export$84c95a83c799e074 as toZoned, $11d87f3f76e88657$export$538b00033cc11c75 as toTimeZone, $11d87f3f76e88657$export$83aac07b4c37b25 as zonedToDate, $11d87f3f76e88657$export$d9b67bc93c097491 as toLocalTimeZone};\n//# sourceMappingURL=conversion.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $8d73d47422ca7302$var$BUDDHIST_ERA_START = -543;\nclass $8d73d47422ca7302$export$42d20a78301dee44 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let gregorianDate = super.fromJulianDay(jd);\n let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(gregorianDate.era, gregorianDate.year);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year - $8d73d47422ca7302$var$BUDDHIST_ERA_START, gregorianDate.month, gregorianDate.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($8d73d47422ca7302$var$toGregorian(date));\n }\n getEras() {\n return [\n 'BE'\n ];\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($8d73d47422ca7302$var$toGregorian(date));\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n this.identifier = 'buddhist';\n }\n}\nfunction $8d73d47422ca7302$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(date.year + $8d73d47422ca7302$var$BUDDHIST_ERA_START);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$8d73d47422ca7302$export$42d20a78301dee44 as BuddhistCalendar};\n//# sourceMappingURL=BuddhistCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $b956b2d7a6cf451f$var$ETHIOPIC_EPOCH = 1723856;\nconst $b956b2d7a6cf451f$var$COPTIC_EPOCH = 1824665;\n// The delta between Amete Alem 1 and Amete Mihret 1\n// AA 5501 = AM 1\nconst $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA = 5500;\nfunction $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, day) {\n return epoch // difference from Julian epoch to 1,1,1\n + 365 * year // number of days from years\n + Math.floor(year / 4) // extra day of leap year\n + 30 * (month - 1 // number of days from months (1 based)\n ) + day - 1 // number of days for present month (1 based)\n ;\n}\nfunction $b956b2d7a6cf451f$var$julianDayToCE(epoch, jd) {\n let year = Math.floor(4 * (jd - epoch) / 1461);\n let month = 1 + Math.floor((jd - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, 1, 1)) / 30);\n let day = jd + 1 - $b956b2d7a6cf451f$var$ceToJulianDay(epoch, year, month, 1);\n return [\n year,\n month,\n day\n ];\n}\nfunction $b956b2d7a6cf451f$var$getLeapDay(year) {\n return Math.floor(year % 4 / 3);\n}\nfunction $b956b2d7a6cf451f$var$getDaysInMonth(year, month) {\n // The Ethiopian and Coptic calendars have 13 months, 12 of 30 days each and\n // an intercalary month at the end of the year of 5 or 6 days, depending whether\n // the year is a leap year or not. The Leap Year follows the same rules as the\n // Julian Calendar so that the extra month always has six days in the year before\n // a Julian Leap Year.\n if (month % 13 !== 0) // not intercalary month\n return 30;\n else // intercalary month 5 days + possible leap day\n return $b956b2d7a6cf451f$var$getLeapDay(year) + 5;\n}\nclass $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n let era = 'AM';\n if (year <= 0) {\n era = 'AA';\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'AA') year -= $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n return $b956b2d7a6cf451f$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear() {\n return 13;\n }\n getDaysInYear(date) {\n return 365 + $b956b2d7a6cf451f$var$getLeapDay(date.year);\n }\n getYearsInEra(date) {\n // 9999-12-31 gregorian is 9992-20-02 ethiopic.\n // Round down to 9991 for the last full year.\n // AA 9999-01-01 ethiopic is 4506-09-30 gregorian.\n return date.era === 'AA' ? 9999 : 9991;\n }\n getEras() {\n return [\n 'AA',\n 'AM'\n ];\n }\n constructor(){\n this.identifier = 'ethiopic';\n }\n}\nclass $b956b2d7a6cf451f$export$d72e0c37005a4914 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$ETHIOPIC_EPOCH, jd);\n year += $b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, 'AA', year, month, day);\n }\n getEras() {\n return [\n 'AA'\n ];\n }\n getYearsInEra() {\n // 9999-13-04 ethioaa is the maximum date, which is equivalent to 4506-09-29 gregorian.\n return 9999;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'ethioaa' // also known as 'ethiopic-amete-alem' in ICU\n ;\n }\n}\nclass $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 extends $b956b2d7a6cf451f$export$26ba6eab5e20cd7d {\n fromJulianDay(jd) {\n let [year, month, day] = $b956b2d7a6cf451f$var$julianDayToCE($b956b2d7a6cf451f$var$COPTIC_EPOCH, jd);\n let era = 'CE';\n if (year <= 0) {\n era = 'BCE';\n year = 1 - year;\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, month, day);\n }\n toJulianDay(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$ceToJulianDay($b956b2d7a6cf451f$var$COPTIC_EPOCH, year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let year = date.year;\n if (date.era === 'BCE') year = 1 - year;\n return $b956b2d7a6cf451f$var$getDaysInMonth(year, date.month);\n }\n isInverseEra(date) {\n return date.era === 'BCE';\n }\n balanceDate(date) {\n if (date.year <= 0) {\n date.era = date.era === 'BCE' ? 'CE' : 'BCE';\n date.year = 1 - date.year;\n }\n }\n getEras() {\n return [\n 'BCE',\n 'CE'\n ];\n }\n getYearsInEra(date) {\n // 9999-12-30 gregorian is 9716-02-20 coptic.\n // Round down to 9715 for the last full year.\n // BCE 9999-01-01 coptic is BC 9716-06-15 gregorian.\n return date.era === 'BCE' ? 9999 : 9715;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'coptic';\n }\n}\n\n\nexport {$b956b2d7a6cf451f$export$26ba6eab5e20cd7d as EthiopicCalendar, $b956b2d7a6cf451f$export$d72e0c37005a4914 as EthiopicAmeteAlemCalendar, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1 as CopticCalendar};\n//# sourceMappingURL=EthiopicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $7c5f6fbf42389787$var$HEBREW_EPOCH = 347997;\n// Hebrew date calculations are performed in terms of days, hours, and\n// \"parts\" (or halakim), which are 1/1080 of an hour, or 3 1/3 seconds.\nconst $7c5f6fbf42389787$var$HOUR_PARTS = 1080;\nconst $7c5f6fbf42389787$var$DAY_PARTS = 24 * $7c5f6fbf42389787$var$HOUR_PARTS;\n// An approximate value for the length of a lunar month.\n// It is used to calculate the approximate year and month of a given\n// absolute date.\nconst $7c5f6fbf42389787$var$MONTH_DAYS = 29;\nconst $7c5f6fbf42389787$var$MONTH_FRACT = 12 * $7c5f6fbf42389787$var$HOUR_PARTS + 793;\nconst $7c5f6fbf42389787$var$MONTH_PARTS = $7c5f6fbf42389787$var$MONTH_DAYS * $7c5f6fbf42389787$var$DAY_PARTS + $7c5f6fbf42389787$var$MONTH_FRACT;\nfunction $7c5f6fbf42389787$var$isLeapYear(year) {\n return (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(year * 7 + 1, 19) < 7;\n}\n// Test for delay of start of new year and to avoid\n// Sunday, Wednesday, and Friday as start of the new year.\nfunction $7c5f6fbf42389787$var$hebrewDelay1(year) {\n let months = Math.floor((235 * year - 234) / 19);\n let parts = 12084 + 13753 * months;\n let day = months * 29 + Math.floor(parts / 25920);\n if ((0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(3 * (day + 1), 7) < 3) day += 1;\n return day;\n}\n// Check for delay in start of new year due to length of adjacent years\nfunction $7c5f6fbf42389787$var$hebrewDelay2(year) {\n let last = $7c5f6fbf42389787$var$hebrewDelay1(year - 1);\n let present = $7c5f6fbf42389787$var$hebrewDelay1(year);\n let next = $7c5f6fbf42389787$var$hebrewDelay1(year + 1);\n if (next - present === 356) return 2;\n if (present - last === 382) return 1;\n return 0;\n}\nfunction $7c5f6fbf42389787$var$startOfYear(year) {\n return $7c5f6fbf42389787$var$hebrewDelay1(year) + $7c5f6fbf42389787$var$hebrewDelay2(year);\n}\nfunction $7c5f6fbf42389787$var$getDaysInYear(year) {\n return $7c5f6fbf42389787$var$startOfYear(year + 1) - $7c5f6fbf42389787$var$startOfYear(year);\n}\nfunction $7c5f6fbf42389787$var$getYearType(year) {\n let yearLength = $7c5f6fbf42389787$var$getDaysInYear(year);\n if (yearLength > 380) yearLength -= 30; // Subtract length of leap month.\n switch(yearLength){\n case 353:\n return 0; // deficient\n case 354:\n return 1; // normal\n case 355:\n return 2; // complete\n }\n}\nfunction $7c5f6fbf42389787$var$getDaysInMonth(year, month) {\n // Normalize month numbers from 1 - 13, even on non-leap years\n if (month >= 6 && !$7c5f6fbf42389787$var$isLeapYear(year)) month++;\n // First of all, dispose of fixed-length 29 day months\n if (month === 4 || month === 7 || month === 9 || month === 11 || month === 13) return 29;\n let yearType = $7c5f6fbf42389787$var$getYearType(year);\n // If it's Heshvan, days depend on length of year\n if (month === 2) return yearType === 2 ? 30 : 29;\n // Similarly, Kislev varies with the length of year\n if (month === 3) return yearType === 0 ? 29 : 30;\n // Adar I only exists in leap years\n if (month === 6) return $7c5f6fbf42389787$var$isLeapYear(year) ? 30 : 0;\n return 30;\n}\nclass $7c5f6fbf42389787$export$ca405048b8fb5af {\n fromJulianDay(jd) {\n let d = jd - $7c5f6fbf42389787$var$HEBREW_EPOCH;\n let m = d * $7c5f6fbf42389787$var$DAY_PARTS / $7c5f6fbf42389787$var$MONTH_PARTS; // Months (approx)\n let year = Math.floor((19 * m + 234) / 235) + 1; // Years (approx)\n let ys = $7c5f6fbf42389787$var$startOfYear(year); // 1st day of year\n let dayOfYear = Math.floor(d - ys);\n // Because of the postponement rules, it's possible to guess wrong. Fix it.\n while(dayOfYear < 1){\n year--;\n ys = $7c5f6fbf42389787$var$startOfYear(year);\n dayOfYear = Math.floor(d - ys);\n }\n // Now figure out which month we're in, and the date within that month\n let month = 1;\n let monthStart = 0;\n while(monthStart < dayOfYear){\n monthStart += $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n month++;\n }\n month--;\n monthStart -= $7c5f6fbf42389787$var$getDaysInMonth(year, month);\n let day = dayOfYear - monthStart;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month, day);\n }\n toJulianDay(date) {\n let jd = $7c5f6fbf42389787$var$startOfYear(date.year);\n for(let month = 1; month < date.month; month++)jd += $7c5f6fbf42389787$var$getDaysInMonth(date.year, month);\n return jd + date.day + $7c5f6fbf42389787$var$HEBREW_EPOCH;\n }\n getDaysInMonth(date) {\n return $7c5f6fbf42389787$var$getDaysInMonth(date.year, date.month);\n }\n getMonthsInYear(date) {\n return $7c5f6fbf42389787$var$isLeapYear(date.year) ? 13 : 12;\n }\n getDaysInYear(date) {\n return $7c5f6fbf42389787$var$getDaysInYear(date.year);\n }\n getYearsInEra() {\n // 6239 gregorian\n return 9999;\n }\n getEras() {\n return [\n 'AM'\n ];\n }\n balanceYearMonth(date, previousDate) {\n // Keep date in the same month when switching between leap years and non leap years\n if (previousDate.year !== date.year) {\n if ($7c5f6fbf42389787$var$isLeapYear(previousDate.year) && !$7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month--;\n else if (!$7c5f6fbf42389787$var$isLeapYear(previousDate.year) && $7c5f6fbf42389787$var$isLeapYear(date.year) && previousDate.month > 6) date.month++;\n }\n }\n constructor(){\n this.identifier = 'hebrew';\n }\n}\n\n\nexport {$7c5f6fbf42389787$export$ca405048b8fb5af as HebrewCalendar};\n//# sourceMappingURL=HebrewCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec, gregorianToJulianDay as $3b62074eb05584b2$export$f297eb839006d339, isLeapYear as $3b62074eb05584b2$export$553d7fa8e3805fc0} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\n// Starts in 78 AD,\nconst $82c358003bdda0a8$var$INDIAN_ERA_START = 78;\n// The Indian year starts 80 days later than the Gregorian year.\nconst $82c358003bdda0a8$var$INDIAN_YEAR_START = 80;\nclass $82c358003bdda0a8$export$39f31c639fa15726 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n // Gregorian date for Julian day\n let date = super.fromJulianDay(jd);\n // Year in Saka era\n let indianYear = date.year - $82c358003bdda0a8$var$INDIAN_ERA_START;\n // Day number in Gregorian year (starting from 0)\n let yDay = jd - (0, $3b62074eb05584b2$export$f297eb839006d339)(date.era, date.year, 1, 1);\n let leapMonth;\n if (yDay < $82c358003bdda0a8$var$INDIAN_YEAR_START) {\n // Day is at the end of the preceding Saka year\n indianYear--;\n // Days in leapMonth this year, previous Gregorian year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year - 1) ? 31 : 30;\n yDay += leapMonth + 155 + 90 + 10;\n } else {\n // Days in leapMonth this year\n leapMonth = (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year) ? 31 : 30;\n yDay -= $82c358003bdda0a8$var$INDIAN_YEAR_START;\n }\n let indianMonth;\n let indianDay;\n if (yDay < leapMonth) {\n indianMonth = 1;\n indianDay = yDay + 1;\n } else {\n let mDay = yDay - leapMonth;\n if (mDay < 155) {\n indianMonth = Math.floor(mDay / 31) + 2;\n indianDay = mDay % 31 + 1;\n } else {\n mDay -= 155;\n indianMonth = Math.floor(mDay / 30) + 7;\n indianDay = mDay % 30 + 1;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, indianYear, indianMonth, indianDay);\n }\n toJulianDay(date) {\n let extendedYear = date.year + $82c358003bdda0a8$var$INDIAN_ERA_START;\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)(extendedYear);\n let leapMonth;\n let jd;\n if ((0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(year)) {\n leapMonth = 31;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 21);\n } else {\n leapMonth = 30;\n jd = (0, $3b62074eb05584b2$export$f297eb839006d339)(era, year, 3, 22);\n }\n if (date.month === 1) return jd + date.day - 1;\n jd += leapMonth + Math.min(date.month - 2, 5) * 31;\n if (date.month >= 8) jd += (date.month - 7) * 30;\n jd += date.day - 1;\n return jd;\n }\n getDaysInMonth(date) {\n if (date.month === 1 && (0, $3b62074eb05584b2$export$553d7fa8e3805fc0)(date.year + $82c358003bdda0a8$var$INDIAN_ERA_START)) return 31;\n if (date.month >= 2 && date.month <= 6) return 31;\n return 30;\n }\n getYearsInEra() {\n // 9999-12-31 gregorian is 9920-10-10 indian.\n // Round down to 9919 for the last full year.\n return 9919;\n }\n getEras() {\n return [\n 'saka'\n ];\n }\n balanceDate() {}\n constructor(...args){\n super(...args);\n this.identifier = 'indian';\n }\n}\n\n\nexport {$82c358003bdda0a8$export$39f31c639fa15726 as IndianCalendar};\n//# sourceMappingURL=IndianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nconst $f2f3e0e3a817edbd$var$CIVIL_EPOC = 1948440; // CE 622 July 16 Friday (Julian calendar) / CE 622 July 19 (Gregorian calendar)\nconst $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC = 1948439; // CE 622 July 15 Thursday (Julian calendar)\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START = 1300;\nconst $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END = 1600;\nconst $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS = 460322;\nfunction $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, day) {\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + epoch - 1;\n}\nfunction $f2f3e0e3a817edbd$var$julianDayToIslamic(calendar, epoch, jd) {\n let year = Math.floor((30 * (jd - epoch) + 10646) / 10631);\n let month = Math.min(12, Math.ceil((jd - (29 + $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, 1, 1))) / 29.5) + 1);\n let day = jd - $f2f3e0e3a817edbd$var$islamicToJulianDay(epoch, year, month, 1) + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(calendar, year, month, day);\n}\nfunction $f2f3e0e3a817edbd$var$isLeapYear(year) {\n return (14 + 11 * year) % 30 < 11;\n}\nclass $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$CIVIL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$CIVIL_EPOC, date.year, date.month, date.day);\n }\n getDaysInMonth(date) {\n let length = 29 + date.month % 2;\n if (date.month === 12 && $f2f3e0e3a817edbd$var$isLeapYear(date.year)) length++;\n return length;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInYear(date) {\n return $f2f3e0e3a817edbd$var$isLeapYear(date.year) ? 355 : 354;\n }\n getYearsInEra() {\n // 9999 gregorian\n return 9665;\n }\n getEras() {\n return [\n 'AH'\n ];\n }\n constructor(){\n this.identifier = 'islamic-civil';\n }\n}\nclass $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n return $f2f3e0e3a817edbd$var$julianDayToIslamic(this, $f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, jd);\n }\n toJulianDay(date) {\n return $f2f3e0e3a817edbd$var$islamicToJulianDay($f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC, date.year, date.month, date.day);\n }\n constructor(...args){\n super(...args);\n this.identifier = 'islamic-tbla';\n }\n}\n// Generated by scripts/generate-umalqura.js\nconst $f2f3e0e3a817edbd$var$UMALQURA_DATA = 'qgpUDckO1AbqBmwDrQpVBakGkgepC9QF2gpcBS0NlQZKB1QLagutBa4ETwoXBYsGpQbVCtYCWwmdBE0KJg2VDawFtgm6AlsKKwWVCsoG6Qr0AnYJtgJWCcoKpAvSC9kF3AJtCU0FpQpSC6ULtAW2CVcFlwJLBaMGUgdlC2oFqworBZUMSg2lDcoF1gpXCasESwmlClILagt1BXYCtwhbBFUFqQW0BdoJ3QRuAjYJqgpUDbIN1QXaAlsJqwRVCkkLZAtxC7QFtQpVCiUNkg7JDtQG6QprCasEkwpJDaQNsg25CroEWworBZUKKgtVC1wFvQQ9Ah0JlQpKC1oLbQW2AjsJmwRVBqkGVAdqC2wFrQpVBSkLkgupC9QF2gpaBasKlQVJB2QHqgu1BbYCVgpNDiULUgtqC60FrgIvCZcESwalBqwG1gpdBZ0ETQoWDZUNqgW1BdoCWwmtBJUFygbkBuoK9QS2AlYJqgpUC9IL2QXqAm0JrQSVCkoLpQuyBbUJ1gSXCkcFkwZJB1ULagVrCisFiwpGDaMNygXWCtsEawJLCaUKUgtpC3UFdgG3CFsCKwVlBbQF2gntBG0BtgimClINqQ3UBdoKWwmrBFMGKQdiB6kLsgW1ClUFJQuSDckO0gbpCmsFqwRVCikNVA2qDbUJugQ7CpsETQqqCtUK2gJdCV4ELgqaDFUNsga5BroEXQotBZUKUguoC7QLuQXaAloJSgukDdEO6AZqC20FNQWVBkoNqA3UDdoGWwWdAisGFQtKC5ULqgWuCi4JjwwnBZUGqgbWCl0FnQI=';\nlet $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH;\nlet $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE;\nfunction $f2f3e0e3a817edbd$var$umalquraYearStart(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_START_DAYS + $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthLength(year, month) {\n let idx = year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START;\n let mask = 0x01 << 11 - (month - 1);\n if (($f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH[idx] & mask) === 0) return 29;\n else return 30;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraMonthStart(year, month) {\n let day = $f2f3e0e3a817edbd$var$umalquraYearStart(year);\n for(let i = 1; i < month; i++)day += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n return day;\n}\nfunction $f2f3e0e3a817edbd$var$umalquraYearLength(year) {\n return $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year + 1 - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START];\n}\nclass $f2f3e0e3a817edbd$export$5baab4758c231076 extends $f2f3e0e3a817edbd$export$2066795aadd37bfc {\n fromJulianDay(jd) {\n let days = jd - $f2f3e0e3a817edbd$var$CIVIL_EPOC;\n let startDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_START);\n let endDays = $f2f3e0e3a817edbd$var$umalquraYearStart($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END);\n if (days < startDays || days > endDays) return super.fromJulianDay(jd);\n else {\n let y = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START - 1;\n let m = 1;\n let d = 1;\n while(d > 0){\n y++;\n d = days - $f2f3e0e3a817edbd$var$umalquraYearStart(y) + 1;\n let yearLength = $f2f3e0e3a817edbd$var$umalquraYearLength(y);\n if (d === yearLength) {\n m = 12;\n break;\n } else if (d < yearLength) {\n let monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n m = 1;\n while(d > monthLength){\n d -= monthLength;\n m++;\n monthLength = $f2f3e0e3a817edbd$var$umalquraMonthLength(y, m);\n }\n break;\n }\n }\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, y, m, days - $f2f3e0e3a817edbd$var$umalquraMonthStart(y, m) + 1);\n }\n }\n toJulianDay(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.toJulianDay(date);\n return $f2f3e0e3a817edbd$var$CIVIL_EPOC + $f2f3e0e3a817edbd$var$umalquraMonthStart(date.year, date.month) + (date.day - 1);\n }\n getDaysInMonth(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInMonth(date);\n return $f2f3e0e3a817edbd$var$umalquraMonthLength(date.year, date.month);\n }\n getDaysInYear(date) {\n if (date.year < $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START || date.year > $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END) return super.getDaysInYear(date);\n return $f2f3e0e3a817edbd$var$umalquraYearLength(date.year);\n }\n constructor(){\n super();\n this.identifier = 'islamic-umalqura';\n if (!$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH) $f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH = new Uint16Array(Uint8Array.from(atob($f2f3e0e3a817edbd$var$UMALQURA_DATA), (c)=>c.charCodeAt(0)).buffer);\n if (!$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE) {\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE = new Uint32Array($f2f3e0e3a817edbd$var$UMALQURA_YEAR_END - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START + 1);\n let yearStart = 0;\n for(let year = $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START; year <= $f2f3e0e3a817edbd$var$UMALQURA_YEAR_END; year++){\n $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE[year - $f2f3e0e3a817edbd$var$UMALQURA_YEAR_START] = yearStart;\n for(let i = 1; i <= 12; i++)yearStart += $f2f3e0e3a817edbd$var$umalquraMonthLength(year, i);\n }\n }\n }\n}\n\n\nexport {$f2f3e0e3a817edbd$export$2066795aadd37bfc as IslamicCivilCalendar, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7 as IslamicTabularCalendar, $f2f3e0e3a817edbd$export$5baab4758c231076 as IslamicUmalquraCalendar};\n//# sourceMappingURL=IslamicCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $62225008020f0a13$var$ERA_START_DATES = [\n [\n 1868,\n 9,\n 8\n ],\n [\n 1912,\n 7,\n 30\n ],\n [\n 1926,\n 12,\n 25\n ],\n [\n 1989,\n 1,\n 8\n ],\n [\n 2019,\n 5,\n 1\n ]\n];\nconst $62225008020f0a13$var$ERA_END_DATES = [\n [\n 1912,\n 7,\n 29\n ],\n [\n 1926,\n 12,\n 24\n ],\n [\n 1989,\n 1,\n 7\n ],\n [\n 2019,\n 4,\n 30\n ]\n];\nconst $62225008020f0a13$var$ERA_ADDENDS = [\n 1867,\n 1911,\n 1925,\n 1988,\n 2018\n];\nconst $62225008020f0a13$var$ERA_NAMES = [\n 'meiji',\n 'taisho',\n 'showa',\n 'heisei',\n 'reiwa'\n];\nfunction $62225008020f0a13$var$findEraFromGregorianDate(date) {\n const idx = $62225008020f0a13$var$ERA_START_DATES.findIndex(([year, month, day])=>{\n if (date.year < year) return true;\n if (date.year === year && date.month < month) return true;\n if (date.year === year && date.month === month && date.day < day) return true;\n return false;\n });\n if (idx === -1) return $62225008020f0a13$var$ERA_START_DATES.length - 1;\n if (idx === 0) return 0;\n return idx - 1;\n}\nfunction $62225008020f0a13$var$toGregorian(date) {\n let eraAddend = $62225008020f0a13$var$ERA_ADDENDS[$62225008020f0a13$var$ERA_NAMES.indexOf(date.era)];\n if (!eraAddend) throw new Error('Unknown era: ' + date.era);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(date.year + eraAddend, date.month, date.day);\n}\nclass $62225008020f0a13$export$b746ab2b60cdffbf extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(date);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, $62225008020f0a13$var$ERA_NAMES[era], date.year - $62225008020f0a13$var$ERA_ADDENDS[era], date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($62225008020f0a13$var$toGregorian(date));\n }\n balanceDate(date) {\n let gregorianDate = $62225008020f0a13$var$toGregorian(date);\n let era = $62225008020f0a13$var$findEraFromGregorianDate(gregorianDate);\n if ($62225008020f0a13$var$ERA_NAMES[era] !== date.era) {\n date.era = $62225008020f0a13$var$ERA_NAMES[era];\n date.year = gregorianDate.year - $62225008020f0a13$var$ERA_ADDENDS[era];\n }\n // Constrain in case we went before the first supported era.\n this.constrainDate(date);\n }\n constrainDate(date) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let end = $62225008020f0a13$var$ERA_END_DATES[idx];\n if (end != null) {\n let [endYear, endMonth, endDay] = end;\n // Constrain the year to the maximum possible value in the era.\n // Then constrain the month and day fields within that.\n let maxYear = endYear - $62225008020f0a13$var$ERA_ADDENDS[idx];\n date.year = Math.max(1, Math.min(maxYear, date.year));\n if (date.year === maxYear) {\n date.month = Math.min(endMonth, date.month);\n if (date.month === endMonth) date.day = Math.min(endDay, date.day);\n }\n }\n if (date.year === 1 && idx >= 0) {\n let [, startMonth, startDay] = $62225008020f0a13$var$ERA_START_DATES[idx];\n date.month = Math.max(startMonth, date.month);\n if (date.month === startMonth) date.day = Math.max(startDay, date.day);\n }\n }\n getEras() {\n return $62225008020f0a13$var$ERA_NAMES;\n }\n getYearsInEra(date) {\n // Get the number of years in the era, taking into account the date's month and day fields.\n let era = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n let cur = $62225008020f0a13$var$ERA_START_DATES[era];\n let next = $62225008020f0a13$var$ERA_START_DATES[era + 1];\n if (next == null) // 9999 gregorian is the maximum year allowed.\n return 9999 - cur[0] + 1;\n let years = next[0] - cur[0];\n if (date.month < next[1] || date.month === next[1] && date.day < next[2]) years++;\n return years;\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($62225008020f0a13$var$toGregorian(date));\n }\n getMinimumMonthInYear(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start ? start[1] : 1;\n }\n getMinimumDayInMonth(date) {\n let start = $62225008020f0a13$var$getMinimums(date);\n return start && date.month === start[1] ? start[2] : 1;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'japanese';\n }\n}\nfunction $62225008020f0a13$var$getMinimums(date) {\n if (date.year === 1) {\n let idx = $62225008020f0a13$var$ERA_NAMES.indexOf(date.era);\n return $62225008020f0a13$var$ERA_START_DATES[idx];\n }\n}\n\n\nexport {$62225008020f0a13$export$b746ab2b60cdffbf as JapaneseCalendar};\n//# sourceMappingURL=JapaneseCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {mod as $2b4dce13dd5a17fa$export$842a2cf37af977e1} from \"./utils.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $f3ed2e4472ae7e25$var$PERSIAN_EPOCH = 1948320;\n// Number of days from the start of the year to the start of each month.\nconst $f3ed2e4472ae7e25$var$MONTH_START = [\n 0,\n 31,\n 62,\n 93,\n 124,\n 155,\n 186,\n 216,\n 246,\n 276,\n 306,\n 336 // Esfand\n];\nclass $f3ed2e4472ae7e25$export$37fccdbfd14c5939 {\n fromJulianDay(jd) {\n let daysSinceEpoch = jd - $f3ed2e4472ae7e25$var$PERSIAN_EPOCH;\n let year = 1 + Math.floor((33 * daysSinceEpoch + 3) / 12053);\n let farvardin1 = 365 * (year - 1) + Math.floor((8 * year + 21) / 33);\n let dayOfYear = daysSinceEpoch - farvardin1;\n let month = dayOfYear < 216 ? Math.floor(dayOfYear / 31) : Math.floor((dayOfYear - 6) / 30);\n let day = dayOfYear - $f3ed2e4472ae7e25$var$MONTH_START[month] + 1;\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, year, month + 1, day);\n }\n toJulianDay(date) {\n let jd = $f3ed2e4472ae7e25$var$PERSIAN_EPOCH - 1 + 365 * (date.year - 1) + Math.floor((8 * date.year + 21) / 33);\n jd += $f3ed2e4472ae7e25$var$MONTH_START[date.month - 1];\n jd += date.day;\n return jd;\n }\n getMonthsInYear() {\n return 12;\n }\n getDaysInMonth(date) {\n if (date.month <= 6) return 31;\n if (date.month <= 11) return 30;\n let isLeapYear = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(25 * date.year + 11, 33) < 8;\n return isLeapYear ? 30 : 29;\n }\n getEras() {\n return [\n 'AP'\n ];\n }\n getYearsInEra() {\n // 9378-10-10 persian is 9999-12-31 gregorian.\n // Round down to 9377 to set the maximum full year.\n return 9377;\n }\n constructor(){\n this.identifier = 'persian';\n }\n}\n\n\nexport {$f3ed2e4472ae7e25$export$37fccdbfd14c5939 as PersianCalendar};\n//# sourceMappingURL=PersianCalendar.module.js.map\n","import {CalendarDate as $35ea8db9cb2ccb90$export$99faa760c7908e4f} from \"./CalendarDate.mjs\";\nimport {fromExtendedYear as $3b62074eb05584b2$export$4475b7e617eb123c, getExtendedYear as $3b62074eb05584b2$export$c36e0ecb2d4fa69d, GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\n\nconst $5f31bd6f0c8940b2$var$TAIWAN_ERA_START = 1911;\nfunction $5f31bd6f0c8940b2$var$gregorianYear(date) {\n return date.era === 'minguo' ? date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START : 1 - date.year + $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n}\nfunction $5f31bd6f0c8940b2$var$gregorianToTaiwan(year) {\n let y = year - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n if (y > 0) return [\n 'minguo',\n y\n ];\n else return [\n 'before_minguo',\n 1 - y\n ];\n}\nclass $5f31bd6f0c8940b2$export$65e01080afcb0799 extends (0, $3b62074eb05584b2$export$80ee6245ec4f29ec) {\n fromJulianDay(jd) {\n let date = super.fromJulianDay(jd);\n let extendedYear = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan(extendedYear);\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(this, era, year, date.month, date.day);\n }\n toJulianDay(date) {\n return super.toJulianDay($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getEras() {\n return [\n 'before_minguo',\n 'minguo'\n ];\n }\n balanceDate(date) {\n let [era, year] = $5f31bd6f0c8940b2$var$gregorianToTaiwan($5f31bd6f0c8940b2$var$gregorianYear(date));\n date.era = era;\n date.year = year;\n }\n isInverseEra(date) {\n return date.era === 'before_minguo';\n }\n getDaysInMonth(date) {\n return super.getDaysInMonth($5f31bd6f0c8940b2$var$toGregorian(date));\n }\n getYearsInEra(date) {\n return date.era === 'before_minguo' ? 9999 : 9999 - $5f31bd6f0c8940b2$var$TAIWAN_ERA_START;\n }\n constructor(...args){\n super(...args);\n this.identifier = 'roc' // Republic of China\n ;\n }\n}\nfunction $5f31bd6f0c8940b2$var$toGregorian(date) {\n let [era, year] = (0, $3b62074eb05584b2$export$4475b7e617eb123c)($5f31bd6f0c8940b2$var$gregorianYear(date));\n return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, date.month, date.day);\n}\n\n\nexport {$5f31bd6f0c8940b2$export$65e01080afcb0799 as TaiwanCalendar};\n//# sourceMappingURL=TaiwanCalendar.module.js.map\n","/**\n * @module\n * @category Date and Time\n */\nimport type { i18n } from 'i18next';\nimport {\n type CalendarDateTime,\n type ZonedDateTime,\n createCalendar,\n toCalendar,\n type CalendarDate,\n} from '@internationalized/date';\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport isToday from 'dayjs/plugin/isToday';\n\ndayjs.extend(utc);\ndayjs.extend(isToday);\n\ndeclare global {\n interface Window {\n i18next: i18n;\n }\n}\n\nexport type DateInput = string | number | Date;\n\nconst isoFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZZ';\n\n/**\n * This function checks whether a date string is the OpenMRS ISO format.\n * The format should be YYYY-MM-DDTHH:mm:ss.SSSZZ\n */\nexport function isOmrsDateStrict(omrsPayloadString: string): boolean {\n // omrs format 2018-03-19T00:00:00.000+0300\n if (omrsPayloadString === null || omrsPayloadString === undefined || omrsPayloadString.trim().length !== 28) {\n return false;\n }\n omrsPayloadString = omrsPayloadString.trim();\n\n // 11th character will always be T\n if (omrsPayloadString[10] !== 'T') {\n return false;\n }\n\n // checking time format\n if (omrsPayloadString[13] !== ':' || omrsPayloadString[16] !== ':' || omrsPayloadString[19] !== '.') {\n return false;\n }\n\n // checking UTC offset format\n if (!(omrsPayloadString[23] === '+' || omrsPayloadString[23] === '-')) {\n return false;\n }\n\n return dayjs(omrsPayloadString, isoFormat).isValid();\n}\n\n/**\n *\n * @param date Checks if the provided date is today.\n */\nexport function isOmrsDateToday(date: DateInput) {\n return dayjs(date).isToday();\n}\n\n/**\n * Converts the object to a date object if it is an OpenMRS ISO date time string.\n * Otherwise returns null.\n */\nexport function toDateObjectStrict(omrsDateString: string): Date | null {\n if (!isOmrsDateStrict(omrsDateString)) {\n return null;\n }\n\n return dayjs(omrsDateString, isoFormat).toDate();\n}\n\n/**\n * Formats the input to OpenMRS ISO format: \"YYYY-MM-DDTHH:mm:ss.SSSZZ\".\n */\nexport function toOmrsIsoString(date: DateInput, toUTC = false): string {\n let d = dayjs(date);\n\n if (toUTC) {\n d = d.utc();\n }\n\n return d.format(isoFormat);\n}\n\n/**\n * @deprecated use `formatTime`\n * Formats the input as a time string using the format \"HH:mm\".\n */\nexport function toOmrsTimeString24(date: DateInput) {\n return dayjs(date).format('HH:mm');\n}\n\n/**\n * @deprecated use `formatTime`\n * Formats the input as a time string using the format \"HH:mm A\".\n */\nexport function toOmrsTimeString(date: DateInput) {\n return dayjs.utc(date).format('HH:mm A');\n}\n\n/**\n * @deprecated use `formatDate(date, \"wide\")`\n * Formats the input as a date string using the format \"DD - MMM - YYYY\".\n */\nexport function toOmrsDayDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, 'DD - MMM - YYYY');\n}\n\n/**\n * @deprecated use `formatDate(date, \"no year\")`\n * Formats the input as a date string using the format \"DD-MMM\".\n */\nexport function toOmrsYearlessDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, 'DD-MMM');\n}\n\n/**\n * @deprecated use `formatDate(date)`\n * Formats the input as a date string. By default the format \"YYYY-MMM-DD\" is used.\n */\nexport function toOmrsDateFormat(date: DateInput, format = 'YYYY-MMM-DD') {\n return dayjs(date).format(format);\n}\n\n/**\n * Utility function to parse an arbitrary string into a date.\n * Uses `dayjs(dateString)`.\n */\nexport function parseDate(dateString: string) {\n return dayjs(dateString).toDate();\n}\n\nexport type FormatDateMode = 'standard' | 'wide';\n\nexport type FormatDateOptions = {\n /**\n * The calendar to use when formatting this date.\n */\n calendar?: string;\n /**\n * The locale to use when formatting this date\n */\n locale?: string;\n /**\n * - `standard`: \"03 Feb 2022\"\n * - `wide`: \"03 — Feb — 2022\"\n */\n mode: FormatDateMode;\n /**\n * Whether the time should be included in the output always (`true`),\n * never (`false`), or only when the input date is today (`for today`).\n */\n time: true | false | 'for today';\n /** Whether to include the day number */\n day: boolean;\n /** Whether to include the month number */\n month: boolean;\n /** Whether to include the year */\n year: boolean;\n /** The unicode numbering system to use */\n numberingSystem?: string;\n /**\n * Disables the special handling of dates that are today. If false\n * (the default), then dates that are today will be formatted as \"Today\"\n * in the locale language. If true, then dates that are today will be\n * formatted the same as all other dates.\n */\n noToday: boolean;\n};\n\nconst defaultOptions: FormatDateOptions = {\n mode: 'standard',\n time: 'for today',\n day: true,\n month: true,\n year: true,\n noToday: false,\n};\n\n/**\n * Internal cache for per-locale calendars\n */\nclass LocaleCalendars {\n #registry = new Map<string, string>();\n\n constructor() {\n this.#registry.set('am', 'ethiopic');\n }\n\n register(locale: string, calendar: string) {\n this.#registry.set(locale, calendar);\n }\n\n getCalendar(locale: Intl.Locale) {\n if (!Boolean(locale)) {\n return undefined;\n }\n\n if (locale.calendar) {\n return locale.calendar;\n }\n\n if (locale.region) {\n const key = `${locale.language}-${locale.region}`;\n if (this.#registry.has(key)) {\n return this.#registry.get(key);\n }\n }\n\n if (locale.language && this.#registry.has(locale.language)) {\n return this.#registry.get(locale.language);\n }\n\n const defaultCalendar = new Intl.DateTimeFormat(locale.toString()).resolvedOptions().calendar;\n\n // cache this result\n this.#registry.set(`${locale.language}${locale.region ? `-${locale.region}` : ''}`, defaultCalendar);\n\n return defaultCalendar;\n }\n}\n\nconst registeredLocaleCalendars = new LocaleCalendars();\n\n/**\n * Provides the name of the calendar to associate, as a default, with the given base locale.\n *\n * @example\n * ```\n * registerDefaultCalendar('en', 'buddhist') // sets the default calendar for the 'en' locale to Buddhist.\n * ```\n *\n * @param locale the locale to register this calendar for\n * @param calendar the calendar to use for this registration\n */\nexport function registerDefaultCalendar(locale: string, calendar: string) {\n registeredLocaleCalendars.register(locale, calendar);\n}\n\n/**\n * Retrieves the default calendar for the specified locale if any.\n *\n * @param locale the locale to look-up\n */\nexport function getDefaultCalendar(locale: Intl.Locale | string | undefined) {\n const locale_ = locale ?? getLocale();\n\n return registeredLocaleCalendars.getCalendar(locale_ instanceof Intl.Locale ? locale_ : new Intl.Locale(locale_));\n}\n\n/**\n * Formats the input date according to the current locale and the\n * given options.\n *\n * Default options:\n * - mode: \"standard\",\n * - time: \"for today\",\n * - day: true,\n * - month: true,\n * - year: true\n * - noToday: false\n *\n * If the date is today then \"Today\" is produced (in the locale language).\n * This behavior can be disabled with `noToday: true`.\n *\n * When time is included, it is appended with a comma and a space. This\n * agrees with the output of `Date.prototype.toLocaleString` for *most*\n * locales.\n */\n// TODO: Shouldn't throw on null input\nexport function formatDate(date: Date, options?: Partial<FormatDateOptions>) {\n let locale = options?.locale ?? getLocale();\n const _locale = new Intl.Locale(locale);\n\n const { calendar, mode, time, day, month, year, noToday, numberingSystem }: FormatDateOptions = {\n ...defaultOptions,\n ...{ noToday: _locale.language === 'am' ? true : false },\n ...options,\n };\n\n const formatCalendar = calendar ?? getDefaultCalendar(_locale);\n\n const formatterOptions: Intl.DateTimeFormatOptions = {\n calendar: formatCalendar,\n year: year ? 'numeric' : undefined,\n month: month ? 'short' : undefined,\n day: day ? '2-digit' : undefined,\n numberingSystem,\n };\n\n let localeString: string;\n const isToday = dayjs(date).isToday();\n if (isToday && !noToday) {\n // This produces the word \"Today\" in the language of `locale`\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n localeString = rtf.format(0, 'day');\n localeString = localeString[0].toLocaleUpperCase(locale) + localeString.slice(1);\n } else {\n if (_locale.language === 'en') {\n // This locale override is here rather than in `getLocale`\n // because Americans should see AM/PM for times.\n locale = 'en-GB';\n }\n\n const formatter = new Intl.DateTimeFormat(locale, formatterOptions);\n let parts = formatter.formatToParts(date);\n\n if ((_locale.language === 'en' || _locale.language === 'am') && mode == 'standard' && year && day) {\n // Custom formatting for English and Amharic. Use hyphens instead of spaces.\n parts = parts.map(formatParts('-'));\n }\n\n if (mode == 'wide') {\n parts = parts.map(formatParts(' — ')); // space-emdash-space\n }\n\n // omit the era when using the Ethiopic calendar\n if (formatterOptions.calendar === 'ethiopic') {\n parts = parts.filter((part, idx, values) => {\n if (\n part.type === 'era' ||\n (part.type === 'literal' && idx < values.length - 1 && values[idx + 1].type === 'era')\n ) {\n return false;\n }\n\n return true;\n });\n }\n\n localeString = parts.map((p) => p.value).join('');\n }\n if (time === true || (isToday && time === 'for today')) {\n localeString += `, ${formatTime(date)}`;\n }\n return localeString;\n}\n\n// Internal curried call-back for map()\nconst formatParts = (separator: string) => {\n return (part: Intl.DateTimeFormatPart, idx: number, values: Array<Intl.DateTimeFormatPart>) => {\n if (part.type !== 'literal' || part.value !== ' ') {\n return part;\n }\n\n if (idx < values.length - 1 && values[idx + 1].type === 'era') {\n return part;\n }\n\n return { type: 'literal', value: separator } as Intl.DateTimeFormatPart;\n };\n};\n\n/**\n * Formats the input as a time, according to the current locale.\n * 12-hour or 24-hour clock depends on locale.\n */\nexport function formatTime(date: Date) {\n return date.toLocaleTimeString(getLocale(), {\n hour: '2-digit',\n minute: '2-digit',\n });\n}\n\n/**\n * Formats the input into a string showing the date and time, according\n * to the current locale. The `mode` parameter is as described for\n * `formatDate`.\n *\n * This is created by concatenating the results of `formatDate`\n * and `formatTime` with a comma and space. This agrees with the\n * output of `Date.prototype.toLocaleString` for *most* locales.\n */\nexport function formatDatetime(date: Date, options?: Partial<Omit<FormatDateOptions, 'time'>>) {\n return formatDate(date, { ...options, time: true });\n}\n\n/**\n * Returns the current locale of the application.\n * @returns string\n */\nexport function getLocale() {\n let language = window.i18next.language;\n language = language.replace('_', '-'); // just in case\n // hack for `ht` until https://unicode-org.atlassian.net/browse/CLDR-14956 is fixed\n if (language === 'ht') {\n language = 'fr-HT';\n }\n\n return language;\n}\n\n/**\n * Converts a calendar date to the equivalent locale calendar date.\n * @returns CalendarDate\n */\nexport function convertToLocaleCalendar(\n date: CalendarDate | CalendarDateTime | ZonedDateTime,\n locale: string | Intl.Locale,\n) {\n let locale_ = typeof locale === 'string' ? new Intl.Locale(locale) : locale;\n const localCalendarName = getDefaultCalendar(locale_);\n\n return localCalendarName ? toCalendar(date, createCalendar(localCalendarName)) : date;\n}\n","import {BuddhistCalendar as $8d73d47422ca7302$export$42d20a78301dee44} from \"./BuddhistCalendar.mjs\";\nimport {CopticCalendar as $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1, EthiopicAmeteAlemCalendar as $b956b2d7a6cf451f$export$d72e0c37005a4914, EthiopicCalendar as $b956b2d7a6cf451f$export$26ba6eab5e20cd7d} from \"./EthiopicCalendar.mjs\";\nimport {GregorianCalendar as $3b62074eb05584b2$export$80ee6245ec4f29ec} from \"./GregorianCalendar.mjs\";\nimport {HebrewCalendar as $7c5f6fbf42389787$export$ca405048b8fb5af} from \"./HebrewCalendar.mjs\";\nimport {IndianCalendar as $82c358003bdda0a8$export$39f31c639fa15726} from \"./IndianCalendar.mjs\";\nimport {IslamicCivilCalendar as $f2f3e0e3a817edbd$export$2066795aadd37bfc, IslamicTabularCalendar as $f2f3e0e3a817edbd$export$37f0887f2f9d22f7, IslamicUmalquraCalendar as $f2f3e0e3a817edbd$export$5baab4758c231076} from \"./IslamicCalendar.mjs\";\nimport {JapaneseCalendar as $62225008020f0a13$export$b746ab2b60cdffbf} from \"./JapaneseCalendar.mjs\";\nimport {PersianCalendar as $f3ed2e4472ae7e25$export$37fccdbfd14c5939} from \"./PersianCalendar.mjs\";\nimport {TaiwanCalendar as $5f31bd6f0c8940b2$export$65e01080afcb0799} from \"./TaiwanCalendar.mjs\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\n\n\n\nfunction $64244302c3013299$export$dd0bbc9b26defe37(name) {\n switch(name){\n case 'buddhist':\n return new (0, $8d73d47422ca7302$export$42d20a78301dee44)();\n case 'ethiopic':\n return new (0, $b956b2d7a6cf451f$export$26ba6eab5e20cd7d)();\n case 'ethioaa':\n return new (0, $b956b2d7a6cf451f$export$d72e0c37005a4914)();\n case 'coptic':\n return new (0, $b956b2d7a6cf451f$export$fe6243cbe1a4b7c1)();\n case 'hebrew':\n return new (0, $7c5f6fbf42389787$export$ca405048b8fb5af)();\n case 'indian':\n return new (0, $82c358003bdda0a8$export$39f31c639fa15726)();\n case 'islamic-civil':\n return new (0, $f2f3e0e3a817edbd$export$2066795aadd37bfc)();\n case 'islamic-tbla':\n return new (0, $f2f3e0e3a817edbd$export$37f0887f2f9d22f7)();\n case 'islamic-umalqura':\n return new (0, $f2f3e0e3a817edbd$export$5baab4758c231076)();\n case 'japanese':\n return new (0, $62225008020f0a13$export$b746ab2b60cdffbf)();\n case 'persian':\n return new (0, $f3ed2e4472ae7e25$export$37fccdbfd14c5939)();\n case 'roc':\n return new (0, $5f31bd6f0c8940b2$export$65e01080afcb0799)();\n case 'gregory':\n default:\n return new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();\n }\n}\n\n\nexport {$64244302c3013299$export$dd0bbc9b26defe37 as createCalendar};\n//# sourceMappingURL=createCalendar.module.js.map\n","/** @module @category Utility */\nimport { getLocale } from './omrs-dates';\n\n/**\n * Gets the number of days in the year of the given date.\n * @param date The date to compute the days within the year.\n * @returns The number of days.\n */\nexport function daysIntoYear(date: Date) {\n return (\n (Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) - Date.UTC(date.getUTCFullYear(), 0, 0)) /\n 24 /\n 60 /\n 60 /\n 1000\n );\n}\n\n/**\n * Checks if two dates are representing the same day.\n * @param firstDate The first date.\n * @param secondDate The second date.\n * @returns True if both are located on the same day.\n */\nexport function isSameDay(firstDate: Date, secondDate: Date) {\n const firstISO = firstDate.toISOString();\n const secondISO = secondDate.toISOString();\n return firstISO.slice(0, firstISO.indexOf('T')) === secondISO.slice(0, secondISO.indexOf('T'));\n}\n\n/**\n * Gets a human readable and locale supported age represention of the provided date string.\n * @param dateString The stringified date.\n * @returns A human-readable string version of the age.\n */\nexport function age(dateString: string): string {\n // Different from npm packages such as https://www.npmjs.com/package/timeago\n\n // First calculate the age in years\n const today = new Date();\n const birthDate = new Date(dateString);\n const monthDifference = today.getUTCMonth() - birthDate.getUTCMonth();\n const dateDifference = today.getUTCDate() - birthDate.getUTCDate();\n let age = today.getUTCFullYear() - birthDate.getUTCFullYear();\n if (monthDifference < 0 || (monthDifference === 0 && dateDifference < 0)) {\n age--;\n }\n\n // Now calculate the number of months in addition to the year's age\n let monthsAgo = monthDifference >= 0 ? monthDifference : monthDifference + 12;\n if (dateDifference < 0) {\n monthsAgo--;\n }\n\n // For patients less than a year old, we calculate the number of days/weeks they have been alive\n let totalDaysAgo = daysIntoYear(today) - daysIntoYear(birthDate);\n if (totalDaysAgo < 0) {\n totalDaysAgo += 365;\n }\n const weeksAgo = Math.floor(totalDaysAgo / 7);\n\n const locale = getLocale();\n\n // Depending on their age, return a different representation of their age.\n if (age === 0) {\n if (isSameDay(today, birthDate)) {\n const rtf = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' });\n return rtf.format(0, 'day');\n } else if (totalDaysAgo < 31) {\n const totalDaysAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'day',\n unitDisplay: 'short',\n }).format(totalDaysAgo);\n\n return totalDaysAgoStr;\n } else {\n const weeksAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'week',\n unitDisplay: 'short',\n }).format(weeksAgo);\n return weeksAgoStr;\n }\n } else if (age < 2) {\n const monthsAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'month',\n unitDisplay: 'short',\n }).format(monthsAgo + 12);\n\n return monthsAgoStr;\n } else {\n const yearsAgoStr = new Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'year',\n unitDisplay: 'short',\n }).format(age);\n return yearsAgoStr;\n }\n}\n","import type {} from '@openmrs/esm-globals';\n\nexport function isOnline(online?: boolean) {\n return window.offlineEnabled ? online ?? navigator.onLine : true;\n}\n","/** @module @category Utility */\n\nimport { type NameUse } from '@openmrs/esm-globals';\n\n/**\n * Gets the formatted display name for a patient.\n *\n * The display name will be taken from the patient's 'usual' name,\n * or may fall back to the patient's 'official' name.\n *\n * @param patient The patient details in FHIR format.\n * @returns The patient's display name or an empty string if name is not present.\n */\nexport function getPatientName(patient: fhir.Patient): string {\n const name = selectPreferredName(patient, 'usual', 'official');\n return formatPatientName(name);\n}\n\n/** @deprecated Use `getPatientName` */\nexport function displayName(patient: fhir.Patient): string {\n return getPatientName(patient);\n}\n\n/**\n * Get a formatted display string for an FHIR name.\n * @param name The name to be formatted.\n * @returns The formatted display name or an empty string if name is undefined.\n */\nexport function formatPatientName(name: fhir.HumanName | undefined): string {\n if (name) return name.text ?? defaultFormat(name);\n return '';\n}\n\n/** @deprecated Use `formatPatientName` */\nexport function formattedName(name: fhir.HumanName | undefined): string {\n return formatPatientName(name);\n}\n\n/**\n * Select the preferred name from the collection of names associated with a patient.\n *\n * Names may be specified with a usage such as 'usual', 'official', 'nickname', 'maiden', etc.\n * A name with no usage specified is treated as the 'usual' name.\n *\n * The chosen name will be selected according to the priority order of `preferredNames`,\n * @example\n * // normal use case; prefer usual name, fallback to official name\n * displayNameByUsage(patient, 'usual', 'official')\n * @example\n * // prefer usual name over nickname, fallback to official name\n * displayNameByUsage(patient, 'usual', 'nickname', 'official')\n *\n * @param patient The patient from whom a name will be selected.\n * @param preferredNames Optional ordered sequence of preferred name usages; defaults to 'usual' if not specified.\n * @return the preferred name for the patient, or undefined if no acceptable name could be found.\n */\nexport function selectPreferredName(patient: fhir.Patient, ...preferredNames: NameUse[]): fhir.HumanName | undefined {\n if (preferredNames.length == 0) {\n preferredNames = ['usual'];\n }\n for (const usage of preferredNames) {\n const name = patient.name?.find((name) => nameUsageMatches(name, usage));\n if (name) {\n return name;\n }\n }\n return undefined;\n}\n\n/**\n * Generate a display name by concatenating forenames and surname.\n * @param name the person's name.\n * @returns the person's name as a string.\n */\nfunction defaultFormat(name: fhir.HumanName): string {\n const forenames: string[] = name.given ?? [];\n const names: string[] = name.family ? forenames.concat(name.family) : forenames;\n return names.join(' ');\n}\n\n/**\n * Determine whether the usage of a given name matches the given NameUse.\n *\n * A name with no usage is treated as the 'usual' name.\n *\n * @param name the name to test.\n * @param usage the NameUse to test for.\n */\nfunction nameUsageMatches(name: fhir.HumanName, usage: NameUse): boolean {\n if (!name.use)\n // a name with no usage is treated as 'usual'\n return usage === 'usual';\n\n return name.use === usage;\n}\n","/** @module @category Utility */\n\n/**\n * Checks whether two objects are equal, using a shallow comparison, similar to React.\n *\n * In essence, shallowEquals ensures two objects have the same own properties and that the values\n * of these are equal (===) to each other.\n *\n * @param a The first value to compare\n * @param b The second value to compare\n * @returns true if the objects are shallowly equal to each other\n */\nexport function shallowEqual(a: unknown, b: unknown) {\n if (a === b || Object.is(a, b)) {\n return true;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b)) {\n return false;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {\n return false;\n }\n\n const objAKeys = Object.getOwnPropertyNames(a);\n const objBKeys = Object.getOwnPropertyNames(b);\n\n return objAKeys.length === objBKeys.length && objAKeys.every((key) => a[key] === b[key]);\n}\n","/** @module @category Utility */\n\n/**\n * Simple utility function to determine if an object implementing the WebStorage API\n * is actually available. Useful for testing the availability of `localStorage` or\n * `sessionStorage`.\n *\n * @param storage The WebStorage API object to check. Defaults to `localStorage`.\n * @returns True if the WebStorage API object is able to be accessed, false otherwise\n */\nexport function canAccessStorage(storage: Storage = window.localStorage) {\n try {\n storage.getItem('test');\n return true;\n } catch {\n return false;\n }\n}\n","/** @module @category Utility */\n\n/**\n * Given a config schema, this returns an object like is returned by `useConfig`\n * with all default values.\n *\n * This should be used in tests and not in production code.\n *\n * If all you need is the default values in your tests, these are returned by\n * default from the `useConfig`/`getConfig` mock. This function is useful if you\n * need to override some of the default values.\n */\nexport function getDefaultsFromConfigSchema<T = Record<string, any>>(schema): T {\n let tmp = {};\n for (let k of Object.keys(schema)) {\n if (schema[k].hasOwnProperty('_default')) {\n tmp[k] = schema[k]._default;\n } else if (k.startsWith('_')) {\n continue;\n } else if (isOrdinaryObject(schema[k])) {\n tmp[k] = getDefaultsFromConfigSchema(schema[k]);\n } else {\n tmp[k] = schema[k];\n }\n }\n return tmp as T;\n}\n\nfunction isOrdinaryObject(x) {\n return !!x && x.constructor === Object;\n}\n","/** @module @category Utility */\nimport * as semver from 'semver';\n\nfunction normalizeOnlyVersion(version: string) {\n const [major, minor, patch] = version.split('.');\n return `${major}.${minor}.${patch}`;\n}\n\nfunction normalizeFullVersion(version: string) {\n const idx = version.indexOf('-');\n const prerelease = idx >= 0;\n\n if (prerelease) {\n const ver = normalizeOnlyVersion(version.slice(0, idx));\n const pre = version.slice(idx + 1);\n return `${ver}-${pre}`;\n }\n\n return normalizeOnlyVersion(version);\n}\n\nexport function isVersionSatisfied(requiredVersion: string, installedVersion: string) {\n const version = normalizeFullVersion(installedVersion);\n\n return semver.satisfies(version, requiredVersion, {\n includePrerelease: true,\n } as semver.Options);\n}\n","/** @module @category Utility */\n\n/**\n * Options for configuring the behavior of the {@link retry} function.\n */\nexport interface RetryOptions {\n /**\n * Determines whether the retry function should retry executing the function after it failed\n * with an error on the current attempt.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n shouldRetry?(attempt: number);\n /**\n * Calculates the next delay (in milliseconds) before a retry attempt.\n * Returning a value for the inital attempt (`0`) delays the initial function invocation.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n getDelay?(attempt: number): number;\n /**\n * Called when invoking the function resulted in an error.\n * Allows running side-effects on errors, e.g. logging.\n * @param e The error thrown by the function.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n onError?(e: any, attempt: number): void;\n}\n\n/**\n * Executes the specified function and retries executing on failure with a custom backoff strategy\n * defined by the options.\n *\n * If not configured otherwise, this function uses the following default options:\n * * Retries 5 times beyond the initial attempt.\n * * Uses an exponential backoff starting with an initial delay of 1000ms.\n * @param fn The function to be executed and retried on failure.\n * @param options Additional options which configure the retry behavior.\n * @returns The result of successfully executing `fn`.\n * @throws Rethrows the final error of running `fn` when the function stops retrying.\n */\nexport async function retry<T>(fn: () => Promise<T>, options: RetryOptions = {}) {\n let { shouldRetry, getDelay, onError } = options;\n shouldRetry = shouldRetry ?? ((attempt) => limitAttempts(attempt, 5));\n getDelay = getDelay ?? ((attempt) => getExponentialDelay(attempt, 1000));\n\n let attempt = 0;\n let lastError: any = undefined;\n\n do {\n try {\n await delay(getDelay(attempt));\n return await fn();\n } catch (e) {\n onError?.(e, attempt);\n lastError = e;\n }\n } while (shouldRetry(attempt++));\n\n // If we reach this fn errored and shouldn't retry anymore. Simply rethrow the final error as\n // a means of ending the retry process without a result.\n throw lastError;\n}\n\nfunction limitAttempts(attempt: number, maxAttempts: number) {\n return attempt <= maxAttempts;\n}\n\nfunction getExponentialDelay(attempt: number, startingDelay: number, initialDelay = false) {\n const exponent = initialDelay ? attempt + 1 : attempt;\n return startingDelay * Math.pow(2, exponent);\n}\n\nasync function delay(ms: number) {\n if (ms <= 0) {\n return;\n }\n\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n"],"names":["module","exports","e","o","t","prototype","isToday","this","format","i","s","f","n","u","utc","date","args","arguments","toDate","locale","$L","add","utcOffset","local","parse","$u","$utils","$offset","call","r","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","a","match","Math","abs","getTimezoneOffset","$x","$localOffset","h","valueOf","isUTC","toISOString","toString","toUTCString","l","c","diff","ANY","Symbol","Comparator","constructor","comp","options","loose","includePrerelease","value","debug","semver","operator","version","re","COMPARATORLOOSE","COMPARATOR","m","TypeError","undefined","SemVer","test","er","cmp","intersects","Range","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","range","raw","set","split","map","parseRange","trim","filter","length","comps","join","hr","HYPHENRANGELOOSE","HYPHENRANGE","replace","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","parseComparator","replaceGTE0","some","thisComparators","isSatisfiable","rangeComparators","every","thisComparator","rangeComparator","testSet","comparators","result","remainingComparators","slice","testComparator","pop","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","id","toLowerCase","replaceTilde","TILDELOOSE","TILDE","_","M","p","pr","ret","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","from","fM","fm","fp","fpr","fb","to","tM","tm","tp","tpr","tb","prerelease","allowed","major","minor","patch","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","num","build","compare","other","compareMain","comparePre","b","compareBuild","inc","release","identifier","push","isNaN","Error","eq","neq","gt","gte","lt","lte","op","String","rtl","next","COERCERTL","exec","index","lastIndex","COERCE","versionA","versionB","version1","version2","v1","v2","hasPre","prefix","defaultResult","key","parsed","list","sort","v","internalRe","src","tokens","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","Number","MAX_SAFE_COMPONENT_LENGTH","process","env","NODE_DEBUG","console","error","numeric","anum","bnum","R","createToken","name","isGlobal","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","r2","versions","max","maxSV","rangeObj","forEach","min","minSV","minver","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","high","low","prev","ranges","simplified","original","simpleSubset","sub","dom","eqSet","Set","gtltComp","higher","lower","hasDomLT","hasDomGT","higherGT","lowerLT","size","sawNonNull","OUTER","simpleSub","simpleDom","isSub","__WEBPACK_EXTERNAL_MODULE__688__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","Object","defineProperty","enumerable","get","obj","prop","hasOwnProperty","toStringTag","$735220c2d4774dd3$export$e16d8520af44a096","duration","mutableDate","copy","days","time","hour","hours","minute","minutes","second","seconds","millisecond","milliseconds","floor","$735220c2d4774dd3$var$nonNegativeMod","$735220c2d4774dd3$var$balanceTime","$735220c2d4774dd3$var$addTimeFields","$735220c2d4774dd3$var$addYears","years","calendar","balanceYearMonth","month","months","$735220c2d4774dd3$var$balanceYearMonth","$735220c2d4774dd3$var$constrainMonthDay","day","weeks","getDaysInMonth","$735220c2d4774dd3$var$balanceDay","balanceDate","year","maxYear","getYearsInEra","_mutableDate_calendar_isInverseEra","_mutableDate_calendar","isInverseEra","getMonthsInYear","maxMonth","_date_calendar_isInverseEra","_date_calendar","monthsInYear","constrainDate","$735220c2d4774dd3$export$4e2d2ead65e5f7e3","inverseDuration","$735220c2d4774dd3$export$3e2544e88a25bff8","$735220c2d4774dd3$export$adaa4cf7ef1b65be","fields","era","$735220c2d4774dd3$export$d52ced6badfb9a4c","field","amount","mutable","eras","getEras","eraIndex","indexOf","$735220c2d4774dd3$var$cycleValue","round","_mutable_calendar_isInverseEra","_mutable_calendar","sign","div","ceil","$14e0f24ef4ac5c92$export$68781ddf31c0090f","toJulianDay","$14e0f24ef4ac5c92$var$timeToMs","$14e0f24ef4ac5c92$var$localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","$2b4dce13dd5a17fa$export$842a2cf37af977e1","numerator","Map","$3b62074eb05584b2$export$f297eb839006d339","y1","$3b62074eb05584b2$export$c36e0ecb2d4fa69d","monthOffset","$3b62074eb05584b2$export$553d7fa8e3805fc0","$3b62074eb05584b2$var$EPOCH","$3b62074eb05584b2$export$4475b7e617eb123c","$3b62074eb05584b2$var$daysInMonth","standard","leapyear","fromJulianDay","jd","jd0","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","extendedYear","yearDay","leapAdj","getDaysInYear","$fae977aafc393c5c$export$60dfd74aa96791bd","gregorianDate","padStart","_class_private_field_init","privateMap","privateCollection","has","_check_private_redeclaration","$35ea8db9cb2ccb90$var$shiftArgs","shift","$35ea8db9cb2ccb90$var$_type","WeakMap","subtract","cycle","$11d87f3f76e88657$export$e67a095c620b86fe","writable","$35ea8db9cb2ccb90$var$_type2","mutableValue","hourCycle","isPM","disambiguation","res","$11d87f3f76e88657$var$epochFromParts","Date","setUTCHours","setUTCFullYear","getTime","$11d87f3f76e88657$export$59c99f3515d3493f","ms","$11d87f3f76e88657$var$getTimeZoneParts","$11d87f3f76e88657$var$formattersByTimeZone","formatter","hour12","parts","formatToParts","namedParts","part","type","$11d87f3f76e88657$var$DAYMILLIS","dateTime","setFullYear","setHours","offsetBefore","offsetAfter","earlier","later","absolute","$11d87f3f76e88657$var$isValidWallTime","$11d87f3f76e88657$var$getValidWallTimes","RangeError","calendarDate","$8d73d47422ca7302$export$42d20a78301dee44","super","$8d73d47422ca7302$var$toGregorian","$b956b2d7a6cf451f$var$ETHIOPIC_EPOCH","$b956b2d7a6cf451f$var$COPTIC_EPOCH","$b956b2d7a6cf451f$var$AMETE_MIHRET_DELTA","$b956b2d7a6cf451f$var$ceToJulianDay","epoch","$b956b2d7a6cf451f$var$julianDayToCE","$b956b2d7a6cf451f$var$getLeapDay","$b956b2d7a6cf451f$var$getDaysInMonth","$b956b2d7a6cf451f$export$26ba6eab5e20cd7d","$b956b2d7a6cf451f$export$d72e0c37005a4914","$b956b2d7a6cf451f$export$fe6243cbe1a4b7c1","$7c5f6fbf42389787$var$HEBREW_EPOCH","$7c5f6fbf42389787$var$isLeapYear","$7c5f6fbf42389787$var$hebrewDelay1","$7c5f6fbf42389787$var$startOfYear","last","present","$7c5f6fbf42389787$var$hebrewDelay2","$7c5f6fbf42389787$var$getDaysInYear","$7c5f6fbf42389787$var$getDaysInMonth","yearType","yearLength","$7c5f6fbf42389787$var$getYearType","$7c5f6fbf42389787$export$ca405048b8fb5af","$7c5f6fbf42389787$var$MONTH_DAYS","ys","dayOfYear","monthStart","previousDate","$82c358003bdda0a8$export$39f31c639fa15726","leapMonth","indianMonth","indianDay","indianYear","yDay","mDay","$f2f3e0e3a817edbd$var$CIVIL_EPOC","$f2f3e0e3a817edbd$var$ASTRONOMICAL_EPOC","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_END","$f2f3e0e3a817edbd$var$UMALQURA_START_DAYS","$f2f3e0e3a817edbd$var$islamicToJulianDay","$f2f3e0e3a817edbd$var$julianDayToIslamic","$f2f3e0e3a817edbd$var$isLeapYear","$f2f3e0e3a817edbd$export$2066795aadd37bfc","$f2f3e0e3a817edbd$export$37f0887f2f9d22f7","$f2f3e0e3a817edbd$var$UMALQURA_MONTHLENGTH","$f2f3e0e3a817edbd$var$UMALQURA_YEAR_START_TABLE","$f2f3e0e3a817edbd$var$umalquraYearStart","$f2f3e0e3a817edbd$var$umalquraMonthLength","mask","$f2f3e0e3a817edbd$var$umalquraMonthStart","$f2f3e0e3a817edbd$var$umalquraYearLength","$f2f3e0e3a817edbd$export$5baab4758c231076","startDays","endDays","y","monthLength","Uint16Array","Uint8Array","atob","charCodeAt","buffer","Uint32Array","yearStart","$62225008020f0a13$var$ERA_START_DATES","$62225008020f0a13$var$ERA_END_DATES","$62225008020f0a13$var$ERA_ADDENDS","$62225008020f0a13$var$ERA_NAMES","$62225008020f0a13$var$findEraFromGregorianDate","idx","findIndex","$62225008020f0a13$var$toGregorian","eraAddend","$62225008020f0a13$export$b746ab2b60cdffbf","end","endYear","endMonth","endDay","startMonth","startDay","cur","getMinimumMonthInYear","start","$62225008020f0a13$var$getMinimums","getMinimumDayInMonth","$f3ed2e4472ae7e25$var$MONTH_START","$f3ed2e4472ae7e25$export$37fccdbfd14c5939","daysSinceEpoch","$f3ed2e4472ae7e25$var$PERSIAN_EPOCH","$5f31bd6f0c8940b2$var$TAIWAN_ERA_START","$5f31bd6f0c8940b2$var$gregorianYear","$5f31bd6f0c8940b2$var$gregorianToTaiwan","$5f31bd6f0c8940b2$export$65e01080afcb0799","$5f31bd6f0c8940b2$var$toGregorian","dayjs","isoFormat","isOmrsDateStrict","omrsPayloadString","isValid","isOmrsDateToday","toDateObjectStrict","omrsDateString","toOmrsIsoString","toUTC","toOmrsTimeString24","toOmrsTimeString","toOmrsDayDateFormat","toOmrsDateFormat","toOmrsYearlessDateFormat","parseDate","dateString","defaultOptions","mode","noToday","registeredLocaleCalendars","LocaleCalendars","registry","register","getCalendar","Boolean","region","language","defaultCalendar","registerDefaultCalendar","getDefaultCalendar","locale_","getLocale","Locale","formatDate","localeString","_locale","numberingSystem","formatterOptions","RelativeTimeFormat","toLocaleUpperCase","formatParts","values","formatTime","separator","toLocaleTimeString","formatDatetime","window","i18next","convertToLocaleCalendar","localCalendarName","toCalendar","createCalendar","daysIntoYear","UTC","isSameDay","firstDate","secondDate","firstISO","secondISO","age","today","birthDate","monthDifference","dateDifference","monthsAgo","totalDaysAgo","weeksAgo","NumberFormat","style","unit","unitDisplay","isOnline","online","offlineEnabled","navigator","onLine","getPatientName","patient","formatPatientName","selectPreferredName","displayName","text","forenames","given","family","concat","defaultFormat","formattedName","preferredNames","usage","find","use","nameUsageMatches","shallowEqual","is","Array","isArray","objAKeys","getOwnPropertyNames","objBKeys","canAccessStorage","storage","localStorage","getItem","getDefaultsFromConfigSchema","schema","x","tmp","keys","k","_default","startsWith","normalizeOnlyVersion","isVersionSatisfied","requiredVersion","installedVersion","ver","pre","normalizeFullVersion","retry","fn","shouldRetry","getDelay","onError","attempt","lastError","maxAttempts","limitAttempts","startingDelay","exponent","initialDelay","pow","getExponentialDelay","delay","Promise","setTimeout"],"sourceRoot":""}