{"version":3,"file":"static/js/date-vendor.23808bec.js","mappings":"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","sources":["../node_modules/@fullcalendar/core/locales/de.js","../node_modules/@fullcalendar/core/locales/en-gb.js","../node_modules/@fullcalendar/core/locales/hu.js","../node_modules/@fullcalendar/core/locales/sk.js","../node_modules/@fullcalendar/core/main.esm.js","../node_modules/@fullcalendar/daygrid/main.esm.js","../node_modules/@fullcalendar/list/main.esm.js","../node_modules/@fullcalendar/react/main.esm.js","../node_modules/@fullcalendar/react/node_modules/fast-deep-equal/index.js","../node_modules/@fullcalendar/resource-common/main.esm.js","../node_modules/@fullcalendar/resource-daygrid/main.esm.js","../node_modules/@fullcalendar/resource-timegrid/main.esm.js","../node_modules/@fullcalendar/timeline/main.esm.js","../node_modules/@fullcalendar/resource-timeline/main.esm.js","../node_modules/@fullcalendar/timegrid/main.esm.js","../node_modules/date-fns/_lib/defaultOptions/index.js","../node_modules/date-fns/_lib/isSameUTCWeek/index.js","../node_modules/date-fns/_lib/requiredArgs/index.js","../node_modules/date-fns/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/_lib/toInteger/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/fp/_lib/convertToFP/index.js","../node_modules/date-fns/esm/fp/addMinutes/index.js","../node_modules/date-fns/esm/fp/format/index.js","../node_modules/date-fns/esm/fp/getMinutes/index.js","../node_modules/date-fns/esm/fp/isWithinInterval/index.js","../node_modules/date-fns/esm/fp/parse/index.js","../node_modules/date-fns/esm/fp/setHours/index.js","../node_modules/date-fns/esm/fp/setMinutes/index.js","../node_modules/date-fns/esm/fp/subDays/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/de-AT/_lib/localize/index.js","../node_modules/date-fns/esm/locale/de-AT/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/de/_lib/match/index.js","../node_modules/date-fns/esm/locale/de/_lib/localize/index.js","../node_modules/date-fns/esm/locale/de/index.js","../node_modules/date-fns/esm/locale/en-GB/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-GB/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/hu/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/hu/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/hu/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/hu/_lib/localize/index.js","../node_modules/date-fns/esm/locale/hu/index.js","../node_modules/date-fns/esm/locale/hu/_lib/match/index.js","../node_modules/date-fns/esm/locale/sk/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/sk/_lib/formatLong/index.js","../node_modules/date-fns/esm/_lib/isSameUTCWeek/index.js","../node_modules/date-fns/esm/locale/sk/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/sk/_lib/localize/index.js","../node_modules/date-fns/esm/locale/sk/index.js","../node_modules/date-fns/esm/locale/sk/_lib/match/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/set/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/subQuarters/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/locale/de-AT/_lib/localize/index.js","../node_modules/date-fns/locale/de-AT/index.js","../node_modules/date-fns/locale/de/_lib/formatDistance/index.js","../node_modules/date-fns/locale/de/_lib/formatLong/index.js","../node_modules/date-fns/locale/de/_lib/formatRelative/index.js","../node_modules/date-fns/locale/de/_lib/localize/index.js","../node_modules/date-fns/locale/de/_lib/match/index.js","../node_modules/date-fns/locale/de/index.js","../node_modules/date-fns/locale/en-GB/_lib/formatLong/index.js","../node_modules/date-fns/locale/en-GB/index.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/locale/en-US/_lib/match/index.js","../node_modules/date-fns/locale/hu/_lib/formatDistance/index.js","../node_modules/date-fns/locale/hu/_lib/formatLong/index.js","../node_modules/date-fns/locale/hu/_lib/formatRelative/index.js","../node_modules/date-fns/locale/hu/_lib/localize/index.js","../node_modules/date-fns/locale/hu/_lib/match/index.js","../node_modules/date-fns/locale/hu/index.js","../node_modules/date-fns/locale/sk/_lib/formatDistance/index.js","../node_modules/date-fns/locale/sk/_lib/formatLong/index.js","../node_modules/date-fns/locale/sk/_lib/formatRelative/index.js","../node_modules/date-fns/locale/sk/_lib/localize/index.js","../node_modules/date-fns/locale/sk/_lib/match/index.js","../node_modules/date-fns/locale/sk/index.js","../node_modules/date-fns/toDate/index.js","../node_modules/date-fns/locale/de-AT/index.d.ts","../node_modules/date-fns/locale/de-AT/index.js.flow","../node_modules/date-fns/locale/de/index.d.ts","../node_modules/date-fns/locale/de/index.js.flow","../node_modules/date-fns/locale/en-GB/index.d.ts","../node_modules/date-fns/locale/en-GB/index.js.flow","../node_modules/date-fns/locale/hu/index.d.ts","../node_modules/date-fns/locale/hu/index.js.flow","../node_modules/date-fns/locale/sk/index.d.ts","../node_modules/date-fns/locale/sk/index.js.flow","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-datepicker/node_modules/classnames/index.js","../node_modules/react-datepicker/node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/react-datepicker/node_modules/prop-types/index.js","../node_modules/react-datepicker/node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/typeof.js","../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.de = factory()));\n}(this, function () { 'use strict';\n\n var de = {\n code: \"de\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: \"Zurück\",\n next: \"Vor\",\n today: \"Heute\",\n year: \"Jahr\",\n month: \"Monat\",\n week: \"Woche\",\n day: \"Tag\",\n list: \"Terminübersicht\"\n },\n weekLabel: \"KW\",\n allDayText: \"Ganztägig\",\n eventLimitText: function (n) {\n return \"+ weitere \" + n;\n },\n noEventsMessage: \"Keine Ereignisse anzuzeigen\"\n };\n\n return de;\n\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 = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory()));\n}(this, function () { 'use strict';\n\n var enGb = {\n code: \"en-gb\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n };\n\n return enGb;\n\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 = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.hu = factory()));\n}(this, function () { 'use strict';\n\n var hu = {\n code: \"hu\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: \"vissza\",\n next: \"előre\",\n today: \"ma\",\n month: \"Hónap\",\n week: \"Hét\",\n day: \"Nap\",\n list: \"Napló\"\n },\n weekLabel: \"Hét\",\n allDayText: \"Egész nap\",\n eventLimitText: \"további\",\n noEventsMessage: \"Nincs megjeleníthető esemény\"\n };\n\n return hu;\n\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 = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.sk = factory()));\n}(this, function () { 'use strict';\n\n var sk = {\n code: \"sk\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: \"Predchádzajúci\",\n next: \"Nasledujúci\",\n today: \"Dnes\",\n month: \"Mesiac\",\n week: \"Týždeň\",\n day: \"Deň\",\n list: \"Rozvrh\"\n },\n weekLabel: \"Ty\",\n allDayText: \"Celý deň\",\n eventLimitText: function (n) {\n return \"+ďalšie: \" + n;\n },\n noEventsMessage: \"Žiadne akcie na zobrazenie\"\n };\n\n return sk;\n\n}));\n","/*!\nFullCalendar Core Package v4.3.1\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\n// Creating\n// ----------------------------------------------------------------------------------------------------------------\nvar elementPropHash = {\n className: true,\n colSpan: true,\n rowSpan: true\n};\nvar containerTagHash = {\n '= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n var res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom)\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top\n };\n}\n\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\nvar isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (isRtlScrollbarOnLeft === null) {\n isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n var outerEl = createElement('div', {\n style: {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl'\n }\n }, '
');\n document.body.appendChild(outerEl);\n var innerEl = outerEl.firstChild;\n var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n// The scrollbar width computations in computeEdges are sometimes flawed when it comes to\n// retina displays, rounding, and IE11. Massage them into a usable value.\nfunction sanitizeScrollbarWidth(width) {\n width = Math.max(0, width); // no negatives\n width = Math.round(width);\n return width;\n}\n\nfunction computeEdges(el, getPadding) {\n if (getPadding === void 0) { getPadding = false; }\n var computedStyle = window.getComputedStyle(el);\n var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n // must use offset(Width|Height) because compatible with client(Width|Height)\n var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight);\n var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom);\n var res = {\n borderLeft: borderLeft,\n borderRight: borderRight,\n borderTop: borderTop,\n borderBottom: borderBottom,\n scrollbarBottom: scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding) {\n if (goWithinPadding === void 0) { goWithinPadding = false; }\n var outerRect = computeRect(el);\n var edges = computeEdges(el, goWithinPadding);\n var res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset\n };\n}\nfunction computeViewportRect() {\n return {\n left: window.pageXOffset,\n right: window.pageXOffset + document.documentElement.clientWidth,\n top: window.pageYOffset,\n bottom: window.pageYOffset + document.documentElement.clientHeight\n };\n}\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) +\n parseInt(computed.marginBottom, 10);\n}\n// does not return window\nfunction getClippingParents(el) {\n var parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\nfunction computeClippingRect(el) {\n return getClippingParents(el)\n .map(function (el) {\n return computeInnerRect(el);\n })\n .concat(computeViewportRect())\n .reduce(function (rect0, rect1) {\n return intersectRects(rect0, rect1) || rect1; // should always intersect\n });\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction listenBySelector(container, eventType, selector, handler) {\n function realHandler(ev) {\n var matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n }\n container.addEventListener(eventType, realHandler);\n return function () {\n container.removeEventListener(eventType, realHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n var currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(ev, matchedChild);\n var realOnMouseLeave_1 = function (ev) {\n currentMatchedChild = null;\n onMouseLeave(ev, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nvar transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend'\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n var realCallback = function (ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n\nvar DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n var m0day = startOfDay(m0);\n var m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf())\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate()\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours()\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes()\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds()\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n var dayStart = startOfDay(marker);\n var days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n var fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC.apply(Date, a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n var _a;\n if (typeof input === 'string') {\n return parseString(input);\n }\n else if (typeof input === 'object' && input) { // non-null object\n return normalizeObject(input);\n }\n else if (typeof input === 'number') {\n return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n else {\n return null;\n }\n}\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n if (m) {\n var sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n )\n };\n }\n return null;\n}\nfunction normalizeObject(obj) {\n return {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: (obj.days || obj.day || 0) +\n getWeeksFromInput(obj) * 7,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms\n };\n}\nfunction getWeeksFromInput(obj) {\n return obj.weeks || obj.week || 0;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction isSingleDay(dur) {\n return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n for (var i = 0; i < INTERNAL_UNITS.length; i++) {\n var unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur, dontReturnWeeks) {\n var ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (!dontReturnWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\nfunction compensateScroll(rowEl, scrollbarWidths) {\n if (scrollbarWidths.left) {\n applyStyle(rowEl, {\n borderLeftWidth: 1,\n marginLeft: scrollbarWidths.left - 1\n });\n }\n if (scrollbarWidths.right) {\n applyStyle(rowEl, {\n borderRightWidth: 1,\n marginRight: scrollbarWidths.right - 1\n });\n }\n}\n// Undoes compensateScroll and restores all borders/margins\nfunction uncompensateScroll(rowEl) {\n applyStyle(rowEl, {\n marginLeft: '',\n marginRight: '',\n borderLeftWidth: '',\n borderRightWidth: ''\n });\n}\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\n// reduces the available height.\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\n var flexOffsets = []; // amount of vertical space it takes up\n var flexHeights = []; // actual css height\n var usedHeight = 0;\n undistributeHeight(els); // give all elements their natural height\n // find elements that are below the recommended height (expandable).\n // important to query for heights in a single first pass (to avoid reflow oscillation).\n els.forEach(function (el, i) {\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\n var naturalHeight = el.getBoundingClientRect().height;\n var naturalOffset = naturalHeight + computeVMargins(el);\n if (naturalOffset < minOffset) {\n flexEls.push(el);\n flexOffsets.push(naturalOffset);\n flexHeights.push(naturalHeight);\n }\n else {\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\n usedHeight += naturalOffset;\n }\n });\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\n if (shouldRedistribute) {\n availableHeight -= usedHeight;\n minOffset1 = Math.floor(availableHeight / flexEls.length);\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\n }\n // assign heights to all expandable elements\n flexEls.forEach(function (el, i) {\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\n var naturalOffset = flexOffsets[i];\n var naturalHeight = flexHeights[i];\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\n if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things\n el.style.height = newHeight + 'px';\n }\n });\n}\n// Undoes distrubuteHeight, restoring all els to their natural height\nfunction undistributeHeight(els) {\n els.forEach(function (el) {\n el.style.height = '';\n });\n}\n// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the\n// cells to be that width.\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\nfunction matchCellWidths(els) {\n var maxInnerWidth = 0;\n els.forEach(function (el) {\n var innerEl = el.firstChild; // hopefully an element\n if (innerEl instanceof HTMLElement) {\n var innerWidth_1 = innerEl.getBoundingClientRect().width;\n if (innerWidth_1 > maxInnerWidth) {\n maxInnerWidth = innerWidth_1;\n }\n }\n });\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\n els.forEach(function (el) {\n el.style.width = maxInnerWidth + 'px';\n });\n return maxInnerWidth;\n}\n// Given one element that resides inside another,\n// Subtracts the height of the inner element from the outer element.\nfunction subtractInnerElHeight(outerEl, innerEl) {\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\n var reflowStyleProps = {\n position: 'relative',\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\n };\n applyStyle(outerEl, reflowStyleProps);\n applyStyle(innerEl, reflowStyleProps);\n var diff = // grab the dimensions\n outerEl.getBoundingClientRect().height -\n innerEl.getBoundingClientRect().height;\n // undo hack\n var resetStyleProps = { position: '', left: '' };\n applyStyle(outerEl, resetStyleProps);\n applyStyle(innerEl, resetStyleProps);\n return diff;\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\n/* Object Ordering by Field\n----------------------------------------------------------------------------------------------------------------------*/\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n for (i = 0; i < fieldSpecs.length; i++) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction capitaliseFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* Weird Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction applyAll(functions, thisObj, args) {\n if (typeof functions === 'function') { // supplied a single function\n functions = [functions];\n }\n if (functions) {\n var i = void 0;\n var ret = void 0;\n for (i = 0; i < functions.length; i++) {\n ret = functions[i].apply(thisObj, args) || ret;\n }\n return ret;\n }\n}\nfunction firstDefined() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== undefined) {\n return args[i];\n }\n }\n}\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\nfunction debounce(func, wait) {\n var timeout;\n var args;\n var context;\n var timestamp;\n var result;\n var later = function () {\n var last = new Date().valueOf() - timestamp;\n if (last < wait) {\n timeout = setTimeout(later, wait - last);\n }\n else {\n timeout = null;\n result = func.apply(context, args);\n context = args = null;\n }\n };\n return function () {\n context = this;\n args = arguments;\n timestamp = new Date().valueOf();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n return result;\n };\n}\n// Number and Boolean are only types that defaults or not computed for\n// TODO: write more comments\nfunction refineProps(rawProps, processors, defaults, leftoverProps) {\n if (defaults === void 0) { defaults = {}; }\n var refined = {};\n for (var key in processors) {\n var processor = processors[key];\n if (rawProps[key] !== undefined) {\n // found\n if (processor === Function) {\n refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null;\n }\n else if (processor) { // a refining function?\n refined[key] = processor(rawProps[key]);\n }\n else {\n refined[key] = rawProps[key];\n }\n }\n else if (defaults[key] !== undefined) {\n // there's an explicit default\n refined[key] = defaults[key];\n }\n else {\n // must compute a default\n if (processor === String) {\n refined[key] = ''; // empty string is default for String\n }\n else if (!processor || processor === Number || processor === Boolean || processor === Function) {\n refined[key] = null; // assign null for other non-custom processor funcs\n }\n else {\n refined[key] = processor(null); // run the custom processor func\n }\n }\n }\n if (leftoverProps) {\n for (var key in rawProps) {\n if (processors[key] === undefined) {\n leftoverProps[key] = rawProps[key];\n }\n }\n }\n return refined;\n}\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n var start = startOfDay(timedRange.start);\n var end = addDays(start, dayCnt);\n return { start: start, end: end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); }\n var startDay = null;\n var endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n else if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n else {\n return diffDayAndTime(date0, date1); // returns a duration\n }\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) {\n for (var i = 0; i < recurringTypes.length; i++) {\n var localLeftovers = {};\n var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv);\n if (parsed) {\n var allDay = localLeftovers.allDay;\n delete localLeftovers.allDay; // remove from leftovers\n if (allDay == null) {\n allDay = allDayDefault;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n __assign(leftovers, localLeftovers);\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i\n };\n }\n }\n return null;\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexProps) {\n var dest = {};\n var i;\n var name;\n var complexObjs;\n var j;\n var val;\n var props;\n if (complexProps) {\n for (i = 0; i < complexProps.length; i++) {\n name = complexProps[i];\n complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (j = propObjs.length - 1; j >= 0; j--) {\n val = propObjs[j][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n // copy values into the destination, going from last to first\n for (i = propObjs.length - 1; i >= 0; i--) {\n props = propObjs[i];\n for (name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n var filtered = {};\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n var newHash = {};\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n var hash = {};\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var item = a_1[_i];\n hash[item] = true;\n }\n return hash;\n}\nfunction hashValuesToArray(obj) {\n var a = [];\n for (var key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction parseEvents(rawEvents, sourceId, calendar, allowOpenRange) {\n var eventStore = createEmptyEventStore();\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) { eventStore = createEmptyEventStore(); }\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\nfunction expandRecurring(eventStore, framingRange, calendar) {\n var dateEnv = calendar.dateEnv;\n var defs = eventStore.defs, instances = eventStore.instances;\n // remove existing recurring instances\n instances = filterHash(instances, function (instance) {\n return !defs[instance.defId].recurringDef;\n });\n for (var defId in defs) {\n var def = defs[defId];\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n if (!duration) {\n duration = def.allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration;\n }\n var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes);\n for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n var start = starts_1[_i];\n var instance = createEventInstance(defId, {\n start: start,\n end: dateEnv.add(start, duration)\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs: defs, instances: instances };\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n if (instance) {\n var def_1 = eventStore.defs[instance.defId];\n // get events/instances with same group\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) {\n return isEventDefsGrouped(def_1, lookDef);\n });\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction transformRawEvents(rawEvents, eventSource, calendar) {\n var calEachTransform = calendar.opt('eventDataTransform');\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) {\n var rawEvent = rawEvents_2[_i];\n var refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: __assign({}, store0.defs, store1.defs),\n instances: __assign({}, store0.instances, store1.instances)\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n var defs = filterHash(eventStore.defs, filterFunc);\n var instances = filterHash(eventStore.instances, function (instance) {\n return defs[instance.defId]; // still exists?\n });\n return { defs: defs, instances: instances };\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start: start, end: end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n var invertedRanges = [];\n var start = constraintRange.start; // the end of the previous range. the start of the new range\n var i;\n var dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i++) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n var start = range0.start;\n var end = range0.end;\n var newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start: start, end: end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt++;\n }\n else {\n i++;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1) {\n var len = a0.length;\n var i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i++) {\n if (a0[i] !== a1[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoize(workerFunc) {\n var args;\n var res;\n return function () {\n if (!args || !isArraysEqual(args, arguments)) {\n args = arguments;\n res = workerFunc.apply(this, arguments);\n }\n return res;\n };\n}\n/*\nalways executes the workerFunc, but if the result is equal to the previous result,\nreturn the previous result instead.\n*/\nfunction memoizeOutput(workerFunc, equalityFunc) {\n var cachedRes = null;\n return function () {\n var newRes = workerFunc.apply(this, arguments);\n if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) {\n cachedRes = newRes;\n }\n return cachedRes;\n };\n}\n\nvar EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0\n};\nvar STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1\n};\nvar MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nvar COMMA_RE = /,/g; // we need re for globalness\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\nvar UTC_RE = /UTC|GMT/;\nvar NativeFormatter = /** @class */ (function () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n for (var name_1 in formatSettings) {\n if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name_1] = formatSettings[name_1];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n }\n else {\n standardDateProps[name_1] = formatSettings[name_1];\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) {\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n NativeFormatter.prototype.formatRange = function (start, end, context) {\n var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings;\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n var biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n var partial0 = partialFormattingFunc(start);\n var partial1 = partialFormattingFunc(end);\n var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n var separator = extendedSettings.separator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n };\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n default:\n return 'day';\n }\n };\n return NativeFormatter;\n}());\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) {\n return formatTimeZoneOffset(date.timeZoneOffset);\n };\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) {\n return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week);\n };\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n extendedSettings = __assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return function (date) {\n var marker = date.marker;\n var format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase();\n });\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase() + 'm';\n });\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) {\n return m0.toLocaleLowerCase();\n });\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ' ' + tzoStr;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekLabel, locale, display) {\n var parts = [];\n if (display === 'narrow') {\n parts.push(weekLabel);\n }\n else if (display === 'short') {\n parts.push(weekLabel, ' ');\n }\n // otherwise, considered 'numeric'\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.isRtl) { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n for (var name_2 in options) {\n if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n partialOptions[name_2] = options[name_2];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0\n };\n }\n }\n }\n return null;\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nvar CmdFormatter = /** @class */ (function () {\n function CmdFormatter(cmdStr, separator) {\n this.cmdStr = cmdStr;\n this.separator = separator;\n }\n CmdFormatter.prototype.format = function (date, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator));\n };\n CmdFormatter.prototype.formatRange = function (start, end, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator));\n };\n return CmdFormatter;\n}());\n\nvar FuncFormatter = /** @class */ (function () {\n function FuncFormatter(func) {\n this.func = func;\n }\n FuncFormatter.prototype.format = function (date, context) {\n return this.func(createVerboseFormattingArg(date, null, context));\n };\n FuncFormatter.prototype.formatRange = function (start, end, context) {\n return this.func(createVerboseFormattingArg(start, end, context));\n };\n return FuncFormatter;\n}());\n\n// Formatter Object Creation\nfunction createFormatter(input, defaultSeparator) {\n if (typeof input === 'object' && input) { // non-null object\n if (typeof defaultSeparator === 'string') {\n input = __assign({ separator: defaultSeparator }, input);\n }\n return new NativeFormatter(input);\n }\n else if (typeof input === 'string') {\n return new CmdFormatter(input, defaultSeparator);\n }\n else if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n}\n// String Utils\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) { stripZeroTime = false; }\n var s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) { doIso = false; }\n var sign = minutes < 0 ? '-' : '+';\n var abs = Math.abs(minutes);\n var hours = Math.floor(abs / 60);\n var mins = Math.round(abs % 60);\n if (doIso) {\n return sign + padStart(hours, 2) + ':' + padStart(mins, 2);\n }\n else {\n return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : '');\n }\n}\n// Arg Utils\nfunction createVerboseFormattingArg(start, end, context, separator) {\n var startInfo = expandZonedMarker(start, context.calendarSystem);\n var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n separator: separator\n };\n}\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n var a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6]\n };\n}\n\nvar EventSourceApi = /** @class */ (function () {\n function EventSourceApi(calendar, internalEventSource) {\n this.calendar = calendar;\n this.internalEventSource = internalEventSource;\n }\n EventSourceApi.prototype.remove = function () {\n this.calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId\n });\n };\n EventSourceApi.prototype.refetch = function () {\n this.calendar.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId]\n });\n };\n Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function () {\n return this.internalEventSource.publicId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n // only relevant to json-feed event sources\n get: function () {\n return this.internalEventSource.meta.url;\n },\n enumerable: true,\n configurable: true\n });\n return EventSourceApi;\n}());\n\nvar EventApi = /** @class */ (function () {\n function EventApi(calendar, def, instance) {\n this._calendar = calendar;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\n if (name in DATE_PROPS) ;\n else if (name in NON_DATE_PROPS) {\n if (typeof NON_DATE_PROPS[name] === 'function') {\n val = NON_DATE_PROPS[name](val);\n }\n this.mutate({\n standardProps: (_a = {}, _a[name] = val, _a)\n });\n }\n else if (name in UNSCOPED_EVENT_UI_PROPS) {\n var ui = void 0;\n if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') {\n val = UNSCOPED_EVENT_UI_PROPS[name](val);\n }\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n this.mutate({\n standardProps: { ui: ui }\n });\n }\n };\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a)\n });\n };\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n var instanceRange = this._instance.range;\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta: startDelta });\n }\n }\n };\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta: endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n };\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var standardProps = { allDay: options.allDay };\n var start = dateEnv.createMarker(startInput);\n var end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n var instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n else {\n this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n }\n };\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n };\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n };\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n };\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) { options = {}; }\n var standardProps = { allDay: allDay };\n var maintainDuration = options.maintainDuration;\n if (maintainDuration == null) {\n maintainDuration = this._calendar.opt('allDayMaintainDuration');\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps: standardProps });\n };\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._calendar.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator'));\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo\n });\n }\n else {\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo\n });\n }\n };\n EventApi.prototype.mutate = function (mutation) {\n var def = this._def;\n var instance = this._instance;\n if (instance) {\n this._calendar.dispatch({\n type: 'MUTATE_EVENTS',\n instanceId: instance.instanceId,\n mutation: mutation,\n fromApi: true\n });\n var eventStore = this._calendar.state.eventStore;\n this._def = eventStore.defs[def.defId];\n this._instance = eventStore.instances[instance.instanceId];\n }\n };\n EventApi.prototype.remove = function () {\n this._calendar.dispatch({\n type: 'REMOVE_EVENT_DEF',\n defId: this._def.defId\n });\n };\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function () {\n var sourceId = this._def.sourceId;\n if (sourceId) {\n return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]);\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function () {\n return this._instance ?\n this._calendar.dateEnv.toDate(this._instance.range.start) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function () {\n return (this._instance && this._def.hasEnd) ?\n this._calendar.dateEnv.toDate(this._instance.range.end) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"id\", {\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get: function () { return this._def.publicId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function () { return this._def.groupId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function () { return this._def.allDay; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function () { return this._def.title; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function () { return this._def.url; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"rendering\", {\n get: function () { return this._def.rendering; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function () { return this._def.ui.startEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function () { return this._def.ui.durationEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function () { return this._def.ui.constraints[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function () { return this._def.ui.overlap; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function () { return this._def.ui.allows[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function () { return this._def.ui.backgroundColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function () { return this._def.ui.borderColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function () { return this._def.ui.textColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"classNames\", {\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get: function () { return this._def.ui.classNames; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function () { return this._def.extendedProps; },\n enumerable: true,\n configurable: true\n });\n return EventApi;\n}());\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n var inverseBgByGroupId = {};\n var inverseBgByDefId = {};\n var defByGroupId = {};\n var bgRanges = [];\n var fgRanges = [];\n var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = eventStore.defs[instance.defId];\n var ui = eventUis[def.defId];\n var origRange = instance.range;\n var normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else {\n (def.rendering === 'background' ? bgRanges : fgRanges).push({\n def: def,\n ui: ui,\n instance: instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf()\n });\n }\n }\n }\n for (var groupId in inverseBgByGroupId) { // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n var invertedRange = invertedRanges_1[_i];\n var def = defByGroupId[groupId];\n var ui = eventUis[def.defId];\n bgRanges.push({\n def: def,\n ui: ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n var invertedRange = invertedRanges_2[_a];\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.rendering === 'background' || def.rendering === 'inverse-background';\n}\nfunction filterSegsViaEls(view, segs, isMirror) {\n if (view.hasPublicHandlers('eventRender')) {\n segs = segs.filter(function (seg) {\n var custom = view.publiclyTrigger('eventRender', [\n {\n event: new EventApi(view.calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirror,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n // TODO: include seg.range once all components consistently generate it\n el: seg.el,\n view: view\n }\n ]);\n if (custom === false) { // means don't render at all\n return false;\n }\n else if (custom && custom !== true) {\n seg.el = custom;\n }\n return true;\n });\n }\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n setElSeg(seg.el, seg);\n }\n return segs;\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg || null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) {\n return compileEventUi(eventDef, eventUiBases);\n });\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar);\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) {\n var standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps);\n }\n for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) {\n var applier = appliers_1[_i];\n applier(copy, mutation, calendar);\n }\n if (!copy.hasEnd && calendar.opt('forceEventDuration')) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, calendar) {\n var dateEnv = calendar.dateEnv;\n var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n var copy = __assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta)\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta)\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start)\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end)\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start);\n }\n return copy;\n}\n\nfunction reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, calendar);\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, calendar);\n }\n else {\n return eventStore;\n }\n case 'CHANGE_TIMEZONE':\n return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv);\n case 'MUTATE_EVENTS':\n return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar);\n case 'REMOVE_EVENT_INSTANCES':\n return excludeInstances(eventStore, action.instances);\n case 'REMOVE_EVENT_DEF':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.defId !== action.defId;\n });\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return !eventDef.sourceId; // only keep events with no source id\n });\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n case 'RESET_EVENTS':\n return {\n defs: eventStore.defs,\n instances: eventStore.instances\n };\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, calendar);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction addEvent(eventStore, subset, expandRange, calendar) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, calendar);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneDates(eventStore, oldDateEnv, newDateEnv) {\n var defs = eventStore.defs;\n var instances = mapHash(eventStore.instances, function (instance) {\n var def = defs[instance.defId];\n if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n else {\n return __assign({}, instance, { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n }\n });\n return { defs: defs, instances: instances };\n}\nfunction applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) {\n var relevant = getRelevantEvents(eventStore, instanceId);\n var eventConfigBase = fromApi ?\n { '': {\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n } } :\n calendar.eventUiBases;\n relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar);\n return mergeEventStores(eventStore, relevant);\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.sourceId !== sourceId;\n });\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, function (instance) {\n return !removals[instance.instanceId];\n })\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, calendar) {\n return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, calendar) {\n return isNewPropsValid({ dateSelection: dateSelection }, calendar);\n}\nfunction isNewPropsValid(newProps, calendar) {\n var view = calendar.view;\n var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar);\n}\nfunction isPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) { dateSpanMeta = {}; }\n if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': calendar.selectionConfig } // if not a real event, validate as a selection\n );\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too?\n var otherDefs = otherEventStore.defs;\n var otherInstances = otherEventStore.instances;\n var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (var subjectInstanceId in subjectInstances) {\n var subjectInstance = subjectInstances[subjectInstanceId];\n var subjectRange = subjectInstance.range;\n var subjectConfig = subjectConfigs[subjectInstance.defId];\n var subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('eventOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(calendar, subjectDef, subjectInstance) // moving event\n )) {\n return false;\n }\n }\n }\n // allow (a function)\n var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay });\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n if (origDef) { // was previously in the calendar\n eventApi = new EventApi(calendar, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var relevantEventStore = state.eventStore;\n var relevantDefs = relevantEventStore.defs;\n var relevantInstances = relevantEventStore.instances;\n var selection = state.dateSelection;\n var selectionRange = selection.range;\n var selectionConfig = calendar.selectionConfig;\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('selectOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n var fullDateSpan = __assign({}, dateSpanMeta, selection);\n if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) {\n for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n var constraint = constraints_1[_i];\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncalendar // for expanding businesshours\n) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar));\n }\n else if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) {\n return eventDef.groupId === constraint;\n }));\n }\n else if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n// Parsing\n// ------------------------------------------------------------------------------------------------------------------------\nfunction normalizeConstraint(input, calendar) {\n if (Array.isArray(input)) {\n return parseEvents(input, '', calendar, true); // allowOpenRange=true\n }\n else if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], '', calendar, true); // allowOpenRange=true\n }\n else if (input != null) {\n return String(input);\n }\n else {\n return null;\n }\n}\n\nfunction htmlEscape(s) {\n return (s + '').replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/'/g, ''')\n .replace(/\"/g, '"')\n .replace(/\\n/g, '
');\n}\n// Given a hash of CSS properties, returns a string of CSS.\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\nfunction cssToStr(cssProps) {\n var statements = [];\n for (var name_1 in cssProps) {\n var val = cssProps[name_1];\n if (val != null && val !== '') {\n statements.push(name_1 + ':' + val);\n }\n }\n return statements.join(';');\n}\n// Given an object hash of HTML attribute names to values,\n// generates a string that can be injected between < > in HTML\nfunction attrsToStr(attrs) {\n var parts = [];\n for (var name_2 in attrs) {\n var val = attrs[name_2];\n if (val != null) {\n parts.push(name_2 + '=\"' + htmlEscape(val) + '\"');\n }\n }\n return parts.join(' ');\n}\nfunction parseClassName(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n else if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n else {\n return [];\n }\n}\n\nvar UNSCOPED_EVENT_UI_PROPS = {\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: null,\n overlap: null,\n allow: null,\n className: parseClassName,\n classNames: parseClassName,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String\n};\nfunction processUnscopedUiProps(rawProps, calendar, leftovers) {\n var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers);\n var constraint = normalizeConstraint(props.constraint, calendar);\n return {\n startEditable: props.startEditable != null ? props.startEditable : props.editable,\n durationEditable: props.durationEditable != null ? props.durationEditable : props.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: props.overlap,\n allows: props.allow != null ? [props.allow] : [],\n backgroundColor: props.backgroundColor || props.color,\n borderColor: props.borderColor || props.color,\n textColor: props.textColor,\n classNames: props.classNames.concat(props.className)\n };\n}\nfunction processScopedUiProps(prefix, rawScoped, calendar, leftovers) {\n var rawUnscoped = {};\n var wasFound = {};\n for (var key in UNSCOPED_EVENT_UI_PROPS) {\n var scopedKey = prefix + capitaliseFirstLetter(key);\n rawUnscoped[key] = rawScoped[scopedKey];\n wasFound[scopedKey] = true;\n }\n if (prefix === 'event') {\n rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable'\n }\n if (leftovers) {\n for (var key in rawScoped) {\n if (!wasFound[key]) {\n leftovers[key] = rawScoped[key];\n }\n }\n }\n return processUnscopedUiProps(rawUnscoped, calendar);\n}\nvar EMPTY_EVENT_UI = {\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n};\n// prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames)\n };\n}\n\nvar NON_DATE_PROPS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n rendering: String,\n extendedProps: null\n};\nvar DATE_PROPS = {\n start: null,\n date: null,\n end: null,\n allDay: null\n};\nvar uid = 0;\nfunction parseEvent(raw, sourceId, calendar, allowOpenRange) {\n var allDayDefault = computeIsAllDayDefault(sourceId, calendar);\n var leftovers0 = {};\n var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out\n allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props\n );\n if (recurringRes) {\n var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration\n };\n return { def: def, instance: null };\n }\n else {\n var leftovers1 = {};\n var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange);\n if (singleRes) {\n var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar);\n var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n return { def: def, instance: instance };\n }\n }\n return null;\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\nThe EventNonDateInput has been normalized (id => publicId, etc).\n*/\nfunction parseEventDef(raw, sourceId, allDay, hasEnd, calendar) {\n var leftovers = {};\n var def = pluckNonDateProps(raw, calendar, leftovers);\n def.defId = String(uid++);\n def.sourceId = sourceId;\n def.allDay = allDay;\n def.hasEnd = hasEnd;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) {\n var eventDefParser = _a[_i];\n var newLeftovers = {};\n eventDefParser(def, leftovers, newLeftovers);\n leftovers = newLeftovers;\n }\n def.extendedProps = __assign(leftovers, def.extendedProps || {});\n // help out EventApi from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: String(uid++),\n defId: defId,\n range: range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n };\n}\nfunction parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) {\n var props = pluckDateProps(raw, leftovers);\n var allDay = props.allDay;\n var startMeta;\n var startMarker = null;\n var hasEnd = false;\n var endMeta;\n var endMarker = null;\n startMeta = calendar.dateEnv.createMarkerMeta(props.start);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (props.end != null) {\n endMeta = calendar.dateEnv.createMarkerMeta(props.end);\n }\n if (allDay == null) {\n if (allDayDefault != null) {\n allDay = allDayDefault;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = calendar.opt('forceEventDuration') || false;\n endMarker = calendar.dateEnv.add(startMarker, allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration);\n }\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n };\n}\nfunction pluckDateProps(raw, leftovers) {\n var props = refineProps(raw, DATE_PROPS, {}, leftovers);\n props.start = (props.start !== null) ? props.start : props.date;\n delete props.date;\n return props;\n}\nfunction pluckNonDateProps(raw, calendar, leftovers) {\n var preLeftovers = {};\n var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers);\n var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers);\n props.publicId = props.id;\n delete props.id;\n props.ui = ui;\n return props;\n}\nfunction computeIsAllDayDefault(sourceId, calendar) {\n var res = null;\n if (sourceId) {\n var source = calendar.state.eventSources[sourceId];\n res = source.allDayDefault;\n }\n if (res == null) {\n res = calendar.opt('allDayDefault');\n }\n return res;\n}\n\nvar DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n rendering: 'inverse-background',\n classNames: 'fc-nonbusiness',\n groupId: '_businessHours' // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, calendar) {\n return parseEvents(refineInputs(input), '', calendar);\n}\nfunction refineInputs(input) {\n var rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter(function (rawDef) {\n return rawDef.daysOfWeek;\n });\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map(function (rawDef) {\n return __assign({}, DEF_DEFAULTS, rawDef);\n });\n return rawDefs;\n}\n\nfunction memoizeRendering(renderFunc, unrenderFunc, dependencies) {\n if (dependencies === void 0) { dependencies = []; }\n var dependents = [];\n var thisContext;\n var prevArgs;\n function unrender() {\n if (prevArgs) {\n for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) {\n var dependent = dependents_1[_i];\n dependent.unrender();\n }\n if (unrenderFunc) {\n unrenderFunc.apply(thisContext, prevArgs);\n }\n prevArgs = null;\n }\n }\n function res() {\n if (!prevArgs || !isArraysEqual(prevArgs, arguments)) {\n unrender();\n thisContext = this;\n prevArgs = arguments;\n renderFunc.apply(this, arguments);\n }\n }\n res.dependents = dependents;\n res.unrender = unrender;\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\n var dependency = dependencies_1[_i];\n dependency.dependents.push(res);\n }\n return res;\n}\n\nvar EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nvar Splitter = /** @class */ (function () {\n function Splitter() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n var keyInfos = this.getKeyInfo(props);\n var defKeys = this.getKeysForEventDefs(props.eventStore);\n var dateSelections = this.splitDateSelection(props.dateSelection);\n var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n var eventStores = this.splitEventStore(props.eventStore, defKeys);\n var eventDrags = this.splitEventDrag(props.eventDrag);\n var eventResizes = this.splitEventResize(props.eventResize);\n var splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, function (info, key) {\n return _this.eventUiBuilders[key] || memoize(buildEventUiForKey);\n });\n for (var key in keyInfos) {\n var keyInfo = keyInfos[key];\n var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n var buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore: eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null\n };\n }\n return splitProps;\n };\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n };\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n return mapHash(eventStore.defs, function (eventDef) {\n return _this.getKeysForEventDef(eventDef);\n });\n };\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs, instances = eventStore.instances;\n var splitStores = {};\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n };\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n for (var defId in eventUiBases) {\n if (defId) { // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n };\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar\n );\n // can't rely on defKeys because event data is mutated\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n var populate = function (key) {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n origSeg: interaction.origSeg\n };\n }\n };\n for (var key in affectedStores_1) {\n populate(key);\n }\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n return splitStates;\n };\n return Splitter;\n}());\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n var stuff = {\n '': combineEventUis(baseParts)\n };\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n return stuff;\n}\n\n// Generates HTML for an anchor to another view into the calendar.\n// Will either generate an tag or a non-clickable tag, depending on enabled settings.\n// `gotoOptions` can either be a DateMarker, or an object with the form:\n// { date, type, forceOff }\n// `type` is a view-type like \"day\" or \"week\". default value is \"day\".\n// `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\nfunction buildGotoAnchorHtml(component, gotoOptions, attrs, innerHtml) {\n var dateEnv = component.dateEnv;\n var date;\n var type;\n var forceOff;\n var finalOptions;\n if (gotoOptions instanceof Date) {\n date = gotoOptions; // a single date-like input\n }\n else {\n date = gotoOptions.date;\n type = gotoOptions.type;\n forceOff = gotoOptions.forceOff;\n }\n finalOptions = {\n date: dateEnv.formatIso(date, { omitTime: true }),\n type: type || 'day'\n };\n if (typeof attrs === 'string') {\n innerHtml = attrs;\n attrs = null;\n }\n attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space\n innerHtml = innerHtml || '';\n if (!forceOff && component.opt('navLinks')) {\n return '' +\n innerHtml +\n '';\n }\n else {\n return '' +\n innerHtml +\n '';\n }\n}\nfunction getAllDayHtml(component) {\n return component.opt('allDayHtml') || htmlEscape(component.opt('allDayText'));\n}\n// Computes HTML classNames for a single-day element\nfunction getDayClasses(date, dateProfile, context, noThemeHighlight) {\n var calendar = context.calendar, view = context.view, theme = context.theme, dateEnv = context.dateEnv;\n var classes = [];\n var todayStart;\n var todayEnd;\n if (!rangeContainsMarker(dateProfile.activeRange, date)) {\n classes.push('fc-disabled-day');\n }\n else {\n classes.push('fc-' + DAY_IDS[date.getUTCDay()]);\n if (view.opt('monthMode') &&\n dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) {\n classes.push('fc-other-month');\n }\n todayStart = startOfDay(calendar.getNow());\n todayEnd = addDays(todayStart, 1);\n if (date < todayStart) {\n classes.push('fc-past');\n }\n else if (date >= todayEnd) {\n classes.push('fc-future');\n }\n else {\n classes.push('fc-today');\n if (noThemeHighlight !== true) {\n classes.push(theme.getClass('today'));\n }\n }\n }\n return classes;\n}\n\n// given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\nfunction unpromisify(func, success, failure) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n var isResolved = false;\n var wrappedSuccess = function () {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments);\n }\n };\n var wrappedFailure = function () {\n if (!isResolved) {\n isResolved = true;\n if (failure) {\n failure.apply(this, arguments);\n }\n }\n };\n var res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Mixin = /** @class */ (function () {\n function Mixin() {\n }\n // mix into a CLASS\n Mixin.mixInto = function (destClass) {\n this.mixIntoObj(destClass.prototype);\n };\n // mix into ANY object\n Mixin.mixIntoObj = function (destObj) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n if (!destObj[name]) { // if destination doesn't already define it\n destObj[name] = _this.prototype[name];\n }\n });\n };\n /*\n will override existing methods\n TODO: remove! not used anymore\n */\n Mixin.mixOver = function (destClass) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n destClass.prototype[name] = _this.prototype[name];\n });\n };\n return Mixin;\n}());\n\n/*\nUSAGE:\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\nin class:\n on: EmitterInterface['on']\n one: EmitterInterface['one']\n off: EmitterInterface['off']\n trigger: EmitterInterface['trigger']\n triggerWith: EmitterInterface['triggerWith']\n hasHandlers: EmitterInterface['hasHandlers']\nafter class:\n EmitterMixin.mixInto(TheClass)\n*/\nvar EmitterMixin = /** @class */ (function (_super) {\n __extends(EmitterMixin, _super);\n function EmitterMixin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmitterMixin.prototype.on = function (type, handler) {\n addToHash(this._handlers || (this._handlers = {}), type, handler);\n return this; // for chaining\n };\n // todo: add comments\n EmitterMixin.prototype.one = function (type, handler) {\n addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler);\n return this; // for chaining\n };\n EmitterMixin.prototype.off = function (type, handler) {\n if (this._handlers) {\n removeFromHash(this._handlers, type, handler);\n }\n if (this._oneHandlers) {\n removeFromHash(this._oneHandlers, type, handler);\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.trigger = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n this.triggerWith(type, this, args);\n return this; // for chaining\n };\n EmitterMixin.prototype.triggerWith = function (type, context, args) {\n if (this._handlers) {\n applyAll(this._handlers[type], context, args);\n }\n if (this._oneHandlers) {\n applyAll(this._oneHandlers[type], context, args);\n delete this._oneHandlers[type]; // will never fire again\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.hasHandlers = function (type) {\n return (this._handlers && this._handlers[type] && this._handlers[type].length) ||\n (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length);\n };\n return EmitterMixin;\n}(Mixin));\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter(function (func) {\n return func !== handler;\n });\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nvar PositionCache = /** @class */ (function () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.originEl = originEl;\n this.els = els;\n this.isHorizontal = isHorizontal;\n this.isVertical = isVertical;\n }\n // Queries the els for coordinates and stores them.\n // Call this method before using and of the get* methods below.\n PositionCache.prototype.build = function () {\n var originEl = this.originEl;\n var originClientRect = this.originClientRect =\n originEl.getBoundingClientRect(); // relative to viewport top-left\n if (this.isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (this.isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n };\n // Populates the left/right internal coordinate arrays\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n };\n // Populates the top/bottom internal coordinate arrays\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n };\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var lefts = this.lefts;\n var rights = this.rights;\n var len = lefts.length;\n var i;\n for (i = 0; i < len; i++) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n };\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.topToIndex = function (topPosition) {\n var tops = this.tops;\n var bottoms = this.bottoms;\n var len = tops.length;\n var i;\n for (i = 0; i < len; i++) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n };\n // Gets the width of the element at the given index\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n };\n // Gets the height of the element at the given index\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n return PositionCache;\n}());\n\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nvar ScrollController = /** @class */ (function () {\n function ScrollController() {\n }\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n return ScrollController;\n}());\nvar ElementScrollController = /** @class */ (function (_super) {\n __extends(ElementScrollController, _super);\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n return ElementScrollController;\n}(ScrollController));\nvar WindowScrollController = /** @class */ (function (_super) {\n __extends(WindowScrollController, _super);\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n return WindowScrollController;\n}(ScrollController));\n\n/*\nEmbodies a div that has potential scrollbars\n*/\nvar ScrollComponent = /** @class */ (function (_super) {\n __extends(ScrollComponent, _super);\n function ScrollComponent(overflowX, overflowY) {\n var _this = _super.call(this, createElement('div', {\n className: 'fc-scroller'\n })) || this;\n _this.overflowX = overflowX;\n _this.overflowY = overflowY;\n _this.applyOverflow();\n return _this;\n }\n // sets to natural height, unlocks overflow\n ScrollComponent.prototype.clear = function () {\n this.setHeight('auto');\n this.applyOverflow();\n };\n ScrollComponent.prototype.destroy = function () {\n removeElement(this.el);\n };\n // Overflow\n // -----------------------------------------------------------------------------------------------------------------\n ScrollComponent.prototype.applyOverflow = function () {\n applyStyle(this.el, {\n overflowX: this.overflowX,\n overflowY: this.overflowY\n });\n };\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\n // Useful for preserving scrollbar widths regardless of future resizes.\n // Can pass in scrollbarWidths for optimization.\n ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) {\n var overflowX = this.overflowX;\n var overflowY = this.overflowY;\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\n if (overflowX === 'auto') {\n overflowX = (scrollbarWidths.bottom || // horizontal scrollbars?\n this.canScrollHorizontally() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n if (overflowY === 'auto') {\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars?\n this.canScrollVertically() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY });\n };\n ScrollComponent.prototype.setHeight = function (height) {\n applyStyleProp(this.el, 'height', height);\n };\n ScrollComponent.prototype.getScrollbarWidths = function () {\n var edges = computeEdges(this.el);\n return {\n left: edges.scrollbarLeft,\n right: edges.scrollbarRight,\n bottom: edges.scrollbarBottom\n };\n };\n return ScrollComponent;\n}(ElementScrollController));\n\nvar Theme = /** @class */ (function () {\n function Theme(calendarOptions) {\n this.calendarOptions = calendarOptions;\n this.processIconOverride();\n }\n Theme.prototype.processIconOverride = function () {\n if (this.iconOverrideOption) {\n this.setIconOverride(this.calendarOptions[this.iconOverrideOption]);\n }\n };\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n };\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n Theme.prototype.getIconClass = function (buttonName) {\n var className = this.iconClasses[buttonName];\n if (className) {\n return this.baseIconClass + ' ' + className;\n }\n return '';\n };\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\n }\n }\n return '';\n };\n return Theme;\n}());\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar guid = 0;\nvar Component = /** @class */ (function () {\n function Component(context, isView) {\n // HACK to populate view at top of component instantiation call chain\n if (isView) {\n context.view = this;\n }\n this.uid = String(guid++);\n this.context = context;\n this.dateEnv = context.dateEnv;\n this.theme = context.theme;\n this.view = context.view;\n this.calendar = context.calendar;\n this.isRtl = this.opt('dir') === 'rtl';\n }\n Component.addEqualityFuncs = function (newFuncs) {\n this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);\n };\n Component.prototype.opt = function (name) {\n return this.context.options[name];\n };\n Component.prototype.receiveProps = function (props) {\n var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;\n this.props = comboProps;\n if (anyChanges) {\n this.render(comboProps);\n }\n };\n Component.prototype.render = function (props) {\n };\n // after destroy is called, this component won't ever be used again\n Component.prototype.destroy = function () {\n };\n return Component;\n}());\nComponent.prototype.equalityFuncs = {};\n/*\nReuses old values when equal. If anything is unequal, returns newProps as-is.\nGreat for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing.\n*/\nfunction recycleProps(oldProps, newProps, equalityFuncs) {\n var comboProps = {}; // some old, some new\n var anyChanges = false;\n for (var key in newProps) {\n if (key in oldProps && (oldProps[key] === newProps[key] ||\n (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) {\n // equal to old? use old prop\n comboProps[key] = oldProps[key];\n }\n else {\n comboProps[key] = newProps[key];\n anyChanges = true;\n }\n }\n for (var key in oldProps) {\n if (!(key in newProps)) {\n anyChanges = true;\n break;\n }\n }\n return { anyChanges: anyChanges, comboProps: comboProps };\n}\n\n/*\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nvar DateComponent = /** @class */ (function (_super) {\n __extends(DateComponent, _super);\n function DateComponent(context, el, isView) {\n var _this = _super.call(this, context, isView) || this;\n _this.el = el;\n return _this;\n }\n DateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n removeElement(this.el);\n };\n // TODO: WHAT ABOUT (sourceSeg && sourceSeg.component.doesDragMirror)\n //\n // Event Drag-n-Drop Rendering (for both events and external elements)\n // ---------------------------------------------------------------------------------------------------------------\n /*\n renderEventDragSegs(state: EventSegUiInteractionState) {\n if (state) {\n let { isEvent, segs, sourceSeg } = state\n \n if (this.eventRenderer) {\n this.eventRenderer.hideByHash(state.affectedInstances)\n }\n \n // if the user is dragging something that is considered an event with real event data,\n // and this component likes to do drag mirrors OR the component where the seg came from\n // likes to do drag mirrors, then render a drag mirror.\n if (isEvent && (this.doesDragMirror || sourceSeg && sourceSeg.component.doesDragMirror)) {\n if (this.mirrorRenderer) {\n this.mirrorRenderer.renderSegs(segs, { isDragging: true, sourceSeg })\n }\n }\n \n // if it would be impossible to render a drag mirror OR this component likes to render\n // highlights, then render a highlight.\n if (!isEvent || this.doesDragHighlight) {\n if (this.fillRenderer) {\n this.fillRenderer.renderSegs('highlight', segs)\n }\n }\n }\n }\n */\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.buildPositionCaches = function () {\n };\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n };\n // Validation\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isInteractionValid = function (interaction) {\n var calendar = this.calendar;\n var dateProfile = this.props.dateProfile; // HACK\n var instances = interaction.mutatedEvents.instances;\n if (dateProfile) { // HACK for DayTile\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n }\n return isInteractionValid(interaction, calendar);\n };\n DateComponent.prototype.isDateSelectionValid = function (selection) {\n var dateProfile = this.props.dateProfile; // HACK\n if (dateProfile && // HACK for DayTile\n !rangeContainsRange(dateProfile.validRange, selection.range)) {\n return false;\n }\n return isDateSelectionValid(selection, this.calendar);\n };\n // Triggering\n // -----------------------------------------------------------------------------------------------------------------\n // TODO: move to Calendar\n DateComponent.prototype.publiclyTrigger = function (name, args) {\n var calendar = this.calendar;\n return calendar.publiclyTrigger(name, args);\n };\n DateComponent.prototype.publiclyTriggerAfterSizing = function (name, args) {\n var calendar = this.calendar;\n return calendar.publiclyTriggerAfterSizing(name, args);\n };\n DateComponent.prototype.hasPublicHandlers = function (name) {\n var calendar = this.calendar;\n return calendar.hasPublicHandlers(name);\n };\n DateComponent.prototype.triggerRenderedSegs = function (segs, isMirrors) {\n var calendar = this.calendar;\n if (this.hasPublicHandlers('eventPositioned')) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n this.publiclyTriggerAfterSizing('eventPositioned', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n el: seg.el,\n view: this // safe to cast because this method is only called on context.view\n }\n ]);\n }\n }\n if (!calendar.state.loadingLevel) { // avoid initial empty state while pending\n calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once\n }\n };\n DateComponent.prototype.triggerWillRemoveSegs = function (segs, isMirrors) {\n var calendar = this.calendar;\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n calendar.trigger('eventElRemove', seg.el);\n }\n if (this.hasPublicHandlers('eventDestroy')) {\n for (var _a = 0, segs_3 = segs; _a < segs_3.length; _a++) {\n var seg = segs_3[_a];\n this.publiclyTrigger('eventDestroy', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n el: seg.el,\n view: this // safe to cast because this method is only called on context.view\n }\n ]);\n }\n }\n };\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-mirror') &&\n (this.isPopover() || !this.isInPopover(el));\n // ^above line ensures we don't detect a seg interaction within a nested component.\n // it's a HACK because it only supports a popover as the nested component.\n };\n DateComponent.prototype.isValidDateDownEl = function (el) {\n var segEl = elementClosest(el, this.fgSegSelector);\n return (!segEl || segEl.classList.contains('fc-mirror')) &&\n !elementClosest(el, '.fc-more') && // a \"more..\" link\n !elementClosest(el, 'a[data-goto]') && // a clickable nav link\n !this.isInPopover(el);\n };\n DateComponent.prototype.isPopover = function () {\n return this.el.classList.contains('fc-popover');\n };\n DateComponent.prototype.isInPopover = function (el) {\n return Boolean(elementClosest(el, '.fc-popover'));\n };\n return DateComponent;\n}(Component));\nDateComponent.prototype.fgSegSelector = '.fc-event-container > *';\nDateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)';\n\nvar uid$1 = 0;\nfunction createPlugin(input) {\n return {\n id: String(uid$1++),\n deps: input.deps || [],\n reducers: input.reducers || [],\n eventDefParsers: input.eventDefParsers || [],\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],\n viewContainerModifiers: input.viewContainerModifiers || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n defaultView: input.defaultView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {}\n };\n}\nvar PluginSystem = /** @class */ (function () {\n function PluginSystem() {\n this.hooks = {\n reducers: [],\n eventDefParsers: [],\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n eventResizeJoinTransforms: [],\n viewContainerModifiers: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n defaultView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {}\n };\n this.addedHash = {};\n }\n PluginSystem.prototype.add = function (plugin) {\n if (!this.addedHash[plugin.id]) {\n this.addedHash[plugin.id] = true;\n for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) {\n var dep = _a[_i];\n this.add(dep);\n }\n this.hooks = combineHooks(this.hooks, plugin);\n }\n };\n return PluginSystem;\n}());\nfunction combineHooks(hooks0, hooks1) {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: __assign({}, hooks0.views, hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),\n viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n defaultView: hooks0.defaultView || hooks1.defaultView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers)\n };\n}\n\nvar eventSourceDef = {\n ignoreRange: true,\n parseMeta: function (raw) {\n if (Array.isArray(raw)) { // short form\n return raw;\n }\n else if (Array.isArray(raw.events)) {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success) {\n success({\n rawEvents: arg.eventSource.meta\n });\n }\n};\nvar ArrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef]\n});\n\nvar eventSourceDef$1 = {\n parseMeta: function (raw) {\n if (typeof raw === 'function') { // short form\n return raw;\n }\n else if (typeof raw.events === 'function') {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success, failure) {\n var dateEnv = arg.calendar.dateEnv;\n var func = arg.eventSource.meta;\n unpromisify(func.bind(null, {\n start: dateEnv.toDate(arg.range.start),\n end: dateEnv.toDate(arg.range.end),\n startStr: dateEnv.formatIso(arg.range.start),\n endStr: dateEnv.formatIso(arg.range.end),\n timeZone: dateEnv.timeZone\n }), function (rawEvents) {\n success({ rawEvents: rawEvents }); // needs an object response\n }, failure // send errorObj directly to failure callback\n );\n }\n};\nvar FuncEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$1]\n});\n\nfunction requestJson(method, url, params, successCallback, failureCallback) {\n method = method.toUpperCase();\n var body = null;\n if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n }\n else {\n body = encodeParams(params);\n }\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n try {\n var res = JSON.parse(xhr.responseText);\n successCallback(res, xhr);\n }\n catch (err) {\n failureCallback('Failure parsing JSON', xhr);\n }\n }\n else {\n failureCallback('Request failed', xhr);\n }\n };\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n xhr.send(body);\n}\nfunction injectQueryStringParams(url, params) {\n return url +\n (url.indexOf('?') === -1 ? '?' : '&') +\n encodeParams(params);\n}\nfunction encodeParams(params) {\n var parts = [];\n for (var key in params) {\n parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n }\n return parts.join('&');\n}\n\nvar eventSourceDef$2 = {\n parseMeta: function (raw) {\n if (typeof raw === 'string') { // short form\n raw = { url: raw };\n }\n else if (!raw || typeof raw !== 'object' || !raw.url) {\n return null;\n }\n return {\n url: raw.url,\n method: (raw.method || 'GET').toUpperCase(),\n extraParams: raw.extraParams,\n startParam: raw.startParam,\n endParam: raw.endParam,\n timeZoneParam: raw.timeZoneParam\n };\n },\n fetch: function (arg, success, failure) {\n var meta = arg.eventSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.calendar);\n requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n success({ rawEvents: rawEvents, xhr: xhr });\n }, function (errorMessage, xhr) {\n failure({ message: errorMessage, xhr: xhr });\n });\n }\n};\nvar JsonFeedEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2]\n});\nfunction buildRequestParams(meta, range, calendar) {\n var dateEnv = calendar.dateEnv;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = calendar.opt('startParam');\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = calendar.opt('endParam');\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = calendar.opt('timeZoneParam');\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n __assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nvar recurring = {\n parse: function (rawEvent, leftoverProps, dateEnv) {\n var createMarker = dateEnv.createMarker.bind(dateEnv);\n var processors = {\n daysOfWeek: null,\n startTime: createDuration,\n endTime: createDuration,\n startRecur: createMarker,\n endRecur: createMarker\n };\n var props = refineProps(rawEvent, processors, {}, leftoverProps);\n var anyValid = false;\n for (var propName in props) {\n if (props[propName] != null) {\n anyValid = true;\n break;\n }\n }\n if (anyValid) {\n var duration = null;\n if ('duration' in leftoverProps) {\n duration = createDuration(leftoverProps.duration);\n delete leftoverProps.duration;\n }\n if (!duration && props.startTime && props.endTime) {\n duration = subtractDurations(props.endTime, props.startTime);\n }\n return {\n allDayGuess: Boolean(!props.startTime && !props.endTime),\n duration: duration,\n typeData: props // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand: function (typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n else {\n return [];\n }\n }\n};\nvar SimpleRecurrencePlugin = createPlugin({\n recurringTypes: [recurring]\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n var dayMarker = startOfDay(framingRange.start);\n var endMarker = framingRange.end;\n var instanceStarts = [];\n while (dayMarker < endMarker) {\n var instanceStart \n // if everyday, or this particular day-of-week\n = void 0;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nvar DefaultOptionChangeHandlers = createPlugin({\n optionChangeHandlers: {\n events: function (events, calendar, deepEqual) {\n handleEventSources([events], calendar, deepEqual);\n },\n eventSources: handleEventSources,\n plugins: handlePlugins\n }\n});\nfunction handleEventSources(inputs, calendar, deepEqual) {\n var unfoundSources = hashValuesToArray(calendar.state.eventSources);\n var newInputs = [];\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n for (var i = 0; i < unfoundSources.length; i++) {\n if (deepEqual(unfoundSources[i]._raw, input)) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId\n });\n }\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n calendar.addEventSource(newInput);\n }\n}\n// shortcoming: won't remove plugins\nfunction handlePlugins(inputs, calendar) {\n calendar.addPluginInputs(inputs); // will gracefully handle duplicates\n}\n\nvar config = {}; // TODO: make these options\nvar globalDefaults = {\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n // display\n columnHeader: true,\n defaultView: '',\n aspectRatio: 1.35,\n header: {\n left: 'title',\n center: '',\n right: 'today prev,next'\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n // nowIndicator: false,\n scrollTime: '06:00:00',\n minTime: '00:00:00',\n maxTime: '24:00:00',\n showNonCurrentDates: true,\n // event ajax\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n // allDayDefault: undefined,\n // locale\n locales: [],\n locale: '',\n // dir: will get this from the default locale\n // buttonIcons: null,\n // allows setting a min-height to the event segment to prevent short events overlapping each other\n timeGridEventMinHeight: 0,\n themeSystem: 'standard',\n // eventResizableFromStart: false,\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n // selectable: false,\n unselectAuto: true,\n // selectMinDistance: 0,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n // ^ if start tie, longer events go before shorter. final tie-breaker is title text\n // rerenderDelay: null,\n eventLimit: false,\n eventLimitClick: 'popover',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5 // only applies to mouse\n};\nvar rtlDefaults = {\n header: {\n left: 'next,prev today',\n center: '',\n right: 'title'\n },\n buttonIcons: {\n // TODO: make RTL support the responibility of the theme\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left'\n }\n};\nvar complexOptions = [\n 'header',\n 'footer',\n 'buttonText',\n 'buttonIcons'\n];\n// Merges an array of option objects into a single object\nfunction mergeOptions(optionObjs) {\n return mergeProps(optionObjs, complexOptions);\n}\n// TODO: move this stuff to a \"plugin\"-related file...\nvar INTERNAL_PLUGINS = [\n ArrayEventSourcePlugin,\n FuncEventSourcePlugin,\n JsonFeedEventSourcePlugin,\n SimpleRecurrencePlugin,\n DefaultOptionChangeHandlers\n];\nfunction refinePluginDefs(pluginInputs) {\n var plugins = [];\n for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) {\n var pluginInput = pluginInputs_1[_i];\n if (typeof pluginInput === 'string') {\n var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput);\n if (!window[globalName]) {\n console.warn('Plugin file not loaded for ' + pluginInput);\n }\n else {\n plugins.push(window[globalName].default); // is an ES6 module\n }\n }\n else {\n plugins.push(pluginInput);\n }\n }\n return INTERNAL_PLUGINS.concat(plugins);\n}\n\nvar RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4 // 4 days need to be within the year to be considered the first week\n },\n dir: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list'\n },\n weekLabel: 'W',\n allDayText: 'all-day',\n eventLimitText: 'more',\n noEventsMessage: 'No events to display'\n};\nfunction parseRawLocales(explicitRawLocales) {\n var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js\n var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless\n var allRawLocales = globalArray.concat(// globalArray is low prio\n hashValuesToArray(globalObject), // medium prio\n explicitRawLocales // highest prio\n );\n var rawLocaleMap = {\n en: RAW_EN_LOCALE // necessary?\n };\n for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n var rawLocale = allRawLocales_1[_i];\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n else {\n return queryLocale(inputSingular, available);\n }\n}\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i++) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n for (var j = parts.length; j > 0; j--) {\n var simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n var week = merged.week;\n delete merged.week;\n return {\n codeArg: codeArg,\n codes: codes,\n week: week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged\n };\n}\n\nvar OptionsManager = /** @class */ (function () {\n function OptionsManager(overrides) {\n this.overrides = __assign({}, overrides); // make a copy\n this.dynamicOverrides = {};\n this.compute();\n }\n OptionsManager.prototype.mutate = function (updates, removals, isDynamic) {\n var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides;\n __assign(overrideHash, updates);\n for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) {\n var propName = removals_1[_i];\n delete overrideHash[propName];\n }\n this.compute();\n };\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\n OptionsManager.prototype.compute = function () {\n // TODO: not a very efficient system\n var locales = firstDefined(// explicit locale option given?\n this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales);\n var locale = firstDefined(// explicit locales option given?\n this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale);\n var available = parseRawLocales(locales);\n var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options;\n var dir = firstDefined(// based on options computed so far, is direction RTL?\n this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir);\n var dirDefaults = dir === 'rtl' ? rtlDefaults : {};\n this.dirDefaults = dirDefaults;\n this.localeDefaults = localeDefaults;\n this.computed = mergeOptions([\n globalDefaults,\n dirDefaults,\n localeDefaults,\n this.overrides,\n this.dynamicOverrides\n ]);\n };\n return OptionsManager;\n}());\n\nvar calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nvar GregorianCalendarSystem = /** @class */ (function () {\n function GregorianCalendarSystem() {\n }\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n return GregorianCalendarSystem;\n}());\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nvar ISO_RE = /^\\s*(\\d{4})(-(\\d{2})(-(\\d{2})([T ](\\d{2}):(\\d{2})(:(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n if (m) {\n var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0));\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset\n };\n }\n }\n return null;\n}\n\nvar DateEnv = /** @class */ (function () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel;\n this.cmdFormatter = settings.cmdFormatter;\n }\n // Creating / Parsing\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n };\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n else {\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n };\n DateEnv.prototype.createMarkerMeta = function (input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n var marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker: marker, isTimeUnspecified: false, forcedTzo: null };\n };\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n if (parts === null) {\n return null;\n }\n var marker = parts.marker;\n var forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo };\n };\n // Accessors\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n };\n // Adding / Subtracting\n DateEnv.prototype.add = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.subtract = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addYears = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addMonths = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n // Diffing Whole Units\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n };\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n };\n // Range / Duration\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n };\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n };\n // Start-Of\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n else if (unit === 'month') {\n return this.startOfMonth(m);\n }\n else if (unit === 'week') {\n return this.startOfWeek(m);\n }\n else if (unit === 'day') {\n return startOfDay(m);\n }\n else if (unit === 'hour') {\n return startOfHour(m);\n }\n else if (unit === 'minute') {\n return startOfMinute(m);\n }\n else if (unit === 'second') {\n return startOfSecond(m);\n }\n };\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m)\n ]);\n };\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m)\n ]);\n };\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7)\n ]);\n };\n // Week Number\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n else {\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n };\n // TODO: choke on timeZoneName: long\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker)\n }, this);\n };\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start)\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end)\n }, this);\n };\n DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) { extraOptions = {}; }\n var timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n };\n // TimeZone\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n else {\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n };\n DateEnv.prototype.offsetForMarker = function (m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n else if (this.timeZone === 'UTC') {\n return 0;\n }\n else if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n };\n // Conversion\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n else if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n else if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n else {\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms\n );\n }\n };\n return DateEnv;\n}());\n\nvar SIMPLE_SOURCE_PROPS = {\n id: String,\n allDayDefault: Boolean,\n eventDataTransform: Function,\n success: Function,\n failure: Function\n};\nvar uid$2 = 0;\nfunction doesSourceNeedRange(eventSource, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\nfunction parseEventSource(raw, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n if (meta) {\n var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar);\n res._raw = raw;\n return res;\n }\n }\n return null;\n}\nfunction parseEventSourceProps(raw, meta, sourceDefId, calendar) {\n var leftovers0 = {};\n var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0);\n var leftovers1 = {};\n var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1);\n props.isFetching = false;\n props.latestFetchId = '';\n props.fetchRange = null;\n props.publicId = String(raw.id || '');\n props.sourceId = String(uid$2++);\n props.sourceDefId = sourceDefId;\n props.meta = meta;\n props.ui = ui;\n props.extendedProps = leftovers1;\n return props;\n}\n\nfunction reduceEventSources (eventSources, action, dateProfile, calendar) {\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, dateProfile.activeRange, calendar);\n }\n else {\n return eventSources;\n }\n case 'FETCH_EVENT_SOURCES':\n case 'CHANGE_TIMEZONE':\n return fetchSourcesByIds(eventSources, action.sourceIds ?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nvar uid$3 = 0;\nfunction addSources(eventSourceHash, sources, fetchRange, calendar) {\n var hash = {};\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n var source = sources_1[_i];\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, calendar);\n }\n return __assign({}, eventSourceHash, hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) {\n return eventSource.sourceId !== sourceId;\n });\n}\nfunction fetchDirtySources(sourceHash, fetchRange, calendar) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) {\n return isSourceDirty(eventSource, fetchRange, calendar);\n }), fetchRange, calendar);\n}\nfunction isSourceDirty(eventSource, fetchRange, calendar) {\n if (!doesSourceNeedRange(eventSource, calendar)) {\n return !eventSource.latestFetchId;\n }\n else {\n return !calendar.opt('lazyFetching') ||\n !eventSource.fetchRange ||\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n }\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) {\n var nextSources = {};\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, calendar);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, calendar) {\n var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId];\n var fetchId = String(uid$3++);\n sourceDef.fetch({\n eventSource: eventSource,\n calendar: calendar,\n range: fetchRange\n }, function (res) {\n var rawEvents = res.rawEvents;\n var calSuccess = calendar.opt('eventSourceSuccess');\n var calSuccessRes;\n var sourceSuccessRes;\n if (eventSource.success) {\n sourceSuccessRes = eventSource.success(rawEvents, res.xhr);\n }\n if (calSuccess) {\n calSuccessRes = calSuccess(rawEvents, res.xhr);\n }\n rawEvents = sourceSuccessRes || calSuccessRes || rawEvents;\n calendar.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawEvents: rawEvents\n });\n }, function (error) {\n var callFailure = calendar.opt('eventSourceFailure');\n console.warn(error.message, error);\n if (eventSource.failure) {\n eventSource.failure(error);\n }\n if (callFailure) {\n callFailure(error);\n }\n calendar.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n var eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange }), _a));\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, calendar) {\n return filterHash(eventSources, function (eventSource) {\n return doesSourceNeedRange(eventSource, calendar);\n });\n}\n\nvar DateProfileGenerator = /** @class */ (function () {\n function DateProfileGenerator(viewSpec, calendar) {\n this.viewSpec = viewSpec;\n this.options = viewSpec.options;\n this.dateEnv = calendar.dateEnv;\n this.calendar = calendar;\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1);\n };\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1);\n };\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) { forceToValid = false; }\n var validRange;\n var minTime = null;\n var maxTime = null;\n var currentInfo;\n var isRangeAllDay;\n var renderRange;\n var activeRange;\n var isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!this.options.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n minTime = createDuration(this.options.minTime);\n maxTime = createDuration(this.options.maxTime);\n activeRange = this.adjustActiveRange(activeRange, minTime, maxTime);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n return {\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange: validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay: isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange: activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange: renderRange,\n // Duration object that denotes the first visible time of any given day\n minTime: minTime,\n // Duration object that denotes the exclusive visible end time of any given day\n maxTime: maxTime,\n isValid: isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\n // pass a fallback (might be null) ^\n };\n };\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildValidRange = function () {\n return this.getRangeOption('validRange', this.calendar.getNow()) ||\n { start: null, end: null }; // completely open-ended\n };\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n if (viewSpec.duration) {\n duration = viewSpec.duration;\n unit = viewSpec.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.options.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration: duration, unit: unit, range: range };\n };\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({ day: 1 });\n };\n // Returns a new activeRange to have time values (un-ambiguate)\n // minTime or maxTime causes the range to expand.\n DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) {\n var dateEnv = this.dateEnv;\n var start = range.start;\n var end = range.end;\n if (this.viewSpec.class.prototype.usesMinMaxTime) {\n // expand active range if minTime is negative (why not when positive?)\n if (asRoughDays(minTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, minTime);\n }\n // expand active range if maxTime is beyond one day (why not when positive?)\n if (asRoughDays(maxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, maxTime);\n }\n }\n return { start: start, end: end };\n };\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var dateEnv = this.dateEnv;\n var alignment = this.options.dateAlignment;\n var dateIncrementInput;\n var dateIncrementDuration;\n var start;\n var end;\n var res;\n // compute what the alignment should be\n if (!alignment) {\n dateIncrementInput = this.options.dateIncrement;\n if (dateIncrementInput) {\n dateIncrementDuration = createDuration(dateIncrementInput);\n // use the smaller of the two units\n if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) {\n alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit;\n }\n else {\n alignment = unit;\n }\n }\n else {\n alignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, alignment);\n end = dateEnv.add(start, duration);\n res = { start: start, end: end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n };\n // Builds the \"current\" range when a dayCount is specified.\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var dateEnv = this.dateEnv;\n var customAlignment = this.options.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n if (customAlignment) {\n start = dateEnv.startOf(start, customAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount++;\n }\n } while (runningCount < dayCount);\n return { start: start, end: end };\n };\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var dateEnv = this.dateEnv;\n var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date));\n if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) {\n return null;\n }\n return visibleRange;\n };\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n };\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrementInput = this.options.dateIncrement;\n var customAlignment;\n if (dateIncrementInput) {\n return createDuration(dateIncrementInput);\n }\n else if ((customAlignment = this.options.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n else if (fallback) {\n return fallback;\n }\n else {\n return createDuration({ days: 1 });\n }\n };\n // Arguments after name will be forwarded to a hypothetical function value\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\n // Always clone your objects if you fear mutation.\n DateProfileGenerator.prototype.getRangeOption = function (name) {\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var val = this.options[name];\n if (typeof val === 'function') {\n val = val.apply(null, otherArgs);\n }\n if (val) {\n val = parseRange(val, this.dateEnv);\n }\n if (val) {\n val = computeVisibleDayRange(val);\n }\n return val;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n var dayCnt = 0;\n var i;\n if (this.options.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i++) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt++;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n };\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start;\n var end = range.end;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start: start, end: end };\n }\n return null;\n };\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n };\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) { inc = 1; }\n if (isExclusive === void 0) { isExclusive = false; }\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n };\n return DateProfileGenerator;\n}());\n// TODO: find a way to avoid comparing DateProfiles. it's tedious\nfunction isDateProfilesEqual(p0, p1) {\n return rangesEqual(p0.validRange, p1.validRange) &&\n rangesEqual(p0.activeRange, p1.activeRange) &&\n rangesEqual(p0.renderRange, p1.renderRange) &&\n durationsEqual(p0.minTime, p1.minTime) &&\n durationsEqual(p0.maxTime, p1.maxTime);\n /*\n TODO: compare more?\n currentRange: DateRange\n currentRangeUnit: string\n isRangeAllDay: boolean\n isValid: boolean\n dateIncrement: Duration\n */\n}\n\nfunction reduce (state, action, calendar) {\n var viewType = reduceViewType(state.viewType, action);\n var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar);\n var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar);\n var nextState = __assign({}, state, { viewType: viewType,\n dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) });\n for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) {\n var reducerFunc = _a[_i];\n nextState = reducerFunc(nextState, action, calendar);\n }\n // console.log(action.type, nextState)\n return nextState;\n}\nfunction reduceViewType(currentViewType, action) {\n switch (action.type) {\n case 'SET_VIEW_TYPE':\n return action.viewType;\n default:\n return currentViewType;\n }\n}\nfunction reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) {\n var newDateProfile;\n switch (action.type) {\n case 'PREV':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate);\n break;\n case 'NEXT':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate);\n break;\n case 'SET_DATE':\n if (!currentDateProfile.activeRange ||\n !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) {\n newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid\n );\n }\n break;\n case 'SET_VIEW_TYPE':\n var generator = calendar.dateProfileGenerators[viewType];\n if (!generator) {\n throw new Error(viewType ?\n 'The FullCalendar view \"' + viewType + '\" does not exist. Make sure your plugins are loaded correctly.' :\n 'No available FullCalendar view plugins.');\n }\n newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid\n );\n break;\n }\n if (newDateProfile &&\n newDateProfile.isValid &&\n !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) {\n return newDateProfile;\n }\n else {\n return currentDateProfile;\n }\n}\nfunction reduceCurrentDate(currentDate, action, dateProfile) {\n switch (action.type) {\n case 'PREV':\n case 'NEXT':\n if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return currentDate;\n }\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n var newDate = action.dateMarker || currentDate;\n if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return newDate;\n }\n default:\n return currentDate;\n }\n}\nfunction reduceDateSelection(currentSelection, action, calendar) {\n switch (action.type) {\n case 'SELECT_DATES':\n return action.selection;\n case 'UNSELECT_DATES':\n return null;\n default:\n return currentSelection;\n }\n}\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n case 'UNSELECT_EVENT':\n return '';\n default:\n return currentInstanceId;\n }\n}\nfunction reduceEventDrag(currentDrag, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n var newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n origSeg: newDrag.origSeg\n };\n case 'UNSET_EVENT_DRAG':\n return null;\n default:\n return currentDrag;\n }\n}\nfunction reduceEventResize(currentResize, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_RESIZE':\n var newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n origSeg: newResize.origSeg\n };\n case 'UNSET_EVENT_RESIZE':\n return null;\n default:\n return currentResize;\n }\n}\nfunction computeLoadingLevel(eventSources) {\n var cnt = 0;\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n cnt++;\n }\n }\n return cnt;\n}\n\nvar STANDARD_PROPS = {\n start: null,\n end: null,\n allDay: Boolean\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n else {\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n var leftovers = {};\n var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers);\n var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n var allDay = standardProps.allDay;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n // use this leftover object as the selection object\n leftovers.range = {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null\n };\n leftovers.allDay = allDay;\n return leftovers;\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (var propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return {\n start: dateEnv.toDate(span.range.start),\n end: dateEnv.toDate(span.range.end),\n startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, calendar) {\n var def = parseEventDef({ editable: false }, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n calendar);\n return {\n def: def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true\n };\n}\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n var queryProp = function (name) {\n return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null);\n };\n var theClass = queryProp('class');\n var superType = queryProp('superType');\n if (!superType && theClass) {\n superType =\n findViewNameBySubclass(theClass, overrideConfigs) ||\n findViewNameBySubclass(theClass, defaultConfigs);\n }\n var superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theClass && superDef) {\n theClass = superDef.class;\n }\n if (!theClass) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n class: theClass,\n defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})),\n overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {}))\n };\n}\nfunction findViewNameBySubclass(viewSubclass, configs) {\n var superProto = Object.getPrototypeOf(viewSubclass.prototype);\n for (var viewType in configs) {\n var parsed = configs[viewType];\n // need DIRECT subclass, so instanceof won't do it\n if (parsed.class && parsed.class.prototype === superProto) {\n return viewType;\n }\n }\n return '';\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nvar VIEW_DEF_PROPS = {\n type: String,\n class: null\n};\nfunction parseViewConfig(input) {\n if (typeof input === 'function') {\n input = { class: input };\n }\n var options = {};\n var props = refineProps(input, VIEW_DEF_PROPS, {}, options);\n return {\n superType: props.type,\n class: props.class,\n options: options\n };\n}\n\nfunction buildViewSpecs(defaultInputs, optionsManager) {\n var defaultConfigs = parseViewConfigs(defaultInputs);\n var overrideConfigs = parseViewConfigs(optionsManager.overrides.views);\n var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, function (viewDef) {\n return buildViewSpec(viewDef, overrideConfigs, optionsManager);\n });\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionsManager) {\n var durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n optionsManager.dynamicOverrides.duration ||\n optionsManager.overrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n if (durationInput) {\n duration = createDuration(durationInput);\n if (duration) { // valid?\n var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput));\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {};\n }\n }\n }\n var queryButtonText = function (options) {\n var buttonTextMap = options.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n };\n return {\n type: viewDef.type,\n class: viewDef.class,\n duration: duration,\n durationUnit: durationUnit,\n singleUnit: singleUnit,\n options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides),\n buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) ||\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(optionsManager.localeDefaults) ||\n queryButtonText(optionsManager.dirDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(globalDefaults) ||\n viewDef.type // fall back to given view name\n };\n}\n\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar(context, extraClassName) {\n var _this = _super.call(this, context) || this;\n _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout);\n _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]);\n _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]);\n _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]);\n _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]);\n _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]);\n _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName });\n return _this;\n }\n Toolbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._renderLayout.unrender(); // should unrender everything else\n removeElement(this.el);\n };\n Toolbar.prototype.render = function (props) {\n this._renderLayout(props.layout);\n this._updateTitle(props.title);\n this._updateActiveButton(props.activeButton);\n this._updateToday(props.isTodayEnabled);\n this._updatePrev(props.isPrevEnabled);\n this._updateNext(props.isNextEnabled);\n };\n Toolbar.prototype.renderLayout = function (layout) {\n var el = this.el;\n this.viewsWithButtons = [];\n appendToElement(el, this.renderSection('left', layout.left));\n appendToElement(el, this.renderSection('center', layout.center));\n appendToElement(el, this.renderSection('right', layout.right));\n };\n Toolbar.prototype.unrenderLayout = function () {\n this.el.innerHTML = '';\n };\n Toolbar.prototype.renderSection = function (position, buttonStr) {\n var _this = this;\n var _a = this, theme = _a.theme, calendar = _a.calendar;\n var optionsManager = calendar.optionsManager;\n var viewSpecs = calendar.viewSpecs;\n var sectionEl = createElement('div', { className: 'fc-' + position });\n var calendarCustomButtons = optionsManager.computed.customButtons || {};\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\n var calendarButtonText = optionsManager.computed.buttonText || {};\n if (buttonStr) {\n buttonStr.split(' ').forEach(function (buttonGroupStr, i) {\n var groupChildren = [];\n var isOnlyButtons = true;\n var groupEl;\n buttonGroupStr.split(',').forEach(function (buttonName, j) {\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n var buttonText; // \"\n var buttonInnerHtml;\n var buttonClasses;\n var buttonEl;\n var buttonAriaAttr;\n if (buttonName === 'title') {\n groupChildren.push(htmlToElement('

 

')); // we always want it to take up height\n isOnlyButtons = false;\n }\n else {\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = function (ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(buttonEl, ev);\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = customButtonProps.text);\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n _this.viewsWithButtons.push(buttonName);\n buttonClick = function () {\n calendar.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = viewSpec.buttonTextDefault);\n }\n else if (calendar[buttonName]) { // a calendar method\n buttonClick = function () {\n calendar[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = calendarButtonText[buttonName]);\n // ^ everything else is considered default\n }\n if (buttonClick) {\n buttonClasses = [\n 'fc-' + buttonName + '-button',\n theme.getClass('button')\n ];\n if (buttonText) {\n buttonInnerHtml = htmlEscape(buttonText);\n buttonAriaAttr = '';\n }\n else if (buttonIcon) {\n buttonInnerHtml = \"\";\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\n }\n buttonEl = htmlToElement(// type=\"button\" so that it doesn't submit a form\n '');\n buttonEl.addEventListener('click', buttonClick);\n groupChildren.push(buttonEl);\n }\n }\n });\n if (groupChildren.length > 1) {\n groupEl = document.createElement('div');\n var buttonGroupClassName = theme.getClass('buttonGroup');\n if (isOnlyButtons && buttonGroupClassName) {\n groupEl.classList.add(buttonGroupClassName);\n }\n appendToElement(groupEl, groupChildren);\n sectionEl.appendChild(groupEl);\n }\n else {\n appendToElement(sectionEl, groupChildren); // 1 or 0 children\n }\n });\n }\n return sectionEl;\n };\n Toolbar.prototype.updateToday = function (isTodayEnabled) {\n this.toggleButtonEnabled('today', isTodayEnabled);\n };\n Toolbar.prototype.updatePrev = function (isPrevEnabled) {\n this.toggleButtonEnabled('prev', isPrevEnabled);\n };\n Toolbar.prototype.updateNext = function (isNextEnabled) {\n this.toggleButtonEnabled('next', isNextEnabled);\n };\n Toolbar.prototype.updateTitle = function (text) {\n findElements(this.el, 'h2').forEach(function (titleEl) {\n titleEl.innerText = text;\n });\n };\n Toolbar.prototype.updateActiveButton = function (buttonName) {\n var className = this.theme.getClass('buttonActive');\n findElements(this.el, 'button').forEach(function (buttonEl) {\n if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) {\n buttonEl.classList.add(className);\n }\n else {\n buttonEl.classList.remove(className);\n }\n });\n };\n Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) {\n findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) {\n buttonEl.disabled = !bool;\n });\n };\n return Toolbar;\n}(Component));\n\nvar CalendarComponent = /** @class */ (function (_super) {\n __extends(CalendarComponent, _super);\n function CalendarComponent(context, el) {\n var _this = _super.call(this, context) || this;\n _this._renderToolbars = memoizeRendering(_this.renderToolbars);\n _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n _this.el = el;\n prependToElement(el, _this.contentEl = createElement('div', { className: 'fc-view-container' }));\n var calendar = _this.calendar;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) {\n var modifyViewContainer = _a[_i];\n modifyViewContainer(_this.contentEl, calendar);\n }\n _this.toggleElClassNames(true);\n _this.computeTitle = memoize(computeTitle);\n _this.parseBusinessHours = memoize(function (input) {\n return parseBusinessHours(input, _this.calendar);\n });\n return _this;\n }\n CalendarComponent.prototype.destroy = function () {\n if (this.header) {\n this.header.destroy();\n }\n if (this.footer) {\n this.footer.destroy();\n }\n if (this.view) {\n this.view.destroy();\n }\n removeElement(this.contentEl);\n this.toggleElClassNames(false);\n _super.prototype.destroy.call(this);\n };\n CalendarComponent.prototype.toggleElClassNames = function (bool) {\n var classList = this.el.classList;\n var dirClassName = 'fc-' + this.opt('dir');\n var themeClassName = this.theme.getClass('widget');\n if (bool) {\n classList.add('fc');\n classList.add(dirClassName);\n classList.add(themeClassName);\n }\n else {\n classList.remove('fc');\n classList.remove(dirClassName);\n classList.remove(themeClassName);\n }\n };\n CalendarComponent.prototype.render = function (props) {\n this.freezeHeight();\n var title = this.computeTitle(props.dateProfile, props.viewSpec.options);\n this._renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, props.dateProfileGenerator, title);\n this.renderView(props, title);\n this.updateSize();\n this.thawHeight();\n };\n CalendarComponent.prototype.renderToolbars = function (viewSpec, dateProfile, currentDate, dateProfileGenerator, title) {\n var headerLayout = this.opt('header');\n var footerLayout = this.opt('footer');\n var now = this.calendar.getNow();\n var todayInfo = dateProfileGenerator.build(now);\n var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate);\n var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate);\n var toolbarProps = {\n title: title,\n activeButton: viewSpec.type,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid\n };\n if (headerLayout) {\n if (!this.header) {\n this.header = new Toolbar(this.context, 'fc-header-toolbar');\n prependToElement(this.el, this.header.el);\n }\n this.header.receiveProps(__assign({ layout: headerLayout }, toolbarProps));\n }\n else if (this.header) {\n this.header.destroy();\n this.header = null;\n }\n if (footerLayout) {\n if (!this.footer) {\n this.footer = new Toolbar(this.context, 'fc-footer-toolbar');\n appendToElement(this.el, this.footer.el);\n }\n this.footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps));\n }\n else if (this.footer) {\n this.footer.destroy();\n this.footer = null;\n }\n };\n CalendarComponent.prototype.renderView = function (props, title) {\n var view = this.view;\n var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator;\n if (!view || view.viewSpec !== viewSpec) {\n if (view) {\n view.destroy();\n }\n view = this.view = new viewSpec['class']({\n calendar: this.calendar,\n view: null,\n dateEnv: this.dateEnv,\n theme: this.theme,\n options: viewSpec.options\n }, viewSpec, dateProfileGenerator, this.contentEl);\n }\n else {\n view.addScroll(view.queryScroll());\n }\n view.title = title; // for the API\n var viewProps = {\n dateProfile: props.dateProfile,\n businessHours: this.parseBusinessHours(viewSpec.options.businessHours),\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize\n };\n var transformers = this.buildViewPropTransformers(this.calendar.pluginSystem.hooks.viewPropsTransformers);\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n __assign(viewProps, transformer.transform(viewProps, viewSpec, props, view));\n }\n view.receiveProps(viewProps);\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.updateSize = function (isResize) {\n if (isResize === void 0) { isResize = false; }\n var view = this.view;\n if (isResize) {\n view.addScroll(view.queryScroll());\n }\n if (isResize || this.isHeightAuto == null) {\n this.computeHeightVars();\n }\n view.updateSize(isResize, this.viewHeight, this.isHeightAuto);\n view.updateNowIndicator(); // we need to guarantee this will run after updateSize\n view.popScroll(isResize);\n };\n CalendarComponent.prototype.computeHeightVars = function () {\n var calendar = this.calendar; // yuck. need to handle dynamic options\n var heightInput = calendar.opt('height');\n var contentHeightInput = calendar.opt('contentHeight');\n this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto';\n if (typeof contentHeightInput === 'number') { // exists and not 'auto'\n this.viewHeight = contentHeightInput;\n }\n else if (typeof contentHeightInput === 'function') { // exists and is a function\n this.viewHeight = contentHeightInput();\n }\n else if (typeof heightInput === 'number') { // exists and not 'auto'\n this.viewHeight = heightInput - this.queryToolbarsHeight();\n }\n else if (typeof heightInput === 'function') { // exists and is a function\n this.viewHeight = heightInput() - this.queryToolbarsHeight();\n }\n else if (heightInput === 'parent') { // set to height of parent element\n var parentEl = this.el.parentNode;\n this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight();\n }\n else {\n this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width /\n Math.max(calendar.opt('aspectRatio'), .5));\n }\n };\n CalendarComponent.prototype.queryToolbarsHeight = function () {\n var height = 0;\n if (this.header) {\n height += computeHeightAndMargins(this.header.el);\n }\n if (this.footer) {\n height += computeHeightAndMargins(this.footer.el);\n }\n return height;\n };\n // Height \"Freezing\"\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.freezeHeight = function () {\n applyStyle(this.el, {\n height: this.el.getBoundingClientRect().height,\n overflow: 'hidden'\n });\n };\n CalendarComponent.prototype.thawHeight = function () {\n applyStyle(this.el, {\n height: '',\n overflow: ''\n });\n };\n return CalendarComponent;\n}(Component));\n// Title and Date Formatting\n// -----------------------------------------------------------------------------------------------------------------\n// Computes what the title at the top of the calendar should be for this view\nfunction computeTitle(dateProfile, viewOptions) {\n var range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return this.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction computeTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n else if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n else {\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n else {\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n }\n }\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (theClass) {\n return new theClass();\n });\n}\n\nvar Interaction = /** @class */ (function () {\n function Interaction(settings) {\n this.component = settings.component;\n }\n Interaction.prototype.destroy = function () {\n };\n return Interaction;\n}());\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true\n };\n}\nfunction interactionSettingsToStore(settings) {\n var _a;\n return _a = {},\n _a[settings.component.uid] = settings,\n _a;\n}\n// global state\nvar interactionSettingsStore = {};\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nvar EventClicking = /** @class */ (function (_super) {\n __extends(EventClicking, _super);\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var seg = getElSeg(segEl);\n if (seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n var hasUrlContainer = elementClosest(ev.target, '.fc-has-url');\n var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n component.publiclyTrigger('eventClick', [\n {\n el: segEl,\n event: new EventApi(component.calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: component.view\n }\n ]);\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n var component = settings.component;\n _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick);\n return _this;\n }\n return EventClicking;\n}(Interaction));\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nvar EventHovering = /** @class */ (function (_super) {\n __extends(EventHovering, _super);\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this;\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n segEl.classList.add('fc-allow-mouse-resize');\n _this.currentSegEl = segEl;\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n segEl.classList.remove('fc-allow-mouse-resize');\n _this.currentSegEl = null;\n _this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n var component = settings.component;\n _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave);\n component.calendar.on('eventElRemove', _this.handleEventElRemove);\n return _this;\n }\n EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\n this.component.calendar.off('eventElRemove', this.handleEventElRemove);\n };\n EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n var component = this.component;\n var seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n component.publiclyTrigger(publicEvName, [\n {\n el: segEl,\n event: new EventApi(this.component.calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: component.view\n }\n ]);\n }\n };\n return EventHovering;\n}(Interaction));\n\nvar StandardTheme = /** @class */ (function (_super) {\n __extends(StandardTheme, _super);\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return StandardTheme;\n}(Theme));\nStandardTheme.prototype.classes = {\n widget: 'fc-unthemed',\n widgetHeader: 'fc-widget-header',\n widgetContent: 'fc-widget-content',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n popoverHeader: 'fc-widget-header',\n popoverContent: 'fc-widget-content',\n // day grid\n headerRow: 'fc-widget-header',\n dayRow: 'fc-widget-content',\n // list view\n listView: 'fc-widget-content'\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right'\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nvar Calendar = /** @class */ (function () {\n function Calendar(el, overrides) {\n var _this = this;\n this.parseRawLocales = memoize(parseRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildDateEnv = memoize(buildDateEnv);\n this.buildTheme = memoize(buildTheme);\n this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase);\n this.buildSelectionConfig = memoize(this._buildSelectionConfig);\n this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.interactionsStore = {};\n this.actionQueue = [];\n this.isReducing = false;\n // isDisplaying: boolean = false // installed in DOM? accepting renders?\n this.needsRerender = false; // needs a render?\n this.needsFullRerender = false;\n this.isRendering = false; // currently in the executeRender function?\n this.renderingPauseDepth = 0;\n this.buildDelayedRerender = memoize(buildDelayedRerender);\n this.afterSizingTriggers = {};\n this.isViewUpdated = false;\n this.isDatesUpdated = false;\n this.isEventsUpdated = false;\n this.el = el;\n this.optionsManager = new OptionsManager(overrides || {});\n this.pluginSystem = new PluginSystem();\n // only do once. don't do in handleOptions. because can't remove plugins\n this.addPluginInputs(this.optionsManager.computed.plugins || []);\n this.handleOptions(this.optionsManager.computed);\n this.publiclyTrigger('_init'); // for tests\n this.hydrate();\n this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions\n .map(function (calendarInteractionClass) {\n return new calendarInteractionClass(_this);\n });\n }\n Calendar.prototype.addPluginInputs = function (pluginInputs) {\n var pluginDefs = refinePluginDefs(pluginInputs);\n for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) {\n var pluginDef = pluginDefs_1[_i];\n this.pluginSystem.add(pluginDef);\n }\n };\n Object.defineProperty(Calendar.prototype, \"view\", {\n // public API\n get: function () {\n return this.component ? this.component.view : null;\n },\n enumerable: true,\n configurable: true\n });\n // Public API for rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.render = function () {\n if (!this.component) {\n this.renderableEventStore = createEmptyEventStore();\n this.bindHandlers();\n this.executeRender();\n }\n else {\n this.requestRerender(true);\n }\n };\n Calendar.prototype.destroy = function () {\n if (this.component) {\n this.unbindHandlers();\n this.component.destroy(); // don't null-out. in case API needs access\n this.component = null; // umm ???\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n this.publiclyTrigger('_destroyed');\n }\n };\n // Handlers\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.bindHandlers = function () {\n var _this = this;\n // event delegation for nav links\n this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) {\n var gotoOptions = anchorEl.getAttribute('data-goto');\n gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {};\n var dateEnv = _this.dateEnv;\n var dateMarker = dateEnv.createMarker(gotoOptions.date);\n var viewType = gotoOptions.type;\n // property like \"navLinkDayClick\". might be a string or a function\n var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click');\n if (typeof customAction === 'function') {\n customAction(dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n _this.zoomTo(dateMarker, viewType);\n }\n });\n if (this.opt('handleWindowResize')) {\n window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\n }\n };\n Calendar.prototype.unbindHandlers = function () {\n this.removeNavLinkListener();\n if (this.windowResizeProxy) {\n window.removeEventListener('resize', this.windowResizeProxy);\n this.windowResizeProxy = null;\n }\n };\n // Dispatcher\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hydrate = function () {\n var _this = this;\n this.state = this.buildInitialState();\n var rawSources = this.opt('eventSources') || [];\n var singleRawSource = this.opt('events');\n var sources = []; // parsed\n if (singleRawSource) {\n rawSources.unshift(singleRawSource);\n }\n for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {\n var rawSource = rawSources_1[_i];\n var source = parseEventSource(rawSource, this);\n if (source) {\n sources.push(source);\n }\n }\n this.batchRendering(function () {\n _this.dispatch({ type: 'INIT' }); // pass in sources here?\n _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources });\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView\n });\n });\n };\n Calendar.prototype.buildInitialState = function () {\n return {\n viewType: null,\n loadingLevel: 0,\n eventSourceLoadingLevel: 0,\n currentDate: this.getInitialDate(),\n dateProfile: null,\n eventSources: {},\n eventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null\n };\n };\n Calendar.prototype.dispatch = function (action) {\n this.actionQueue.push(action);\n if (!this.isReducing) {\n this.isReducing = true;\n var oldState = this.state;\n while (this.actionQueue.length) {\n this.state = this.reduce(this.state, this.actionQueue.shift(), this);\n }\n var newState = this.state;\n this.isReducing = false;\n if (!oldState.loadingLevel && newState.loadingLevel) {\n this.publiclyTrigger('loading', [true]);\n }\n else if (oldState.loadingLevel && !newState.loadingLevel) {\n this.publiclyTrigger('loading', [false]);\n }\n var view = this.component && this.component.view;\n if (oldState.eventStore !== newState.eventStore || this.needsFullRerender) {\n if (oldState.eventStore) {\n this.isEventsUpdated = true;\n }\n }\n if (oldState.dateProfile !== newState.dateProfile || this.needsFullRerender) {\n if (oldState.dateProfile && view) { // why would view be null!?\n this.publiclyTrigger('datesDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isDatesUpdated = true;\n }\n if (oldState.viewType !== newState.viewType || this.needsFullRerender) {\n if (oldState.viewType && view) { // why would view be null!?\n this.publiclyTrigger('viewSkeletonDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isViewUpdated = true;\n }\n this.requestRerender();\n }\n };\n Calendar.prototype.reduce = function (state, action, calendar) {\n return reduce(state, action, calendar);\n };\n // Render Queue\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.requestRerender = function (needsFull) {\n if (needsFull === void 0) { needsFull = false; }\n this.needsRerender = true;\n this.needsFullRerender = this.needsFullRerender || needsFull;\n this.delayedRerender(); // will call a debounced-version of tryRerender\n };\n Calendar.prototype.tryRerender = function () {\n if (this.component && // must be accepting renders\n this.needsRerender && // indicates that a rerender was requested\n !this.renderingPauseDepth && // not paused\n !this.isRendering // not currently in the render loop\n ) {\n this.executeRender();\n }\n };\n Calendar.prototype.batchRendering = function (func) {\n this.renderingPauseDepth++;\n func();\n this.renderingPauseDepth--;\n if (this.needsRerender) {\n this.requestRerender();\n }\n };\n // Rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.executeRender = function () {\n var needsFullRerender = this.needsFullRerender; // save before clearing\n // clear these BEFORE the render so that new values will accumulate during render\n this.needsRerender = false;\n this.needsFullRerender = false;\n this.isRendering = true;\n this.renderComponent(needsFullRerender);\n this.isRendering = false;\n // received a rerender request while rendering\n if (this.needsRerender) {\n this.delayedRerender();\n }\n };\n /*\n don't call this directly. use executeRender instead\n */\n Calendar.prototype.renderComponent = function (needsFull) {\n var _a = this, state = _a.state, component = _a.component;\n var viewType = state.viewType;\n var viewSpec = this.viewSpecs[viewType];\n var savedScroll = (needsFull && component) ? component.view.queryScroll() : null;\n if (!viewSpec) {\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\n }\n // if event sources are still loading and progressive rendering hasn't been enabled,\n // keep rendering the last fully loaded set of events\n var renderableEventStore = this.renderableEventStore =\n (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ?\n this.renderableEventStore :\n state.eventStore;\n var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options);\n var eventUiBySource = this.buildEventUiBySource(state.eventSources);\n var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n if (needsFull || !component) {\n if (component) {\n component.freezeHeight(); // next component will unfreeze it\n component.destroy();\n }\n component = this.component = new CalendarComponent({\n calendar: this,\n view: null,\n dateEnv: this.dateEnv,\n theme: this.theme,\n options: this.optionsManager.computed\n }, this.el);\n this.isViewUpdated = true;\n this.isDatesUpdated = true;\n this.isEventsUpdated = true;\n }\n component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfile: state.dateProfile, dateProfileGenerator: this.dateProfileGenerators[viewType], eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize }));\n if (savedScroll) {\n component.view.applyScroll(savedScroll, false);\n }\n if (this.isViewUpdated) {\n this.isViewUpdated = false;\n this.publiclyTrigger('viewSkeletonRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isDatesUpdated) {\n this.isDatesUpdated = false;\n this.publiclyTrigger('datesRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isEventsUpdated) {\n this.isEventsUpdated = false;\n }\n this.releaseAfterSizingTriggers();\n };\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.setOption = function (name, val) {\n var _a;\n this.mutateOptions((_a = {}, _a[name] = val, _a), [], true);\n };\n Calendar.prototype.getOption = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.opt = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.viewOpt = function (name) {\n return this.viewOpts()[name];\n };\n Calendar.prototype.viewOpts = function () {\n return this.viewSpecs[this.state.viewType].options;\n };\n /*\n handles option changes (like a diff)\n */\n Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) {\n var _this = this;\n var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers;\n var normalUpdates = {};\n var specialUpdates = {};\n var oldDateEnv = this.dateEnv; // do this before handleOptions\n var isTimeZoneDirty = false;\n var isSizeDirty = false;\n var anyDifficultOptions = Boolean(removals.length);\n for (var name_1 in updates) {\n if (changeHandlers[name_1]) {\n specialUpdates[name_1] = updates[name_1];\n }\n else {\n normalUpdates[name_1] = updates[name_1];\n }\n }\n for (var name_2 in normalUpdates) {\n if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) {\n isSizeDirty = true;\n }\n else if (/^(defaultDate|defaultView)$/.test(name_2)) ;\n else {\n anyDifficultOptions = true;\n if (name_2 === 'timeZone') {\n isTimeZoneDirty = true;\n }\n }\n }\n this.optionsManager.mutate(normalUpdates, removals, isDynamic);\n if (anyDifficultOptions) {\n this.handleOptions(this.optionsManager.computed);\n this.needsFullRerender = true;\n }\n this.batchRendering(function () {\n if (anyDifficultOptions) {\n if (isTimeZoneDirty) {\n _this.dispatch({\n type: 'CHANGE_TIMEZONE',\n oldDateEnv: oldDateEnv\n });\n }\n /* HACK\n has the same effect as calling this.requestRerender(true)\n but recomputes the state's dateProfile\n */\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.state.viewType\n });\n }\n else if (isSizeDirty) {\n _this.updateSize();\n }\n // special updates\n if (deepEqual) {\n for (var name_3 in specialUpdates) {\n changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual);\n }\n }\n });\n };\n /*\n rebuilds things based off of a complete set of refined options\n */\n Calendar.prototype.handleOptions = function (options) {\n var _this = this;\n var pluginHooks = this.pluginSystem.hooks;\n this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration);\n this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration);\n this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay);\n this.theme = this.buildTheme(options);\n var available = this.parseRawLocales(options.locales);\n this.availableRawLocales = available.map;\n var locale = this.buildLocale(options.locale || available.defaultCode, available.map);\n this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter);\n this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :(\n // ineffecient to do every time?\n this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager);\n // ineffecient to do every time?\n this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) {\n return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this);\n });\n };\n Calendar.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.availableRawLocales);\n };\n Calendar.prototype._buildSelectionConfig = function (rawOpts) {\n return processScopedUiProps('select', rawOpts, this);\n };\n Calendar.prototype._buildEventUiSingleBase = function (rawOpts) {\n if (rawOpts.editable) { // so 'editable' affected events\n rawOpts = __assign({}, rawOpts, { eventEditable: true });\n }\n return processScopedUiProps('event', rawOpts, this);\n };\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hasPublicHandlers = function (name) {\n return this.hasHandlers(name) ||\n this.opt(name); // handler specified in options\n };\n Calendar.prototype.publiclyTrigger = function (name, args) {\n var optHandler = this.opt(name);\n this.triggerWith(name, this, args);\n if (optHandler) {\n return optHandler.apply(this, args);\n }\n };\n Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) {\n var afterSizingTriggers = this.afterSizingTriggers;\n (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args);\n };\n Calendar.prototype.releaseAfterSizingTriggers = function () {\n var afterSizingTriggers = this.afterSizingTriggers;\n for (var name_4 in afterSizingTriggers) {\n for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) {\n var args = _a[_i];\n this.publiclyTrigger(name_4, args);\n }\n }\n this.afterSizingTriggers = {};\n };\n // View\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a boolean about whether the view is okay to instantiate at some point\n Calendar.prototype.isValidViewType = function (viewType) {\n return Boolean(this.viewSpecs[viewType]);\n };\n Calendar.prototype.changeView = function (viewType, dateOrRange) {\n var dateMarker = null;\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender\n this.handleOptions(this.optionsManager.computed); // ...but yuck\n }\n else { // a date\n dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate\n }\n }\n this.unselect();\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateMarker\n });\n };\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n Calendar.prototype.zoomTo = function (dateMarker, viewType) {\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = this.viewSpecs[viewType] ||\n this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker\n });\n }\n else {\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: dateMarker\n });\n }\n };\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n Calendar.prototype.getUnitViewSpec = function (unit) {\n var component = this.component;\n var viewTypes = [];\n var i;\n var spec;\n // put views that have buttons first. there will be duplicates, but oh\n if (component.header) {\n viewTypes.push.apply(viewTypes, component.header.viewsWithButtons);\n }\n if (component.footer) {\n viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons);\n }\n for (var viewType in this.viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i++) {\n spec = this.viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n };\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getInitialDate = function () {\n var defaultDateInput = this.opt('defaultDate');\n // compute the initial ambig-timezone date\n if (defaultDateInput != null) {\n return this.dateEnv.createMarker(defaultDateInput);\n }\n else {\n return this.getNow(); // getNow already returns unzoned\n }\n };\n Calendar.prototype.prev = function () {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n };\n Calendar.prototype.next = function () {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n };\n Calendar.prototype.prevYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, -1)\n });\n };\n Calendar.prototype.nextYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, 1)\n });\n };\n Calendar.prototype.today = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.getNow()\n });\n };\n Calendar.prototype.gotoDate = function (zonedDateInput) {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.createMarker(zonedDateInput)\n });\n };\n Calendar.prototype.incrementDate = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.add(this.state.currentDate, delta)\n });\n }\n };\n // for external API\n Calendar.prototype.getDate = function () {\n return this.dateEnv.toDate(this.state.currentDate);\n };\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n };\n // `settings` is for formatter AND isEndExclusive\n Calendar.prototype.formatRange = function (d0, d1, settings) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings);\n };\n Calendar.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime });\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.windowResize = function (ev) {\n if (!this.isHandlingWindowResize &&\n this.component && // why?\n ev.target === window // not a jqui resize event\n ) {\n this.isHandlingWindowResize = true;\n this.updateSize();\n this.publiclyTrigger('windowResize', [this.view]);\n this.isHandlingWindowResize = false;\n }\n };\n Calendar.prototype.updateSize = function () {\n if (this.component) { // when?\n this.component.updateSize(true);\n }\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering\n ];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions);\n var interactions = interactionClasses.map(function (interactionClass) {\n return new interactionClass(settings);\n });\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n Calendar.prototype.unregisterInteractiveComponent = function (component) {\n for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n delete interactionSettingsStore[component.uid];\n };\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n // this public method receives start/end dates in any format, with any timezone\n // NOTE: args were changed from v3\n Calendar.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate\n };\n }\n var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this?\n );\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection: selection });\n this.triggerDateSelect(selection);\n }\n };\n // public method\n Calendar.prototype.unselect = function (pev) {\n if (this.state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n this.triggerDateUnselect(pev);\n }\n };\n Calendar.prototype.triggerDateSelect = function (selection, pev) {\n var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view });\n this.publiclyTrigger('select', [arg]);\n };\n Calendar.prototype.triggerDateUnselect = function (pev) {\n this.publiclyTrigger('unselect', [\n {\n jsEvent: pev ? pev.origEvent : null,\n view: this.view\n }\n ]);\n };\n // TODO: receive pev?\n Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) {\n var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655\n view: view });\n this.publiclyTrigger('dateClick', [arg]);\n };\n Calendar.prototype.buildDatePointApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDatePointApi(dateSpan, this.dateEnv));\n return props;\n };\n Calendar.prototype.buildDateSpanApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDateSpanApi(dateSpan, this.dateEnv));\n return props;\n };\n // Date Utils\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option\n Calendar.prototype.getNow = function () {\n var now = this.opt('now');\n if (typeof now === 'function') {\n now = now();\n }\n if (now == null) {\n return this.dateEnv.createNowMarker();\n }\n return this.dateEnv.createMarker(now);\n };\n // Event-Date Utilities\n // -----------------------------------------------------------------------------------------------------------------\n // Given an event's allDay status and start date, return what its fallback end date should be.\n // TODO: rename to computeDefaultEventEnd\n Calendar.prototype.getDefaultEventEnd = function (allDay, marker) {\n var end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = this.dateEnv.add(end, this.defaultAllDayEventDuration);\n }\n else {\n end = this.dateEnv.add(end, this.defaultTimedEventDuration);\n }\n return end;\n };\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.addEvent = function (eventInput, sourceInput) {\n if (eventInput instanceof EventApi) {\n var def = eventInput._def;\n var instance = eventInput._instance;\n // not already present? don't want to add an old snapshot\n if (!this.state.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args?\n });\n }\n return eventInput;\n }\n var sourceId;\n if (sourceInput instanceof EventSourceApi) {\n sourceId = sourceInput.internalEventSource.sourceId;\n }\n else if (sourceInput != null) {\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn('Could not find an event source with ID \"' + sourceInput + '\"'); // TODO: test\n return null;\n }\n else {\n sourceId = sourceApi.internalEventSource.sourceId;\n }\n }\n var tuple = parseEvent(eventInput, sourceId, this);\n if (tuple) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple)\n });\n return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n }\n return null;\n };\n // TODO: optimize\n Calendar.prototype.getEventById = function (id) {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n id = String(id);\n for (var defId in defs) {\n var def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(this, def, null);\n }\n else {\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventApi(this, def, instance);\n }\n }\n }\n }\n }\n return null;\n };\n Calendar.prototype.getEvents = function () {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n var eventApis = [];\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n eventApis.push(new EventApi(this, def, instance));\n }\n return eventApis;\n };\n Calendar.prototype.removeAllEvents = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n };\n Calendar.prototype.rerenderEvents = function () {\n this.dispatch({ type: 'RESET_EVENTS' });\n };\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getEventSources = function () {\n var sourceHash = this.state.eventSources;\n var sourceApis = [];\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(this, sourceHash[internalId]));\n }\n return sourceApis;\n };\n Calendar.prototype.getEventSourceById = function (id) {\n var sourceHash = this.state.eventSources;\n id = String(id);\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(this, sourceHash[sourceId]);\n }\n }\n return null;\n };\n Calendar.prototype.addEventSource = function (sourceInput) {\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource]\n });\n }\n return sourceInput;\n }\n var eventSource = parseEventSource(sourceInput, this);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceApi(this, eventSource);\n }\n return null;\n };\n Calendar.prototype.removeAllEventSources = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n };\n Calendar.prototype.refetchEvents = function () {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES' });\n };\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.scrollToTime = function (timeInput) {\n var duration = createDuration(timeInput);\n if (duration) {\n this.component.view.scrollToDuration(duration);\n }\n };\n return Calendar;\n}());\nEmitterMixin.mixInto(Calendar);\n// for memoizers\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) {\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone: timeZone,\n namedTimeZoneImpl: namedTimeZoneImpl,\n locale: locale,\n weekNumberCalculation: weekNumberCalculation,\n firstDay: firstDay,\n weekLabel: weekLabel,\n cmdFormatter: cmdFormatter\n });\n}\nfunction buildTheme(calendarOptions) {\n var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme;\n return new themeClass(calendarOptions);\n}\nfunction buildDelayedRerender(wait) {\n var func = this.tryRerender.bind(this);\n if (wait != null) {\n func = debounce(func, wait);\n }\n return func;\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) {\n return eventSource.ui;\n });\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = { '': eventUiSingleBase };\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\n\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' }), true // isView (HACK)\n ) || this;\n _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap);\n _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]);\n _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]);\n _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]);\n _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]);\n _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]);\n _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]);\n _this.viewSpec = viewSpec;\n _this.dateProfileGenerator = dateProfileGenerator;\n _this.type = viewSpec.type;\n _this.eventOrderSpecs = parseFieldSpecs(_this.opt('eventOrder'));\n _this.nextDayThreshold = createDuration(_this.opt('nextDayThreshold'));\n parentEl.appendChild(_this.el);\n _this.initialize();\n return _this;\n }\n View.prototype.initialize = function () {\n };\n Object.defineProperty(View.prototype, \"activeStart\", {\n // Date Setting/Unsetting\n // -----------------------------------------------------------------------------------------------------------------\n get: function () {\n return this.dateEnv.toDate(this.props.dateProfile.activeRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"activeEnd\", {\n get: function () {\n return this.dateEnv.toDate(this.props.dateProfile.activeRange.end);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentStart\", {\n get: function () {\n return this.dateEnv.toDate(this.props.dateProfile.currentRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentEnd\", {\n get: function () {\n return this.dateEnv.toDate(this.props.dateProfile.currentRange.end);\n },\n enumerable: true,\n configurable: true\n });\n // General Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.render = function (props) {\n this.renderDatesMem(props.dateProfile);\n this.renderBusinessHoursMem(props.businessHours);\n this.renderDateSelectionMem(props.dateSelection);\n this.renderEventsMem(props.eventStore);\n this.renderEventSelectionMem(props.eventSelection);\n this.renderEventDragMem(props.eventDrag);\n this.renderEventResizeMem(props.eventResize);\n };\n View.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderDatesMem.unrender(); // should unrender everything else\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n var calendar = this.calendar;\n if (isResize || // HACKS...\n calendar.isViewUpdated ||\n calendar.isDatesUpdated ||\n calendar.isEventsUpdated) {\n // sort of the catch-all sizing\n // anything that might cause dimension changes\n this.updateBaseSize(isResize, viewHeight, isAuto);\n }\n };\n View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n };\n // Date Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDatesWrap = function (dateProfile) {\n this.renderDates(dateProfile);\n this.addScroll({\n duration: createDuration(this.opt('scrollTime'))\n });\n this.startNowIndicator(dateProfile); // shouldn't render yet because updateSize will be called soon\n };\n View.prototype.unrenderDatesWrap = function () {\n this.stopNowIndicator();\n this.unrenderDates();\n };\n View.prototype.renderDates = function (dateProfile) { };\n View.prototype.unrenderDates = function () { };\n // Business Hours\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderBusinessHours = function (businessHours) { };\n View.prototype.unrenderBusinessHours = function () { };\n // Date Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDateSelectionWrap = function (selection) {\n if (selection) {\n this.renderDateSelection(selection);\n }\n };\n View.prototype.unrenderDateSelectionWrap = function (selection) {\n if (selection) {\n this.unrenderDateSelection(selection);\n }\n };\n View.prototype.renderDateSelection = function (selection) { };\n View.prototype.unrenderDateSelection = function (selection) { };\n // Event Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEvents = function (eventStore) { };\n View.prototype.unrenderEvents = function () { };\n // util for subclasses\n View.prototype.sliceEvents = function (eventStore, allDay) {\n var props = this.props;\n return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.nextDayThreshold : null).fg;\n };\n View.prototype.computeEventDraggable = function (eventDef, eventUi) {\n var transformers = this.calendar.pluginSystem.hooks.isDraggableTransformers;\n var val = eventUi.startEditable;\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n val = transformer(val, eventDef, eventUi, this);\n }\n return val;\n };\n View.prototype.computeEventStartResizable = function (eventDef, eventUi) {\n return eventUi.durationEditable && this.opt('eventResizableFromStart');\n };\n View.prototype.computeEventEndResizable = function (eventDef, eventUi) {\n return eventUi.durationEditable;\n };\n // Event Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.renderEventSelection(instanceId);\n }\n };\n View.prototype.unrenderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.unrenderEventSelection(instanceId);\n }\n };\n View.prototype.renderEventSelection = function (instanceId) { };\n View.prototype.unrenderEventSelection = function (instanceId) { };\n // Event Drag\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventDragWrap = function (state) {\n if (state) {\n this.renderEventDrag(state);\n }\n };\n View.prototype.unrenderEventDragWrap = function (state) {\n if (state) {\n this.unrenderEventDrag(state);\n }\n };\n View.prototype.renderEventDrag = function (state) { };\n View.prototype.unrenderEventDrag = function (state) { };\n // Event Resize\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventResizeWrap = function (state) {\n if (state) {\n this.renderEventResize(state);\n }\n };\n View.prototype.unrenderEventResizeWrap = function (state) {\n if (state) {\n this.unrenderEventResize(state);\n }\n };\n View.prototype.renderEventResize = function (state) { };\n View.prototype.unrenderEventResize = function (state) { };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n // Immediately render the current time indicator and begins re-rendering it at an interval,\n // which is defined by this.getNowIndicatorUnit().\n // TODO: somehow do this for the current whole day's background too\n View.prototype.startNowIndicator = function (dateProfile) {\n var _this = this;\n var dateEnv = this.dateEnv;\n var unit;\n var update;\n var delay; // ms wait value\n if (this.opt('nowIndicator')) {\n unit = this.getNowIndicatorUnit(dateProfile);\n if (unit) {\n update = this.updateNowIndicator.bind(this);\n this.initialNowDate = this.calendar.getNow();\n this.initialNowQueriedMs = new Date().valueOf();\n // wait until the beginning of the next interval\n delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf();\n // TODO: maybe always use setTimeout, waiting until start of next unit\n this.nowIndicatorTimeoutID = setTimeout(function () {\n _this.nowIndicatorTimeoutID = null;\n update();\n if (unit === 'second') {\n delay = 1000; // every second\n }\n else {\n delay = 1000 * 60; // otherwise, every minute\n }\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\n }, delay);\n }\n // rendering will be initiated in updateSize\n }\n };\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\n // since the initial getNow call.\n View.prototype.updateNowIndicator = function () {\n if (this.props.dateProfile && // a way to determine if dates were rendered yet\n this.initialNowDate // activated before?\n ) {\n this.unrenderNowIndicator(); // won't unrender if unnecessary\n this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs));\n this.isNowIndicatorRendered = true;\n }\n };\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\n // Won't cause side effects if indicator isn't rendered.\n View.prototype.stopNowIndicator = function () {\n if (this.isNowIndicatorRendered) {\n if (this.nowIndicatorTimeoutID) {\n clearTimeout(this.nowIndicatorTimeoutID);\n this.nowIndicatorTimeoutID = null;\n }\n if (this.nowIndicatorIntervalID) {\n clearInterval(this.nowIndicatorIntervalID);\n this.nowIndicatorIntervalID = null;\n }\n this.unrenderNowIndicator();\n this.isNowIndicatorRendered = false;\n }\n };\n View.prototype.getNowIndicatorUnit = function (dateProfile) {\n // subclasses should implement\n };\n // Renders a current time indicator at the given datetime\n View.prototype.renderNowIndicator = function (date) {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n // Undoes the rendering actions from renderNowIndicator\n View.prototype.unrenderNowIndicator = function () {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n /* Scroller\n ------------------------------------------------------------------------------------------------------------------*/\n View.prototype.addScroll = function (scroll) {\n var queuedScroll = this.queuedScroll || (this.queuedScroll = {});\n __assign(queuedScroll, scroll);\n };\n View.prototype.popScroll = function (isResize) {\n this.applyQueuedScroll(isResize);\n this.queuedScroll = null;\n };\n View.prototype.applyQueuedScroll = function (isResize) {\n this.applyScroll(this.queuedScroll || {}, isResize);\n };\n View.prototype.queryScroll = function () {\n var scroll = {};\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.queryDateScroll());\n }\n return scroll;\n };\n View.prototype.applyScroll = function (scroll, isResize) {\n var duration = scroll.duration;\n if (duration != null) {\n delete scroll.duration;\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.computeDateScroll(duration));\n }\n }\n if (this.props.dateProfile) { // dates rendered yet?\n this.applyDateScroll(scroll);\n }\n };\n View.prototype.computeDateScroll = function (duration) {\n return {}; // subclasses must implement\n };\n View.prototype.queryDateScroll = function () {\n return {}; // subclasses must implement\n };\n View.prototype.applyDateScroll = function (scroll) {\n // subclasses must implement\n };\n // for API\n View.prototype.scrollToDuration = function (duration) {\n this.applyScroll({ duration: duration }, false);\n };\n return View;\n}(DateComponent));\nEmitterMixin.mixInto(View);\nView.prototype.usesMinMaxTime = false;\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator;\n\nvar FgEventRenderer = /** @class */ (function () {\n function FgEventRenderer(context) {\n this.segs = [];\n this.isSizeDirty = false;\n this.context = context;\n }\n FgEventRenderer.prototype.renderSegs = function (segs, mirrorInfo) {\n this.rangeUpdated(); // called too frequently :(\n // render an `.el` on each seg\n // returns a subset of the segs. segs that were actually rendered\n segs = this.renderSegEls(segs, mirrorInfo);\n this.segs = segs;\n this.attachSegs(segs, mirrorInfo);\n this.isSizeDirty = true;\n this.context.view.triggerRenderedSegs(this.segs, Boolean(mirrorInfo));\n };\n FgEventRenderer.prototype.unrender = function (_segs, mirrorInfo) {\n this.context.view.triggerWillRemoveSegs(this.segs, Boolean(mirrorInfo));\n this.detachSegs(this.segs);\n this.segs = [];\n };\n // Updates values that rely on options and also relate to range\n FgEventRenderer.prototype.rangeUpdated = function () {\n var options = this.context.options;\n var displayEventTime;\n var displayEventEnd;\n this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator);\n displayEventTime = options.displayEventTime;\n if (displayEventTime == null) {\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\n }\n displayEventEnd = options.displayEventEnd;\n if (displayEventEnd == null) {\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\n }\n this.displayEventTime = displayEventTime;\n this.displayEventEnd = displayEventEnd;\n };\n // Renders and assigns an `el` property for each foreground event segment.\n // Only returns segments that successfully rendered.\n FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) {\n var html = '';\n var i;\n if (segs.length) { // don't build an empty html string\n // build a large concatenation of event segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(segs[i], mirrorInfo);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n segs = filterSegsViaEls(this.context.view, segs, Boolean(mirrorInfo));\n }\n return segs;\n };\n // Generic utility for generating the HTML classNames for an event segment's element\n FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) {\n var classes = [\n 'fc-event',\n seg.isStart ? 'fc-start' : 'fc-not-start',\n seg.isEnd ? 'fc-end' : 'fc-not-end'\n ].concat(seg.eventRange.ui.classNames);\n if (isDraggable) {\n classes.push('fc-draggable');\n }\n if (isResizable) {\n classes.push('fc-resizable');\n }\n if (mirrorInfo) {\n classes.push('fc-mirror');\n if (mirrorInfo.isDragging) {\n classes.push('fc-dragging');\n }\n if (mirrorInfo.isResizing) {\n classes.push('fc-resizing');\n }\n }\n return classes;\n };\n // Compute the text that should be displayed on an event's element.\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\n // If event times are disabled, or the event has no time, will return a blank string.\n // If not specified, formatter will default to the eventTimeFormat setting,\n // and displayEnd will default to the displayEventEnd setting.\n FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) {\n var def = eventRange.def, instance = eventRange.instance;\n return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo);\n };\n FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) {\n var dateEnv = this.context.dateEnv;\n if (formatter == null) {\n formatter = this.eventTimeFormat;\n }\n if (displayEnd == null) {\n displayEnd = this.displayEventEnd;\n }\n if (this.displayEventTime && !allDay) {\n if (displayEnd && end) {\n return dateEnv.formatRange(start, end, formatter, {\n forcedStartTzo: forcedStartTzo,\n forcedEndTzo: forcedEndTzo\n });\n }\n else {\n return dateEnv.format(start, formatter, {\n forcedTzo: forcedStartTzo\n });\n }\n }\n return '';\n };\n FgEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true\n };\n };\n FgEventRenderer.prototype.computeDisplayEventTime = function () {\n return true;\n };\n FgEventRenderer.prototype.computeDisplayEventEnd = function () {\n return true;\n };\n // Utility for generating event skin-related CSS properties\n FgEventRenderer.prototype.getSkinCss = function (ui) {\n return {\n 'background-color': ui.backgroundColor,\n 'border-color': ui.borderColor,\n color: ui.textColor\n };\n };\n FgEventRenderer.prototype.sortEventSegs = function (segs) {\n var specs = this.context.view.eventOrderSpecs;\n var objs = segs.map(buildSegCompareObj);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, specs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n };\n FgEventRenderer.prototype.computeSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.computeSegSizes(this.segs);\n }\n };\n FgEventRenderer.prototype.assignSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.assignSegSizes(this.segs);\n this.isSizeDirty = false;\n }\n };\n FgEventRenderer.prototype.computeSegSizes = function (segs) {\n };\n FgEventRenderer.prototype.assignSegSizes = function (segs) {\n };\n // Manipulation on rendered segs\n FgEventRenderer.prototype.hideByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = 'hidden';\n }\n }\n }\n };\n FgEventRenderer.prototype.showByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = '';\n }\n }\n }\n };\n FgEventRenderer.prototype.selectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n var eventInstance = seg.eventRange.instance;\n if (eventInstance && eventInstance.instanceId === instanceId &&\n seg.el // necessary?\n ) {\n seg.el.classList.add('fc-selected');\n }\n }\n }\n };\n FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (seg.el) { // necessary?\n seg.el.classList.remove('fc-selected');\n }\n }\n }\n };\n return FgEventRenderer;\n}());\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n var eventDef = seg.eventRange.def;\n var range = seg.eventRange.instance.range;\n var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n var end = range.end ? range.end.valueOf() : 0; // \"\n return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start,\n end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval\n });\n}\n\nvar FillRenderer = /** @class */ (function () {\n function FillRenderer(context) {\n this.fillSegTag = 'div';\n this.dirtySizeFlags = {};\n this.context = context;\n this.containerElsByType = {};\n this.segsByType = {};\n }\n FillRenderer.prototype.getSegsByType = function (type) {\n return this.segsByType[type] || [];\n };\n FillRenderer.prototype.renderSegs = function (type, segs) {\n var _a;\n var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs\n var containerEls = this.attachSegs(type, renderedSegs);\n if (containerEls) {\n (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls);\n }\n this.segsByType[type] = renderedSegs;\n if (type === 'bgEvent') {\n this.context.view.triggerRenderedSegs(renderedSegs, false); // isMirror=false\n }\n this.dirtySizeFlags[type] = true;\n };\n // Unrenders a specific type of fill that is currently rendered on the grid\n FillRenderer.prototype.unrender = function (type) {\n var segs = this.segsByType[type];\n if (segs) {\n if (type === 'bgEvent') {\n this.context.view.triggerWillRemoveSegs(segs, false); // isMirror=false\n }\n this.detachSegs(type, segs);\n }\n };\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\n // Only returns segments that successfully rendered.\n FillRenderer.prototype.renderSegEls = function (type, segs) {\n var _this = this;\n var html = '';\n var i;\n if (segs.length) {\n // build a large concatenation of segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(type, segs[i]);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n if (type === 'bgEvent') {\n segs = filterSegsViaEls(this.context.view, segs, false // isMirror. background events can never be mirror elements\n );\n }\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\n segs = segs.filter(function (seg) {\n return elementMatches(seg.el, _this.fillSegTag);\n });\n }\n return segs;\n };\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\n FillRenderer.prototype.renderSegHtml = function (type, seg) {\n var css = null;\n var classNames = [];\n if (type !== 'highlight' && type !== 'businessHours') {\n css = {\n 'background-color': seg.eventRange.ui.backgroundColor\n };\n }\n if (type !== 'highlight') {\n classNames = classNames.concat(seg.eventRange.ui.classNames);\n }\n if (type === 'businessHours') {\n classNames.push('fc-bgevent');\n }\n else {\n classNames.push('fc-' + type.toLowerCase());\n }\n return '<' + this.fillSegTag +\n (classNames.length ? ' class=\"' + classNames.join(' ') + '\"' : '') +\n (css ? ' style=\"' + cssToStr(css) + '\"' : '') +\n '>';\n };\n FillRenderer.prototype.detachSegs = function (type, segs) {\n var containerEls = this.containerElsByType[type];\n if (containerEls) {\n containerEls.forEach(removeElement);\n delete this.containerElsByType[type];\n }\n };\n FillRenderer.prototype.computeSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.computeSegSizes(this.segsByType[type]);\n }\n }\n };\n FillRenderer.prototype.assignSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.assignSegSizes(this.segsByType[type]);\n }\n }\n this.dirtySizeFlags = {};\n };\n FillRenderer.prototype.computeSegSizes = function (segs) {\n };\n FillRenderer.prototype.assignSegSizes = function (segs) {\n };\n return FillRenderer;\n}());\n\nvar NamedTimeZoneImpl = /** @class */ (function () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n return NamedTimeZoneImpl;\n}());\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nvar ElementDragging = /** @class */ (function () {\n function ElementDragging(el) {\n this.emitter = new EmitterMixin();\n }\n ElementDragging.prototype.destroy = function () {\n };\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n // optional\n };\n return ElementDragging;\n}());\n\nfunction formatDate(dateInput, settings) {\n if (settings === void 0) { settings = {}; }\n var dateEnv = buildDateEnv$1(settings);\n var formatter = createFormatter(settings);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo\n });\n}\nfunction formatRange(startInput, endInput, settings // mixture of env and formatter settings\n) {\n var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object\n var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: settings.isEndExclusive\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n // ensure required settings\n settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale });\n return new DateEnv(settings);\n}\n\nvar DRAG_META_PROPS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String\n};\nvar DRAG_META_DEFAULTS = {\n create: true\n};\nfunction parseDragMeta(raw) {\n var leftoverProps = {};\n var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps);\n refined.leftoverProps = leftoverProps;\n return refined;\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return { weekday: 'short' }; // \"Sat\"\n }\n else if (dayCnt > 1) {\n return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // \"Sat 11/12\"\n }\n else {\n return { weekday: 'long' }; // \"Saturday\"\n }\n}\nfunction renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) {\n var view = context.view, dateEnv = context.dateEnv, theme = context.theme, options = context.options;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow.\n var classNames = [\n 'fc-day-header',\n theme.getClass('widgetHeader')\n ];\n var innerHtml;\n if (typeof options.columnHeaderHtml === 'function') {\n innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker));\n }\n else if (typeof options.columnHeaderText === 'function') {\n innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker)));\n }\n else {\n innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat));\n }\n // if only one row of days, the classNames on the header can represent the specific days beneath\n if (datesRepDistinctDays) {\n classNames = classNames.concat(\n // includes the day-of-week class\n // noThemeHighlight=true (don't highlight the header)\n getDayClasses(dateMarker, dateProfile, context, true));\n }\n else {\n classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class\n }\n return '' +\n ' 1 ?\n ' colspan=\"' + colspan + '\"' :\n '') +\n (otherAttrs ?\n ' ' + otherAttrs :\n '') +\n '>' +\n (isDateValid ?\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\n buildGotoAnchorHtml(view, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) :\n // if not valid, display text, but no link\n innerHtml) +\n '';\n}\n\nvar DayHeader = /** @class */ (function (_super) {\n __extends(DayHeader, _super);\n function DayHeader(context, parentEl) {\n var _this = _super.call(this, context) || this;\n parentEl.innerHTML = ''; // because might be nbsp\n parentEl.appendChild(_this.el = htmlToElement('
' +\n '' +\n '' +\n '
' +\n '
'));\n _this.thead = _this.el.querySelector('thead');\n return _this;\n }\n DayHeader.prototype.destroy = function () {\n removeElement(this.el);\n };\n DayHeader.prototype.render = function (props) {\n var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays;\n var parts = [];\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n var colHeadFormat = createFormatter(this.opt('columnHeaderFormat') ||\n computeFallbackHeaderFormat(datesRepDistinctDays, dates.length));\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, this.context));\n }\n if (this.isRtl) {\n parts.reverse();\n }\n this.thead.innerHTML = '' + parts.join('') + '';\n };\n return DayHeader;\n}(Component));\n\nvar DaySeries = /** @class */ (function () {\n function DaySeries(range, dateProfileGenerator) {\n var date = range.start;\n var end = range.end;\n var indices = [];\n var dates = [];\n var dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex++;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n DaySeries.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex\n };\n }\n else {\n return null;\n }\n };\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n DaySeries.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n else if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n else {\n return indices[dayOffset];\n }\n };\n return DaySeries;\n}());\n\nvar DayTable = /** @class */ (function () {\n function DayTable(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n DayTable.prototype.buildCells = function () {\n var rows = [];\n for (var row = 0; row < this.rowCnt; row++) {\n var cells = [];\n for (var col = 0; col < this.colCnt; col++) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n };\n DayTable.prototype.buildCell = function (row, col) {\n return {\n date: this.daySeries.dates[row * this.colCnt + col]\n };\n };\n DayTable.prototype.buildHeaderDates = function () {\n var dates = [];\n for (var col = 0; col < this.colCnt; col++) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n };\n DayTable.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n while (index <= lastIndex) {\n var row = Math.floor(index / colCnt);\n var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row: row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex\n });\n index = nextIndex;\n }\n }\n return segs;\n };\n return DayTable;\n}());\n\nvar Slicer = /** @class */ (function () {\n function Slicer() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n }\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs));\n return {\n dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)),\n businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventSelection: props.eventSelection\n }; // TODO: give interactionSegs?\n };\n Slicer.prototype.sliceNowDate = function (// does not memoize\n date, component) {\n var extraArgs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false },\n {},\n component].concat(extraArgs));\n };\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), component.calendar),\n {},\n dateProfile,\n nextDayThreshold,\n component].concat(extraArgs)).bg;\n };\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs)\n };\n }\n else {\n return { bg: [], fg: [] };\n }\n };\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (!interaction) {\n return null;\n }\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n sourceSeg: interaction.origSeg\n };\n };\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) {\n var extraArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n if (!dateSpan) {\n return [];\n }\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.calendar);\n var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs));\n for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n var seg = segs_1[_a];\n seg.component = component;\n seg.eventRange = eventRange;\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill\n extraArgs) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs));\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill\n extraArgs) {\n var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs));\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n seg.component = component;\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n };\n return Slicer;\n}());\n/*\nfor incorporating minTime/maxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.minTime.milliseconds),\n end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day\n };\n}\n\n// exports\n// --------------------------------------------------------------------------------------------------\nvar version = '4.3.1';\n\nexport { Calendar, Component, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations };\n","/*!\nFullCalendar Day Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { addWeeks, diffWeeks, DateProfileGenerator, createElement, listenBySelector, removeElement, computeRect, computeClippingRect, applyStyle, cssToStr, htmlEscape, FgEventRenderer, appendToElement, prependToElement, htmlToElement, FillRenderer, memoizeRendering, createFormatter, addDays, DateComponent, rangeContainsMarker, getDayClasses, findElements, PositionCache, buildGotoAnchorHtml, findChildren, insertAfterElement, intersectRanges, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, distributeHeight, undistributeHeight, View, Slicer, memoize, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar DayGridDateProfileGenerator = /** @class */ (function (_super) {\n __extends(DayGridDateProfileGenerator, _super);\n function DayGridDateProfileGenerator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Computes the date range that will be rendered.\n DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n var dateEnv = this.dateEnv;\n var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);\n var start = renderRange.start;\n var end = renderRange.end;\n var endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (/^(year|month)$/.test(currentRangeUnit)) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (this.options.monthMode &&\n this.options.fixedWeekCount) {\n var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(start, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start: start, end: end };\n };\n return DayGridDateProfileGenerator;\n}(DateProfileGenerator));\n\n/* A rectangular panel that is absolutely positioned over other content\n------------------------------------------------------------------------------------------------------------------------\nOptions:\n - className (string)\n - content (HTML string, element, or element array)\n - parentEl\n - top\n - left\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\n - autoHide (boolean)\n - show (callback)\n - hide (callback)\n*/\nvar Popover = /** @class */ (function () {\n function Popover(options) {\n var _this = this;\n this.isHidden = true;\n this.margin = 10; // the space required between the popover and the edges of the scroll container\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.documentMousedown = function (ev) {\n // only hide the popover if the click happened outside the popover\n if (_this.el && !_this.el.contains(ev.target)) {\n _this.hide();\n }\n };\n this.options = options;\n }\n // Shows the popover on the specified position. Renders it if not already\n Popover.prototype.show = function () {\n if (this.isHidden) {\n if (!this.el) {\n this.render();\n }\n this.el.style.display = '';\n this.position();\n this.isHidden = false;\n this.trigger('show');\n }\n };\n // Hides the popover, through CSS, but does not remove it from the DOM\n Popover.prototype.hide = function () {\n if (!this.isHidden) {\n this.el.style.display = 'none';\n this.isHidden = true;\n this.trigger('hide');\n }\n };\n // Creates `this.el` and renders content inside of it\n Popover.prototype.render = function () {\n var _this = this;\n var options = this.options;\n var el = this.el = createElement('div', {\n className: 'fc-popover ' + (options.className || ''),\n style: {\n top: '0',\n left: '0'\n }\n });\n if (typeof options.content === 'function') {\n options.content(el);\n }\n options.parentEl.appendChild(el);\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\n listenBySelector(el, 'click', '.fc-close', function (ev) {\n _this.hide();\n });\n if (options.autoHide) {\n document.addEventListener('mousedown', this.documentMousedown);\n }\n };\n // Hides and unregisters any handlers\n Popover.prototype.destroy = function () {\n this.hide();\n if (this.el) {\n removeElement(this.el);\n this.el = null;\n }\n document.removeEventListener('mousedown', this.documentMousedown);\n };\n // Positions the popover optimally, using the top/left/right options\n Popover.prototype.position = function () {\n var options = this.options;\n var el = this.el;\n var elDims = el.getBoundingClientRect(); // only used for width,height\n var origin = computeRect(el.offsetParent);\n var clippingRect = computeClippingRect(options.parentEl);\n var top; // the \"position\" (not \"offset\") values for the popover\n var left; //\n // compute top and left\n top = options.top || 0;\n if (options.left !== undefined) {\n left = options.left;\n }\n else if (options.right !== undefined) {\n left = options.right - elDims.width; // derive the left value from the right value\n }\n else {\n left = 0;\n }\n // constrain to the view port. if constrained by two edges, give precedence to top/left\n top = Math.min(top, clippingRect.bottom - elDims.height - this.margin);\n top = Math.max(top, clippingRect.top + this.margin);\n left = Math.min(left, clippingRect.right - elDims.width - this.margin);\n left = Math.max(left, clippingRect.left + this.margin);\n applyStyle(el, {\n top: top - origin.top,\n left: left - origin.left\n });\n };\n // Triggers a callback. Calls a function in the option hash of the same name.\n // Arguments beyond the first `name` are forwarded on.\n // TODO: better code reuse for this. Repeat code\n // can kill this???\n Popover.prototype.trigger = function (name) {\n if (this.options[name]) {\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n };\n return Popover;\n}());\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\n// \"Simple\" is bad a name. has nothing to do with SimpleDayGrid\nvar SimpleDayGridEventRenderer = /** @class */ (function (_super) {\n __extends(SimpleDayGridEventRenderer, _super);\n function SimpleDayGridEventRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Builds the HTML to be used for the default element for an individual segment\n SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var _a = this.context, view = _a.view, options = _a.options;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var allDay = eventDef.allDay;\n var isDraggable = view.computeEventDraggable(eventDef, eventUi);\n var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi);\n var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n var skinCss = cssToStr(this.getSkinCss(eventUi));\n var timeHtml = '';\n var timeText;\n var titleHtml;\n classes.unshift('fc-day-grid-event', 'fc-h-event');\n // Only display a timed events time if it is the starting segment\n if (seg.isStart) {\n timeText = this.getTimeText(eventRange);\n if (timeText) {\n timeHtml = '' + htmlEscape(timeText) + '';\n }\n }\n titleHtml =\n '' +\n (htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\n '';\n return '
' +\n '
' +\n (options.dir === 'rtl' ?\n titleHtml + ' ' + timeHtml : // put a natural space in between\n timeHtml + ' ' + titleHtml //\n ) +\n '
' +\n (isResizableFromStart ?\n '
' :\n '') +\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow'\n };\n };\n SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return false; // TODO: somehow consider the originating DayGrid's column count\n };\n return SimpleDayGridEventRenderer;\n}(FgEventRenderer));\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\nvar DayGridEventRenderer = /** @class */ (function (_super) {\n __extends(DayGridEventRenderer, _super);\n function DayGridEventRenderer(dayGrid) {\n var _this = _super.call(this, dayGrid.context) || this;\n _this.dayGrid = dayGrid;\n return _this;\n }\n // Renders the given foreground event segments onto the grid\n DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // append to each row's content skeleton\n this.dayGrid.rowEls.forEach(function (rowNode, i) {\n rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl);\n });\n // removes the \"more..\" events popover\n if (!mirrorInfo) {\n this.dayGrid.removeSegPopover();\n }\n };\n // Unrenders all currently rendered foreground event segments\n DayGridEventRenderer.prototype.detachSegs = function () {\n var rowStructs = this.rowStructs || [];\n var rowStruct;\n while ((rowStruct = rowStructs.pop())) {\n removeElement(rowStruct.tbodyEl);\n }\n this.rowStructs = null;\n };\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\n var rowStructs = [];\n var segRows;\n var row;\n segRows = this.groupSegRows(segs); // group into nested arrays\n // iterate each row of segment groupings\n for (row = 0; row < segRows.length; row++) {\n rowStructs.push(this.renderSegRow(row, segRows[row]));\n }\n return rowStructs;\n };\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\n // NOTE: modifies rowSegs\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\n var dayGrid = this.dayGrid;\n var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\n var tbody = document.createElement('tbody');\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\n var cellMatrix = []; // lookup for all elements of the level+col matrix\n var loneCellMatrix = []; // lookup for elements that only take up a single column\n var i;\n var levelSegs;\n var col;\n var tr;\n var j;\n var seg;\n var td;\n // populates empty cells from the current column (`col`) to `endCol`\n function emptyCellsUntil(endCol) {\n while (col < endCol) {\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\n td = (loneCellMatrix[i - 1] || [])[col];\n if (td) {\n td.rowSpan = (td.rowSpan || 1) + 1;\n }\n else {\n td = document.createElement('td');\n tr.appendChild(td);\n }\n cellMatrix[i][col] = td;\n loneCellMatrix[i][col] = td;\n col++;\n }\n }\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\n levelSegs = segLevels[i];\n col = 0;\n tr = document.createElement('tr');\n segMatrix.push([]);\n cellMatrix.push([]);\n loneCellMatrix.push([]);\n // levelCnt might be 1 even though there are no actual levels. protect against this.\n // this single empty row is useful for styling.\n if (levelSegs) {\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\n seg = levelSegs[j];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol);\n // create a container that occupies or more columns. append the event element.\n td = createElement('td', { className: 'fc-event-container' }, seg.el);\n if (leftCol !== rightCol) {\n td.colSpan = rightCol - leftCol + 1;\n }\n else { // a single-column segment\n loneCellMatrix[i][col] = td;\n }\n while (col <= rightCol) {\n cellMatrix[i][col] = td;\n segMatrix[i][col] = seg;\n col++;\n }\n tr.appendChild(td);\n }\n }\n emptyCellsUntil(colCnt); // finish off the row\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(tr, introHtml);\n }\n else {\n prependToElement(tr, introHtml);\n }\n }\n tbody.appendChild(tr);\n }\n return {\n row: row,\n tbodyEl: tbody,\n cellMatrix: cellMatrix,\n segMatrix: segMatrix,\n segLevels: segLevels,\n segs: rowSegs\n };\n };\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\n // NOTE: modifies segs\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\n var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt;\n var levels = [];\n var i;\n var seg;\n var j;\n // Give preference to elements with certain criteria, so they have\n // a chance to be closer to the top.\n segs = this.sortEventSegs(segs);\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\n for (j = 0; j < levels.length; j++) {\n if (!isDaySegCollision(seg, levels[j])) {\n break;\n }\n }\n // `j` now holds the desired subrow index\n seg.level = j;\n seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only\n seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only\n ;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n // order segments left-to-right. very important if calendar is RTL\n for (j = 0; j < levels.length; j++) {\n levels[j].sort(compareDaySegCols);\n }\n return levels;\n };\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\n var segRows = [];\n var i;\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\n segRows.push([]);\n }\n for (i = 0; i < segs.length; i++) {\n segRows[segs[i].row].push(segs[i]);\n }\n return segRows;\n };\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\n };\n return DayGridEventRenderer;\n}(SimpleDayGridEventRenderer));\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\nfunction isDaySegCollision(seg, otherSegs) {\n var i;\n var otherSeg;\n for (i = 0; i < otherSegs.length; i++) {\n otherSeg = otherSegs[i];\n if (otherSeg.firstCol <= seg.lastCol &&\n otherSeg.lastCol >= seg.firstCol) {\n return true;\n }\n }\n return false;\n}\n// A cmp function for determining the leftmost event\nfunction compareDaySegCols(a, b) {\n return a.leftCol - b.leftCol;\n}\n\nvar DayGridMirrorRenderer = /** @class */ (function (_super) {\n __extends(DayGridMirrorRenderer, _super);\n function DayGridMirrorRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var sourceSeg = mirrorInfo.sourceSeg;\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // inject each new event skeleton into each associated row\n this.dayGrid.rowEls.forEach(function (rowNode, row) {\n var skeletonEl = htmlToElement('
'); // will be absolutely positioned\n var skeletonTopEl;\n var skeletonTop;\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\n if (sourceSeg && sourceSeg.row === row) {\n skeletonTopEl = sourceSeg.el;\n }\n else {\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody');\n if (!skeletonTopEl) { // when no events\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table');\n }\n }\n skeletonTop = skeletonTopEl.getBoundingClientRect().top -\n rowNode.getBoundingClientRect().top; // the offsetParent origin\n skeletonEl.style.top = skeletonTop + 'px';\n skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl);\n rowNode.appendChild(skeletonEl);\n });\n };\n return DayGridMirrorRenderer;\n}(DayGridEventRenderer));\n\nvar EMPTY_CELL_HTML = '';\nvar DayGridFillRenderer = /** @class */ (function (_super) {\n __extends(DayGridFillRenderer, _super);\n function DayGridFillRenderer(dayGrid) {\n var _this = _super.call(this, dayGrid.context) || this;\n _this.fillSegTag = 'td'; // override the default tag name\n _this.dayGrid = dayGrid;\n return _this;\n }\n DayGridFillRenderer.prototype.renderSegs = function (type, segs) {\n // don't render timed background events\n if (type === 'bgEvent') {\n segs = segs.filter(function (seg) {\n return seg.eventRange.def.allDay;\n });\n }\n _super.prototype.renderSegs.call(this, type, segs);\n };\n DayGridFillRenderer.prototype.attachSegs = function (type, segs) {\n var els = [];\n var i;\n var seg;\n var skeletonEl;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n skeletonEl = this.renderFillRow(type, seg);\n this.dayGrid.rowEls[seg.row].appendChild(skeletonEl);\n els.push(skeletonEl);\n }\n return els;\n };\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\n var dayGrid = this.dayGrid;\n var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n var startCol = leftCol;\n var endCol = rightCol + 1;\n var className;\n var skeletonEl;\n var trEl;\n if (type === 'businessHours') {\n className = 'bgevent';\n }\n else {\n className = type.toLowerCase();\n }\n skeletonEl = htmlToElement('
' +\n '
' +\n '
');\n trEl = skeletonEl.getElementsByTagName('tr')[0];\n if (startCol > 0) {\n appendToElement(trEl, \n // will create (startCol + 1) td's\n new Array(startCol + 1).join(EMPTY_CELL_HTML));\n }\n seg.el.colSpan = endCol - startCol;\n trEl.appendChild(seg.el);\n if (endCol < colCnt) {\n appendToElement(trEl, \n // will create (colCnt - endCol) td's\n new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML));\n }\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(trEl, introHtml);\n }\n else {\n prependToElement(trEl, introHtml);\n }\n }\n return skeletonEl;\n };\n return DayGridFillRenderer;\n}(FillRenderer));\n\nvar DayTile = /** @class */ (function (_super) {\n __extends(DayTile, _super);\n function DayTile(context, el) {\n var _this = _super.call(this, context, el) || this;\n var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this);\n var renderFrame = _this.renderFrame = memoizeRendering(_this._renderFrame);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n _this.renderEventResize = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.el,\n useEventCenter: false\n });\n return _this;\n }\n DayTile.prototype.render = function (props) {\n this.renderFrame(props.date);\n this.renderFgEvents(props.fgSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDragInstances);\n this.renderEventResize(props.eventResizeInstances);\n };\n DayTile.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderFrame.unrender(); // should unrender everything else\n this.calendar.unregisterInteractiveComponent(this);\n };\n DayTile.prototype._renderFrame = function (date) {\n var _a = this, theme = _a.theme, dateEnv = _a.dateEnv;\n var title = dateEnv.format(date, createFormatter(this.opt('dayPopoverFormat')) // TODO: cache\n );\n this.el.innerHTML =\n '
' +\n '' +\n htmlEscape(title) +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
';\n this.segContainerEl = this.el.querySelector('.fc-event-container');\n };\n DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var date = this.props.date; // HACK\n if (positionLeft < elWidth && positionTop < elHeight) {\n return {\n component: this,\n dateSpan: {\n allDay: true,\n range: { start: date, end: addDays(date, 1) }\n },\n dayEl: this.el,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1\n };\n }\n };\n return DayTile;\n}(DateComponent));\nvar DayTileEventRenderer = /** @class */ (function (_super) {\n __extends(DayTileEventRenderer, _super);\n function DayTileEventRenderer(dayTile) {\n var _this = _super.call(this, dayTile.context) || this;\n _this.dayTile = dayTile;\n return _this;\n }\n DayTileEventRenderer.prototype.attachSegs = function (segs) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n this.dayTile.segContainerEl.appendChild(seg.el);\n }\n };\n DayTileEventRenderer.prototype.detachSegs = function (segs) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n removeElement(seg.el);\n }\n };\n return DayTileEventRenderer;\n}(SimpleDayGridEventRenderer));\n\nvar DayBgRow = /** @class */ (function () {\n function DayBgRow(context) {\n this.context = context;\n }\n DayBgRow.prototype.renderHtml = function (props) {\n var parts = [];\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n for (var _i = 0, _a = props.cells; _i < _a.length; _i++) {\n var cell = _a[_i];\n parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs));\n }\n if (!props.cells.length) {\n parts.push('');\n }\n if (this.context.options.dir === 'rtl') {\n parts.reverse();\n }\n return '' + parts.join('') + '';\n };\n return DayBgRow;\n}());\nfunction renderCellHtml(date, dateProfile, context, otherAttrs) {\n var dateEnv = context.dateEnv, theme = context.theme;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var classes = getDayClasses(date, dateProfile, context);\n classes.unshift('fc-day', theme.getClass('widgetContent'));\n return '';\n}\n\nvar DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nvar WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' });\nvar DayGrid = /** @class */ (function (_super) {\n __extends(DayGrid, _super);\n function DayGrid(context, el, renderProps) {\n var _this = _super.call(this, context, el) || this;\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\n _this.isCellSizesDirty = false;\n var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this);\n var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this);\n _this.mirrorRenderer = new DayGridMirrorRenderer(_this);\n var renderCells = _this.renderCells = memoizeRendering(_this._renderCells, _this._unrenderCells);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]);\n _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]);\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]);\n _this.renderProps = renderProps;\n return _this;\n }\n DayGrid.prototype.render = function (props) {\n var cells = props.cells;\n this.rowCnt = cells.length;\n this.colCnt = cells[0].length;\n this.renderCells(cells, props.isRigid);\n this.renderBusinessHours(props.businessHourSegs);\n this.renderDateSelection(props.dateSelectionSegs);\n this.renderBgEvents(props.bgEventSegs);\n this.renderFgEvents(props.fgEventSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDrag);\n this.renderEventResize(props.eventResize);\n if (this.segPopoverTile) {\n this.updateSegPopoverTile();\n }\n };\n DayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderCells.unrender(); // will unrender everything else\n };\n DayGrid.prototype.getCellRange = function (row, col) {\n var start = this.props.cells[row][col].date;\n var end = addDays(start, 1);\n return { start: start, end: end };\n };\n DayGrid.prototype.updateSegPopoverTile = function (date, segs) {\n var ownProps = this.props;\n this.segPopoverTile.receiveProps({\n date: date || this.segPopoverTile.props.date,\n fgSegs: segs || this.segPopoverTile.props.fgSegs,\n eventSelection: ownProps.eventSelection,\n eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null,\n eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null\n });\n };\n /* Date Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderCells = function (cells, isRigid) {\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt;\n var html = '';\n var row;\n var col;\n for (row = 0; row < rowCnt; row++) {\n html += this.renderDayRowHtml(row, isRigid);\n }\n this.el.innerHTML = html;\n this.rowEls = findElements(this.el, '.fc-row');\n this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n if (this.isRtl) {\n this.cellEls.reverse();\n }\n this.rowPositions = new PositionCache(this.el, this.rowEls, false, true // vertical\n );\n this.colPositions = new PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row\n true, false // horizontal\n );\n // trigger dayRender with each cell's element\n for (row = 0; row < rowCnt; row++) {\n for (col = 0; col < colCnt; col++) {\n this.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[row][col].date),\n el: this.getCellEl(row, col),\n view: view\n }\n ]);\n }\n }\n this.isCellSizesDirty = true;\n };\n DayGrid.prototype._unrenderCells = function () {\n this.removeSegPopover();\n };\n // Generates the HTML for a single row, which is a div that wraps a table.\n // `row` is the row number.\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\n var theme = this.theme;\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\n if (isRigid) {\n classes.push('fc-rigid');\n }\n var bgRow = new DayBgRow(this.context);\n return '' +\n '
' +\n '
' +\n '' +\n bgRow.renderHtml({\n cells: this.props.cells[row],\n dateProfile: this.props.dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '
' +\n '
' +\n '
' +\n '' +\n (this.getIsNumbersVisible() ?\n '' +\n this.renderNumberTrHtml(row) +\n '' :\n '') +\n '
' +\n '
' +\n '
';\n };\n DayGrid.prototype.getIsNumbersVisible = function () {\n return this.getIsDayNumbersVisible() ||\n this.renderProps.cellWeekNumbersVisible ||\n this.renderProps.colWeekNumbersVisible;\n };\n DayGrid.prototype.getIsDayNumbersVisible = function () {\n return this.rowCnt > 1;\n };\n /* Grid Number Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.renderNumberTrHtml = function (row) {\n var intro = this.renderProps.renderNumberIntroHtml(row, this);\n return '' +\n '' +\n (this.isRtl ? '' : intro) +\n this.renderNumberCellsHtml(row) +\n (this.isRtl ? intro : '') +\n '';\n };\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\n var htmls = [];\n var col;\n var date;\n for (col = 0; col < this.colCnt; col++) {\n date = this.props.cells[row][col].date;\n htmls.push(this.renderNumberCellHtml(date));\n }\n if (this.isRtl) {\n htmls.reverse();\n }\n return htmls.join('');\n };\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\n // The number row will only exist if either day numbers or week numbers are turned on.\n DayGrid.prototype.renderNumberCellHtml = function (date) {\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var html = '';\n var isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\n var classes;\n var weekCalcFirstDow;\n if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) {\n // no numbers in day cell (week number must be along the side)\n return ''; // will create an empty space above events :(\n }\n classes = getDayClasses(date, this.props.dateProfile, this.context);\n classes.unshift('fc-day-top');\n if (this.renderProps.cellWeekNumbersVisible) {\n weekCalcFirstDow = dateEnv.weekDow;\n }\n html += '';\n if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) {\n html += buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML\n );\n }\n if (isDayNumberVisible) {\n html += buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML\n );\n }\n html += '';\n return html;\n };\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.updateSize = function (isResize) {\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n if (isResize ||\n this.isCellSizesDirty ||\n this.view.calendar.isEventsUpdated // hack\n ) {\n this.buildPositionCaches();\n this.isCellSizesDirty = false;\n }\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n DayGrid.prototype.buildPositionCaches = function () {\n this.buildColPositions();\n this.buildRowPositions();\n };\n DayGrid.prototype.buildColPositions = function () {\n this.colPositions.build();\n };\n DayGrid.prototype.buildRowPositions = function () {\n this.rowPositions.build();\n this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\n };\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.positionToHit = function (leftPosition, topPosition) {\n var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;\n var col = colPositions.leftToIndex(leftPosition);\n var row = rowPositions.topToIndex(topPosition);\n if (row != null && col != null) {\n return {\n row: row,\n col: col,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true\n },\n dayEl: this.getCellEl(row, col),\n relativeRect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row]\n }\n };\n }\n };\n /* Cell System\n ------------------------------------------------------------------------------------------------------------------*/\n // FYI: the first column is the leftmost column, regardless of date\n DayGrid.prototype.getCellEl = function (row, col) {\n return this.cellEls[row * this.colCnt + col];\n };\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', state.segs);\n }\n };\n DayGrid.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight');\n }\n };\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventResize = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', state.segs);\n this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n DayGrid.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight');\n this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n /* More+ Link Popover\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.removeSegPopover = function () {\n if (this.segPopover) {\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\n }\n };\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\n DayGrid.prototype.limitRows = function (levelLimit) {\n var rowStructs = this.eventRenderer.rowStructs || [];\n var row; // row #\n var rowLevelLimit;\n for (row = 0; row < rowStructs.length; row++) {\n this.unlimitRow(row);\n if (!levelLimit) {\n rowLevelLimit = false;\n }\n else if (typeof levelLimit === 'number') {\n rowLevelLimit = levelLimit;\n }\n else {\n rowLevelLimit = this.computeRowLevelLimit(row);\n }\n if (rowLevelLimit !== false) {\n this.limitRow(row, rowLevelLimit);\n }\n }\n };\n // Computes the number of levels a row will accomodate without going outside its bounds.\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\n // `row` is the row number.\n DayGrid.prototype.computeRowLevelLimit = function (row) {\n var rowEl = this.rowEls[row]; // the containing \"fake\" row div\n var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport!\n var trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl);\n var i;\n var trEl;\n // Reveal one level at a time and stop when we find one out of bounds\n for (i = 0; i < trEls.length; i++) {\n trEl = trEls[i];\n trEl.classList.remove('fc-limited'); // reset to original state (reveal)\n if (trEl.getBoundingClientRect().bottom > rowBottom) {\n return i;\n }\n }\n return false; // should not limit at all\n };\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\n // `row` is the row number.\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\n DayGrid.prototype.limitRow = function (row, levelLimit) {\n var _this = this;\n var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl;\n var rowStruct = this.eventRenderer.rowStructs[row];\n var moreNodes = []; // array of \"more\" links and DOM nodes\n var col = 0; // col #, left-to-right (not chronologically)\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\n var cellMatrix; // a matrix (by level, then column) of all elements in the row\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\n var i;\n var seg;\n var segsBelow; // array of segment objects below `seg` in the current `col`\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\n var td;\n var rowSpan;\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\n var j;\n var moreTd;\n var moreWrap;\n var moreLink;\n // Iterates through empty level cells and places \"more\" links inside if need be\n var emptyCellsUntil = function (endCol) {\n while (col < endCol) {\n segsBelow = _this.getCellSegs(row, col, levelLimit);\n if (segsBelow.length) {\n td = cellMatrix[levelLimit - 1][col];\n moreLink = _this.renderMoreLink(row, col, segsBelow);\n moreWrap = createElement('div', null, moreLink);\n td.appendChild(moreWrap);\n moreNodes.push(moreWrap);\n }\n col++;\n }\n };\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\n levelSegs = rowStruct.segLevels[levelLimit - 1];\n cellMatrix = rowStruct.cellMatrix;\n limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit\n limitedNodes.forEach(function (node) {\n node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array\n });\n // iterate though segments in the last allowable level\n for (i = 0; i < levelSegs.length; i++) {\n seg = levelSegs[i];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol); // process empty cells before the segment\n // determine *all* segments below `seg` that occupy the same columns\n colSegsBelow = [];\n totalSegsBelow = 0;\n while (col <= rightCol) {\n segsBelow = this.getCellSegs(row, col, levelLimit);\n colSegsBelow.push(segsBelow);\n totalSegsBelow += segsBelow.length;\n col++;\n }\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\n td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell\n rowSpan = td.rowSpan || 1;\n segMoreNodes = [];\n // make a replacement for each column the segment occupies. will be one for each colspan\n for (j = 0; j < colSegsBelow.length; j++) {\n moreTd = createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan });\n segsBelow = colSegsBelow[j];\n moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\n );\n moreWrap = createElement('div', null, moreLink);\n moreTd.appendChild(moreWrap);\n segMoreNodes.push(moreTd);\n moreNodes.push(moreTd);\n }\n td.classList.add('fc-limited');\n insertAfterElement(td, segMoreNodes);\n limitedNodes.push(td);\n }\n }\n emptyCellsUntil(this.colCnt); // finish off the level\n rowStruct.moreEls = moreNodes; // for easy undoing later\n rowStruct.limitedEls = limitedNodes; // for easy undoing later\n }\n };\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\n // `row` is a row number.\n DayGrid.prototype.unlimitRow = function (row) {\n var rowStruct = this.eventRenderer.rowStructs[row];\n if (rowStruct.moreEls) {\n rowStruct.moreEls.forEach(removeElement);\n rowStruct.moreEls = null;\n }\n if (rowStruct.limitedEls) {\n rowStruct.limitedEls.forEach(function (limitedEl) {\n limitedEl.classList.remove('fc-limited');\n });\n rowStruct.limitedEls = null;\n }\n };\n // Renders an element that represents hidden event element for a cell.\n // Responsible for attaching click handler as well.\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\n var _this = this;\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var a = createElement('a', { className: 'fc-more' });\n a.innerText = this.getMoreLinkText(hiddenSegs.length);\n a.addEventListener('click', function (ev) {\n var clickOption = _this.opt('eventLimitClick');\n var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var date = _this.props.cells[row][_col].date;\n var moreEl = ev.currentTarget;\n var dayEl = _this.getCellEl(row, col);\n var allSegs = _this.getCellSegs(row, col);\n // rescope the segments to be within the cell's date\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\n if (typeof clickOption === 'function') {\n // the returned value can be an atomic option\n clickOption = _this.publiclyTrigger('eventLimitClick', [\n {\n date: dateEnv.toDate(date),\n allDay: true,\n dayEl: dayEl,\n moreEl: moreEl,\n segs: reslicedAllSegs,\n hiddenSegs: reslicedHiddenSegs,\n jsEvent: ev,\n view: view\n }\n ]);\n }\n if (clickOption === 'popover') {\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\n }\n else if (typeof clickOption === 'string') { // a view name\n view.calendar.zoomTo(date, clickOption);\n }\n });\n return a;\n };\n // Reveals the popover that displays all events within a cell\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\n var _this = this;\n var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme;\n var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var moreWrap = moreLink.parentNode; // the
wrapper around the \n var topEl; // the element we want to match the top coordinate of\n var options;\n if (this.rowCnt === 1) {\n topEl = view.el; // will cause the popover to cover any sort of header\n }\n else {\n topEl = this.rowEls[row]; // will align with top of row\n }\n options = {\n className: 'fc-more-popover ' + theme.getClass('popover'),\n parentEl: view.el,\n top: computeRect(topEl).top,\n autoHide: true,\n content: function (el) {\n _this.segPopoverTile = new DayTile(_this.context, el);\n _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs);\n },\n hide: function () {\n _this.segPopoverTile.destroy();\n _this.segPopoverTile = null;\n _this.segPopover.destroy();\n _this.segPopover = null;\n }\n };\n // Determine horizontal coordinate.\n // We use the moreWrap instead of the to avoid border confusion.\n if (this.isRtl) {\n options.right = computeRect(moreWrap).right + 1; // +1 to be over cell border\n }\n else {\n options.left = computeRect(moreWrap).left - 1; // -1 to be over cell border\n }\n this.segPopover = new Popover(options);\n this.segPopover.show();\n calendar.releaseAfterSizingTriggers(); // hack for eventPositioned\n };\n // Given the events within an array of segment objects, reslice them to be in a single day\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\n var dayStart = dayDate;\n var dayEnd = addDays(dayStart, 1);\n var dayRange = { start: dayStart, end: dayEnd };\n var newSegs = [];\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n var eventRange = seg.eventRange;\n var origRange = eventRange.range;\n var slicedRange = intersectRanges(origRange, dayRange);\n if (slicedRange) {\n newSegs.push(__assign({}, seg, { eventRange: {\n def: eventRange.def,\n ui: __assign({}, eventRange.ui, { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() }));\n }\n }\n return newSegs;\n };\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\n DayGrid.prototype.getMoreLinkText = function (num) {\n var opt = this.opt('eventLimitText');\n if (typeof opt === 'function') {\n return opt(num);\n }\n else {\n return '+' + num + ' ' + opt;\n }\n };\n // Returns segments within a given cell.\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\n var level = startLevel || 0;\n var segs = [];\n var seg;\n while (level < segMatrix.length) {\n seg = segMatrix[level][col];\n if (seg) {\n segs.push(seg);\n }\n level++;\n }\n return segs;\n };\n return DayGrid;\n}(DateComponent));\n\nvar WEEK_NUM_FORMAT$1 = createFormatter({ week: 'numeric' });\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nvar DayGridView = /** @class */ (function (_super) {\n __extends(DayGridView, _super);\n function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n /* Header Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before the day-of week header cells\n _this.renderHeadIntroHtml = function () {\n var theme = _this.theme;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n '' + // needed for matchCellWidths\n htmlEscape(_this.opt('weekLabel')) +\n '' +\n '';\n }\n return '';\n };\n /* Day Grid Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\n _this.renderDayGridNumberIntroHtml = function (row, dayGrid) {\n var dateEnv = _this.dateEnv;\n var weekStart = dayGrid.props.cells[row][0].date;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML\n ) +\n '';\n }\n return '';\n };\n // Generates the HTML that goes before the day bg cells for each day-row\n _this.renderDayGridBgIntroHtml = function () {\n var theme = _this.theme;\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n // Generates the HTML that goes before every other type of row generated by DayGrid.\n // Affects mirror-skeleton and highlight-skeleton rows.\n _this.renderDayGridIntroHtml = function () {\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n _this.el.classList.add('fc-dayGrid-view');\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n var dayGridContainerEl = _this.scroller.el;\n _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl);\n dayGridContainerEl.classList.add('fc-day-grid-container');\n var dayGridEl = createElement('div', { className: 'fc-day-grid' });\n dayGridContainerEl.appendChild(dayGridEl);\n var cellWeekNumbersVisible;\n if (_this.opt('weekNumbers')) {\n if (_this.opt('weekNumbersWithinDays')) {\n cellWeekNumbersVisible = true;\n _this.colWeekNumbersVisible = false;\n }\n else {\n cellWeekNumbersVisible = false;\n _this.colWeekNumbersVisible = true;\n }\n }\n else {\n _this.colWeekNumbersVisible = false;\n cellWeekNumbersVisible = false;\n }\n _this.dayGrid = new DayGrid(_this.context, dayGridEl, {\n renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml,\n renderBgIntroHtml: _this.renderDayGridBgIntroHtml,\n renderIntroHtml: _this.renderDayGridIntroHtml,\n colWeekNumbersVisible: _this.colWeekNumbersVisible,\n cellWeekNumbersVisible: cellWeekNumbersVisible\n });\n return _this;\n }\n DayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.dayGrid.destroy();\n this.scroller.destroy();\n };\n // Builds the HTML skeleton for the view.\n // The day-grid component will render inside of a container defined by this HTML.\n DayGridView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return '' +\n '' +\n (this.opt('columnHeader') ?\n '' +\n '' +\n '' +\n '' +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
 
';\n };\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\n DayGridView.prototype.weekNumberStyleAttr = function () {\n if (this.weekNumberWidth != null) {\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\n }\n return '';\n };\n // Determines whether each row should have a constant height\n DayGridView.prototype.hasRigidRows = function () {\n var eventLimit = this.opt('eventLimit');\n return eventLimit && typeof eventLimit !== 'number';\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n this.dayGrid.updateSize(isResize);\n };\n // Refreshes the horizontal dimensions of the view\n DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n var dayGrid = this.dayGrid;\n var eventLimit = this.opt('eventLimit');\n var headRowEl = this.header ? this.header.el : null; // HACK\n var scrollerHeight;\n var scrollbarWidths;\n // hack to give the view some height prior to dayGrid's columns being rendered\n // TODO: separate setting height from scroller VS dayGrid.\n if (!dayGrid.rowEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n return;\n }\n if (this.colWeekNumbersVisible) {\n // Make sure all week number cells running down the side have the same width.\n this.weekNumberWidth = matchCellWidths(findElements(this.el, '.fc-week-number'));\n }\n // reset all heights to be natural\n this.scroller.clear();\n if (headRowEl) {\n uncompensateScroll(headRowEl);\n }\n dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n // is the event limit a constant level number?\n if (eventLimit && typeof eventLimit === 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\n }\n // distribute the height to the rows\n // (viewHeight is a \"recommended\" value if isAuto)\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.setGridHeight(scrollerHeight, isAuto);\n // is the event limit dynamically calculated?\n if (eventLimit && typeof eventLimit !== 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\n }\n if (!isAuto) { // should we force dimensions of the scroll container?\n this.scroller.setHeight(scrollerHeight);\n scrollbarWidths = this.scroller.getScrollbarWidths();\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n if (headRowEl) {\n compensateScroll(headRowEl, scrollbarWidths);\n }\n // doing the scrollbar compensation might have created text overflow which created more height. redo\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths);\n }\n };\n // given a desired total height of the view, returns what the height of the scroller should be\n DayGridView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n // Sets the height of just the DayGrid component in this view\n DayGridView.prototype.setGridHeight = function (height, isAuto) {\n if (this.opt('monthMode')) {\n // if auto, make the height of each row the height that it would be if there were 6 weeks\n if (isAuto) {\n height *= this.dayGrid.rowCnt / 6;\n }\n distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\n }\n else {\n if (isAuto) {\n undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\n }\n else {\n distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\n }\n }\n };\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n DayGridView.prototype.computeDateScroll = function (duration) {\n return { top: 0 };\n };\n DayGridView.prototype.queryDateScroll = function () {\n return { top: this.scroller.getScrollTop() };\n };\n DayGridView.prototype.applyDateScroll = function (scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top);\n }\n };\n return DayGridView;\n}(View));\nDayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator;\n\nvar SimpleDayGrid = /** @class */ (function (_super) {\n __extends(SimpleDayGrid, _super);\n function SimpleDayGrid(context, dayGrid) {\n var _this = _super.call(this, context, dayGrid.el) || this;\n _this.slicer = new DayGridSlicer();\n _this.dayGrid = dayGrid;\n context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el });\n return _this;\n }\n SimpleDayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n SimpleDayGrid.prototype.render = function (props) {\n var dayGrid = this.dayGrid;\n var dateProfile = props.dateProfile, dayTable = props.dayTable;\n dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }));\n };\n SimpleDayGrid.prototype.buildPositionCaches = function () {\n this.dayGrid.buildPositionCaches();\n };\n SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.dayGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return SimpleDayGrid;\n}(DateComponent));\nvar DayGridSlicer = /** @class */ (function (_super) {\n __extends(DayGridSlicer, _super);\n function DayGridSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) {\n return dayTable.sliceRange(dateRange);\n };\n return DayGridSlicer;\n}(Slicer));\n\nvar DayGridView$1 = /** @class */ (function (_super) {\n __extends(DayGridView, _super);\n function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.buildDayTable = memoize(buildDayTable);\n if (_this.opt('columnHeader')) {\n _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid);\n return _this;\n }\n DayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.simpleDayGrid.destroy();\n };\n DayGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props);\n var dateProfile = this.props.dateProfile;\n var dayTable = this.dayTable =\n this.buildDayTable(dateProfile, this.dateProfileGenerator);\n if (this.header) {\n this.header.receiveProps({\n dateProfile: dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: dayTable.rowCnt === 1,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.simpleDayGrid.receiveProps({\n dateProfile: dateProfile,\n dayTable: dayTable,\n businessHours: props.businessHours,\n dateSelection: props.dateSelection,\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isRigid: this.hasRigidRows(),\n nextDayThreshold: this.nextDayThreshold\n });\n };\n return DayGridView;\n}(DayGridView));\nfunction buildDayTable(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n return new DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nvar main = createPlugin({\n defaultView: 'dayGridMonth',\n views: {\n dayGrid: DayGridView$1,\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 }\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 }\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n monthMode: true,\n fixedWeekCount: true\n }\n }\n});\n\nexport default main;\nexport { DayGridView as AbstractDayGridView, DayBgRow, DayGrid, DayGridSlicer, DayGridView$1 as DayGridView, SimpleDayGrid, buildDayTable as buildBasicDayTable };\n","/*!\nFullCalendar List View Plugin v4.3.0\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { getAllDayHtml, isMultiDayRange, htmlEscape, FgEventRenderer, memoize, memoizeRendering, ScrollComponent, subtractInnerElHeight, sliceEventStore, intersectRanges, htmlToElement, createFormatter, createElement, buildGotoAnchorHtml, View, startOfDay, addDays, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar ListEventRenderer = /** @class */ (function (_super) {\n __extends(ListEventRenderer, _super);\n function ListEventRenderer(listView) {\n var _this = _super.call(this, listView.context) || this;\n _this.listView = listView;\n return _this;\n }\n ListEventRenderer.prototype.attachSegs = function (segs) {\n if (!segs.length) {\n this.listView.renderEmptyMessage();\n }\n else {\n this.listView.renderSegList(segs);\n }\n };\n ListEventRenderer.prototype.detachSegs = function () {\n };\n // generates the HTML for a single event row\n ListEventRenderer.prototype.renderSegHtml = function (seg) {\n var _a = this.context, view = _a.view, theme = _a.theme;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventInstance = eventRange.instance;\n var eventUi = eventRange.ui;\n var url = eventDef.url;\n var classes = ['fc-list-item'].concat(eventUi.classNames);\n var bgColor = eventUi.backgroundColor;\n var timeHtml;\n if (eventDef.allDay) {\n timeHtml = getAllDayHtml(view);\n }\n else if (isMultiDayRange(eventRange.range)) {\n if (seg.isStart) {\n timeHtml = htmlEscape(this._getTimeText(eventInstance.range.start, seg.end, false // allDay\n ));\n }\n else if (seg.isEnd) {\n timeHtml = htmlEscape(this._getTimeText(seg.start, eventInstance.range.end, false // allDay\n ));\n }\n else { // inner segment that lasts the whole day\n timeHtml = getAllDayHtml(view);\n }\n }\n else {\n // Display the normal time text for the *event's* times\n timeHtml = htmlEscape(this.getTimeText(eventRange));\n }\n if (url) {\n classes.push('fc-has-url');\n }\n return '' +\n (this.displayEventTime ?\n '' +\n (timeHtml || '') +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n htmlEscape(eventDef.title || '') +\n '
' +\n '' +\n '';\n };\n // like \"4:00am\"\n ListEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n meridiem: 'short'\n };\n };\n return ListEventRenderer;\n}(FgEventRenderer));\n\n/*\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\n*/\nvar ListView = /** @class */ (function (_super) {\n __extends(ListView, _super);\n function ListView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.computeDateVars = memoize(computeDateVars);\n _this.eventStoreToSegs = memoize(_this._eventStoreToSegs);\n var eventRenderer = _this.eventRenderer = new ListEventRenderer(_this);\n _this.renderContent = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer));\n _this.el.classList.add('fc-list-view');\n var listViewClassNames = (_this.theme.getClass('listView') || '').split(' '); // wish we didn't have to do this\n for (var _i = 0, listViewClassNames_1 = listViewClassNames; _i < listViewClassNames_1.length; _i++) {\n var listViewClassName = listViewClassNames_1[_i];\n if (listViewClassName) { // in case input was empty string\n _this.el.classList.add(listViewClassName);\n }\n }\n _this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n _this.el.appendChild(_this.scroller.el);\n _this.contentEl = _this.scroller.el; // shortcut\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.el\n // TODO: make aware that it doesn't do Hits\n });\n return _this;\n }\n ListView.prototype.render = function (props) {\n var _a = this.computeDateVars(props.dateProfile), dayDates = _a.dayDates, dayRanges = _a.dayRanges;\n this.dayDates = dayDates;\n this.renderContent(this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges));\n };\n ListView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderContent.unrender();\n this.scroller.destroy(); // will remove the Grid too\n this.calendar.unregisterInteractiveComponent(this);\n };\n ListView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto);\n this.eventRenderer.computeSizes(isResize);\n this.eventRenderer.assignSizes(isResize);\n this.scroller.clear(); // sets height to 'auto' and clears overflow\n if (!isAuto) {\n this.scroller.setHeight(this.computeScrollerHeight(viewHeight));\n }\n };\n ListView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n ListView.prototype._eventStoreToSegs = function (eventStore, eventUiBases, dayRanges) {\n return this.eventRangesToSegs(sliceEventStore(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.nextDayThreshold).fg, dayRanges);\n };\n ListView.prototype.eventRangesToSegs = function (eventRanges, dayRanges) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.eventRangeToSegs(eventRange, dayRanges));\n }\n return segs;\n };\n ListView.prototype.eventRangeToSegs = function (eventRange, dayRanges) {\n var _a = this, dateEnv = _a.dateEnv, nextDayThreshold = _a.nextDayThreshold;\n var range = eventRange.range;\n var allDay = eventRange.def.allDay;\n var dayIndex;\n var segRange;\n var seg;\n var segs = [];\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {\n segRange = intersectRanges(range, dayRanges[dayIndex]);\n if (segRange) {\n seg = {\n component: this,\n eventRange: eventRange,\n start: segRange.start,\n end: segRange.end,\n isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n dayIndex: dayIndex\n };\n segs.push(seg);\n // detect when range won't go fully into the next day,\n // and mutate the latest seg to the be the end.\n if (!seg.isEnd && !allDay &&\n dayIndex + 1 < dayRanges.length &&\n range.end <\n dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) {\n seg.end = range.end;\n seg.isEnd = true;\n break;\n }\n }\n }\n return segs;\n };\n ListView.prototype.renderEmptyMessage = function () {\n this.contentEl.innerHTML =\n '
' + // TODO: try less wraps\n '
' +\n '
' +\n htmlEscape(this.opt('noEventsMessage')) +\n '
' +\n '
' +\n '
';\n };\n // called by ListEventRenderer\n ListView.prototype.renderSegList = function (allSegs) {\n var segsByDay = this.groupSegsByDay(allSegs); // sparse array\n var dayIndex;\n var daySegs;\n var i;\n var tableEl = htmlToElement('
');\n var tbodyEl = tableEl.querySelector('tbody');\n for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {\n daySegs = segsByDay[dayIndex];\n if (daySegs) { // sparse array, so might be undefined\n // append a day header\n tbodyEl.appendChild(this.buildDayHeaderRow(this.dayDates[dayIndex]));\n daySegs = this.eventRenderer.sortEventSegs(daySegs);\n for (i = 0; i < daySegs.length; i++) {\n tbodyEl.appendChild(daySegs[i].el); // append event row\n }\n }\n }\n this.contentEl.innerHTML = '';\n this.contentEl.appendChild(tableEl);\n };\n // Returns a sparse array of arrays, segs grouped by their dayIndex\n ListView.prototype.groupSegsByDay = function (segs) {\n var segsByDay = []; // sparse array\n var i;\n var seg;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\n .push(seg);\n }\n return segsByDay;\n };\n // generates the HTML for the day headers that live amongst the event rows\n ListView.prototype.buildDayHeaderRow = function (dayDate) {\n var dateEnv = this.dateEnv;\n var mainFormat = createFormatter(this.opt('listDayFormat')); // TODO: cache\n var altFormat = createFormatter(this.opt('listDayAltFormat')); // TODO: cache\n return createElement('tr', {\n className: 'fc-list-heading',\n 'data-date': dateEnv.formatIso(dayDate, { omitTime: true })\n }, '' +\n (mainFormat ?\n buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-main' }, htmlEscape(dateEnv.format(dayDate, mainFormat)) // inner HTML\n ) :\n '') +\n (altFormat ?\n buildGotoAnchorHtml(this, dayDate, { 'class': 'fc-list-heading-alt' }, htmlEscape(dateEnv.format(dayDate, altFormat)) // inner HTML\n ) :\n '') +\n '');\n };\n return ListView;\n}(View));\nListView.prototype.fgSegSelector = '.fc-list-item'; // which elements accept event actions\nfunction computeDateVars(dateProfile) {\n var dayStart = startOfDay(dateProfile.renderRange.start);\n var viewEnd = dateProfile.renderRange.end;\n var dayDates = [];\n var dayRanges = [];\n while (dayStart < viewEnd) {\n dayDates.push(dayStart);\n dayRanges.push({\n start: dayStart,\n end: addDays(dayStart, 1)\n });\n dayStart = addDays(dayStart, 1);\n }\n return { dayDates: dayDates, dayRanges: dayRanges };\n}\n\nvar main = createPlugin({\n views: {\n list: {\n class: ListView,\n buttonTextKey: 'list',\n listDayFormat: { month: 'long', day: 'numeric', year: 'numeric' } // like \"January 1, 2016\"\n },\n listDay: {\n type: 'list',\n duration: { days: 1 },\n listDayFormat: { weekday: 'long' } // day-of-week is all we need. full date is probably in header\n },\n listWeek: {\n type: 'list',\n duration: { weeks: 1 },\n listDayFormat: { weekday: 'long' },\n listDayAltFormat: { month: 'long', day: 'numeric', year: 'numeric' }\n },\n listMonth: {\n type: 'list',\n duration: { month: 1 },\n listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have\n },\n listYear: {\n type: 'list',\n duration: { year: 1 },\n listDayAltFormat: { weekday: 'long' } // day-of-week is nice-to-have\n }\n }\n});\n\nexport default main;\nexport { ListView };\n","/*\nFullCalendar React Component v4.3.0\nDocs: https://fullcalendar.io/docs/react\nLicense: MIT\n*/\nimport deepEqual from 'fast-deep-equal';\nimport { createElement, createRef, Component } from 'react';\nimport { Calendar } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\nvar FullCalendar = /** @class */ (function (_super) {\n __extends(FullCalendar, _super);\n function FullCalendar() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.elRef = createRef();\n return _this;\n }\n FullCalendar.prototype.render = function () {\n return (createElement(\"div\", { ref: this.elRef }));\n };\n FullCalendar.prototype.componentDidMount = function () {\n this.calendar = new Calendar(this.elRef.current, this.props);\n this.calendar.render();\n };\n FullCalendar.prototype.componentDidUpdate = function (oldProps) {\n var props = this.props;\n var updates = {};\n var removals = [];\n for (var propName in oldProps) {\n if (!(propName in props)) {\n removals.push(propName);\n }\n }\n /*\n Do a deep-comparison for prop changes. We do this because often times the parent component will pass in\n an object literal that generates a new reference every time its render() function runs.\n This isn't too much of a performance hit because normally these object literals are rather small.\n For larger data, the parent component will almost definitely generate a new reference on every mutation,\n because immutable prop data is the norm in React-world, making the deepEqual function execute really fast.\n */\n for (var propName in props) {\n if (!deepEqual(props[propName], oldProps[propName])) {\n updates[propName] = props[propName];\n }\n }\n this.calendar.mutateOptions(updates, removals, false, deepEqual);\n };\n FullCalendar.prototype.componentWillUnmount = function () {\n this.calendar.destroy();\n };\n FullCalendar.prototype.getApi = function () {\n return this.calendar;\n };\n return FullCalendar;\n}(Component));\n\nexport default FullCalendar;\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n return a!==a && b!==b;\n};\n","/*!\nFullCalendar Resources Common Plugin v4.3.1\nDocs & License: https://fullcalendar.io/scheduler\n(c) 2019 Adam Shaw\n*/\n\nimport { memoize, filterHash, rangesIntersect, memoizeOutput, isPropsEqual, mapHash, combineEventUis, refineProps, rangesEqual, processScopedUiProps, parseBusinessHours, EventApi, Calendar, Splitter, mergeEventStores, isPropsValid, appendToElement, htmlEscape, cssToStr, config, isValidDate, addDays, unpromisify, requestJson, htmlToElement, removeElement, createFormatter, computeFallbackHeaderFormat, renderDateCell, findElements, Component, flexibleCompare, compareByFieldSpecs, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction massageEventDragMutation(eventMutation, hit0, hit1) {\n var resource0 = hit0.dateSpan.resourceId;\n var resource1 = hit1.dateSpan.resourceId;\n if (resource0 && resource1 &&\n resource0 !== resource1) {\n eventMutation.resourceMutation = {\n matchResourceId: resource0,\n setResourceId: resource1\n };\n }\n}\n/*\nTODO: all this would be much easier if we were using a hash!\n*/\nfunction applyEventDefMutation(eventDef, mutation, calendar) {\n var resourceMutation = mutation.resourceMutation;\n if (resourceMutation && computeResourceEditable(eventDef, calendar)) {\n var index = eventDef.resourceIds.indexOf(resourceMutation.matchResourceId);\n if (index !== -1) {\n var resourceIds = eventDef.resourceIds.slice(); // copy\n resourceIds.splice(index, 1); // remove\n if (resourceIds.indexOf(resourceMutation.setResourceId) === -1) { // not already in there\n resourceIds.push(resourceMutation.setResourceId); // add\n }\n eventDef.resourceIds = resourceIds;\n }\n }\n}\n/*\nHACK\nTODO: use EventUi system instead of this\n*/\nfunction computeResourceEditable(eventDef, calendar) {\n var resourceEditable = eventDef.resourceEditable;\n if (resourceEditable == null) {\n var source = eventDef.sourceId && calendar.state.eventSources[eventDef.sourceId];\n if (source) {\n resourceEditable = source.extendedProps.resourceEditable; // used the Source::extendedProps hack\n }\n if (resourceEditable == null) {\n resourceEditable = calendar.opt('eventResourceEditable');\n if (resourceEditable == null) {\n resourceEditable = calendar.opt('editable'); // TODO: use defaults system instead\n }\n }\n }\n return resourceEditable;\n}\nfunction transformEventDrop(mutation, calendar) {\n var resourceMutation = mutation.resourceMutation;\n if (resourceMutation) {\n return {\n oldResource: calendar.getResourceById(resourceMutation.matchResourceId),\n newResource: calendar.getResourceById(resourceMutation.setResourceId)\n };\n }\n else {\n return {\n oldResource: null,\n newResource: null\n };\n }\n}\n\nvar ResourceDataAdder = /** @class */ (function () {\n function ResourceDataAdder() {\n this.filterResources = memoize(filterResources);\n }\n ResourceDataAdder.prototype.transform = function (viewProps, viewSpec, calendarProps, view) {\n if (viewSpec.class.needsResourceData) {\n return {\n resourceStore: this.filterResources(calendarProps.resourceStore, view.opt('filterResourcesWithEvents'), calendarProps.eventStore, calendarProps.dateProfile.activeRange),\n resourceEntityExpansions: calendarProps.resourceEntityExpansions\n };\n }\n };\n return ResourceDataAdder;\n}());\nfunction filterResources(resourceStore, doFilterResourcesWithEvents, eventStore, activeRange) {\n if (doFilterResourcesWithEvents) {\n var instancesInRange = filterEventInstancesInRange(eventStore.instances, activeRange);\n var hasEvents_1 = computeHasEvents(instancesInRange, eventStore.defs);\n __assign(hasEvents_1, computeAncestorHasEvents(hasEvents_1, resourceStore));\n return filterHash(resourceStore, function (resource, resourceId) {\n return hasEvents_1[resourceId];\n });\n }\n else {\n return resourceStore;\n }\n}\nfunction filterEventInstancesInRange(eventInstances, activeRange) {\n return filterHash(eventInstances, function (eventInstance) {\n return rangesIntersect(eventInstance.range, activeRange);\n });\n}\nfunction computeHasEvents(eventInstances, eventDefs) {\n var hasEvents = {};\n for (var instanceId in eventInstances) {\n var instance = eventInstances[instanceId];\n for (var _i = 0, _a = eventDefs[instance.defId].resourceIds; _i < _a.length; _i++) {\n var resourceId = _a[_i];\n hasEvents[resourceId] = true;\n }\n }\n return hasEvents;\n}\n/*\nmark resources as having events if any of their ancestors have them\nNOTE: resourceStore might not have all the resources that hasEvents{} has keyed\n*/\nfunction computeAncestorHasEvents(hasEvents, resourceStore) {\n var res = {};\n for (var resourceId in hasEvents) {\n var resource = void 0;\n while ((resource = resourceStore[resourceId])) {\n resourceId = resource.parentId; // now functioning as the parentId\n if (resourceId) {\n res[resourceId] = true;\n }\n else {\n break;\n }\n }\n }\n return res;\n}\n// for when non-resource view should be given EventUi info (for event coloring/constraints based off of resource data)\nvar ResourceEventConfigAdder = /** @class */ (function () {\n function ResourceEventConfigAdder() {\n this.buildResourceEventUis = memoizeOutput(buildResourceEventUis, isPropsEqual);\n this.injectResourceEventUis = memoize(injectResourceEventUis);\n }\n ResourceEventConfigAdder.prototype.transform = function (viewProps, viewSpec, calendarProps) {\n if (!viewSpec.class.needsResourceData) { // is a non-resource view?\n return {\n eventUiBases: this.injectResourceEventUis(viewProps.eventUiBases, viewProps.eventStore.defs, this.buildResourceEventUis(calendarProps.resourceStore))\n };\n }\n };\n return ResourceEventConfigAdder;\n}());\nfunction buildResourceEventUis(resourceStore) {\n return mapHash(resourceStore, function (resource) {\n return resource.ui;\n });\n}\nfunction injectResourceEventUis(eventUiBases, eventDefs, resourceEventUis) {\n return mapHash(eventUiBases, function (eventUi, defId) {\n if (defId) { // not the '' key\n return injectResourceEventUi(eventUi, eventDefs[defId], resourceEventUis);\n }\n else {\n return eventUi;\n }\n });\n}\nfunction injectResourceEventUi(origEventUi, eventDef, resourceEventUis) {\n var parts = [];\n // first resource takes precedence, which fights with the ordering of combineEventUis, thus the unshifts\n for (var _i = 0, _a = eventDef.resourceIds; _i < _a.length; _i++) {\n var resourceId = _a[_i];\n if (resourceEventUis[resourceId]) {\n parts.unshift(resourceEventUis[resourceId]);\n }\n }\n parts.unshift(origEventUi);\n return combineEventUis(parts);\n}\n// for making sure events that have editable resources are always draggable in resource views\nfunction transformIsDraggable(val, eventDef, eventUi, view) {\n if (!val) {\n if (view.viewSpec.class.needsResourceData) {\n if (computeResourceEditable(eventDef, view.calendar)) {\n return true;\n }\n }\n }\n return val;\n}\n\nvar RESOURCE_SOURCE_PROPS = {\n id: String\n};\nvar defs = [];\nvar uid = 0;\nfunction registerResourceSourceDef(def) {\n defs.push(def);\n}\nfunction getResourceSourceDef(id) {\n return defs[id];\n}\nfunction doesSourceIgnoreRange(source) {\n return Boolean(defs[source.sourceDefId].ignoreRange);\n}\nfunction parseResourceSource(input) {\n for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(input);\n if (meta) {\n var res = parseResourceSourceProps((typeof input === 'object' && input) ? input : {}, meta, i);\n res._raw = input;\n return res;\n }\n }\n return null;\n}\nfunction parseResourceSourceProps(input, meta, sourceDefId) {\n var props = refineProps(input, RESOURCE_SOURCE_PROPS);\n props.sourceId = String(uid++);\n props.sourceDefId = sourceDefId;\n props.meta = meta;\n props.publicId = props.id;\n props.isFetching = false;\n props.latestFetchId = '';\n props.fetchRange = null;\n delete props.id;\n return props;\n}\n\nfunction reduceResourceSource (source, action, dateProfile, calendar) {\n switch (action.type) {\n case 'INIT':\n return createSource(calendar.opt('resources'), calendar);\n case 'RESET_RESOURCE_SOURCE':\n return createSource(action.resourceSourceInput, calendar, true);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n return handleRange(source, dateProfile.activeRange, calendar);\n case 'RECEIVE_RESOURCES':\n case 'RECEIVE_RESOURCE_ERROR':\n return receiveResponse(source, action.fetchId, action.fetchRange);\n case 'REFETCH_RESOURCES':\n return fetchSource(source, dateProfile.activeRange, calendar);\n default:\n return source;\n }\n}\nvar uid$1 = 0;\nfunction createSource(input, calendar, forceFetch) {\n if (input) {\n var source = parseResourceSource(input);\n if (forceFetch || !calendar.opt('refetchResourcesOnNavigate')) { // because assumes handleRange will do it later\n source = fetchSource(source, null, calendar);\n }\n return source;\n }\n return null;\n}\nfunction handleRange(source, activeRange, calendar) {\n if (calendar.opt('refetchResourcesOnNavigate') &&\n !doesSourceIgnoreRange(source) &&\n (!source.fetchRange || !rangesEqual(source.fetchRange, activeRange))) {\n return fetchSource(source, activeRange, calendar);\n }\n else {\n return source;\n }\n}\nfunction fetchSource(source, fetchRange, calendar) {\n var sourceDef = getResourceSourceDef(source.sourceDefId);\n var fetchId = String(uid$1++);\n sourceDef.fetch({\n resourceSource: source,\n calendar: calendar,\n range: fetchRange\n }, function (res) {\n // HACK\n // do before calling dispatch in case dispatch renders synchronously\n calendar.afterSizingTriggers._resourcesRendered = [null]; // fire once\n calendar.dispatch({\n type: 'RECEIVE_RESOURCES',\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawResources: res.rawResources\n });\n }, function (error) {\n calendar.dispatch({\n type: 'RECEIVE_RESOURCE_ERROR',\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign({}, source, { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(source, fetchId, fetchRange) {\n if (fetchId === source.latestFetchId) {\n return __assign({}, source, { isFetching: false, fetchRange: fetchRange });\n }\n return source;\n}\n\nvar RESOURCE_PROPS = {\n id: String,\n title: String,\n parentId: String,\n businessHours: null,\n children: null,\n extendedProps: null\n};\nvar PRIVATE_ID_PREFIX = '_fc:';\nvar uid$2 = 0;\n/*\nneeds a full store so that it can populate children too\n*/\nfunction parseResource(input, parentId, store, calendar) {\n if (parentId === void 0) { parentId = ''; }\n var leftovers0 = {};\n var props = refineProps(input, RESOURCE_PROPS, {}, leftovers0);\n var leftovers1 = {};\n var ui = processScopedUiProps('event', leftovers0, calendar, leftovers1);\n if (!props.id) {\n props.id = PRIVATE_ID_PREFIX + (uid$2++);\n }\n if (!props.parentId) { // give precedence to the parentId property\n props.parentId = parentId;\n }\n props.businessHours = props.businessHours ? parseBusinessHours(props.businessHours, calendar) : null;\n props.ui = ui;\n props.extendedProps = __assign({}, leftovers1, props.extendedProps);\n // help out ResourceApi from having user modify props\n Object.freeze(ui.classNames);\n Object.freeze(props.extendedProps);\n if (store[props.id]) ;\n else {\n store[props.id] = props;\n if (props.children) {\n for (var _i = 0, _a = props.children; _i < _a.length; _i++) {\n var childInput = _a[_i];\n parseResource(childInput, props.id, store, calendar);\n }\n delete props.children;\n }\n }\n return props;\n}\n/*\nTODO: use this in more places\n*/\nfunction getPublicId(id) {\n if (id.indexOf(PRIVATE_ID_PREFIX) === 0) {\n return '';\n }\n return id;\n}\n\nfunction reduceResourceStore (store, action, source, calendar) {\n switch (action.type) {\n case 'INIT':\n return {};\n case 'RECEIVE_RESOURCES':\n return receiveRawResources(store, action.rawResources, action.fetchId, source, calendar);\n case 'ADD_RESOURCE':\n return addResource(store, action.resourceHash);\n case 'REMOVE_RESOURCE':\n return removeResource(store, action.resourceId);\n case 'SET_RESOURCE_PROP':\n return setResourceProp(store, action.resourceId, action.propName, action.propValue);\n case 'RESET_RESOURCES':\n // must make the calendar think each resource is a new object :/\n return mapHash(store, function (resource) {\n return __assign({}, resource);\n });\n default:\n return store;\n }\n}\nfunction receiveRawResources(existingStore, inputs, fetchId, source, calendar) {\n if (source.latestFetchId === fetchId) {\n var nextStore = {};\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n parseResource(input, '', nextStore, calendar);\n }\n return nextStore;\n }\n else {\n return existingStore;\n }\n}\nfunction addResource(existingStore, additions) {\n // TODO: warn about duplicate IDs\n return __assign({}, existingStore, additions);\n}\nfunction removeResource(existingStore, resourceId) {\n var newStore = __assign({}, existingStore);\n delete newStore[resourceId];\n // promote children\n for (var childResourceId in newStore) { // a child, *maybe* but probably not\n if (newStore[childResourceId].parentId === resourceId) {\n newStore[childResourceId] = __assign({}, newStore[childResourceId], { parentId: '' });\n }\n }\n return newStore;\n}\nfunction setResourceProp(existingStore, resourceId, name, value) {\n var _a, _b;\n var existingResource = existingStore[resourceId];\n // TODO: sanitization\n if (existingResource) {\n return __assign({}, existingStore, (_a = {}, _a[resourceId] = __assign({}, existingResource, (_b = {}, _b[name] = value, _b)), _a));\n }\n else {\n return existingStore;\n }\n}\n\nfunction reduceResourceEntityExpansions(expansions, action) {\n var _a;\n switch (action.type) {\n case 'INIT':\n return {};\n case 'SET_RESOURCE_ENTITY_EXPANDED':\n return __assign({}, expansions, (_a = {}, _a[action.id] = action.isExpanded, _a));\n default:\n return expansions;\n }\n}\n\nfunction resourcesReducers (state, action, calendar) {\n var resourceSource = reduceResourceSource(state.resourceSource, action, state.dateProfile, calendar);\n var resourceStore = reduceResourceStore(state.resourceStore, action, resourceSource, calendar);\n var resourceEntityExpansions = reduceResourceEntityExpansions(state.resourceEntityExpansions, action);\n return __assign({}, state, { resourceSource: resourceSource,\n resourceStore: resourceStore,\n resourceEntityExpansions: resourceEntityExpansions });\n}\n\nvar RESOURCE_RELATED_PROPS = {\n resourceId: String,\n resourceIds: function (items) {\n return (items || []).map(function (item) {\n return String(item);\n });\n },\n resourceEditable: Boolean\n};\nfunction parseEventDef(def, props, leftovers) {\n var resourceRelatedProps = refineProps(props, RESOURCE_RELATED_PROPS, {}, leftovers);\n var resourceIds = resourceRelatedProps.resourceIds;\n if (resourceRelatedProps.resourceId) {\n resourceIds.push(resourceRelatedProps.resourceId);\n }\n def.resourceIds = resourceIds;\n def.resourceEditable = resourceRelatedProps.resourceEditable;\n}\n\nfunction transformDateSelectionJoin(hit0, hit1) {\n var resourceId0 = hit0.dateSpan.resourceId;\n var resourceId1 = hit1.dateSpan.resourceId;\n if (resourceId0 && resourceId1) {\n if (hit0.component.allowAcrossResources === false &&\n resourceId0 !== resourceId1) {\n return false;\n }\n else {\n return { resourceId: resourceId0 };\n }\n }\n}\n\nvar ResourceApi = /** @class */ (function () {\n function ResourceApi(calendar, rawResource) {\n this._calendar = calendar;\n this._resource = rawResource;\n }\n ResourceApi.prototype.setProp = function (name, value) {\n this._calendar.dispatch({\n type: 'SET_RESOURCE_PROP',\n resourceId: this._resource.id,\n propName: name,\n propValue: value\n });\n };\n ResourceApi.prototype.remove = function () {\n this._calendar.dispatch({\n type: 'REMOVE_RESOURCE',\n resourceId: this._resource.id\n });\n };\n ResourceApi.prototype.getParent = function () {\n var calendar = this._calendar;\n var parentId = this._resource.parentId;\n if (parentId) {\n return new ResourceApi(calendar, calendar.state.resourceSource[parentId]);\n }\n else {\n return null;\n }\n };\n ResourceApi.prototype.getChildren = function () {\n var thisResourceId = this._resource.id;\n var calendar = this._calendar;\n var resourceStore = calendar.state.resourceStore;\n var childApis = [];\n for (var resourceId in resourceStore) {\n if (resourceStore[resourceId].parentId === thisResourceId) {\n childApis.push(new ResourceApi(calendar, resourceStore[resourceId]));\n }\n }\n return childApis;\n };\n /*\n this is really inefficient!\n TODO: make EventApi::resourceIds a hash or keep an index in the Calendar's state\n */\n ResourceApi.prototype.getEvents = function () {\n var thisResourceId = this._resource.id;\n var calendar = this._calendar;\n var _a = calendar.state.eventStore, defs = _a.defs, instances = _a.instances;\n var eventApis = [];\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n var def = defs[instance.defId];\n if (def.resourceIds.indexOf(thisResourceId) !== -1) { // inefficient!!!\n eventApis.push(new EventApi(calendar, def, instance));\n }\n }\n return eventApis;\n };\n Object.defineProperty(ResourceApi.prototype, \"id\", {\n get: function () { return this._resource.id; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"title\", {\n get: function () { return this._resource.title; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventConstraint\", {\n get: function () { return this._resource.ui.constraints[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventOverlap\", {\n get: function () { return this._resource.ui.overlap; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventAllow\", {\n get: function () { return this._resource.ui.allows[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventBackgroundColor\", {\n get: function () { return this._resource.ui.backgroundColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventBorderColor\", {\n get: function () { return this._resource.ui.borderColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventTextColor\", {\n get: function () { return this._resource.ui.textColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"eventClassNames\", {\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get: function () { return this._resource.ui.classNames; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ResourceApi.prototype, \"extendedProps\", {\n get: function () { return this._resource.extendedProps; },\n enumerable: true,\n configurable: true\n });\n return ResourceApi;\n}());\n\nCalendar.prototype.addResource = function (input, scrollTo) {\n var _a;\n if (scrollTo === void 0) { scrollTo = true; }\n var resourceHash;\n var resource;\n if (input instanceof ResourceApi) {\n resource = input._resource;\n resourceHash = (_a = {}, _a[resource.id] = resource, _a);\n }\n else {\n resourceHash = {};\n resource = parseResource(input, '', resourceHash, this);\n }\n // HACK\n if (scrollTo) {\n this.component.view.addScroll({ forcedRowId: resource.id });\n }\n this.dispatch({\n type: 'ADD_RESOURCE',\n resourceHash: resourceHash\n });\n return new ResourceApi(this, resource);\n};\nCalendar.prototype.getResourceById = function (id) {\n id = String(id);\n if (this.state.resourceStore) { // guard against calendar with no resource functionality\n var rawResource = this.state.resourceStore[id];\n if (rawResource) {\n return new ResourceApi(this, rawResource);\n }\n }\n return null;\n};\nCalendar.prototype.getResources = function () {\n var resourceStore = this.state.resourceStore;\n var resourceApis = [];\n if (resourceStore) { // guard against calendar with no resource functionality\n for (var resourceId in resourceStore) {\n resourceApis.push(new ResourceApi(this, resourceStore[resourceId]));\n }\n }\n return resourceApis;\n};\nCalendar.prototype.getTopLevelResources = function () {\n var resourceStore = this.state.resourceStore;\n var resourceApis = [];\n if (resourceStore) { // guard against calendar with no resource functionality\n for (var resourceId in resourceStore) {\n if (!resourceStore[resourceId].parentId) {\n resourceApis.push(new ResourceApi(this, resourceStore[resourceId]));\n }\n }\n }\n return resourceApis;\n};\nCalendar.prototype.rerenderResources = function () {\n this.dispatch({\n type: 'RESET_RESOURCES'\n });\n};\nCalendar.prototype.refetchResources = function () {\n this.dispatch({\n type: 'REFETCH_RESOURCES'\n });\n};\nfunction transformDatePoint(dateSpan, calendar) {\n return dateSpan.resourceId ?\n { resource: calendar.getResourceById(dateSpan.resourceId) } :\n {};\n}\nfunction transformDateSpan(dateSpan, calendar) {\n return dateSpan.resourceId ?\n { resource: calendar.getResourceById(dateSpan.resourceId) } :\n {};\n}\n\n/*\nsplits things BASED OFF OF which resources they are associated with.\ncreates a '' entry which is when something has NO resource.\n*/\nvar ResourceSplitter = /** @class */ (function (_super) {\n __extends(ResourceSplitter, _super);\n function ResourceSplitter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResourceSplitter.prototype.getKeyInfo = function (props) {\n return __assign({ '': {} }, props.resourceStore // already has `ui` and `businessHours` keys!\n );\n };\n ResourceSplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n return [dateSpan.resourceId || ''];\n };\n ResourceSplitter.prototype.getKeysForEventDef = function (eventDef) {\n var resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n };\n return ResourceSplitter;\n}(Splitter));\n\nfunction isPropsValidWithResources(props, calendar) {\n var splitter = new ResourceSplitter();\n var sets = splitter.splitProps(__assign({}, props, { resourceStore: calendar.state.resourceStore }));\n for (var resourceId in sets) {\n var props_1 = sets[resourceId];\n // merge in event data from the non-resource segment\n if (resourceId && sets['']) { // current segment is not the non-resource one, and there IS a non-resource one\n props_1 = __assign({}, props_1, { eventStore: mergeEventStores(sets[''].eventStore, props_1.eventStore), eventUiBases: __assign({}, sets[''].eventUiBases, props_1.eventUiBases) });\n }\n if (!isPropsValid(props_1, calendar, { resourceId: resourceId }, filterConfig.bind(null, resourceId))) {\n return false;\n }\n }\n return true;\n}\nfunction filterConfig(resourceId, config) {\n return __assign({}, config, { constraints: filterConstraints(resourceId, config.constraints) });\n}\nfunction filterConstraints(resourceId, constraints) {\n return constraints.map(function (constraint) {\n var defs = constraint.defs;\n if (defs) { // we are dealing with an EventStore\n // if any of the events define constraints to resources that are NOT this resource,\n // then this resource is unconditionally prohibited, which is what a `false` value does.\n for (var defId in defs) {\n var resourceIds = defs[defId].resourceIds;\n if (resourceIds.length && resourceIds.indexOf(resourceId) === -1) { // TODO: use a hash?!!! (for other reasons too)\n return false;\n }\n }\n }\n return constraint;\n });\n}\n\nfunction transformExternalDef(dateSpan) {\n return dateSpan.resourceId ?\n { resourceId: dateSpan.resourceId } :\n {};\n}\n\nfunction transformEventResizeJoin(hit0, hit1) {\n var component = hit0.component;\n if (component.allowAcrossResources === false &&\n hit0.dateSpan.resourceId !== hit1.dateSpan.resourceId) {\n return false;\n }\n}\n\nEventApi.prototype.getResources = function () {\n var calendar = this._calendar;\n return this._def.resourceIds.map(function (resourceId) {\n return calendar.getResourceById(resourceId);\n });\n};\nEventApi.prototype.setResources = function (resources) {\n var resourceIds = [];\n // massage resources -> resourceIds\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\n var resource = resources_1[_i];\n var resourceId = null;\n if (typeof resource === 'string') {\n resourceId = resource;\n }\n else if (typeof resource === 'number') {\n resourceId = String(resource);\n }\n else if (resource instanceof ResourceApi) {\n resourceId = resource.id; // guaranteed to always have an ID. hmmm\n }\n else {\n console.warn('unknown resource type: ' + resource);\n }\n if (resourceId) {\n resourceIds.push(resourceId);\n }\n }\n this.mutate({\n standardProps: {\n resourceIds: resourceIds\n }\n });\n};\n\nvar RELEASE_DATE = '2019-08-10'; // for Scheduler\nvar UPGRADE_WINDOW = 365 + 7; // days. 1 week leeway, for tz shift reasons too\nvar LICENSE_INFO_URL = 'http://fullcalendar.io/scheduler/license/';\nvar PRESET_LICENSE_KEYS = [\n 'GPL-My-Project-Is-Open-Source',\n 'CC-Attribution-NonCommercial-NoDerivatives'\n];\nvar CSS = {\n position: 'absolute',\n 'z-index': 99999,\n bottom: '1px',\n left: '1px',\n background: '#eee',\n 'border-color': '#ddd',\n 'border-style': 'solid',\n 'border-width': '1px 1px 0 0',\n padding: '2px 4px',\n 'font-size': '12px',\n 'border-top-right-radius': '3px'\n};\nfunction injectLicenseWarning(containerEl, calendar) {\n var key = calendar.opt('schedulerLicenseKey');\n if (!isImmuneUrl(window.location.href) && !isValidKey(key)) {\n appendToElement(containerEl, '
' +\n 'Please use a valid license key. More Info' +\n '
');\n }\n}\n/*\nThis decryption is not meant to be bulletproof. Just a way to remind about an upgrade.\n*/\nfunction isValidKey(key) {\n if (PRESET_LICENSE_KEYS.indexOf(key) !== -1) {\n return true;\n }\n var parts = (key || '').match(/^(\\d+)\\-fcs\\-(\\d+)$/);\n if (parts && (parts[1].length === 10)) {\n var purchaseDate = new Date(parseInt(parts[2], 10) * 1000);\n var releaseDate = new Date(config.mockSchedulerReleaseDate || RELEASE_DATE);\n if (isValidDate(releaseDate)) { // token won't be replaced in dev mode\n var minPurchaseDate = addDays(releaseDate, -UPGRADE_WINDOW);\n if (minPurchaseDate < purchaseDate) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isImmuneUrl(url) {\n return /\\w+\\:\\/\\/fullcalendar\\.io\\/|\\/examples\\/[\\w-]+\\.html$/.test(url);\n}\n\nvar optionChangeHandlers = {\n resources: handleResources\n};\nfunction handleResources(newSourceInput, calendar, deepEqual) {\n var oldSourceInput = calendar.state.resourceSource._raw;\n if (!deepEqual(oldSourceInput, newSourceInput)) {\n calendar.dispatch({\n type: 'RESET_RESOURCE_SOURCE',\n resourceSourceInput: newSourceInput\n });\n }\n}\n\nregisterResourceSourceDef({\n ignoreRange: true,\n parseMeta: function (raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n else if (Array.isArray(raw.resources)) {\n return raw.resources;\n }\n return null;\n },\n fetch: function (arg, successCallback) {\n successCallback({\n rawResources: arg.resourceSource.meta\n });\n }\n});\n\nregisterResourceSourceDef({\n parseMeta: function (raw) {\n if (typeof raw === 'function') {\n return raw;\n }\n else if (typeof raw.resources === 'function') {\n return raw.resources;\n }\n return null;\n },\n fetch: function (arg, success, failure) {\n var dateEnv = arg.calendar.dateEnv;\n var func = arg.resourceSource.meta;\n var publicArg = {};\n if (arg.range) {\n publicArg = {\n start: dateEnv.toDate(arg.range.start),\n end: dateEnv.toDate(arg.range.end),\n startStr: dateEnv.formatIso(arg.range.start),\n endStr: dateEnv.formatIso(arg.range.end),\n timeZone: dateEnv.timeZone\n };\n }\n // TODO: make more dry with EventSourceFunc\n // TODO: accept a response?\n unpromisify(func.bind(null, publicArg), function (rawResources) {\n success({ rawResources: rawResources }); // needs an object response\n }, failure // send errorObj directly to failure callback\n );\n }\n});\n\nregisterResourceSourceDef({\n parseMeta: function (raw) {\n if (typeof raw === 'string') {\n raw = { url: raw };\n }\n else if (!raw || typeof raw !== 'object' || !raw.url) {\n return null;\n }\n return {\n url: raw.url,\n method: (raw.method || 'GET').toUpperCase(),\n extraParams: raw.extraParams\n };\n },\n fetch: function (arg, successCallback, failureCallback) {\n var meta = arg.resourceSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.calendar);\n requestJson(meta.method, meta.url, requestParams, function (rawResources, xhr) {\n successCallback({ rawResources: rawResources, xhr: xhr });\n }, function (message, xhr) {\n failureCallback({ message: message, xhr: xhr });\n });\n }\n});\n// TODO: somehow consolidate with event json feed\nfunction buildRequestParams(meta, range, calendar) {\n var dateEnv = calendar.dateEnv;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n if (range) {\n // startParam = meta.startParam\n // if (startParam == null) {\n startParam = calendar.opt('startParam');\n // }\n // endParam = meta.endParam\n // if (endParam == null) {\n endParam = calendar.opt('endParam');\n // }\n // timeZoneParam = meta.timeZoneParam\n // if (timeZoneParam == null) {\n timeZoneParam = calendar.opt('timeZoneParam');\n // }\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n __assign(params, customRequestParams);\n return params;\n}\n\nfunction buildResourceTextFunc(resourceTextSetting, calendar) {\n if (typeof resourceTextSetting === 'function') {\n return function (resource) {\n return resourceTextSetting(new ResourceApi(calendar, resource));\n };\n }\n else {\n return function (resource) {\n return resource.title || getPublicId(resource.id);\n };\n }\n}\n\nvar ResourceDayHeader = /** @class */ (function (_super) {\n __extends(ResourceDayHeader, _super);\n function ResourceDayHeader(context, parentEl) {\n var _this = _super.call(this, context) || this;\n _this.datesAboveResources = _this.opt('datesAboveResources');\n _this.resourceTextFunc = buildResourceTextFunc(_this.opt('resourceText'), _this.calendar);\n parentEl.innerHTML = ''; // because might be nbsp\n parentEl.appendChild(_this.el = htmlToElement('
' +\n '' +\n '' +\n '
' +\n '
'));\n _this.thead = _this.el.querySelector('thead');\n return _this;\n }\n ResourceDayHeader.prototype.destroy = function () {\n removeElement(this.el);\n };\n ResourceDayHeader.prototype.render = function (props) {\n var html;\n this.dateFormat = createFormatter(this.opt('columnHeaderFormat') ||\n computeFallbackHeaderFormat(props.datesRepDistinctDays, props.dates.length));\n if (props.dates.length === 1) {\n html = this.renderResourceRow(props.resources);\n }\n else {\n if (this.datesAboveResources) {\n html = this.renderDayAndResourceRows(props.dates, props.resources);\n }\n else {\n html = this.renderResourceAndDayRows(props.resources, props.dates);\n }\n }\n this.thead.innerHTML = html;\n this.processResourceEls(props.resources);\n };\n ResourceDayHeader.prototype.renderResourceRow = function (resources) {\n var _this = this;\n var cellHtmls = resources.map(function (resource) {\n return _this.renderResourceCell(resource, 1);\n });\n return this.buildTr(cellHtmls);\n };\n ResourceDayHeader.prototype.renderDayAndResourceRows = function (dates, resources) {\n var dateHtmls = [];\n var resourceHtmls = [];\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n dateHtmls.push(this.renderDateCell(date, resources.length));\n for (var _a = 0, resources_1 = resources; _a < resources_1.length; _a++) {\n var resource = resources_1[_a];\n resourceHtmls.push(this.renderResourceCell(resource, 1, date));\n }\n }\n return this.buildTr(dateHtmls) +\n this.buildTr(resourceHtmls);\n };\n ResourceDayHeader.prototype.renderResourceAndDayRows = function (resources, dates) {\n var resourceHtmls = [];\n var dateHtmls = [];\n for (var _i = 0, resources_2 = resources; _i < resources_2.length; _i++) {\n var resource = resources_2[_i];\n resourceHtmls.push(this.renderResourceCell(resource, dates.length));\n for (var _a = 0, dates_2 = dates; _a < dates_2.length; _a++) {\n var date = dates_2[_a];\n dateHtmls.push(this.renderDateCell(date, 1, resource));\n }\n }\n return this.buildTr(resourceHtmls) +\n this.buildTr(dateHtmls);\n };\n // Cell Rendering Utils\n // ----------------------------------------------------------------------------------------------\n // a cell with the resource name. might be associated with a specific day\n ResourceDayHeader.prototype.renderResourceCell = function (resource, colspan, date) {\n var dateEnv = this.dateEnv;\n return ' 1 ?\n ' colspan=\"' + colspan + '\"' :\n '') +\n '>' +\n htmlEscape(this.resourceTextFunc(resource)) +\n '';\n };\n // a cell with date text. might have a resource associated with it\n ResourceDayHeader.prototype.renderDateCell = function (date, colspan, resource) {\n var props = this.props;\n return renderDateCell(date, props.dateProfile, props.datesRepDistinctDays, props.dates.length * props.resources.length, this.dateFormat, this.context, colspan, resource ? 'data-resource-id=\"' + resource.id + '\"' : '');\n };\n ResourceDayHeader.prototype.buildTr = function (cellHtmls) {\n if (!cellHtmls.length) {\n cellHtmls = [' '];\n }\n if (this.props.renderIntroHtml) {\n cellHtmls = [this.props.renderIntroHtml()].concat(cellHtmls);\n }\n if (this.isRtl) {\n cellHtmls.reverse();\n }\n return '' +\n cellHtmls.join('') +\n '';\n };\n // Post-rendering\n // ----------------------------------------------------------------------------------------------\n // given a container with already rendered resource cells\n ResourceDayHeader.prototype.processResourceEls = function (resources) {\n var _this = this;\n var view = this.view;\n findElements(this.thead, '.fc-resource-cell').forEach(function (node, col) {\n col = col % resources.length;\n if (_this.isRtl) {\n col = resources.length - 1 - col;\n }\n var resource = resources[col];\n view.publiclyTrigger('resourceRender', [\n {\n resource: new ResourceApi(_this.calendar, resource),\n el: node,\n view: view\n }\n ]);\n });\n };\n return ResourceDayHeader;\n}(Component));\n\nvar AbstractResourceDayTable = /** @class */ (function () {\n function AbstractResourceDayTable(dayTable, resources) {\n this.dayTable = dayTable;\n this.resources = resources;\n this.resourceIndex = new ResourceIndex(resources);\n this.rowCnt = dayTable.rowCnt;\n this.colCnt = dayTable.colCnt * resources.length;\n this.cells = this.buildCells();\n }\n AbstractResourceDayTable.prototype.buildCells = function () {\n var _a = this, rowCnt = _a.rowCnt, dayTable = _a.dayTable, resources = _a.resources;\n var rows = [];\n for (var row = 0; row < rowCnt; row++) {\n var rowCells = [];\n for (var dateCol = 0; dateCol < dayTable.colCnt; dateCol++) {\n for (var resourceCol = 0; resourceCol < resources.length; resourceCol++) {\n var resource = resources[resourceCol];\n var htmlAttrs = 'data-resource-id=\"' + resource.id + '\"';\n rowCells[this.computeCol(dateCol, resourceCol)] = {\n date: dayTable.cells[row][dateCol].date,\n resource: resource,\n htmlAttrs: htmlAttrs\n };\n }\n }\n rows.push(rowCells);\n }\n return rows;\n };\n return AbstractResourceDayTable;\n}());\n/*\nresources over dates\n*/\nvar ResourceDayTable = /** @class */ (function (_super) {\n __extends(ResourceDayTable, _super);\n function ResourceDayTable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResourceDayTable.prototype.computeCol = function (dateI, resourceI) {\n return resourceI * this.dayTable.colCnt + dateI;\n };\n /*\n all date ranges are intact\n */\n ResourceDayTable.prototype.computeColRanges = function (dateStartI, dateEndI, resourceI) {\n return [\n {\n firstCol: this.computeCol(dateStartI, resourceI),\n lastCol: this.computeCol(dateEndI, resourceI),\n isStart: true,\n isEnd: true\n }\n ];\n };\n return ResourceDayTable;\n}(AbstractResourceDayTable));\n/*\ndates over resources\n*/\nvar DayResourceTable = /** @class */ (function (_super) {\n __extends(DayResourceTable, _super);\n function DayResourceTable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayResourceTable.prototype.computeCol = function (dateI, resourceI) {\n return dateI * this.resources.length + resourceI;\n };\n /*\n every single day is broken up\n */\n DayResourceTable.prototype.computeColRanges = function (dateStartI, dateEndI, resourceI) {\n var segs = [];\n for (var i = dateStartI; i <= dateEndI; i++) {\n var col = this.computeCol(i, resourceI);\n segs.push({\n firstCol: col,\n lastCol: col,\n isStart: i === dateStartI,\n isEnd: i === dateEndI\n });\n }\n return segs;\n };\n return DayResourceTable;\n}(AbstractResourceDayTable));\nvar ResourceIndex = /** @class */ (function () {\n function ResourceIndex(resources) {\n var indicesById = {};\n var ids = [];\n for (var i = 0; i < resources.length; i++) {\n var id = resources[i].id;\n ids.push(id);\n indicesById[id] = i;\n }\n this.ids = ids;\n this.indicesById = indicesById;\n this.length = resources.length;\n }\n return ResourceIndex;\n}());\n/*\nTODO: just use ResourceHash somehow? could then use the generic ResourceSplitter\n*/\nvar VResourceSplitter = /** @class */ (function (_super) {\n __extends(VResourceSplitter, _super);\n function VResourceSplitter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VResourceSplitter.prototype.getKeyInfo = function (props) {\n var resourceDayTable = props.resourceDayTable;\n var hash = mapHash(resourceDayTable.resourceIndex.indicesById, function (i) {\n return resourceDayTable.resources[i]; // has `ui` AND `businessHours` keys!\n }); // :(\n hash[''] = {};\n return hash;\n };\n VResourceSplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n return [dateSpan.resourceId || ''];\n };\n VResourceSplitter.prototype.getKeysForEventDef = function (eventDef) {\n var resourceIds = eventDef.resourceIds;\n if (!resourceIds.length) {\n return [''];\n }\n return resourceIds;\n };\n return VResourceSplitter;\n}(Splitter));\n// joiner\nvar NO_SEGS = []; // for memoizing\nvar VResourceJoiner = /** @class */ (function () {\n function VResourceJoiner() {\n this.joinDateSelection = memoize(this.joinSegs);\n this.joinBusinessHours = memoize(this.joinSegs);\n this.joinFgEvents = memoize(this.joinSegs);\n this.joinBgEvents = memoize(this.joinSegs);\n this.joinEventDrags = memoize(this.joinInteractions);\n this.joinEventResizes = memoize(this.joinInteractions);\n }\n /*\n propSets also has a '' key for things with no resource\n */\n VResourceJoiner.prototype.joinProps = function (propSets, resourceDayTable) {\n var dateSelectionSets = [];\n var businessHoursSets = [];\n var fgEventSets = [];\n var bgEventSets = [];\n var eventDrags = [];\n var eventResizes = [];\n var eventSelection = '';\n var keys = resourceDayTable.resourceIndex.ids.concat(['']); // add in the all-resource key\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var props = propSets[key];\n dateSelectionSets.push(props.dateSelectionSegs);\n businessHoursSets.push(key ? props.businessHourSegs : NO_SEGS); // don't include redundant all-resource businesshours\n fgEventSets.push(key ? props.fgEventSegs : NO_SEGS); // don't include fg all-resource segs\n bgEventSets.push(props.bgEventSegs);\n eventDrags.push(props.eventDrag);\n eventResizes.push(props.eventResize);\n eventSelection = eventSelection || props.eventSelection;\n }\n return {\n dateSelectionSegs: this.joinDateSelection.apply(this, [resourceDayTable].concat(dateSelectionSets)),\n businessHourSegs: this.joinBusinessHours.apply(this, [resourceDayTable].concat(businessHoursSets)),\n fgEventSegs: this.joinFgEvents.apply(this, [resourceDayTable].concat(fgEventSets)),\n bgEventSegs: this.joinBgEvents.apply(this, [resourceDayTable].concat(bgEventSets)),\n eventDrag: this.joinEventDrags.apply(this, [resourceDayTable].concat(eventDrags)),\n eventResize: this.joinEventResizes.apply(this, [resourceDayTable].concat(eventResizes)),\n eventSelection: eventSelection\n };\n };\n VResourceJoiner.prototype.joinSegs = function (resourceDayTable) {\n var segGroups = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n segGroups[_i - 1] = arguments[_i];\n }\n var resourceCnt = resourceDayTable.resources.length;\n var transformedSegs = [];\n for (var i = 0; i < resourceCnt; i++) {\n for (var _a = 0, _b = segGroups[i]; _a < _b.length; _a++) {\n var seg = _b[_a];\n transformedSegs.push.apply(transformedSegs, this.transformSeg(seg, resourceDayTable, i));\n }\n for (var _c = 0, _d = segGroups[resourceCnt]; _c < _d.length; _c++) { // one beyond. the all-resource\n var seg = _d[_c];\n transformedSegs.push.apply(// one beyond. the all-resource\n transformedSegs, this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n };\n /*\n for expanding non-resource segs to all resources.\n only for public use.\n no memoizing.\n */\n VResourceJoiner.prototype.expandSegs = function (resourceDayTable, segs) {\n var resourceCnt = resourceDayTable.resources.length;\n var transformedSegs = [];\n for (var i = 0; i < resourceCnt; i++) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n transformedSegs.push.apply(transformedSegs, this.transformSeg(seg, resourceDayTable, i));\n }\n }\n return transformedSegs;\n };\n VResourceJoiner.prototype.joinInteractions = function (resourceDayTable) {\n var interactions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n interactions[_i - 1] = arguments[_i];\n }\n var resourceCnt = resourceDayTable.resources.length;\n var affectedInstances = {};\n var transformedSegs = [];\n var isEvent = false;\n var sourceSeg = null;\n for (var i = 0; i < resourceCnt; i++) {\n var interaction = interactions[i];\n if (interaction) {\n for (var _a = 0, _b = interaction.segs; _a < _b.length; _a++) {\n var seg = _b[_a];\n transformedSegs.push.apply(transformedSegs, this.transformSeg(seg, resourceDayTable, i) // TODO: templateify Interaction::segs\n );\n }\n __assign(affectedInstances, interaction.affectedInstances);\n isEvent = isEvent || interaction.isEvent;\n sourceSeg = sourceSeg || interaction.sourceSeg;\n }\n if (interactions[resourceCnt]) { // one beyond. the all-resource\n for (var _c = 0, _d = interactions[resourceCnt].segs; _c < _d.length; _c++) {\n var seg = _d[_c];\n transformedSegs.push.apply(transformedSegs, this.transformSeg(seg, resourceDayTable, i) // TODO: templateify Interaction::segs\n );\n }\n }\n }\n return {\n affectedInstances: affectedInstances,\n segs: transformedSegs,\n isEvent: isEvent,\n sourceSeg: sourceSeg\n };\n };\n return VResourceJoiner;\n}());\n\n/*\ndoesn't accept grouping\n*/\nfunction flattenResources(resourceStore, orderSpecs) {\n return buildRowNodes(resourceStore, [], orderSpecs, false, {}, true)\n .map(function (node) {\n return node.resource;\n });\n}\nfunction buildRowNodes(resourceStore, groupSpecs, orderSpecs, isVGrouping, expansions, expansionDefault) {\n var complexNodes = buildHierarchy(resourceStore, isVGrouping ? -1 : 1, groupSpecs, orderSpecs);\n var flatNodes = [];\n flattenNodes(complexNodes, flatNodes, isVGrouping, [], 0, expansions, expansionDefault);\n return flatNodes;\n}\nfunction flattenNodes(complexNodes, res, isVGrouping, rowSpans, depth, expansions, expansionDefault) {\n for (var i = 0; i < complexNodes.length; i++) {\n var complexNode = complexNodes[i];\n var group = complexNode.group;\n if (group) {\n if (isVGrouping) {\n var firstRowIndex = res.length;\n var rowSpanIndex = rowSpans.length;\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans.concat(0), depth, expansions, expansionDefault);\n if (firstRowIndex < res.length) {\n var firstRow = res[firstRowIndex];\n var firstRowSpans = firstRow.rowSpans = firstRow.rowSpans.slice();\n firstRowSpans[rowSpanIndex] = res.length - firstRowIndex;\n }\n }\n else {\n var id = group.spec.field + ':' + group.value;\n var isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({ id: id, group: group, isExpanded: isExpanded });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n else if (complexNode.resource) {\n var id = complexNode.resource.id;\n var isExpanded = expansions[id] != null ? expansions[id] : expansionDefault;\n res.push({\n id: id,\n rowSpans: rowSpans,\n depth: depth,\n isExpanded: isExpanded,\n hasChildren: Boolean(complexNode.children.length),\n resource: complexNode.resource,\n resourceFields: complexNode.resourceFields\n });\n if (isExpanded) {\n flattenNodes(complexNode.children, res, isVGrouping, rowSpans, depth + 1, expansions, expansionDefault);\n }\n }\n }\n}\nfunction buildHierarchy(resourceStore, maxDepth, groupSpecs, orderSpecs) {\n var resourceNodes = buildResourceNodes(resourceStore, orderSpecs);\n var builtNodes = [];\n for (var resourceId in resourceNodes) {\n var resourceNode = resourceNodes[resourceId];\n if (!resourceNode.resource.parentId) {\n insertResourceNode(resourceNode, builtNodes, groupSpecs, 0, maxDepth, orderSpecs);\n }\n }\n return builtNodes;\n}\nfunction buildResourceNodes(resourceStore, orderSpecs) {\n var nodeHash = {};\n for (var resourceId in resourceStore) {\n var resource = resourceStore[resourceId];\n nodeHash[resourceId] = {\n resource: resource,\n resourceFields: buildResourceFields(resource),\n children: []\n };\n }\n for (var resourceId in resourceStore) {\n var resource = resourceStore[resourceId];\n if (resource.parentId) {\n var parentNode = nodeHash[resource.parentId];\n if (parentNode) {\n insertResourceNodeInSiblings(nodeHash[resourceId], parentNode.children, orderSpecs);\n }\n }\n }\n return nodeHash;\n}\nfunction insertResourceNode(resourceNode, nodes, groupSpecs, depth, maxDepth, orderSpecs) {\n if (groupSpecs.length && (maxDepth === -1 || depth <= maxDepth)) {\n var groupNode = ensureGroupNodes(resourceNode, nodes, groupSpecs[0]);\n insertResourceNode(resourceNode, groupNode.children, groupSpecs.slice(1), depth + 1, maxDepth, orderSpecs);\n }\n else {\n insertResourceNodeInSiblings(resourceNode, nodes, orderSpecs);\n }\n}\nfunction ensureGroupNodes(resourceNode, nodes, groupSpec) {\n var groupValue = resourceNode.resourceFields[groupSpec.field];\n var groupNode;\n var newGroupIndex;\n // find an existing group that matches, or determine the position for a new group\n if (groupSpec.order) {\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex++) {\n var node = nodes[newGroupIndex];\n if (node.group) {\n var cmp = flexibleCompare(groupValue, node.group.value) * groupSpec.order;\n if (cmp === 0) {\n groupNode = node;\n break;\n }\n else if (cmp < 0) {\n break;\n }\n }\n }\n }\n else { // the groups are unordered\n for (newGroupIndex = 0; newGroupIndex < nodes.length; newGroupIndex++) {\n var node = nodes[newGroupIndex];\n if (node.group && groupValue === node.group.value) {\n groupNode = node;\n break;\n }\n }\n }\n if (!groupNode) {\n groupNode = {\n group: {\n value: groupValue,\n spec: groupSpec\n },\n children: []\n };\n nodes.splice(newGroupIndex, 0, groupNode);\n }\n return groupNode;\n}\nfunction insertResourceNodeInSiblings(resourceNode, siblings, orderSpecs) {\n var i;\n for (i = 0; i < siblings.length; i++) {\n var cmp = compareByFieldSpecs(siblings[i].resourceFields, resourceNode.resourceFields, orderSpecs);\n if (cmp > 0) { // went 1 past. insert at i\n break;\n }\n }\n siblings.splice(i, 0, resourceNode);\n}\nfunction buildResourceFields(resource) {\n var obj = __assign({}, resource.extendedProps, resource.ui, resource);\n delete obj.ui;\n delete obj.extendedProps;\n return obj;\n}\nfunction isGroupsEqual(group0, group1) {\n return group0.spec === group1.spec && group0.value === group1.value;\n}\n\nvar main = createPlugin({\n reducers: [resourcesReducers],\n eventDefParsers: [parseEventDef],\n isDraggableTransformers: [transformIsDraggable],\n eventDragMutationMassagers: [massageEventDragMutation],\n eventDefMutationAppliers: [applyEventDefMutation],\n dateSelectionTransformers: [transformDateSelectionJoin],\n datePointTransforms: [transformDatePoint],\n dateSpanTransforms: [transformDateSpan],\n viewPropsTransformers: [ResourceDataAdder, ResourceEventConfigAdder],\n isPropsValid: isPropsValidWithResources,\n externalDefTransforms: [transformExternalDef],\n eventResizeJoinTransforms: [transformEventResizeJoin],\n viewContainerModifiers: [injectLicenseWarning],\n eventDropTransformers: [transformEventDrop],\n optionChangeHandlers: optionChangeHandlers\n});\n\nexport default main;\nexport { AbstractResourceDayTable, DayResourceTable, ResourceApi, ResourceDayHeader, ResourceDayTable, ResourceSplitter, VResourceJoiner, VResourceSplitter, buildResourceFields, buildResourceTextFunc, buildRowNodes, flattenResources, isGroupsEqual };\n","/*!\nFullCalendar Resource Day Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/scheduler\n(c) 2019 Adam Shaw\n*/\n\nimport { mapHash, DateComponent, memoize, parseFieldSpecs, createPlugin } from '@fullcalendar/core';\nimport ResourceCommonPlugin, { VResourceSplitter, VResourceJoiner, flattenResources, ResourceDayHeader, DayResourceTable, ResourceDayTable } from '@fullcalendar/resource-common';\nimport DayGridPlugin, { DayGridSlicer, AbstractDayGridView, buildBasicDayTable } from '@fullcalendar/daygrid';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar ResourceDayGrid = /** @class */ (function (_super) {\n __extends(ResourceDayGrid, _super);\n function ResourceDayGrid(context, dayGrid) {\n var _this = _super.call(this, context, dayGrid.el) || this;\n _this.splitter = new VResourceSplitter();\n _this.slicers = {};\n _this.joiner = new ResourceDayGridJoiner();\n _this.dayGrid = dayGrid;\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.dayGrid.el\n });\n return _this;\n }\n ResourceDayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n ResourceDayGrid.prototype.render = function (props) {\n var _this = this;\n var dayGrid = this.dayGrid;\n var dateProfile = props.dateProfile, resourceDayTable = props.resourceDayTable, nextDayThreshold = props.nextDayThreshold;\n var splitProps = this.splitter.splitProps(props);\n this.slicers = mapHash(splitProps, function (split, resourceId) {\n return _this.slicers[resourceId] || new DayGridSlicer();\n });\n var slicedProps = mapHash(this.slicers, function (slicer, resourceId) {\n return slicer.sliceProps(splitProps[resourceId], dateProfile, nextDayThreshold, dayGrid, resourceDayTable.dayTable);\n });\n dayGrid.allowAcrossResources = resourceDayTable.dayTable.colCnt === 1;\n dayGrid.receiveProps(__assign({}, this.joiner.joinProps(slicedProps, resourceDayTable), { dateProfile: dateProfile, cells: resourceDayTable.cells, isRigid: props.isRigid }));\n };\n ResourceDayGrid.prototype.buildPositionCaches = function () {\n this.dayGrid.buildPositionCaches();\n };\n ResourceDayGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.dayGrid,\n dateSpan: {\n range: rawHit.dateSpan.range,\n allDay: rawHit.dateSpan.allDay,\n resourceId: this.props.resourceDayTable.cells[rawHit.row][rawHit.col].resource.id\n },\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return ResourceDayGrid;\n}(DateComponent));\nvar ResourceDayGridJoiner = /** @class */ (function (_super) {\n __extends(ResourceDayGridJoiner, _super);\n function ResourceDayGridJoiner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResourceDayGridJoiner.prototype.transformSeg = function (seg, resourceDayTable, resourceI) {\n var colRanges = resourceDayTable.computeColRanges(seg.firstCol, seg.lastCol, resourceI);\n return colRanges.map(function (colRange) {\n return __assign({}, seg, colRange, { isStart: seg.isStart && colRange.isStart, isEnd: seg.isEnd && colRange.isEnd });\n });\n };\n return ResourceDayGridJoiner;\n}(VResourceJoiner));\n\nvar ResourceDayGridView = /** @class */ (function (_super) {\n __extends(ResourceDayGridView, _super);\n function ResourceDayGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.flattenResources = memoize(flattenResources);\n _this.buildResourceDayTable = memoize(buildResourceDayTable);\n _this.resourceOrderSpecs = parseFieldSpecs(_this.opt('resourceOrder'));\n if (_this.opt('columnHeader')) {\n _this.header = new ResourceDayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.resourceDayGrid = new ResourceDayGrid(context, _this.dayGrid);\n return _this;\n }\n ResourceDayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.resourceDayGrid.destroy();\n };\n ResourceDayGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props); // for flags for updateSize\n var resources = this.flattenResources(props.resourceStore, this.resourceOrderSpecs);\n var resourceDayTable = this.buildResourceDayTable(this.props.dateProfile, this.dateProfileGenerator, resources, this.opt('datesAboveResources'));\n if (this.header) {\n this.header.receiveProps({\n resources: resources,\n dates: resourceDayTable.dayTable.headerDates,\n dateProfile: props.dateProfile,\n datesRepDistinctDays: true,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.resourceDayGrid.receiveProps({\n dateProfile: props.dateProfile,\n resourceDayTable: resourceDayTable,\n businessHours: props.businessHours,\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isRigid: this.hasRigidRows(),\n nextDayThreshold: this.nextDayThreshold\n });\n };\n ResourceDayGridView.needsResourceData = true; // for ResourceViewProps\n return ResourceDayGridView;\n}(AbstractDayGridView));\nfunction buildResourceDayTable(dateProfile, dateProfileGenerator, resources, datesAboveResources) {\n var dayTable = buildBasicDayTable(dateProfile, dateProfileGenerator);\n return datesAboveResources ?\n new DayResourceTable(dayTable, resources) :\n new ResourceDayTable(dayTable, resources);\n}\n\nvar main = createPlugin({\n deps: [ResourceCommonPlugin, DayGridPlugin],\n defaultView: 'resourceDayGridDay',\n views: {\n resourceDayGrid: ResourceDayGridView,\n resourceDayGridDay: {\n type: 'resourceDayGrid',\n duration: { days: 1 }\n },\n resourceDayGridWeek: {\n type: 'resourceDayGrid',\n duration: { weeks: 1 }\n },\n resourceDayGridMonth: {\n type: 'resourceDayGrid',\n duration: { months: 1 },\n // TODO: wish we didn't have to C&P from dayGrid's file\n monthMode: true,\n fixedWeekCount: true\n }\n }\n});\n\nexport default main;\nexport { ResourceDayGrid, ResourceDayGridView };\n","/*!\nFullCalendar Resource Time Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/scheduler\n(c) 2019 Adam Shaw\n*/\n\nimport { memoize, mapHash, DateComponent, parseFieldSpecs, createPlugin } from '@fullcalendar/core';\nimport ResourceCommonPlugin, { VResourceSplitter, VResourceJoiner, flattenResources, ResourceDayHeader, DayResourceTable, ResourceDayTable } from '@fullcalendar/resource-common';\nimport TimeGridPlugin, { buildDayRanges, TimeGridSlicer, AbstractTimeGridView, buildDayTable } from '@fullcalendar/timegrid';\nimport { ResourceDayGrid } from '@fullcalendar/resource-daygrid';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar ResourceTimeGrid = /** @class */ (function (_super) {\n __extends(ResourceTimeGrid, _super);\n function ResourceTimeGrid(context, timeGrid) {\n var _this = _super.call(this, context, timeGrid.el) || this;\n _this.buildDayRanges = memoize(buildDayRanges);\n _this.splitter = new VResourceSplitter();\n _this.slicers = {};\n _this.joiner = new ResourceTimeGridJoiner();\n _this.timeGrid = timeGrid;\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.timeGrid.el\n });\n return _this;\n }\n ResourceTimeGrid.prototype.destroy = function () {\n this.calendar.unregisterInteractiveComponent(this);\n };\n ResourceTimeGrid.prototype.render = function (props) {\n var _this = this;\n var timeGrid = this.timeGrid;\n var dateProfile = props.dateProfile, resourceDayTable = props.resourceDayTable;\n var dayRanges = this.dayRanges = this.buildDayRanges(resourceDayTable.dayTable, dateProfile, this.dateEnv);\n var splitProps = this.splitter.splitProps(props);\n this.slicers = mapHash(splitProps, function (split, resourceId) {\n return _this.slicers[resourceId] || new TimeGridSlicer();\n });\n var slicedProps = mapHash(this.slicers, function (slicer, resourceId) {\n return slicer.sliceProps(splitProps[resourceId], dateProfile, null, timeGrid, dayRanges);\n });\n timeGrid.allowAcrossResources = dayRanges.length === 1;\n timeGrid.receiveProps(__assign({}, this.joiner.joinProps(slicedProps, resourceDayTable), { dateProfile: dateProfile, cells: resourceDayTable.cells[0] }));\n };\n ResourceTimeGrid.prototype.renderNowIndicator = function (date) {\n var timeGrid = this.timeGrid;\n var resourceDayTable = this.props.resourceDayTable;\n var nonResourceSegs = this.slicers[''].sliceNowDate(date, timeGrid, this.dayRanges);\n var segs = this.joiner.expandSegs(resourceDayTable, nonResourceSegs);\n timeGrid.renderNowIndicator(segs, date);\n };\n ResourceTimeGrid.prototype.buildPositionCaches = function () {\n this.timeGrid.buildPositionCaches();\n };\n ResourceTimeGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.timeGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.timeGrid,\n dateSpan: {\n range: rawHit.dateSpan.range,\n allDay: rawHit.dateSpan.allDay,\n resourceId: this.props.resourceDayTable.cells[0][rawHit.col].resource.id\n },\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return ResourceTimeGrid;\n}(DateComponent));\nvar ResourceTimeGridJoiner = /** @class */ (function (_super) {\n __extends(ResourceTimeGridJoiner, _super);\n function ResourceTimeGridJoiner() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResourceTimeGridJoiner.prototype.transformSeg = function (seg, resourceDayTable, resourceI) {\n return [\n __assign({}, seg, { col: resourceDayTable.computeCol(seg.col, resourceI) })\n ];\n };\n return ResourceTimeGridJoiner;\n}(VResourceJoiner));\n\nvar ResourceTimeGridView = /** @class */ (function (_super) {\n __extends(ResourceTimeGridView, _super);\n function ResourceTimeGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.flattenResources = memoize(flattenResources);\n _this.buildResourceDayTable = memoize(buildResourceDayTable);\n _this.resourceOrderSpecs = parseFieldSpecs(_this.opt('resourceOrder'));\n if (_this.opt('columnHeader')) {\n _this.header = new ResourceDayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.resourceTimeGrid = new ResourceTimeGrid(context, _this.timeGrid);\n if (_this.dayGrid) {\n _this.resourceDayGrid = new ResourceDayGrid(context, _this.dayGrid);\n }\n return _this;\n }\n ResourceTimeGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.resourceTimeGrid.destroy();\n if (this.resourceDayGrid) {\n this.resourceDayGrid.destroy();\n }\n };\n ResourceTimeGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props); // for flags for updateSize\n var splitProps = this.splitter.splitProps(props);\n var resources = this.flattenResources(props.resourceStore, this.resourceOrderSpecs);\n var resourceDayTable = this.buildResourceDayTable(this.props.dateProfile, this.dateProfileGenerator, resources, this.opt('datesAboveResources'));\n if (this.header) {\n this.header.receiveProps({\n resources: resources,\n dates: resourceDayTable.dayTable.headerDates,\n dateProfile: props.dateProfile,\n datesRepDistinctDays: true,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.resourceTimeGrid.receiveProps(__assign({}, splitProps['timed'], { dateProfile: props.dateProfile, resourceDayTable: resourceDayTable }));\n if (this.resourceDayGrid) {\n this.resourceDayGrid.receiveProps(__assign({}, splitProps['allDay'], { dateProfile: props.dateProfile, resourceDayTable: resourceDayTable, isRigid: false, nextDayThreshold: this.nextDayThreshold }));\n }\n };\n ResourceTimeGridView.prototype.renderNowIndicator = function (date) {\n this.resourceTimeGrid.renderNowIndicator(date);\n };\n ResourceTimeGridView.needsResourceData = true; // for ResourceViewProps\n return ResourceTimeGridView;\n}(AbstractTimeGridView));\nfunction buildResourceDayTable(dateProfile, dateProfileGenerator, resources, datesAboveResources) {\n var dayTable = buildDayTable(dateProfile, dateProfileGenerator);\n return datesAboveResources ?\n new DayResourceTable(dayTable, resources) :\n new ResourceDayTable(dayTable, resources);\n}\n\nvar main = createPlugin({\n deps: [ResourceCommonPlugin, TimeGridPlugin],\n defaultView: 'resourceTimeGridDay',\n views: {\n resourceTimeGrid: {\n class: ResourceTimeGridView,\n // TODO: wish we didn't have to C&P from timeGrid's file\n allDaySlot: true,\n slotDuration: '00:30:00',\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\n },\n resourceTimeGridDay: {\n type: 'resourceTimeGrid',\n duration: { days: 1 }\n },\n resourceTimeGridWeek: {\n type: 'resourceTimeGrid',\n duration: { weeks: 1 }\n }\n }\n});\n\nexport default main;\nexport { ResourceTimeGrid, ResourceTimeGridView };\n","/*!\nFullCalendar Timeline Plugin v4.3.0\nDocs & License: https://fullcalendar.io/scheduler\n(c) 2019 Adam Shaw\n*/\n\nimport { htmlToElement, forceClassName, applyStyle, debounce, preventDefault, ScrollComponent, EmitterMixin, removeElement, createElement, computeEdges, asRoughMs, isSingleDay, getDayClasses, findElements, Component, PositionCache, findChildren, isInt, multiplyDuration, config, createFormatter, greatestDurationDenominator, createDuration, wholeDivideDurations, addDays, startOfDay, computeVisibleDayRange, asRoughMinutes, padStart, asRoughSeconds, diffWholeDays, buildGotoAnchorHtml, htmlEscape, translateRect, rangeContainsMarker, cssToStr, computeHeightAndMargins, applyStyleProp, FgEventRenderer, FillRenderer, memoizeRendering, DateComponent, intersectRanges, addMs, Slicer, View, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/*\nA rectangular area of content that lives within a Scroller.\nCan have \"gutters\", areas of dead spacing around the perimeter.\nAlso very useful for forcing a width, which a Scroller cannot do alone.\nHas a content area that lives above a background area.\n*/\nvar ScrollerCanvas = /** @class */ (function () {\n function ScrollerCanvas() {\n this.gutters = {};\n this.el = htmlToElement(\"
\");\n this.contentEl = this.el.querySelector('.fc-content');\n this.bgEl = this.el.querySelector('.fc-bg');\n }\n /*\n If falsy, resets all the gutters to 0\n */\n ScrollerCanvas.prototype.setGutters = function (gutters) {\n if (!gutters) {\n this.gutters = {};\n }\n else {\n __assign(this.gutters, gutters);\n }\n this.updateSize();\n };\n ScrollerCanvas.prototype.setWidth = function (width) {\n this.width = width;\n this.updateSize();\n };\n ScrollerCanvas.prototype.setMinWidth = function (minWidth) {\n this.minWidth = minWidth;\n this.updateSize();\n };\n ScrollerCanvas.prototype.clearWidth = function () {\n this.width = null;\n this.minWidth = null;\n this.updateSize();\n };\n ScrollerCanvas.prototype.updateSize = function () {\n var _a = this, gutters = _a.gutters, el = _a.el;\n // is border-box (width includes padding)\n forceClassName(el, 'fc-gutter-left', gutters.left);\n forceClassName(el, 'fc-gutter-right', gutters.right);\n forceClassName(el, 'fc-gutter-top', gutters.top);\n forceClassName(el, 'fc-gutter-bottom', gutters.bottom);\n applyStyle(el, {\n paddingLeft: gutters.left || '',\n paddingRight: gutters.right || '',\n paddingTop: gutters.top || '',\n paddingBottom: gutters.bottom || '',\n width: (this.width != null) ?\n this.width + (gutters.left || 0) + (gutters.right || 0) :\n '',\n minWidth: (this.minWidth != null) ?\n this.minWidth + (gutters.left || 0) + (gutters.right || 0) :\n ''\n });\n applyStyle(this.bgEl, {\n left: gutters.left || '',\n right: gutters.right || '',\n top: gutters.top || '',\n bottom: gutters.bottom || ''\n });\n };\n return ScrollerCanvas;\n}());\n\nvar EnhancedScroller = /** @class */ (function (_super) {\n __extends(EnhancedScroller, _super);\n function EnhancedScroller(overflowX, overflowY) {\n var _this = _super.call(this, overflowX, overflowY) || this;\n // Scroll Events\n // ----------------------------------------------------------------------------------------------\n _this.reportScroll = function () {\n if (!_this.isScrolling) {\n _this.reportScrollStart();\n }\n _this.trigger('scroll');\n _this.isMoving = true;\n _this.requestMovingEnd();\n };\n _this.reportScrollStart = function () {\n if (!_this.isScrolling) {\n _this.isScrolling = true;\n _this.trigger('scrollStart', _this.isTouching); // created in constructor\n }\n };\n // Touch Events\n // ----------------------------------------------------------------------------------------------\n // will fire *before* the scroll event is fired\n _this.reportTouchStart = function () {\n _this.isTouching = true;\n };\n _this.reportTouchEnd = function () {\n if (_this.isTouching) {\n _this.isTouching = false;\n // if touch scrolling was re-enabled during a recent touch scroll\n // then unbind the handlers that are preventing it from happening.\n if (_this.isTouchScrollEnabled) {\n _this.unbindPreventTouchScroll(); // won't do anything if not bound\n }\n // if the user ended their touch, and the scroll area wasn't moving,\n // we consider this to be the end of the scroll.\n if (!_this.isMoving) {\n _this.reportScrollEnd(); // won't fire if already ended\n }\n }\n };\n _this.isScrolling = false;\n _this.isTouching = false;\n _this.isMoving = false;\n _this.isTouchScrollEnabled = true;\n _this.requestMovingEnd = debounce(_this.reportMovingEnd, 500);\n _this.canvas = new ScrollerCanvas();\n _this.el.appendChild(_this.canvas.el);\n _this.applyOverflow();\n _this.bindHandlers();\n return _this;\n }\n EnhancedScroller.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.unbindHandlers();\n };\n // Touch scroll prevention\n // ----------------------------------------------------------------------------------------------\n EnhancedScroller.prototype.disableTouchScroll = function () {\n this.isTouchScrollEnabled = false;\n this.bindPreventTouchScroll(); // will be unbound in enableTouchScroll or reportTouchEnd\n };\n EnhancedScroller.prototype.enableTouchScroll = function () {\n this.isTouchScrollEnabled = true;\n // only immediately unbind if a touch event is NOT in progress.\n // otherwise, it will be handled by reportTouchEnd.\n if (!this.isTouching) {\n this.unbindPreventTouchScroll();\n }\n };\n EnhancedScroller.prototype.bindPreventTouchScroll = function () {\n if (!this.preventTouchScrollHandler) {\n this.el.addEventListener('touchmove', (this.preventTouchScrollHandler = preventDefault));\n }\n };\n EnhancedScroller.prototype.unbindPreventTouchScroll = function () {\n if (this.preventTouchScrollHandler) {\n this.el.removeEventListener('touchmove', this.preventTouchScrollHandler);\n this.preventTouchScrollHandler = null;\n }\n };\n // Handlers\n // ----------------------------------------------------------------------------------------------\n EnhancedScroller.prototype.bindHandlers = function () {\n this.el.addEventListener('scroll', this.reportScroll);\n this.el.addEventListener('touchstart', this.reportTouchStart, { passive: true });\n this.el.addEventListener('touchend', this.reportTouchEnd);\n };\n EnhancedScroller.prototype.unbindHandlers = function () {\n this.el.removeEventListener('scroll', this.reportScroll);\n this.el.removeEventListener('touchstart', this.reportTouchStart, { passive: true });\n this.el.removeEventListener('touchend', this.reportTouchEnd);\n };\n EnhancedScroller.prototype.reportMovingEnd = function () {\n this.isMoving = false;\n // only end the scroll if not currently touching.\n // if touching, the scrolling will end later, on touchend.\n if (!this.isTouching) {\n this.reportScrollEnd();\n }\n };\n EnhancedScroller.prototype.reportScrollEnd = function () {\n if (this.isScrolling) {\n this.trigger('scrollEnd');\n this.isScrolling = false;\n }\n };\n // Horizontal Scroll Normalization\n // ----------------------------------------------------------------------------------------------\n // http://stackoverflow.com/questions/24276619/better-way-to-get-the-viewport-of-a-scrollable-div-in-rtl-mode/24394376#24394376\n // TODO: move all this to util functions\n /*\n If RTL, and scrolled to the left, returns NEGATIVE value (like Firefox)\n */\n EnhancedScroller.prototype.getScrollLeft = function () {\n var el = this.el;\n var direction = window.getComputedStyle(el).direction;\n var val = el.scrollLeft;\n if (direction === 'rtl') {\n switch (getRtlScrollSystem()) {\n case 'positive':\n val = (val + el.clientWidth) - el.scrollWidth;\n break;\n case 'reverse':\n val = -val;\n break;\n }\n }\n return val;\n };\n /*\n Accepts a NEGATIVE value for when scrolled in RTL\n */\n EnhancedScroller.prototype.setScrollLeft = function (val) {\n var el = this.el;\n var direction = window.getComputedStyle(el).direction;\n if (direction === 'rtl') {\n switch (getRtlScrollSystem()) {\n case 'positive':\n val = (val - el.clientWidth) + el.scrollWidth;\n break;\n case 'reverse':\n val = -val;\n break;\n }\n }\n el.scrollLeft = val;\n };\n /*\n Always returns the number of pixels scrolled from the leftmost position (even if RTL).\n Always positive.\n */\n EnhancedScroller.prototype.getScrollFromLeft = function () {\n var el = this.el;\n var direction = window.getComputedStyle(el).direction;\n var val = el.scrollLeft;\n if (direction === 'rtl') {\n switch (getRtlScrollSystem()) {\n case 'negative':\n val = (val - el.clientWidth) + el.scrollWidth;\n break;\n case 'reverse':\n val = (-val - el.clientWidth) + el.scrollWidth;\n break;\n }\n }\n return val;\n };\n return EnhancedScroller;\n}(ScrollComponent));\nEmitterMixin.mixInto(EnhancedScroller);\n// Horizontal Scroll System Detection\n// ----------------------------------------------------------------------------------------------\nvar _rtlScrollSystem;\nfunction getRtlScrollSystem() {\n return _rtlScrollSystem || (_rtlScrollSystem = detectRtlScrollSystem());\n}\nfunction detectRtlScrollSystem() {\n var el = htmlToElement(\"
A
\");\n document.body.appendChild(el);\n var system;\n if (el.scrollLeft > 0) {\n system = 'positive';\n }\n else {\n el.scrollLeft = 1;\n if (el.scrollLeft > 0) {\n system = 'reverse';\n }\n else {\n system = 'negative';\n }\n }\n removeElement(el);\n return system;\n}\n\n/*\nA Scroller, but with a wrapping div that allows \"clipping\" away of native scrollbars,\ngiving the appearance that there are no scrollbars.\n*/\nvar ClippedScroller = /** @class */ (function () {\n /*\n Received overflows can be set to 'clipped', meaning scrollbars shouldn't be visible\n to the user, but the area should still scroll.\n */\n function ClippedScroller(overflowX, overflowY, parentEl) {\n this.isHScrollbarsClipped = false;\n this.isVScrollbarsClipped = false;\n if (overflowX === 'clipped-scroll') {\n overflowX = 'scroll';\n this.isHScrollbarsClipped = true;\n }\n if (overflowY === 'clipped-scroll') {\n overflowY = 'scroll';\n this.isVScrollbarsClipped = true;\n }\n this.enhancedScroll = new EnhancedScroller(overflowX, overflowY);\n parentEl.appendChild(this.el = createElement('div', {\n className: 'fc-scroller-clip'\n }));\n this.el.appendChild(this.enhancedScroll.el);\n }\n ClippedScroller.prototype.destroy = function () {\n removeElement(this.el);\n };\n ClippedScroller.prototype.updateSize = function () {\n var enhancedScroll = this.enhancedScroll;\n var scrollEl = enhancedScroll.el;\n var edges = computeEdges(scrollEl);\n var cssProps = { marginLeft: 0, marginRight: 0, marginTop: 0, marginBottom: 0 };\n // give the inner scrolling div negative margins so that its scrollbars\n // are nudged outside of the bounding box of the wrapper, which is overflow:hidden\n if (this.isVScrollbarsClipped) {\n cssProps.marginLeft = -edges.scrollbarLeft;\n cssProps.marginRight = -edges.scrollbarRight;\n }\n if (this.isHScrollbarsClipped) {\n cssProps.marginBottom = -edges.scrollbarBottom;\n }\n applyStyle(scrollEl, cssProps);\n // if we are attempting to hide the scrollbars offscreen, OSX/iOS will still\n // display the floating scrollbars. attach a className to force-hide them.\n if ((this.isHScrollbarsClipped || (enhancedScroll.overflowX === 'hidden')) && // should never show?\n (this.isVScrollbarsClipped || (enhancedScroll.overflowY === 'hidden')) && // should never show?\n !( // doesn't have any scrollbar mass\n edges.scrollbarLeft ||\n edges.scrollbarRight ||\n edges.scrollbarBottom)) {\n scrollEl.classList.add('fc-no-scrollbars');\n }\n else {\n scrollEl.classList.remove('fc-no-scrollbars');\n }\n };\n ClippedScroller.prototype.setHeight = function (height) {\n this.enhancedScroll.setHeight(height);\n };\n /*\n Accounts for 'clipped' scrollbars\n */\n ClippedScroller.prototype.getScrollbarWidths = function () {\n var widths = this.enhancedScroll.getScrollbarWidths();\n if (this.isVScrollbarsClipped) {\n widths.left = 0;\n widths.right = 0;\n }\n if (this.isHScrollbarsClipped) {\n widths.bottom = 0;\n }\n return widths;\n };\n return ClippedScroller;\n}());\n\nvar ScrollJoiner = /** @class */ (function () {\n function ScrollJoiner(axis, scrollers) {\n this.axis = axis;\n this.scrollers = scrollers;\n for (var _i = 0, _a = this.scrollers; _i < _a.length; _i++) {\n var scroller = _a[_i];\n this.initScroller(scroller);\n }\n }\n ScrollJoiner.prototype.initScroller = function (scroller) {\n var _this = this;\n var enhancedScroll = scroller.enhancedScroll;\n // when the user scrolls via mousewheel, we know for sure the target\n // scroller should be the master. capture the various x-browser events that fire.\n var onScroll = function () {\n _this.assignMasterScroller(scroller);\n };\n 'wheel mousewheel DomMouseScroll MozMousePixelScroll'.split(' ').forEach(function (evName) {\n enhancedScroll.el.addEventListener(evName, onScroll);\n });\n enhancedScroll\n .on('scrollStart', function () {\n if (!_this.masterScroller) {\n _this.assignMasterScroller(scroller);\n }\n })\n .on('scroll', function () {\n if (scroller === _this.masterScroller) {\n for (var _i = 0, _a = _this.scrollers; _i < _a.length; _i++) {\n var otherScroller = _a[_i];\n if (otherScroller !== scroller) {\n switch (_this.axis) {\n case 'horizontal':\n otherScroller.enhancedScroll.el.scrollLeft = enhancedScroll.el.scrollLeft;\n break;\n case 'vertical':\n otherScroller.enhancedScroll.setScrollTop(enhancedScroll.getScrollTop());\n break;\n }\n }\n }\n }\n })\n .on('scrollEnd', function () {\n if (scroller === _this.masterScroller) {\n _this.unassignMasterScroller();\n }\n });\n };\n ScrollJoiner.prototype.assignMasterScroller = function (scroller) {\n this.unassignMasterScroller();\n this.masterScroller = scroller;\n for (var _i = 0, _a = this.scrollers; _i < _a.length; _i++) {\n var otherScroller = _a[_i];\n if (otherScroller !== scroller) {\n otherScroller.enhancedScroll.disableTouchScroll();\n }\n }\n };\n ScrollJoiner.prototype.unassignMasterScroller = function () {\n if (this.masterScroller) {\n for (var _i = 0, _a = this.scrollers; _i < _a.length; _i++) {\n var otherScroller = _a[_i];\n otherScroller.enhancedScroll.enableTouchScroll();\n }\n this.masterScroller = null;\n }\n };\n ScrollJoiner.prototype.update = function () {\n var allWidths = this.scrollers.map(function (scroller) { return scroller.getScrollbarWidths(); });\n var maxLeft = 0;\n var maxRight = 0;\n var maxTop = 0;\n var maxBottom = 0;\n var widths;\n var i;\n for (var _i = 0, allWidths_1 = allWidths; _i < allWidths_1.length; _i++) {\n widths = allWidths_1[_i];\n maxLeft = Math.max(maxLeft, widths.left);\n maxRight = Math.max(maxRight, widths.right);\n maxTop = Math.max(maxTop, widths.top);\n maxBottom = Math.max(maxBottom, widths.bottom);\n }\n for (i = 0; i < this.scrollers.length; i++) {\n var scroller = this.scrollers[i];\n widths = allWidths[i];\n scroller.enhancedScroll.canvas.setGutters(this.axis === 'horizontal' ?\n {\n left: maxLeft - widths.left,\n right: maxRight - widths.right\n } :\n {\n top: maxTop - widths.top,\n bottom: maxBottom - widths.bottom\n });\n }\n };\n return ScrollJoiner;\n}());\n\nvar HeaderBodyLayout = /** @class */ (function () {\n /*\n verticalScroll = 'auto' | 'clipped-scroll'\n */\n function HeaderBodyLayout(headerContainerEl, bodyContainerEl, verticalScroll) {\n this.headerScroller = new ClippedScroller('clipped-scroll', 'hidden', headerContainerEl);\n this.bodyScroller = new ClippedScroller('auto', verticalScroll, bodyContainerEl);\n this.scrollJoiner = new ScrollJoiner('horizontal', [\n this.headerScroller,\n this.bodyScroller\n ]);\n }\n HeaderBodyLayout.prototype.destroy = function () {\n this.headerScroller.destroy();\n this.bodyScroller.destroy();\n };\n HeaderBodyLayout.prototype.setHeight = function (totalHeight, isAuto) {\n var bodyHeight;\n if (isAuto) {\n bodyHeight = 'auto';\n }\n else {\n bodyHeight = totalHeight - this.queryHeadHeight();\n }\n this.bodyScroller.setHeight(bodyHeight);\n this.headerScroller.updateSize(); // adjusts gutters and classNames\n this.bodyScroller.updateSize(); // adjusts gutters and classNames\n this.scrollJoiner.update();\n };\n HeaderBodyLayout.prototype.queryHeadHeight = function () {\n return this.headerScroller.enhancedScroll.canvas.contentEl.getBoundingClientRect().height;\n };\n return HeaderBodyLayout;\n}());\n\nvar TimelineHeader = /** @class */ (function (_super) {\n __extends(TimelineHeader, _super);\n function TimelineHeader(context, parentEl) {\n var _this = _super.call(this, context) || this;\n parentEl.appendChild(_this.tableEl = createElement('table', {\n className: _this.theme.getClass('tableGrid')\n }));\n return _this;\n }\n TimelineHeader.prototype.destroy = function () {\n removeElement(this.tableEl);\n _super.prototype.destroy.call(this);\n };\n TimelineHeader.prototype.render = function (props) {\n this.renderDates(props.tDateProfile);\n };\n TimelineHeader.prototype.renderDates = function (tDateProfile) {\n var _a = this, dateEnv = _a.dateEnv, theme = _a.theme;\n var cellRows = tDateProfile.cellRows;\n var lastRow = cellRows[cellRows.length - 1];\n var isChrono = asRoughMs(tDateProfile.labelInterval) > asRoughMs(tDateProfile.slotDuration);\n var oneDay = isSingleDay(tDateProfile.slotDuration);\n var html = '';\n // needs to be a col for each body slat. header cells will have colspans\n for (var i = tDateProfile.slotCnt - 1; i >= 0; i--) {\n html += '';\n }\n html += '';\n html += '';\n for (var _i = 0, cellRows_1 = cellRows; _i < cellRows_1.length; _i++) {\n var rowCells = cellRows_1[_i];\n var isLast = rowCells === lastRow;\n html += '';\n for (var _b = 0, rowCells_1 = rowCells; _b < rowCells_1.length; _b++) {\n var cell = rowCells_1[_b];\n var headerCellClassNames = [theme.getClass('widgetHeader')];\n if (cell.isWeekStart) {\n headerCellClassNames.push('fc-em-cell');\n }\n if (oneDay) {\n headerCellClassNames = headerCellClassNames.concat(getDayClasses(cell.date, this.props.dateProfile, this.context, true) // adds \"today\" class and other day-based classes\n );\n }\n html +=\n ' 1 ? ' colspan=\"' + cell.colspan + '\"' : '') +\n '>' +\n '
' +\n cell.spanHtml +\n '
' +\n '';\n }\n html += '';\n }\n html += '';\n this.tableEl.innerHTML = html; // TODO: does this work cross-browser?\n this.slatColEls = findElements(this.tableEl, 'col');\n this.innerEls = findElements(this.tableEl.querySelector('tr:last-child'), // compound selector won't work because of query-root problem\n 'th .fc-cell-text');\n findElements(this.tableEl.querySelectorAll('tr:not(:last-child)'), // compound selector won't work because of query-root problem\n 'th .fc-cell-text').forEach(function (innerEl) {\n innerEl.classList.add('fc-sticky');\n });\n };\n return TimelineHeader;\n}(Component));\n\nvar TimelineSlats = /** @class */ (function (_super) {\n __extends(TimelineSlats, _super);\n function TimelineSlats(context, parentEl) {\n var _this = _super.call(this, context) || this;\n parentEl.appendChild(_this.el = createElement('div', { className: 'fc-slats' }));\n return _this;\n }\n TimelineSlats.prototype.destroy = function () {\n removeElement(this.el);\n _super.prototype.destroy.call(this);\n };\n TimelineSlats.prototype.render = function (props) {\n this.renderDates(props.tDateProfile);\n };\n TimelineSlats.prototype.renderDates = function (tDateProfile) {\n var _a = this, theme = _a.theme, view = _a.view, dateEnv = _a.dateEnv;\n var slotDates = tDateProfile.slotDates, isWeekStarts = tDateProfile.isWeekStarts;\n var html = '' +\n '';\n for (var i = 0; i < slotDates.length; i++) {\n html += '';\n }\n html += '';\n html += '';\n for (var i = 0; i < slotDates.length; i++) {\n html += this.slatCellHtml(slotDates[i], isWeekStarts[i], tDateProfile);\n }\n html += '
';\n this.el.innerHTML = html;\n this.slatColEls = findElements(this.el, 'col');\n this.slatEls = findElements(this.el, 'td');\n for (var i = 0; i < slotDates.length; i++) {\n view.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(slotDates[i]),\n el: this.slatEls[i],\n view: view\n }\n ]);\n }\n this.outerCoordCache = new PositionCache(this.el, this.slatEls, true, // isHorizontal\n false // isVertical\n );\n // for the inner divs within the slats\n // used for event rendering and scrollTime, to disregard slat border\n this.innerCoordCache = new PositionCache(this.el, findChildren(this.slatEls, 'div'), true, // isHorizontal\n false // isVertical\n );\n };\n TimelineSlats.prototype.slatCellHtml = function (date, isEm, tDateProfile) {\n var _a = this, theme = _a.theme, dateEnv = _a.dateEnv;\n var classes;\n if (tDateProfile.isTimeScale) {\n classes = [];\n classes.push(isInt(dateEnv.countDurationsBetween(tDateProfile.normalizedRange.start, date, tDateProfile.labelInterval)) ?\n 'fc-major' :\n 'fc-minor');\n }\n else {\n classes = getDayClasses(date, this.props.dateProfile, this.context);\n classes.push('fc-day');\n }\n classes.unshift(theme.getClass('widgetContent'));\n if (isEm) {\n classes.push('fc-em-cell');\n }\n return '
';\n };\n TimelineSlats.prototype.updateSize = function () {\n this.outerCoordCache.build();\n this.innerCoordCache.build();\n };\n TimelineSlats.prototype.positionToHit = function (leftPosition) {\n var outerCoordCache = this.outerCoordCache;\n var tDateProfile = this.props.tDateProfile;\n var slatIndex = outerCoordCache.leftToIndex(leftPosition);\n if (slatIndex != null) {\n // somewhat similar to what TimeGrid does. consolidate?\n var slatWidth = outerCoordCache.getWidth(slatIndex);\n var partial = this.isRtl ?\n (outerCoordCache.rights[slatIndex] - leftPosition) / slatWidth :\n (leftPosition - outerCoordCache.lefts[slatIndex]) / slatWidth;\n var localSnapIndex = Math.floor(partial * tDateProfile.snapsPerSlot);\n var start = this.dateEnv.add(tDateProfile.slotDates[slatIndex], multiplyDuration(tDateProfile.snapDuration, localSnapIndex));\n var end = this.dateEnv.add(start, tDateProfile.snapDuration);\n return {\n dateSpan: {\n range: { start: start, end: end },\n allDay: !this.props.tDateProfile.isTimeScale\n },\n dayEl: this.slatColEls[slatIndex],\n left: outerCoordCache.lefts[slatIndex],\n right: outerCoordCache.rights[slatIndex]\n };\n }\n return null;\n };\n return TimelineSlats;\n}(Component));\n\nvar MIN_AUTO_LABELS = 18; // more than `12` months but less that `24` hours\nvar MAX_AUTO_SLOTS_PER_LABEL = 6; // allows 6 10-min slots in an hour\nvar MAX_AUTO_CELLS = 200; // allows 4-days to have a :30 slot duration\nconfig.MAX_TIMELINE_SLOTS = 1000;\n// potential nice values for slot-duration and interval-duration\nvar STOCK_SUB_DURATIONS = [\n { years: 1 },\n { months: 1 },\n { days: 1 },\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { minutes: 10 },\n { minutes: 5 },\n { minutes: 1 },\n { seconds: 30 },\n { seconds: 15 },\n { seconds: 10 },\n { seconds: 5 },\n { seconds: 1 },\n { milliseconds: 500 },\n { milliseconds: 100 },\n { milliseconds: 10 },\n { milliseconds: 1 }\n];\nfunction buildTimelineDateProfile(dateProfile, view) {\n var dateEnv = view.dateEnv;\n var tDateProfile = {\n labelInterval: queryDurationOption(view, 'slotLabelInterval'),\n slotDuration: queryDurationOption(view, 'slotDuration')\n };\n validateLabelAndSlot(tDateProfile, dateProfile, dateEnv); // validate after computed grid duration\n ensureLabelInterval(tDateProfile, dateProfile, dateEnv);\n ensureSlotDuration(tDateProfile, dateProfile, dateEnv);\n var input = view.opt('slotLabelFormat');\n var rawFormats = Array.isArray(input) ?\n input\n : (input != null) ?\n [input]\n :\n computeHeaderFormats(tDateProfile, dateProfile, dateEnv, view);\n tDateProfile.headerFormats = rawFormats.map(function (rawFormat) {\n return createFormatter(rawFormat);\n });\n tDateProfile.isTimeScale = Boolean(tDateProfile.slotDuration.milliseconds);\n var largeUnit = null;\n if (!tDateProfile.isTimeScale) {\n var slotUnit = greatestDurationDenominator(tDateProfile.slotDuration).unit;\n if (/year|month|week/.test(slotUnit)) {\n largeUnit = slotUnit;\n }\n }\n tDateProfile.largeUnit = largeUnit;\n tDateProfile.emphasizeWeeks =\n isSingleDay(tDateProfile.slotDuration) &&\n currentRangeAs('weeks', dateProfile, dateEnv) >= 2 &&\n !view.opt('businessHours');\n /*\n console.log('label interval =', timelineView.labelInterval.humanize())\n console.log('slot duration =', timelineView.slotDuration.humanize())\n console.log('header formats =', timelineView.headerFormats)\n console.log('isTimeScale', timelineView.isTimeScale)\n console.log('largeUnit', timelineView.largeUnit)\n */\n var rawSnapDuration = view.opt('snapDuration');\n var snapDuration;\n var snapsPerSlot;\n if (rawSnapDuration) {\n snapDuration = createDuration(rawSnapDuration);\n snapsPerSlot = wholeDivideDurations(tDateProfile.slotDuration, snapDuration);\n // ^ TODO: warning if not whole?\n }\n if (snapsPerSlot == null) {\n snapDuration = tDateProfile.slotDuration;\n snapsPerSlot = 1;\n }\n tDateProfile.snapDuration = snapDuration;\n tDateProfile.snapsPerSlot = snapsPerSlot;\n // more...\n var timeWindowMs = asRoughMs(dateProfile.maxTime) - asRoughMs(dateProfile.minTime);\n // TODO: why not use normalizeRange!?\n var normalizedStart = normalizeDate(dateProfile.renderRange.start, tDateProfile, dateEnv);\n var normalizedEnd = normalizeDate(dateProfile.renderRange.end, tDateProfile, dateEnv);\n // apply minTime/maxTime\n // TODO: View should be responsible.\n if (tDateProfile.isTimeScale) {\n normalizedStart = dateEnv.add(normalizedStart, dateProfile.minTime);\n normalizedEnd = dateEnv.add(addDays(normalizedEnd, -1), dateProfile.maxTime);\n }\n tDateProfile.timeWindowMs = timeWindowMs;\n tDateProfile.normalizedRange = { start: normalizedStart, end: normalizedEnd };\n var slotDates = [];\n var date = normalizedStart;\n while (date < normalizedEnd) {\n if (isValidDate(date, tDateProfile, dateProfile, view)) {\n slotDates.push(date);\n }\n date = dateEnv.add(date, tDateProfile.slotDuration);\n }\n tDateProfile.slotDates = slotDates;\n // more...\n var snapIndex = -1;\n var snapDiff = 0; // index of the diff :(\n var snapDiffToIndex = [];\n var snapIndexToDiff = [];\n date = normalizedStart;\n while (date < normalizedEnd) {\n if (isValidDate(date, tDateProfile, dateProfile, view)) {\n snapIndex++;\n snapDiffToIndex.push(snapIndex);\n snapIndexToDiff.push(snapDiff);\n }\n else {\n snapDiffToIndex.push(snapIndex + 0.5);\n }\n date = dateEnv.add(date, tDateProfile.snapDuration);\n snapDiff++;\n }\n tDateProfile.snapDiffToIndex = snapDiffToIndex;\n tDateProfile.snapIndexToDiff = snapIndexToDiff;\n tDateProfile.snapCnt = snapIndex + 1; // is always one behind\n tDateProfile.slotCnt = tDateProfile.snapCnt / tDateProfile.snapsPerSlot;\n // more...\n tDateProfile.isWeekStarts = buildIsWeekStarts(tDateProfile, dateEnv);\n tDateProfile.cellRows = buildCellRows(tDateProfile, dateEnv, view);\n return tDateProfile;\n}\n/*\nsnaps to appropriate unit\n*/\nfunction normalizeDate(date, tDateProfile, dateEnv) {\n var normalDate = date;\n if (!tDateProfile.isTimeScale) {\n normalDate = startOfDay(normalDate);\n if (tDateProfile.largeUnit) {\n normalDate = dateEnv.startOf(normalDate, tDateProfile.largeUnit);\n }\n }\n return normalDate;\n}\n/*\nsnaps to appropriate unit\n*/\nfunction normalizeRange(range, tDateProfile, dateEnv) {\n if (!tDateProfile.isTimeScale) {\n range = computeVisibleDayRange(range);\n if (tDateProfile.largeUnit) {\n var dayRange = range; // preserve original result\n range = {\n start: dateEnv.startOf(range.start, tDateProfile.largeUnit),\n end: dateEnv.startOf(range.end, tDateProfile.largeUnit)\n };\n // if date is partially through the interval, or is in the same interval as the start,\n // make the exclusive end be the *next* interval\n if (range.end.valueOf() !== dayRange.end.valueOf() || range.end <= range.start) {\n range = {\n start: range.start,\n end: dateEnv.add(range.end, tDateProfile.slotDuration)\n };\n }\n }\n }\n return range;\n}\nfunction isValidDate(date, tDateProfile, dateProfile, view) {\n if (view.dateProfileGenerator.isHiddenDay(date)) {\n return false;\n }\n else if (tDateProfile.isTimeScale) {\n // determine if the time is within minTime/maxTime, which may have wacky values\n var day = startOfDay(date);\n var timeMs = date.valueOf() - day.valueOf();\n var ms = timeMs - asRoughMs(dateProfile.minTime); // milliseconds since minTime\n ms = ((ms % 86400000) + 86400000) % 86400000; // make negative values wrap to 24hr clock\n return ms < tDateProfile.timeWindowMs; // before the maxTime?\n }\n else {\n return true;\n }\n}\nfunction queryDurationOption(view, name) {\n var input = view.opt(name);\n if (input != null) {\n return createDuration(input);\n }\n}\nfunction validateLabelAndSlot(tDateProfile, dateProfile, dateEnv) {\n var currentRange = dateProfile.currentRange;\n // make sure labelInterval doesn't exceed the max number of cells\n if (tDateProfile.labelInterval) {\n var labelCnt = dateEnv.countDurationsBetween(currentRange.start, currentRange.end, tDateProfile.labelInterval);\n if (labelCnt > config.MAX_TIMELINE_SLOTS) {\n console.warn('slotLabelInterval results in too many cells');\n tDateProfile.labelInterval = null;\n }\n }\n // make sure slotDuration doesn't exceed the maximum number of cells\n if (tDateProfile.slotDuration) {\n var slotCnt = dateEnv.countDurationsBetween(currentRange.start, currentRange.end, tDateProfile.slotDuration);\n if (slotCnt > config.MAX_TIMELINE_SLOTS) {\n console.warn('slotDuration results in too many cells');\n tDateProfile.slotDuration = null;\n }\n }\n // make sure labelInterval is a multiple of slotDuration\n if (tDateProfile.labelInterval && tDateProfile.slotDuration) {\n var slotsPerLabel = wholeDivideDurations(tDateProfile.labelInterval, tDateProfile.slotDuration);\n if (slotsPerLabel === null || slotsPerLabel < 1) {\n console.warn('slotLabelInterval must be a multiple of slotDuration');\n tDateProfile.slotDuration = null;\n }\n }\n}\nfunction ensureLabelInterval(tDateProfile, dateProfile, dateEnv) {\n var currentRange = dateProfile.currentRange;\n var labelInterval = tDateProfile.labelInterval;\n if (!labelInterval) {\n // compute based off the slot duration\n // find the largest label interval with an acceptable slots-per-label\n var input = void 0;\n if (tDateProfile.slotDuration) {\n for (var _i = 0, STOCK_SUB_DURATIONS_1 = STOCK_SUB_DURATIONS; _i < STOCK_SUB_DURATIONS_1.length; _i++) {\n input = STOCK_SUB_DURATIONS_1[_i];\n var tryLabelInterval = createDuration(input);\n var slotsPerLabel = wholeDivideDurations(tryLabelInterval, tDateProfile.slotDuration);\n if (slotsPerLabel !== null && slotsPerLabel <= MAX_AUTO_SLOTS_PER_LABEL) {\n labelInterval = tryLabelInterval;\n break;\n }\n }\n // use the slot duration as a last resort\n if (!labelInterval) {\n labelInterval = tDateProfile.slotDuration;\n }\n // compute based off the view's duration\n // find the largest label interval that yields the minimum number of labels\n }\n else {\n for (var _a = 0, STOCK_SUB_DURATIONS_2 = STOCK_SUB_DURATIONS; _a < STOCK_SUB_DURATIONS_2.length; _a++) {\n input = STOCK_SUB_DURATIONS_2[_a];\n labelInterval = createDuration(input);\n var labelCnt = dateEnv.countDurationsBetween(currentRange.start, currentRange.end, labelInterval);\n if (labelCnt >= MIN_AUTO_LABELS) {\n break;\n }\n }\n }\n tDateProfile.labelInterval = labelInterval;\n }\n return labelInterval;\n}\nfunction ensureSlotDuration(tDateProfile, dateProfile, dateEnv) {\n var currentRange = dateProfile.currentRange;\n var slotDuration = tDateProfile.slotDuration;\n if (!slotDuration) {\n var labelInterval = ensureLabelInterval(tDateProfile, dateProfile, dateEnv); // will compute if necessary\n // compute based off the label interval\n // find the largest slot duration that is different from labelInterval, but still acceptable\n for (var _i = 0, STOCK_SUB_DURATIONS_3 = STOCK_SUB_DURATIONS; _i < STOCK_SUB_DURATIONS_3.length; _i++) {\n var input = STOCK_SUB_DURATIONS_3[_i];\n var trySlotDuration = createDuration(input);\n var slotsPerLabel = wholeDivideDurations(labelInterval, trySlotDuration);\n if (slotsPerLabel !== null && slotsPerLabel > 1 && slotsPerLabel <= MAX_AUTO_SLOTS_PER_LABEL) {\n slotDuration = trySlotDuration;\n break;\n }\n }\n // only allow the value if it won't exceed the view's # of slots limit\n if (slotDuration) {\n var slotCnt = dateEnv.countDurationsBetween(currentRange.start, currentRange.end, slotDuration);\n if (slotCnt > MAX_AUTO_CELLS) {\n slotDuration = null;\n }\n }\n // use the label interval as a last resort\n if (!slotDuration) {\n slotDuration = labelInterval;\n }\n tDateProfile.slotDuration = slotDuration;\n }\n return slotDuration;\n}\nfunction computeHeaderFormats(tDateProfile, dateProfile, dateEnv, view) {\n var format1;\n var format2;\n var labelInterval = tDateProfile.labelInterval;\n var unit = greatestDurationDenominator(labelInterval).unit;\n var weekNumbersVisible = view.opt('weekNumbers');\n var format0 = (format1 = (format2 = null));\n // NOTE: weekNumber computation function wont work\n if ((unit === 'week') && !weekNumbersVisible) {\n unit = 'day';\n }\n switch (unit) {\n case 'year':\n format0 = { year: 'numeric' }; // '2015'\n break;\n case 'month':\n if (currentRangeAs('years', dateProfile, dateEnv) > 1) {\n format0 = { year: 'numeric' }; // '2015'\n }\n format1 = { month: 'short' }; // 'Jan'\n break;\n case 'week':\n if (currentRangeAs('years', dateProfile, dateEnv) > 1) {\n format0 = { year: 'numeric' }; // '2015'\n }\n format1 = { week: 'narrow' }; // 'Wk4'\n break;\n case 'day':\n if (currentRangeAs('years', dateProfile, dateEnv) > 1) {\n format0 = { year: 'numeric', month: 'long' }; // 'January 2014'\n }\n else if (currentRangeAs('months', dateProfile, dateEnv) > 1) {\n format0 = { month: 'long' }; // 'January'\n }\n if (weekNumbersVisible) {\n format1 = { week: 'short' }; // 'Wk 4'\n }\n format2 = { weekday: 'narrow', day: 'numeric' }; // 'Su 9'\n break;\n case 'hour':\n if (weekNumbersVisible) {\n format0 = { week: 'short' }; // 'Wk 4'\n }\n if (currentRangeAs('days', dateProfile, dateEnv) > 1) {\n format1 = { weekday: 'short', day: 'numeric', month: 'numeric', omitCommas: true }; // Sat 4/7\n }\n format2 = {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short'\n };\n break;\n case 'minute':\n // sufficiently large number of different minute cells?\n if ((asRoughMinutes(labelInterval) / 60) >= MAX_AUTO_SLOTS_PER_LABEL) {\n format0 = {\n hour: 'numeric',\n meridiem: 'short'\n };\n format1 = function (params) {\n return ':' + padStart(params.date.minute, 2); // ':30'\n };\n }\n else {\n format0 = {\n hour: 'numeric',\n minute: 'numeric',\n meridiem: 'short'\n };\n }\n break;\n case 'second':\n // sufficiently large number of different second cells?\n if ((asRoughSeconds(labelInterval) / 60) >= MAX_AUTO_SLOTS_PER_LABEL) {\n format0 = { hour: 'numeric', minute: '2-digit', meridiem: 'lowercase' }; // '8:30 PM'\n format1 = function (params) {\n return ':' + padStart(params.date.second, 2); // ':30'\n };\n }\n else {\n format0 = { hour: 'numeric', minute: '2-digit', second: '2-digit', meridiem: 'lowercase' }; // '8:30:45 PM'\n }\n break;\n case 'millisecond':\n format0 = { hour: 'numeric', minute: '2-digit', second: '2-digit', meridiem: 'lowercase' }; // '8:30:45 PM'\n format1 = function (params) {\n return '.' + padStart(params.millisecond, 3);\n };\n break;\n }\n return [].concat(format0 || [], format1 || [], format2 || []);\n}\n// Compute the number of the give units in the \"current\" range.\n// Won't go more precise than days.\n// Will return `0` if there's not a clean whole interval.\nfunction currentRangeAs(unit, dateProfile, dateEnv) {\n var range = dateProfile.currentRange;\n var res = null;\n if (unit === 'years') {\n res = dateEnv.diffWholeYears(range.start, range.end);\n }\n else if (unit === 'months') {\n res = dateEnv.diffWholeMonths(range.start, range.end);\n }\n else if (unit === 'weeks') {\n res = dateEnv.diffWholeMonths(range.start, range.end);\n }\n else if (unit === 'days') {\n res = diffWholeDays(range.start, range.end);\n }\n return res || 0;\n}\nfunction buildIsWeekStarts(tDateProfile, dateEnv) {\n var slotDates = tDateProfile.slotDates, emphasizeWeeks = tDateProfile.emphasizeWeeks;\n var prevWeekNumber = null;\n var isWeekStarts = [];\n for (var _i = 0, slotDates_1 = slotDates; _i < slotDates_1.length; _i++) {\n var slotDate = slotDates_1[_i];\n var weekNumber = dateEnv.computeWeekNumber(slotDate);\n var isWeekStart = emphasizeWeeks && (prevWeekNumber !== null) && (prevWeekNumber !== weekNumber);\n prevWeekNumber = weekNumber;\n isWeekStarts.push(isWeekStart);\n }\n return isWeekStarts;\n}\nfunction buildCellRows(tDateProfile, dateEnv, view) {\n var slotDates = tDateProfile.slotDates;\n var formats = tDateProfile.headerFormats;\n var cellRows = formats.map(function (format) { return []; }); // indexed by row,col\n // specifically for navclicks\n var rowUnits = formats.map(function (format) {\n return format.getLargestUnit ? format.getLargestUnit() : null;\n });\n // builds cellRows and slotCells\n for (var i = 0; i < slotDates.length; i++) {\n var date = slotDates[i];\n var isWeekStart = tDateProfile.isWeekStarts[i];\n for (var row = 0; row < formats.length; row++) {\n var format = formats[row];\n var rowCells = cellRows[row];\n var leadingCell = rowCells[rowCells.length - 1];\n var isSuperRow = (formats.length > 1) && (row < (formats.length - 1)); // more than one row and not the last\n var newCell = null;\n if (isSuperRow) {\n var text = dateEnv.format(date, format);\n if (!leadingCell || (leadingCell.text !== text)) {\n newCell = buildCellObject(date, text, rowUnits[row], view);\n }\n else {\n leadingCell.colspan += 1;\n }\n }\n else {\n if (!leadingCell ||\n isInt(dateEnv.countDurationsBetween(tDateProfile.normalizedRange.start, date, tDateProfile.labelInterval))) {\n var text = dateEnv.format(date, format);\n newCell = buildCellObject(date, text, rowUnits[row], view);\n }\n else {\n leadingCell.colspan += 1;\n }\n }\n if (newCell) {\n newCell.weekStart = isWeekStart;\n rowCells.push(newCell);\n }\n }\n }\n return cellRows;\n}\nfunction buildCellObject(date, text, rowUnit, view) {\n var spanHtml = buildGotoAnchorHtml(view, {\n date: date,\n type: rowUnit,\n forceOff: !rowUnit\n }, {\n 'class': 'fc-cell-text'\n }, htmlEscape(text));\n return { text: text, spanHtml: spanHtml, date: date, colspan: 1, isWeekStart: false };\n}\n\nvar TimelineNowIndicator = /** @class */ (function () {\n function TimelineNowIndicator(headParent, bodyParent) {\n this.headParent = headParent;\n this.bodyParent = bodyParent;\n }\n TimelineNowIndicator.prototype.render = function (coord, isRtl) {\n var styleProps = isRtl ? { right: -coord } : { left: coord };\n this.headParent.appendChild(this.arrowEl = createElement('div', {\n className: 'fc-now-indicator fc-now-indicator-arrow',\n style: styleProps\n }));\n this.bodyParent.appendChild(this.lineEl = createElement('div', {\n className: 'fc-now-indicator fc-now-indicator-line',\n style: styleProps\n }));\n };\n TimelineNowIndicator.prototype.unrender = function () {\n if (this.arrowEl) {\n removeElement(this.arrowEl);\n }\n if (this.lineEl) {\n removeElement(this.lineEl);\n }\n };\n return TimelineNowIndicator;\n}());\n\nvar STICKY_PROP_VAL = computeStickyPropVal(); // if null, means not supported at all\nvar IS_MS_EDGE = /Edge/.test(navigator.userAgent);\nvar IS_SAFARI = STICKY_PROP_VAL === '-webkit-sticky'; // good b/c doesn't confuse chrome\nvar STICKY_CLASSNAME = 'fc-sticky';\n/*\nuseful beyond the native position:sticky for these reasons:\n- support in IE11\n- nice centering support\n*/\nvar StickyScroller = /** @class */ (function () {\n function StickyScroller(scroller, isRtl, isVertical) {\n var _this = this;\n this.usingRelative = null;\n /*\n known bug: called twice on init. problem when mixing with ScrollJoiner\n */\n this.updateSize = function () {\n var els = Array.prototype.slice.call(_this.scroller.canvas.el.querySelectorAll('.' + STICKY_CLASSNAME));\n var elGeoms = _this.queryElGeoms(els);\n var viewportWidth = _this.scroller.el.clientWidth;\n if (_this.usingRelative) {\n var elDestinations = _this.computeElDestinations(elGeoms, viewportWidth); // read before prepPositioning\n assignRelativePositions(els, elGeoms, elDestinations);\n }\n else {\n assignStickyPositions(els, elGeoms, viewportWidth);\n }\n };\n this.scroller = scroller;\n this.usingRelative =\n !STICKY_PROP_VAL || // IE11\n (IS_MS_EDGE && isRtl) || // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18883305/\n ((IS_MS_EDGE || IS_SAFARI) && isVertical); // because doesn't work with rowspan in tables, our only vertial use\n if (this.usingRelative) {\n scroller.on('scrollEnd', this.updateSize);\n }\n }\n StickyScroller.prototype.destroy = function () {\n this.scroller.off('scrollEnd', this.updateSize);\n };\n StickyScroller.prototype.queryElGeoms = function (els) {\n var canvasOrigin = this.scroller.canvas.el.getBoundingClientRect();\n var elGeoms = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n var parentBound = translateRect(el.parentNode.getBoundingClientRect(), -canvasOrigin.left, -canvasOrigin.top);\n var elRect = el.getBoundingClientRect();\n var computedStyles = window.getComputedStyle(el);\n var computedTextAlign = window.getComputedStyle(el.parentNode).textAlign; // ask the parent\n var intendedTextAlign = computedTextAlign;\n var naturalBound = null;\n if (computedStyles.position !== 'sticky') {\n naturalBound = translateRect(elRect, -canvasOrigin.left - (parseFloat(computedStyles.left) || 0), // could be 'auto'\n -canvasOrigin.top - (parseFloat(computedStyles.top) || 0));\n }\n if (el.hasAttribute('data-sticky-center')) {\n intendedTextAlign = 'center';\n }\n elGeoms.push({\n parentBound: parentBound,\n naturalBound: naturalBound,\n elWidth: elRect.width,\n elHeight: elRect.height,\n computedTextAlign: computedTextAlign,\n intendedTextAlign: intendedTextAlign\n });\n }\n return elGeoms;\n };\n StickyScroller.prototype.computeElDestinations = function (elGeoms, viewportWidth) {\n var viewportLeft = this.scroller.getScrollFromLeft();\n var viewportTop = this.scroller.getScrollTop();\n var viewportRight = viewportLeft + viewportWidth;\n return elGeoms.map(function (elGeom) {\n var elWidth = elGeom.elWidth, elHeight = elGeom.elHeight, parentBound = elGeom.parentBound, naturalBound = elGeom.naturalBound;\n var destLeft; // relative to canvas topleft\n var destTop; // \"\n switch (elGeom.intendedTextAlign) {\n case 'left':\n destLeft = viewportLeft;\n break;\n case 'right':\n destLeft = viewportRight - elWidth;\n break;\n case 'center':\n destLeft = (viewportLeft + viewportRight) / 2 - elWidth / 2;\n break;\n }\n destLeft = Math.min(destLeft, parentBound.right - elWidth);\n destLeft = Math.max(destLeft, parentBound.left);\n destTop = viewportTop;\n destTop = Math.min(destTop, parentBound.bottom - elHeight);\n destTop = Math.max(destTop, naturalBound.top); // better to use natural top for upper bound\n return { left: destLeft, top: destTop };\n });\n };\n return StickyScroller;\n}());\nfunction assignRelativePositions(els, elGeoms, elDestinations) {\n els.forEach(function (el, i) {\n var naturalBound = elGeoms[i].naturalBound;\n applyStyle(el, {\n position: 'relative',\n left: elDestinations[i].left - naturalBound.left,\n top: elDestinations[i].top - naturalBound.top\n });\n });\n}\nfunction assignStickyPositions(els, elGeoms, viewportWidth) {\n els.forEach(function (el, i) {\n var stickyLeft = 0;\n if (elGeoms[i].intendedTextAlign === 'center') {\n stickyLeft = (viewportWidth - elGeoms[i].elWidth) / 2;\n // needs to be forced to left?\n if (elGeoms[i].computedTextAlign === 'center') {\n el.setAttribute('data-sticky-center', '') // remember for next queryElGeoms\n ;\n el.parentNode.style.textAlign = 'left';\n }\n }\n applyStyle(el, {\n position: STICKY_PROP_VAL,\n left: stickyLeft,\n right: 0,\n top: 0\n });\n });\n}\nfunction computeStickyPropVal() {\n var el = htmlToElement('
');\n var val = el.style.position;\n if (val.indexOf('sticky') !== -1) {\n return val;\n }\n else {\n return null;\n }\n}\n\nvar TimeAxis = /** @class */ (function (_super) {\n __extends(TimeAxis, _super);\n function TimeAxis(context, headerContainerEl, bodyContainerEl) {\n var _this = _super.call(this, context) || this;\n var layout = _this.layout = new HeaderBodyLayout(headerContainerEl, bodyContainerEl, 'auto');\n var headerEnhancedScroller = layout.headerScroller.enhancedScroll;\n var bodyEnhancedScroller = layout.bodyScroller.enhancedScroll;\n // needs to go after layout, which has ScrollJoiner\n _this.headStickyScroller = new StickyScroller(headerEnhancedScroller, _this.isRtl, false); // isVertical=false\n _this.bodyStickyScroller = new StickyScroller(bodyEnhancedScroller, _this.isRtl, false); // isVertical=false\n _this.header = new TimelineHeader(context, headerEnhancedScroller.canvas.contentEl);\n _this.slats = new TimelineSlats(context, bodyEnhancedScroller.canvas.bgEl);\n _this.nowIndicator = new TimelineNowIndicator(headerEnhancedScroller.canvas.el, bodyEnhancedScroller.canvas.el);\n return _this;\n }\n TimeAxis.prototype.destroy = function () {\n this.layout.destroy();\n this.header.destroy();\n this.slats.destroy();\n this.nowIndicator.unrender();\n this.headStickyScroller.destroy();\n this.bodyStickyScroller.destroy();\n _super.prototype.destroy.call(this);\n };\n TimeAxis.prototype.render = function (props) {\n var tDateProfile = this.tDateProfile =\n buildTimelineDateProfile(props.dateProfile, this.view); // TODO: cache\n this.header.receiveProps({\n dateProfile: props.dateProfile,\n tDateProfile: tDateProfile\n });\n this.slats.receiveProps({\n dateProfile: props.dateProfile,\n tDateProfile: tDateProfile\n });\n };\n // Now Indicator\n // ------------------------------------------------------------------------------------------\n TimeAxis.prototype.getNowIndicatorUnit = function (dateProfile) {\n // yuck\n var tDateProfile = this.tDateProfile =\n buildTimelineDateProfile(dateProfile, this.view); // TODO: cache\n if (tDateProfile.isTimeScale) {\n return greatestDurationDenominator(tDateProfile.slotDuration).unit;\n }\n };\n // will only execute if isTimeScale\n TimeAxis.prototype.renderNowIndicator = function (date) {\n if (rangeContainsMarker(this.tDateProfile.normalizedRange, date)) {\n this.nowIndicator.render(this.dateToCoord(date), this.isRtl);\n }\n };\n // will only execute if isTimeScale\n TimeAxis.prototype.unrenderNowIndicator = function () {\n this.nowIndicator.unrender();\n };\n // Sizing\n // ------------------------------------------------------------------------------------------\n TimeAxis.prototype.updateSize = function (isResize, totalHeight, isAuto) {\n this.applySlotWidth(this.computeSlotWidth());\n // adjusts gutters. do after slot widths set\n this.layout.setHeight(totalHeight, isAuto);\n // pretty much just queries coords. do last\n this.slats.updateSize();\n };\n TimeAxis.prototype.updateStickyScrollers = function () {\n this.headStickyScroller.updateSize();\n this.bodyStickyScroller.updateSize();\n };\n TimeAxis.prototype.computeSlotWidth = function () {\n var slotWidth = this.opt('slotWidth') || '';\n if (slotWidth === '') {\n slotWidth = this.computeDefaultSlotWidth(this.tDateProfile);\n }\n return slotWidth;\n };\n TimeAxis.prototype.computeDefaultSlotWidth = function (tDateProfile) {\n var maxInnerWidth = 0; // TODO: harness core's `matchCellWidths` for this\n this.header.innerEls.forEach(function (innerEl, i) {\n maxInnerWidth = Math.max(maxInnerWidth, innerEl.getBoundingClientRect().width);\n });\n var headingCellWidth = Math.ceil(maxInnerWidth) + 1; // assume no padding, and one pixel border\n // in TimelineView.defaults we ensured that labelInterval is an interval of slotDuration\n // TODO: rename labelDuration?\n var slotsPerLabel = wholeDivideDurations(tDateProfile.labelInterval, tDateProfile.slotDuration);\n var slotWidth = Math.ceil(headingCellWidth / slotsPerLabel);\n var minWidth = window.getComputedStyle(this.header.slatColEls[0]).minWidth;\n if (minWidth) {\n minWidth = parseInt(minWidth, 10);\n if (minWidth) {\n slotWidth = Math.max(slotWidth, minWidth);\n }\n }\n return slotWidth;\n };\n TimeAxis.prototype.applySlotWidth = function (slotWidth) {\n var _a = this, layout = _a.layout, tDateProfile = _a.tDateProfile;\n var containerWidth = '';\n var containerMinWidth = '';\n var nonLastSlotWidth = '';\n if (slotWidth !== '') {\n slotWidth = Math.round(slotWidth);\n containerWidth = slotWidth * tDateProfile.slotDates.length;\n containerMinWidth = '';\n nonLastSlotWidth = slotWidth;\n var availableWidth = layout.bodyScroller.enhancedScroll.getClientWidth();\n if (availableWidth > containerWidth) {\n containerMinWidth = availableWidth;\n containerWidth = '';\n nonLastSlotWidth = Math.floor(availableWidth / tDateProfile.slotDates.length);\n }\n }\n layout.headerScroller.enhancedScroll.canvas.setWidth(containerWidth);\n layout.headerScroller.enhancedScroll.canvas.setMinWidth(containerMinWidth);\n layout.bodyScroller.enhancedScroll.canvas.setWidth(containerWidth);\n layout.bodyScroller.enhancedScroll.canvas.setMinWidth(containerMinWidth);\n if (nonLastSlotWidth !== '') {\n this.header.slatColEls.slice(0, -1).concat(this.slats.slatColEls.slice(0, -1)).forEach(function (el) {\n el.style.width = nonLastSlotWidth + 'px';\n });\n }\n };\n // returned value is between 0 and the number of snaps\n TimeAxis.prototype.computeDateSnapCoverage = function (date) {\n var _a = this, dateEnv = _a.dateEnv, tDateProfile = _a.tDateProfile;\n var snapDiff = dateEnv.countDurationsBetween(tDateProfile.normalizedRange.start, date, tDateProfile.snapDuration);\n if (snapDiff < 0) {\n return 0;\n }\n else if (snapDiff >= tDateProfile.snapDiffToIndex.length) {\n return tDateProfile.snapCnt;\n }\n else {\n var snapDiffInt = Math.floor(snapDiff);\n var snapCoverage = tDateProfile.snapDiffToIndex[snapDiffInt];\n if (isInt(snapCoverage)) { // not an in-between value\n snapCoverage += snapDiff - snapDiffInt; // add the remainder\n }\n else {\n // a fractional value, meaning the date is not visible\n // always round up in this case. works for start AND end dates in a range.\n snapCoverage = Math.ceil(snapCoverage);\n }\n return snapCoverage;\n }\n };\n // for LTR, results range from 0 to width of area\n // for RTL, results range from negative width of area to 0\n TimeAxis.prototype.dateToCoord = function (date) {\n var tDateProfile = this.tDateProfile;\n var snapCoverage = this.computeDateSnapCoverage(date);\n var slotCoverage = snapCoverage / tDateProfile.snapsPerSlot;\n var slotIndex = Math.floor(slotCoverage);\n slotIndex = Math.min(slotIndex, tDateProfile.slotCnt - 1);\n var partial = slotCoverage - slotIndex;\n var _a = this.slats, innerCoordCache = _a.innerCoordCache, outerCoordCache = _a.outerCoordCache;\n if (this.isRtl) {\n return (outerCoordCache.rights[slotIndex] -\n (innerCoordCache.getWidth(slotIndex) * partial)) - outerCoordCache.originClientRect.width;\n }\n else {\n return (outerCoordCache.lefts[slotIndex] +\n (innerCoordCache.getWidth(slotIndex) * partial));\n }\n };\n TimeAxis.prototype.rangeToCoords = function (range) {\n if (this.isRtl) {\n return { right: this.dateToCoord(range.start), left: this.dateToCoord(range.end) };\n }\n else {\n return { left: this.dateToCoord(range.start), right: this.dateToCoord(range.end) };\n }\n };\n // Scrolling\n // ------------------------------------------------------------------------------------------\n TimeAxis.prototype.computeDateScroll = function (duration) {\n var dateEnv = this.dateEnv;\n var dateProfile = this.props.dateProfile;\n var left = 0;\n if (dateProfile) {\n left = this.dateToCoord(dateEnv.add(startOfDay(dateProfile.activeRange.start), // startOfDay needed?\n duration));\n // hack to overcome the left borders of non-first slat\n if (!this.isRtl && left) {\n left += 1;\n }\n }\n return { left: left };\n };\n TimeAxis.prototype.queryDateScroll = function () {\n var enhancedScroll = this.layout.bodyScroller.enhancedScroll;\n return {\n left: enhancedScroll.getScrollLeft()\n };\n };\n TimeAxis.prototype.applyDateScroll = function (scroll) {\n // TODO: lame we have to update both. use the scrolljoiner instead maybe\n this.layout.bodyScroller.enhancedScroll.setScrollLeft(scroll.left || 0);\n this.layout.headerScroller.enhancedScroll.setScrollLeft(scroll.left || 0);\n };\n return TimeAxis;\n}(Component));\n\nvar TimelineLaneEventRenderer = /** @class */ (function (_super) {\n __extends(TimelineLaneEventRenderer, _super);\n function TimelineLaneEventRenderer(context, masterContainerEl, timeAxis) {\n var _this = _super.call(this, context) || this;\n _this.masterContainerEl = masterContainerEl;\n _this.timeAxis = timeAxis;\n return _this;\n }\n TimelineLaneEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var view = this.context.view;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var isDraggable = view.computeEventDraggable(eventDef, eventUi);\n var isResizableFromStart = seg.isStart && view.computeEventStartResizable(eventDef, eventUi);\n var isResizableFromEnd = seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n classes.unshift('fc-timeline-event', 'fc-h-event');\n var timeText = this.getTimeText(eventRange);\n return '' +\n (timeText ?\n '' +\n '' +\n htmlEscape(timeText) +\n '' +\n ''\n :\n '') +\n '' +\n '' +\n (eventDef.title ? htmlEscape(eventDef.title) : ' ') +\n '' +\n '' +\n (isResizableFromStart ?\n '
' :\n '') +\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n TimelineLaneEventRenderer.prototype.computeDisplayEventTime = function () {\n return !this.timeAxis.tDateProfile.isTimeScale; // because times should be obvious via axis\n };\n TimelineLaneEventRenderer.prototype.computeDisplayEventEnd = function () {\n return false;\n };\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\n TimelineLaneEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow'\n };\n };\n TimelineLaneEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n if (!this.el && this.masterContainerEl) {\n this.el = createElement('div', { className: 'fc-event-container' });\n if (mirrorInfo) {\n this.el.classList.add('fc-mirror-container');\n }\n this.masterContainerEl.appendChild(this.el);\n }\n if (this.el) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n this.el.appendChild(seg.el);\n }\n }\n };\n TimelineLaneEventRenderer.prototype.detachSegs = function (segs) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n removeElement(seg.el);\n }\n };\n // computes AND assigns (assigns the left/right at least). bad\n TimelineLaneEventRenderer.prototype.computeSegSizes = function (segs) {\n var timeAxis = this.timeAxis;\n for (var _i = 0, segs_3 = segs; _i < segs_3.length; _i++) {\n var seg = segs_3[_i];\n var coords = timeAxis.rangeToCoords(seg); // works because Seg has start/end\n applyStyle(seg.el, {\n left: (seg.left = coords.left),\n right: -(seg.right = coords.right)\n });\n }\n };\n TimelineLaneEventRenderer.prototype.assignSegSizes = function (segs) {\n if (!this.el) {\n return;\n }\n // compute seg verticals\n for (var _i = 0, segs_4 = segs; _i < segs_4.length; _i++) {\n var seg = segs_4[_i];\n seg.height = computeHeightAndMargins(seg.el);\n }\n this.buildSegLevels(segs); // populates above/below props for computeOffsetForSegs\n var totalHeight = computeOffsetForSegs(segs); // also assigns seg.top\n applyStyleProp(this.el, 'height', totalHeight);\n // assign seg verticals\n for (var _a = 0, segs_5 = segs; _a < segs_5.length; _a++) {\n var seg = segs_5[_a];\n applyStyleProp(seg.el, 'top', seg.top);\n }\n };\n TimelineLaneEventRenderer.prototype.buildSegLevels = function (segs) {\n var segLevels = [];\n segs = this.sortEventSegs(segs);\n for (var _i = 0, segs_6 = segs; _i < segs_6.length; _i++) {\n var unplacedSeg = segs_6[_i];\n unplacedSeg.above = [];\n // determine the first level with no collisions\n var level = 0; // level index\n while (level < segLevels.length) {\n var isLevelCollision = false;\n // determine collisions\n for (var _a = 0, _b = segLevels[level]; _a < _b.length; _a++) {\n var placedSeg = _b[_a];\n if (timeRowSegsCollide(unplacedSeg, placedSeg)) {\n unplacedSeg.above.push(placedSeg);\n isLevelCollision = true;\n }\n }\n if (isLevelCollision) {\n level += 1;\n }\n else {\n break;\n }\n }\n // insert into the first non-colliding level. create if necessary\n (segLevels[level] || (segLevels[level] = []))\n .push(unplacedSeg);\n // record possible colliding segments below (TODO: automated test for this)\n level += 1;\n while (level < segLevels.length) {\n for (var _c = 0, _d = segLevels[level]; _c < _d.length; _c++) {\n var belowSeg = _d[_c];\n if (timeRowSegsCollide(unplacedSeg, belowSeg)) {\n belowSeg.above.push(unplacedSeg);\n }\n }\n level += 1;\n }\n }\n return segLevels;\n };\n return TimelineLaneEventRenderer;\n}(FgEventRenderer));\nfunction computeOffsetForSegs(segs) {\n var max = 0;\n for (var _i = 0, segs_7 = segs; _i < segs_7.length; _i++) {\n var seg = segs_7[_i];\n max = Math.max(max, computeOffsetForSeg(seg));\n }\n return max;\n}\nfunction computeOffsetForSeg(seg) {\n if ((seg.top == null)) {\n seg.top = computeOffsetForSegs(seg.above);\n }\n return seg.top + seg.height;\n}\nfunction timeRowSegsCollide(seg0, seg1) {\n return (seg0.left < seg1.right) && (seg0.right > seg1.left);\n}\n\nvar TimelineLaneFillRenderer = /** @class */ (function (_super) {\n __extends(TimelineLaneFillRenderer, _super);\n function TimelineLaneFillRenderer(context, masterContainerEl, timeAxis) {\n var _this = _super.call(this, context) || this;\n _this.masterContainerEl = masterContainerEl;\n _this.timeAxis = timeAxis;\n return _this;\n }\n TimelineLaneFillRenderer.prototype.attachSegs = function (type, segs) {\n if (segs.length) {\n var className = void 0;\n if (type === 'businessHours') {\n className = 'bgevent';\n }\n else {\n className = type.toLowerCase();\n }\n // making a new container each time is OKAY\n // all types of segs (background or business hours or whatever) are rendered in one pass\n var containerEl = createElement('div', { className: 'fc-' + className + '-container' });\n this.masterContainerEl.appendChild(containerEl);\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n containerEl.appendChild(seg.el);\n }\n return [containerEl]; // return value\n }\n };\n TimelineLaneFillRenderer.prototype.computeSegSizes = function (segs) {\n var timeAxis = this.timeAxis;\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n var coords = timeAxis.rangeToCoords(seg);\n seg.left = coords.left;\n seg.right = coords.right;\n }\n };\n TimelineLaneFillRenderer.prototype.assignSegSizes = function (segs) {\n for (var _i = 0, segs_3 = segs; _i < segs_3.length; _i++) {\n var seg = segs_3[_i];\n applyStyle(seg.el, {\n left: seg.left,\n right: -seg.right\n });\n }\n };\n return TimelineLaneFillRenderer;\n}(FillRenderer));\n\nvar TimelineLane = /** @class */ (function (_super) {\n __extends(TimelineLane, _super);\n function TimelineLane(context, fgContainerEl, bgContainerEl, timeAxis) {\n var _this = _super.call(this, context, bgContainerEl) // should el be bgContainerEl???\n || this;\n _this.slicer = new TimelineLaneSlicer();\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize);\n var fillRenderer = _this.fillRenderer = new TimelineLaneFillRenderer(context, bgContainerEl, timeAxis);\n var eventRenderer = _this.eventRenderer = new TimelineLaneEventRenderer(context, fgContainerEl, timeAxis);\n _this.mirrorRenderer = new TimelineLaneEventRenderer(context, fgContainerEl, timeAxis);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'));\n _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'));\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'));\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer));\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.timeAxis = timeAxis;\n return _this;\n }\n TimelineLane.prototype.render = function (props) {\n var slicedProps = this.slicer.sliceProps(props, props.dateProfile, this.timeAxis.tDateProfile.isTimeScale ? null : props.nextDayThreshold, this, this.timeAxis);\n this.renderBusinessHours(slicedProps.businessHourSegs);\n this.renderDateSelection(slicedProps.dateSelectionSegs);\n this.renderBgEvents(slicedProps.bgEventSegs);\n this.renderFgEvents(slicedProps.fgEventSegs);\n this.renderEventSelection(slicedProps.eventSelection);\n this.renderEventDrag(slicedProps.eventDrag);\n this.renderEventResize(slicedProps.eventResize);\n };\n TimelineLane.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderBusinessHours.unrender();\n this.renderDateSelection.unrender();\n this.renderBgEvents.unrender();\n this.renderFgEvents.unrender();\n this.renderEventSelection.unrender();\n this.renderEventDrag.unrender();\n this.renderEventResize.unrender();\n };\n TimelineLane.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.mirrorRenderer.renderSegs(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n };\n TimelineLane.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.mirrorRenderer.unrender(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n };\n TimelineLane.prototype._renderEventResize = function (state) {\n if (state) {\n // HACK. eventRenderer and fillRenderer both use these segs. would compete over seg.el\n var segsForHighlight = state.segs.map(function (seg) {\n return __assign({}, seg);\n });\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', segsForHighlight);\n this.mirrorRenderer.renderSegs(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n };\n TimelineLane.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight');\n this.mirrorRenderer.unrender(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n };\n TimelineLane.prototype.updateSize = function (isResize) {\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n return TimelineLane;\n}(DateComponent));\nvar TimelineLaneSlicer = /** @class */ (function (_super) {\n __extends(TimelineLaneSlicer, _super);\n function TimelineLaneSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimelineLaneSlicer.prototype.sliceRange = function (origRange, timeAxis) {\n var tDateProfile = timeAxis.tDateProfile;\n var dateProfile = timeAxis.props.dateProfile;\n var normalRange = normalizeRange(origRange, tDateProfile, timeAxis.dateEnv);\n var segs = [];\n // protect against when the span is entirely in an invalid date region\n if (timeAxis.computeDateSnapCoverage(normalRange.start) < timeAxis.computeDateSnapCoverage(normalRange.end)) {\n // intersect the footprint's range with the grid's range\n var slicedRange = intersectRanges(normalRange, tDateProfile.normalizedRange);\n if (slicedRange) {\n segs.push({\n start: slicedRange.start,\n end: slicedRange.end,\n isStart: slicedRange.start.valueOf() === normalRange.start.valueOf() && isValidDate(slicedRange.start, tDateProfile, dateProfile, timeAxis.view),\n isEnd: slicedRange.end.valueOf() === normalRange.end.valueOf() && isValidDate(addMs(slicedRange.end, -1), tDateProfile, dateProfile, timeAxis.view)\n });\n }\n }\n return segs;\n };\n return TimelineLaneSlicer;\n}(Slicer));\n\nvar TimelineView = /** @class */ (function (_super) {\n __extends(TimelineView, _super);\n function TimelineView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.el.classList.add('fc-timeline');\n if (_this.opt('eventOverlap') === false) {\n _this.el.classList.add('fc-no-overlap');\n }\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.timeAxis = new TimeAxis(_this.context, _this.el.querySelector('thead .fc-time-area'), _this.el.querySelector('tbody .fc-time-area'));\n _this.lane = new TimelineLane(_this.context, _this.timeAxis.layout.bodyScroller.enhancedScroll.canvas.contentEl, _this.timeAxis.layout.bodyScroller.enhancedScroll.canvas.bgEl, _this.timeAxis);\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.timeAxis.slats.el\n });\n return _this;\n }\n TimelineView.prototype.destroy = function () {\n this.timeAxis.destroy();\n this.lane.destroy();\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n TimelineView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return \"
\";\n };\n TimelineView.prototype.render = function (props) {\n _super.prototype.render.call(this, props); // flags for updateSize, addScroll\n this.timeAxis.receiveProps({\n dateProfile: props.dateProfile\n });\n this.lane.receiveProps(__assign({}, props, { nextDayThreshold: this.nextDayThreshold }));\n };\n TimelineView.prototype.updateSize = function (isResize, totalHeight, isAuto) {\n this.timeAxis.updateSize(isResize, totalHeight, isAuto);\n this.lane.updateSize(isResize);\n };\n // Now Indicator\n // ------------------------------------------------------------------------------------------\n TimelineView.prototype.getNowIndicatorUnit = function (dateProfile) {\n return this.timeAxis.getNowIndicatorUnit(dateProfile);\n };\n TimelineView.prototype.renderNowIndicator = function (date) {\n this.timeAxis.renderNowIndicator(date);\n };\n TimelineView.prototype.unrenderNowIndicator = function () {\n this.timeAxis.unrenderNowIndicator();\n };\n // Scroll System\n // ------------------------------------------------------------------------------------------\n TimelineView.prototype.computeDateScroll = function (duration) {\n return this.timeAxis.computeDateScroll(duration);\n };\n TimelineView.prototype.applyScroll = function (scroll, isResize) {\n _super.prototype.applyScroll.call(this, scroll, isResize); // will call applyDateScroll\n // avoid updating stickyscroll too often\n // TODO: repeat code as ResourceTimelineView::updateSize\n var calendar = this.calendar;\n if (isResize || calendar.isViewUpdated || calendar.isDatesUpdated || calendar.isEventsUpdated) {\n this.timeAxis.updateStickyScrollers();\n }\n };\n TimelineView.prototype.applyDateScroll = function (scroll) {\n this.timeAxis.applyDateScroll(scroll);\n };\n TimelineView.prototype.queryScroll = function () {\n var enhancedScroll = this.timeAxis.layout.bodyScroller.enhancedScroll;\n return {\n top: enhancedScroll.getScrollTop(),\n left: enhancedScroll.getScrollLeft()\n };\n };\n // Hit System\n // ------------------------------------------------------------------------------------------\n TimelineView.prototype.buildPositionCaches = function () {\n this.timeAxis.slats.updateSize();\n };\n TimelineView.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var slatHit = this.timeAxis.slats.positionToHit(positionLeft);\n if (slatHit) {\n return {\n component: this,\n dateSpan: slatHit.dateSpan,\n rect: {\n left: slatHit.left,\n right: slatHit.right,\n top: 0,\n bottom: elHeight\n },\n dayEl: slatHit.dayEl,\n layer: 0\n };\n }\n };\n return TimelineView;\n}(View));\n\nvar main = createPlugin({\n defaultView: 'timelineDay',\n views: {\n timeline: {\n class: TimelineView,\n eventResizableFromStart: true // how is this consumed for TimelineView tho?\n },\n timelineDay: {\n type: 'timeline',\n duration: { days: 1 }\n },\n timelineWeek: {\n type: 'timeline',\n duration: { weeks: 1 }\n },\n timelineMonth: {\n type: 'timeline',\n duration: { months: 1 }\n },\n timelineYear: {\n type: 'timeline',\n duration: { years: 1 }\n }\n }\n});\n\nexport default main;\nexport { HeaderBodyLayout, ScrollJoiner, StickyScroller, TimeAxis, TimelineLane, TimelineView };\n","/*!\nFullCalendar Resource Timeline Plugin v4.3.0\nDocs & License: https://fullcalendar.io/scheduler\n(c) 2019 Adam Shaw\n*/\n\nimport { removeElement, Component, memoizeRendering, createElement, htmlToElement, htmlEscape, isArraysEqual, EmitterMixin, memoize, parseFieldSpecs, PositionCache, applyStyleProp, View, createPlugin } from '@fullcalendar/core';\nimport TimelinePlugin, { TimelineLane, HeaderBodyLayout, TimeAxis, ScrollJoiner, StickyScroller } from '@fullcalendar/timeline';\nimport ResourceCommonPlugin, { isGroupsEqual, buildResourceFields, buildResourceTextFunc, ResourceApi, ResourceSplitter, buildRowNodes } from '@fullcalendar/resource-common';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar Row = /** @class */ (function (_super) {\n __extends(Row, _super);\n function Row(context, spreadsheetParent, spreadsheetNextSibling, timeAxisParent, timeAxisNextSibling) {\n var _this = _super.call(this, context) || this;\n _this.isSizeDirty = false;\n spreadsheetParent.insertBefore(_this.spreadsheetTr = document.createElement('tr'), spreadsheetNextSibling);\n timeAxisParent.insertBefore(_this.timeAxisTr = document.createElement('tr'), timeAxisNextSibling);\n return _this;\n }\n Row.prototype.destroy = function () {\n removeElement(this.spreadsheetTr);\n removeElement(this.timeAxisTr);\n _super.prototype.destroy.call(this);\n };\n Row.prototype.updateSize = function (isResize) {\n this.isSizeDirty = false;\n };\n return Row;\n}(Component));\n\nfunction updateExpanderIcon(el, isExpanded) {\n var classList = el.classList;\n if (isExpanded) {\n classList.remove('fc-icon-plus-square');\n classList.add('fc-icon-minus-square');\n }\n else {\n classList.remove('fc-icon-minus-square');\n classList.add('fc-icon-plus-square');\n }\n}\nfunction clearExpanderIcon(el) {\n var classList = el.classList;\n classList.remove('fc-icon-minus-square');\n classList.remove('fc-icon-plus-square');\n}\nfunction updateTrResourceId(tr, resourceId) {\n tr.setAttribute('data-resource-id', resourceId);\n}\n\nvar GroupRow = /** @class */ (function (_super) {\n __extends(GroupRow, _super);\n function GroupRow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._renderCells = memoizeRendering(_this.renderCells, _this.unrenderCells);\n _this._updateExpanderIcon = memoizeRendering(_this.updateExpanderIcon, null, [_this._renderCells]);\n _this.onExpanderClick = function (ev) {\n var props = _this.props;\n _this.calendar.dispatch({\n type: 'SET_RESOURCE_ENTITY_EXPANDED',\n id: props.id,\n isExpanded: !props.isExpanded\n });\n };\n return _this;\n }\n GroupRow.prototype.render = function (props) {\n this._renderCells(props.group, props.spreadsheetColCnt);\n this._updateExpanderIcon(props.isExpanded);\n this.isSizeDirty = true;\n };\n GroupRow.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._renderCells.unrender(); // should unrender everything else\n };\n GroupRow.prototype.renderCells = function (group, spreadsheetColCnt) {\n var spreadsheetContentEl = this.renderSpreadsheetContent(group);\n this.spreadsheetTr.appendChild(createElement('td', {\n className: 'fc-divider',\n colSpan: spreadsheetColCnt // span across all columns\n }, this.spreadsheetHeightEl = createElement('div', null, spreadsheetContentEl)) // needed by setTrInnerHeight\n );\n this.expanderIconEl = spreadsheetContentEl.querySelector('.fc-icon');\n this.expanderIconEl.parentElement.addEventListener('click', this.onExpanderClick);\n // insert a single cell, with a single empty
.\n // there will be no content\n this.timeAxisTr.appendChild(createElement('td', { className: 'fc-divider' }, this.timeAxisHeightEl = document.createElement('div')));\n };\n GroupRow.prototype.unrenderCells = function () {\n this.spreadsheetTr.innerHTML = '';\n this.timeAxisTr.innerHTML = '';\n };\n /*\n Renders the content wrapper element that will be inserted into this row's TD cell.\n */\n GroupRow.prototype.renderSpreadsheetContent = function (group) {\n var text = this.renderCellText(group);\n var contentEl = htmlToElement('
' +\n '' +\n '' +\n '' +\n '' +\n (text ? htmlEscape(text) : ' ') +\n '' +\n '
');\n var filter = group.spec.render;\n if (typeof filter === 'function') {\n contentEl = filter(contentEl, group.value) || contentEl;\n }\n return contentEl;\n };\n GroupRow.prototype.renderCellText = function (group) {\n var text = group.value || ''; // might be null/undefined if an ad-hoc grouping\n var filter = group.spec.text;\n if (typeof filter === 'function') {\n text = filter(text) || text;\n }\n return text;\n };\n GroupRow.prototype.getHeightEls = function () {\n return [this.spreadsheetHeightEl, this.timeAxisHeightEl];\n };\n GroupRow.prototype.updateExpanderIcon = function (isExpanded) {\n updateExpanderIcon(this.expanderIconEl, isExpanded);\n };\n return GroupRow;\n}(Row));\nGroupRow.addEqualityFuncs({\n group: isGroupsEqual // HACK for ResourceTimelineView::renderRows\n});\n\nvar SpreadsheetRow = /** @class */ (function (_super) {\n __extends(SpreadsheetRow, _super);\n function SpreadsheetRow(context, tr) {\n var _this = _super.call(this, context) || this;\n _this._renderRow = memoizeRendering(_this.renderRow, _this.unrenderRow);\n _this._updateTrResourceId = memoizeRendering(updateTrResourceId, null, [_this._renderRow]);\n _this._updateExpanderIcon = memoizeRendering(_this.updateExpanderIcon, null, [_this._renderRow]);\n _this.onExpanderClick = function (ev) {\n var props = _this.props;\n _this.calendar.dispatch({\n type: 'SET_RESOURCE_ENTITY_EXPANDED',\n id: props.id,\n isExpanded: !props.isExpanded\n });\n };\n _this.tr = tr;\n return _this;\n }\n SpreadsheetRow.prototype.render = function (props) {\n this._renderRow(props.resource, props.rowSpans, props.depth, props.colSpecs);\n this._updateTrResourceId(this.tr, props.resource.id); // TODO: only use public ID?\n this._updateExpanderIcon(props.hasChildren, props.isExpanded);\n };\n SpreadsheetRow.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._renderRow.unrender(); // should unrender everything else\n };\n SpreadsheetRow.prototype.renderRow = function (resource, rowSpans, depth, colSpecs) {\n var _a = this, tr = _a.tr, theme = _a.theme, calendar = _a.calendar, view = _a.view;\n var resourceFields = buildResourceFields(resource); // slightly inefficient. already done up the call stack\n var mainTd;\n for (var i = 0; i < colSpecs.length; i++) {\n var colSpec = colSpecs[i];\n var rowSpan = rowSpans[i];\n if (rowSpan === 0) { // not responsible for group-based rows. VRowGroup is\n continue;\n }\n else if (rowSpan == null) {\n rowSpan = 1;\n }\n var text = void 0;\n if (colSpec.field) {\n text = resourceFields[colSpec.field];\n }\n else {\n text = buildResourceTextFunc(colSpec.text, calendar)(resource);\n }\n var contentEl = htmlToElement('
' +\n (colSpec.isMain ? renderIconHtml(depth) : '') +\n '' +\n (text ? htmlEscape(text) : ' ') +\n '' +\n '
');\n if (typeof colSpec.render === 'function') { // a filter function for the element\n contentEl = colSpec.render(new ResourceApi(calendar, resource), contentEl) || contentEl;\n }\n if (rowSpan > 1) {\n contentEl.classList.add('fc-sticky');\n }\n var td = createElement('td', {\n className: theme.getClass('widgetContent'),\n rowspan: rowSpan\n }, contentEl);\n // the first cell of the row needs to have an inner div for setTrInnerHeight\n if (colSpec.isMain) {\n td.appendChild(this.heightEl = createElement('div', null, td.childNodes) // inner wrap\n );\n mainTd = td;\n }\n tr.appendChild(td);\n }\n this.expanderIconEl = tr.querySelector('.fc-expander-space .fc-icon');\n // wait until very end\n view.publiclyTrigger('resourceRender', [\n {\n resource: new ResourceApi(calendar, resource),\n el: mainTd,\n view: view\n }\n ]);\n };\n SpreadsheetRow.prototype.unrenderRow = function () {\n this.tr.innerHTML = '';\n };\n SpreadsheetRow.prototype.updateExpanderIcon = function (hasChildren, isExpanded) {\n var expanderIconEl = this.expanderIconEl;\n var expanderEl = expanderIconEl.parentElement;\n if (expanderIconEl &&\n expanderEl // why would this be null?? was the case in IE11\n ) {\n if (hasChildren) {\n expanderEl.addEventListener('click', this.onExpanderClick);\n expanderEl.classList.add('fc-expander');\n updateExpanderIcon(expanderIconEl, isExpanded);\n }\n else {\n expanderEl.removeEventListener('click', this.onExpanderClick);\n expanderEl.classList.remove('fc-expander');\n clearExpanderIcon(expanderIconEl);\n }\n }\n };\n return SpreadsheetRow;\n}(Component));\n/*\nRenders the HTML responsible for the subrow expander area,\nas well as the space before it (used to align expanders of similar depths)\n*/\nfunction renderIconHtml(depth) {\n var html = '';\n for (var i = 0; i < depth; i++) {\n html += '';\n }\n html +=\n '' +\n '' +\n '';\n return html;\n}\n\nvar ResourceRow = /** @class */ (function (_super) {\n __extends(ResourceRow, _super);\n function ResourceRow(context, a, b, c, d, timeAxis) {\n var _this = _super.call(this, context, a, b, c, d) || this;\n _this._updateTrResourceId = memoizeRendering(updateTrResourceId);\n _this.spreadsheetRow = new SpreadsheetRow(context, _this.spreadsheetTr);\n _this.timeAxisTr.appendChild(createElement('td', { className: _this.theme.getClass('widgetContent') }, _this.innerContainerEl = document.createElement('div')));\n _this.lane = new TimelineLane(context, _this.innerContainerEl, _this.innerContainerEl, timeAxis);\n return _this;\n }\n ResourceRow.prototype.destroy = function () {\n this.spreadsheetRow.destroy();\n this.lane.destroy();\n _super.prototype.destroy.call(this);\n };\n ResourceRow.prototype.render = function (props) {\n // spreadsheetRow handles calling updateTrResourceId for spreadsheetTr\n this.spreadsheetRow.receiveProps({\n colSpecs: props.colSpecs,\n id: props.id,\n rowSpans: props.rowSpans,\n depth: props.depth,\n isExpanded: props.isExpanded,\n hasChildren: props.hasChildren,\n resource: props.resource\n });\n this._updateTrResourceId(this.timeAxisTr, props.resource.id);\n this.lane.receiveProps({\n dateProfile: props.dateProfile,\n nextDayThreshold: props.nextDayThreshold,\n businessHours: props.businessHours,\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize\n });\n this.isSizeDirty = true;\n };\n ResourceRow.prototype.updateSize = function (isResize) {\n _super.prototype.updateSize.call(this, isResize);\n this.lane.updateSize(isResize);\n };\n ResourceRow.prototype.getHeightEls = function () {\n return [this.spreadsheetRow.heightEl, this.innerContainerEl];\n };\n return ResourceRow;\n}(Row));\nResourceRow.addEqualityFuncs({\n rowSpans: isArraysEqual // HACK for isSizeDirty, ResourceTimelineView::renderRows\n});\n\nvar COL_MIN_WIDTH = 30;\nvar SpreadsheetHeader = /** @class */ (function (_super) {\n __extends(SpreadsheetHeader, _super);\n function SpreadsheetHeader(context, parentEl) {\n var _this = _super.call(this, context) || this;\n _this.resizables = [];\n _this.colWidths = [];\n _this.emitter = new EmitterMixin();\n parentEl.appendChild(_this.tableEl = createElement('table', {\n className: _this.theme.getClass('tableGrid')\n }));\n return _this;\n }\n SpreadsheetHeader.prototype.destroy = function () {\n for (var _i = 0, _a = this.resizables; _i < _a.length; _i++) {\n var resizable = _a[_i];\n resizable.destroy();\n }\n removeElement(this.tableEl);\n _super.prototype.destroy.call(this);\n };\n SpreadsheetHeader.prototype.render = function (props) {\n var theme = this.theme;\n var colSpecs = props.colSpecs;\n var html = '' + props.colTags + '' +\n '';\n if (props.superHeaderText) {\n html +=\n '' +\n '' +\n '
' +\n '' +\n htmlEscape(props.superHeaderText) +\n '' +\n '
' +\n '' +\n '';\n }\n html += '';\n for (var i = 0; i < colSpecs.length; i++) {\n var o = colSpecs[i];\n var isLast = i === (colSpecs.length - 1);\n html +=\n \"\" +\n '
' +\n '
' +\n (o.isMain ?\n '' +\n '' +\n '' :\n '') +\n '' +\n htmlEscape(o.labelText || '') + // what about normalizing this value ahead of time?\n '' +\n '
' +\n (!isLast ? '
' : '') +\n '
' +\n '';\n }\n html += '';\n html += '';\n this.tableEl.innerHTML = html;\n this.thEls = Array.prototype.slice.call(this.tableEl.querySelectorAll('th'));\n this.colEls = Array.prototype.slice.call(this.tableEl.querySelectorAll('col'));\n this.resizerEls = Array.prototype.slice.call(this.tableEl.querySelectorAll('.fc-col-resizer'));\n this.initColResizing();\n };\n SpreadsheetHeader.prototype.initColResizing = function () {\n var _this = this;\n var ElementDraggingImpl = this.calendar.pluginSystem.hooks.elementDraggingImpl;\n if (ElementDraggingImpl) {\n this.resizables = this.resizerEls.map(function (handleEl, colIndex) {\n var dragging = new ElementDraggingImpl(handleEl);\n var startWidth;\n dragging.emitter.on('dragstart', function () {\n startWidth = _this.colWidths[colIndex];\n if (typeof startWidth !== 'number') {\n startWidth = _this.thEls[colIndex].getBoundingClientRect().width;\n }\n });\n dragging.emitter.on('dragmove', function (pev) {\n _this.colWidths[colIndex] = Math.max(startWidth + pev.deltaX * (_this.isRtl ? -1 : 1), COL_MIN_WIDTH);\n _this.emitter.trigger('colwidthchange', _this.colWidths);\n });\n dragging.setAutoScrollEnabled(false); // because gets weird with auto-scrolling time area\n return dragging;\n });\n }\n };\n return SpreadsheetHeader;\n}(Component));\n\nvar Spreadsheet = /** @class */ (function (_super) {\n __extends(Spreadsheet, _super);\n function Spreadsheet(context, headParentEl, bodyParentEl) {\n var _this = _super.call(this, context) || this;\n _this._renderCells = memoizeRendering(_this.renderCells, _this.unrenderCells);\n _this.layout = new HeaderBodyLayout(headParentEl, bodyParentEl, 'clipped-scroll');\n var headerEnhancedScroller = _this.layout.headerScroller.enhancedScroll;\n var bodyEnhancedScroller = _this.layout.bodyScroller.enhancedScroll;\n _this.header = new SpreadsheetHeader(context, headerEnhancedScroller.canvas.contentEl);\n _this.header.emitter.on('colwidthchange', function (colWidths) {\n _this.applyColWidths(colWidths);\n });\n bodyEnhancedScroller.canvas.contentEl\n .appendChild(_this.bodyContainerEl = createElement('div', { className: 'fc-rows' }, '' +\n '' +\n '' +\n '
'));\n _this.bodyColGroup = _this.bodyContainerEl.querySelector('colgroup');\n _this.bodyTbody = _this.bodyContainerEl.querySelector('tbody');\n return _this;\n }\n Spreadsheet.prototype.destroy = function () {\n this.header.destroy();\n this.layout.destroy();\n this._renderCells.unrender();\n _super.prototype.destroy.call(this);\n };\n Spreadsheet.prototype.render = function (props) {\n this._renderCells(props.superHeaderText, props.colSpecs);\n };\n Spreadsheet.prototype.renderCells = function (superHeaderText, colSpecs) {\n var colTags = this.renderColTags(colSpecs);\n this.header.receiveProps({\n superHeaderText: superHeaderText,\n colSpecs: colSpecs,\n colTags: colTags\n });\n this.bodyColGroup.innerHTML = colTags;\n this.bodyColEls = Array.prototype.slice.call(this.bodyColGroup.querySelectorAll('col'));\n this.applyColWidths(colSpecs.map(function (colSpec) { return colSpec.width; }));\n };\n Spreadsheet.prototype.unrenderCells = function () {\n this.bodyColGroup.innerHTML = '';\n };\n Spreadsheet.prototype.renderColTags = function (colSpecs) {\n var html = '';\n for (var _i = 0, colSpecs_1 = colSpecs; _i < colSpecs_1.length; _i++) {\n var o = colSpecs_1[_i];\n if (o.isMain) {\n html += '';\n }\n else {\n html += '';\n }\n }\n return html;\n };\n Spreadsheet.prototype.updateSize = function (isResize, totalHeight, isAuto) {\n this.layout.setHeight(totalHeight, isAuto);\n };\n Spreadsheet.prototype.applyColWidths = function (colWidths) {\n var _this = this;\n colWidths.forEach(function (colWidth, colIndex) {\n var headEl = _this.header.colEls[colIndex]; // bad to access child\n var bodyEl = _this.bodyColEls[colIndex];\n var styleVal;\n if (typeof colWidth === 'number') {\n styleVal = colWidth + 'px';\n }\n else if (typeof colWidth == null) {\n styleVal = '';\n }\n headEl.style.width = bodyEl.style.width = styleVal;\n });\n };\n return Spreadsheet;\n}(Component));\n\nvar MIN_RESOURCE_AREA_WIDTH = 30; // definitely bigger than scrollbars\nvar ResourceTimelineView = /** @class */ (function (_super) {\n __extends(ResourceTimelineView, _super);\n function ResourceTimelineView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.isStickyScrollDirty = false;\n _this.rowNodes = [];\n _this.rowComponents = [];\n _this.rowComponentsById = {};\n _this.resourceAreaWidthDraggings = [];\n _this.splitter = new ResourceSplitter(); // doesn't let it do businessHours tho\n _this.hasResourceBusinessHours = memoize(hasResourceBusinessHours);\n _this.buildRowNodes = memoize(buildRowNodes);\n _this.hasNesting = memoize(hasNesting);\n _this._updateHasNesting = memoizeRendering(_this.updateHasNesting);\n var allColSpecs = _this.opt('resourceColumns') || [];\n var labelText = _this.opt('resourceLabelText'); // TODO: view.override\n var defaultLabelText = 'Resources'; // TODO: view.defaults\n var superHeaderText = null;\n if (!allColSpecs.length) {\n allColSpecs.push({\n labelText: labelText || defaultLabelText,\n text: buildResourceTextFunc(_this.opt('resourceText'), _this.calendar)\n });\n }\n else {\n superHeaderText = labelText;\n }\n var plainColSpecs = [];\n var groupColSpecs = [];\n var groupSpecs = [];\n var isVGrouping = false;\n var isHGrouping = false;\n for (var _i = 0, allColSpecs_1 = allColSpecs; _i < allColSpecs_1.length; _i++) {\n var colSpec = allColSpecs_1[_i];\n if (colSpec.group) {\n groupColSpecs.push(colSpec);\n }\n else {\n plainColSpecs.push(colSpec);\n }\n }\n plainColSpecs[0].isMain = true;\n if (groupColSpecs.length) {\n groupSpecs = groupColSpecs;\n isVGrouping = true;\n }\n else {\n var hGroupField = _this.opt('resourceGroupField');\n if (hGroupField) {\n isHGrouping = true;\n groupSpecs.push({\n field: hGroupField,\n text: _this.opt('resourceGroupText'),\n render: _this.opt('resourceGroupRender')\n });\n }\n }\n var allOrderSpecs = parseFieldSpecs(_this.opt('resourceOrder'));\n var plainOrderSpecs = [];\n for (var _a = 0, allOrderSpecs_1 = allOrderSpecs; _a < allOrderSpecs_1.length; _a++) {\n var orderSpec = allOrderSpecs_1[_a];\n var isGroup = false;\n for (var _b = 0, groupSpecs_1 = groupSpecs; _b < groupSpecs_1.length; _b++) {\n var groupSpec = groupSpecs_1[_b];\n if (groupSpec.field === orderSpec.field) {\n groupSpec.order = orderSpec.order; // -1, 0, 1\n isGroup = true;\n break;\n }\n }\n if (!isGroup) {\n plainOrderSpecs.push(orderSpec);\n }\n }\n _this.superHeaderText = superHeaderText;\n _this.isVGrouping = isVGrouping;\n _this.isHGrouping = isHGrouping;\n _this.groupSpecs = groupSpecs;\n _this.colSpecs = groupColSpecs.concat(plainColSpecs);\n _this.orderSpecs = plainOrderSpecs;\n // START RENDERING...\n _this.el.classList.add('fc-timeline');\n if (_this.opt('eventOverlap') === false) {\n _this.el.classList.add('fc-no-overlap');\n }\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.resourceAreaHeadEl = _this.el.querySelector('thead .fc-resource-area');\n _this.setResourceAreaWidth(_this.opt('resourceAreaWidth'));\n _this.initResourceAreaWidthDragging();\n _this.miscHeight = _this.el.getBoundingClientRect().height;\n _this.spreadsheet = new Spreadsheet(_this.context, _this.resourceAreaHeadEl, _this.el.querySelector('tbody .fc-resource-area'));\n _this.timeAxis = new TimeAxis(_this.context, _this.el.querySelector('thead .fc-time-area'), _this.el.querySelector('tbody .fc-time-area'));\n var timeAxisRowContainer = createElement('div', { className: 'fc-rows' }, '
');\n _this.timeAxis.layout.bodyScroller.enhancedScroll.canvas.contentEl.appendChild(timeAxisRowContainer);\n _this.timeAxisTbody = timeAxisRowContainer.querySelector('tbody');\n _this.lane = new TimelineLane(_this.context, null, _this.timeAxis.layout.bodyScroller.enhancedScroll.canvas.bgEl, _this.timeAxis);\n _this.bodyScrollJoiner = new ScrollJoiner('vertical', [\n _this.spreadsheet.layout.bodyScroller,\n _this.timeAxis.layout.bodyScroller\n ]);\n // after scrolljoiner\n _this.spreadsheetBodyStickyScroller = new StickyScroller(_this.spreadsheet.layout.bodyScroller.enhancedScroll, _this.isRtl, true // isVertical\n );\n _this.spreadsheet.receiveProps({\n superHeaderText: _this.superHeaderText,\n colSpecs: _this.colSpecs\n });\n // Component...\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.timeAxis.slats.el\n });\n return _this;\n }\n ResourceTimelineView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return \"
\";\n };\n ResourceTimelineView.prototype.render = function (props) {\n _super.prototype.render.call(this, props);\n var splitProps = this.splitter.splitProps(props);\n var hasResourceBusinessHours = this.hasResourceBusinessHours(props.resourceStore);\n this.timeAxis.receiveProps({\n dateProfile: props.dateProfile\n });\n // for all-resource bg events / selections / business-hours\n this.lane.receiveProps(__assign({}, splitProps[''], { dateProfile: props.dateProfile, nextDayThreshold: this.nextDayThreshold, businessHours: hasResourceBusinessHours ? null : props.businessHours }));\n var newRowNodes = this.buildRowNodes(props.resourceStore, this.groupSpecs, this.orderSpecs, this.isVGrouping, props.resourceEntityExpansions, this.opt('resourcesInitiallyExpanded'));\n this._updateHasNesting(this.hasNesting(newRowNodes));\n this.diffRows(newRowNodes);\n this.renderRows(props.dateProfile, hasResourceBusinessHours ? props.businessHours : null, // CONFUSING, comment\n splitProps);\n };\n ResourceTimelineView.prototype.updateHasNesting = function (isNesting) {\n var classList = this.el.classList;\n if (isNesting) {\n classList.remove('fc-flat');\n }\n else {\n classList.add('fc-flat');\n }\n };\n ResourceTimelineView.prototype.diffRows = function (newNodes) {\n var oldNodes = this.rowNodes;\n var oldLen = oldNodes.length;\n var oldIndexHash = {}; // id -> index\n var oldI = 0;\n var newI = 0;\n for (oldI = 0; oldI < oldLen; oldI++) {\n oldIndexHash[oldNodes[oldI].id] = oldI;\n }\n // iterate new nodes\n for (oldI = 0, newI = 0; newI < newNodes.length; newI++) {\n var newNode = newNodes[newI];\n var oldIFound = oldIndexHash[newNode.id];\n if (oldIFound != null && oldIFound >= oldI) {\n this.removeRows(newI, oldIFound - oldI, oldNodes); // won't do anything if same index\n oldI = oldIFound + 1;\n }\n else {\n this.addRow(newI, newNode);\n }\n }\n // old rows that weren't found need to be removed\n this.removeRows(newI, oldLen - oldI, oldNodes); // won't do anything if same index\n this.rowNodes = newNodes;\n };\n /*\n rowComponents is the in-progress result\n */\n ResourceTimelineView.prototype.addRow = function (index, rowNode) {\n var _a = this, rowComponents = _a.rowComponents, rowComponentsById = _a.rowComponentsById;\n var nextComponent = rowComponents[index];\n var newComponent = this.buildChildComponent(rowNode, this.spreadsheet.bodyTbody, nextComponent ? nextComponent.spreadsheetTr : null, this.timeAxisTbody, nextComponent ? nextComponent.timeAxisTr : null);\n rowComponents.splice(index, 0, newComponent);\n rowComponentsById[rowNode.id] = newComponent;\n };\n ResourceTimelineView.prototype.removeRows = function (startIndex, len, oldRowNodes) {\n if (len) {\n var _a = this, rowComponents = _a.rowComponents, rowComponentsById = _a.rowComponentsById;\n for (var i = 0; i < len; i++) {\n var rowComponent = rowComponents[startIndex + i];\n rowComponent.destroy();\n delete rowComponentsById[oldRowNodes[i].id];\n }\n rowComponents.splice(startIndex, len);\n }\n };\n ResourceTimelineView.prototype.buildChildComponent = function (node, spreadsheetTbody, spreadsheetNext, timeAxisTbody, timeAxisNext) {\n if (node.group) {\n return new GroupRow(this.context, spreadsheetTbody, spreadsheetNext, timeAxisTbody, timeAxisNext);\n }\n else if (node.resource) {\n return new ResourceRow(this.context, spreadsheetTbody, spreadsheetNext, timeAxisTbody, timeAxisNext, this.timeAxis);\n }\n };\n ResourceTimelineView.prototype.renderRows = function (dateProfile, fallbackBusinessHours, splitProps) {\n var _a = this, rowNodes = _a.rowNodes, rowComponents = _a.rowComponents;\n for (var i = 0; i < rowNodes.length; i++) {\n var rowNode = rowNodes[i];\n var rowComponent = rowComponents[i];\n if (rowNode.group) {\n rowComponent.receiveProps({\n spreadsheetColCnt: this.colSpecs.length,\n id: rowNode.id,\n isExpanded: rowNode.isExpanded,\n group: rowNode.group\n });\n }\n else {\n var resource = rowNode.resource;\n rowComponent.receiveProps(__assign({}, splitProps[resource.id], { dateProfile: dateProfile, nextDayThreshold: this.nextDayThreshold, businessHours: resource.businessHours || fallbackBusinessHours, colSpecs: this.colSpecs, id: rowNode.id, rowSpans: rowNode.rowSpans, depth: rowNode.depth, isExpanded: rowNode.isExpanded, hasChildren: rowNode.hasChildren, resource: rowNode.resource }));\n }\n }\n };\n ResourceTimelineView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n // FYI: this ordering is really important\n var calendar = this.calendar;\n var isBaseSizing = isResize || calendar.isViewUpdated || calendar.isDatesUpdated || calendar.isEventsUpdated;\n if (isBaseSizing) {\n this.syncHeadHeights();\n this.timeAxis.updateSize(isResize, viewHeight - this.miscHeight, isAuto);\n this.spreadsheet.updateSize(isResize, viewHeight - this.miscHeight, isAuto);\n }\n var rowSizingCnt = this.updateRowSizes(isResize);\n this.lane.updateSize(isResize); // is efficient. uses flags\n if (isBaseSizing || rowSizingCnt) {\n this.bodyScrollJoiner.update();\n this.timeAxis.layout.scrollJoiner.update(); // hack\n this.rowPositions = new PositionCache(this.timeAxis.slats.el, this.rowComponents.map(function (rowComponent) {\n return rowComponent.timeAxisTr;\n }), false, // isHorizontal\n true // isVertical\n );\n this.rowPositions.build();\n this.isStickyScrollDirty = true;\n }\n };\n ResourceTimelineView.prototype.syncHeadHeights = function () {\n var spreadsheetHeadEl = this.spreadsheet.header.tableEl;\n var timeAxisHeadEl = this.timeAxis.header.tableEl;\n spreadsheetHeadEl.style.height = '';\n timeAxisHeadEl.style.height = '';\n var max = Math.max(spreadsheetHeadEl.getBoundingClientRect().height, timeAxisHeadEl.getBoundingClientRect().height);\n spreadsheetHeadEl.style.height =\n timeAxisHeadEl.style.height = max + 'px';\n };\n ResourceTimelineView.prototype.updateRowSizes = function (isResize) {\n var dirtyRowComponents = this.rowComponents;\n if (!isResize) {\n dirtyRowComponents = dirtyRowComponents.filter(function (rowComponent) {\n return rowComponent.isSizeDirty;\n });\n }\n var elArrays = dirtyRowComponents.map(function (rowComponent) {\n return rowComponent.getHeightEls();\n });\n // reset to natural heights\n for (var _i = 0, elArrays_1 = elArrays; _i < elArrays_1.length; _i++) {\n var elArray = elArrays_1[_i];\n for (var _a = 0, elArray_1 = elArray; _a < elArray_1.length; _a++) {\n var el = elArray_1[_a];\n el.style.height = '';\n }\n }\n // let rows update their contents' heights\n for (var _b = 0, dirtyRowComponents_1 = dirtyRowComponents; _b < dirtyRowComponents_1.length; _b++) {\n var rowComponent = dirtyRowComponents_1[_b];\n rowComponent.updateSize(isResize); // will reset isSizeDirty\n }\n var maxHeights = elArrays.map(function (elArray) {\n var maxHeight = null;\n for (var _i = 0, elArray_2 = elArray; _i < elArray_2.length; _i++) {\n var el = elArray_2[_i];\n var height = el.getBoundingClientRect().height;\n if (maxHeight === null || height > maxHeight) {\n maxHeight = height;\n }\n }\n return maxHeight;\n });\n for (var i = 0; i < elArrays.length; i++) {\n for (var _c = 0, _d = elArrays[i]; _c < _d.length; _c++) {\n var el = _d[_c];\n el.style.height = maxHeights[i] + 'px';\n }\n }\n return dirtyRowComponents.length;\n };\n ResourceTimelineView.prototype.destroy = function () {\n for (var _i = 0, _a = this.rowComponents; _i < _a.length; _i++) {\n var rowComponent = _a[_i];\n rowComponent.destroy();\n }\n this.rowNodes = [];\n this.rowComponents = [];\n this.spreadsheet.destroy();\n this.timeAxis.destroy();\n for (var _b = 0, _c = this.resourceAreaWidthDraggings; _b < _c.length; _b++) {\n var resourceAreaWidthDragging = _c[_b];\n resourceAreaWidthDragging.destroy();\n }\n this.spreadsheetBodyStickyScroller.destroy();\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n // Now Indicator\n // ------------------------------------------------------------------------------------------\n ResourceTimelineView.prototype.getNowIndicatorUnit = function (dateProfile) {\n return this.timeAxis.getNowIndicatorUnit(dateProfile);\n };\n ResourceTimelineView.prototype.renderNowIndicator = function (date) {\n this.timeAxis.renderNowIndicator(date);\n };\n ResourceTimelineView.prototype.unrenderNowIndicator = function () {\n this.timeAxis.unrenderNowIndicator();\n };\n // Scrolling\n // ------------------------------------------------------------------------------------------------------------------\n // this is useful for scrolling prev/next dates while resource is scrolled down\n ResourceTimelineView.prototype.queryScroll = function () {\n var scroll = _super.prototype.queryScroll.call(this);\n if (this.props.resourceStore) {\n __assign(scroll, this.queryResourceScroll());\n }\n return scroll;\n };\n ResourceTimelineView.prototype.applyScroll = function (scroll, isResize) {\n _super.prototype.applyScroll.call(this, scroll, isResize);\n if (this.props.resourceStore) {\n this.applyResourceScroll(scroll);\n }\n // avoid updating stickyscroll too often\n if (isResize || this.isStickyScrollDirty) {\n this.isStickyScrollDirty = false;\n this.spreadsheetBodyStickyScroller.updateSize();\n this.timeAxis.updateStickyScrollers();\n }\n };\n ResourceTimelineView.prototype.computeDateScroll = function (duration) {\n return this.timeAxis.computeDateScroll(duration);\n };\n ResourceTimelineView.prototype.queryDateScroll = function () {\n return this.timeAxis.queryDateScroll();\n };\n ResourceTimelineView.prototype.applyDateScroll = function (scroll) {\n this.timeAxis.applyDateScroll(scroll);\n };\n ResourceTimelineView.prototype.queryResourceScroll = function () {\n var _a = this, rowComponents = _a.rowComponents, rowNodes = _a.rowNodes;\n var scroll = {};\n var scrollerTop = this.timeAxis.layout.bodyScroller.el.getBoundingClientRect().top; // fixed position\n for (var i = 0; i < rowComponents.length; i++) {\n var rowComponent = rowComponents[i];\n var rowNode = rowNodes[i];\n var el = rowComponent.timeAxisTr;\n var elBottom = el.getBoundingClientRect().bottom; // fixed position\n if (elBottom > scrollerTop) {\n scroll.rowId = rowNode.id;\n scroll.bottom = elBottom - scrollerTop;\n break;\n }\n }\n // TODO: what about left scroll state for spreadsheet area?\n return scroll;\n };\n ResourceTimelineView.prototype.applyResourceScroll = function (scroll) {\n var rowId = scroll.forcedRowId || scroll.rowId;\n if (rowId) {\n var rowComponent = this.rowComponentsById[rowId];\n if (rowComponent) {\n var el = rowComponent.timeAxisTr;\n if (el) {\n var innerTop = this.timeAxis.layout.bodyScroller.enhancedScroll.canvas.el.getBoundingClientRect().top;\n var rowRect = el.getBoundingClientRect();\n var scrollTop = (scroll.forcedRowId ?\n rowRect.top : // just use top edge\n rowRect.bottom - scroll.bottom) - // pixels from bottom edge\n innerTop;\n this.timeAxis.layout.bodyScroller.enhancedScroll.setScrollTop(scrollTop);\n this.spreadsheet.layout.bodyScroller.enhancedScroll.setScrollTop(scrollTop);\n }\n }\n }\n };\n // TODO: scrollToResource\n // Hit System\n // ------------------------------------------------------------------------------------------\n ResourceTimelineView.prototype.buildPositionCaches = function () {\n this.timeAxis.slats.updateSize();\n this.rowPositions.build();\n };\n ResourceTimelineView.prototype.queryHit = function (positionLeft, positionTop) {\n var rowPositions = this.rowPositions;\n var slats = this.timeAxis.slats;\n var rowIndex = rowPositions.topToIndex(positionTop);\n if (rowIndex != null) {\n var resource = this.rowNodes[rowIndex].resource;\n if (resource) { // not a group\n var slatHit = slats.positionToHit(positionLeft);\n if (slatHit) {\n return {\n component: this,\n dateSpan: {\n range: slatHit.dateSpan.range,\n allDay: slatHit.dateSpan.allDay,\n resourceId: resource.id\n },\n rect: {\n left: slatHit.left,\n right: slatHit.right,\n top: rowPositions.tops[rowIndex],\n bottom: rowPositions.bottoms[rowIndex]\n },\n dayEl: slatHit.dayEl,\n layer: 0\n };\n }\n }\n }\n };\n // Resource Area\n // ------------------------------------------------------------------------------------------------------------------\n ResourceTimelineView.prototype.setResourceAreaWidth = function (widthVal) {\n this.resourceAreaWidth = widthVal;\n applyStyleProp(this.resourceAreaHeadEl, 'width', widthVal || '');\n };\n ResourceTimelineView.prototype.initResourceAreaWidthDragging = function () {\n var _this = this;\n var resourceAreaDividerEls = Array.prototype.slice.call(this.el.querySelectorAll('.fc-col-resizer'));\n var ElementDraggingImpl = this.calendar.pluginSystem.hooks.elementDraggingImpl;\n if (ElementDraggingImpl) {\n this.resourceAreaWidthDraggings = resourceAreaDividerEls.map(function (el) {\n var dragging = new ElementDraggingImpl(el);\n var dragStartWidth;\n var viewWidth;\n dragging.emitter.on('dragstart', function () {\n dragStartWidth = _this.resourceAreaWidth;\n if (typeof dragStartWidth !== 'number') {\n dragStartWidth = _this.resourceAreaHeadEl.getBoundingClientRect().width;\n }\n viewWidth = _this.el.getBoundingClientRect().width;\n });\n dragging.emitter.on('dragmove', function (pev) {\n var newWidth = dragStartWidth + pev.deltaX * (_this.isRtl ? -1 : 1);\n newWidth = Math.max(newWidth, MIN_RESOURCE_AREA_WIDTH);\n newWidth = Math.min(newWidth, viewWidth - MIN_RESOURCE_AREA_WIDTH);\n _this.setResourceAreaWidth(newWidth);\n });\n dragging.setAutoScrollEnabled(false); // because gets weird with auto-scrolling time area\n return dragging;\n });\n }\n };\n ResourceTimelineView.needsResourceData = true; // for ResourceViewProps\n return ResourceTimelineView;\n}(View));\nfunction hasResourceBusinessHours(resourceStore) {\n for (var resourceId in resourceStore) {\n var resource = resourceStore[resourceId];\n if (resource.businessHours) {\n return true;\n }\n }\n return false;\n}\nfunction hasNesting(nodes) {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node.group) {\n return true;\n }\n else if (node.resource) {\n if (node.hasChildren) {\n return true;\n }\n }\n }\n return false;\n}\n\nvar main = createPlugin({\n deps: [ResourceCommonPlugin, TimelinePlugin],\n defaultView: 'resourceTimelineDay',\n views: {\n resourceTimeline: {\n class: ResourceTimelineView,\n resourceAreaWidth: '30%',\n resourcesInitiallyExpanded: true,\n eventResizableFromStart: true // TODO: not DRY with this same setting in the main timeline config\n },\n resourceTimelineDay: {\n type: 'resourceTimeline',\n duration: { days: 1 }\n },\n resourceTimelineWeek: {\n type: 'resourceTimeline',\n duration: { weeks: 1 }\n },\n resourceTimelineMonth: {\n type: 'resourceTimeline',\n duration: { months: 1 }\n },\n resourceTimelineYear: {\n type: 'resourceTimeline',\n duration: { years: 1 }\n }\n }\n});\n\nexport default main;\nexport { ResourceTimelineView };\n","/*!\nFullCalendar Time Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { createFormatter, removeElement, cssToStr, isMultiDayRange, htmlEscape, compareByFieldSpecs, applyStyle, FgEventRenderer, buildSegCompareObj, FillRenderer, memoizeRendering, createDuration, wholeDivideDurations, findElements, PositionCache, startOfDay, asRoughMs, formatIsoTimeString, addDurations, htmlToElement, createElement, multiplyDuration, DateComponent, hasBgRendering, Splitter, diffDays, buildGotoAnchorHtml, getAllDayHtml, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, View, memoize, intersectRanges, Slicer, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core';\nimport { DayBgRow, DayGrid, SimpleDayGrid } from '@fullcalendar/daygrid';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/*\nOnly handles foreground segs.\nDoes not own rendering. Use for low-level util methods by TimeGrid.\n*/\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\n __extends(TimeGridEventRenderer, _super);\n function TimeGridEventRenderer(timeGrid) {\n var _this = _super.call(this, timeGrid.context) || this;\n _this.timeGrid = timeGrid;\n _this.fullTimeFormat = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n separator: _this.context.options.defaultRangeSeparator\n });\n return _this;\n }\n // Given an array of foreground segments, render a DOM element for each, computes position,\n // and attaches to the column inner-container elements.\n TimeGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var segsByCol = this.timeGrid.groupSegsByCol(segs);\n // order the segs within each column\n // TODO: have groupSegsByCol do this?\n for (var col = 0; col < segsByCol.length; col++) {\n segsByCol[col] = this.sortEventSegs(segsByCol[col]);\n }\n this.segsByCol = segsByCol;\n this.timeGrid.attachSegsByCol(segsByCol, this.timeGrid.fgContainerEls);\n };\n TimeGridEventRenderer.prototype.detachSegs = function (segs) {\n segs.forEach(function (seg) {\n removeElement(seg.el);\n });\n this.segsByCol = null;\n };\n TimeGridEventRenderer.prototype.computeSegSizes = function (allSegs) {\n var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n var colCnt = timeGrid.colCnt;\n timeGrid.computeSegVerticals(allSegs); // horizontals relies on this\n if (segsByCol) {\n for (var col = 0; col < colCnt; col++) {\n this.computeSegHorizontals(segsByCol[col]); // compute horizontal coordinates, z-index's, and reorder the array\n }\n }\n };\n TimeGridEventRenderer.prototype.assignSegSizes = function (allSegs) {\n var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n var colCnt = timeGrid.colCnt;\n timeGrid.assignSegVerticals(allSegs); // horizontals relies on this\n if (segsByCol) {\n for (var col = 0; col < colCnt; col++) {\n this.assignSegCss(segsByCol[col]);\n }\n }\n };\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n meridiem: false\n };\n };\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return true;\n };\n // Renders the HTML for a single event segment's default rendering\n TimeGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var view = this.context.view;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var allDay = eventDef.allDay;\n var isDraggable = view.computeEventDraggable(eventDef, eventUi);\n var isResizableFromStart = seg.isStart && view.computeEventStartResizable(eventDef, eventUi);\n var isResizableFromEnd = seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n var skinCss = cssToStr(this.getSkinCss(eventUi));\n var timeText;\n var fullTimeText; // more verbose time text. for the print stylesheet\n var startTimeText; // just the start time text\n classes.unshift('fc-time-grid-event');\n // if the event appears to span more than one day...\n if (isMultiDayRange(eventRange.range)) {\n // Don't display time text on segments that run entirely through a day.\n // That would appear as midnight-midnight and would look dumb.\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\n if (seg.isStart || seg.isEnd) {\n var unzonedStart = seg.start;\n var unzonedEnd = seg.end;\n timeText = this._getTimeText(unzonedStart, unzonedEnd, allDay); // TODO: give the timezones\n fullTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, this.fullTimeFormat);\n startTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, null, false); // displayEnd=false\n }\n }\n else {\n // Display the normal time text for the *event's* times\n timeText = this.getTimeText(eventRange);\n fullTimeText = this.getTimeText(eventRange, this.fullTimeFormat);\n startTimeText = this.getTimeText(eventRange, null, false); // displayEnd=false\n }\n return '' +\n '
' +\n (timeText ?\n '
' +\n '' + htmlEscape(timeText) + '' +\n '
' :\n '') +\n (eventDef.title ?\n '
' +\n htmlEscape(eventDef.title) +\n '
' :\n '') +\n '
' +\n /* TODO: write CSS for this\n (isResizableFromStart ?\n '
' :\n ''\n ) +\n */\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\n // Assumed the segs are already ordered.\n // NOTE: Also reorders the given array by date!\n TimeGridEventRenderer.prototype.computeSegHorizontals = function (segs) {\n var levels;\n var level0;\n var i;\n levels = buildSlotSegLevels(segs);\n computeForwardSlotSegs(levels);\n if ((level0 = levels[0])) {\n for (i = 0; i < level0.length; i++) {\n computeSlotSegPressures(level0[i]);\n }\n for (i = 0; i < level0.length; i++) {\n this.computeSegForwardBack(level0[i], 0, 0);\n }\n }\n };\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\n //\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\n // coordinate of the first segment in the series.\n TimeGridEventRenderer.prototype.computeSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\n var forwardSegs = seg.forwardSegs;\n var i;\n if (seg.forwardCoord === undefined) { // not already computed\n if (!forwardSegs.length) {\n // if there are no forward segments, this segment should butt up against the edge\n seg.forwardCoord = 1;\n }\n else {\n // sort highest pressure first\n this.sortForwardSegs(forwardSegs);\n // this segment's forwardCoord will be calculated from the backwardCoord of the\n // highest-pressure forward segment.\n this.computeSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\n seg.forwardCoord = forwardSegs[0].backwardCoord;\n }\n // calculate the backwardCoord from the forwardCoord. consider the series\n seg.backwardCoord = seg.forwardCoord -\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\n (seriesBackwardPressure + 1); // # of segments in the series\n // use this segment's coordinates to computed the coordinates of the less-pressurized\n // forward segments\n for (i = 0; i < forwardSegs.length; i++) {\n this.computeSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\n }\n }\n };\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\n var objs = forwardSegs.map(buildTimeGridSegCompareObj);\n var specs = [\n // put higher-pressure first\n { field: 'forwardPressure', order: -1 },\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\n { field: 'backwardCoord', order: 1 }\n ].concat(this.context.view.eventOrderSpecs);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, specs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n };\n // Given foreground event segments that have already had their position coordinates computed,\n // assigns position-related CSS values to their elements.\n TimeGridEventRenderer.prototype.assignSegCss = function (segs) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n applyStyle(seg.el, this.generateSegCss(seg));\n if (seg.level > 0) {\n seg.el.classList.add('fc-time-grid-event-inset');\n }\n // if the event is short that the title will be cut off,\n // attach a className that condenses the title into the time area.\n if (seg.eventRange.def.title && seg.bottom - seg.top < 30) {\n seg.el.classList.add('fc-short'); // TODO: \"condensed\" is a better name\n }\n }\n };\n // Generates an object with CSS properties/values that should be applied to an event segment element.\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\n TimeGridEventRenderer.prototype.generateSegCss = function (seg) {\n var shouldOverlap = this.context.options.slotEventOverlap;\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\n var isRtl = this.timeGrid.isRtl;\n var left; // amount of space from left edge, a fraction of the total width\n var right; // amount of space from right edge, a fraction of the total width\n if (shouldOverlap) {\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\n }\n if (isRtl) {\n left = 1 - forwardCoord;\n right = backwardCoord;\n }\n else {\n left = backwardCoord;\n right = 1 - forwardCoord;\n }\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\n props.left = left * 100 + '%';\n props.right = right * 100 + '%';\n if (shouldOverlap && seg.forwardPressure) {\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\n props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n }\n return props;\n };\n return TimeGridEventRenderer;\n}(FgEventRenderer));\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\nfunction buildSlotSegLevels(segs) {\n var levels = [];\n var i;\n var seg;\n var j;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n // go through all the levels and stop on the first level where there are no collisions\n for (j = 0; j < levels.length; j++) {\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\n break;\n }\n }\n seg.level = j;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n return levels;\n}\n// For every segment, figure out the other segments that are in subsequent\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\nfunction computeForwardSlotSegs(levels) {\n var i;\n var level;\n var j;\n var seg;\n var k;\n for (i = 0; i < levels.length; i++) {\n level = levels[i];\n for (j = 0; j < level.length; j++) {\n seg = level[j];\n seg.forwardSegs = [];\n for (k = i + 1; k < levels.length; k++) {\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\n }\n }\n }\n}\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\nfunction computeSlotSegPressures(seg) {\n var forwardSegs = seg.forwardSegs;\n var forwardPressure = 0;\n var i;\n var forwardSeg;\n if (seg.forwardPressure === undefined) { // not already computed\n for (i = 0; i < forwardSegs.length; i++) {\n forwardSeg = forwardSegs[i];\n // figure out the child's maximum forward path\n computeSlotSegPressures(forwardSeg);\n // either use the existing maximum, or use the child's forward pressure\n // plus one (for the forwardSeg itself)\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\n }\n seg.forwardPressure = forwardPressure;\n }\n}\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\n// Append into an optionally-supplied `results` array and return.\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\n if (results === void 0) { results = []; }\n for (var i = 0; i < otherSegs.length; i++) {\n if (isSlotSegCollision(seg, otherSegs[i])) {\n results.push(otherSegs[i]);\n }\n }\n return results;\n}\n// Do these segments occupy the same vertical space?\nfunction isSlotSegCollision(seg1, seg2) {\n return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\n}\nfunction buildTimeGridSegCompareObj(seg) {\n var obj = buildSegCompareObj(seg);\n obj.forwardPressure = seg.forwardPressure;\n obj.backwardCoord = seg.backwardCoord;\n return obj;\n}\n\nvar TimeGridMirrorRenderer = /** @class */ (function (_super) {\n __extends(TimeGridMirrorRenderer, _super);\n function TimeGridMirrorRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n this.segsByCol = this.timeGrid.groupSegsByCol(segs);\n this.timeGrid.attachSegsByCol(this.segsByCol, this.timeGrid.mirrorContainerEls);\n this.sourceSeg = mirrorInfo.sourceSeg;\n };\n TimeGridMirrorRenderer.prototype.generateSegCss = function (seg) {\n var props = _super.prototype.generateSegCss.call(this, seg);\n var sourceSeg = this.sourceSeg;\n if (sourceSeg && sourceSeg.col === seg.col) {\n var sourceSegProps = _super.prototype.generateSegCss.call(this, sourceSeg);\n props.left = sourceSegProps.left;\n props.right = sourceSegProps.right;\n props.marginLeft = sourceSegProps.marginLeft;\n props.marginRight = sourceSegProps.marginRight;\n }\n return props;\n };\n return TimeGridMirrorRenderer;\n}(TimeGridEventRenderer));\n\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\n __extends(TimeGridFillRenderer, _super);\n function TimeGridFillRenderer(timeGrid) {\n var _this = _super.call(this, timeGrid.context) || this;\n _this.timeGrid = timeGrid;\n return _this;\n }\n TimeGridFillRenderer.prototype.attachSegs = function (type, segs) {\n var timeGrid = this.timeGrid;\n var containerEls;\n // TODO: more efficient lookup\n if (type === 'bgEvent') {\n containerEls = timeGrid.bgContainerEls;\n }\n else if (type === 'businessHours') {\n containerEls = timeGrid.businessContainerEls;\n }\n else if (type === 'highlight') {\n containerEls = timeGrid.highlightContainerEls;\n }\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\n return segs.map(function (seg) {\n return seg.el;\n });\n };\n TimeGridFillRenderer.prototype.computeSegSizes = function (segs) {\n this.timeGrid.computeSegVerticals(segs);\n };\n TimeGridFillRenderer.prototype.assignSegSizes = function (segs) {\n this.timeGrid.assignSegVerticals(segs);\n };\n return TimeGridFillRenderer;\n}(FillRenderer));\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nvar AGENDA_STOCK_SUB_DURATIONS = [\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { seconds: 30 },\n { seconds: 15 }\n];\nvar TimeGrid = /** @class */ (function (_super) {\n __extends(TimeGrid, _super);\n function TimeGrid(context, el, renderProps) {\n var _this = _super.call(this, context, el) || this;\n _this.isSlatSizesDirty = false;\n _this.isColSizesDirty = false;\n _this.renderSlats = memoizeRendering(_this._renderSlats);\n var eventRenderer = _this.eventRenderer = new TimeGridEventRenderer(_this);\n var fillRenderer = _this.fillRenderer = new TimeGridFillRenderer(_this);\n _this.mirrorRenderer = new TimeGridMirrorRenderer(_this);\n var renderColumns = _this.renderColumns = memoizeRendering(_this._renderColumns, _this._unrenderColumns);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderColumns]);\n _this.renderDateSelection = memoizeRendering(_this._renderDateSelection, _this._unrenderDateSelection, [renderColumns]);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderColumns]);\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderColumns]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderColumns]);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderColumns]);\n _this.processOptions();\n el.innerHTML =\n '
' +\n '
' +\n '
';\n _this.rootBgContainerEl = el.querySelector('.fc-bg');\n _this.slatContainerEl = el.querySelector('.fc-slats');\n _this.bottomRuleEl = el.querySelector('.fc-divider');\n _this.renderProps = renderProps;\n return _this;\n }\n /* Options\n ------------------------------------------------------------------------------------------------------------------*/\n // Parses various options into properties of this object\n TimeGrid.prototype.processOptions = function () {\n var slotDuration = this.opt('slotDuration');\n var snapDuration = this.opt('snapDuration');\n var snapsPerSlot;\n var input;\n slotDuration = createDuration(slotDuration);\n snapDuration = snapDuration ? createDuration(snapDuration) : slotDuration;\n snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n if (snapsPerSlot === null) {\n snapDuration = slotDuration;\n snapsPerSlot = 1;\n // TODO: say warning?\n }\n this.slotDuration = slotDuration;\n this.snapDuration = snapDuration;\n this.snapsPerSlot = snapsPerSlot;\n // might be an array value (for TimelineView).\n // if so, getting the most granular entry (the last one probably).\n input = this.opt('slotLabelFormat');\n if (Array.isArray(input)) {\n input = input[input.length - 1];\n }\n this.labelFormat = createFormatter(input || {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short'\n });\n input = this.opt('slotLabelInterval');\n this.labelInterval = input ?\n createDuration(input) :\n this.computeLabelInterval(slotDuration);\n };\n // Computes an automatic value for slotLabelInterval\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\n var i;\n var labelInterval;\n var slotsPerLabel;\n // find the smallest stock label interval that results in more than one slots-per-label\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\n labelInterval = createDuration(AGENDA_STOCK_SUB_DURATIONS[i]);\n slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n if (slotsPerLabel !== null && slotsPerLabel > 1) {\n return labelInterval;\n }\n }\n return slotDuration; // fall back\n };\n /* Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.render = function (props) {\n var cells = props.cells;\n this.colCnt = cells.length;\n this.renderSlats(props.dateProfile);\n this.renderColumns(props.cells, props.dateProfile);\n this.renderBusinessHours(props.businessHourSegs);\n this.renderDateSelection(props.dateSelectionSegs);\n this.renderFgEvents(props.fgEventSegs);\n this.renderBgEvents(props.bgEventSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDrag);\n this.renderEventResize(props.eventResize);\n };\n TimeGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // should unrender everything else too\n this.renderSlats.unrender();\n this.renderColumns.unrender();\n };\n TimeGrid.prototype.updateSize = function (isResize) {\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n if (isResize || this.isSlatSizesDirty) {\n this.buildSlatPositions();\n this.isSlatSizesDirty = false;\n }\n if (isResize || this.isColSizesDirty) {\n this.buildColPositions();\n this.isColSizesDirty = false;\n }\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n TimeGrid.prototype._renderSlats = function (dateProfile) {\n var theme = this.theme;\n this.slatContainerEl.innerHTML =\n '' +\n this.renderSlatRowHtml(dateProfile) +\n '
';\n this.slatEls = findElements(this.slatContainerEl, 'tr');\n this.slatPositions = new PositionCache(this.el, this.slatEls, false, true // vertical\n );\n this.isSlatSizesDirty = true;\n };\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n TimeGrid.prototype.renderSlatRowHtml = function (dateProfile) {\n var _a = this, dateEnv = _a.dateEnv, theme = _a.theme, isRtl = _a.isRtl;\n var html = '';\n var dayStart = startOfDay(dateProfile.renderRange.start);\n var slotTime = dateProfile.minTime;\n var slotIterator = createDuration(0);\n var slotDate; // will be on the view's first day, but we only care about its time\n var isLabeled;\n var axisHtml;\n // Calculate the time for each slot\n while (asRoughMs(slotTime) < asRoughMs(dateProfile.maxTime)) {\n slotDate = dateEnv.add(dayStart, slotTime);\n isLabeled = wholeDivideDurations(slotIterator, this.labelInterval) !== null;\n axisHtml =\n '' +\n (isLabeled ?\n '' + // for matchCellWidths\n htmlEscape(dateEnv.format(slotDate, this.labelFormat)) +\n '' :\n '') +\n '';\n html +=\n '' +\n (!isRtl ? axisHtml : '') +\n '' +\n (isRtl ? axisHtml : '') +\n '';\n slotTime = addDurations(slotTime, this.slotDuration);\n slotIterator = addDurations(slotIterator, this.slotDuration);\n }\n return html;\n };\n TimeGrid.prototype._renderColumns = function (cells, dateProfile) {\n var _a = this, theme = _a.theme, dateEnv = _a.dateEnv, view = _a.view;\n var bgRow = new DayBgRow(this.context);\n this.rootBgContainerEl.innerHTML =\n '' +\n bgRow.renderHtml({\n cells: cells,\n dateProfile: dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '
';\n this.colEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n for (var col = 0; col < this.colCnt; col++) {\n this.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[col].date),\n el: this.colEls[col],\n view: view\n }\n ]);\n }\n if (this.isRtl) {\n this.colEls.reverse();\n }\n this.colPositions = new PositionCache(this.el, this.colEls, true, // horizontal\n false);\n this.renderContentSkeleton();\n this.isColSizesDirty = true;\n };\n TimeGrid.prototype._unrenderColumns = function () {\n this.unrenderContentSkeleton();\n };\n /* Content Skeleton\n ------------------------------------------------------------------------------------------------------------------*/\n // Renders the DOM that the view's content will live in\n TimeGrid.prototype.renderContentSkeleton = function () {\n var parts = [];\n var skeletonEl;\n parts.push(this.renderProps.renderIntroHtml());\n for (var i = 0; i < this.colCnt; i++) {\n parts.push('' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '');\n }\n if (this.isRtl) {\n parts.reverse();\n }\n skeletonEl = this.contentSkeletonEl = htmlToElement('
' +\n '' +\n '' + parts.join('') + '' +\n '
' +\n '
');\n this.colContainerEls = findElements(skeletonEl, '.fc-content-col');\n this.mirrorContainerEls = findElements(skeletonEl, '.fc-mirror-container');\n this.fgContainerEls = findElements(skeletonEl, '.fc-event-container:not(.fc-mirror-container)');\n this.bgContainerEls = findElements(skeletonEl, '.fc-bgevent-container');\n this.highlightContainerEls = findElements(skeletonEl, '.fc-highlight-container');\n this.businessContainerEls = findElements(skeletonEl, '.fc-business-container');\n if (this.isRtl) {\n this.colContainerEls.reverse();\n this.mirrorContainerEls.reverse();\n this.fgContainerEls.reverse();\n this.bgContainerEls.reverse();\n this.highlightContainerEls.reverse();\n this.businessContainerEls.reverse();\n }\n this.el.appendChild(skeletonEl);\n };\n TimeGrid.prototype.unrenderContentSkeleton = function () {\n removeElement(this.contentSkeletonEl);\n };\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\n TimeGrid.prototype.groupSegsByCol = function (segs) {\n var segsByCol = [];\n var i;\n for (i = 0; i < this.colCnt; i++) {\n segsByCol.push([]);\n }\n for (i = 0; i < segs.length; i++) {\n segsByCol[segs[i].col].push(segs[i]);\n }\n return segsByCol;\n };\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\n // elements, each living within a column.\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\n var col;\n var segs;\n var i;\n for (col = 0; col < this.colCnt; col++) { // iterate each column grouping\n segs = segsByCol[col];\n for (i = 0; i < segs.length; i++) {\n containerEls[col].appendChild(segs[i].el);\n }\n }\n };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.getNowIndicatorUnit = function () {\n return 'minute'; // will refresh on the minute\n };\n TimeGrid.prototype.renderNowIndicator = function (segs, date) {\n // HACK: if date columns not ready for some reason (scheduler)\n if (!this.colContainerEls) {\n return;\n }\n var top = this.computeDateTop(date);\n var nodes = [];\n var i;\n // render lines within the columns\n for (i = 0; i < segs.length; i++) {\n var lineEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-line' });\n lineEl.style.top = top + 'px';\n this.colContainerEls[segs[i].col].appendChild(lineEl);\n nodes.push(lineEl);\n }\n // render an arrow over the axis\n if (segs.length > 0) { // is the current time in view?\n var arrowEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-arrow' });\n arrowEl.style.top = top + 'px';\n this.contentSkeletonEl.appendChild(arrowEl);\n nodes.push(arrowEl);\n }\n this.nowIndicatorEls = nodes;\n };\n TimeGrid.prototype.unrenderNowIndicator = function () {\n if (this.nowIndicatorEls) {\n this.nowIndicatorEls.forEach(removeElement);\n this.nowIndicatorEls = null;\n }\n };\n /* Coordinates\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.getTotalSlatHeight = function () {\n return this.slatContainerEl.getBoundingClientRect().height;\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n TimeGrid.prototype.computeDateTop = function (when, startOfDayDate) {\n if (!startOfDayDate) {\n startOfDayDate = startOfDay(when);\n }\n return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n TimeGrid.prototype.computeTimeTop = function (duration) {\n var len = this.slatEls.length;\n var dateProfile = this.props.dateProfile;\n var slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.minTime)) / asRoughMs(this.slotDuration); // floating-point value of # of slots covered\n var slatIndex;\n var slatRemainder;\n // compute a floating-point number for how many slats should be progressed through.\n // from 0 to number of slats (inclusive)\n // constrained because minTime/maxTime might be customized.\n slatCoverage = Math.max(0, slatCoverage);\n slatCoverage = Math.min(len, slatCoverage);\n // an integer index of the furthest whole slat\n // from 0 to number slats (*exclusive*, so len-1)\n slatIndex = Math.floor(slatCoverage);\n slatIndex = Math.min(slatIndex, len - 1);\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n // could be 1.0 if slatCoverage is covering *all* the slots\n slatRemainder = slatCoverage - slatIndex;\n return this.slatPositions.tops[slatIndex] +\n this.slatPositions.getHeight(slatIndex) * slatRemainder;\n };\n // For each segment in an array, computes and assigns its top and bottom properties\n TimeGrid.prototype.computeSegVerticals = function (segs) {\n var eventMinHeight = this.opt('timeGridEventMinHeight');\n var i;\n var seg;\n var dayDate;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n dayDate = this.props.cells[seg.col].date;\n seg.top = this.computeDateTop(seg.start, dayDate);\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.end, dayDate));\n }\n };\n // Given segments that already have their top/bottom properties computed, applies those values to\n // the segments' elements.\n TimeGrid.prototype.assignSegVerticals = function (segs) {\n var i;\n var seg;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n applyStyle(seg.el, this.generateSegVerticalCss(seg));\n }\n };\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\n return {\n top: seg.top,\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\n };\n };\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.buildPositionCaches = function () {\n this.buildColPositions();\n this.buildSlatPositions();\n };\n TimeGrid.prototype.buildColPositions = function () {\n this.colPositions.build();\n };\n TimeGrid.prototype.buildSlatPositions = function () {\n this.slatPositions.build();\n };\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.positionToHit = function (positionLeft, positionTop) {\n var _a = this, dateEnv = _a.dateEnv, snapsPerSlot = _a.snapsPerSlot, slatPositions = _a.slatPositions, colPositions = _a.colPositions;\n var colIndex = colPositions.leftToIndex(positionLeft);\n var slatIndex = slatPositions.topToIndex(positionTop);\n if (colIndex != null && slatIndex != null) {\n var slatTop = slatPositions.tops[slatIndex];\n var slatHeight = slatPositions.getHeight(slatIndex);\n var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n var dayDate = this.props.cells[colIndex].date;\n var time = addDurations(this.props.dateProfile.minTime, multiplyDuration(this.snapDuration, snapIndex));\n var start = dateEnv.add(dayDate, time);\n var end = dateEnv.add(start, this.snapDuration);\n return {\n col: colIndex,\n dateSpan: {\n range: { start: start, end: end },\n allDay: false\n },\n dayEl: this.colEls[colIndex],\n relativeRect: {\n left: colPositions.lefts[colIndex],\n right: colPositions.rights[colIndex],\n top: slatTop,\n bottom: slatTop + slatHeight\n }\n };\n }\n };\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n if (state.isEvent) {\n this.mirrorRenderer.renderSegs(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n else {\n this.fillRenderer.renderSegs('highlight', state.segs);\n }\n }\n };\n TimeGrid.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.mirrorRenderer.unrender(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n this.fillRenderer.unrender('highlight');\n }\n };\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype._renderEventResize = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n TimeGrid.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n /* Selection\n ------------------------------------------------------------------------------------------------------------------*/\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\n TimeGrid.prototype._renderDateSelection = function (segs) {\n if (segs) {\n if (this.opt('selectMirror')) {\n this.mirrorRenderer.renderSegs(segs, { isSelecting: true });\n }\n else {\n this.fillRenderer.renderSegs('highlight', segs);\n }\n }\n };\n TimeGrid.prototype._unrenderDateSelection = function (segs) {\n this.mirrorRenderer.unrender(segs, { isSelecting: true });\n this.fillRenderer.unrender('highlight');\n };\n return TimeGrid;\n}(DateComponent));\n\nvar AllDaySplitter = /** @class */ (function (_super) {\n __extends(AllDaySplitter, _super);\n function AllDaySplitter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AllDaySplitter.prototype.getKeyInfo = function () {\n return {\n allDay: {},\n timed: {}\n };\n };\n AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n if (dateSpan.allDay) {\n return ['allDay'];\n }\n else {\n return ['timed'];\n }\n };\n AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {\n if (!eventDef.allDay) {\n return ['timed'];\n }\n else if (hasBgRendering(eventDef)) {\n return ['timed', 'allDay'];\n }\n else {\n return ['allDay'];\n }\n };\n return AllDaySplitter;\n}(Splitter));\n\nvar TIMEGRID_ALL_DAY_EVENT_LIMIT = 5;\nvar WEEK_HEADER_FORMAT = createFormatter({ week: 'short' });\n/* An abstract class for all timegrid-related views. Displays one more columns with time slots running vertically.\n----------------------------------------------------------------------------------------------------------------------*/\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\n// Responsible for managing width/height.\nvar TimeGridView = /** @class */ (function (_super) {\n __extends(TimeGridView, _super);\n function TimeGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.splitter = new AllDaySplitter();\n /* Header Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before the day-of week header cells\n _this.renderHeadIntroHtml = function () {\n var _a = _this, theme = _a.theme, dateEnv = _a.dateEnv;\n var range = _this.props.dateProfile.renderRange;\n var dayCnt = diffDays(range.start, range.end);\n var weekText;\n if (_this.opt('weekNumbers')) {\n weekText = dateEnv.format(range.start, WEEK_HEADER_FORMAT);\n return '' +\n '' +\n buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n _this, { date: range.start, type: 'week', forceOff: dayCnt > 1 }, htmlEscape(weekText) // inner HTML\n ) +\n '';\n }\n else {\n return '';\n }\n };\n /* Time Grid Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\n _this.renderTimeGridBgIntroHtml = function () {\n var theme = _this.theme;\n return '';\n };\n // Generates the HTML that goes before all other types of cells.\n // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n _this.renderTimeGridIntroHtml = function () {\n return '';\n };\n /* Day Grid Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that goes before the all-day cells\n _this.renderDayGridBgIntroHtml = function () {\n var theme = _this.theme;\n return '' +\n '' +\n '' + // needed for matchCellWidths\n getAllDayHtml(_this) +\n '' +\n '';\n };\n // Generates the HTML that goes before all other types of cells.\n // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n _this.renderDayGridIntroHtml = function () {\n return '';\n };\n _this.el.classList.add('fc-timeGrid-view');\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n var timeGridWrapEl = _this.scroller.el;\n _this.el.querySelector('.fc-body > tr > td').appendChild(timeGridWrapEl);\n timeGridWrapEl.classList.add('fc-time-grid-container');\n var timeGridEl = createElement('div', { className: 'fc-time-grid' });\n timeGridWrapEl.appendChild(timeGridEl);\n _this.timeGrid = new TimeGrid(_this.context, timeGridEl, {\n renderBgIntroHtml: _this.renderTimeGridBgIntroHtml,\n renderIntroHtml: _this.renderTimeGridIntroHtml\n });\n if (_this.opt('allDaySlot')) { // should we display the \"all-day\" area?\n _this.dayGrid = new DayGrid(// the all-day subcomponent of this view\n _this.context, _this.el.querySelector('.fc-day-grid'), {\n renderNumberIntroHtml: _this.renderDayGridIntroHtml,\n renderBgIntroHtml: _this.renderDayGridBgIntroHtml,\n renderIntroHtml: _this.renderDayGridIntroHtml,\n colWeekNumbersVisible: false,\n cellWeekNumbersVisible: false\n });\n // have the day-grid extend it's coordinate area over the
dividing the two grids\n var dividerEl = _this.el.querySelector('.fc-divider');\n _this.dayGrid.bottomCoordPadding = dividerEl.getBoundingClientRect().height;\n }\n return _this;\n }\n TimeGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.timeGrid.destroy();\n if (this.dayGrid) {\n this.dayGrid.destroy();\n }\n this.scroller.destroy();\n };\n /* Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds the HTML skeleton for the view.\n // The day-grid and time-grid components will render inside containers defined by this HTML.\n TimeGridView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return '' +\n '' +\n (this.opt('columnHeader') ?\n '' +\n '' +\n '' +\n '' +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
 
' +\n (this.opt('allDaySlot') ?\n '
' +\n '
' :\n '') +\n '
';\n };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGridView.prototype.getNowIndicatorUnit = function () {\n return this.timeGrid.getNowIndicatorUnit();\n };\n // subclasses should implement\n // renderNowIndicator(date: DateMarker) {\n // }\n TimeGridView.prototype.unrenderNowIndicator = function () {\n this.timeGrid.unrenderNowIndicator();\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n this.timeGrid.updateSize(isResize);\n if (this.dayGrid) {\n this.dayGrid.updateSize(isResize);\n }\n };\n // Adjusts the vertical dimensions of the view to the specified values\n TimeGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n var _this = this;\n var eventLimit;\n var scrollerHeight;\n var scrollbarWidths;\n // make all axis cells line up\n this.axisWidth = matchCellWidths(findElements(this.el, '.fc-axis'));\n // hack to give the view some height prior to timeGrid's columns being rendered\n // TODO: separate setting height from scroller VS timeGrid.\n if (!this.timeGrid.colEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n return;\n }\n // set of fake row elements that must compensate when scroller has scrollbars\n var noScrollRowEls = findElements(this.el, '.fc-row').filter(function (node) {\n return !_this.scroller.el.contains(node);\n });\n // reset all dimensions back to the original state\n this.timeGrid.bottomRuleEl.style.display = 'none'; // will be shown later if this
is necessary\n this.scroller.clear(); // sets height to 'auto' and clears overflow\n noScrollRowEls.forEach(uncompensateScroll);\n // limit number of events in the all-day area\n if (this.dayGrid) {\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n eventLimit = this.opt('eventLimit');\n if (eventLimit && typeof eventLimit !== 'number') {\n eventLimit = TIMEGRID_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\n }\n if (eventLimit) {\n this.dayGrid.limitRows(eventLimit);\n }\n }\n if (!isAuto) { // should we force dimensions of the scroll container?\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n scrollbarWidths = this.scroller.getScrollbarWidths();\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n // make the all-day and header rows lines up\n noScrollRowEls.forEach(function (rowEl) {\n compensateScroll(rowEl, scrollbarWidths);\n });\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\n // and reapply the desired height to the scroller.\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths);\n // if there's any space below the slats, show the horizontal rule.\n // this won't cause any new overflow, because lockOverflow already called.\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\n this.timeGrid.bottomRuleEl.style.display = '';\n }\n }\n };\n // given a desired total height of the view, returns what the height of the scroller should be\n TimeGridView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\n TimeGridView.prototype.computeDateScroll = function (duration) {\n var top = this.timeGrid.computeTimeTop(duration);\n // zoom can give weird floating-point values. rather scroll a little bit further\n top = Math.ceil(top);\n if (top) {\n top++; // to overcome top border that slots beyond the first have. looks better\n }\n return { top: top };\n };\n TimeGridView.prototype.queryDateScroll = function () {\n return { top: this.scroller.getScrollTop() };\n };\n TimeGridView.prototype.applyDateScroll = function (scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top);\n }\n };\n // Generates an HTML attribute string for setting the width of the axis, if it is known\n TimeGridView.prototype.axisStyleAttr = function () {\n if (this.axisWidth != null) {\n return 'style=\"width:' + this.axisWidth + 'px\"';\n }\n return '';\n };\n return TimeGridView;\n}(View));\nTimeGridView.prototype.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\n\nvar SimpleTimeGrid = /** @class */ (function (_super) {\n __extends(SimpleTimeGrid, _super);\n function SimpleTimeGrid(context, timeGrid) {\n var _this = _super.call(this, context, timeGrid.el) || this;\n _this.buildDayRanges = memoize(buildDayRanges);\n _this.slicer = new TimeGridSlicer();\n _this.timeGrid = timeGrid;\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.timeGrid.el\n });\n return _this;\n }\n SimpleTimeGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n SimpleTimeGrid.prototype.render = function (props) {\n var dateProfile = props.dateProfile, dayTable = props.dayTable;\n var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, this.dateEnv);\n this.timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }));\n };\n SimpleTimeGrid.prototype.renderNowIndicator = function (date) {\n this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);\n };\n SimpleTimeGrid.prototype.buildPositionCaches = function () {\n this.timeGrid.buildPositionCaches();\n };\n SimpleTimeGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.timeGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.timeGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return SimpleTimeGrid;\n}(DateComponent));\nfunction buildDayRanges(dayTable, dateProfile, dateEnv) {\n var ranges = [];\n for (var _i = 0, _a = dayTable.headerDates; _i < _a.length; _i++) {\n var date = _a[_i];\n ranges.push({\n start: dateEnv.add(date, dateProfile.minTime),\n end: dateEnv.add(date, dateProfile.maxTime)\n });\n }\n return ranges;\n}\nvar TimeGridSlicer = /** @class */ (function (_super) {\n __extends(TimeGridSlicer, _super);\n function TimeGridSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeGridSlicer.prototype.sliceRange = function (range, dayRanges) {\n var segs = [];\n for (var col = 0; col < dayRanges.length; col++) {\n var segRange = intersectRanges(range, dayRanges[col]);\n if (segRange) {\n segs.push({\n start: segRange.start,\n end: segRange.end,\n isStart: segRange.start.valueOf() === range.start.valueOf(),\n isEnd: segRange.end.valueOf() === range.end.valueOf(),\n col: col\n });\n }\n }\n return segs;\n };\n return TimeGridSlicer;\n}(Slicer));\n\nvar TimeGridView$1 = /** @class */ (function (_super) {\n __extends(TimeGridView, _super);\n function TimeGridView(_context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.buildDayTable = memoize(buildDayTable);\n if (_this.opt('columnHeader')) {\n _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.simpleTimeGrid = new SimpleTimeGrid(_this.context, _this.timeGrid);\n if (_this.dayGrid) {\n _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid);\n }\n return _this;\n }\n TimeGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.simpleTimeGrid.destroy();\n if (this.simpleDayGrid) {\n this.simpleDayGrid.destroy();\n }\n };\n TimeGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props); // for flags for updateSize\n var dateProfile = this.props.dateProfile;\n var dayTable = this.buildDayTable(dateProfile, this.dateProfileGenerator);\n var splitProps = this.splitter.splitProps(props);\n if (this.header) {\n this.header.receiveProps({\n dateProfile: dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: true,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.simpleTimeGrid.receiveProps(__assign({}, splitProps['timed'], { dateProfile: dateProfile,\n dayTable: dayTable }));\n if (this.simpleDayGrid) {\n this.simpleDayGrid.receiveProps(__assign({}, splitProps['allDay'], { dateProfile: dateProfile,\n dayTable: dayTable, nextDayThreshold: this.nextDayThreshold, isRigid: false }));\n }\n };\n TimeGridView.prototype.renderNowIndicator = function (date) {\n this.simpleTimeGrid.renderNowIndicator(date);\n };\n return TimeGridView;\n}(TimeGridView));\nfunction buildDayTable(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n return new DayTable(daySeries, false);\n}\n\nvar main = createPlugin({\n defaultView: 'timeGridWeek',\n views: {\n timeGrid: {\n class: TimeGridView$1,\n allDaySlot: true,\n slotDuration: '00:30:00',\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\n },\n timeGridDay: {\n type: 'timeGrid',\n duration: { days: 1 }\n },\n timeGridWeek: {\n type: 'timeGrid',\n duration: { weeks: 1 }\n }\n }\n});\n\nexport default main;\nexport { TimeGridView as AbstractTimeGridView, TimeGrid, TimeGridSlicer, TimeGridView$1 as TimeGridView, buildDayRanges, buildDayTable };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDefaultOptions = getDefaultOptions;\nexports.setDefaultOptions = setDefaultOptions;\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSameUTCWeek;\nvar _index = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nfunction isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n (0, _index.default)(2, arguments);\n var dateLeftStartOfWeek = (0, _index2.default)(dirtyDateLeft, options);\n var dateRightStartOfWeek = (0, _index2.default)(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\nfunction 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}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index4 = require(\"../defaultOptions/index.js\");\nfunction startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var defaultOptions = (0, _index4.getDefaultOptions)();\n var weekStartsOn = (0, _index3.default)((_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 = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\nfunction 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}\nmodule.exports = exports.default;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\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 toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).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 getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(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.getUTCFullYear();\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.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(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 toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(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 getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(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 = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\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 toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(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.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","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}","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 addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours 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 hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds 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 milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes 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 minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\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}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters 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 quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\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 toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years 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 years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates 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 {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\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 day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport default function eachDayOfInterval(dirtyInterval, options) {\n var _options$step;\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 dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n return dates;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end 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 end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end 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 end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport default function endOfMonth(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(23, 59, 59, 999);\n return date;\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end 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 end 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 end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(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) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year 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 end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\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 {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_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$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_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 && _ref2 !== void 0 ? _ref2 : 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 weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_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$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 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 if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function convertToFP(fn, arity) {\n var a = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (a.length >= arity) {\n return fn.apply(null, a.slice(0, arity).reverse());\n }\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return convertToFP(fn, arity, a.concat(args));\n };\n}","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../addMinutes/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../format/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../getMinutes/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 1);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../isWithinInterval/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../parse/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 3);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../setHours/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../setMinutes/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","// This file is generated automatically by `scripts/build/fp.ts`. Please, don't change it.\nimport fn from \"../../subDays/index.js\";\nimport convertToFP from \"../_lib/convertToFP/index.js\";\nexport default convertToFP(fn, 2);","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).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 getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\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 toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\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 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 startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (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 quarter (and year)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same 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 year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\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 * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime();\n\n // Throw an exception if start date is after end date or if any date is `Invalid Date`\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n return time >= startTime && time <= endTime;\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jän', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\n\n// https://st.unicode.org/cldr-apps/v#/de_AT/Gregorian/\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jän.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"../de/_lib/formatDistance/index.js\";\nimport formatLong from \"../de/_lib/formatLong/index.js\";\nimport formatRelative from \"../de/_lib/formatRelative/index.js\";\nimport match from \"../de/_lib/match/index.js\";\n// difference to 'de' locale\nimport localize from \"./_lib/localize/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale (Austria).\n * @language German\n * @iso-639-2 deu\n * @author Christoph Tobias Stenglein [@cstenglein]{@link https://github.com/cstenglein}\n */\nvar locale = {\n code: 'de-AT',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n};\n\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n }\n};\n\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import formatDistance from \"../en-US/_lib/formatDistance/index.js\";\nimport formatRelative from \"../en-US/_lib/formatRelative/index.js\";\nimport localize from \"../en-US/_lib/localize/index.js\";\nimport match from \"../en-US/_lib/match/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\nvar locale = {\n code: 'en-GB',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","var translations = {\n about: 'körülbelül',\n over: 'több mint',\n almost: 'majdnem',\n lessthan: 'kevesebb mint'\n};\nvar withoutSuffixes = {\n xseconds: ' másodperc',\n halfaminute: 'fél perc',\n xminutes: ' perc',\n xhours: ' óra',\n xdays: ' nap',\n xweeks: ' hét',\n xmonths: ' hónap',\n xyears: ' év'\n};\nvar withSuffixes = {\n xseconds: {\n '-1': ' másodperccel ezelőtt',\n '1': ' másodperc múlva',\n '0': ' másodperce'\n },\n halfaminute: {\n '-1': 'fél perccel ezelőtt',\n '1': 'fél perc múlva',\n '0': 'fél perce'\n },\n xminutes: {\n '-1': ' perccel ezelőtt',\n '1': ' perc múlva',\n '0': ' perce'\n },\n xhours: {\n '-1': ' órával ezelőtt',\n '1': ' óra múlva',\n '0': ' órája'\n },\n xdays: {\n '-1': ' nappal ezelőtt',\n '1': ' nap múlva',\n '0': ' napja'\n },\n xweeks: {\n '-1': ' héttel ezelőtt',\n '1': ' hét múlva',\n '0': ' hete'\n },\n xmonths: {\n '-1': ' hónappal ezelőtt',\n '1': ' hónap múlva',\n '0': ' hónapja'\n },\n xyears: {\n '-1': ' évvel ezelőtt',\n '1': ' év múlva',\n '0': ' éve'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var adverb = token.match(/about|over|almost|lessthan/i);\n var unit = adverb ? token.replace(adverb[0], '') : token;\n var addSuffix = (options === null || options === void 0 ? void 0 : options.addSuffix) === true;\n var key = unit.toLowerCase();\n var comparison = (options === null || options === void 0 ? void 0 : options.comparison) || 0;\n var translated = addSuffix ? withSuffixes[key][comparison] : withoutSuffixes[key];\n var result = key === 'halfaminute' ? translated : count + translated;\n if (adverb) {\n var adv = adverb[0].toLowerCase();\n result = translations[adv] + ' ' + result;\n }\n return result;\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'y. MMMM d., EEEE',\n long: 'y. MMMM d.',\n medium: 'y. MMM d.',\n short: 'y. MM. dd.'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var accusativeWeekdays = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton'];\nfunction week(isFuture) {\n return function (date) {\n var weekday = accusativeWeekdays[date.getUTCDay()];\n var prefix = isFuture ? '' : \"'múlt' \";\n return \"\".concat(prefix, \"'\").concat(weekday, \"' p'-kor'\");\n };\n}\nvar formatRelativeLocale = {\n lastWeek: week(false),\n yesterday: \"'tegnap' p'-kor'\",\n today: \"'ma' p'-kor'\",\n tomorrow: \"'holnap' p'-kor'\",\n nextWeek: week(true),\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date);\n }\n return format;\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['ie.', 'isz.'],\n abbreviated: ['i. e.', 'i. sz.'],\n wide: ['Krisztus előtt', 'időszámításunk szerint']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. n.év', '2. n.év', '3. n.év', '4. n.év'],\n wide: ['1. negyedév', '2. negyedév', '3. negyedév', '4. negyedév']\n};\nvar formattingQuarterValues = {\n narrow: ['I.', 'II.', 'III.', 'IV.'],\n abbreviated: ['I. n.év', 'II. n.év', 'III. n.év', 'IV. n.év'],\n wide: ['I. negyedév', 'II. negyedév', 'III. negyedév', 'IV. negyedév']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'A', 'Sz', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],\n wide: ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'],\n short: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n abbreviated: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n wide: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n abbreviated: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n wide: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'délután',\n evening: 'este',\n night: 'éjjel'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n },\n formattingValues: formattingQuarterValues,\n defaultFormattingWidth: 'wide'\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Hungarian locale.\n * @language Hungarian\n * @iso-639-2 hun\n * @author Pavlo Shpak [@pshpak]{@link https://github.com/pshpak}\n * @author Eduardo Pardo [@eduardopsll]{@link https://github.com/eduardopsll}\n * @author Zoltan Szepesi [@twodcube]{@link https://github.com/twodcube}\n */\nvar locale = {\n code: 'hu',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ie\\.|isz\\.)/i,\n abbreviated: /^(i\\.\\s?e\\.?|b?\\s?c\\s?e|i\\.\\s?sz\\.?)/i,\n wide: /^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\\. sz\\.)/i\n};\nvar parseEraPatterns = {\n narrow: [/ie/i, /isz/i],\n abbreviated: [/^(i\\.?\\s?e\\.?|b\\s?ce)/i, /^(i\\.?\\s?sz\\.?|c\\s?e)/i],\n any: [/előtt/i, /(szerint|i. sz.)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]\\.?/i,\n abbreviated: /^[1234]?\\.?\\s?n\\.év/i,\n wide: /^([1234]|I|II|III|IV)?\\.?\\s?negyedév/i\n};\nvar parseQuarterPatterns = {\n any: [/1|I$/i, /2|II$/i, /3|III/i, /4|IV/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmaásond]|sz/i,\n abbreviated: /^(jan\\.?|febr\\.?|márc\\.?|ápr\\.?|máj\\.?|jún\\.?|júl\\.?|aug\\.?|szept\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n wide: /^(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a|á/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s|sz/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^már/i, /^áp/i, /^máj/i, /^jún/i, /^júl/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^([vhkpc]|sz|cs|sz)/i,\n short: /^([vhkp]|sze|cs|szo)/i,\n abbreviated: /^([vhkp]|sze|cs|szo)/i,\n wide: /^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i\n};\nvar parseDayPatterns = {\n narrow: [/^v/i, /^h/i, /^k/i, /^sz/i, /^c/i, /^p/i, /^sz/i],\n any: [/^v/i, /^h/i, /^k/i, /^sze/i, /^c/i, /^p/i, /^szo/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^((de|du)\\.?|éjfél|délután|dél|reggel|este|éjjel)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^de\\.?/i,\n pm: /^du\\.?/i,\n midnight: /^éjf/i,\n noon: /^dé/i,\n morning: /reg/i,\n afternoon: /^délu\\.?/i,\n evening: /es/i,\n night: /éjj/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","function declensionGroup(scheme, count) {\n if (count === 1 && scheme.one) {\n return scheme.one;\n }\n if (count >= 2 && count <= 4 && scheme.twoFour) {\n return scheme.twoFour;\n }\n\n // if count === null || count === 0 || count >= 5\n return scheme.other;\n}\nfunction declension(scheme, count, time) {\n var group = declensionGroup(scheme, count);\n var finalText = group[time];\n return finalText.replace('{{count}}', String(count));\n}\nfunction extractPreposition(token) {\n var result = ['lessThan', 'about', 'over', 'almost'].filter(function (preposition) {\n return !!token.match(new RegExp('^' + preposition));\n });\n return result[0];\n}\nfunction prefixPreposition(preposition) {\n var translation = '';\n if (preposition === 'almost') {\n translation = 'takmer';\n }\n if (preposition === 'about') {\n translation = 'približne';\n }\n return translation.length > 0 ? translation + ' ' : '';\n}\nfunction suffixPreposition(preposition) {\n var translation = '';\n if (preposition === 'lessThan') {\n translation = 'menej než';\n }\n if (preposition === 'over') {\n translation = 'viac než';\n }\n return translation.length > 0 ? translation + ' ' : '';\n}\nfunction lowercaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\nvar formatDistanceLocale = {\n xSeconds: {\n one: {\n present: 'sekunda',\n past: 'sekundou',\n future: 'sekundu'\n },\n twoFour: {\n present: '{{count}} sekundy',\n past: '{{count}} sekundami',\n future: '{{count}} sekundy'\n },\n other: {\n present: '{{count}} sekúnd',\n past: '{{count}} sekundami',\n future: '{{count}} sekúnd'\n }\n },\n halfAMinute: {\n other: {\n present: 'pol minúty',\n past: 'pol minútou',\n future: 'pol minúty'\n }\n },\n xMinutes: {\n one: {\n present: 'minúta',\n past: 'minútou',\n future: 'minútu'\n },\n twoFour: {\n present: '{{count}} minúty',\n past: '{{count}} minútami',\n future: '{{count}} minúty'\n },\n other: {\n present: '{{count}} minút',\n past: '{{count}} minútami',\n future: '{{count}} minút'\n }\n },\n xHours: {\n one: {\n present: 'hodina',\n past: 'hodinou',\n future: 'hodinu'\n },\n twoFour: {\n present: '{{count}} hodiny',\n past: '{{count}} hodinami',\n future: '{{count}} hodiny'\n },\n other: {\n present: '{{count}} hodín',\n past: '{{count}} hodinami',\n future: '{{count}} hodín'\n }\n },\n xDays: {\n one: {\n present: 'deň',\n past: 'dňom',\n future: 'deň'\n },\n twoFour: {\n present: '{{count}} dni',\n past: '{{count}} dňami',\n future: '{{count}} dni'\n },\n other: {\n present: '{{count}} dní',\n past: '{{count}} dňami',\n future: '{{count}} dní'\n }\n },\n xWeeks: {\n one: {\n present: 'týždeň',\n past: 'týždňom',\n future: 'týždeň'\n },\n twoFour: {\n present: '{{count}} týždne',\n past: '{{count}} týždňami',\n future: '{{count}} týždne'\n },\n other: {\n present: '{{count}} týždňov',\n past: '{{count}} týždňami',\n future: '{{count}} týždňov'\n }\n },\n xMonths: {\n one: {\n present: 'mesiac',\n past: 'mesiacom',\n future: 'mesiac'\n },\n twoFour: {\n present: '{{count}} mesiace',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiace'\n },\n other: {\n present: '{{count}} mesiacov',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiacov'\n }\n },\n xYears: {\n one: {\n present: 'rok',\n past: 'rokom',\n future: 'rok'\n },\n twoFour: {\n present: '{{count}} roky',\n past: '{{count}} rokmi',\n future: '{{count}} roky'\n },\n other: {\n present: '{{count}} rokov',\n past: '{{count}} rokmi',\n future: '{{count}} rokov'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var preposition = extractPreposition(token) || '';\n var key = lowercaseFirstLetter(token.substring(preposition.length));\n var scheme = formatDistanceLocale[key];\n if (!(options !== null && options !== void 0 && options.addSuffix)) {\n return prefixPreposition(preposition) + suffixPreposition(preposition) + declension(scheme, count, 'present');\n }\n if (options.comparison && options.comparison > 0) {\n return prefixPreposition(preposition) + 'o ' + suffixPreposition(preposition) + declension(scheme, count, 'future');\n } else {\n return prefixPreposition(preposition) + 'pred ' + suffixPreposition(preposition) + declension(scheme, count, 'past');\n }\n};\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\"; // https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1986\nvar dateFormats = {\n full: 'EEEE d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. M. y',\n short: 'd. M. y'\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#2149\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1994\nvar dateTimeFormats = {\n full: '{{date}}, {{time}}',\n long: '{{date}}, {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","import requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nexport default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);\n var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import isSameUTCWeek from \"../../../../_lib/isSameUTCWeek/index.js\";\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1308\nvar accusativeWeekdays = ['nedeľu', 'pondelok', 'utorok', 'stredu', 'štvrtok', 'piatok', 'sobotu'];\nfunction _lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n switch (day) {\n case 0: /* Sun */\n case 3: /* Wed */\n case 6 /* Sat */:\n return \"'minulú \" + weekday + \" o' p\";\n default:\n return \"'minulý' eeee 'o' p\";\n }\n}\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n if (day === 4 /* Thu */) {\n return \"'vo' eeee 'o' p\";\n } else {\n return \"'v \" + weekday + \" o' p\";\n }\n}\nfunction _nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n switch (day) {\n case 0: /* Sun */\n case 4: /* Wed */\n case 6 /* Sat */:\n return \"'budúcu \" + weekday + \" o' p\";\n default:\n return \"'budúci' eeee 'o' p\";\n }\n}\nvar formatRelativeLocale = {\n lastWeek: function lastWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _lastWeek(day);\n }\n },\n yesterday: \"'včera o' p\",\n today: \"'dnes o' p\",\n tomorrow: \"'zajtra o' p\",\n nextWeek: function nextWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if (isSameUTCWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _nextWeek(day);\n }\n },\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n return format;\n};\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\"; // https://www.unicode.org/cldr/charts/32/summary/sk.html#1772\nvar eraValues = {\n narrow: ['pred Kr.', 'po Kr.'],\n abbreviated: ['pred Kr.', 'po Kr.'],\n wide: ['pred Kristom', 'po Kristovi']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1780\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. štvrťrok', '2. štvrťrok', '3. štvrťrok', '4. štvrťrok']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1804\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december']\n};\nvar formattingMonthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1876\nvar dayValues = {\n narrow: ['n', 'p', 'u', 's', 'š', 'p', 's'],\n short: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n abbreviated: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n wide: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1932\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'polnoc',\n noon: 'poludnie',\n morning: 'ráno',\n afternoon: 'popoludnie',\n evening: 'večer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'nap.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'v n.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'napol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'v noci'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o polnoci',\n noon: 'napoludnie',\n morning: 'ráno',\n afternoon: 'popoludní',\n evening: 'večer',\n night: 'v noci'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Slovak locale.\n * @language Slovak\n * @iso-639-2 slk\n * @author Marek Suscak [@mareksuscak]{@link https://github.com/mareksuscak}\n */\nvar locale = {\n code: 'sk',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(pred Kristom|pred na[šs][íi]m letopo[čc]tom|po Kristovi|n[áa][šs]ho letopo[čc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\. [šs]tvr[ťt]rok/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|m[áa]j|j[úu]n|j[úu]l|aug|sep|okt|nov|dec)/i,\n wide: /^(janu[áa]ra?|febru[áa]ra?|(marec|marca)|apr[íi]la?|m[áa]ja?|j[úu]na?|j[úu]la?|augusta?|(september|septembra)|(okt[óo]ber|okt[óo]bra)|(november|novembra)|(december|decembra))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^m[áa]j/i, /^j[úu]n/i, /^j[úu]l/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npusšp]/i,\n short: /^(ne|po|ut|st|št|pi|so)/i,\n abbreviated: /^(ne|po|ut|st|št|pi|so)/i,\n wide: /^(nede[ľl]a|pondelok|utorok|streda|[šs]tvrtok|piatok|sobota])/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^u/i, /^s/i, /^š/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^u/i, /^st/i, /^(št|stv)/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(am|pm|(o )?poln\\.?|(nap\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]\\.?|(v n\\.?|noc))/i,\n abbreviated: /^(am|pm|(o )?poln\\.?|(napol\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]er|(v )?noci?)/i,\n any: /^(am|pm|(o )?polnoci?|(na)?poludnie|r[áa]no|popoludn(ie|í|i)|ve[čc]er|(v )?noci?)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /poln/i,\n noon: /^(nap|(na)?pol(\\.|u))/i,\n morning: /^r[áa]no/i,\n afternoon: /^pop/i,\n evening: /^ve[čc]/i,\n night: /^(noc|v n\\.)/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray;\n // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray;\n // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (_typeof(dirtyDatesArray) === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","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 _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\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 _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, 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 = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\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 * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_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$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_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 && _ref2 !== void 0 ? _ref2 : 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 weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_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$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 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 if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\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 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 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 toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n if (_typeof(values) !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n var date = toDate(dirtyDate);\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 if (values.year != null) {\n date.setFullYear(values.year);\n }\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\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 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 startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter 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 quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\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 startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year 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 year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. 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 subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. 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 milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. 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 subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addQuarters from \"../addQuarters/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. 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 quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. 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 subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. 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 years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\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}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\nfunction buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\nfunction buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\nfunction buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jän', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Jänner', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\n\n// https://st.unicode.org/cldr-apps/v#/de_AT/Gregorian/\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jän.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../de/_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../de/_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../de/_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../de/_lib/match/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\n// difference to 'de' locale\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale (Austria).\n * @language German\n * @iso-639-2 deu\n * @author Christoph Tobias Stenglein [@cstenglein]{@link https://github.com/cstenglein}\n */\nvar locale = {\n code: 'de-AT',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index5.default,\n match: _index4.default,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n return result;\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n};\n\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n }\n};\n\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\nvar dateFormats = {\n full: 'EEEE, d MMMM yyyy',\n long: 'd MMMM yyyy',\n medium: 'd MMM yyyy',\n short: 'dd/MM/yyyy'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../en-US/_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../en-US/_lib/formatRelative/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../en-US/_lib/localize/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../en-US/_lib/match/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik]{@link https://github.com/glintik}\n */\nvar locale = {\n code: 'en-GB',\n formatDistance: _index.default,\n formatLong: _index5.default,\n formatRelative: _index2.default,\n localize: _index3.default,\n match: _index4.default,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar translations = {\n about: 'körülbelül',\n over: 'több mint',\n almost: 'majdnem',\n lessthan: 'kevesebb mint'\n};\nvar withoutSuffixes = {\n xseconds: ' másodperc',\n halfaminute: 'fél perc',\n xminutes: ' perc',\n xhours: ' óra',\n xdays: ' nap',\n xweeks: ' hét',\n xmonths: ' hónap',\n xyears: ' év'\n};\nvar withSuffixes = {\n xseconds: {\n '-1': ' másodperccel ezelőtt',\n '1': ' másodperc múlva',\n '0': ' másodperce'\n },\n halfaminute: {\n '-1': 'fél perccel ezelőtt',\n '1': 'fél perc múlva',\n '0': 'fél perce'\n },\n xminutes: {\n '-1': ' perccel ezelőtt',\n '1': ' perc múlva',\n '0': ' perce'\n },\n xhours: {\n '-1': ' órával ezelőtt',\n '1': ' óra múlva',\n '0': ' órája'\n },\n xdays: {\n '-1': ' nappal ezelőtt',\n '1': ' nap múlva',\n '0': ' napja'\n },\n xweeks: {\n '-1': ' héttel ezelőtt',\n '1': ' hét múlva',\n '0': ' hete'\n },\n xmonths: {\n '-1': ' hónappal ezelőtt',\n '1': ' hónap múlva',\n '0': ' hónapja'\n },\n xyears: {\n '-1': ' évvel ezelőtt',\n '1': ' év múlva',\n '0': ' éve'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var adverb = token.match(/about|over|almost|lessthan/i);\n var unit = adverb ? token.replace(adverb[0], '') : token;\n var addSuffix = (options === null || options === void 0 ? void 0 : options.addSuffix) === true;\n var key = unit.toLowerCase();\n var comparison = (options === null || options === void 0 ? void 0 : options.comparison) || 0;\n var translated = addSuffix ? withSuffixes[key][comparison] : withoutSuffixes[key];\n var result = key === 'halfaminute' ? translated : count + translated;\n if (adverb) {\n var adv = adverb[0].toLowerCase();\n result = translations[adv] + ' ' + result;\n }\n return result;\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\nvar dateFormats = {\n full: 'y. MMMM d., EEEE',\n long: 'y. MMMM d.',\n medium: 'y. MMM d.',\n short: 'y. MM. dd.'\n};\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\nvar dateTimeFormats = {\n full: '{{date}} {{time}}',\n long: '{{date}} {{time}}',\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar accusativeWeekdays = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton'];\nfunction week(isFuture) {\n return function (date) {\n var weekday = accusativeWeekdays[date.getUTCDay()];\n var prefix = isFuture ? '' : \"'múlt' \";\n return \"\".concat(prefix, \"'\").concat(weekday, \"' p'-kor'\");\n };\n}\nvar formatRelativeLocale = {\n lastWeek: week(false),\n yesterday: \"'tegnap' p'-kor'\",\n today: \"'ma' p'-kor'\",\n tomorrow: \"'holnap' p'-kor'\",\n nextWeek: week(true),\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date);\n }\n return format;\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['ie.', 'isz.'],\n abbreviated: ['i. e.', 'i. sz.'],\n wide: ['Krisztus előtt', 'időszámításunk szerint']\n};\nvar quarterValues = {\n narrow: ['1.', '2.', '3.', '4.'],\n abbreviated: ['1. n.év', '2. n.év', '3. n.év', '4. n.év'],\n wide: ['1. negyedév', '2. negyedév', '3. negyedév', '4. negyedév']\n};\nvar formattingQuarterValues = {\n narrow: ['I.', 'II.', 'III.', 'IV.'],\n abbreviated: ['I. n.év', 'II. n.év', 'III. n.év', 'IV. n.év'],\n wide: ['I. negyedév', 'II. negyedév', 'III. negyedév', 'IV. negyedév']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'Á', 'M', 'J', 'J', 'A', 'Sz', 'O', 'N', 'D'],\n abbreviated: ['jan.', 'febr.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],\n wide: ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december']\n};\nvar dayValues = {\n narrow: ['V', 'H', 'K', 'Sz', 'Cs', 'P', 'Sz'],\n short: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n abbreviated: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],\n wide: ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n abbreviated: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'du.',\n evening: 'este',\n night: 'éjjel'\n },\n wide: {\n am: 'de.',\n pm: 'du.',\n midnight: 'éjfél',\n noon: 'dél',\n morning: 'reggel',\n afternoon: 'délután',\n evening: 'este',\n night: 'éjjel'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n },\n formattingValues: formattingQuarterValues,\n defaultFormattingWidth: 'wide'\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ie\\.|isz\\.)/i,\n abbreviated: /^(i\\.\\s?e\\.?|b?\\s?c\\s?e|i\\.\\s?sz\\.?)/i,\n wide: /^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\\. sz\\.)/i\n};\nvar parseEraPatterns = {\n narrow: [/ie/i, /isz/i],\n abbreviated: [/^(i\\.?\\s?e\\.?|b\\s?ce)/i, /^(i\\.?\\s?sz\\.?|c\\s?e)/i],\n any: [/előtt/i, /(szerint|i. sz.)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]\\.?/i,\n abbreviated: /^[1234]?\\.?\\s?n\\.év/i,\n wide: /^([1234]|I|II|III|IV)?\\.?\\s?negyedév/i\n};\nvar parseQuarterPatterns = {\n any: [/1|I$/i, /2|II$/i, /3|III/i, /4|IV/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmaásond]|sz/i,\n abbreviated: /^(jan\\.?|febr\\.?|márc\\.?|ápr\\.?|máj\\.?|jún\\.?|júl\\.?|aug\\.?|szept\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n wide: /^(január|február|március|április|május|június|július|augusztus|szeptember|október|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a|á/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s|sz/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^már/i, /^áp/i, /^máj/i, /^jún/i, /^júl/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^([vhkpc]|sz|cs|sz)/i,\n short: /^([vhkp]|sze|cs|szo)/i,\n abbreviated: /^([vhkp]|sze|cs|szo)/i,\n wide: /^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i\n};\nvar parseDayPatterns = {\n narrow: [/^v/i, /^h/i, /^k/i, /^sz/i, /^c/i, /^p/i, /^sz/i],\n any: [/^v/i, /^h/i, /^k/i, /^sze/i, /^c/i, /^p/i, /^szo/i]\n};\nvar matchDayPeriodPatterns = {\n any: /^((de|du)\\.?|éjfél|délután|dél|reggel|este|éjjel)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^de\\.?/i,\n pm: /^du\\.?/i,\n midnight: /^éjf/i,\n noon: /^dé/i,\n morning: /reg/i,\n afternoon: /^délu\\.?/i,\n evening: /es/i,\n night: /éjj/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary Hungarian locale.\n * @language Hungarian\n * @iso-639-2 hun\n * @author Pavlo Shpak [@pshpak]{@link https://github.com/pshpak}\n * @author Eduardo Pardo [@eduardopsll]{@link https://github.com/eduardopsll}\n * @author Zoltan Szepesi [@twodcube]{@link https://github.com/twodcube}\n */\nvar locale = {\n code: 'hu',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nfunction declensionGroup(scheme, count) {\n if (count === 1 && scheme.one) {\n return scheme.one;\n }\n if (count >= 2 && count <= 4 && scheme.twoFour) {\n return scheme.twoFour;\n }\n\n // if count === null || count === 0 || count >= 5\n return scheme.other;\n}\nfunction declension(scheme, count, time) {\n var group = declensionGroup(scheme, count);\n var finalText = group[time];\n return finalText.replace('{{count}}', String(count));\n}\nfunction extractPreposition(token) {\n var result = ['lessThan', 'about', 'over', 'almost'].filter(function (preposition) {\n return !!token.match(new RegExp('^' + preposition));\n });\n return result[0];\n}\nfunction prefixPreposition(preposition) {\n var translation = '';\n if (preposition === 'almost') {\n translation = 'takmer';\n }\n if (preposition === 'about') {\n translation = 'približne';\n }\n return translation.length > 0 ? translation + ' ' : '';\n}\nfunction suffixPreposition(preposition) {\n var translation = '';\n if (preposition === 'lessThan') {\n translation = 'menej než';\n }\n if (preposition === 'over') {\n translation = 'viac než';\n }\n return translation.length > 0 ? translation + ' ' : '';\n}\nfunction lowercaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n}\nvar formatDistanceLocale = {\n xSeconds: {\n one: {\n present: 'sekunda',\n past: 'sekundou',\n future: 'sekundu'\n },\n twoFour: {\n present: '{{count}} sekundy',\n past: '{{count}} sekundami',\n future: '{{count}} sekundy'\n },\n other: {\n present: '{{count}} sekúnd',\n past: '{{count}} sekundami',\n future: '{{count}} sekúnd'\n }\n },\n halfAMinute: {\n other: {\n present: 'pol minúty',\n past: 'pol minútou',\n future: 'pol minúty'\n }\n },\n xMinutes: {\n one: {\n present: 'minúta',\n past: 'minútou',\n future: 'minútu'\n },\n twoFour: {\n present: '{{count}} minúty',\n past: '{{count}} minútami',\n future: '{{count}} minúty'\n },\n other: {\n present: '{{count}} minút',\n past: '{{count}} minútami',\n future: '{{count}} minút'\n }\n },\n xHours: {\n one: {\n present: 'hodina',\n past: 'hodinou',\n future: 'hodinu'\n },\n twoFour: {\n present: '{{count}} hodiny',\n past: '{{count}} hodinami',\n future: '{{count}} hodiny'\n },\n other: {\n present: '{{count}} hodín',\n past: '{{count}} hodinami',\n future: '{{count}} hodín'\n }\n },\n xDays: {\n one: {\n present: 'deň',\n past: 'dňom',\n future: 'deň'\n },\n twoFour: {\n present: '{{count}} dni',\n past: '{{count}} dňami',\n future: '{{count}} dni'\n },\n other: {\n present: '{{count}} dní',\n past: '{{count}} dňami',\n future: '{{count}} dní'\n }\n },\n xWeeks: {\n one: {\n present: 'týždeň',\n past: 'týždňom',\n future: 'týždeň'\n },\n twoFour: {\n present: '{{count}} týždne',\n past: '{{count}} týždňami',\n future: '{{count}} týždne'\n },\n other: {\n present: '{{count}} týždňov',\n past: '{{count}} týždňami',\n future: '{{count}} týždňov'\n }\n },\n xMonths: {\n one: {\n present: 'mesiac',\n past: 'mesiacom',\n future: 'mesiac'\n },\n twoFour: {\n present: '{{count}} mesiace',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiace'\n },\n other: {\n present: '{{count}} mesiacov',\n past: '{{count}} mesiacmi',\n future: '{{count}} mesiacov'\n }\n },\n xYears: {\n one: {\n present: 'rok',\n past: 'rokom',\n future: 'rok'\n },\n twoFour: {\n present: '{{count}} roky',\n past: '{{count}} rokmi',\n future: '{{count}} roky'\n },\n other: {\n present: '{{count}} rokov',\n past: '{{count}} rokmi',\n future: '{{count}} rokov'\n }\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var preposition = extractPreposition(token) || '';\n var key = lowercaseFirstLetter(token.substring(preposition.length));\n var scheme = formatDistanceLocale[key];\n if (!(options !== null && options !== void 0 && options.addSuffix)) {\n return prefixPreposition(preposition) + suffixPreposition(preposition) + declension(scheme, count, 'present');\n }\n if (options.comparison && options.comparison > 0) {\n return prefixPreposition(preposition) + 'o ' + suffixPreposition(preposition) + declension(scheme, count, 'future');\n } else {\n return prefixPreposition(preposition) + 'pred ' + suffixPreposition(preposition) + declension(scheme, count, 'past');\n }\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1986\nvar dateFormats = {\n full: 'EEEE d. MMMM y',\n long: 'd. MMMM y',\n medium: 'd. M. y',\n short: 'd. M. y'\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#2149\nvar timeFormats = {\n full: 'H:mm:ss zzzz',\n long: 'H:mm:ss z',\n medium: 'H:mm:ss',\n short: 'H:mm'\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1994\nvar dateTimeFormats = {\n full: '{{date}}, {{time}}',\n long: '{{date}}, {{time}}',\n medium: '{{date}}, {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../../_lib/isSameUTCWeek/index.js\"));\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1308\nvar accusativeWeekdays = ['nedeľu', 'pondelok', 'utorok', 'stredu', 'štvrtok', 'piatok', 'sobotu'];\nfunction _lastWeek(day) {\n var weekday = accusativeWeekdays[day];\n switch (day) {\n case 0: /* Sun */\n case 3: /* Wed */\n case 6 /* Sat */:\n return \"'minulú \" + weekday + \" o' p\";\n default:\n return \"'minulý' eeee 'o' p\";\n }\n}\nfunction thisWeek(day) {\n var weekday = accusativeWeekdays[day];\n if (day === 4 /* Thu */) {\n return \"'vo' eeee 'o' p\";\n } else {\n return \"'v \" + weekday + \" o' p\";\n }\n}\nfunction _nextWeek(day) {\n var weekday = accusativeWeekdays[day];\n switch (day) {\n case 0: /* Sun */\n case 4: /* Wed */\n case 6 /* Sat */:\n return \"'budúcu \" + weekday + \" o' p\";\n default:\n return \"'budúci' eeee 'o' p\";\n }\n}\nvar formatRelativeLocale = {\n lastWeek: function lastWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _lastWeek(day);\n }\n },\n yesterday: \"'včera o' p\",\n today: \"'dnes o' p\",\n tomorrow: \"'zajtra o' p\",\n nextWeek: function nextWeek(date, baseDate, options) {\n var day = date.getUTCDay();\n if ((0, _index.default)(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return _nextWeek(day);\n }\n },\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, date, baseDate, options) {\n var format = formatRelativeLocale[token];\n if (typeof format === 'function') {\n return format(date, baseDate, options);\n }\n return format;\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1772\nvar eraValues = {\n narrow: ['pred Kr.', 'po Kr.'],\n abbreviated: ['pred Kr.', 'po Kr.'],\n wide: ['pred Kristom', 'po Kristovi']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1780\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. štvrťrok', '2. štvrťrok', '3. štvrťrok', '4. štvrťrok']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1804\nvar monthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december']\n};\nvar formattingMonthValues = {\n narrow: ['j', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],\n wide: ['januára', 'februára', 'marca', 'apríla', 'mája', 'júna', 'júla', 'augusta', 'septembra', 'októbra', 'novembra', 'decembra']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1876\nvar dayValues = {\n narrow: ['n', 'p', 'u', 's', 'š', 'p', 's'],\n short: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n abbreviated: ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],\n wide: ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota']\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1932\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'noc'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'poln.',\n noon: 'pol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'noc'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'polnoc',\n noon: 'poludnie',\n morning: 'ráno',\n afternoon: 'popoludnie',\n evening: 'večer',\n night: 'noc'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'nap.',\n morning: 'ráno',\n afternoon: 'pop.',\n evening: 'več.',\n night: 'v n.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o poln.',\n noon: 'napol.',\n morning: 'ráno',\n afternoon: 'popol.',\n evening: 'večer',\n night: 'v noci'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'o polnoci',\n noon: 'napoludnie',\n morning: 'ráno',\n afternoon: 'popoludní',\n evening: 'večer',\n night: 'v noci'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide',\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n abbreviated: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n wide: /^(pred Kristom|pred na[šs][íi]m letopo[čc]tom|po Kristovi|n[áa][šs]ho letopo[čc]tu)/i\n};\nvar parseEraPatterns = {\n any: [/^pr/i, /^(po|n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\. [šs]tvr[ťt]rok/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|m[áa]j|j[úu]n|j[úu]l|aug|sep|okt|nov|dec)/i,\n wide: /^(janu[áa]ra?|febru[áa]ra?|(marec|marca)|apr[íi]la?|m[áa]ja?|j[úu]na?|j[úu]la?|augusta?|(september|septembra)|(okt[óo]ber|okt[óo]bra)|(november|novembra)|(december|decembra))/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^m[áa]j/i, /^j[úu]n/i, /^j[úu]l/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[npusšp]/i,\n short: /^(ne|po|ut|st|št|pi|so)/i,\n abbreviated: /^(ne|po|ut|st|št|pi|so)/i,\n wide: /^(nede[ľl]a|pondelok|utorok|streda|[šs]tvrtok|piatok|sobota])/i\n};\nvar parseDayPatterns = {\n narrow: [/^n/i, /^p/i, /^u/i, /^s/i, /^š/i, /^p/i, /^s/i],\n any: [/^n/i, /^po/i, /^u/i, /^st/i, /^(št|stv)/i, /^pi/i, /^so/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(am|pm|(o )?poln\\.?|(nap\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]\\.?|(v n\\.?|noc))/i,\n abbreviated: /^(am|pm|(o )?poln\\.?|(napol\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]er|(v )?noci?)/i,\n any: /^(am|pm|(o )?polnoci?|(na)?poludnie|r[áa]no|popoludn(ie|í|i)|ve[čc]er|(v )?noci?)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^am/i,\n pm: /^pm/i,\n midnight: /poln/i,\n noon: /^(nap|(na)?pol(\\.|u))/i,\n morning: /^r[áa]no/i,\n afternoon: /^pop/i,\n evening: /^ve[čc]/i,\n night: /^(noc|v n\\.)/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary Slovak locale.\n * @language Slovak\n * @iso-639-2 slk\n * @author Marek Suscak [@mareksuscak]{@link https://github.com/mareksuscak}\n */\nvar locale = {\n code: 'sk',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _index = _interopRequireDefault(require(\"../_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 */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || (0, _typeof2.default)(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}\nmodule.exports = exports.default;","export default __webpack_public_path__ + \"static/media/index.d.fc289809.ts\";","export default __webpack_public_path__ + \"static/media/index.js.e5ec878c.flow\";","export default __webpack_public_path__ + \"static/media/index.d.009f1182.ts\";","export default __webpack_public_path__ + \"static/media/index.js.e5ec878c.flow\";","export default __webpack_public_path__ + \"static/media/index.d.f8eb360d.ts\";","export default __webpack_public_path__ + \"static/media/index.js.e5ec878c.flow\";","export default __webpack_public_path__ + \"static/media/index.d.03c58376.ts\";","export default __webpack_public_path__ + \"static/media/index.js.e5ec878c.flow\";","export default __webpack_public_path__ + \"static/media/index.d.f0e67823.ts\";","export default __webpack_public_path__ + \"static/media/index.js.e5ec878c.flow\";","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\"),require(\"prop-types\"),require(\"classnames\"),require(\"date-fns/isDate\"),require(\"date-fns/isValid\"),require(\"date-fns/format\"),require(\"date-fns/addMinutes\"),require(\"date-fns/addHours\"),require(\"date-fns/addDays\"),require(\"date-fns/addWeeks\"),require(\"date-fns/addMonths\"),require(\"date-fns/addQuarters\"),require(\"date-fns/addYears\"),require(\"date-fns/subDays\"),require(\"date-fns/subWeeks\"),require(\"date-fns/subMonths\"),require(\"date-fns/subQuarters\"),require(\"date-fns/subYears\"),require(\"date-fns/getSeconds\"),require(\"date-fns/getMinutes\"),require(\"date-fns/getHours\"),require(\"date-fns/getDay\"),require(\"date-fns/getDate\"),require(\"date-fns/getISOWeek\"),require(\"date-fns/getMonth\"),require(\"date-fns/getQuarter\"),require(\"date-fns/getYear\"),require(\"date-fns/getTime\"),require(\"date-fns/setSeconds\"),require(\"date-fns/setMinutes\"),require(\"date-fns/setHours\"),require(\"date-fns/setMonth\"),require(\"date-fns/setQuarter\"),require(\"date-fns/setYear\"),require(\"date-fns/min\"),require(\"date-fns/max\"),require(\"date-fns/differenceInCalendarDays\"),require(\"date-fns/differenceInCalendarMonths\"),require(\"date-fns/differenceInCalendarYears\"),require(\"date-fns/startOfDay\"),require(\"date-fns/startOfWeek\"),require(\"date-fns/startOfMonth\"),require(\"date-fns/startOfQuarter\"),require(\"date-fns/startOfYear\"),require(\"date-fns/endOfDay\"),require(\"date-fns/endOfWeek\"),require(\"date-fns/endOfMonth\"),require(\"date-fns/endOfYear\"),require(\"date-fns/isEqual\"),require(\"date-fns/isSameDay\"),require(\"date-fns/isSameMonth\"),require(\"date-fns/isSameYear\"),require(\"date-fns/isSameQuarter\"),require(\"date-fns/isAfter\"),require(\"date-fns/isBefore\"),require(\"date-fns/isWithinInterval\"),require(\"date-fns/toDate\"),require(\"date-fns/parse\"),require(\"date-fns/parseISO\"),require(\"react-onclickoutside\"),require(\"react-dom\"),require(\"react-popper\"),require(\"date-fns/set\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\",\"prop-types\",\"classnames\",\"date-fns/isDate\",\"date-fns/isValid\",\"date-fns/format\",\"date-fns/addMinutes\",\"date-fns/addHours\",\"date-fns/addDays\",\"date-fns/addWeeks\",\"date-fns/addMonths\",\"date-fns/addQuarters\",\"date-fns/addYears\",\"date-fns/subDays\",\"date-fns/subWeeks\",\"date-fns/subMonths\",\"date-fns/subQuarters\",\"date-fns/subYears\",\"date-fns/getSeconds\",\"date-fns/getMinutes\",\"date-fns/getHours\",\"date-fns/getDay\",\"date-fns/getDate\",\"date-fns/getISOWeek\",\"date-fns/getMonth\",\"date-fns/getQuarter\",\"date-fns/getYear\",\"date-fns/getTime\",\"date-fns/setSeconds\",\"date-fns/setMinutes\",\"date-fns/setHours\",\"date-fns/setMonth\",\"date-fns/setQuarter\",\"date-fns/setYear\",\"date-fns/min\",\"date-fns/max\",\"date-fns/differenceInCalendarDays\",\"date-fns/differenceInCalendarMonths\",\"date-fns/differenceInCalendarYears\",\"date-fns/startOfDay\",\"date-fns/startOfWeek\",\"date-fns/startOfMonth\",\"date-fns/startOfQuarter\",\"date-fns/startOfYear\",\"date-fns/endOfDay\",\"date-fns/endOfWeek\",\"date-fns/endOfMonth\",\"date-fns/endOfYear\",\"date-fns/isEqual\",\"date-fns/isSameDay\",\"date-fns/isSameMonth\",\"date-fns/isSameYear\",\"date-fns/isSameQuarter\",\"date-fns/isAfter\",\"date-fns/isBefore\",\"date-fns/isWithinInterval\",\"date-fns/toDate\",\"date-fns/parse\",\"date-fns/parseISO\",\"react-onclickoutside\",\"react-dom\",\"react-popper\",\"date-fns/set\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).DatePicker={},e.React,e.PropTypes,e.classNames,e.isDate,e.isValidDate,e.format,e.addMinutes,e.addHours,e.addDays,e.addWeeks,e.addMonths,e.addQuarters,e.addYears,e.subDays,e.subWeeks,e.subMonths,e.subQuarters,e.subYears,e.getSeconds,e.getMinutes,e.getHours,e.getDay,e.getDate,e.getISOWeek,e.getMonth,e.getQuarter,e.getYear,e.getTime,e.setSeconds,e.setMinutes,e.setHours,e.setMonth,e.setQuarter,e.setYear,e.min,e.max,e.differenceInCalendarDays,e.differenceInCalendarMonths,e.differenceInCalendarYears,e.startOfDay,e.startOfWeek,e.startOfMonth,e.startOfQuarter,e.startOfYear,e.endOfDay,null,e.endOfMonth,e.endOfYear,e.dfIsEqual,e.dfIsSameDay,e.dfIsSameMonth,e.dfIsSameYear,e.dfIsSameQuarter,e.isAfter,e.isBefore,e.isWithinInterval,e.toDate,e.parse,e.parseISO,e.onClickOutside,e.ReactDOM,e.ReactPopper,e.set)}(this,(function(e,t,r,a,n,o,s,i,p,l,c,d,u,f,h,m,y,v,D,g,k,w,b,S,C,_,M,P,E,N,x,Y,O,I,T,R,L,F,A,W,q,K,B,Q,H,j,V,U,z,$,G,J,X,Z,ee,te,re,ae,ne,oe,se,ie,pe,le){\"use strict\";function ce(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var de=ce(t),ue=ce(a),fe=ce(n),he=ce(o),me=ce(s),ye=ce(i),ve=ce(p),De=ce(l),ge=ce(c),ke=ce(d),we=ce(u),be=ce(f),Se=ce(h),Ce=ce(m),_e=ce(y),Me=ce(v),Pe=ce(D),Ee=ce(g),Ne=ce(k),xe=ce(w),Ye=ce(b),Oe=ce(S),Ie=ce(C),Te=ce(_),Re=ce(M),Le=ce(P),Fe=ce(E),Ae=ce(N),We=ce(x),qe=ce(Y),Ke=ce(O),Be=ce(I),Qe=ce(T),He=ce(R),je=ce(L),Ve=ce(F),Ue=ce(A),ze=ce(W),$e=ce(q),Ge=ce(K),Je=ce(B),Xe=ce(Q),Ze=ce(H),et=ce(j),tt=ce(U),rt=ce(z),at=ce($),nt=ce(G),ot=ce(J),st=ce(X),it=ce(Z),pt=ce(ee),lt=ce(te),ct=ce(re),dt=ce(ae),ut=ce(ne),ft=ce(oe),ht=ce(se),mt=ce(ie),yt=ce(le);function vt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function Dt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,a=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.excludeDateIntervals,s=t.includeDates,i=t.includeDateIntervals,p=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Jt(e,t)}))||o&&o.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||s&&!s.some((function(t){return Jt(e,t)}))||i&&!i.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})}))||p&&!p(At(e))||!1}function or(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeDates,a=t.excludeDateIntervals;return a&&a.length>0?a.some((function(t){var r=t.start,a=t.end;return ct.default(e,{start:r,end:a})})):r&&r.some((function(t){return Jt(e,t)}))||!1}function sr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:Je.default(r),maxDate:tt.default(a)})||n&&n.some((function(t){return $t(e,t)}))||o&&!o.some((function(t){return $t(e,t)}))||s&&!s(At(e))||!1}function ir(e,t,r,a){var n=Le.default(e),o=Te.default(e),s=Le.default(t),i=Te.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function pr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate;return ur(e,{minDate:r,maxDate:a})||n&&n.some((function(t){return Gt(e,t)}))||o&&!o.some((function(t){return Gt(e,t)}))||s&&!s(At(e))||!1}function lr(e,t,r){if(!he.default(t)||!he.default(r))return!1;var a=Le.default(t),n=Le.default(r);return a<=e&&n>=e}function cr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate,n=t.excludeDates,o=t.includeDates,s=t.filterDate,i=new Date(e,0,1);return ur(i,{minDate:Ze.default(r),maxDate:rt.default(a)})||n&&n.some((function(e){return zt(i,e)}))||o&&!o.some((function(e){return zt(i,e)}))||s&&!s(At(i))||!1}function dr(e,t,r,a){var n=Le.default(e),o=Re.default(e),s=Le.default(t),i=Re.default(t),p=Le.default(a);return n===s&&n===p?o<=r&&r<=i:n=r||pn:void 0}function ur(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.maxDate;return r&&Ve.default(e,r)<0||a&&Ve.default(e,a)>0}function fr(e,t){return t.some((function(t){return xe.default(t)===xe.default(e)&&Ne.default(t)===Ne.default(e)}))}function hr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.excludeTimes,a=t.includeTimes,n=t.filterTime;return r&&fr(e,r)||a&&!fr(e,a)||n&&!n(e)||!1}function mr(e,t){var r=t.minTime,a=t.maxTime;if(!r||!a)throw new Error(\"Both minTime and maxTime props required\");var n,o=At(),s=qe.default(We.default(o,Ne.default(e)),xe.default(e)),i=qe.default(We.default(o,Ne.default(r)),xe.default(r)),p=qe.default(We.default(o,Ne.default(a)),xe.default(a));try{n=!ct.default(s,{start:i,end:p})}catch(e){n=!1}return n}function yr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=_e.default(e,1);return r&&Ue.default(r,n)>0||a&&a.every((function(e){return Ue.default(e,n)>0}))||!1}function vr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=ke.default(e,1);return r&&Ue.default(n,r)>0||a&&a.every((function(e){return Ue.default(n,e)>0}))||!1}function Dr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.includeDates,n=Pe.default(e,1);return r&&ze.default(r,n)>0||a&&a.every((function(e){return ze.default(e,n)>0}))||!1}function gr(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.includeDates,n=be.default(e,1);return r&&ze.default(n,r)>0||a&&a.every((function(e){return ze.default(n,e)>0}))||!1}function kr(e){var t=e.minDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)>=0}));return He.default(a)}return r?He.default(r):t}function wr(e){var t=e.maxDate,r=e.includeDates;if(r&&t){var a=r.filter((function(e){return Ve.default(e,t)<=0}));return je.default(a)}return r?je.default(r):t}function br(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--highlighted\",r=new Map,a=0,n=e.length;a0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"react-datepicker__day--holidays\",r=new Map;return e.forEach((function(e){var a=e.date,n=e.holidayName;if(fe.default(a)){var o=qt(a,\"MM.dd.yyyy\"),s=r.get(o)||{};if(!(\"className\"in s)||s.className!==t||(i=s.holidayNames,p=[n],i.length!==p.length||!i.every((function(e,t){return e===p[t]})))){var i,p;s.className=t;var l=s.holidayNames;s.holidayNames=l?[].concat(xt(l),[n]):[n],r.set(o,s)}}})),r}function Cr(e,t,r,a,n){for(var o=n.length,s=[],i=0;i1&&void 0!==arguments[1]?arguments[1]:Lt,r=Math.ceil(Le.default(e)/t)*t;return{startPeriod:r-(t-1),endPeriod:r}}function Pr(e){var t=e.getSeconds(),r=e.getMilliseconds();return dt.default(e.getTime()-1e3*t-r)}function Er(e,t,r,a){for(var n=[],o=0;o<2*t+1;o++){var s=e+t-o,i=!0;r&&(i=Le.default(r)<=s),a&&i&&(i=Le.default(a)>=s),i&&n.push(s)}return n}var Nr=function(e){_t(a,e);var r=Nt(a);function a(e){var n;kt(this,a),St(Et(n=r.call(this,e)),\"renderOptions\",(function(){var e=n.props.year,t=n.state.yearsList.map((function(t){return de.default.createElement(\"div\",{className:e===t?\"react-datepicker__year-option react-datepicker__year-option--selected_year\":\"react-datepicker__year-option\",key:t,onClick:n.onChange.bind(Et(n),t),\"aria-selected\":e===t?\"true\":void 0},e===t?de.default.createElement(\"span\",{className:\"react-datepicker__year-option--selected\"},\"✓\"):\"\",t)})),r=n.props.minDate?Le.default(n.props.minDate):null,a=n.props.maxDate?Le.default(n.props.maxDate):null;return a&&n.state.yearsList.find((function(e){return e===a}))||t.unshift(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"upcoming\",onClick:n.incrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-upcoming\"}))),r&&n.state.yearsList.find((function(e){return e===r}))||t.push(de.default.createElement(\"div\",{className:\"react-datepicker__year-option\",key:\"previous\",onClick:n.decrementYears},de.default.createElement(\"a\",{className:\"react-datepicker__navigation react-datepicker__navigation--years react-datepicker__navigation--years-previous\"}))),t})),St(Et(n),\"onChange\",(function(e){n.props.onChange(e)})),St(Et(n),\"handleClickOutside\",(function(){n.props.onCancel()})),St(Et(n),\"shiftYears\",(function(e){var t=n.state.yearsList.map((function(t){return t+e}));n.setState({yearsList:t})})),St(Et(n),\"incrementYears\",(function(){return n.shiftYears(1)})),St(Et(n),\"decrementYears\",(function(){return n.shiftYears(-1)}));var o=e.yearDropdownItemNumber,s=e.scrollableYearDropdown,i=o||(s?10:5);return n.state={yearsList:Er(n.props.year,i,n.props.minDate,n.props.maxDate)},n.dropdownRef=t.createRef(),n}return bt(a,[{key:\"componentDidMount\",value:function(){var e=this.dropdownRef.current;if(e){var t=e.children?Array.from(e.children):null,r=t?t.find((function(e){return e.ariaSelected})):null;e.scrollTop=r?r.offsetTop+(r.clientHeight-e.clientHeight)/2:(e.scrollHeight-e.clientHeight)/2}}},{key:\"render\",value:function(){var e=ue.default({\"react-datepicker__year-dropdown\":!0,\"react-datepicker__year-dropdown--scrollable\":this.props.scrollableYearDropdown});return de.default.createElement(\"div\",{className:e,ref:this.dropdownRef},this.renderOptions())}}]),a}(de.default.Component),xr=ht.default(Nr),Yr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0?n.get(o).holidayNames.join(\", \"):\"\"})),St(Et(e),\"getTabIndex\",(function(t,r){var a=t||e.props.selected,n=r||e.props.preSelection;return(!e.props.showWeekPicker||!e.props.showWeekNumber&&e.isStartOfWeek())&&(e.isKeyboardSelected()||e.isSameDay(a)&&Jt(n,a))?0:-1})),St(Et(e),\"handleFocusDay\",(function(){var t,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=!1;0===e.getTabIndex()&&!r.isInputFocused&&e.isSameDay(e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(a=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(a=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement.classList.contains(\"react-datepicker__day\")&&(a=!0),e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()&&(a=!1),e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()&&(a=!1)),a&&(null===(t=e.dayEl.current)||void 0===t||t.focus({preventScroll:!0}))})),St(Et(e),\"renderDayContents\",(function(){return e.props.monthShowsDuplicateDaysEnd&&e.isAfterMonth()||e.props.monthShowsDuplicateDaysStart&&e.isBeforeMonth()?null:e.props.renderDayContents?e.props.renderDayContents(Oe.default(e.props.day),e.props.day):Oe.default(e.props.day)})),St(Et(e),\"render\",(function(){return de.default.createElement(\"div\",{ref:e.dayEl,className:e.getClassNames(e.props.day),onKeyDown:e.handleOnKeyDown,onClick:e.handleClick,onMouseEnter:e.handleMouseEnter,tabIndex:e.getTabIndex(),\"aria-label\":e.getAriaLabel(),role:\"option\",title:e.getTitle(),\"aria-disabled\":e.isDisabled(),\"aria-current\":e.isCurrentDay()?\"date\":void 0,\"aria-selected\":e.isSelected()||e.isInRange()},e.renderDayContents(),\"\"!==e.getTitle()&&de.default.createElement(\"span\",{className:\"holiday-overlay\"},e.getTitle()))})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusDay()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusDay(e)}}]),r}(de.default.Component),qr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{},r=!1;0===e.getTabIndex()&&!t.isInputFocused&&Jt(e.props.date,e.props.preSelection)&&(document.activeElement&&document.activeElement!==document.body||(r=!0),e.props.inline&&!e.props.shouldFocusDayInline&&(r=!1),e.props.containerRef&&e.props.containerRef.current&&e.props.containerRef.current.contains(document.activeElement)&&document.activeElement&&document.activeElement.classList.contains(\"react-datepicker__week-number\")&&(r=!0)),r&&e.weekNumberEl.current&&e.weekNumberEl.current.focus({preventScroll:!0})})),e}return bt(r,[{key:\"componentDidMount\",value:function(){this.handleFocusWeekNumber()}},{key:\"componentDidUpdate\",value:function(e){this.handleFocusWeekNumber(e)}},{key:\"render\",value:function(){var e=this.props,t=e.weekNumber,r=e.ariaLabelPrefix,a=void 0===r?\"week \":r,n={\"react-datepicker__week-number\":!0,\"react-datepicker__week-number--clickable\":!!e.onClick,\"react-datepicker__week-number--selected\":Jt(this.props.date,this.props.selected),\"react-datepicker__week-number--keyboard-selected\":this.isKeyboardSelected()};return de.default.createElement(\"div\",{ref:this.weekNumberEl,className:ue.default(n),\"aria-label\":\"\".concat(a,\" \").concat(this.props.weekNumber),onClick:this.handleClick,onKeyDown:this.handleOnKeyDown,tabIndex:this.getTabIndex()},t)}}],[{key:\"defaultProps\",get:function(){return{ariaLabelPrefix:\"week \"}}}]),r}(de.default.Component),Kr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o=6,i=!r&&!e.isWeekInMonth(o);if(s||i){if(!e.props.peekNextMonth)break;n=!0}}return t})),St(Et(e),\"onMonthClick\",(function(t,r){e.handleDayClick(Ht(Ke.default(e.props.day,r)),t)})),St(Et(e),\"onMonthMouseEnter\",(function(t){e.handleDayMouseEnter(Ht(Ke.default(e.props.day,t)))})),St(Et(e),\"handleMonthNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.MONTH_REFS[t].current&&e.MONTH_REFS[t].current.focus())})),St(Et(e),\"onMonthKeyDown\",(function(t,r){var a=e.props,n=a.selected,o=a.preSelection,s=a.disabledKeyboardNavigation,i=a.showTwoColumnMonthYearPicker,p=a.showFourColumnMonthYearPicker,l=a.setPreSelection,c=t.key;if(\"Tab\"!==c&&t.preventDefault(),!s){var d=Vr(p,i),u=jr[d].verticalNavigationOffset,f=jr[d].grid;switch(c){case\"Enter\":e.onMonthClick(t,r),l(n);break;case\"ArrowRight\":e.handleMonthNavigation(11===r?0:r+1,ke.default(o,1));break;case\"ArrowLeft\":e.handleMonthNavigation(0===r?11:r-1,_e.default(o,1));break;case\"ArrowUp\":e.handleMonthNavigation(f[0].includes(r)?r+12-u:r-u,_e.default(o,u));break;case\"ArrowDown\":e.handleMonthNavigation(f[f.length-1].includes(r)?r-12+u:r+u,ke.default(o,u))}}})),St(Et(e),\"onQuarterClick\",(function(t,r){e.handleDayClick(Vt(Be.default(e.props.day,r)),t)})),St(Et(e),\"onQuarterMouseEnter\",(function(t){e.handleDayMouseEnter(Vt(Be.default(e.props.day,t)))})),St(Et(e),\"handleQuarterNavigation\",(function(t,r){e.isDisabled(r)||e.isExcluded(r)||(e.props.setPreSelection(r),e.QUARTER_REFS[t-1].current&&e.QUARTER_REFS[t-1].current.focus())})),St(Et(e),\"onQuarterKeyDown\",(function(t,r){var a=t.key;if(!e.props.disabledKeyboardNavigation)switch(a){case\"Enter\":e.onQuarterClick(t,r),e.props.setPreSelection(e.props.selected);break;case\"ArrowRight\":e.handleQuarterNavigation(4===r?1:r+1,we.default(e.props.preSelection,1));break;case\"ArrowLeft\":e.handleQuarterNavigation(1===r?4:r-1,Me.default(e.props.preSelection,1))}})),St(Et(e),\"getMonthClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.monthClassName,d=r.excludeDates,u=r.includeDates,f=c?c(Ke.default(a,t)):void 0,h=Ke.default(a,t);return ue.default(\"react-datepicker__month-text\",\"react-datepicker__month-\".concat(t),f,{\"react-datepicker__month-text--disabled\":(i||p||d||u)&&sr(h,e.props),\"react-datepicker__month-text--selected\":e.isSelectedMonth(a,t,s),\"react-datepicker__month-text--keyboard-selected\":!e.props.disabledKeyboardNavigation&&Te.default(l)===t,\"react-datepicker__month-text--in-selecting-range\":e.isInSelectingRangeMonth(t),\"react-datepicker__month-text--in-range\":ir(n,o,t,a),\"react-datepicker__month-text--range-start\":e.isRangeStartMonth(t),\"react-datepicker__month-text--range-end\":e.isRangeEndMonth(t),\"react-datepicker__month-text--selecting-range-start\":e.isSelectingMonthRangeStart(t),\"react-datepicker__month-text--selecting-range-end\":e.isSelectingMonthRangeEnd(t),\"react-datepicker__month-text--today\":e.isCurrentMonth(a,t)})})),St(Et(e),\"getTabIndex\",(function(t){var r=Te.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getQuarterTabIndex\",(function(t){var r=Re.default(e.props.preSelection);return e.props.disabledKeyboardNavigation||t!==r?\"-1\":\"0\"})),St(Et(e),\"getAriaLabel\",(function(t){var r=e.props,a=r.chooseDayAriaLabelPrefix,n=void 0===a?\"Choose\":a,o=r.disabledDayAriaLabelPrefix,s=void 0===o?\"Not available\":o,i=r.day,p=Ke.default(i,t),l=e.isDisabled(p)||e.isExcluded(p)?s:n;return\"\".concat(l,\" \").concat(qt(p,\"MMMM yyyy\"))})),St(Et(e),\"getQuarterClassNames\",(function(t){var r=e.props,a=r.day,n=r.startDate,o=r.endDate,s=r.selected,i=r.minDate,p=r.maxDate,l=r.preSelection,c=r.disabledKeyboardNavigation;return ue.default(\"react-datepicker__quarter-text\",\"react-datepicker__quarter-\".concat(t),{\"react-datepicker__quarter-text--disabled\":(i||p)&&pr(Be.default(a,t),e.props),\"react-datepicker__quarter-text--selected\":e.isSelectedQuarter(a,t,s),\"react-datepicker__quarter-text--keyboard-selected\":!c&&Re.default(l)===t,\"react-datepicker__quarter-text--in-selecting-range\":e.isInSelectingRangeQuarter(t),\"react-datepicker__quarter-text--in-range\":dr(n,o,t,a),\"react-datepicker__quarter-text--range-start\":e.isRangeStartQuarter(t),\"react-datepicker__quarter-text--range-end\":e.isRangeEndQuarter(t)})})),St(Et(e),\"getMonthContent\",(function(t){var r=e.props,a=r.showFullMonthYearPicker,n=r.renderMonthContent,o=r.locale,s=r.day,i=ar(t,o),p=rr(t,o);return n?n(t,i,p,s):a?p:i})),St(Et(e),\"getQuarterContent\",(function(t){var r=e.props,a=r.renderQuarterContent,n=function(e,t){return qt(Be.default(At(),e),\"QQQ\",t)}(t,r.locale);return a?a(t,n):n})),St(Et(e),\"renderMonths\",(function(){var t=e.props,r=t.showTwoColumnMonthYearPicker,a=t.showFourColumnMonthYearPicker,n=t.day,o=t.selected;return jr[Vr(a,r)].grid.map((function(t,r){return de.default.createElement(\"div\",{className:\"react-datepicker__month-wrapper\",key:r},t.map((function(t,r){return de.default.createElement(\"div\",{ref:e.MONTH_REFS[t],key:r,onClick:function(r){e.onMonthClick(r,t)},onKeyDown:function(r){e.onMonthKeyDown(r,t)},onMouseEnter:function(){return e.onMonthMouseEnter(t)},tabIndex:e.getTabIndex(t),className:e.getMonthClassNames(t),role:\"option\",\"aria-label\":e.getAriaLabel(t),\"aria-current\":e.isCurrentMonth(n,t)?\"date\":void 0,\"aria-selected\":e.isSelectedMonth(n,t,o)},e.getMonthContent(t))})))}))})),St(Et(e),\"renderQuarters\",(function(){var t=e.props,r=t.day,a=t.selected;return de.default.createElement(\"div\",{className:\"react-datepicker__quarter-wrapper\"},[1,2,3,4].map((function(t,n){return de.default.createElement(\"div\",{key:n,ref:e.QUARTER_REFS[n],role:\"option\",onClick:function(r){e.onQuarterClick(r,t)},onKeyDown:function(r){e.onQuarterKeyDown(r,t)},onMouseEnter:function(){return e.onQuarterMouseEnter(t)},className:e.getQuarterClassNames(t),\"aria-selected\":e.isSelectedQuarter(r,t,a),tabIndex:e.getQuarterTabIndex(t),\"aria-current\":e.isCurrentQuarter(r,t)?\"date\":void 0},e.getQuarterContent(t))})))})),St(Et(e),\"getClassNames\",(function(){var t=e.props,r=t.selectingDate,a=t.selectsStart,n=t.selectsEnd,o=t.showMonthYearPicker,s=t.showQuarterYearPicker,i=t.showWeekPicker;return ue.default(\"react-datepicker__month\",{\"react-datepicker__month--selecting-range\":r&&(a||n)},{\"react-datepicker__monthPicker\":o},{\"react-datepicker__quarterPicker\":s},{\"react-datepicker__weekPicker\":i})})),e}return bt(r,[{key:\"render\",value:function(){var e=this.props,t=e.showMonthYearPicker,r=e.showQuarterYearPicker,a=e.day,n=e.ariaLabelPrefix,o=void 0===n?\"month \":n;return de.default.createElement(\"div\",{className:this.getClassNames(),onMouseLeave:this.handleMouseLeave,\"aria-label\":\"\".concat(o,\" \").concat(qt(a,\"yyyy-MM\")),role:\"listbox\"},t?this.renderMonths():r?this.renderQuarters():this.renderWeeks())}}]),r}(de.default.Component),zr=function(e){_t(r,e);var t=Nt(r);function r(){var e;kt(this,r);for(var a=arguments.length,n=new Array(a),o=0;o0&&void 0!==arguments[0]?arguments[0]:{}).className||\"\").split(/\\s+/);return Xr.some((function(t){return e.indexOf(t)>=0}))})(e.target)&&a.props.onDropdownFocus()})),St(Et(a),\"getDateInView\",(function(){var e=a.props,t=e.preSelection,r=e.selected,n=e.openToDate,o=kr(a.props),s=wr(a.props),i=At(),p=n||r||t;return p||(o&<.default(i,o)?o:s&&pt.default(i,s)?s:i)})),St(Et(a),\"increaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:ke.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"decreaseMonth\",(function(){a.setState((function(e){var t=e.date;return{date:_e.default(t,1)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"handleDayClick\",(function(e,t,r){a.props.onSelect(e,t,r),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleDayMouseEnter\",(function(e){a.setState({selectingDate:e}),a.props.onDayMouseEnter&&a.props.onDayMouseEnter(e)})),St(Et(a),\"handleMonthMouseLeave\",(function(){a.setState({selectingDate:null}),a.props.onMonthMouseLeave&&a.props.onMonthMouseLeave()})),St(Et(a),\"handleYearMouseEnter\",(function(e,t){a.setState({selectingDate:Qe.default(At(),t)}),a.props.onYearMouseEnter&&a.props.onYearMouseEnter(e,t)})),St(Et(a),\"handleYearMouseLeave\",(function(e,t){a.props.onYearMouseLeave&&a.props.onYearMouseLeave(e,t)})),St(Et(a),\"handleYearChange\",(function(e){a.props.onYearChange&&(a.props.onYearChange(e),a.setState({isRenderAriaLiveMessage:!0})),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleMonthChange\",(function(e){a.handleCustomMonthChange(e),a.props.adjustDateOnChange&&(a.props.onSelect&&a.props.onSelect(e),a.props.setOpen&&a.props.setOpen(!0)),a.props.setPreSelection&&a.props.setPreSelection(e)})),St(Et(a),\"handleCustomMonthChange\",(function(e){a.props.onMonthChange&&(a.props.onMonthChange(e),a.setState({isRenderAriaLiveMessage:!0}))})),St(Et(a),\"handleMonthYearChange\",(function(e){a.handleYearChange(e),a.handleMonthChange(e)})),St(Et(a),\"changeYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(r,e)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"changeMonth\",(function(e){a.setState((function(t){var r=t.date;return{date:Ke.default(r,e)}}),(function(){return a.handleMonthChange(a.state.date)}))})),St(Et(a),\"changeMonthYear\",(function(e){a.setState((function(t){var r=t.date;return{date:Qe.default(Ke.default(r,Te.default(e)),Le.default(e))}}),(function(){return a.handleMonthYearChange(a.state.date)}))})),St(Et(a),\"header\",(function(){var e=Qt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.state.date,a.props.locale,a.props.calendarStartDay),t=[];return a.props.showWeekNumbers&&t.push(de.default.createElement(\"div\",{key:\"W\",className:\"react-datepicker__day-name\"},a.props.weekLabel||\"#\")),t.concat([0,1,2,3,4,5,6].map((function(t){var r=De.default(e,t),n=a.formatWeekday(r,a.props.locale),o=a.props.weekDayClassName?a.props.weekDayClassName(r):void 0;return de.default.createElement(\"div\",{key:t,className:ue.default(\"react-datepicker__day-name\",o)},n)})))})),St(Et(a),\"formatWeekday\",(function(e,t){return a.props.formatWeekDay?function(e,t,r){return t(qt(e,\"EEEE\",r))}(e,a.props.formatWeekDay,t):a.props.useWeekdaysShort?function(e,t){return qt(e,\"EEE\",t)}(e,t):function(e,t){return qt(e,\"EEEEEE\",t)}(e,t)})),St(Et(a),\"decreaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:Pe.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"clearSelectingDate\",(function(){a.setState({selectingDate:null})})),St(Et(a),\"renderPreviousButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=Dr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.minDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(jt(Pe.default(e,n)),n).endPeriod,s=r&&Le.default(r);return s&&s>o||!1}(a.state.date,a.props);break;default:e=yr(a.state.date,a.props)}if((a.props.forceShowMonthNavigation||a.props.showDisabledMonthNavigation||!e)&&!a.props.showTimeSelectOnly){var t=[\"react-datepicker__navigation\",\"react-datepicker__navigation--previous\"],r=a.decreaseMonth;(a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker)&&(r=a.decreaseYear),e&&a.props.showDisabledMonthNavigation&&(t.push(\"react-datepicker__navigation--previous--disabled\"),r=null);var n=a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker,o=a.props,s=o.previousMonthButtonLabel,i=o.previousYearButtonLabel,p=a.props,l=p.previousMonthAriaLabel,c=void 0===l?\"string\"==typeof s?s:\"Previous Month\":l,d=p.previousYearAriaLabel,u=void 0===d?\"string\"==typeof i?i:\"Previous Year\":d;return de.default.createElement(\"button\",{type:\"button\",className:t.join(\" \"),onClick:r,onKeyDown:a.props.handleOnKeyDown,\"aria-label\":n?u:c},de.default.createElement(\"span\",{className:[\"react-datepicker__navigation-icon\",\"react-datepicker__navigation-icon--previous\"].join(\" \")},n?a.props.previousYearButtonLabel:a.props.previousMonthButtonLabel))}}})),St(Et(a),\"increaseYear\",(function(){a.setState((function(e){var t=e.date;return{date:be.default(t,a.props.showYearPicker?a.props.yearItemNumber:1)}}),(function(){return a.handleYearChange(a.state.date)}))})),St(Et(a),\"renderNextButton\",(function(){if(!a.props.renderCustomHeader){var e;switch(!0){case a.props.showMonthYearPicker:e=gr(a.state.date,a.props);break;case a.props.showYearPicker:e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.maxDate,a=t.yearItemNumber,n=void 0===a?Lt:a,o=Mr(be.default(e,n),n).startPeriod,s=r&&Le.default(r);return s&&s0&&void 0!==arguments[0]?arguments[0]:a.state.date,t=[\"react-datepicker__current-month\"];return a.props.showYearDropdown&&t.push(\"react-datepicker__current-month--hasYearDropdown\"),a.props.showMonthDropdown&&t.push(\"react-datepicker__current-month--hasMonthDropdown\"),a.props.showMonthYearDropdown&&t.push(\"react-datepicker__current-month--hasMonthYearDropdown\"),de.default.createElement(\"div\",{className:t.join(\" \")},qt(e,a.props.dateFormat,a.props.locale))})),St(Et(a),\"renderYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showYearDropdown&&!e)return de.default.createElement(Yr,{adjustDateOnChange:a.props.adjustDateOnChange,date:a.state.date,onSelect:a.props.onSelect,setOpen:a.props.setOpen,dropdownMode:a.props.dropdownMode,onChange:a.changeYear,minDate:a.props.minDate,maxDate:a.props.maxDate,year:Le.default(a.state.date),scrollableYearDropdown:a.props.scrollableYearDropdown,yearDropdownItemNumber:a.props.yearDropdownItemNumber})})),St(Et(a),\"renderMonthDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthDropdown&&!e)return de.default.createElement(Tr,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,onChange:a.changeMonth,month:Te.default(a.state.date),useShortMonthInDropdown:a.props.useShortMonthInDropdown})})),St(Et(a),\"renderMonthYearDropdown\",(function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(a.props.showMonthYearDropdown&&!e)return de.default.createElement(Ar,{dropdownMode:a.props.dropdownMode,locale:a.props.locale,dateFormat:a.props.dateFormat,onChange:a.changeMonthYear,minDate:a.props.minDate,maxDate:a.props.maxDate,date:a.state.date,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown})})),St(Et(a),\"handleTodayButtonClick\",(function(e){a.props.onSelect(Ut(),e),a.props.setPreSelection&&a.props.setPreSelection(Ut())})),St(Et(a),\"renderTodayButton\",(function(){if(a.props.todayButton&&!a.props.showTimeSelectOnly)return de.default.createElement(\"div\",{className:\"react-datepicker__today-button\",onClick:function(e){return a.handleTodayButtonClick(e)}},a.props.todayButton)})),St(Et(a),\"renderDefaultHeader\",(function(e){var t=e.monthDate,r=e.i;return de.default.createElement(\"div\",{className:\"react-datepicker__header \".concat(a.props.showTimeSelect?\"react-datepicker__header--has-time-select\":\"\")},a.renderCurrentMonth(t),de.default.createElement(\"div\",{className:\"react-datepicker__header__dropdown react-datepicker__header__dropdown--\".concat(a.props.dropdownMode),onFocus:a.handleDropdownFocus},a.renderMonthDropdown(0!==r),a.renderMonthYearDropdown(0!==r),a.renderYearDropdown(0!==r)),de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderCustomHeader\",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.monthDate,r=e.i;if(a.props.showTimeSelect&&!a.state.monthContainer||a.props.showTimeSelectOnly)return null;var n=yr(a.state.date,a.props),o=vr(a.state.date,a.props),s=Dr(a.state.date,a.props),i=gr(a.state.date,a.props),p=!a.props.showMonthYearPicker&&!a.props.showQuarterYearPicker&&!a.props.showYearPicker;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker__header--custom\",onFocus:a.props.onDropdownFocus},a.props.renderCustomHeader(Dt(Dt({},a.state),{},{customHeaderCount:r,monthDate:t,changeMonth:a.changeMonth,changeYear:a.changeYear,decreaseMonth:a.decreaseMonth,increaseMonth:a.increaseMonth,decreaseYear:a.decreaseYear,increaseYear:a.increaseYear,prevMonthButtonDisabled:n,nextMonthButtonDisabled:o,prevYearButtonDisabled:s,nextYearButtonDisabled:i})),p&&de.default.createElement(\"div\",{className:\"react-datepicker__day-names\"},a.header(t)))})),St(Et(a),\"renderYearHeader\",(function(){var e=a.state.date,t=a.props,r=t.showYearPicker,n=Mr(e,t.yearItemNumber),o=n.startPeriod,s=n.endPeriod;return de.default.createElement(\"div\",{className:\"react-datepicker__header react-datepicker-year-header\"},r?\"\".concat(o,\" - \").concat(s):Le.default(e))})),St(Et(a),\"renderHeader\",(function(e){switch(!0){case void 0!==a.props.renderCustomHeader:return a.renderCustomHeader(e);case a.props.showMonthYearPicker||a.props.showQuarterYearPicker||a.props.showYearPicker:return a.renderYearHeader(e);default:return a.renderDefaultHeader(e)}})),St(Et(a),\"renderMonths\",(function(){var e;if(!a.props.showTimeSelectOnly&&!a.props.showYearPicker){for(var t=[],r=a.props.showPreviousMonths?a.props.monthsShown-1:0,n=_e.default(a.state.date,r),o=null!==(e=a.props.monthSelectedIn)&&void 0!==e?e:r,s=0;s0;t.push(de.default.createElement(\"div\",{key:l,ref:function(e){a.monthContainer=e},className:\"react-datepicker__month-container\"},a.renderHeader({monthDate:p,i:s}),de.default.createElement(Ur,{chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,ariaLabelPrefix:a.props.monthAriaLabelPrefix,onChange:a.changeMonthYear,day:p,dayClassName:a.props.dayClassName,calendarStartDay:a.props.calendarStartDay,monthClassName:a.props.monthClassName,onDayClick:a.handleDayClick,handleOnKeyDown:a.props.handleOnDayKeyDown,onDayMouseEnter:a.handleDayMouseEnter,onMouseLeave:a.handleMonthMouseLeave,onWeekSelect:a.props.onWeekSelect,orderInDisplay:s,formatWeekNumber:a.props.formatWeekNumber,locale:a.props.locale,minDate:a.props.minDate,maxDate:a.props.maxDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,highlightDates:a.props.highlightDates,holidays:a.props.holidays,selectingDate:a.state.selectingDate,includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,inline:a.props.inline,shouldFocusDayInline:a.props.shouldFocusDayInline,fixedHeight:a.props.fixedHeight,filterDate:a.props.filterDate,preSelection:a.props.preSelection,setPreSelection:a.props.setPreSelection,selected:a.props.selected,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showWeekNumbers:a.props.showWeekNumbers,startDate:a.props.startDate,endDate:a.props.endDate,peekNextMonth:a.props.peekNextMonth,setOpen:a.props.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,isInputFocused:a.props.isInputFocused,containerRef:a.containerRef,monthShowsDuplicateDaysEnd:c,monthShowsDuplicateDaysStart:d})))}return t}})),St(Et(a),\"renderYears\",(function(){if(!a.props.showTimeSelectOnly)return a.props.showYearPicker?de.default.createElement(\"div\",{className:\"react-datepicker__year--container\"},a.renderHeader(),de.default.createElement($r,Ct({onDayClick:a.handleDayClick,selectingDate:a.state.selectingDate,clearSelectingDate:a.clearSelectingDate,date:a.state.date},a.props,{onYearMouseEnter:a.handleYearMouseEnter,onYearMouseLeave:a.handleYearMouseLeave}))):void 0})),St(Et(a),\"renderTimeSection\",(function(){if(a.props.showTimeSelect&&(a.state.monthContainer||a.props.showTimeSelectOnly))return de.default.createElement(zr,{selected:a.props.selected,openToDate:a.props.openToDate,onChange:a.props.onTimeChange,timeClassName:a.props.timeClassName,format:a.props.timeFormat,includeTimes:a.props.includeTimes,intervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,todayButton:a.props.todayButton,showMonthDropdown:a.props.showMonthDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,monthRef:a.state.monthContainer,injectTimes:a.props.injectTimes,locale:a.props.locale,handleOnKeyDown:a.props.handleOnKeyDown,showTimeSelectOnly:a.props.showTimeSelectOnly})})),St(Et(a),\"renderInputTimeSection\",(function(){var e=new Date(a.props.selected),t=Wt(e)&&Boolean(a.props.selected)?\"\".concat(_r(e.getHours()),\":\").concat(_r(e.getMinutes())):\"\";if(a.props.showTimeInput)return de.default.createElement(Gr,{date:e,timeString:t,timeInputLabel:a.props.timeInputLabel,onChange:a.props.onTimeChange,customTimeInput:a.props.customTimeInput})})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=Mr(a.state.date,a.props.yearItemNumber),r=t.startPeriod,n=t.endPeriod;return e=a.props.showYearPicker?\"\".concat(r,\" - \").concat(n):a.props.showMonthYearPicker||a.props.showQuarterYearPicker?Le.default(a.state.date):\"\".concat(rr(Te.default(a.state.date),a.props.locale),\" \").concat(Le.default(a.state.date)),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},a.state.isRenderAriaLiveMessage&&e)})),St(Et(a),\"renderChildren\",(function(){if(a.props.children)return de.default.createElement(\"div\",{className:\"react-datepicker__children-container\"},a.props.children)})),a.containerRef=de.default.createRef(),a.state={date:a.getDateInView(),selectingDate:null,monthContainer:null,isRenderAriaLiveMessage:!1},a}return bt(r,[{key:\"componentDidMount\",value:function(){var e=this;this.props.showTimeSelect&&(this.assignMonthContainer=void e.setState({monthContainer:e.monthContainer}))}},{key:\"componentDidUpdate\",value:function(e){var t=this;if(!this.props.preSelection||Jt(this.props.preSelection,e.preSelection)&&this.props.monthSelectedIn===e.monthSelectedIn)this.props.openToDate&&!Jt(this.props.openToDate,e.openToDate)&&this.setState({date:this.props.openToDate});else{var r=!$t(this.state.date,this.props.preSelection);this.setState({date:this.props.preSelection},(function(){return r&&t.handleCustomMonthChange(t.state.date)}))}}},{key:\"render\",value:function(){var e=this.props.container||Jr;return de.default.createElement(\"div\",{style:{display:\"contents\"},ref:this.containerRef},de.default.createElement(e,{className:ue.default(\"react-datepicker\",this.props.className,{\"react-datepicker--time-only\":this.props.showTimeSelectOnly}),showPopperArrow:this.props.showPopperArrow,arrowProps:this.props.arrowProps},this.renderAriaLiveRegion(),this.renderPreviousButton(),this.renderNextButton(),this.renderMonths(),this.renderYears(),this.renderTodayButton(),this.renderTimeSection(),this.renderInputTimeSection(),this.renderChildren()))}}],[{key:\"defaultProps\",get:function(){return{onDropdownFocus:function(){},monthsShown:1,forceShowMonthNavigation:!1,timeCaption:\"Time\",previousYearButtonLabel:\"Previous Year\",nextYearButtonLabel:\"Next Year\",previousMonthButtonLabel:\"Previous Month\",nextMonthButtonLabel:\"Next Month\",customTimeInput:null,yearItemNumber:Lt}}}]),r}(de.default.Component),ea=function(e){var t=e.icon,r=e.className,a=void 0===r?\"\":r,n=e.onClick,o=\"react-datepicker__calendar-icon\";return de.default.isValidElement(t)?de.default.cloneElement(t,{className:\"\".concat(t.props.className||\"\",\" \").concat(o,\" \").concat(a),onClick:function(e){\"function\"==typeof t.props.onClick&&t.props.onClick(e),\"function\"==typeof n&&n(e)}}):\"string\"==typeof t?de.default.createElement(\"i\",{className:\"\".concat(o,\" \").concat(t,\" \").concat(a),\"aria-hidden\":\"true\",onClick:n}):de.default.createElement(\"svg\",{className:\"\".concat(o,\" \").concat(a),xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 448 512\",onClick:n},de.default.createElement(\"path\",{d:\"M96 32V64H48C21.5 64 0 85.5 0 112v48H448V112c0-26.5-21.5-48-48-48H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H160V32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192H0V464c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V192z\"}))},ta=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),(a=t.call(this,e)).el=document.createElement(\"div\"),a}return bt(r,[{key:\"componentDidMount\",value:function(){this.portalRoot=(this.props.portalHost||document).getElementById(this.props.portalId),this.portalRoot||(this.portalRoot=document.createElement(\"div\"),this.portalRoot.setAttribute(\"id\",this.props.portalId),(this.props.portalHost||document.body).appendChild(this.portalRoot)),this.portalRoot.appendChild(this.el)}},{key:\"componentWillUnmount\",value:function(){this.portalRoot.removeChild(this.el)}},{key:\"render\",value:function(){return mt.default.createPortal(this.props.children,this.el)}}]),r}(de.default.Component),ra=function(e){return!e.disabled&&-1!==e.tabIndex},aa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getTabChildren\",(function(){return Array.prototype.slice.call(a.tabLoopRef.current.querySelectorAll(\"[tabindex], a, button, input, select, textarea\"),1,-1).filter(ra)})),St(Et(a),\"handleFocusStart\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[e.length-1].focus()})),St(Et(a),\"handleFocusEnd\",(function(){var e=a.getTabChildren();e&&e.length>1&&e[0].focus()})),a.tabLoopRef=de.default.createRef(),a}return bt(r,[{key:\"render\",value:function(){return this.props.enableTabLoop?de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop\",ref:this.tabLoopRef},de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__start\",tabIndex:\"0\",onFocus:this.handleFocusStart}),this.props.children,de.default.createElement(\"div\",{className:\"react-datepicker__tab-loop__end\",tabIndex:\"0\",onFocus:this.handleFocusEnd})):this.props.children}}],[{key:\"defaultProps\",get:function(){return{enableTabLoop:!0}}}]),r}(de.default.Component),na=function(e){_t(r,e);var t=Nt(r);function r(){return kt(this,r),t.apply(this,arguments)}return bt(r,[{key:\"render\",value:function(){var e,t=this.props,r=t.className,a=t.wrapperClassName,n=t.hidePopper,o=t.popperComponent,s=t.popperModifiers,i=t.popperPlacement,p=t.popperProps,l=t.targetComponent,c=t.enableTabLoop,d=t.popperOnKeyDown,u=t.portalId,f=t.portalHost;if(!n){var h=ue.default(\"react-datepicker-popper\",r);e=de.default.createElement(pe.Popper,Ct({modifiers:s,placement:i},p),(function(e){var t=e.ref,r=e.style,a=e.placement,n=e.arrowProps;return de.default.createElement(aa,{enableTabLoop:c},de.default.createElement(\"div\",{ref:t,style:r,className:h,\"data-placement\":a,onKeyDown:d},de.default.cloneElement(o,{arrowProps:n})))}))}this.props.popperContainer&&(e=de.default.createElement(this.props.popperContainer,{},e)),u&&!n&&(e=de.default.createElement(ta,{portalId:u,portalHost:f},e));var m=ue.default(\"react-datepicker-wrapper\",a);return de.default.createElement(pe.Manager,{className:\"react-datepicker-manager\"},de.default.createElement(pe.Reference,null,(function(e){var t=e.ref;return de.default.createElement(\"div\",{ref:t,className:m},l)})),e)}}],[{key:\"defaultProps\",get:function(){return{hidePopper:!0,popperModifiers:[],popperProps:{},popperPlacement:\"bottom-start\"}}}]),r}(de.default.Component),oa=\"react-datepicker-ignore-onclickoutside\",sa=ht.default(Zr);var ia=\"Date input not valid.\",pa=function(e){_t(r,e);var t=Nt(r);function r(e){var a;return kt(this,r),St(Et(a=t.call(this,e)),\"getPreSelection\",(function(){return a.props.openToDate?a.props.openToDate:a.props.selectsEnd&&a.props.startDate?a.props.startDate:a.props.selectsStart&&a.props.endDate?a.props.endDate:At()})),St(Et(a),\"modifyHolidays\",(function(){var e;return null===(e=a.props.holidays)||void 0===e?void 0:e.reduce((function(e,t){var r=new Date(t.date);return he.default(r)?[].concat(xt(e),[Dt(Dt({},t),{},{date:r})]):e}),[])})),St(Et(a),\"calcInitialState\",(function(){var e,t=a.getPreSelection(),r=kr(a.props),n=wr(a.props),o=r&<.default(t,$e.default(r))?r:n&&pt.default(t,et.default(n))?n:t;return{open:a.props.startOpen||!1,preventFocus:!1,preSelection:null!==(e=a.props.selectsRange?a.props.startDate:a.props.selected)&&void 0!==e?e:o,highlightDates:br(a.props.highlightDates),focused:!1,shouldFocusDayInline:!1,isRenderAriaLiveMessage:!1}})),St(Et(a),\"clearPreventFocusTimeout\",(function(){a.preventFocusTimeout&&clearTimeout(a.preventFocusTimeout)})),St(Et(a),\"setFocus\",(function(){a.input&&a.input.focus&&a.input.focus({preventScroll:!0})})),St(Et(a),\"setBlur\",(function(){a.input&&a.input.blur&&a.input.blur(),a.cancelFocusInput()})),St(Et(a),\"setOpen\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];a.setState({open:e,preSelection:e&&a.state.open?a.state.preSelection:a.calcInitialState().preSelection,lastPreSelectChange:ca},(function(){e||a.setState((function(e){return{focused:!!t&&e.focused}}),(function(){!t&&a.setBlur(),a.setState({inputValue:null})}))}))})),St(Et(a),\"inputOk\",(function(){return fe.default(a.state.preSelection)})),St(Et(a),\"isCalendarOpen\",(function(){return void 0===a.props.open?a.state.open&&!a.props.disabled&&!a.props.readOnly:a.props.open})),St(Et(a),\"handleFocus\",(function(e){a.state.preventFocus||(a.props.onFocus(e),a.props.preventOpenOnFocus||a.props.readOnly||a.setOpen(!0)),a.setState({focused:!0})})),St(Et(a),\"sendFocusBackToInput\",(function(){a.preventFocusTimeout&&a.clearPreventFocusTimeout(),a.setState({preventFocus:!0},(function(){a.preventFocusTimeout=setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))}))})),St(Et(a),\"cancelFocusInput\",(function(){clearTimeout(a.inputFocusTimeout),a.inputFocusTimeout=null})),St(Et(a),\"deferFocusInput\",(function(){a.cancelFocusInput(),a.inputFocusTimeout=setTimeout((function(){return a.setFocus()}),1)})),St(Et(a),\"handleDropdownFocus\",(function(){a.cancelFocusInput()})),St(Et(a),\"handleBlur\",(function(e){(!a.state.open||a.props.withPortal||a.props.showTimeInput)&&a.props.onBlur(e),a.setState({focused:!1})})),St(Et(a),\"handleCalendarClickOutside\",(function(e){a.props.inline||a.setOpen(!1),a.props.onClickOutside(e),a.props.withPortal&&e.preventDefault()})),St(Et(a),\"handleChange\",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&(c=ut.default(o,s.slice(0,o.length),new Date)),Wt(c)||(c=new Date(o))),Wt(c)&&u?c:null));a.props.showTimeSelectOnly&&a.props.selected&&f&&!Jt(f,a.props.selected)&&(f=yt.default(a.props.selected,{hours:xe.default(f),minutes:Ne.default(f),seconds:Ee.default(f)})),!f&&n.target.value||(a.props.showWeekPicker&&(f=Qt(f,a.props.locale,a.props.calendarStartDay)),a.setSelected(f,n,!0))}})),St(Et(a),\"handleSelect\",(function(e,t,r){if(a.props.shouldCloseOnSelect&&!a.props.showTimeSelect&&a.sendFocusBackToInput(),a.props.onChangeRaw&&a.props.onChangeRaw(t),a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay)),a.setSelected(e,t,!1,r),a.props.showDateSelect&&a.setState({isRenderAriaLiveMessage:!0}),!a.props.shouldCloseOnSelect||a.props.showTimeSelect)a.setPreSelection(e);else if(!a.props.inline){a.props.selectsRange||a.setOpen(!1);var n=a.props,o=n.startDate,s=n.endDate;!o||s||lt.default(e,o)||a.setOpen(!1)}})),St(Et(a),\"setSelected\",(function(e,t,r,n){var o=e;if(a.props.showYearPicker){if(null!==o&&cr(Le.default(o),a.props))return}else if(a.props.showMonthYearPicker){if(null!==o&&sr(o,a.props))return}else if(null!==o&&nr(o,a.props))return;var s=a.props,i=s.onChange,p=s.selectsRange,l=s.startDate,c=s.endDate;if(!Xt(a.props.selected,o)||a.props.allowSameDay||p)if(null!==o&&(!a.props.selected||r&&(a.props.showTimeSelect||a.props.showTimeSelectOnly||a.props.showTimeInput)||(o=Bt(o,{hour:xe.default(a.props.selected),minute:Ne.default(a.props.selected),second:Ee.default(a.props.selected)})),a.props.inline||a.setState({preSelection:o}),a.props.focusSelectedMonth||a.setState({monthSelectedIn:n})),p){var d=l&&!c,u=l&&c;!l&&!c?i([o,null],t):d&&(lt.default(o,l)?i([o,null],t):i([l,o],t)),u&&i([o,null],t)}else i(o,t);r||(a.props.onSelect(o,t),a.setState({inputValue:null}))})),St(Et(a),\"setPreSelection\",(function(e){var t=void 0!==a.props.minDate,r=void 0!==a.props.maxDate,n=!0;if(e){a.props.showWeekPicker&&(e=Qt(e,a.props.locale,a.props.calendarStartDay));var o=$e.default(e);if(t&&r)n=Zt(e,a.props.minDate,a.props.maxDate);else if(t){var s=$e.default(a.props.minDate);n=pt.default(e,s)||Xt(o,s)}else if(r){var i=et.default(a.props.maxDate);n=lt.default(e,i)||Xt(o,i)}}n&&a.setState({preSelection:e})})),St(Et(a),\"toggleCalendar\",(function(){a.setOpen(!a.state.open)})),St(Et(a),\"handleTimeChange\",(function(e){var t=a.props.selected?a.props.selected:a.getPreSelection(),r=a.props.selected?e:Bt(t,{hour:xe.default(e),minute:Ne.default(e)});a.setState({preSelection:r}),a.props.onChange(r),a.props.shouldCloseOnSelect&&(a.sendFocusBackToInput(),a.setOpen(!1)),a.props.showTimeInput&&a.setOpen(!0),(a.props.showTimeSelectOnly||a.props.showTimeSelect)&&a.setState({isRenderAriaLiveMessage:!0}),a.setState({inputValue:null})})),St(Et(a),\"onInputClick\",(function(){a.props.disabled||a.props.readOnly||a.setOpen(!0),a.props.onInputClick()})),St(Et(a),\"onInputKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key;if(a.state.open||a.props.inline||a.props.preventOpenOnFocus){if(a.state.open){if(\"ArrowDown\"===t||\"ArrowUp\"===t){e.preventDefault();var r=a.props.showWeekPicker&&a.props.showWeekNumbers?'.react-datepicker__week-number[tabindex=\"0\"]':'.react-datepicker__day[tabindex=\"0\"]',n=a.calendar.componentNode&&a.calendar.componentNode.querySelector(r);return void(n&&n.focus({preventScroll:!0}))}var o=At(a.state.preSelection);\"Enter\"===t?(e.preventDefault(),a.inputOk()&&a.state.lastPreSelectChange===ca?(a.handleSelect(o,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(o)):a.setOpen(!1)):\"Escape\"===t?(e.preventDefault(),a.sendFocusBackToInput(),a.setOpen(!1)):\"Tab\"===t&&a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia})}}else\"ArrowDown\"!==t&&\"ArrowUp\"!==t&&\"Enter\"!==t||a.onInputClick()})),St(Et(a),\"onPortalKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.setState({preventFocus:!0},(function(){a.setOpen(!1),setTimeout((function(){a.setFocus(),a.setState({preventFocus:!1})}))})))})),St(Et(a),\"onDayKeyDown\",(function(e){a.props.onKeyDown(e);var t=e.key,r=At(a.state.preSelection);if(\"Enter\"===t)e.preventDefault(),a.handleSelect(r,e),!a.props.shouldCloseOnSelect&&a.setPreSelection(r);else if(\"Escape\"===t)e.preventDefault(),a.setOpen(!1),a.inputOk()||a.props.onInputError({code:1,msg:ia});else if(!a.props.disabledKeyboardNavigation){var n;switch(t){case\"ArrowLeft\":n=a.props.showWeekPicker?Ce.default(r,1):Se.default(r,1);break;case\"ArrowRight\":n=a.props.showWeekPicker?ge.default(r,1):De.default(r,1);break;case\"ArrowUp\":n=Ce.default(r,1);break;case\"ArrowDown\":n=ge.default(r,1);break;case\"PageUp\":n=_e.default(r,1);break;case\"PageDown\":n=ke.default(r,1);break;case\"Home\":n=Pe.default(r,1);break;case\"End\":n=be.default(r,1);break;default:n=null}if(!n)return void(a.props.onInputError&&a.props.onInputError({code:1,msg:ia}));if(e.preventDefault(),a.setState({lastPreSelectChange:ca}),a.props.adjustDateOnChange&&a.setSelected(n),a.setPreSelection(n),a.props.inline){var o=Te.default(r),s=Te.default(n),i=Le.default(r),p=Le.default(n);o!==s||i!==p?a.setState({shouldFocusDayInline:!0}):a.setState({shouldFocusDayInline:!1})}}})),St(Et(a),\"onPopperKeyDown\",(function(e){\"Escape\"===e.key&&(e.preventDefault(),a.sendFocusBackToInput())})),St(Et(a),\"onClearClick\",(function(e){e&&e.preventDefault&&e.preventDefault(),a.sendFocusBackToInput(),a.props.selectsRange?a.props.onChange([null,null],e):a.props.onChange(null,e),a.setState({inputValue:null})})),St(Et(a),\"clear\",(function(){a.onClearClick()})),St(Et(a),\"onScroll\",(function(e){\"boolean\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll?e.target!==document&&e.target!==document.documentElement&&e.target!==document.body||a.setOpen(!1):\"function\"==typeof a.props.closeOnScroll&&a.props.closeOnScroll(e)&&a.setOpen(!1)})),St(Et(a),\"renderCalendar\",(function(){return a.props.inline||a.isCalendarOpen()?de.default.createElement(sa,{ref:function(e){a.calendar=e},locale:a.props.locale,calendarStartDay:a.props.calendarStartDay,chooseDayAriaLabelPrefix:a.props.chooseDayAriaLabelPrefix,disabledDayAriaLabelPrefix:a.props.disabledDayAriaLabelPrefix,weekAriaLabelPrefix:a.props.weekAriaLabelPrefix,monthAriaLabelPrefix:a.props.monthAriaLabelPrefix,adjustDateOnChange:a.props.adjustDateOnChange,setOpen:a.setOpen,shouldCloseOnSelect:a.props.shouldCloseOnSelect,dateFormat:a.props.dateFormatCalendar,useWeekdaysShort:a.props.useWeekdaysShort,formatWeekDay:a.props.formatWeekDay,dropdownMode:a.props.dropdownMode,selected:a.props.selected,preSelection:a.state.preSelection,onSelect:a.handleSelect,onWeekSelect:a.props.onWeekSelect,openToDate:a.props.openToDate,minDate:a.props.minDate,maxDate:a.props.maxDate,selectsStart:a.props.selectsStart,selectsEnd:a.props.selectsEnd,selectsRange:a.props.selectsRange,startDate:a.props.startDate,endDate:a.props.endDate,excludeDates:a.props.excludeDates,excludeDateIntervals:a.props.excludeDateIntervals,filterDate:a.props.filterDate,onClickOutside:a.handleCalendarClickOutside,formatWeekNumber:a.props.formatWeekNumber,highlightDates:a.state.highlightDates,holidays:Sr(a.modifyHolidays()),includeDates:a.props.includeDates,includeDateIntervals:a.props.includeDateIntervals,includeTimes:a.props.includeTimes,injectTimes:a.props.injectTimes,inline:a.props.inline,shouldFocusDayInline:a.state.shouldFocusDayInline,peekNextMonth:a.props.peekNextMonth,showMonthDropdown:a.props.showMonthDropdown,showPreviousMonths:a.props.showPreviousMonths,useShortMonthInDropdown:a.props.useShortMonthInDropdown,showMonthYearDropdown:a.props.showMonthYearDropdown,showWeekNumbers:a.props.showWeekNumbers,showYearDropdown:a.props.showYearDropdown,withPortal:a.props.withPortal,forceShowMonthNavigation:a.props.forceShowMonthNavigation,showDisabledMonthNavigation:a.props.showDisabledMonthNavigation,scrollableYearDropdown:a.props.scrollableYearDropdown,scrollableMonthYearDropdown:a.props.scrollableMonthYearDropdown,todayButton:a.props.todayButton,weekLabel:a.props.weekLabel,outsideClickIgnoreClass:oa,fixedHeight:a.props.fixedHeight,monthsShown:a.props.monthsShown,monthSelectedIn:a.state.monthSelectedIn,onDropdownFocus:a.handleDropdownFocus,onMonthChange:a.props.onMonthChange,onYearChange:a.props.onYearChange,dayClassName:a.props.dayClassName,weekDayClassName:a.props.weekDayClassName,monthClassName:a.props.monthClassName,timeClassName:a.props.timeClassName,showDateSelect:a.props.showDateSelect,showTimeSelect:a.props.showTimeSelect,showTimeSelectOnly:a.props.showTimeSelectOnly,onTimeChange:a.handleTimeChange,timeFormat:a.props.timeFormat,timeIntervals:a.props.timeIntervals,minTime:a.props.minTime,maxTime:a.props.maxTime,excludeTimes:a.props.excludeTimes,filterTime:a.props.filterTime,timeCaption:a.props.timeCaption,className:a.props.calendarClassName,container:a.props.calendarContainer,yearItemNumber:a.props.yearItemNumber,yearDropdownItemNumber:a.props.yearDropdownItemNumber,previousMonthAriaLabel:a.props.previousMonthAriaLabel,previousMonthButtonLabel:a.props.previousMonthButtonLabel,nextMonthAriaLabel:a.props.nextMonthAriaLabel,nextMonthButtonLabel:a.props.nextMonthButtonLabel,previousYearAriaLabel:a.props.previousYearAriaLabel,previousYearButtonLabel:a.props.previousYearButtonLabel,nextYearAriaLabel:a.props.nextYearAriaLabel,nextYearButtonLabel:a.props.nextYearButtonLabel,timeInputLabel:a.props.timeInputLabel,disabledKeyboardNavigation:a.props.disabledKeyboardNavigation,renderCustomHeader:a.props.renderCustomHeader,popperProps:a.props.popperProps,renderDayContents:a.props.renderDayContents,renderMonthContent:a.props.renderMonthContent,renderQuarterContent:a.props.renderQuarterContent,renderYearContent:a.props.renderYearContent,onDayMouseEnter:a.props.onDayMouseEnter,onMonthMouseLeave:a.props.onMonthMouseLeave,onYearMouseEnter:a.props.onYearMouseEnter,onYearMouseLeave:a.props.onYearMouseLeave,selectsDisabledDaysInRange:a.props.selectsDisabledDaysInRange,showTimeInput:a.props.showTimeInput,showMonthYearPicker:a.props.showMonthYearPicker,showFullMonthYearPicker:a.props.showFullMonthYearPicker,showTwoColumnMonthYearPicker:a.props.showTwoColumnMonthYearPicker,showFourColumnMonthYearPicker:a.props.showFourColumnMonthYearPicker,showYearPicker:a.props.showYearPicker,showQuarterYearPicker:a.props.showQuarterYearPicker,showWeekPicker:a.props.showWeekPicker,showPopperArrow:a.props.showPopperArrow,excludeScrollbar:a.props.excludeScrollbar,handleOnKeyDown:a.props.onKeyDown,handleOnDayKeyDown:a.onDayKeyDown,isInputFocused:a.state.focused,customTimeInput:a.props.customTimeInput,setPreSelection:a.setPreSelection},a.props.children):null})),St(Et(a),\"renderAriaLiveRegion\",(function(){var e,t=a.props,r=t.dateFormat,n=t.locale,o=a.props.showTimeInput||a.props.showTimeSelect?\"PPPPp\":\"PPPP\";return e=a.props.selectsRange?\"Selected start date: \".concat(Kt(a.props.startDate,{dateFormat:o,locale:n}),\". \").concat(a.props.endDate?\"End date: \"+Kt(a.props.endDate,{dateFormat:o,locale:n}):\"\"):a.props.showTimeSelectOnly?\"Selected time: \".concat(Kt(a.props.selected,{dateFormat:r,locale:n})):a.props.showYearPicker?\"Selected year: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy\",locale:n})):a.props.showMonthYearPicker?\"Selected month: \".concat(Kt(a.props.selected,{dateFormat:\"MMMM yyyy\",locale:n})):a.props.showQuarterYearPicker?\"Selected quarter: \".concat(Kt(a.props.selected,{dateFormat:\"yyyy, QQQ\",locale:n})):\"Selected date: \".concat(Kt(a.props.selected,{dateFormat:o,locale:n})),de.default.createElement(\"span\",{role:\"alert\",\"aria-live\":\"polite\",className:\"react-datepicker__aria-live\"},e)})),St(Et(a),\"renderDateInput\",(function(){var e,t=ue.default(a.props.className,St({},oa,a.state.open)),r=a.props.customInput||de.default.createElement(\"input\",{type:\"text\"}),n=a.props.customInputRef||\"ref\",o=\"string\"==typeof a.props.value?a.props.value:\"string\"==typeof a.state.inputValue?a.state.inputValue:a.props.selectsRange?function(e,t,r){if(!e)return\"\";var a=Kt(e,r),n=t?Kt(t,r):\"\";return\"\".concat(a,\" - \").concat(n)}(a.props.startDate,a.props.endDate,a.props):Kt(a.props.selected,a.props);return de.default.cloneElement(r,(St(St(St(St(St(St(St(St(St(St(e={},n,(function(e){a.input=e})),\"value\",o),\"onBlur\",a.handleBlur),\"onChange\",a.handleChange),\"onClick\",a.onInputClick),\"onFocus\",a.handleFocus),\"onKeyDown\",a.onInputKeyDown),\"id\",a.props.id),\"name\",a.props.name),\"form\",a.props.form),St(St(St(St(St(St(St(St(St(St(e,\"autoFocus\",a.props.autoFocus),\"placeholder\",a.props.placeholderText),\"disabled\",a.props.disabled),\"autoComplete\",a.props.autoComplete),\"className\",ue.default(r.props.className,t)),\"title\",a.props.title),\"readOnly\",a.props.readOnly),\"required\",a.props.required),\"tabIndex\",a.props.tabIndex),\"aria-describedby\",a.props.ariaDescribedBy),St(St(St(e,\"aria-invalid\",a.props.ariaInvalid),\"aria-labelledby\",a.props.ariaLabelledBy),\"aria-required\",a.props.ariaRequired)))})),St(Et(a),\"renderClearButton\",(function(){var e=a.props,t=e.isClearable,r=e.disabled,n=e.selected,o=e.startDate,s=e.endDate,i=e.clearButtonTitle,p=e.clearButtonClassName,l=void 0===p?\"\":p,c=e.ariaLabelClose,d=void 0===c?\"Close\":c;return!t||null==n&&null==o&&null==s?null:de.default.createElement(\"button\",{type:\"button\",className:ue.default(\"react-datepicker__close-icon\",l,{\"react-datepicker__close-icon--disabled\":r}),disabled:r,\"aria-label\":d,onClick:a.onClearClick,title:i,tabIndex:-1})})),a.state=a.calcInitialState(),a.preventFocusTimeout=null,a}return bt(r,[{key:\"componentDidMount\",value:function(){window.addEventListener(\"scroll\",this.onScroll,!0)}},{key:\"componentDidUpdate\",value:function(e,t){var r,a;e.inline&&(r=e.selected,a=this.props.selected,r&&a?Te.default(r)!==Te.default(a)||Le.default(r)!==Le.default(a):r!==a)&&this.setPreSelection(this.props.selected),void 0!==this.state.monthSelectedIn&&e.monthsShown!==this.props.monthsShown&&this.setState({monthSelectedIn:0}),e.highlightDates!==this.props.highlightDates&&this.setState({highlightDates:br(this.props.highlightDates)}),t.focused||Xt(e.selected,this.props.selected)||this.setState({inputValue:null}),t.open!==this.state.open&&(!1===t.open&&!0===this.state.open&&this.props.onCalendarOpen(),!0===t.open&&!1===this.state.open&&this.props.onCalendarClose())}},{key:\"componentWillUnmount\",value:function(){this.clearPreventFocusTimeout(),window.removeEventListener(\"scroll\",this.onScroll,!0)}},{key:\"renderInputContainer\",value:function(){var e=this.props,t=e.showIcon,r=e.icon,a=e.calendarIconClassname,n=e.toggleCalendarOnIconClick,o=this.state.open;return de.default.createElement(\"div\",{className:\"react-datepicker__input-container\".concat(t?\" react-datepicker__view-calendar-icon\":\"\")},t&&de.default.createElement(ea,Ct({icon:r,className:\"\".concat(a,\" \").concat(o&&\"react-datepicker-ignore-onclickoutside\")},n?{onClick:this.toggleCalendar}:null)),this.state.isRenderAriaLiveMessage&&this.renderAriaLiveRegion(),this.renderDateInput(),this.renderClearButton())}},{key:\"render\",value:function(){var e=this.renderCalendar();if(this.props.inline)return e;if(this.props.withPortal){var t=this.state.open?de.default.createElement(aa,{enableTabLoop:this.props.enableTabLoop},de.default.createElement(\"div\",{className:\"react-datepicker__portal\",tabIndex:-1,onKeyDown:this.onPortalKeyDown},e)):null;return this.state.open&&this.props.portalId&&(t=de.default.createElement(ta,{portalId:this.props.portalId,portalHost:this.props.portalHost},t)),de.default.createElement(\"div\",null,this.renderInputContainer(),t)}return de.default.createElement(na,{className:this.props.popperClassName,wrapperClassName:this.props.wrapperClassName,hidePopper:!this.isCalendarOpen(),portalId:this.props.portalId,portalHost:this.props.portalHost,popperModifiers:this.props.popperModifiers,targetComponent:this.renderInputContainer(),popperContainer:this.props.popperContainer,popperComponent:e,popperPlacement:this.props.popperPlacement,popperProps:this.props.popperProps,popperOnKeyDown:this.onPopperKeyDown,enableTabLoop:this.props.enableTabLoop})}}],[{key:\"defaultProps\",get:function(){return{allowSameDay:!1,dateFormat:\"MM/dd/yyyy\",dateFormatCalendar:\"LLLL yyyy\",onChange:function(){},disabled:!1,disabledKeyboardNavigation:!1,dropdownMode:\"scroll\",onFocus:function(){},onBlur:function(){},onKeyDown:function(){},onInputClick:function(){},onSelect:function(){},onClickOutside:function(){},onMonthChange:function(){},onCalendarOpen:function(){},onCalendarClose:function(){},preventOpenOnFocus:!1,onYearChange:function(){},onInputError:function(){},monthsShown:1,readOnly:!1,withPortal:!1,selectsDisabledDaysInRange:!1,shouldCloseOnSelect:!0,showTimeSelect:!1,showTimeInput:!1,showPreviousMonths:!1,showMonthYearPicker:!1,showFullMonthYearPicker:!1,showTwoColumnMonthYearPicker:!1,showFourColumnMonthYearPicker:!1,showYearPicker:!1,showQuarterYearPicker:!1,showWeekPicker:!1,strictParsing:!1,timeIntervals:30,timeCaption:\"Time\",previousMonthAriaLabel:\"Previous Month\",previousMonthButtonLabel:\"Previous Month\",nextMonthAriaLabel:\"Next Month\",nextMonthButtonLabel:\"Next Month\",previousYearAriaLabel:\"Previous Year\",previousYearButtonLabel:\"Previous Year\",nextYearAriaLabel:\"Next Year\",nextYearButtonLabel:\"Next Year\",timeInputLabel:\"Time\",enableTabLoop:!0,yearItemNumber:Lt,focusSelectedMonth:!1,showPopperArrow:!0,excludeScrollbar:!0,customTimeInput:null,calendarStartDay:void 0,toggleCalendarOnIconClick:!1}}}]),r}(de.default.Component),la=\"input\",ca=\"navigate\";e.CalendarContainer=Jr,e.default=pa,e.getDefaultLocale=er,e.registerLocale=function(e,t){var r=\"undefined\"!=typeof window?window:globalThis;r.__localeData__||(r.__localeData__={}),r.__localeData__[e]=t},e.setDefaultLocale=function(e){(\"undefined\"!=typeof window?window:globalThis).__localeId__=e},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\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 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 * 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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["module","exports","code","week","dow","doy","buttonText","prev","next","today","year","month","day","list","weekLabel","allDayText","eventLimitText","n","noEventsMessage","factory","elementPropHash","className","colSpan","rowSpan","containerTagHash","createElement","tagName","attrs","content","el","document","attrName","applyStyle","setAttribute","innerHTML","appendToElement","htmlToElement","html","trim","container","computeContainerTag","firstChild","htmlToElements","Array","prototype","slice","call","childNodes","htmlToNodeList","substr","normalizeContent","i","length","appendChild","prependToElement","parent","newEls","afterEl","insertBefore","insertAfterElement","refEl","nextSibling","parentNode","Node","removeElement","removeChild","matchesMethod","Element","matches","matchesSelector","msMatchesSelector","closestMethod","closest","selector","this","documentElement","contains","elementMatches","parentElement","nodeType","elementClosest","findElements","containers","HTMLElement","allMatches","querySelectorAll","j","push","findChildren","parents","children","childNode","forceClassName","bool","classList","add","remove","PIXEL_PROP_RE","props","propName","applyStyleProp","name","val","style","test","translateRect","rect","deltaX","deltaY","left","right","top","bottom","isRtlScrollbarOnLeft","sanitizeScrollbarWidth","width","Math","max","round","computeEdges","getPadding","computedStyle","window","getComputedStyle","borderLeft","parseInt","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","scrollbarLeftRight","offsetWidth","clientWidth","res","scrollbarBottom","offsetHeight","clientHeight","scrollbarLeft","scrollbarRight","outerEl","position","border","padding","overflow","direction","body","getBoundingClientRect","computeIsRtlScrollbarOnLeft","paddingLeft","paddingRight","paddingTop","paddingBottom","computeRect","pageXOffset","pageYOffset","computeHeightAndMargins","height","computeVMargins","computed","marginTop","marginBottom","computeClippingRect","overflowY","overflowX","getClippingParents","map","goWithinPadding","outerRect","edges","computeInnerRect","concat","reduce","rect0","rect1","rect2","min","intersectRects","preventDefault","ev","listenBySelector","eventType","handler","realHandler","matchedChild","target","addEventListener","removeEventListener","DAY_IDS","addWeeks","m","a","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffWholeDays","timeAsMs","startOfDay","getUTCFullYear","getUTCMonth","getUTCDate","weekOfGivenYear","marker","firstWeekStart","firstWeekOffset","dayStart","days","floor","fwd","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","Date","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","UTC","apply","isValidDate","isNaN","INTERNAL_UNITS","PARSE_RE","createDuration","input","unit","_a","s","exec","sign","years","months","milliseconds","parseString","normalizeObject","obj","getWeeksFromInput","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","durationsEqual","d0","d1","isSingleDay","dur","addDurations","multiplyDuration","d","asRoughDays","asRoughMs","asRoughMinutes","asRoughSeconds","wholeDivideDurations","numerator","denominator","localRes","isInt","greatestDurationDenominator","dontReturnWeeks","value","compensateScroll","rowEl","scrollbarWidths","marginLeft","marginRight","uncompensateScroll","distributeHeight","els","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","forEach","minOffset","naturalHeight","naturalOffset","newHeight","matchCellWidths","maxInnerWidth","innerEl","innerWidth_1","subtractInnerElHeight","reflowStyleProps","diff","resetStyleProps","parseFieldSpecs","token","specs","tokens","split","isArray","charAt","field","substring","order","func","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","b","String","localeCompare","capitaliseFirstLetter","str","toUpperCase","padStart","len","applyAll","functions","thisObj","args","ret","firstDefined","_i","arguments","undefined","debounce","wait","timeout","context","timestamp","result","later","last","setTimeout","refineProps","rawProps","processors","defaults","leftoverProps","refined","key","processor","Function","Number","Boolean","computeAlignedDayRange","timedRange","dayCnt","start","end","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","isMultiDayRange","range","visibleRange","diffDates","date0","date1","dateEnv","largeUnit","diffWholeYears","diffWholeMonths","m0day","m1day","extendStatics","Object","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","constructor","create","__assign","assign","t","expandRecurringRanges","eventDef","duration","framingRange","recurringTypes","markers","recurringDef","typeId","expand","typeData","subtract","allDay","mergeProps","propObjs","complexProps","complexObjs","dest","unshift","filterHash","hash","filtered","mapHash","newHash","arrayToHash","a_1","hashValuesToArray","isPropsEqual","parseEvents","rawEvents","sourceId","calendar","allowOpenRange","eventStore","defs","instances","rawEvents_1","tuple","parseEvent","eventTupleToStore","def","defId","instance","instanceId","expandRecurring","defaultAllDayEventDuration","defaultTimedEventDuration","starts_1","pluginSystem","hooks","createEventInstance","transformEachRawEvent","refinedEvents","rawEvents_2","rawEvent","refinedEvent","mergeEventStores","store0","store1","filterEventStoreDefs","filterFunc","invertRanges","ranges","constraintRange","dateRange","invertedRanges","sort","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","isArraysEqual","a0","a1","memoize","workerFunc","memoizeOutput","equalityFunc","cachedRes","newRes","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","name_1","buildFormattingFunc","format","formatRange","ca","diffSeverity","calendarSystem","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnitForPartial","full0","full1","partialFormattingFunc","options","biggestUnit","partialOptions","name_2","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","indexOf","before0","after0","i1","found1","before1","after1","before","after","findCommonInsertion","getLargestUnit","standardDatePropCnt","keys","formatTimeZoneOffset","timeZoneOffset","num","computeWeekNumber","locale","display","parts","simpleNumberFormat","isRtl","reverse","join","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","replace","tzoStr","replaced","injectTzoStr","toLocaleLowerCase","postProcess","buildNativeFormattingFunc","CmdFormatter","cmdStr","cmdFormatter","createVerboseFormattingArg","FuncFormatter","createFormatter","defaultSeparator","formatIsoTimeString","doIso","abs","mins","startInfo","expandZonedMarker","localeCodes","dateInfo","markerToArray","array","EventSourceApi","internalEventSource","dispatch","type","refetch","sourceIds","defineProperty","get","publicId","enumerable","configurable","meta","url","EventApi","_calendar","_def","_instance","setProp","_b","DATE_PROPS","NON_DATE_PROPS","mutate","standardProps","UNSCOPED_EVENT_UI_PROPS","ui","backgroundColor","borderColor","startEditable","durationEditable","setExtendedProp","extendedProps","setStart","startInput","createMarker","startDelta","granularity","maintainDuration","datesDelta","setEnd","endInput","endDelta","hasEnd","setDates","instanceRange","moveStart","deltaInput","delta","moveEnd","moveDates","setAllDay","opt","formatInput","formatter","forcedStartTzo","forcedEndTzo","forcedTzo","mutation","fromApi","state","eventSources","toDate","groupId","title","rendering","constraints","overlap","allows","textColor","classNames","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","filterSegsViaEls","view","segs","isMirror","hasPublicHandlers","filter","seg","custom","publiclyTrigger","event","eventRange","segs_1","setElSeg","fcSeg","getElSeg","eventDefs","compileEventUi","uis","combineEventUis","applyMutationToEventDef","eventConfig","appliers","copy","appliers_1","applier","applyMutationToEventInstance","eventInstance","forceAllDay","clearEnd","getDefaultEventEnd","reduceEventStore","action","dateProfile","eventSource","fetchId","fetchRange","latestFetchId","subset","calEachTransform","sourceEachTransform","eventDataTransform","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","expandRange","addEvent","activeRange","oldDateEnv","newDateEnv","canComputeOffset","rezoneDates","relevant","def_1","newStore","lookDef","def0","def1","getRelevantEvents","eventConfigBase","eventConfigs","eventDefMutationAppliers","applyMutationToEventStore","applyMutationToRelated","excludeInstances","removals","isNewPropsValid","newProps","businessHours","dateSelection","eventSelection","eventDrag","eventResize","isPropsValid","dateSpanMeta","filterConfig","interaction","subjectEventStore","mutatedEvents","subjectDefs","subjectInstances","subjectConfigs","isEvent","selectionConfig","otherEventStore","affectedEvents","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","overlapFunc","otherInstanceId","otherInstance","calendarEventStore","eventApi","subjectAllow","subjectDateSpan","origDef","origInstance","buildDateSpanApi","isInteractionPropsValid","relevantEventStore","relevantDefs","relevantInstances","selection","selectionRange","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","isDateSelectionPropsValid","businessHoursUnexpanded","constraints_1","anyRangesContainRange","constraintToRanges","constraint","eventStoreToRanges","outerRanges","outerRanges_1","htmlEscape","cssToStr","cssProps","statements","parseClassName","raw","editable","allow","color","processUnscopedUiProps","leftovers","normalizeConstraint","processScopedUiProps","prefix","rawScoped","rawUnscoped","wasFound","scopedKey","EMPTY_EVENT_UI","combineTwoEventUis","item0","item1","id","uid","allDayDefault","computeIsAllDayDefault","leftovers0","recurringRes","eventInput","localLeftovers","parsed","parse","allDayGuess","parseRecurring","parseEventDef","leftovers1","singleRes","startMeta","endMeta","pluckDateProps","startMarker","endMarker","createMarkerMeta","isTimeUnspecified","parseSingle","preLeftovers","pluckNonDateProps","eventDefParsers","newLeftovers","eventDefParser","freeze","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","rawDef","refineInputs","memoizeRendering","renderFunc","unrenderFunc","dependencies","thisContext","prevArgs","dependents","unrender","dependents_1","dependencies_1","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","_this","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","info","buildEventUiForKey","keyInfo","buildEventUi","dateSpan","dateSpans","keys_1","getKeysForDateSpan","getKeysForEventDef","splitStores","_c","splitHashes","splitStates","affectedStores_1","mutatedKeysByDefId","mutatedStores_1","populate","origSeg","allUi","eventUiForKey","baseParts","stuff","buildGotoAnchorHtml","component","gotoOptions","innerHtml","forceOff","finalOptions","formatIso","omitTime","attrsToStr","JSON","stringify","getAllDayHtml","getDayClasses","noThemeHighlight","todayStart","todayEnd","theme","classes","currentRange","getNow","getClass","unpromisify","success","failure","isResolved","wrappedSuccess","wrappedFailure","then","EmitterMixin","_super","on","addToHash","_handlers","one","_oneHandlers","off","removeFromHash","trigger","triggerWith","hasHandlers","Mixin","mixInto","destClass","mixIntoObj","destObj","getOwnPropertyNames","mixOver","PositionCache","originEl","isHorizontal","isVertical","build","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","ScrollController","getMaxScrollTop","getScrollHeight","getClientHeight","getMaxScrollLeft","getScrollWidth","getClientWidth","canScrollVertically","canScrollHorizontally","canScrollUp","getScrollTop","canScrollDown","canScrollLeft","getScrollLeft","canScrollRight","ElementScrollController","scrollTop","scrollLeft","setScrollTop","setScrollLeft","scrollWidth","scrollHeight","ScrollComponent","WindowScrollController","scroll","applyOverflow","clear","setHeight","destroy","lockOverflow","getScrollbarWidths","Theme","calendarOptions","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","guid","Component","isView","addEqualityFuncs","newFuncs","equalityFuncs","receiveProps","oldProps","comboProps","anyChanges","recycleProps","render","DateComponent","buildPositionCaches","queryHit","positionLeft","positionTop","elWidth","elHeight","isInteractionValid","validRange","isDateSelectionValid","publiclyTriggerAfterSizing","triggerRenderedSegs","isMirrors","loadingLevel","afterSizingTriggers","_eventsPositioned","triggerWillRemoveSegs","segs_2","segs_3","isValidSegDownEl","isPopover","isInPopover","isValidDateDownEl","segEl","fgSegSelector","bgSegSelector","uid$1","createPlugin","deps","reducers","isDraggableTransformers","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","externalDefTransforms","eventResizeJoinTransforms","viewContainerModifiers","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","eventSourceDefs","namedTimeZonedImpl","defaultView","elementDraggingImpl","optionChangeHandlers","PluginSystem","addedHash","plugin","dep","hooks1","hooks0","ArrayEventSourcePlugin","ignoreRange","parseMeta","events","fetch","arg","FuncEventSourcePlugin","bind","startStr","endStr","requestJson","method","params","successCallback","failureCallback","encodeParams","injectQueryStringParams","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","JsonFeedEventSourcePlugin","extraParams","startParam","endParam","timeZoneParam","requestParams","customRequestParams","buildRequestParams","errorMessage","message","SimpleRecurrencePlugin","startRecur","endRecur","anyValid","clippedFramingRange","dowHash","dayMarker","instanceStarts","instanceStart","expandRanges","DefaultOptionChangeHandlers","deepEqual","handleEventSources","plugins","inputs","addPluginInputs","unfoundSources","newInputs","inputs_1","inputFound","_raw","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","addEventSource","config","globalDefaults","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","columnHeader","aspectRatio","header","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","locales","timeGridEventMinHeight","themeSystem","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","eventDragMinDistance","rtlDefaults","buttonIcons","prevYear","nextYear","complexOptions","INTERNAL_PLUGINS","RAW_EN_LOCALE","dir","parseRawLocales","explicitRawLocales","defaultCode","globalArray","globalObject","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","codeArg","simpleId","queryRawLocale","parseLocale","queryLocale","merged","NumberFormat","theClass","OptionsManager","overrides","dynamicOverrides","compute","updates","isDynamic","overrideHash","removals_1","localeDefaults","dirDefaults","calendarSystemClassMap","GregorianCalendarSystem","arrayToMarker","arr","ISO_RE","DateEnv","settings","isNamedTimeZone","namedTimeZoneImpl","weekDow","weekDoy","firstDay","weekNumberFunc","createNowMarker","timestampToMarker","getYear","addYears","addMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","startOf","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","y","w","nextW","weekOfYear","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","stripZeroTime","toISOString","buildIsoString","timestampToArray","getTimezoneOffset","offsetForArray","SIMPLE_SOURCE_PROPS","uid$2","doesSourceNeedRange","sourceDefId","parseEventSource","parseEventSourceProps","isFetching","uid$3","fetchDirtySources","sourceHash","fetchSourcesByIds","isSourceDirty","prevSources","sourceIdHash","nextSources","source","fetchSource","sourceDef","calSuccessRes","sourceSuccessRes","calSuccess","error","callFailure","console","warn","DateProfileGenerator","viewSpec","initHiddenDays","buildPrev","currentDateProfile","currentDate","prevDate","currentRangeUnit","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","isRangeAllDay","renderRange","isValid","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","getRangeOption","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","class","usesMinMaxTime","dateIncrementInput","dateIncrementDuration","alignment","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","customAlignment","runningCount","fallback","otherArgs","hiddenDays","isHiddenDayHash","Error","inc","isExclusive","viewType","currentViewType","reduceViewType","newDateProfile","p0","p1","dateProfileGenerators","dateMarker","generator","reduceDateProfile","eventSourceHash","sources","sources_1","addSources","excludeStaticSources","receiveResponse","reduceEventSources","nextState","reduceCurrentDate","reduceDateSelection","reduceSelectedEvent","reduceEventDrag","reduceEventResize","eventSourceLoadingLevel","computeLoadingLevel","reducerFunc","newDate","currentSelection","currentInstanceId","eventInstanceId","currentDrag","newDrag","currentResize","newResize","cnt","STANDARD_PROPS","ensureViewDef","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","superType","findViewNameBySubclass","superDef","buildViewDef","viewSubclass","configs","superProto","getPrototypeOf","parseViewConfigs","parseViewConfig","VIEW_DEF_PROPS","Toolbar","extraClassName","_renderLayout","renderLayout","unrenderLayout","_updateTitle","updateTitle","_updateActiveButton","updateActiveButton","_updateToday","updateToday","_updatePrev","updatePrev","_updateNext","updateNext","layout","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","viewsWithButtons","renderSection","buttonStr","optionsManager","viewSpecs","sectionEl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","click","text","changeView","buttonTextOverride","buttonTextDefault","buttonGroupClassName","toggleButtonEnabled","titleEl","innerText","disabled","CalendarComponent","_renderToolbars","renderToolbars","buildViewPropTransformers","contentEl","modifyViewContainer","toggleElClassNames","computeTitle","footer","dirClassName","themeClassName","freezeHeight","dateProfileGenerator","renderView","updateSize","thawHeight","headerLayout","footerLayout","now","todayInfo","prevInfo","nextInfo","toolbarProps","addScroll","queryScroll","viewProps","transformers_1","transformer","transform","isResize","isHeightAuto","computeHeightVars","viewHeight","updateNowIndicator","popScroll","heightInput","contentHeightInput","queryToolbarsHeight","parentEl","viewOptions","titleFormat","computeTitleFormat","theClasses","Interaction","interactionSettingsStore","EventClicking","handleSegClick","hasUrlContainer","querySelector","href","jsEvent","defaultPrevented","location","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","onMouseEnter","onMouseLeave","currentMatchedChild","removeHoverListeners","realOnMouseLeave_1","publicEvName","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","button","buttonActive","popoverHeader","popoverContent","headerRow","dayRow","listView","close","Calendar","buildDateEnv","buildTheme","buildEventUiSingleBase","_buildEventUiSingleBase","buildSelectionConfig","_buildSelectionConfig","buildEventUiBySource","buildEventUiBases","interactionsStore","actionQueue","isReducing","needsRerender","needsFullRerender","isRendering","renderingPauseDepth","buildDelayedRerender","isViewUpdated","isDatesUpdated","isEventsUpdated","handleOptions","hydrate","calendarInteractionClass","pluginInputs","pluginDefs","pluginInputs_1","pluginInput","globalName","default","refinePluginDefs","pluginDefs_1","pluginDef","requestRerender","renderableEventStore","bindHandlers","executeRender","unbindHandlers","removeNavLinkListener","anchorEl","getAttribute","customAction","viewOpt","zoomTo","windowResizeProxy","windowResize","buildInitialState","rawSources","singleRawSource","rawSources_1","batchRendering","getInitialDate","oldState","shift","newState","needsFull","delayedRerender","tryRerender","renderComponent","savedScroll","eventUiSingleBase","eventUiBySource","applyScroll","releaseAfterSizingTriggers","setOption","mutateOptions","getOption","viewOpts","changeHandlers","normalUpdates","specialUpdates","isTimeZoneDirty","isSizeDirty","anyDifficultOptions","name_3","pluginHooks","rerenderDelay","availableRawLocales","defaultInputs","compileViewDefs","durationInput","singleUnit","singleUnitOverrides","denom","queryButtonText","buttonTextMap","buttonTextKey","buildViewSpec","dateProfileGeneratorClass","getAvailableLocaleCodes","rawOpts","eventEditable","optHandler","name_4","isValidViewType","dateOrRange","unselect","spec","getUnitViewSpec","viewTypes","defaultDateInput","gotoDate","zonedDateInput","incrementDate","formatDate","isHandlingWindowResize","registerInteractiveComponent","settingsInput","useEventCenter","parseInteractionSettings","interactions","interactionClass","unregisterInteractiveComponent","select","dateOrObj","endDate","defaultDuration","span","parseOpenDateSpan","parseDateSpan","triggerDateSelect","pev","triggerDateUnselect","origEvent","triggerDateClick","dayEl","buildDatePointApi","dateStr","sourceInput","sourceApi","getEventSourceById","getEventById","getEvents","eventApis","removeAllEvents","rerenderEvents","getEventSources","sourceApis","internalId","removeAllEventSources","refetchEvents","scrollToTime","timeInput","scrollToDuration","View","renderDatesMem","renderDatesWrap","unrenderDatesWrap","renderBusinessHoursMem","renderBusinessHours","unrenderBusinessHours","renderDateSelectionMem","renderDateSelectionWrap","unrenderDateSelectionWrap","renderEventsMem","renderEvents","unrenderEvents","renderEventSelectionMem","renderEventSelectionWrap","unrenderEventSelectionWrap","renderEventDragMem","renderEventDragWrap","unrenderEventDragWrap","renderEventResizeMem","renderEventResizeWrap","unrenderEventResizeWrap","eventOrderSpecs","initialize","isAuto","updateBaseSize","renderDates","startNowIndicator","stopNowIndicator","unrenderDates","renderDateSelection","unrenderDateSelection","sliceEvents","computeEventDraggable","eventUi","transformers","computeEventStartResizable","computeEventEndResizable","renderEventSelection","unrenderEventSelection","renderEventDrag","unrenderEventDrag","renderEventResize","unrenderEventResize","update","delay","getNowIndicatorUnit","initialNowDate","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearTimeout","clearInterval","queuedScroll","applyQueuedScroll","queryDateScroll","computeDateScroll","applyDateScroll","FgEventRenderer","renderSegs","mirrorInfo","rangeUpdated","renderSegEls","attachSegs","_segs","detachSegs","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","renderSegHtml","getSegClasses","isDraggable","isResizable","isDragging","isResizing","getTimeText","displayEnd","_getTimeText","getSkinCss","sortEventSegs","objs","buildSegCompareObj","c","_seg","computeSizes","force","computeSegSizes","assignSizes","assignSegSizes","hideByHash","visibility","showByHash","selectByInstanceId","unselectByInstanceId","FillRenderer","fillSegTag","dirtySizeFlags","containerElsByType","segsByType","getSegsByType","renderedSegs","containerEls","css","toLowerCase","computeFallbackHeaderFormat","datesRepDistinctDays","renderDateCell","colCnt","colHeadFormat","colspan","otherAttrs","isDateValid","columnHeaderHtml","columnHeaderText","ElementDragging","emitter","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","DayHeader","thead","dates","renderIntroHtml","dates_1","DaySeries","indices","dayIndex","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTable","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","index","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","sourceSeg","fabricateEventRange","eventRanges","eventRanges_1","sliceEventRange","isComponentAllDay","DayGridDateProfileGenerator","endOfWeek","monthMode","fixedWeekCount","Popover","isHidden","margin","documentMousedown","hide","show","autoHide","elDims","origin","offsetParent","clippingRect","SimpleDayGridEventRenderer","timeText","titleHtml","isResizableFromStart","isResizableFromEnd","skinCss","timeHtml","DayGridEventRenderer","dayGrid","rowStructs","renderSegRows","rowEls","rowNode","tbodyEl","removeSegPopover","rowStruct","pop","segRows","groupSegRows","renderSegRow","rowSegs","levelSegs","tr","td","segLevels","buildSegLevels","levelCnt","tbody","segMatrix","cellMatrix","loneCellMatrix","emptyCellsUntil","endCol","leftCol","rightCol","introHtml","renderProps","levels","isDaySegCollision","level","compareDaySegCols","otherSegs","otherSeg","DayGridMirrorRenderer","skeletonTopEl","skeletonTop","skeletonEl","EMPTY_CELL_HTML","DayGridFillRenderer","renderFillRow","trEl","startCol","getElementsByTagName","DayTile","eventRenderer","DayTileEventRenderer","renderFrame","_renderFrame","renderFgEvents","fgSegs","eventDragInstances","eventResizeInstances","segContainerEl","layer","dayTile","DayBgRow","renderHtml","cell","htmlAttrs","DAY_NUM_FORMAT","WEEK_NUM_FORMAT","DayGrid","bottomCoordPadding","isCellSizesDirty","fillRenderer","mirrorRenderer","renderCells","_renderCells","_unrenderCells","renderBgEvents","_renderEventDrag","_unrenderEventDrag","_renderEventResize","_unrenderEventResize","isRigid","segPopoverTile","updateSegPopoverTile","getCellRange","ownProps","renderDayRowHtml","cellEls","rowPositions","colPositions","getCellEl","bgRow","renderBgIntroHtml","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","cellWeekNumbersVisible","colWeekNumbersVisible","intro","renderNumberIntroHtml","renderNumberCellsHtml","htmls","renderNumberCellHtml","weekCalcFirstDow","isDayNumberVisible","buildColPositions","buildRowPositions","positionToHit","relativeRect","segPopover","limitRows","levelLimit","rowLevelLimit","unlimitRow","computeRowLevelLimit","limitRow","rowBottom","trEls","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","segMoreNodes","moreTd","moreWrap","moreLink","moreNodes","getCellSegs","renderMoreLink","node","moreEls","limitedEls","limitedEl","hiddenSegs","getMoreLinkText","clickOption","_col","moreEl","currentTarget","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","topEl","dayDate","dayRange","newSegs","startLevel","WEEK_NUM_FORMAT$1","DayGridView","renderHeadIntroHtml","weekNumberStyleAttr","renderDayGridNumberIntroHtml","weekStart","renderDayGridBgIntroHtml","renderDayGridIntroHtml","renderSkeletonHtml","scroller","dayGridContainerEl","dayGridEl","weekNumberWidth","hasRigidRows","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","SimpleDayGrid","slicer","DayGridSlicer","dayTable","rawHit","DayGridView$1","_context","buildDayTable","simpleDayGrid","main","dayGridDay","dayGridWeek","dayGridMonth","ListEventRenderer","renderSegList","renderEmptyMessage","bgColor","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","renderContent","listViewClassNames_1","listViewClassName","dayDates","dayRanges","eventRangesToSegs","eventRangeToSegs","segRange","daySegs","segsByDay","groupSegsByDay","tableEl","buildDayHeaderRow","mainFormat","altFormat","viewEnd","listDayFormat","listDay","listWeek","listDayAltFormat","listMonth","listYear","FullCalendar","elRef","createRef","ref","componentDidMount","current","componentDidUpdate","componentWillUnmount","getApi","keyList","hasProp","equal","arrA","arrB","dateA","dateB","getTime","regexpA","RegExp","regexpB","toString","computeResourceEditable","resourceEditable","ResourceDataAdder","filterResources","calendarProps","needsResourceData","resourceStore","resourceEntityExpansions","doFilterResourcesWithEvents","instancesInRange","eventInstances","filterEventInstancesInRange","hasEvents_1","hasEvents","resourceIds","computeHasEvents","resourceId","resource","parentId","computeAncestorHasEvents","ResourceEventConfigAdder","buildResourceEventUis","injectResourceEventUis","resourceEventUis","origEventUi","injectResourceEventUi","RESOURCE_SOURCE_PROPS","registerResourceSourceDef","parseResourceSourceProps","createSource","forceFetch","parseResourceSource","resourceSource","_resourcesRendered","rawResources","RESOURCE_PROPS","PRIVATE_ID_PREFIX","parseResource","store","RESOURCE_RELATED_PROPS","items","item","ResourceApi","rawResource","_resource","propValue","getParent","getChildren","thisResourceId","childApis","addResource","scrollTo","resourceHash","forcedRowId","getResourceById","getResources","resourceApis","getTopLevelResources","rerenderResources","refetchResources","ResourceSplitter","filterConstraints","setResources","resources","resources_1","PRESET_LICENSE_KEYS","CSS","background","buildResourceTextFunc","resourceTextSetting","publicArg","ResourceDayHeader","datesAboveResources","resourceTextFunc","dateFormat","renderResourceRow","renderDayAndResourceRows","renderResourceAndDayRows","processResourceEls","cellHtmls","renderResourceCell","buildTr","dateHtmls","resourceHtmls","resources_2","dates_2","AbstractResourceDayTable","resourceIndex","ResourceIndex","rowCells","dateCol","resourceCol","computeCol","ResourceDayTable","dateI","resourceI","computeColRanges","dateStartI","dateEndI","DayResourceTable","indicesById","ids","VResourceSplitter","resourceDayTable","NO_SEGS","VResourceJoiner","joinDateSelection","joinSegs","joinBusinessHours","joinFgEvents","joinBgEvents","joinEventDrags","joinInteractions","joinEventResizes","joinProps","propSets","dateSelectionSets","businessHoursSets","fgEventSets","bgEventSets","segGroups","resourceCnt","transformedSegs","transformSeg","_d","expandSegs","flattenResources","orderSpecs","buildRowNodes","groupSpecs","isVGrouping","expansions","expansionDefault","complexNodes","maxDepth","resourceNodes","nodeHash","resourceFields","buildResourceFields","insertResourceNodeInSiblings","buildResourceNodes","builtNodes","resourceNode","insertResourceNode","buildHierarchy","flatNodes","flattenNodes","rowSpans","depth","complexNode","group","firstRowIndex","rowSpanIndex","firstRow","isExpanded","hasChildren","nodes","groupNode","groupSpec","newGroupIndex","groupValue","ensureGroupNodes","siblings","isGroupsEqual","group0","group1","resourceSourceInput","doesSourceIgnoreRange","handleRange","reduceResourceSource","existingStore","nextStore","receiveRawResources","additions","childResourceId","removeResource","existingResource","setResourceProp","reduceResourceStore","reduceResourceEntityExpansions","resourceRelatedProps","eventMutation","hit0","hit1","resource0","resource1","resourceMutation","matchResourceId","setResourceId","resourceId0","resourceId1","allowAcrossResources","sets","props_1","containerEl","match","purchaseDate","releaseDate","mockSchedulerReleaseDate","isValidKey","oldResource","newResource","newSourceInput","ResourceDayGrid","splitter","slicers","joiner","ResourceDayGridJoiner","slicedProps","colRange","ResourceDayGridView","buildResourceDayTable","resourceOrderSpecs","resourceDayGrid","resourceDayGridDay","resourceDayGridWeek","resourceDayGridMonth","ResourceTimeGrid","timeGrid","buildDayRanges","ResourceTimeGridJoiner","nonResourceSegs","ResourceTimeGridView","resourceTimeGrid","allDaySlot","slotDuration","slotEventOverlap","resourceTimeGridDay","resourceTimeGridWeek","_rtlScrollSystem","ScrollerCanvas","gutters","bgEl","setGutters","setWidth","setMinWidth","minWidth","clearWidth","EnhancedScroller","reportScroll","isScrolling","reportScrollStart","isMoving","requestMovingEnd","isTouching","reportTouchStart","reportTouchEnd","isTouchScrollEnabled","unbindPreventTouchScroll","reportScrollEnd","reportMovingEnd","canvas","disableTouchScroll","bindPreventTouchScroll","enableTouchScroll","preventTouchScrollHandler","passive","getRtlScrollSystem","getScrollFromLeft","system","ClippedScroller","isHScrollbarsClipped","isVScrollbarsClipped","enhancedScroll","scrollEl","widths","ScrollJoiner","axis","scrollers","initScroller","onScroll","assignMasterScroller","evName","masterScroller","otherScroller","unassignMasterScroller","allWidths","maxLeft","maxRight","maxTop","maxBottom","allWidths_1","HeaderBodyLayout","headerContainerEl","bodyContainerEl","verticalScroll","headerScroller","bodyScroller","scrollJoiner","totalHeight","bodyHeight","queryHeadHeight","TimelineHeader","tDateProfile","cellRows","lastRow","isChrono","labelInterval","oneDay","slotCnt","cellRows_1","rowCells_1","headerCellClassNames","isWeekStart","isTimeScale","spanHtml","slatColEls","innerEls","TimelineSlats","slotDates","isWeekStarts","slatCellHtml","slatEls","outerCoordCache","innerCoordCache","isEm","normalizedRange","slatIndex","slatWidth","partial","localSnapIndex","snapsPerSlot","snapDuration","MIN_AUTO_LABELS","MAX_AUTO_SLOTS_PER_LABEL","MAX_TIMELINE_SLOTS","STOCK_SUB_DURATIONS","buildTimelineDateProfile","queryDurationOption","slotsPerLabel","validateLabelAndSlot","ensureLabelInterval","STOCK_SUB_DURATIONS_3","trySlotDuration","ensureSlotDuration","rawFormats","format1","format2","weekNumbersVisible","format0","currentRangeAs","computeHeaderFormats","headerFormats","rawFormat","slotUnit","emphasizeWeeks","rawSnapDuration","timeWindowMs","normalizedStart","normalizeDate","normalizedEnd","snapIndex","snapDiff","snapDiffToIndex","snapIndexToDiff","snapCnt","prevWeekNumber","slotDates_1","slotDate","weekNumber","buildIsWeekStarts","formats","rowUnits","leadingCell","newCell","buildCellObject","buildCellRows","normalDate","STOCK_SUB_DURATIONS_1","tryLabelInterval","STOCK_SUB_DURATIONS_2","rowUnit","TimelineNowIndicator","headParent","bodyParent","coord","styleProps","arrowEl","lineEl","STICKY_PROP_VAL","IS_MS_EDGE","navigator","userAgent","IS_SAFARI","StickyScroller","usingRelative","elGeoms","queryElGeoms","viewportWidth","elDestinations","naturalBound","assignRelativePositions","computeElDestinations","stickyLeft","intendedTextAlign","computedTextAlign","textAlign","assignStickyPositions","canvasOrigin","els_1","parentBound","elRect","computedStyles","parseFloat","hasAttribute","viewportLeft","viewportTop","viewportRight","elGeom","destLeft","destTop","TimeAxis","headerEnhancedScroller","bodyEnhancedScroller","headStickyScroller","bodyStickyScroller","slats","nowIndicator","dateToCoord","applySlotWidth","computeSlotWidth","updateStickyScrollers","slotWidth","computeDefaultSlotWidth","headingCellWidth","containerWidth","containerMinWidth","nonLastSlotWidth","availableWidth","computeDateSnapCoverage","snapDiffInt","snapCoverage","slotCoverage","slotIndex","rangeToCoords","TimelineLaneEventRenderer","masterContainerEl","timeAxis","coords","segs_4","computeOffsetForSegs","segs_5","segs_6","unplacedSeg","above","isLevelCollision","placedSeg","timeRowSegsCollide","belowSeg","segs_7","computeOffsetForSeg","seg0","seg1","TimelineLaneFillRenderer","TimelineLane","fgContainerEl","bgContainerEl","TimelineLaneSlicer","segsForHighlight","normalizeRange","TimelineView","lane","slatHit","timeline","eventResizableFromStart","timelineDay","timelineWeek","timelineMonth","timelineYear","Row","spreadsheetParent","spreadsheetNextSibling","timeAxisParent","timeAxisNextSibling","spreadsheetTr","timeAxisTr","updateExpanderIcon","updateTrResourceId","GroupRow","unrenderCells","_updateExpanderIcon","onExpanderClick","spreadsheetColCnt","spreadsheetContentEl","renderSpreadsheetContent","spreadsheetHeightEl","expanderIconEl","timeAxisHeightEl","renderCellText","getHeightEls","SpreadsheetRow","_renderRow","renderRow","unrenderRow","_updateTrResourceId","colSpecs","mainTd","colSpec","isMain","renderIconHtml","rowspan","heightEl","expanderEl","ResourceRow","spreadsheetRow","innerContainerEl","SpreadsheetHeader","resizables","colWidths","colTags","superHeaderText","o","isLast","labelText","thEls","colEls","resizerEls","initColResizing","ElementDraggingImpl","handleEl","colIndex","startWidth","dragging","Spreadsheet","headParentEl","bodyParentEl","applyColWidths","bodyColGroup","bodyTbody","renderColTags","bodyColEls","colSpecs_1","colWidth","styleVal","headEl","bodyEl","ResourceTimelineView","isStickyScrollDirty","rowNodes","rowComponents","rowComponentsById","resourceAreaWidthDraggings","hasResourceBusinessHours","hasNesting","_updateHasNesting","updateHasNesting","allColSpecs","plainColSpecs","groupColSpecs","isHGrouping","allColSpecs_1","hGroupField","plainOrderSpecs","allOrderSpecs_1","orderSpec","isGroup","groupSpecs_1","resourceAreaHeadEl","setResourceAreaWidth","initResourceAreaWidthDragging","miscHeight","spreadsheet","timeAxisRowContainer","timeAxisTbody","bodyScrollJoiner","spreadsheetBodyStickyScroller","newRowNodes","diffRows","renderRows","isNesting","newNodes","oldNodes","oldLen","oldIndexHash","oldI","newI","newNode","oldIFound","removeRows","addRow","nextComponent","newComponent","buildChildComponent","startIndex","oldRowNodes","spreadsheetTbody","spreadsheetNext","timeAxisNext","fallbackBusinessHours","rowComponent","isBaseSizing","syncHeadHeights","rowSizingCnt","updateRowSizes","spreadsheetHeadEl","timeAxisHeadEl","dirtyRowComponents","elArrays","elArrays_1","elArray_1","dirtyRowComponents_1","maxHeights","elArray","maxHeight","elArray_2","queryResourceScroll","applyResourceScroll","scrollerTop","elBottom","rowId","innerTop","rowRect","rowIndex","widthVal","resourceAreaWidth","resourceAreaDividerEls","dragStartWidth","viewWidth","newWidth","nodes_1","resourceTimeline","resourcesInitiallyExpanded","resourceTimelineDay","resourceTimelineWeek","resourceTimelineMonth","resourceTimelineYear","TimeGridEventRenderer","fullTimeFormat","segsByCol","groupSegsByCol","attachSegsByCol","fgContainerEls","computeSegVerticals","computeSegHorizontals","assignSegVerticals","assignSegCss","fullTimeText","startTimeText","unzonedStart","unzonedEnd","level0","computeSlotSegCollisions","buildSlotSegLevels","k","forwardSegs","computeForwardSlotSegs","computeSlotSegPressures","computeSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardCoord","sortForwardSegs","backwardCoord","buildTimeGridSegCompareObj","generateSegCss","shouldOverlap","generateSegVerticalCss","zIndex","forwardPressure","forwardSeg","results","seg2","TimeGridMirrorRenderer","mirrorContainerEls","sourceSegProps","TimeGridFillRenderer","bgContainerEls","businessContainerEls","highlightContainerEls","AGENDA_STOCK_SUB_DURATIONS","TimeGrid","isSlatSizesDirty","isColSizesDirty","renderSlats","_renderSlats","renderColumns","_renderColumns","_unrenderColumns","_renderDateSelection","_unrenderDateSelection","processOptions","rootBgContainerEl","slatContainerEl","bottomRuleEl","labelFormat","computeLabelInterval","buildSlatPositions","renderSlatRowHtml","slatPositions","isLabeled","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","contentSkeletonEl","colContainerEls","computeDateTop","nowIndicatorEls","getTotalSlatHeight","when","startOfDayDate","computeTimeTop","slatRemainder","slatCoverage","eventMinHeight","slatTop","slatHeight","time","isSelecting","AllDaySplitter","timed","WEEK_HEADER_FORMAT","TimeGridView","weekText","axisStyleAttr","renderTimeGridBgIntroHtml","renderTimeGridIntroHtml","timeGridWrapEl","timeGridEl","dividerEl","axisWidth","noScrollRowEls","SimpleTimeGrid","TimeGridSlicer","TimeGridView$1","simpleTimeGrid","timeGridDay","timeGridWeek","getDefaultOptions","defaultOptions","setDefaultOptions","newOptions","_interopRequireDefault","dirtyDateLeft","dirtyDateRight","_index","dateLeftStartOfWeek","_index2","dateRightStartOfWeek","required","TypeError","dirtyDate","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","_index4","weekStartsOn","_index3","RangeError","setUTCDate","setUTCHours","dirtyNumber","NaN","number","buildFormatLongFn","full","long","medium","short","defaultWidth","dateTime","formatDistance","formatLong","formatRelative","localize","firstWeekContainsDate","dateLongFormatter","pattern","timeLongFormatter","longFormatters","P","dateTimeFormat","matchResult","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","setUTCFullYear","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","requiredArgs","startOfUTCISOWeek","fourthOfJanuary","startOfUTCISOWeekYear","getUTCWeekYear","_options$firstWeekCon","firstWeekOfNextYear","firstWeekOfThisYear","getUTCWeek","startOfUTCWeek","toInteger","firstWeek","startOfUTCWeekYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","dirtyAmount","amount","setDate","MILLISECONDS_IN_HOUR","addHours","addMilliseconds","MILLISECONDS_IN_MINUTE","addMinutes","dayOfMonth","endOfDesiredMonth","setMonth","setFullYear","addQuarters","pow","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","MILLISECONDS_IN_DAY","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","dateLeft","dateRight","differenceInCalendarYears","eachDayOfInterval","dirtyInterval","_options$step","interval","startDate","setHours","step","endOfDay","endOfMonth","getDay","endOfYear","addLeadingZeros","targetLength","output","signedYear","numberOfDigits","G","ordinalNumber","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","quarter","q","M","L","I","isoWeek","D","dayOfYear","setUTCMonth","difference","getUTCDayOfYear","E","dayOfWeek","e","localDayOfWeek","isoDayOfWeek","dayPeriodEnumValue","dayPeriod","B","h","H","K","S","X","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","originalDate","T","offset","dirtyDelimiter","absOffset","delimiter","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","subMilliseconds","formatterOptions","firstCharacter","longFormatter","matched","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","convertToFP","fn","arity","_len","_key","startOfISOWeek","getISOWeek","getISOWeekYear","startOfISOWeekYear","getQuarter","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isDate","isEqual","dirtyLeftDate","dirtyRightDate","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameYear","isWithinInterval","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findIndex","object","findKey","valueCallback","rest","buildMatchPatternFn","parseResult","parsePattern","monthValues","narrow","abbreviated","wide","formattingMonthValues","am","pm","midnight","noon","morning","afternoon","evening","night","formatDistanceLocale","lessThanXSeconds","standalone","other","withPreposition","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","count","tokenValue","addSuffix","comparison","formatRelativeLocale","lastWeek","yesterday","tomorrow","nextWeek","_date","_baseDate","_options","any","rem100","translations","about","over","almost","lessthan","withoutSuffixes","xseconds","halfaminute","xminutes","xhours","xdays","xweeks","xmonths","xyears","withSuffixes","accusativeWeekdays","isFuture","adverb","translated","adv","declension","scheme","twoFour","declensionGroup","prefixPreposition","preposition","translation","suffixPreposition","present","past","future","isSameUTCWeek","thisWeek","baseDate","_lastWeek","_nextWeek","extractPreposition","dirtyDatesArray","datesArray","parseISO","argument","_options$additionalDi","additionalDigits","dateStrings","dateString","timeString","patterns","dateTimeDelimiter","timeZoneDelimiter","timezone","splitDateString","parseYearResult","regex","captures","restDateString","century","parseYear","dateRegex","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","parseDate","timeRegex","parseTimeUnit","validateTime","parseTime","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","_arrayLikeToArray","arr2","_createForOfIteratorHelper","allowArrayLike","it","Symbol","iterator","minLen","from","F","done","_e","f","normalCompletion","didErr","_e2","property","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","_inherits","subClass","superClass","writable","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","_classCallCheck","Constructor","toPropertyKey","r","toPrimitive","_defineProperties","descriptor","_createClass","protoProps","staticProps","_defineProperty","Setter","_utcDate","ValueSetter","_Setter","validateValue","setValue","priority","subPriority","flags","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","timestampIsSet","convertedDate","Parser","setter","validate","set","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","dirtyWeek","setUTCWeek","ISOWeekParser","dirtyISOWeek","setUTCISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setUTCDay","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","_step","subFnOptions","setters","usedTokens","_iterator","_loop","parser","incompatibleTokens","incompatibleToken","find","usedToken","includes","fullToken","run","v","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","dirtyHours","setMinutes","dirtyMinutes","dirtyMonth","dateWithDesiredMonth","daysInMonth","monthIndex","lastDayOfMonth","getDaysInMonth","setQuarter","dirtyQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","setMilliseconds","startOfQuarter","currentMonth","cleanDate","subDays","subMonths","subQuarters","subWeeks","subYears","argStr","stack","_default","_index5","_typeof2","l","g","C","_","N","A","W","V","U","$","J","Z","ee","te","re","ae","ne","oe","se","ie","pe","le","ce","de","ue","fe","he","me","ye","ve","De","ge","ke","we","be","Se","Ce","Me","Pe","Ee","Ne","xe","Ye","Oe","Ie","Te","Re","Le","Fe","Ae","We","qe","Ke","Be","Qe","He","je","Ve","Ue","ze","$e","Ge","Je","Xe","Ze","et","tt","rt","at","nt","ot","st","pt","lt","ct","dt","ut","ft","ht","mt","yt","vt","getOwnPropertySymbols","getOwnPropertyDescriptor","Dt","St","getOwnPropertyDescriptors","defineProperties","gt","kt","wt","Ot","bt","Ct","_t","Pt","Mt","Et","Nt","sham","Proxy","xt","Yt","It","Tt","Rt","Ft","At","Wt","qt","awareOfUnicodeTokens","er","Kt","Bt","Qt","Ht","jt","Vt","Ut","zt","$t","Gt","Jt","Xt","Zt","globalThis","__localeId__","__localeData__","rr","ar","nr","minDate","maxDate","excludeDates","excludeDateIntervals","includeDates","includeDateIntervals","filterDate","ur","some","or","sr","ir","pr","lr","cr","dr","fr","hr","excludeTimes","includeTimes","filterTime","mr","yr","every","vr","Dr","gr","kr","wr","br","Map","Sr","holidayName","holidayNames","Cr","_r","Mr","startPeriod","endPeriod","Pr","Er","Nr","yearsList","onClick","onChange","incrementYears","decrementYears","onCancel","setState","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","dropdownRef","ariaSelected","offsetTop","renderOptions","xr","Yr","dropdownVisible","onSelectChange","renderSelectOptions","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","onSelect","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Or","monthNames","isSelectedMonth","Ir","Tr","useShortMonthInDropdown","Rr","Lr","monthYearsList","scrollableMonthYearDropdown","Fr","Ar","Wr","isDisabled","handleOnKeyDown","disabledKeyboardNavigation","selected","isSameWeek","preSelection","calendarStartDay","showWeekPicker","highlightDates","holidays","has","selectsStart","selectsEnd","selectsRange","selectsDisabledDaysInRange","selectingDate","isInSelectingRange","dayClassName","isExcluded","isSelected","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isCurrentDay","isWeekend","isAfterMonth","isBeforeMonth","getHighLightedClass","getHolidaysClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","showWeekNumber","isStartOfWeek","getTabIndex","isInputFocused","activeElement","inline","shouldFocusDayInline","containerRef","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","focus","preventScroll","renderDayContents","getClassNames","onKeyDown","handleClick","handleMouseEnter","tabIndex","getAriaLabel","role","getTitle","handleFocusDay","qr","weekNumberEl","handleFocusWeekNumber","ariaLabelPrefix","Kr","onDayClick","onDayMouseEnter","onWeekSelect","handleDayClick","shouldCloseOnSelect","formatWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayMouseEnter","renderDays","Br","Qr","Hr","jr","grid","verticalNavigationOffset","Vr","Ur","orderInDisplay","isInSelectingRangeMonth","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthClick","handleMonthNavigation","QUARTER_REFS","onQuarterClick","handleQuarterNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isSelectingMonthRangeStart","isSelectingMonthRangeEnd","isCurrentMonth","isSelectedQuarter","isInSelectingRangeQuarter","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","renderMonthContent","renderQuarterContent","onMonthKeyDown","onMonthMouseEnter","getMonthClassNames","getMonthContent","onQuarterKeyDown","onQuarterMouseEnter","getQuarterClassNames","getQuarterTabIndex","isCurrentQuarter","getQuarterContent","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","zr","requestAnimationFrame","centerLi","calcCenterPosition","monthRef","timeClassName","isSelectedTime","isDisabledTime","injectTimes","intervals","previousSibling","openToDate","liClasses","scrollToTheSelectedTime","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","$r","yearItemNumber","YEAR_REFS","updateFocusOnPaginate","handleYearClick","onYearClick","handleYearNavigation","isCurrentYear","renderYearContent","onYearMouseEnter","onYearMouseLeave","onYearKeyDown","getYearTabIndex","getYearClassNames","getYearContent","getYearContainerClassNames","clearSelectingDate","Gr","customTimeInput","cloneElement","placeholder","timeInputLabel","renderTimeInput","Jr","showPopperArrow","arrowProps","Xr","Zr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","isRenderAriaLiveMessage","handleCustomMonthChange","onMonthChange","handleMonthYearChange","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthButtonLabel","previousYearButtonLabel","previousMonthAriaLabel","previousYearAriaLabel","showTimeSelect","increaseMonth","increaseYear","nextMonthButtonLabel","nextYearButtonLabel","nextMonthAriaLabel","nextYearAriaLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","handleTodayButtonClick","monthDate","renderCurrentMonth","onFocus","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","monthAriaLabelPrefix","handleOnDayKeyDown","handleMonthMouseLeave","handleYearMouseEnter","handleYearMouseLeave","timeFormat","timeIntervals","withPortal","showTimeInput","getDateInView","assignMonthContainer","renderAriaLiveRegion","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","renderChildren","ea","icon","isValidElement","xmlns","viewBox","ta","portalRoot","portalHost","getElementById","portalId","createPortal","ra","aa","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","na","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","targetComponent","popperOnKeyDown","Popper","modifiers","placement","popperContainer","Manager","Reference","oa","sa","ia","pa","getPreSelection","startOpen","preventFocus","focused","preventFocusTimeout","blur","cancelFocusInput","calcInitialState","lastPreSelectChange","setBlur","inputValue","readOnly","preventOpenOnFocus","clearPreventFocusTimeout","setFocus","inputFocusTimeout","onBlur","onChangeRaw","isDefaultPrevented","la","strictParsing","setSelected","sendFocusBackToInput","showDateSelect","allowSameDay","focusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","msg","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","modifyHolidays","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","form","autoFocus","placeholderText","autoComplete","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onCalendarOpen","onCalendarClose","showIcon","calendarIconClassname","toggleCalendarOnIconClick","toggleCalendar","renderDateInput","renderClearButton","renderCalendar","onPortalKeyDown","renderInputContainer","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","hasOwn","argType","inner","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","symbol","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","__esModule","_typeof"],"sourceRoot":""}