{"version":3,"file":"js/chunk-vendors-ce0553a9.28211f7a.js","mappings":"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","sources":["webpack://facilities-information-tool-v4/./node_modules/luxon/src/settings.js","webpack://facilities-information-tool-v4/./node_modules/luxon/src/zone.js","webpack://facilities-information-tool-v4/./node_modules/luxon/src/zones/IANAZone.js","webpack://facilities-information-tool-v4/./node_modules/luxon/src/zones/fixedOffsetZone.js","webpack://facilities-information-tool-v4/./node_modules/luxon/src/zones/invalidZone.js","webpack://facilities-information-tool-v4/./node_modules/luxon/src/zones/systemZone.js"],"sourcesContent":["import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year after which a string encoding a year as two digits is interpreted to occur in the current century.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // cut-off year is 0, so all 'yy' are interpretted as current century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 1949; '50' -> 2050\n * @example Settings.twoDigitCutoffYear = 1950 // interpretted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpretted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get isUniversal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n"],"names":["throwOnInvalid","now","Date","defaultZone","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","twoDigitCutoffYear","Settings","n","zone","instance","locale","numberingSystem","outputCalendar","cutoffYear","t","resetCaches","resetCache","Zone","type","name","ianaName","this","isUniversal","offsetName","ts","opts","formatOffset","format","offset","equals","otherZone","isValid","dtfCache","makeDTF","Intl","DateTimeFormat","hour12","timeZone","year","month","day","hour","minute","second","era","typeToPos","hackyOffset","dtf","date","formatted","replace","parsed","exec","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","formatToParts","filled","i","length","value","pos","parseInt","ianaZoneCache","IANAZone","Z","create","isValidSpecifier","s","isValidZone","e","constructor","super","zoneName","valid","isNaN","NaN","adOrBc","Math","abs","adjustedHour","asUTC","millisecond","asTS","over","singleton","FixedOffsetZone","utcInstance","parseSpecifier","r","match","fixed","InvalidZone","SystemZone","resolvedOptions","getTimezoneOffset"],"sourceRoot":""}