sanity-plugin-recurring-dates 1.0.0

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.
Files changed (37) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +186 -0
  3. package/dist/index.d.ts +29 -0
  4. package/dist/index.esm.js +9173 -0
  5. package/dist/index.esm.js.map +1 -0
  6. package/dist/index.js +9197 -0
  7. package/dist/index.js.map +1 -0
  8. package/package.json +93 -0
  9. package/sanity.json +8 -0
  10. package/src/components/CustomRule/CustomRule.tsx +230 -0
  11. package/src/components/CustomRule/Monthly.tsx +67 -0
  12. package/src/components/CustomRule/Weekly.tsx +62 -0
  13. package/src/components/CustomRule/index.tsx +1 -0
  14. package/src/components/DateInputs/CommonDateTimeInput.tsx +111 -0
  15. package/src/components/DateInputs/DateInput.tsx +81 -0
  16. package/src/components/DateInputs/DateTimeInput.tsx +122 -0
  17. package/src/components/DateInputs/base/DatePicker.tsx +34 -0
  18. package/src/components/DateInputs/base/DateTimeInput.tsx +104 -0
  19. package/src/components/DateInputs/base/LazyTextInput.tsx +77 -0
  20. package/src/components/DateInputs/base/calendar/Calendar.tsx +381 -0
  21. package/src/components/DateInputs/base/calendar/CalendarDay.tsx +47 -0
  22. package/src/components/DateInputs/base/calendar/CalendarMonth.tsx +52 -0
  23. package/src/components/DateInputs/base/calendar/YearInput.tsx +22 -0
  24. package/src/components/DateInputs/base/calendar/constants.ts +33 -0
  25. package/src/components/DateInputs/base/calendar/features.ts +4 -0
  26. package/src/components/DateInputs/base/calendar/utils.ts +34 -0
  27. package/src/components/DateInputs/index.ts +2 -0
  28. package/src/components/DateInputs/types.ts +4 -0
  29. package/src/components/DateInputs/utils.ts +4 -0
  30. package/src/components/RecurringDate.tsx +139 -0
  31. package/src/constants.ts +36 -0
  32. package/src/index.ts +2 -0
  33. package/src/plugin.tsx +19 -0
  34. package/src/schema/recurringDates.tsx +44 -0
  35. package/src/types.ts +27 -0
  36. package/src/utils.ts +16 -0
  37. package/v2-incompatible.js +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/constants.ts","../src/utils.ts","../node_modules/moment/moment.js","../node_modules/@sanity/util/lib/legacyDateFormat.esm.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/focus-lock/dist/es2015/constants.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/react-focus-lock/dist/es2015/FocusGuard.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/medium.js","../node_modules/react-focus-lock/dist/es2015/Lock.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-clientside-effect/lib/index.es.js","../node_modules/focus-lock/dist/es2015/utils/array.js","../node_modules/focus-lock/dist/es2015/utils/is.js","../node_modules/focus-lock/dist/es2015/utils/tabOrder.js","../node_modules/focus-lock/dist/es2015/utils/tabbables.js","../node_modules/focus-lock/dist/es2015/utils/tabUtils.js","../node_modules/focus-lock/dist/es2015/utils/DOMutils.js","../node_modules/focus-lock/dist/es2015/utils/all-affected.js","../node_modules/focus-lock/dist/es2015/utils/safe.js","../node_modules/focus-lock/dist/es2015/utils/getActiveElement.js","../node_modules/focus-lock/dist/es2015/focusInside.js","../node_modules/focus-lock/dist/es2015/focusIsHidden.js","../node_modules/focus-lock/dist/es2015/utils/correctFocus.js","../node_modules/focus-lock/dist/es2015/utils/firstFocus.js","../node_modules/focus-lock/dist/es2015/solver.js","../node_modules/focus-lock/dist/es2015/utils/auto-focus.js","../node_modules/focus-lock/dist/es2015/utils/parenting.js","../node_modules/focus-lock/dist/es2015/focusMerge.js","../node_modules/focus-lock/dist/es2015/focusables.js","../node_modules/focus-lock/dist/es2015/setFocus.js","../node_modules/react-focus-lock/dist/es2015/util.js","../node_modules/react-focus-lock/dist/es2015/Trap.js","../node_modules/react-focus-lock/dist/es2015/Combination.js","../node_modules/react-focus-lock/dist/es2015/AutoFocusInside.js","../node_modules/react-focus-lock/dist/es2015/MoveFocusInside.js","../node_modules/react-focus-lock/dist/es2015/FreeFocusInside.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/eachWeekOfInterval/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/getWeekYear/index.js","../node_modules/date-fns/esm/startOfWeekYear/index.js","../node_modules/date-fns/esm/getWeek/index.js","../node_modules/date-fns/esm/lastDayOfMonth/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/setDate/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setYear/index.js","../src/components/DateInputs/base/calendar/CalendarDay.tsx","../src/components/DateInputs/base/calendar/constants.ts","../src/components/DateInputs/base/calendar/utils.ts","../src/components/DateInputs/base/calendar/CalendarMonth.tsx","../src/components/DateInputs/base/calendar/features.ts","../src/components/DateInputs/base/LazyTextInput.tsx","../src/components/DateInputs/base/calendar/YearInput.tsx","../src/components/DateInputs/base/calendar/Calendar.tsx","../src/components/DateInputs/base/DatePicker.tsx","../src/components/DateInputs/base/DateTimeInput.tsx","../src/components/DateInputs/CommonDateTimeInput.tsx","../src/components/DateInputs/DateInput.tsx","../src/components/CustomRule/Monthly.tsx","../src/components/CustomRule/Weekly.tsx","../src/components/CustomRule/CustomRule.tsx","../src/components/RecurringDate.tsx","../src/schema/recurringDates.tsx","../src/plugin.tsx"],"sourcesContent":["import {PluginConfig, WithRequiredProperty} from './types'\n\nconst DEFAULT_RECURRENCES = [\n 'RRULE:FREQ=DAILY;INTERVAL=1',\n 'RRULE:FREQ=WEEKLY;INTERVAL=1',\n 'RRULE:FREQ=MONTHLY;INTERVAL=1',\n 'RRULE:FREQ=YEARLY;INTERVAL=1',\n]\n\nexport const DEFAULT_CONFIG: WithRequiredProperty<PluginConfig, 'defaultRecurrences'> = {\n defaultRecurrences: DEFAULT_RECURRENCES,\n}\n\nexport const MONTHS = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n]\n\nexport const DAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']\n\nexport const DEFAULT_COUNTS = [\n 5, // yearly\n 12, // monthly\n 12, // weekly\n 30, // daily\n]\n","import {rrulestr} from 'rrule'\n\nexport const validateRRuleString = (recurrence: string): boolean => {\n try {\n rrulestr(recurrence)\n return false\n } catch (e) {\n return true\n }\n}\n\nexport const validateRRuleStrings = (recurrences: string[]): boolean => {\n return recurrences.some((recurrence) => {\n return validateRRuleString(recurrence)\n })\n}\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","import moment from 'moment';\nfunction format(input, format2) {\n return moment(input).format(format2);\n}\nfunction parse(dateString, format2) {\n const parsed = moment(dateString, format2, true);\n if (parsed.isValid()) {\n return {\n isValid: true,\n date: parsed.toDate()\n };\n }\n return {\n isValid: false,\n error: 'Invalid date. Must be on the format \"'.concat(format2, '\"')\n };\n}\nexport { format, parse };\n//# sourceMappingURL=legacyDateFormat.esm.js.map\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * defines a focus group\n */\nexport var FOCUS_GROUP = 'data-focus-lock';\n/**\n * disables element discovery inside a group marked by key\n */\nexport var FOCUS_DISABLED = 'data-focus-lock-disabled';\n/**\n * allows uncontrolled focus within the marked area, effectively disabling focus lock for it's content\n */\nexport var FOCUS_ALLOW = 'data-no-focus-lock';\n/**\n * instructs autofocus engine to pick default autofocus inside a given node\n * can be set on the element or container\n */\nexport var FOCUS_AUTO = 'data-autofocus-inside';\n/**\n * instructs autofocus to ignore elements within a given node\n * can be set on the element or container\n */\nexport var FOCUS_NO_AUTOFOCUS = 'data-no-autofocus';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return <div ref={domRef}>...</div>\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n return useCallbackRef(defaultValue || null, function (newValue) { return refs.forEach(function (ref) { return assignRef(ref, newValue); }); });\n}\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nexport var hiddenGuard = {\n width: '1px',\n height: '0px',\n padding: 0,\n overflow: 'hidden',\n position: 'fixed',\n top: '1px',\n left: '1px'\n};\n\nvar InFocusGuard = function InFocusGuard(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }), children, children && /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-last\",\n \"data-focus-guard\": true,\n \"data-focus-auto-guard\": true,\n style: hiddenGuard\n }));\n};\n\nInFocusGuard.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node\n} : {};\nInFocusGuard.defaultProps = {\n children: null\n};\nexport default InFocusGuard;","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { createMedium, createSidecarMedium } from 'use-sidecar';\nexport var mediumFocus = createMedium({}, function (_ref) {\n var target = _ref.target,\n currentTarget = _ref.currentTarget;\n return {\n target: target,\n currentTarget: currentTarget\n };\n});\nexport var mediumBlur = createMedium();\nexport var mediumEffect = createMedium();\nexport var mediumSidecar = createSidecarMedium({\n async: true // focus-lock sidecar is not required on the server\n // however, it might be required for JSDOM tests\n // ssr: true,\n\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { node, bool, string, any, arrayOf, oneOfType, object, func } from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { useEffect } from 'react';\nimport { hiddenGuard } from './FocusGuard';\nimport { mediumFocus, mediumBlur, mediumSidecar } from './medium';\nvar emptyArray = [];\nvar FocusLock = /*#__PURE__*/React.forwardRef(function FocusLockUI(props, parentRef) {\n var _extends2;\n\n var _React$useState = React.useState(),\n realObserved = _React$useState[0],\n setObserved = _React$useState[1];\n\n var observed = React.useRef();\n var isActive = React.useRef(false);\n var originalFocusedElement = React.useRef(null);\n var children = props.children,\n disabled = props.disabled,\n noFocusGuards = props.noFocusGuards,\n persistentFocus = props.persistentFocus,\n crossFrame = props.crossFrame,\n autoFocus = props.autoFocus,\n allowTextSelection = props.allowTextSelection,\n group = props.group,\n className = props.className,\n whiteList = props.whiteList,\n hasPositiveIndices = props.hasPositiveIndices,\n _props$shards = props.shards,\n shards = _props$shards === void 0 ? emptyArray : _props$shards,\n _props$as = props.as,\n Container = _props$as === void 0 ? 'div' : _props$as,\n _props$lockProps = props.lockProps,\n containerProps = _props$lockProps === void 0 ? {} : _props$lockProps,\n SideCar = props.sideCar,\n shouldReturnFocus = props.returnFocus,\n focusOptions = props.focusOptions,\n onActivationCallback = props.onActivation,\n onDeactivationCallback = props.onDeactivation;\n\n var _React$useState2 = React.useState({}),\n id = _React$useState2[0]; // SIDE EFFECT CALLBACKS\n\n\n var onActivation = React.useCallback(function () {\n originalFocusedElement.current = originalFocusedElement.current || document && document.activeElement;\n\n if (observed.current && onActivationCallback) {\n onActivationCallback(observed.current);\n }\n\n isActive.current = true;\n }, [onActivationCallback]);\n var onDeactivation = React.useCallback(function () {\n isActive.current = false;\n\n if (onDeactivationCallback) {\n onDeactivationCallback(observed.current);\n }\n }, [onDeactivationCallback]);\n useEffect(function () {\n if (!disabled) {\n // cleanup return focus on trap deactivation\n // sideEffect/returnFocus should happen by this time\n originalFocusedElement.current = null;\n }\n }, []);\n var returnFocus = React.useCallback(function (allowDefer) {\n var returnFocusTo = originalFocusedElement.current;\n\n if (returnFocusTo && returnFocusTo.focus) {\n var howToReturnFocus = typeof shouldReturnFocus === 'function' ? shouldReturnFocus(returnFocusTo) : shouldReturnFocus;\n\n if (howToReturnFocus) {\n var returnFocusOptions = typeof howToReturnFocus === 'object' ? howToReturnFocus : undefined;\n originalFocusedElement.current = null;\n\n if (allowDefer) {\n // React might return focus after update\n // it's safer to defer the action\n Promise.resolve().then(function () {\n return returnFocusTo.focus(returnFocusOptions);\n });\n } else {\n returnFocusTo.focus(returnFocusOptions);\n }\n }\n }\n }, [shouldReturnFocus]); // MEDIUM CALLBACKS\n\n var onFocus = React.useCallback(function (event) {\n if (isActive.current) {\n mediumFocus.useMedium(event);\n }\n }, []);\n var onBlur = mediumBlur.useMedium; // REF PROPAGATION\n // not using real refs due to race conditions\n\n var setObserveNode = React.useCallback(function (newObserved) {\n if (observed.current !== newObserved) {\n observed.current = newObserved;\n setObserved(newObserved);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof allowTextSelection !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn('React-Focus-Lock: allowTextSelection is deprecated and enabled by default');\n }\n\n React.useEffect(function () {\n // report incorrect integration - https://github.com/theKashey/react-focus-lock/issues/123\n if (!observed.current && typeof Container !== 'string') {\n // eslint-disable-next-line no-console\n console.error('FocusLock: could not obtain ref to internal node');\n }\n }, []);\n }\n\n var lockProps = _extends((_extends2 = {}, _extends2[constants.FOCUS_DISABLED] = disabled && 'disabled', _extends2[constants.FOCUS_GROUP] = group, _extends2), containerProps);\n\n var hasLeadingGuards = noFocusGuards !== true;\n var hasTailingGuards = hasLeadingGuards && noFocusGuards !== 'tail';\n var mergedRef = useMergeRefs([parentRef, setObserveNode]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, hasLeadingGuards && [\n /*#__PURE__*/\n // nearest focus guard\n React.createElement(\"div\", {\n key: \"guard-first\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }), // first tabbed element guard\n hasPositiveIndices ? /*#__PURE__*/React.createElement(\"div\", {\n key: \"guard-nearest\",\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 1,\n style: hiddenGuard\n }) : null], !disabled && /*#__PURE__*/React.createElement(SideCar, {\n id: id,\n sideCar: mediumSidecar,\n observed: realObserved,\n disabled: disabled,\n persistentFocus: persistentFocus,\n crossFrame: crossFrame,\n autoFocus: autoFocus,\n whiteList: whiteList,\n shards: shards,\n onActivation: onActivation,\n onDeactivation: onDeactivation,\n returnFocus: returnFocus,\n focusOptions: focusOptions\n }), /*#__PURE__*/React.createElement(Container, _extends({\n ref: mergedRef\n }, lockProps, {\n className: className,\n onBlur: onBlur,\n onFocus: onFocus\n }), children), hasTailingGuards && /*#__PURE__*/React.createElement(\"div\", {\n \"data-focus-guard\": true,\n tabIndex: disabled ? -1 : 0,\n style: hiddenGuard\n }));\n});\nFocusLock.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: node,\n disabled: bool,\n returnFocus: oneOfType([bool, object, func]),\n focusOptions: object,\n noFocusGuards: bool,\n hasPositiveIndices: bool,\n allowTextSelection: bool,\n autoFocus: bool,\n persistentFocus: bool,\n crossFrame: bool,\n group: string,\n className: string,\n whiteList: func,\n shards: arrayOf(any),\n as: oneOfType([string, func, object]),\n lockProps: object,\n onActivation: func,\n onDeactivation: func,\n sideCar: any.isRequired\n} : {};\nFocusLock.defaultProps = {\n children: undefined,\n disabled: false,\n returnFocus: false,\n focusOptions: undefined,\n noFocusGuards: false,\n autoFocus: true,\n persistentFocus: false,\n crossFrame: true,\n hasPositiveIndices: undefined,\n allowTextSelection: undefined,\n group: undefined,\n className: undefined,\n whiteList: undefined,\n shards: undefined,\n as: 'div',\n lockProps: {},\n onActivation: undefined,\n onDeactivation: undefined\n};\nexport default FocusLock;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React, { PureComponent } from 'react';\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n handleStateChangeOnClient(state);\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n return SideEffect;\n };\n}\n\nexport default withSideEffect;\n","/*\nIE11 support\n */\nexport var toArray = function (a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\nexport var asArray = function (a) { return (Array.isArray(a) ? a : [a]); };\nexport var getFirst = function (a) { return (Array.isArray(a) ? a[0] : a); };\n","import { FOCUS_NO_AUTOFOCUS } from '../constants';\nvar isElementHidden = function (node) {\n // we can measure only \"elements\"\n // consider others as \"visible\"\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n var computedStyle = window.getComputedStyle(node, null);\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return (computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden');\n};\nvar getParentNode = function (node) {\n // DOCUMENT_FRAGMENT_NODE can also point on ShadowRoot. In this case .host will point on the next node\n return node.parentNode && node.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node.parentNode.host\n : node.parentNode;\n};\nvar isTopNode = function (node) {\n // @ts-ignore\n return node === document || (node && node.nodeType === Node.DOCUMENT_NODE);\n};\nvar isVisibleUncached = function (node, checkParent) {\n return !node || isTopNode(node) || (!isElementHidden(node) && checkParent(getParentNode(node)));\n};\nexport var isVisibleCached = function (visibilityCache, node) {\n var cached = visibilityCache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isVisibleUncached(node, isVisibleCached.bind(undefined, visibilityCache));\n visibilityCache.set(node, result);\n return result;\n};\nvar isAutoFocusAllowedUncached = function (node, checkParent) {\n return node && !isTopNode(node) ? (isAutoFocusAllowed(node) ? checkParent(getParentNode(node)) : false) : true;\n};\nexport var isAutoFocusAllowedCached = function (cache, node) {\n var cached = cache.get(node);\n if (cached !== undefined) {\n return cached;\n }\n var result = isAutoFocusAllowedUncached(node, isAutoFocusAllowedCached.bind(undefined, cache));\n cache.set(node, result);\n return result;\n};\nexport var getDataset = function (node) {\n // @ts-ignore\n return node.dataset;\n};\nexport var isHTMLButtonElement = function (node) { return node.tagName === 'BUTTON'; };\nexport var isHTMLInputElement = function (node) { return node.tagName === 'INPUT'; };\nexport var isRadioElement = function (node) {\n return isHTMLInputElement(node) && node.type === 'radio';\n};\nexport var notHiddenInput = function (node) {\n return !((isHTMLInputElement(node) || isHTMLButtonElement(node)) && (node.type === 'hidden' || node.disabled));\n};\nexport var isAutoFocusAllowed = function (node) {\n var attribute = node.getAttribute(FOCUS_NO_AUTOFOCUS);\n return ![true, 'true', ''].includes(attribute);\n};\nexport var isGuard = function (node) { var _a; return Boolean(node && ((_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.focusGuard)); };\nexport var isNotAGuard = function (node) { return !isGuard(node); };\nexport var isDefined = function (x) { return Boolean(x); };\n","import { toArray } from './array';\nexport var tabSort = function (a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n if (tabDiff) {\n if (!a.tabIndex) {\n return 1;\n }\n if (!b.tabIndex) {\n return -1;\n }\n }\n return tabDiff || indexDiff;\n};\nexport var orderByTabIndex = function (nodes, filterNegative, keepGuards) {\n return toArray(nodes)\n .map(function (node, index) { return ({\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? ((node.dataset || {}).focusGuard ? 0 : -1) : node.tabIndex,\n }); })\n .filter(function (data) { return !filterNegative || data.tabIndex >= 0; })\n .sort(tabSort);\n};\n","/**\n * list of the object to be considered as focusable\n */\nexport var tabbables = [\n 'button:enabled',\n 'select:enabled',\n 'textarea:enabled',\n 'input:enabled',\n // elements with explicit roles will also use explicit tabindex\n // '[role=\"button\"]',\n 'a[href]',\n 'area[href]',\n 'summary',\n 'iframe',\n 'object',\n 'embed',\n 'audio[controls]',\n 'video[controls]',\n '[tabindex]',\n '[contenteditable]',\n '[autofocus]',\n];\n","import { FOCUS_AUTO } from '../constants';\nimport { toArray } from './array';\nimport { tabbables } from './tabbables';\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = \"\".concat(queryTabbables, \", [data-focus-guard]\");\nvar getFocusablesWithShadowDom = function (parent, withGuards) {\n return toArray((parent.shadowRoot || parent).children).reduce(function (acc, child) {\n return acc.concat(child.matches(withGuards ? queryGuardTabbables : queryTabbables) ? [child] : [], getFocusablesWithShadowDom(child));\n }, []);\n};\nvar getFocusablesWithIFrame = function (parent, withGuards) {\n var _a;\n // contentDocument of iframe will be null if current origin cannot access it\n if (parent instanceof HTMLIFrameElement && ((_a = parent.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n return getFocusables([parent.contentDocument.body], withGuards);\n }\n return [parent];\n};\nexport var getFocusables = function (parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n var _a;\n var focusableWithShadowDom = getFocusablesWithShadowDom(parent, withGuards);\n var focusableWithIframes = (_a = []).concat.apply(_a, focusableWithShadowDom.map(function (node) { return getFocusablesWithIFrame(node, withGuards); }));\n return acc.concat(\n // add all tabbables inside and within shadow DOMs in DOM order\n focusableWithIframes, \n // add if node is tabbable itself\n parent.parentNode\n ? toArray(parent.parentNode.querySelectorAll(queryTabbables)).filter(function (node) { return node === parent; })\n : []);\n }, []);\n};\n/**\n * return a list of focusable nodes within an area marked as \"auto-focusable\"\n * @param parent\n */\nexport var getParentAutofocusables = function (parent) {\n var parentFocus = parent.querySelectorAll(\"[\".concat(FOCUS_AUTO, \"]\"));\n return toArray(parentFocus)\n .map(function (node) { return getFocusables([node]); })\n .reduce(function (acc, nodes) { return acc.concat(nodes); }, []);\n};\n","import { toArray } from './array';\nimport { isAutoFocusAllowedCached, isVisibleCached, notHiddenInput } from './is';\nimport { orderByTabIndex } from './tabOrder';\nimport { getFocusables, getParentAutofocusables } from './tabUtils';\n/**\n * given list of focusable elements keeps the ones user can interact with\n * @param nodes\n * @param visibilityCache\n */\nexport var filterFocusable = function (nodes, visibilityCache) {\n return toArray(nodes)\n .filter(function (node) { return isVisibleCached(visibilityCache, node); })\n .filter(function (node) { return notHiddenInput(node); });\n};\nexport var filterAutoFocusable = function (nodes, cache) {\n if (cache === void 0) { cache = new Map(); }\n return toArray(nodes).filter(function (node) { return isAutoFocusAllowedCached(cache, node); });\n};\n/**\n * only tabbable ones\n * (but with guards which would be ignored)\n */\nexport var getTabbableNodes = function (topNodes, visibilityCache, withGuards) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes, withGuards), visibilityCache), true, withGuards);\n};\n/**\n * actually anything \"focusable\", not only tabbable\n * (without guards, as long as they are not expected to be focused)\n */\nexport var getAllTabbableNodes = function (topNodes, visibilityCache) {\n return orderByTabIndex(filterFocusable(getFocusables(topNodes), visibilityCache), false);\n};\n/**\n * return list of nodes which are expected to be auto-focused\n * @param topNode\n * @param visibilityCache\n */\nexport var parentAutofocusables = function (topNode, visibilityCache) {\n return filterFocusable(getParentAutofocusables(topNode), visibilityCache);\n};\n/*\n * Determines if element is contained in scope, including nested shadow DOMs\n */\nexport var contains = function (scope, element) {\n if (scope.shadowRoot) {\n return contains(scope.shadowRoot, element);\n }\n else {\n if (Object.getPrototypeOf(scope).contains !== undefined &&\n Object.getPrototypeOf(scope).contains.call(scope, element)) {\n return true;\n }\n return toArray(scope.children).some(function (child) {\n var _a;\n if (child instanceof HTMLIFrameElement) {\n var iframeBody = (_a = child.contentDocument) === null || _a === void 0 ? void 0 : _a.body;\n if (iframeBody) {\n return contains(iframeBody, element);\n }\n return false;\n }\n return contains(child, element);\n });\n }\n};\n","import { FOCUS_DISABLED, FOCUS_GROUP } from '../constants';\nimport { asArray, toArray } from './array';\n/**\n * in case of multiple nodes nested inside each other\n * keeps only top ones\n * this is O(nlogn)\n * @param nodes\n * @returns {*}\n */\nvar filterNested = function (nodes) {\n var contained = new Set();\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n for (var j = i + 1; j < l; j += 1) {\n var position = nodes[i].compareDocumentPosition(nodes[j]);\n /* eslint-disable no-bitwise */\n if ((position & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0) {\n contained.add(j);\n }\n if ((position & Node.DOCUMENT_POSITION_CONTAINS) > 0) {\n contained.add(i);\n }\n /* eslint-enable */\n }\n }\n return nodes.filter(function (_, index) { return !contained.has(index); });\n};\n/**\n * finds top most parent for a node\n * @param node\n * @returns {*}\n */\nvar getTopParent = function (node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n/**\n * returns all \"focus containers\" inside a given node\n * @param node\n * @returns {T}\n */\nexport var getAllAffectedNodes = function (node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, (group\n ? filterNested(toArray(getTopParent(currentNode).querySelectorAll(\"[\".concat(FOCUS_GROUP, \"=\\\"\").concat(group, \"\\\"]:not([\").concat(FOCUS_DISABLED, \"=\\\"disabled\\\"])\"))))\n : [currentNode]));\n return acc;\n }, []);\n};\n","export var safeProbe = function (cb) {\n try {\n return cb();\n }\n catch (e) {\n return undefined;\n }\n};\n","/**\n * returns active element from document or from nested shadowdoms\n */\nimport { safeProbe } from './safe';\nexport var getActiveElement = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n if (!inDocument || !inDocument.activeElement) {\n return undefined;\n }\n var activeElement = inDocument.activeElement;\n return (activeElement.shadowRoot\n ? getActiveElement(activeElement.shadowRoot)\n : activeElement instanceof HTMLIFrameElement && safeProbe(function () { return activeElement.contentWindow.document; })\n ? getActiveElement(activeElement.contentWindow.document)\n : activeElement);\n};\n","import { contains } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { getFirst, toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\nvar focusInFrame = function (frame, activeElement) { return frame === activeElement; };\nvar focusInsideIframe = function (topNode, activeElement) {\n return Boolean(toArray(topNode.querySelectorAll('iframe')).some(function (node) { return focusInFrame(node, activeElement); }));\n};\n/**\n * @returns {Boolean} true, if the current focus is inside given node or nodes\n */\nexport var focusInside = function (topNode, activeElement) {\n // const activeElement = document && getActiveElement();\n if (activeElement === void 0) { activeElement = getActiveElement(getFirst(topNode).ownerDocument); }\n if (!activeElement || (activeElement.dataset && activeElement.dataset.focusGuard)) {\n return false;\n }\n return getAllAffectedNodes(topNode).some(function (node) {\n return contains(node, activeElement) || focusInsideIframe(node, activeElement);\n });\n};\n","import { FOCUS_ALLOW } from './constants';\nimport { contains } from './utils/DOMutils';\nimport { toArray } from './utils/array';\nimport { getActiveElement } from './utils/getActiveElement';\n/**\n * focus is hidden FROM the focus-lock\n * ie contained inside a node focus-lock shall ignore\n * @returns {boolean} focus is currently is in \"allow\" area\n */\nexport var focusIsHidden = function (inDocument) {\n if (inDocument === void 0) { inDocument = document; }\n var activeElement = getActiveElement(inDocument);\n if (!activeElement) {\n return false;\n }\n // this does not support setting FOCUS_ALLOW within shadow dom\n return toArray(inDocument.querySelectorAll(\"[\".concat(FOCUS_ALLOW, \"]\"))).some(function (node) { return contains(node, activeElement); });\n};\n","import { isRadioElement } from './is';\nvar findSelectedRadio = function (node, nodes) {\n return nodes\n .filter(isRadioElement)\n .filter(function (el) { return el.name === node.name; })\n .filter(function (el) { return el.checked; })[0] || node;\n};\nexport var correctNode = function (node, nodes) {\n if (isRadioElement(node) && node.name) {\n return findSelectedRadio(node, nodes);\n }\n return node;\n};\n/**\n * giving a set of radio inputs keeps only selected (tabbable) ones\n * @param nodes\n */\nexport var correctNodes = function (nodes) {\n // IE11 has no Set(array) constructor\n var resultSet = new Set();\n nodes.forEach(function (node) { return resultSet.add(correctNode(node, nodes)); });\n // using filter to support IE11\n return nodes.filter(function (node) { return resultSet.has(node); });\n};\n","import { correctNode } from './correctFocus';\nexport var pickFirstFocus = function (nodes) {\n if (nodes[0] && nodes.length > 1) {\n return correctNode(nodes[0], nodes);\n }\n return nodes[0];\n};\nexport var pickFocusable = function (nodes, index) {\n if (nodes.length > 1) {\n return nodes.indexOf(correctNode(nodes[index], nodes));\n }\n return index;\n};\n","import { correctNodes } from './utils/correctFocus';\nimport { pickFocusable } from './utils/firstFocus';\nimport { isGuard } from './utils/is';\nexport var NEW_FOCUS = 'NEW_FOCUS';\n/**\n * Main solver for the \"find next focus\" question\n * @param innerNodes\n * @param outerNodes\n * @param activeElement\n * @param lastNode\n * @returns {number|string|undefined|*}\n */\nexport var newFocus = function (innerNodes, outerNodes, activeElement, lastNode) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n // focus is inside\n if (activeElement && innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n var activeIndex = activeElement !== undefined ? outerNodes.indexOf(activeElement) : -1;\n var lastIndex = lastNode ? outerNodes.indexOf(lastNode) : activeIndex;\n var lastNodeInside = lastNode ? innerNodes.indexOf(lastNode) : -1;\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n var correctedNodes = correctNodes(outerNodes);\n var correctedIndex = activeElement !== undefined ? correctedNodes.indexOf(activeElement) : -1;\n var correctedIndexDiff = correctedIndex - (lastNode ? correctedNodes.indexOf(lastNode) : activeIndex);\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n // new focus\n if (activeIndex === -1 || lastNodeInside === -1) {\n return NEW_FOCUS;\n }\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= lastNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(correctedIndexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n","import { filterAutoFocusable } from './DOMutils';\nimport { pickFirstFocus } from './firstFocus';\nimport { getDataset } from './is';\nvar findAutoFocused = function (autoFocusables) {\n return function (node) {\n var _a;\n var autofocus = (_a = getDataset(node)) === null || _a === void 0 ? void 0 : _a.autofocus;\n return (\n // @ts-expect-error\n node.autofocus ||\n //\n (autofocus !== undefined && autofocus !== 'false') ||\n //\n autoFocusables.indexOf(node) >= 0);\n };\n};\nexport var pickAutofocus = function (nodesIndexes, orderedNodes, groups) {\n var nodes = nodesIndexes.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var autoFocusable = filterAutoFocusable(nodes.filter(findAutoFocused(groups)));\n if (autoFocusable && autoFocusable.length) {\n return pickFirstFocus(autoFocusable);\n }\n return pickFirstFocus(filterAutoFocusable(orderedNodes));\n};\n","import { parentAutofocusables } from './DOMutils';\nimport { contains } from './DOMutils';\nimport { asArray } from './array';\nvar getParents = function (node, parents) {\n if (parents === void 0) { parents = []; }\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode.host || node.parentNode, parents);\n }\n return parents;\n};\n/**\n * finds a parent for both nodeA and nodeB\n * @param nodeA\n * @param nodeB\n * @returns {boolean|*}\n */\nexport var getCommonParent = function (nodeA, nodeB) {\n var parentsA = getParents(nodeA);\n var parentsB = getParents(nodeB);\n // tslint:disable-next-line:prefer-for-of\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\nexport var getTopCommonParent = function (baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = false;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || contains(common, topCommon)) {\n topCommon = common;\n }\n else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n // TODO: add assert here?\n return topCommon;\n};\n/**\n * return list of nodes which are expected to be autofocused inside a given top nodes\n * @param entries\n * @param visibilityCache\n */\nexport var allParentAutofocusables = function (entries, visibilityCache) {\n return entries.reduce(function (acc, node) { return acc.concat(parentAutofocusables(node, visibilityCache)); }, []);\n};\n","import { NEW_FOCUS, newFocus } from './solver';\nimport { getAllTabbableNodes, getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { asArray, getFirst } from './utils/array';\nimport { pickAutofocus } from './utils/auto-focus';\nimport { getActiveElement } from './utils/getActiveElement';\nimport { isDefined, isNotAGuard } from './utils/is';\nimport { allParentAutofocusables, getTopCommonParent } from './utils/parenting';\nvar reorderNodes = function (srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) { return remap.set(entity.node, entity); });\n // remap to dstNodes\n return srcNodes.map(function (node) { return remap.get(node); }).filter(isDefined);\n};\n/**\n * given top node(s) and the last active element return the element to be focused next\n * @param topNode\n * @param lastNode\n */\nexport var getFocusMerge = function (topNode, lastNode) {\n var activeElement = getActiveElement(asArray(topNode).length > 0 ? document : getFirst(topNode).ownerDocument);\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(activeElement || topNode, topNode, entries);\n var visibilityCache = new Map();\n var anyFocusable = getAllTabbableNodes(entries, visibilityCache);\n var innerElements = getTabbableNodes(entries, visibilityCache).filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n });\n if (!innerElements[0]) {\n innerElements = anyFocusable;\n if (!innerElements[0]) {\n return undefined;\n }\n }\n var outerNodes = getAllTabbableNodes([commonParent], visibilityCache).map(function (_a) {\n var node = _a.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_a) {\n var node = _a.node;\n return node;\n });\n var newId = newFocus(innerNodes, outerNodes, activeElement, lastNode);\n if (newId === NEW_FOCUS) {\n var focusNode = pickAutofocus(anyFocusable, innerNodes, allParentAutofocusables(entries, visibilityCache));\n if (focusNode) {\n return { node: focusNode };\n }\n else {\n console.warn('focus-lock: cannot find any node to move focus into');\n return undefined;\n }\n }\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n","import { getTabbableNodes } from './utils/DOMutils';\nimport { getAllAffectedNodes } from './utils/all-affected';\nimport { isGuard, isNotAGuard } from './utils/is';\nimport { getTopCommonParent } from './utils/parenting';\n/**\n * return list of focusable elements inside a given top node\n * @deprecated use {@link getFocusableIn}. Yep, there is typo in the function name\n */\nexport var getFocusabledIn = function (topNode) {\n var entries = getAllAffectedNodes(topNode).filter(isNotAGuard);\n var commonParent = getTopCommonParent(topNode, topNode, entries);\n var visibilityCache = new Map();\n var outerNodes = getTabbableNodes([commonParent], visibilityCache, true);\n var innerElements = getTabbableNodes(entries, visibilityCache)\n .filter(function (_a) {\n var node = _a.node;\n return isNotAGuard(node);\n })\n .map(function (_a) {\n var node = _a.node;\n return node;\n });\n return outerNodes.map(function (_a) {\n var node = _a.node, index = _a.index;\n return ({\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node),\n });\n });\n};\n/**\n * return list of focusable elements inside a given top node\n */\nexport var getFocusableIn = getFocusabledIn;\n","import { getFocusMerge } from './focusMerge';\nexport var focusOn = function (target, focusOptions) {\n if ('focus' in target) {\n target.focus(focusOptions);\n }\n if ('contentWindow' in target && target.contentWindow) {\n target.contentWindow.focus();\n }\n};\nvar guardCount = 0;\nvar lockDisabled = false;\n/**\n * Sets focus at a given node. The last focused element will help to determine which element(first or last) should be focused.\n * HTML markers (see {@link import('./constants').FOCUS_AUTO} constants) can control autofocus\n * @param topNode\n * @param lastNode\n * @param options\n */\nexport var setFocus = function (topNode, lastNode, options) {\n if (options === void 0) { options = {}; }\n var focusable = getFocusMerge(topNode, lastNode);\n if (lockDisabled) {\n return;\n }\n if (focusable) {\n if (guardCount > 2) {\n // tslint:disable-next-line:no-console\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' +\n 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node, options.focusOptions);\n guardCount--;\n }\n};\n","export function deferAction(action) {\n setTimeout(action, 1);\n}\nexport var inlineProp = function inlineProp(name, value) {\n var obj = {};\n obj[name] = value;\n return obj;\n};","/* eslint-disable no-mixed-operators */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n lastPortaledElement = {\n observerNode: observerNode,\n portaledElement: portaledElement\n };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n var lastGuard = null;\n var i = startIndex;\n\n do {\n var item = allNodes[i];\n\n if (item.guard) {\n if (item.node.dataset.focusAutoGuard) {\n lastGuard = item;\n }\n } else if (item.lockItem) {\n if (i !== startIndex) {\n // we will tab to the next element\n return;\n }\n\n lastGuard = null;\n } else {\n break;\n }\n } while ((i += step) !== end);\n\n if (lastGuard) {\n lastGuard.node.tabIndex = 0;\n }\n}\n\nvar extractRef = function extractRef(ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n if (crossFrameOption) {\n // with cross frame return true for any value\n return Boolean(focusWasOutsideWindow);\n } // in other case return only of focus went a while aho\n\n\n return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar checkInHost = function checkInHost(check, el, boundary) {\n return el && ( // find host equal to active element and check nested active element\n el.host === check && (!el.activeElement || boundary.contains(el.activeElement)) // dive up\n || el.parentNode && checkInHost(check, el.parentNode, boundary));\n};\n\nvar withinHost = function withinHost(activeElement, workingArea) {\n return workingArea.some(function (area) {\n return checkInHost(activeElement, area, area);\n });\n};\n\nvar activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var _lastActiveTrap = lastActiveTrap,\n observed = _lastActiveTrap.observed,\n persistentFocus = _lastActiveTrap.persistentFocus,\n autoFocus = _lastActiveTrap.autoFocus,\n shards = _lastActiveTrap.shards,\n crossFrame = _lastActiveTrap.crossFrame,\n focusOptions = _lastActiveTrap.focusOptions;\n var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n var activeElement = document && document.activeElement;\n\n if (workingNode) {\n var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n if (!activeElement || focusWhitelisted(activeElement)) {\n if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n if (workingNode && !( // active element is \"inside\" working area\n focusInside(workingArea) || // check for shadow-dom contained elements\n activeElement && withinHost(activeElement, workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n if (document && !lastActiveFocus && activeElement && !autoFocus) {\n // Check if blur() exists, which is missing on certain elements on IE\n if (activeElement.blur) {\n activeElement.blur();\n }\n\n document.body.focus();\n } else {\n result = moveFocusInside(workingArea, lastActiveFocus, {\n focusOptions: focusOptions\n });\n lastPortaledElement = {};\n }\n }\n\n focusWasOutsideWindow = false;\n lastActiveFocus = document && document.activeElement;\n }\n }\n\n if (document) {\n var newActiveElement = document && document.activeElement;\n var allNodes = getFocusabledIn(workingArea);\n var focusedIndex = allNodes.map(function (_ref) {\n var node = _ref.node;\n return node;\n }).indexOf(newActiveElement);\n\n if (focusedIndex > -1) {\n // remove old focus\n allNodes.filter(function (_ref2) {\n var guard = _ref2.guard,\n node = _ref2.node;\n return guard && node.dataset.focusAutoGuard;\n }).forEach(function (_ref3) {\n var node = _ref3.node;\n return node.removeAttribute('tabIndex');\n });\n autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n autoGuard(focusedIndex, -1, -1, allNodes);\n }\n }\n }\n }\n\n return result;\n};\n\nvar onTrap = function onTrap(event) {\n if (activateTrap() && event) {\n // prevent scroll jump\n event.stopPropagation();\n event.preventDefault();\n }\n};\n\nvar onBlur = function onBlur() {\n return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n // detect portal\n var source = event.target;\n var currentNode = event.currentTarget;\n\n if (!currentNode.contains(source)) {\n recordPortal(currentNode, source);\n }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n var children = _ref4.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n onBlur: onBlur,\n onFocus: onFocus\n }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n focusWasOutsideWindow = 'just'; // using setTimeout to set this variable after React/sidecar reaction\n\n deferAction(function () {\n focusWasOutsideWindow = 'meanwhile';\n });\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', onTrap);\n document.addEventListener('focusout', onBlur);\n window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', onTrap);\n document.removeEventListener('focusout', onBlur);\n window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n return propsList.filter(function (_ref5) {\n var disabled = _ref5.disabled;\n return !disabled;\n });\n}\n\nfunction handleStateChangeOnClient(traps) {\n var trap = traps.slice(-1)[0];\n\n if (trap && !lastActiveTrap) {\n attachHandler();\n }\n\n var lastTrap = lastActiveTrap;\n var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n lastActiveTrap = trap;\n\n if (lastTrap && !sameTrap) {\n lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n if (!traps.filter(function (_ref6) {\n var id = _ref6.id;\n return id === lastTrap.id;\n }).length) {\n // allow defer is no other trap is awaiting restore\n lastTrap.returnFocus(!trap);\n }\n }\n\n if (trap) {\n lastActiveFocus = null;\n\n if (!sameTrap || lastTrap.observed !== trap.observed) {\n trap.onActivation();\n }\n\n activateTrap(true);\n deferAction(activateTrap);\n } else {\n detachHandler();\n lastActiveFocus = null;\n }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n return cb({\n moveFocusInside: moveFocusInside,\n focusInside: focusInside\n });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport FocusLockUI from './Lock';\nimport FocusTrap from './Trap';\n/* that would be a BREAKING CHANGE!\n// delaying sidecar execution till the first usage\nconst RequireSideCar = (props) => {\n // eslint-disable-next-line global-require\n const SideCar = require('./Trap').default;\n return <SideCar {...props} />;\n};\n*/\n\nvar FocusLockCombination = /*#__PURE__*/React.forwardRef(function FocusLockUICombination(props, ref) {\n return /*#__PURE__*/React.createElement(FocusLockUI, _extends({\n sideCar: FocusTrap,\n ref: ref\n }, props));\n});\n\nvar _ref = FocusLockUI.propTypes || {},\n sideCar = _ref.sideCar,\n propTypes = _objectWithoutPropertiesLoose(_ref, [\"sideCar\"]);\n\nFocusLockCombination.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nexport default FocusLockCombination;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/* eslint-disable react/require-default-props */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { inlineProp } from './util';\n\nvar AutoFocusInside = function AutoFocusInside(_ref) {\n var _ref$disabled = _ref.disabled,\n disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? undefined : _ref$className;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inlineProp(constants.FOCUS_AUTO, !disabled), {\n className: className\n }), children);\n};\n\nAutoFocusInside.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired,\n disabled: PropTypes.bool,\n className: PropTypes.string\n} : {};\nexport default AutoFocusInside;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { inlineProp } from './util';\nimport { mediumEffect } from './medium';\nexport var useFocusInside = function useFocusInside(observedRef) {\n React.useEffect(function () {\n var enabled = true;\n mediumEffect.useMedium(function (car) {\n var observed = observedRef && observedRef.current;\n\n if (enabled && observed) {\n if (!car.focusInside(observed)) {\n car.moveFocusInside(observed, null);\n }\n }\n });\n return function () {\n enabled = false;\n };\n }, [observedRef]);\n};\n\nfunction MoveFocusInside(_ref) {\n var isDisabled = _ref.disabled,\n className = _ref.className,\n children = _ref.children;\n var ref = React.useRef(null);\n useFocusInside(isDisabled ? undefined : ref);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inlineProp(constants.FOCUS_AUTO, !isDisabled), {\n ref: ref,\n className: className\n }), children);\n}\n\nMoveFocusInside.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired,\n disabled: PropTypes.bool,\n className: PropTypes.string\n} : {};\nMoveFocusInside.defaultProps = {\n disabled: false,\n className: undefined\n};\nexport default MoveFocusInside;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as constants from 'focus-lock/constants';\nimport { inlineProp } from './util';\n\nvar FreeFocusInside = function FreeFocusInside(_ref) {\n var children = _ref.children,\n className = _ref.className;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, inlineProp(constants.FOCUS_ALLOW, true), {\n className: className\n }), children);\n};\n\nFreeFocusInside.propTypes = process.env.NODE_ENV !== \"production\" ? {\n children: PropTypes.node.isRequired,\n className: PropTypes.string\n} : {};\nFreeFocusInside.defaultProps = {\n className: undefined\n};\nexport default FreeFocusInside;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n var dayOfMonth = date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import addWeeks from \"../addWeeks/index.js\";\nimport startOfWeek from \"../startOfWeek/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date[]} the array with starts of weeks from the week of the interval start to the week of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be 0, 1, ..., 6\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * const result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\nexport default function eachWeekOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n var startDateWeek = startOfWeek(startDate, options);\n var endDateWeek = startOfWeek(endDate, options);\n\n // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n endTime = endDateWeek.getTime();\n var weeks = [];\n var currentWeek = startDateWeek;\n while (currentWeek.getTime() <= endTime) {\n currentWeek.setHours(0);\n weeks.push(toDate(currentWeek));\n currentWeek = addWeeks(currentWeek, 1);\n currentWeek.setHours(15);\n }\n return weeks;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the local week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport default function getWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getWeekYear from \"../getWeekYear/index.js\";\nimport startOfWeek from \"../startOfWeek/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the start of a week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek(firstWeek, options);\n return date;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport startOfWeekYear from \"../startOfWeekYear/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport default function getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport default function lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setDate\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * const result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport default function setDate(dirtyDate, dirtyDayOfMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = toInteger(dirtyDayOfMonth);\n date.setDate(dayOfMonth);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n date.setFullYear(year);\n return date;\n}","import {Card, Text} from '@sanity/ui'\nimport React, {useCallback} from 'react'\n\ninterface CalendarDayProps {\n date: Date\n focused?: boolean\n onSelect: (date: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {date, focused, isCurrentMonth, isToday, onSelect, selected} = props\n\n const handleClick = useCallback(() => {\n onSelect(date)\n }, [date, onSelect])\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n padding={3}\n radius={2}\n selected={selected}\n tone={isToday || selected ? 'primary' : 'default'}\n >\n <Text\n muted={!selected && !isCurrentMonth}\n style={{textAlign: 'center'}}\n weight={isCurrentMonth ? 'medium' : 'regular'}\n >\n {date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {range} from 'lodash'\n\nexport const MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nexport const WEEK_DAY_NAMES = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n\nexport const HOURS_24 = range(0, 24)\n\nexport const ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\n\nexport const DEFAULT_TIME_PRESETS = [\n [0, 0],\n [6, 0],\n [12, 0],\n [18, 0],\n [23, 59],\n]\n\n// all weekdays except first\nexport const TAIL_WEEKDAYS = [1, 2, 3, 4, 5, 6]\n","import {addDays, eachWeekOfInterval, getWeek, lastDayOfMonth, startOfMonth} from 'date-fns'\n\nimport {TAIL_WEEKDAYS} from './constants'\n\nexport const getWeekStartsOfMonth = (date: Date): Date[] => {\n const firstDay = startOfMonth(date)\n return eachWeekOfInterval({\n start: firstDay,\n end: lastDayOfMonth(firstDay),\n })\n}\n\nexport const getWeekDaysFromWeekStarts = (weekStarts: Date[]): Date[][] => {\n return weekStarts.map((weekStart) => [\n weekStart,\n ...TAIL_WEEKDAYS.map((d) => addDays(weekStart, d)),\n ])\n}\n\ntype Week = {\n number: number\n days: Date[]\n}\n\nexport const getWeeksOfMonth = (date: Date): Week[] =>\n getWeekDaysFromWeekStarts(getWeekStartsOfMonth(date)).map(\n (days): Week => ({\n number: getWeek(days[0]),\n days,\n }),\n )\n\nexport const formatTime = (hours: number, minutes: number): string =>\n `${`${hours}`.padStart(2, '0')}:${`${minutes}`.padStart(2, '0')}`\n","import {Box, Grid, Text} from '@sanity/ui'\nimport {isSameDay, isSameMonth} from 'date-fns'\nimport React from 'react'\nimport {CalendarDay} from './CalendarDay'\nimport {WEEK_DAY_NAMES} from './constants'\nimport {getWeeksOfMonth} from './utils'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date: Date) => void\n hidden?: boolean\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n return (\n <Box aria-hidden={props.hidden || false} data-ui=\"CalendarMonth\">\n <Grid gap={1} style={{gridTemplateColumns: 'repeat(7, minmax(44px, 46px))'}}>\n {WEEK_DAY_NAMES.map((weekday) => (\n <Box key={weekday} paddingY={2}>\n <Text size={1} weight=\"medium\" style={{textAlign: 'center'}}>\n {weekday}\n </Text>\n </Box>\n ))}\n\n {getWeeksOfMonth(props.date).map((week, weekIdx) =>\n week.days.map((date, dayIdx) => {\n const focused = props.focused && isSameDay(date, props.focused)\n const selected = props.selected && isSameDay(date, props.selected)\n const isToday = isSameDay(date, new Date())\n const isCurrentMonth = props.focused && isSameMonth(date, props.focused)\n\n return (\n <CalendarDay\n date={date}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n // eslint-disable-next-line react/no-array-index-key\n key={`${weekIdx}-${dayIdx}`}\n onSelect={props.onSelect}\n selected={selected}\n />\n )\n })\n )}\n </Grid>\n </Box>\n )\n}\n","export const features = {\n dayPresets: false,\n timePresets: false,\n}\n","import React from 'react'\nimport {TextInput} from '@sanity/ui'\n\ntype TextInputProps = React.ComponentProps<typeof TextInput>\n\n// todo: delete this when v0.34 of @sanity/ui is out\ntype Workaround = any\n\ntype Props = Workaround &\n Omit<TextInputProps, 'onChange'> & {\n onChange?: (\n event: React.FocusEvent<HTMLInputElement> | React.ChangeEvent<HTMLInputElement>\n ) => void\n }\n\n/**\n * A TextInput that only emit onChange when it has to\n * By default it will only emit onChange when: 1) user hits enter or 2) user leaves the\n * field (e.g. onBlur) and the input value at this time is different from the given `value` prop\n */\nexport const LazyTextInput = React.forwardRef(function LazyTextInput(\n {onChange, onBlur, onKeyPress, value, ...rest}: Props,\n forwardedRef: React.ForwardedRef<HTMLInputElement>\n) {\n const [inputValue, setInputValue] = React.useState<string>()\n\n const handleChange = React.useCallback((event: any) => {\n setInputValue(event.currentTarget.value)\n }, [])\n\n const checkEvent = React.useCallback(\n (event: any) => {\n const currentValue = event.currentTarget.value\n if (currentValue !== `${value}`) {\n if (onChange) {\n onChange(event)\n }\n }\n setInputValue(undefined)\n },\n [onChange, value]\n )\n\n const handleBlur = React.useCallback(\n (e: any) => {\n checkEvent(e)\n if (onBlur) {\n onBlur(e)\n }\n },\n [checkEvent, onBlur]\n )\n\n const handleKeyPress = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n checkEvent(e)\n }\n if (onKeyPress) {\n onKeyPress(e)\n }\n },\n [checkEvent, onKeyPress]\n )\n\n return (\n <TextInput\n {...rest}\n data-testid=\"date-input\"\n ref={forwardedRef}\n value={inputValue === undefined ? value : inputValue}\n onChange={handleChange}\n onBlur={handleBlur}\n onKeyPress={handleKeyPress}\n />\n )\n})\n","import React from 'react'\nimport {TextInput} from '@sanity/ui'\nimport {LazyTextInput} from '../LazyTextInput'\n\ntype Props = Omit<React.ComponentProps<typeof TextInput>, 'onChange' | 'value'> & {\n value?: number\n onChange: (year: number) => void\n}\n\nexport const YearInput = ({onChange, ...props}: Props) => {\n const handleChange = React.useCallback(\n (event: React.FocusEvent<HTMLInputElement> | React.ChangeEvent<HTMLInputElement>) => {\n const numericValue = parseInt(event.currentTarget.value, 10)\n if (!isNaN(numericValue)) {\n onChange(numericValue)\n }\n },\n [onChange]\n )\n\n return <LazyTextInput {...props} onChange={handleChange} inputMode=\"numeric\" />\n}\n","import {Box, Button, Flex, Grid, Select, Text, useForwardedRef} from '@sanity/ui'\nimport {ChevronLeftIcon, ChevronRightIcon} from '@sanity/icons'\nimport {addDays, addMonths, setDate, setHours, setMinutes, setMonth, setYear} from 'date-fns'\nimport {range} from 'lodash'\nimport React, {forwardRef, useCallback, useEffect} from 'react'\nimport {CalendarMonth} from './CalendarMonth'\nimport {ARROW_KEYS, HOURS_24, MONTH_NAMES, DEFAULT_TIME_PRESETS} from './constants'\nimport {features} from './features'\nimport {formatTime} from './utils'\nimport {YearInput} from './YearInput'\n\ntype CalendarProps = Omit<React.ComponentProps<'div'>, 'onSelect'> & {\n selectTime?: boolean\n selectedDate?: Date\n timeStep?: number\n onSelect: (date: Date) => void\n focusedDate: Date\n onFocusedDateChange: (index: Date) => void\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const Calendar = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: React.ForwardedRef<HTMLDivElement>\n) {\n const {\n selectTime,\n onFocusedDateChange,\n selectedDate = new Date(),\n focusedDate = selectedDate,\n timeStep = 1,\n onSelect,\n ...restProps\n } = props\n\n const setFocusedDate = useCallback(\n (date: Date) => onFocusedDateChange(date),\n [onFocusedDateChange]\n )\n\n const setFocusedDateMonth = useCallback(\n (month: number) => setFocusedDate(setDate(setMonth(focusedDate, month), 1)),\n [focusedDate, setFocusedDate]\n )\n\n const handleFocusedMonthChange = useCallback(\n (e: React.FormEvent<HTMLSelectElement>) => setFocusedDateMonth(Number(e.currentTarget.value)),\n [setFocusedDateMonth]\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate]\n )\n\n const setFocusedDateYear = useCallback(\n (year: number) => setFocusedDate(setYear(focusedDate, year)),\n [focusedDate, setFocusedDate]\n )\n\n const handleDateChange = useCallback(\n (date: Date) => {\n onSelect(setMinutes(setHours(date, selectedDate.getHours()), selectedDate.getMinutes()))\n },\n [onSelect, selectedDate]\n )\n\n const handleMinutesChange = useCallback(\n (event: React.FormEvent<HTMLSelectElement>) => {\n const m = Number(event.currentTarget.value)\n onSelect(setMinutes(selectedDate, m))\n },\n [onSelect, selectedDate]\n )\n\n const handleHoursChange = useCallback(\n (event: React.FormEvent<HTMLSelectElement>) => {\n const m = Number(event.currentTarget.value)\n onSelect(setHours(selectedDate, m))\n },\n [onSelect, selectedDate]\n )\n\n const handleTimeChange = useCallback(\n (hours: number, mins: number) => {\n onSelect(setHours(setMinutes(selectedDate, mins), hours))\n },\n [onSelect, selectedDate]\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: any) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.target.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(addDays(focusedDate, -7))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(addDays(focusedDate, 7))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(addDays(focusedDate, -1))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(addDays(focusedDate, 1))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate]\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]'\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n const handleYesterdayClick = useCallback(\n () => handleDateChange(addDays(new Date(), -1)),\n [handleDateChange]\n )\n\n const handleTodayClick = useCallback(() => handleDateChange(new Date()), [handleDateChange])\n\n const handleTomorrowClick = useCallback(\n () => handleDateChange(addDays(new Date(), 1)),\n [handleDateChange]\n )\n\n const handleNowClick = useCallback(() => onSelect(new Date()), [onSelect])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Select date */}\n <Box padding={2}>\n {/* Day presets */}\n {features.dayPresets && (\n <Grid columns={3} data-ui=\"CalendaryDayPresets\" gap={1}>\n <Button text=\"Yesterday\" mode=\"bleed\" fontSize={1} onClick={handleYesterdayClick} />\n <Button text=\"Today\" mode=\"bleed\" fontSize={1} onClick={handleTodayClick} />\n <Button text=\"Tomorrow\" mode=\"bleed\" fontSize={1} onClick={handleTomorrowClick} />\n </Grid>\n )}\n\n {/* Select month and year */}\n <Flex>\n <Box flex={1}>\n <CalendarMonthSelect\n moveFocusedDate={moveFocusedDate}\n onChange={handleFocusedMonthChange}\n value={focusedDate?.getMonth()}\n />\n </Box>\n <Box marginLeft={2}>\n <CalendarYearSelect\n moveFocusedDate={moveFocusedDate}\n onChange={setFocusedDateYear}\n value={focusedDate.getFullYear()}\n />\n </Box>\n </Flex>\n\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n marginTop={2}\n overflow=\"hidden\"\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={focusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Select time */}\n {selectTime && (\n <Box padding={2} style={{borderTop: '1px solid var(--card-border-color)'}}>\n <Flex align=\"center\">\n <Flex align=\"center\" flex={1}>\n <Box>\n <Select\n aria-label=\"Select hour\"\n value={selectedDate?.getHours()}\n onChange={handleHoursChange}\n >\n {HOURS_24.map((h) => (\n <option key={h} value={h}>\n {`${h}`.padStart(2, '0')}\n </option>\n ))}\n </Select>\n </Box>\n\n <Box paddingX={1}>\n <Text>:</Text>\n </Box>\n\n <Box>\n <Select\n aria-label=\"Select minutes\"\n value={selectedDate?.getMinutes()}\n onChange={handleMinutesChange}\n >\n {range(0, 60, timeStep).map((m) => (\n <option key={m} value={m}>\n {`${m}`.padStart(2, '0')}\n </option>\n ))}\n </Select>\n </Box>\n </Flex>\n\n <Box marginLeft={2}>\n <Button text=\"Set to current time\" mode=\"bleed\" onClick={handleNowClick} />\n </Box>\n </Flex>\n\n {features.timePresets && (\n <Flex direction=\"row\" justify=\"center\" align=\"center\" style={{marginTop: 5}}>\n {DEFAULT_TIME_PRESETS.map(([hours, minutes]) => {\n return (\n <CalendarTimePresetButton\n key={`${hours}-${minutes}`}\n hours={hours}\n minutes={minutes}\n onTimeChange={handleTimeChange}\n selectedDate={selectedDate}\n />\n )\n })}\n </Flex>\n )}\n </Box>\n )}\n </Box>\n )\n})\n\nfunction CalendarTimePresetButton(props: {\n hours: number\n minutes: number\n onTimeChange: (hours: number, minutes: number) => void\n selectedDate: Date\n}) {\n const {hours, minutes, onTimeChange, selectedDate} = props\n const formatted = formatTime(hours, minutes)\n\n const handleClick = useCallback(() => {\n onTimeChange(hours, minutes)\n }, [hours, minutes, onTimeChange])\n\n return (\n <Button\n text={formatted}\n aria-label={`${formatted} on ${selectedDate.toDateString()}`}\n mode=\"bleed\"\n fontSize={1}\n onClick={handleClick}\n />\n )\n}\n\nfunction CalendarMonthSelect(props: {\n moveFocusedDate: (by: number) => void\n onChange: (e: React.FormEvent<HTMLSelectElement>) => void\n value?: number\n}) {\n const {moveFocusedDate, onChange, value} = props\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Flex flex={1}>\n <Button\n aria-label=\"Go to previous month\"\n onClick={handlePrevMonthClick}\n mode=\"bleed\"\n icon={ChevronLeftIcon}\n paddingX={2}\n radius={0}\n />\n <Box flex={1}>\n <Select radius={0} value={value} onChange={onChange}>\n {MONTH_NAMES.map((m, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <option key={i} value={i}>\n {m}\n </option>\n ))}\n </Select>\n </Box>\n <Button\n aria-label=\"Go to next month\"\n mode=\"bleed\"\n icon={ChevronRightIcon}\n onClick={handleNextMonthClick}\n paddingX={2}\n radius={0}\n />\n </Flex>\n )\n}\n\nfunction CalendarYearSelect(props: {\n moveFocusedDate: (by: number) => void\n onChange: (year: number) => void\n value?: number\n}) {\n const {moveFocusedDate, onChange, value} = props\n\n const handlePrevYearClick = useCallback(() => moveFocusedDate(-12), [moveFocusedDate])\n\n const handleNextYearClick = useCallback(() => moveFocusedDate(12), [moveFocusedDate])\n\n return (\n <Flex>\n <Button\n aria-label=\"Previous year\"\n onClick={handlePrevYearClick}\n mode=\"bleed\"\n icon={ChevronLeftIcon}\n paddingX={2}\n radius={0}\n />\n <YearInput value={value} onChange={onChange} radius={0} style={{width: 65}} />\n <Button\n aria-label=\"Next year\"\n onClick={handleNextYearClick}\n mode=\"bleed\"\n icon={ChevronRightIcon}\n paddingX={2}\n radius={0}\n />\n </Flex>\n )\n}\n","import React from 'react'\nimport {Calendar} from './calendar/Calendar'\n\nexport const DatePicker = React.forwardRef(function DatePicker(\n props: Omit<React.ComponentProps<'div'>, 'onChange'> & {\n value?: Date\n onChange: (nextDate: Date) => void\n selectTime?: boolean\n timeStep?: number\n },\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const {value = new Date(), onChange, ...rest} = props\n const [focusedDate, setFocusedDay] = React.useState<Date>()\n\n const handleSelect = React.useCallback(\n (nextDate: any) => {\n onChange(nextDate)\n setFocusedDay(undefined)\n },\n [onChange]\n )\n\n return (\n <Calendar\n {...rest}\n ref={ref}\n selectedDate={value}\n onSelect={handleSelect}\n focusedDate={focusedDate || value}\n onFocusedDateChange={setFocusedDay}\n />\n )\n})\n","import React, {forwardRef, useCallback, useRef, useState} from 'react'\nimport FocusLock from 'react-focus-lock'\nimport {Box, Button, LayerProvider, Popover, useClickOutside, useForwardedRef} from '@sanity/ui'\nimport {CalendarIcon} from '@sanity/icons'\nimport {DatePicker} from './DatePicker'\nimport {LazyTextInput} from './LazyTextInput'\n\nexport interface DateTimeInputProps {\n customValidity?: string\n id?: string\n inputValue?: string\n onChange: (date: Date | null) => void\n onInputChange?: (event: React.FocusEvent<HTMLInputElement>) => void\n placeholder?: string\n readOnly?: boolean\n selectTime?: boolean\n timeStep?: number\n value?: Date\n}\n\nexport const DateTimeInput = forwardRef(function DateTimeInput(\n props: DateTimeInputProps,\n ref: React.ForwardedRef<HTMLInputElement>\n) {\n const {value, inputValue, onInputChange, onChange, selectTime, timeStep, ...rest} = props\n const [popoverRef, setPopoverRef] = useState<HTMLElement | null>(null)\n const forwardedRef = useForwardedRef(ref)\n const buttonRef = useRef(null)\n\n const [isPickerOpen, setPickerOpen] = useState(false)\n\n useClickOutside(() => setPickerOpen(false), [popoverRef])\n\n const handleDeactivation = useCallback(() => {\n forwardedRef.current?.focus()\n forwardedRef.current?.select()\n }, [forwardedRef])\n\n const handleKeyUp = useCallback((e: any) => {\n if (e.key === 'Escape') {\n setPickerOpen(false)\n }\n }, [])\n\n const handleClick = useCallback(() => setPickerOpen(true), [])\n\n const suffix = (\n <Box padding={1}>\n <Button\n ref={buttonRef}\n icon={CalendarIcon}\n mode=\"bleed\"\n padding={2}\n onClick={handleClick}\n style={{display: 'block'}}\n data-testid=\"select-date-button\"\n />\n </Box>\n )\n\n return (\n <LazyTextInput\n ref={forwardedRef}\n {...rest}\n value={inputValue}\n onChange={onInputChange}\n suffix={\n isPickerOpen ? (\n // Note: we're conditionally inserting the popover here due to an\n // issue with popovers rendering incorrectly on subsequent renders\n // see https://github.com/sanity-io/design/issues/519\n <LayerProvider zOffset={1000}>\n <Popover\n constrainSize\n data-testid=\"date-input-dialog\"\n portal\n content={\n <Box overflow=\"auto\">\n <FocusLock onDeactivation={handleDeactivation}>\n <DatePicker\n selectTime={selectTime}\n timeStep={timeStep}\n onKeyUp={handleKeyUp}\n value={value}\n onChange={onChange}\n />\n </FocusLock>\n </Box>\n }\n open\n placement=\"bottom\"\n ref={setPopoverRef}\n radius={2}\n >\n {suffix}\n </Popover>\n </LayerProvider>\n ) : (\n suffix\n )\n }\n />\n )\n})\n","/* eslint-disable no-nested-ternary */\n\nimport {TextInput, useForwardedRef} from '@sanity/ui'\nimport React, {useEffect} from 'react'\n\nimport {DateTimeInput} from './base/DateTimeInput'\nimport {ParseResult} from './types'\n\nexport interface CommonDateTimeInputProps {\n id: string\n deserialize: (value: string) => ParseResult\n formatInputValue: (date: Date) => string\n onChange: (nextDate: string | null) => void\n parseInputValue: (inputValue: string) => ParseResult\n placeholder?: string\n readOnly: boolean | undefined\n selectTime?: boolean\n serialize: (date: Date) => string\n timeStep?: number\n value: number | Date | string | undefined | null\n}\n\nconst DEFAULT_PLACEHOLDER_TIME = new Date()\n\nexport const CommonDateTimeInput = React.forwardRef(function CommonDateTimeInput(\n props: CommonDateTimeInputProps,\n ref: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n id,\n deserialize,\n formatInputValue,\n onChange,\n parseInputValue,\n placeholder,\n readOnly,\n selectTime,\n serialize,\n timeStep,\n value,\n ...restProps\n } = props\n\n const [localValue, setLocalValue] = React.useState<string | null>(null)\n\n useEffect(() => {\n setLocalValue(null)\n }, [value])\n\n const handleDatePickerInputChange = React.useCallback(\n (event: any) => {\n const nextInputValue = event.currentTarget.value\n const result = nextInputValue === '' ? null : parseInputValue(nextInputValue)\n\n if (result === null) {\n onChange(null)\n\n // If the field value is undefined and we are clearing the invalid value\n // the above useEffect won't trigger, so we do some extra clean up here\n if (typeof value === 'undefined' && localValue) {\n setLocalValue(null)\n }\n } else if (result.isValid) {\n onChange(serialize(result.date))\n } else {\n setLocalValue(nextInputValue)\n }\n },\n [parseInputValue, onChange, value, localValue, serialize],\n )\n\n const handleDatePickerChange = React.useCallback(\n (nextDate: Date | null) => {\n onChange(nextDate ? serialize(nextDate) : null)\n },\n [serialize, onChange],\n )\n\n const forwardedRef = useForwardedRef(ref)\n\n const parseResult = localValue\n ? parseInputValue(localValue)\n : value\n ? deserialize(value as string)\n : null\n\n const inputValue = localValue\n ? localValue\n : parseResult?.isValid\n ? formatInputValue(parseResult.date)\n : (value as string)\n\n return readOnly ? (\n <TextInput value={inputValue} readOnly disabled={readOnly} />\n ) : (\n <DateTimeInput\n {...restProps}\n id={id}\n selectTime={selectTime}\n timeStep={timeStep}\n placeholder={placeholder || `e.g. ${formatInputValue(DEFAULT_PLACEHOLDER_TIME)}`}\n ref={forwardedRef}\n value={parseResult?.date}\n inputValue={inputValue || ''}\n readOnly={Boolean(readOnly)}\n onInputChange={handleDatePickerInputChange}\n onChange={handleDatePickerChange}\n customValidity={parseResult?.error}\n />\n )\n})\n","import {format, parse} from '@sanity/util/legacyDateFormat'\nimport React, {useCallback} from 'react'\n\nimport {CommonDateTimeInput} from './CommonDateTimeInput'\n\ninterface ParsedOptions {\n dateFormat: string\n calendarTodayLabel: string\n}\n\ninterface SchemaOptions {\n dateFormat?: string\n calendarTodayLabel?: string\n}\n\ntype DateInputProps = {\n id: string\n onChange: (date: string | null) => void\n disabled?: boolean\n value: number | Date | null\n type: {\n name: string\n title: string\n description?: string\n options?: SchemaOptions\n placeholder?: string\n }\n}\n\n// This is the format dates are stored on\nconst VALUE_FORMAT = 'YYYY-MM-DD'\n// default to how they are stored\nconst DEFAULT_DATE_FORMAT = VALUE_FORMAT\n\nfunction parseOptions(options: SchemaOptions = {}): ParsedOptions {\n return {\n dateFormat: options.dateFormat || DEFAULT_DATE_FORMAT,\n calendarTodayLabel: options.calendarTodayLabel || 'Today',\n }\n}\n\nconst deserialize = (value: string) => parse(value, VALUE_FORMAT)\nconst serialize = (date: Date) => format(date, VALUE_FORMAT)\n\n/**\n * @hidden\n * @beta */\nexport function DateInput(props: DateInputProps) {\n const {id, onChange, type, value, disabled, ...rest} = props\n\n const {dateFormat} = parseOptions(type.options)\n\n const handleChange = useCallback(\n (nextDate: string | null) => {\n onChange(nextDate)\n },\n [onChange],\n )\n\n const formatInputValue = useCallback((date: Date) => format(date, dateFormat), [dateFormat])\n\n const parseInputValue = useCallback(\n (inputValue: string) => parse(inputValue, dateFormat),\n [dateFormat],\n )\n\n return (\n <CommonDateTimeInput\n id={id}\n {...rest}\n deserialize={deserialize}\n formatInputValue={formatInputValue}\n onChange={handleChange}\n parseInputValue={parseInputValue}\n readOnly={disabled}\n selectTime={false}\n serialize={serialize}\n value={value}\n />\n )\n}\n","import {Box, Flex, Select, Text} from '@sanity/ui'\nimport React, {useCallback} from 'react'\nimport {Options, Weekday} from 'rrule'\n\nimport {DAYS} from '../../constants'\n\ninterface MonthlyProps {\n byweekday: Weekday\n setByweekday: (value: Options['byweekday']) => void\n}\n\nexport function Monthly(props: MonthlyProps) {\n const {byweekday, setByweekday} = props\n\n const {weekday: dayNo, n: weekNo} =\n byweekday && Array.isArray(byweekday) ? byweekday[0] : {weekday: null, n: null}\n\n const handleChange = useCallback(\n (event: React.FormEvent<HTMLSelectElement>) => {\n const {value, name} = event.currentTarget\n\n if (name == 'week') {\n if (value == '') {\n setByweekday(null)\n } else {\n const newWeekday = new Weekday(dayNo ? dayNo : 0, Number(value))\n setByweekday([newWeekday])\n }\n } else if (name == 'day') {\n const newWeekday = new Weekday(Number(value), weekNo ? weekNo : 1)\n setByweekday([newWeekday])\n }\n },\n [dayNo, setByweekday, weekNo],\n )\n\n return (\n <Flex gap={2} align=\"center\">\n <Text style={{whiteSpace: 'nowrap'}}>On the</Text>\n <Box>\n <Select name=\"week\" value={weekNo?.toString()} onChange={handleChange}>\n <option value=\"\">same day</option>\n <option value=\"1\">first</option>\n <option value=\"2\">second</option>\n <option value=\"3\">third</option>\n <option value=\"4\">fourth</option>\n <option value=\"5\">fifth</option>\n <option value=\"-1\">last</option>\n </Select>\n </Box>\n {weekNo && (\n <Box>\n <Select name=\"day\" value={dayNo ? dayNo : 1} onChange={handleChange}>\n {DAYS.map((day: string, i: number) => {\n const weekday = new Weekday(i)\n return (\n <option value={weekday.weekday} key={weekday.weekday}>\n {day}\n </option>\n )\n })}\n </Select>\n </Box>\n )}\n </Flex>\n )\n}\n","import {Button, Grid, Stack, Text} from '@sanity/ui'\nimport React, {useCallback, useMemo} from 'react'\nimport {type Options, Weekday} from 'rrule'\n\nimport {DAYS} from '../../constants'\n\ninterface WeeklyProps {\n byweekday: Weekday\n setByweekday: (value: Options['byweekday']) => void\n}\n\nexport function Weekly(props: WeeklyProps) {\n const {byweekday, setByweekday} = props\n\n const currentWeekdays: number[] = useMemo(() => {\n return Array.isArray(byweekday) ? byweekday.map((weekday) => weekday.weekday) : []\n }, [byweekday])\n\n const handleChange = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n const value = Number(event.currentTarget.value)\n\n const index = currentWeekdays.indexOf(value)\n\n if (index === -1) {\n currentWeekdays.push(value)\n } else {\n currentWeekdays.splice(index, 1)\n }\n\n setByweekday(\n currentWeekdays.length\n ? currentWeekdays.map((currentWeekday) => new Weekday(Number(currentWeekday)))\n : null,\n )\n },\n [currentWeekdays, setByweekday],\n )\n\n return (\n <Stack space={3}>\n <Text style={{whiteSpace: 'nowrap'}}>Repeats on</Text>\n <Grid columns={DAYS.length} gap={1}>\n {DAYS.map((day: string, i: number) => {\n const weekday = new Weekday(i)\n\n return (\n <Button\n key={day}\n mode={currentWeekdays && currentWeekdays.includes(i) ? 'default' : 'ghost'}\n tone={currentWeekdays && currentWeekdays.includes(i) ? 'primary' : 'default'}\n text={weekday.toString()}\n value={i}\n style={{cursor: 'pointer'}}\n onClick={handleChange}\n />\n )\n })}\n </Grid>\n </Stack>\n )\n}\n","import {Box, Button, Dialog, Flex, Radio, Select, Stack, Text, TextInput} from '@sanity/ui'\nimport React, {useCallback, useMemo, useState} from 'react'\nimport {Options, RRule, rrulestr, Weekday} from 'rrule'\nimport {type ObjectInputProps, set} from 'sanity'\n\nimport {DEFAULT_COUNTS} from '../../constants'\nimport {PluginConfig} from '../../types'\nimport {DateInput} from '../DateInputs'\nimport {Monthly} from './Monthly'\nimport {Weekly} from './Weekly'\n\nexport function CustomRule({\n open,\n onClose,\n onChange,\n initialValue,\n startDate,\n dateTimeOptions,\n}: {\n open: boolean\n onClose: () => void\n onChange: ObjectInputProps['onChange']\n initialValue: string\n startDate: string | undefined\n dateTimeOptions: PluginConfig['dateTimeOptions']\n}) {\n const initialRule = useMemo(() => {\n return initialValue ? rrulestr(initialValue) : new RRule()\n }, [initialValue])\n\n const [frequency, setFrequency] = useState<Options['freq']>(initialRule.origOptions.freq || 1)\n const [interval, setInterval] = useState<Options['interval']>(\n initialRule.origOptions.interval || 1,\n )\n const [count, setCount] = useState<Options['count']>(initialRule.origOptions.count || null)\n const [until, setUntil] = useState<Options['until'] | number>(\n initialRule.origOptions.until || null,\n )\n const [byweekday, setByweekday] = useState<Options['byweekday']>(\n initialRule.origOptions.byweekday || null,\n )\n\n const handleChange = useCallback(\n (event: React.FormEvent<HTMLInputElement> | React.FormEvent<HTMLSelectElement>) => {\n const {name, value} = event.currentTarget\n\n if (name === 'freq') {\n setFrequency(Number(value))\n } else if (name === 'interval') {\n setInterval(Number(value))\n } else if (name === 'interval') {\n setCount(Number(value))\n } else if (name === 'count') {\n setCount(Number(value))\n }\n },\n [],\n )\n\n const getUntilDate = useCallback(() => {\n const fromDate = new Date(startDate ? startDate : Date.now())\n\n if (frequency === RRule.YEARLY) {\n fromDate.setFullYear(fromDate.getFullYear() + DEFAULT_COUNTS[frequency])\n } else if (frequency === RRule.MONTHLY) {\n fromDate.setMonth(fromDate.getMonth() + DEFAULT_COUNTS[frequency])\n } else if (frequency === RRule.WEEKLY) {\n fromDate.setDate(fromDate.getDate() + DEFAULT_COUNTS[frequency] * 7)\n } else if (frequency === RRule.DAILY) {\n fromDate.setDate(fromDate.getDate() + DEFAULT_COUNTS[frequency])\n }\n\n return fromDate\n }, [frequency, startDate])\n\n const handleUntilChange = useCallback((date: string | null) => {\n if (date) {\n setUntil(new Date(date))\n }\n }, [])\n\n const handleEndChange = useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n const {value} = event.currentTarget\n\n if (!value) {\n setUntil(null)\n setCount(null)\n } else if (value == 'count') {\n setCount(DEFAULT_COUNTS[frequency])\n setUntil(null)\n } else if (value == 'until') {\n const untilDate = getUntilDate()\n setUntil(untilDate)\n setCount(null)\n }\n },\n [frequency, getUntilDate],\n )\n\n const handleConfirm = useCallback(() => {\n const newOptions = {\n freq: frequency,\n interval,\n count: count || null,\n until: until ? (until as Date) : null,\n byweekday,\n }\n\n const newRule = new RRule(newOptions)\n\n onClose()\n onChange(set(newRule.toString(), ['rrule']))\n }, [byweekday, count, frequency, interval, onChange, onClose, until])\n\n return (\n open && (\n <Dialog\n header=\"Custom recurrence\"\n id=\"dialog-example\"\n onClose={onClose}\n zOffset={1000}\n width={1}\n >\n <Flex direction=\"column\">\n <Box flex={1} overflow=\"auto\" padding={4}>\n <Stack space={4}>\n <Flex gap={2} align=\"center\">\n <Text style={{whiteSpace: 'nowrap'}}>Repeat every</Text>\n <Box style={{width: '75px'}}>\n <TextInput\n name=\"interval\"\n type=\"number\"\n value={interval}\n onChange={handleChange}\n />\n </Box>\n <Box>\n <Select name=\"freq\" value={frequency} onChange={handleChange}>\n <option value={RRule.YEARLY}>years</option>\n <option value={RRule.MONTHLY}>months</option>\n <option value={RRule.WEEKLY}>weeks</option>\n <option value={RRule.DAILY}>days</option>\n </Select>\n </Box>\n </Flex>\n\n {frequency === RRule.MONTHLY && (\n <Monthly byweekday={byweekday as Weekday} setByweekday={setByweekday} />\n )}\n\n {frequency === RRule.WEEKLY && (\n <Weekly byweekday={byweekday as Weekday} setByweekday={setByweekday} />\n )}\n\n <Stack space={2}>\n <Text>Ends</Text>\n <Flex gap={2} paddingY={2} align=\"center\">\n <Radio\n checked={!count && !until}\n name=\"ends\"\n onChange={handleEndChange}\n value=\"\"\n id=\"ends-never\"\n />\n <Text htmlFor=\"ends-never\" as=\"label\">\n Never\n </Text>\n </Flex>\n <Flex gap={2} align=\"center\">\n <Radio\n checked={!!until}\n name=\"ends\"\n onChange={handleEndChange}\n value=\"until\"\n id=\"ends-until\"\n />\n <Text htmlFor=\"ends-until\" as=\"label\" style={{width: '75px'}}>\n On\n </Text>\n <Box style={{width: '200px'}}>\n <DateInput\n id=\"until\"\n onChange={handleUntilChange}\n type={{\n name: 'until',\n title: 'Date',\n options: dateTimeOptions,\n }}\n value={until ? new Date(until) : getUntilDate()}\n disabled={!until}\n />\n </Box>\n </Flex>\n <Flex gap={2} align=\"center\">\n <Radio\n checked={!!count}\n name=\"ends\"\n onChange={handleEndChange}\n value=\"count\"\n id=\"ends-count\"\n />\n <Text htmlFor=\"ends-count\" as=\"label\" style={{width: '75px'}}>\n After\n </Text>\n <Box style={{width: '75px'}}>\n <TextInput\n name=\"count\"\n type=\"number\"\n value={count || DEFAULT_COUNTS[frequency]}\n onChange={handleChange}\n disabled={!count}\n />\n </Box>\n <Text style={{whiteSpace: 'nowrap'}}>occurrences</Text>\n </Flex>\n </Stack>\n </Stack>\n </Box>\n <Box paddingX={4} paddingY={3} style={{borderTop: '1px solid var(--card-border-color)'}}>\n <Flex gap={2} justify=\"flex-end\">\n <Button text=\"Cancel\" mode=\"ghost\" onClick={onClose} />\n <Button text=\"Done\" tone=\"positive\" onClick={handleConfirm} />\n </Flex>\n </Box>\n </Flex>\n </Dialog>\n )\n )\n}\n","import {Box, Flex, Grid, Select, Stack, Text} from '@sanity/ui'\nimport {upperFirst} from 'lodash'\nimport React, {useCallback, useState} from 'react'\nimport {rrulestr} from 'rrule'\nimport {ObjectInputMember, type ObjectInputProps, set} from 'sanity'\nimport {Feedback} from 'sanity-plugin-utils'\n\nimport type {PluginConfig, WithRequiredProperty} from '../types'\nimport {validateRRuleStrings} from '../utils'\nimport {CustomRule} from './CustomRule'\n\ntype RecurringDatesProps = ObjectInputProps & {\n pluginConfig: WithRequiredProperty<PluginConfig, 'defaultRecurrences'>\n}\n\nexport function RecurringDates(props: RecurringDatesProps) {\n const {onChange, members, value: currentValue, schemaType, pluginConfig} = props\n const {options}: {options?: PluginConfig} = schemaType\n const {defaultRecurrences, hideEndDate, hideCustom, dateTimeOptions} = {\n ...pluginConfig,\n ...options,\n }\n\n // For the custom RRULE modal\n const [open, setOpen] = useState(false)\n const onClose = useCallback(() => setOpen(false), [])\n const onOpen = useCallback(() => setOpen(true), [])\n\n // Update the RRULE field when the select changes\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLSelectElement>) => {\n const {value} = event.currentTarget\n\n if (value == 'custom') {\n // open modal...\n onOpen()\n } else {\n // update the field\n onChange(set(value, ['rrule']))\n }\n },\n [onChange, onOpen],\n )\n\n // Validate the default recurrences\n const invalidRecurrences = validateRRuleStrings(defaultRecurrences)\n\n // Grab the fields we want to output from the members array\n const startDateMember = members.find(\n (member) => member.kind === 'field' && member.name === 'startDate',\n )\n const endDateMember = members.find(\n (member) => member.kind === 'field' && member.name === 'endDate',\n )\n const rruleMember = members.find((member) => member.kind === 'field' && member.name === 'rrule')\n\n // If we have a custom RRULE, add it to the list of options\n const availableRecurrences = [...defaultRecurrences]\n if (currentValue && !availableRecurrences.includes(currentValue?.rrule)) {\n availableRecurrences.push(currentValue?.rrule)\n }\n\n // Pass along functions to each member so that it knows how to render\n const renderProps = {\n renderField: props.renderField,\n renderInput: props.renderInput,\n renderItem: props.renderItem,\n renderPreview: props.renderPreview,\n }\n\n if (startDateMember?.kind == 'field') {\n startDateMember.field.schemaType.options = {\n ...startDateMember?.field?.schemaType.options,\n ...dateTimeOptions,\n }\n }\n\n if (endDateMember?.kind == 'field') {\n endDateMember.field.schemaType.options = {\n ...endDateMember?.field?.schemaType.options,\n ...dateTimeOptions,\n }\n }\n\n return (\n <Stack space={3}>\n <Grid columns={hideEndDate ? 1 : 2} gap={3}>\n <Flex align=\"flex-end\" gap={2}>\n <Box flex={1}>\n {startDateMember && <ObjectInputMember member={startDateMember} {...renderProps} />}\n </Box>\n </Flex>\n {!hideEndDate && (\n <Flex align=\"flex-end\" gap={2}>\n <Box flex={1}>\n {endDateMember && <ObjectInputMember member={endDateMember} {...renderProps} />}\n </Box>\n </Flex>\n )}\n </Grid>\n {invalidRecurrences ? (\n <Feedback tone=\"critical\">\n <Text size={1}>\n <strong>Error:</strong> An invalid RRULE string was provided in the{' '}\n <code>defaultRecurrences</code> array. Check plugin configuration.\n </Text>\n </Feedback>\n ) : (\n <Select onChange={handleChange} value={currentValue?.rrule}>\n <option value=\"\">Doesn't repeat</option>\n {availableRecurrences.map((recurrence) => {\n if (!recurrence) {\n return null\n }\n const rule = rrulestr(recurrence)\n\n return (\n <option key={recurrence} value={recurrence}>\n {upperFirst(rule.toText())}\n </option>\n )\n })}\n {!hideCustom && <option value=\"custom\">Custom...</option>}\n </Select>\n )}\n {rruleMember && <ObjectInputMember member={rruleMember} {...renderProps} />}\n <CustomRule\n open={open}\n onClose={onClose}\n onChange={onChange}\n initialValue={currentValue?.rrule}\n startDate={\n startDateMember?.kind == 'field' ? (startDateMember?.field?.value as string) : undefined\n }\n dateTimeOptions={dateTimeOptions}\n />\n </Stack>\n )\n}\n","import {defineField} from 'sanity'\n\nimport {RecurringDates} from '../components/RecurringDate'\nimport {PluginConfig, WithRequiredProperty} from '../types'\n\nexport default (config: WithRequiredProperty<PluginConfig, 'defaultRecurrences'>) => {\n const {hideEndDate, dateTimeOptions} = config\n\n return defineField({\n name: 'recurringDates',\n title: 'Dates',\n type: 'object',\n fields: [\n defineField({\n title: 'Start Date',\n name: 'startDate',\n type: 'datetime',\n options: dateTimeOptions,\n validation: (Rule) => Rule.required(),\n }),\n defineField({\n title: 'End Date',\n name: 'endDate',\n type: 'datetime',\n options: dateTimeOptions,\n validation: (Rule) => Rule.min(Rule.valueOfField('startDate')),\n }),\n defineField({\n title: 'Recurring event',\n name: 'recurs',\n type: 'boolean',\n }),\n defineField({\n title: 'RRULE',\n name: 'rrule',\n type: 'string',\n hidden: true,\n }),\n ].filter((field) => !(field.name === 'endDate' && hideEndDate)),\n components: {\n input: (props) => RecurringDates({...props, pluginConfig: config}),\n },\n })\n}\n","import {definePlugin} from 'sanity'\n\nimport {DEFAULT_CONFIG} from './constants'\nimport recurringDateSchema from './schema/recurringDates'\nimport {PluginConfig, WithRequiredProperty} from './types'\n\nexport const recurringDates = definePlugin<PluginConfig>((config) => {\n const pluginConfig: WithRequiredProperty<PluginConfig, 'defaultRecurrences'> = {\n ...DEFAULT_CONFIG,\n ...config,\n }\n\n return {\n name: 'sanity-plugin-recurring-dates',\n schema: {\n types: [recurringDateSchema(pluginConfig)],\n },\n }\n})\n"],"names":["DEFAULT_RECURRENCES","DEFAULT_CONFIG","defaultRecurrences","DAYS","DEFAULT_COUNTS","validateRRuleString","recurrence","rrulestr","e","validateRRuleStrings","recurrences","some","global","factory","module","exports","this","hookCallback","hooks","apply","arguments","setHookCallback","callback","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","i","arrLen","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","fun","t","len","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","bigHour","undefined","isFrozen","createInvalid","NaN","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","args","arg","key","argLen","slice","join","Error","stack","deprecations","deprecateSimple","name","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","sign","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","invalidDate","expandFormat","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","indexOf","o","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","parseTwoDigitYear","parseInt","daysInYear","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","concat","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","hours","kFormat","minutes","seconds","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","localeIsPM","charAt","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","_abbr","require","getSetGlobalLocale","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","exec","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","_useUTC","defaults","c","currentDateArray","nowValue","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","invalid","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","defaultFormat","defaultFormatUtc","toISOString","keepOffset","toDate","inspect","zone","prefix","datetime","suffix","inputString","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","eraYearOrdinalParse","localeEras","eras","_eras","since","until","Infinity","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","abbrPieces","namePieces","narrowPieces","isoWeekYear","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseZone","isDST","zoneAbbr","zoneName","dates","isDSTShifted","createUnix","createInZone","preParsePostFormat","proto$1","firstDayOfYear","firstDayOfWeek","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","format2","moment","parse","dateString","parsed","error","_objectWithoutPropertiesLoose","excluded","target","sourceKeys","_extends","bind","f","g","p","q","r","v","z","$$typeof","type","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Fragment","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","process","env","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","isPortal","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","TypeError","shouldUseNative","test1","test2","fromCharCode","order2","test3","letter","err","objectAssign","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","location","componentName","getStack","typeSpecName","ex","resetWarningCache","checkPropTypes_1","ReactIs","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bigint","bool","symbol","any","createAnyTypeChecker","arrayOf","createArrayOfTypeChecker","element","createElementTypeChecker","elementType","createElementTypeTypeChecker","instanceOf","createInstanceTypeChecker","node","createNodeChecker","objectOf","createObjectOfTypeChecker","oneOf","createEnumTypeChecker","oneOfType","createUnionTypeChecker","shape","createShapeTypeChecker","exact","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","props","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","JSON","stringify","replacer","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","every","step","entries","done","entry","isSymbol","constructor","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","FOCUS_GROUP","FOCUS_DISABLED","FOCUS_ALLOW","FOCUS_AUTO","FOCUS_NO_AUTOFOCUS","assignRef","ref","current","useCallbackRef","initialValue","useState","facade","last","useMergeRefs","refs","defaultValue","newValue","hiddenGuard","width","height","padding","position","top","left","children","__assign","SuppressedError","suppressed","ItoI","innerCreateMedium","middleware","buffer","assigned","medium","read","useMedium","assignSyncMedium","cb","cbs","assignMedium","pendingQueue","executeQueue","cycle","Promise","resolve","then","createMedium","createSidecarMedium","options","async","ssr","mediumFocus","_ref","currentTarget","mediumBlur","mediumEffect","mediumSidecar","emptyArray","FocusLock","React","forwardRef","FocusLockUI","parentRef","_extends2","_React$useState","realObserved","setObserved","observed","useRef","isActive","originalFocusedElement","disabled","noFocusGuards","persistentFocus","crossFrame","autoFocus","allowTextSelection","group","className","whiteList","hasPositiveIndices","_props$shards","shards","_props$as","Container","_props$lockProps","lockProps","containerProps","SideCar","sideCar","shouldReturnFocus","returnFocus","focusOptions","onActivationCallback","onActivation","onDeactivationCallback","onDeactivation","_React$useState2","id","useCallback","document","activeElement","useEffect","allowDefer","returnFocusTo","focus","howToReturnFocus","returnFocusOptions","onFocus","event","onBlur","setObserveNode","newObserved","constants.FOCUS_DISABLED","constants.FOCUS_GROUP","hasLeadingGuards","hasTailingGuards","mergedRef","createElement","tabIndex","style","propTypes","defaultProps","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","_typeof","_toPrimitive","hint","prim","toPrimitive","Number","_toPropertyKey","_defineProperty","toPropertyKey","defineProperty","enumerable","configurable","writable","withSideEffect","reducePropsToState","handleStateChangeOnClient","getDisplayName","WrappedComponent","displayName","wrap","mountedInstances","state","emitChange","instance","SideEffect","_PureComponent","peek","_proto","componentDidMount","componentDidUpdate","componentWillUnmount","splice","render","PureComponent","asArray","getFirst","isElementHidden","nodeType","Node","ELEMENT_NODE","computedStyle","window","getComputedStyle","getPropertyValue","getParentNode","parentNode","DOCUMENT_FRAGMENT_NODE","host","isTopNode","DOCUMENT_NODE","isVisibleUncached","checkParent","isVisibleCached","visibilityCache","cached","isAutoFocusAllowedUncached","isAutoFocusAllowed","isAutoFocusAllowedCached","cache","getDataset","dataset","isHTMLButtonElement","tagName","isHTMLInputElement","isRadioElement","notHiddenInput","attribute","getAttribute","includes","isGuard","Boolean","focusGuard","isNotAGuard","isDefined","tabSort","tabDiff","indexDiff","orderByTabIndex","nodes","filterNegative","keepGuards","tabbables","queryTabbables","queryGuardTabbables","getFocusablesWithShadowDom","parent","withGuards","shadowRoot","reduce","acc","child","getFocusablesWithIFrame","HTMLIFrameElement","contentDocument","body","getFocusables","parents","focusableWithShadowDom","focusableWithIframes","querySelectorAll","getParentAutofocusables","parentFocus","filterFocusable","filterAutoFocusable","Map","getTabbableNodes","topNodes","getAllTabbableNodes","parentAutofocusables","topNode","contains","scope","getPrototypeOf","iframeBody","filterNested","contained","Set","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","_","getTopParent","getAllAffectedNodes","currentNode","safeProbe","getActiveElement","inDocument","contentWindow","focusInFrame","frame","focusInsideIframe","focusInside","ownerDocument","focusIsHidden","findSelectedRadio","el","checked","correctNode","correctNodes","resultSet","pickFirstFocus","pickFocusable","NEW_FOCUS","newFocus","innerNodes","outerNodes","lastNode","cnt","firstFocus","lastFocus","isOnGuard","activeIndex","lastNodeInside","firstNodeIndex","lastNodeIndex","correctedNodes","correctedIndex","correctedIndexDiff","returnFirstNode","returnLastNode","findAutoFocused","autoFocusables","autofocus","pickAutofocus","nodesIndexes","orderedNodes","groups","autoFocusable","getParents","getCommonParent","nodeA","nodeB","parentsA","parentsB","currentParent","getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","subEntry","common","allParentAutofocusables","reorderNodes","srcNodes","dstNodes","remap","entity","getFocusMerge","commonParent","anyFocusable","innerElements","orderedInnerElements","newId","focusNode","getFocusabledIn","lockItem","guard","focusOn","guardCount","lockDisabled","setFocus","focusable","setTimeout","deferAction","action","focusOnBody","isFreeFocus","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","focusWhitelisted","recordPortal","observerNode","portaledElement","focusIsPortaledPair","autoGuard","startIndex","end","allNodes","lastGuard","focusAutoGuard","extractRef","focusWasOutside","crossFrameOption","checkInHost","check","boundary","withinHost","workingArea","area","activateTrap","_lastActiveTrap","workingNode","blur","moveFocusInside","newActiveElement","focusedIndex","_ref2","_ref3","removeAttribute","onTrap","stopPropagation","preventDefault","FocusWatcher","onWindowBlur","attachHandler","addEventListener","detachHandler","removeEventListener","propsList","_ref5","traps","trap","lastTrap","sameTrap","_ref6","FocusTrap","FocusLockCombination","FocusLockUICombination","toInteger","dirtyNumber","requiredArgs","required","argument","argStr","addDays","dirtyDate","dirtyAmount","amount","setDate","addMonths","endOfDesiredMonth","defaultOptions","getDefaultOptions","startOfWeek","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","weekStartsOn","RangeError","setHours","startOfDay","addWeeks","isSameDay","dirtyDateLeft","dirtyDateRight","dateLeftStartOfDay","dateRightStartOfDay","eachWeekOfInterval","dirtyInterval","interval","startDate","start","endDate","endTime","startDateWeek","endDateWeek","currentWeek","startOfMonth","monthIndex","lastDayOfMonth","getWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","startOfWeekYear","firstWeek","MILLISECONDS_IN_WEEK","getWeek","isSameMonth","dateLeft","dateRight","dirtyMonth","dateWithDesiredMonth","dirtyDayOfMonth","dirtyHours","setMinutes","dirtyMinutes","setYear","dirtyYear","CalendarDay","focused","isCurrentMonth","isToday","onSelect","selected","handleClick","jsx","Card","toDateString","__unstable_focusRing","role","onClick","radius","tone","Text","muted","textAlign","weight","MONTH_NAMES","WEEK_DAY_NAMES","HOURS_24","range","ARROW_KEYS","TAIL_WEEKDAYS","getWeekStartsOfMonth","firstDay","getWeekDaysFromWeekStarts","weekStarts","weekStart","getWeeksOfMonth","CalendarMonth","Box","hidden","jsxs","Grid","gap","gridTemplateColumns","paddingY","size","weekIdx","dayIdx","features","dayPresets","timePresets","LazyTextInput","LazyTextInput2","_ref4","forwardedRef","onChange","onKeyPress","rest","inputValue","setInputValue","handleChange","checkEvent","currentValue","handleBlur","handleKeyPress","TextInput","YearInput","_ref7","numericValue","inputMode","PRESERVE_FOCUS_ELEMENT","outline","Calendar","selectTime","onFocusedDateChange","selectedDate","focusedDate","timeStep","restProps","setFocusedDate","setFocusedDateMonth","handleFocusedMonthChange","moveFocusedDate","by","setFocusedDateYear","handleDateChange","getHours","getMinutes","handleMinutesChange","handleHoursChange","mins","useForwardedRef","focusCurrentWeekDay","_b","querySelector","handleKeyDown","hasAttribute","currentFocusInCalendarGrid","handleNowClick","Flex","flex","CalendarMonthSelect","marginLeft","CalendarYearSelect","onKeyDown","marginTop","borderTop","align","Select","padStart","paddingX","Button","mode","handlePrevMonthClick","handleNextMonthClick","icon","ChevronLeftIcon","ChevronRightIcon","handlePrevYearClick","handleNextYearClick","DatePicker","setFocusedDay","handleSelect","nextDate","DateTimeInput","onInputChange","popoverRef","setPopoverRef","buttonRef","isPickerOpen","setPickerOpen","useClickOutside","handleDeactivation","select","handleKeyUp","CalendarIcon","display","LayerProvider","zOffset","Popover","constrainSize","portal","content","onKeyUp","open","placement","DEFAULT_PLACEHOLDER_TIME","CommonDateTimeInput","deserialize","formatInputValue","parseInputValue","placeholder","readOnly","serialize","localValue","setLocalValue","handleDatePickerInputChange","nextInputValue","handleDatePickerChange","parseResult","customValidity","VALUE_FORMAT","DEFAULT_DATE_FORMAT","parseOptions","calendarTodayLabel","DateInput","Monthly","byweekday","setByweekday","dayNo","weekNo","newWeekday","Weekday","whiteSpace","Weekly","currentWeekdays","useMemo","currentWeekday","Stack","space","columns","cursor","CustomRule","_ref8","onClose","dateTimeOptions","initialRule","RRule","frequency","setFrequency","origOptions","freq","setInterval","count","setCount","setUntil","getUntilDate","fromDate","YEARLY","MONTHLY","WEEKLY","DAILY","handleUntilChange","handleEndChange","untilDate","handleConfirm","newOptions","newRule","Dialog","header","Radio","htmlFor","title","justify","RecurringDates","_c","members","schemaType","pluginConfig","hideEndDate","hideCustom","setOpen","onOpen","invalidRecurrences","startDateMember","find","member","kind","endDateMember","rruleMember","availableRecurrences","rrule","renderProps","renderField","renderInput","renderItem","renderPreview","ObjectInputMember","Feedback","rule","toText","recurringDateSchema","defineField","fields","validation","Rule","valueOfField","components","recurringDates","definePlugin","schema","types"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]}