{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment-timezone/index.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/@fullcalendar/daygrid/main.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/moment-timezone/moment-timezone.js","webpack:///./node_modules/luxon/build/cjs-browser/luxon.js","webpack:///./node_modules/@fullcalendar/timegrid/main.js","webpack:///./node_modules/@fullcalendar/list/main.js","webpack:///./node_modules/@fullcalendar/moment-timezone/main.js","webpack:///./node_modules/preact/dist/preact.module.js","webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/preact/compat/dist/compat.module.js","webpack:///./node_modules/@fullcalendar/core/vdom.js","webpack:///./node_modules/@fullcalendar/core/main.js","webpack:///./node_modules/@fullcalendar/common/main.css?ce97","webpack:///./node_modules/@fullcalendar/common/main.css","webpack:///./node_modules/@fullcalendar/daygrid/main.css?fac5","webpack:///./node_modules/@fullcalendar/daygrid/main.css","webpack:///./node_modules/@fullcalendar/timegrid/main.css?da0c","webpack:///./node_modules/@fullcalendar/timegrid/main.css","webpack:///./node_modules/@fullcalendar/list/main.css?dafb","webpack:///./node_modules/@fullcalendar/list/main.css","webpack:///./node_modules/moment-timezone/builds/moment-timezone-with-data-1970-2030.js","webpack:///./node_modules/@fullcalendar/luxon2/main.js","webpack:///./app/javascript/packs/calendar.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","FullCalendarVDom","Error","Component","createElement","render","createRef","Fragment","createContext","createPortal","flushSync","unmountComponentAtNode","_typeof","obj","iterator","constructor","EventSourceApi","context","internalEventSource","this","remove","dispatch","type","sourceId","refetch","sourceIds","isRefetch","publicId","configurable","meta","url","format","removeElement","el","parentNode","removeChild","elementClosest","selector","closest","document","documentElement","contains","elementMatches","parentElement","nodeType","matches","matchesSelector","msMatchesSelector","PIXEL_PROP_RE","applyStyle","props","propName","applyStyleProp","val","style","test","getEventTargetViaRoot","ev","_a","_b","composedPath","target","guid$1","getUniqueDomId","listenBySelector","container","eventType","handler","attachedHandler","matchedChild","buildDelegationHandler","addEventListener","removeEventListener","createAriaClickAttrs","onClick","createAriaKeyboardAttrs","tabIndex","onKeyDown","preventDefault","guidNumber","guid","String","compareByFieldSpec","obj0","obj1","fieldSpec","func","a","b","localeCompare","flexibleCompare","field","order","padStart","len","substr","length","formatWithOrdinals","formatter","args","fallbackText","apply","reduce","str","arg","index","replace","isInt","computeSmallestCellWidth","cellEl","allWidthEl","querySelector","contentWidthEl","getBoundingClientRect","width","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffWholeDays","timeAsMs","Math","round","startOfDay","getUTCFullYear","getUTCMonth","getUTCDate","weekOfGivenYear","marker","year","dow","doy","firstWeekStart","firstWeekOffset","dayStart","days","floor","fwd","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","Date","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","concat","UTC","isValidDate","isNaN","createEventInstance","defId","range","forcedStartTzo","forcedEndTzo","instanceId","mergeProps","propObjs","complexPropsMap","dest","name_1","complexObjs","unshift","undefined","name_2","filterHash","hash","filtered","mapHash","newHash","arrayToHash","_i","a_1","hashValuesToArray","push","isPropsEqual","getUnequalProps","keys","compareObjs","oldProps","newProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","expandRecurring","eventStore","framingRange","dateEnv","pluginHooks","options","defs","instances","instance","recurringDef","def","duration","allDay","defaultAllDayEventDuration","defaultTimedEventDuration","starts_1","expandRecurringRanges","recurringTypes","start","end","add","eventDef","markers","typeId","expand","typeData","subtract","map","INTERNAL_UNITS","PARSE_RE","createDuration","input","unit","exec","sign","years","months","parseInt","milliseconds","parseString","parseObject","month","day","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","week","specifiedWeeks","addDurations","d0","d1","multiplyDuration","asRoughDays","dur","asRoughMs","wholeDivideDurations","numerator","denominator","res","localRes","greatestDurationDenominator","buildIsoString","timeZoneOffset","stripZeroTime","toISOString","formatTimeZoneOffset","formatDayString","formatIsoTimeString","doIso","abs","mins","isArraysEqual","a0","a1","equalityFunc","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","arguments","memoizeObjArg","currentArg","_this","newArg","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","max","buildFormattingFunc","formatRange","betterDefaultSeparator","diffSeverity","ca","getMarkerYear","getMarkerMonth","getMarkerDay","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialFormattingFunc","biggestUnit","partialOptions","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","indexOf","before0","after0","i1","found1","before1","after1","before","after","findCommonInsertion","defaultSeparator","getLargestUnit","standardDatePropCnt","num","weekText","weekTextLong","locale","display","parts","simpleNumberFormat","direction","reverse","join","formatWeekNumber","computeWeekNumber","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","tzoStr","replaced","injectTzoStr","trim","toLocaleLowerCase","postProcess","buildNativeFormattingFunc","expandZonedMarker","dateInfo","markerToArray","array","createVerboseFormattingArg","startInfo","localeCodes","CmdFormatter","cmdStr","cmdFormatter","FuncFormatter","createFormatter","BASE_OPTION_REFINERS","navLinkDayClick","identity","navLinkWeekClick","bootstrapFontAwesome","buttonIcons","customButtons","nextDayThreshold","scrollTime","scrollTimeReset","Boolean","slotMinTime","slotMaxTime","dayPopoverFormat","slotDuration","snapDuration","headerToolbar","footerToolbar","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","dayHeaders","dayHeaderFormat","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","dayCellClassNames","dayCellContent","dayCellDidMount","dayCellWillUnmount","initialView","aspectRatio","Number","weekends","weekNumberCalculation","weekNumbers","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","editable","viewClassNames","viewDidMount","viewWillUnmount","nowIndicator","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","showNonCurrentDates","lazyFetching","startParam","endParam","timeZoneParam","locales","themeSystem","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventOrder","token","specs","tokens","split","Array","isArray","charAt","substring","eventOrderStrict","handleWindowResize","windowResizeDelay","longPressDelay","eventDragMinDistance","expandRows","height","contentHeight","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","progressiveEventRendering","businessHours","initialDate","now","eventDataTransform","stickyHeaderDates","stickyFooterScrollbar","viewHeight","defaultAllDay","eventSourceFailure","eventSourceSuccess","eventDisplay","eventStartEditable","eventDurationEditable","eventOverlap","eventConstraint","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","eventClassNames","eventContent","eventDidMount","eventWillUnmount","selectConstraint","selectOverlap","selectAllow","droppable","unselectCancel","slotLabelFormat","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","dayMaxEvents","dayMaxEventRows","dayMinWidth","slotLabelInterval","allDayText","allDayClassNames","allDayContent","allDayDidMount","allDayWillUnmount","slotMinWidth","navLinks","eventTimeFormat","rerenderDelay","moreLinkText","moreLinkHint","selectMinDistance","selectable","selectLongPressDelay","eventLongPressDelay","selectMirror","eventMaxStack","eventMinHeight","eventMinWidth","eventShortHeight","slotEventOverlap","plugins","firstDay","dayCount","dateAlignment","dateIncrement","hiddenDays","monthMode","fixedWeekCount","validRange","visibleRange","titleFormat","eventInteractive","noEventsText","viewHint","navLinkHint","closeHint","timeHint","eventHint","moreLinkClick","moreLinkClassNames","moreLinkContent","moreLinkDidMount","moreLinkWillUnmount","BASE_OPTION_DEFAULTS","center","CALENDAR_LISTENER_REFINERS","datesSet","eventsSet","eventAdd","eventChange","eventRemove","windowResize","eventClick","eventMouseEnter","eventMouseLeave","select","unselect","loading","_unmount","_beforeprint","_afterprint","_noEventDrop","_noEventResize","_resize","_scrollRequest","CALENDAR_OPTION_REFINERS","buttonText","buttonHints","views","initialEvents","events","eventSources","COMPLEX_OPTION_COMPARATORS","isMaybeObjectsEqual","VIEW_OPTION_REFINERS","component","buttonTextKey","dateProfileGeneratorClass","usesMinMaxTime","classNames","content","didMount","willUnmount","mergeRawOptions","optionSets","refineProps","refiners","refined","extra","raw","parseEvents","rawEvents","eventSource","allowOpenRange","eventRefiners","buildEventRefiners","rawEvents_1","tuple","parseEvent","eventTupleToStore","getRelevantEvents","def_1","newStore","filterEventStoreDefs","lookDef","def0","def1","groupId","mergeEventStores","store0","store1","filterFunc","parseClassNames","EVENT_UI_REFINERS","startEditable","durationEditable","constraint","overlap","allow","className","color","backgroundColor","borderColor","textColor","EMPTY_EVENT_UI","constraints","allows","createEventUi","normalizeConstraint","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_NON_DATE_REFINERS","id","title","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","refineEventDef","computeIsDefaultAllDay","recurringRes","parsed","parse","allDayGuess","parseRecurring","parseEventDef","singleRes","startMeta","endMeta","startMarker","hasEnd","endMarker","startInput","createMarkerMeta","isTimeUnspecified","forcedTzo","parseSingle","ui","eventDefMemberAdders","memberAdder","freeze","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","isMultiDayRange","diffDates","date0","date1","largeUnit","diffWholeYears","diffWholeMonths","m0day","m1day","invertRanges","ranges","constraintRange","dateRange","invertedRanges","sort","compareRanges","range0","range1","intersectRanges","newRange","min","rangesIntersect","rangeContainsMarker","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","setElSeg","seg","fcSeg","getElSeg","eventDefs","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","fieldSpecs","cmp","compareByFieldSpecs","_seg","eventRange","computeSegDraggable","transformers","isDraggableTransformers","transformers_1","transformer","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","eventInstance","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","nowDate","segRange","isPast","isFuture","isToday","buildEventRangeKey","getSegAnchorAttrs","href","emitter","hasHandlers","trigger","event","jsEvent","view","viewApi","STANDARD_PROPS","parseDateSpan","defaultDuration","span","standardProps","parseOpenDateSpan","buildRangeApiWithTimeZone","omitTime","buildRangeApi","toDate","startStr","formatIso","endStr","fabricateEventRange","dateSpan","buildDateSpanApiWithContext","dateSpanTransforms","transform","getDefaultEventEnd","applyMutationToEventDef","eventConfig","mutation","startDelta","endDelta","copy","eventDefMutationAppliers","applier","applyMutationToEventInstance","forceAllDay","clearEnd","datesDelta","ViewApi","getCurrentData","calendarApi","viewTitle","dateProfile","activeRange","currentRange","getOption","EVENT_SOURCE_REFINERS","success","failure","parseEventSource","rawObj","buildEventSourceRefiners","metaRes","eventSourceDefs","parseMeta","sourceDefId","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","eventSourceRefiners","getNow","nowInput","createNowMarker","createMarker","CalendarApi","currentDataManager","action","batchRendering","callback","updateSize","setOption","optionName","rawOptionValue","currentCalendarOptionsInput","getAvailableLocaleCodes","availableRawLocales","on","handlerName","currentCalendarOptionsRefiners","console","warn","off","changeView","viewType","dateOrRange","dateMarker","zoomTo","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","header","viewsWithButtons","footer","singleUnit","prev","next","prevYear","state","addYears","currentDate","nextYear","today","calendarOptions","gotoDate","zonedDateInput","incrementDate","deltaInput","delta","formatDate","settings","dateOrObj","endDate","selectionInput","selection","pev","origEvent","triggerDateSelect","dateSelection","triggerDateUnselect","addEvent","eventInput","sourceInput","_def","_instance","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","eventApi","relatedEvents","revert","eventApiToStore","getEventById","getEvents","currentData","buildEventApis","removeAllEvents","getEventSources","sourceHash","sourceApis","internalId","addEventSource","sources","removeAllEventSources","refetchEvents","scrollToTime","timeInput","time","EventApi","_context","setProp","mutate","setExtendedProp","setStart","granularity","maintainDuration","setEnd","endInput","setDates","instanceRange","moveStart","moveEnd","moveDates","setAllDay","formatInput","context_1","eventStore_1","relevantEvents","eventConfigBase","eventConfigs","applyMutationToEventStore","oldEvent","asStore","toPlainObject","collapseColor","collapseExtendedProps","toJSON","excludeInstance","eventApis","excludeInstanceId","calendarSystemClassMap","theClass","GregorianCalendarSystem","arrayToMarker","arr","ISO_RE","DateEnv","isNamedTimeZone","namedTimeZoneImpl","canComputeOffset","createCalendarSystem","weekDow","weekDoy","weekNumberFunc","timestampToMarker","getYear","addMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","diff","asRoughMonths","startOf","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","y","w","nextW","weekOfYear","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","globalLocales","MINIMAL_RAW_EN_LOCALE","code","list","RAW_EN_LOCALE","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","codeArg","j","simpleId","slice","queryRawLocale","parseLocale","queryLocale","merged","NumberFormat","canVGrowWithinCell","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","rawDefs","filter","rawDef","refineInputs","getCanVGrowWithinCell","position","top","left","innerHTML","body","appendChild","possible","offsetHeight","computeCanVGrowWithinCell","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventDrag","eventResizes","eventResize","info","buildEventUiForKey","keyInfo","buildEventUi","eventSelection","dateSpans","keys_1","getKeysForDateSpan","getKeysForEventDef","splitStores","_c","splitHashes","interaction","splitStates","affectedStores_1","affectedEvents","mutatedKeysByDefId","mutatedEvents","mutatedStores_1","populate","isEvent","allUi","eventUiForKey","baseParts","stuff","getDateMeta","isDisabled","isOther","getDayClassNames","theme","getClass","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","zonedDate","handleInteraction","customAction","_scrollbarWidths","getScrollbarWidths","overflow","computeScrollbarWidthsForEl","computeScrollbarWidths","x","clientHeight","offsetWidth","clientWidth","computeClippedClientRect","rect1","rect2","clippingParents","parents","HTMLElement","computedStyle","window","getComputedStyle","overflowY","overflowX","getClippingParents","rect","clippingParents_1","clippingParent","intersection","right","bottom","Emitter","handlers","thisContext","setThisContext","setOptions","addToHash","removeFromHash","attachedHandlers","optionHandler","handlers_1","PositionCache","originEl","els","isHorizontal","isVertical","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","_super","ElementScrollController","scrollTop","scrollLeft","setScrollTop","setScrollLeft","scrollWidth","scrollHeight","WindowScrollController","pageYOffset","pageXOffset","scroll","Theme","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","prefix","iconOverridePrefix","classes","getIconClass","isRtl","rtlIconClasses","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","ScrollResponder","execFunc","handleScrollRequest","request","queuedRequest","drain","fireInitialScroll","detach","update","isDatesNew","ViewContextType","buildViewContext","viewSpec","viewOptions","dateProfileGenerator","registerInteractiveComponent","unregisterInteractiveComponent","addResizeHandler","removeResizeHandler","createScrollResponder","PureComponent","shouldComponentUpdate","nextProps","nextState","debug","log","propEquality","stateEquality","safeSetState","newState","setState","addPropsEquality","addStateEquality","contextType","BaseComponent","setRef","ref","current","DateComponent","uid","prepareHits","queryHit","positionLeft","positionTop","elWidth","elHeight","isValidSegDownEl","isValidDateDownEl","createPlugin","deps","reducers","isLoadingFuncs","contextInit","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","namedTimeZonedImpl","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","contentTypeHandlers","listenerRefiners","optionRefiners","propSetHandlers","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","globalDefs","pluginDefs","isAdded","hooks","addDefs","defs_1","hooks1","hooks0","buildPluginHooks","StandardTheme","ensureViewDef","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","defaults","rawOptions","overrides","buildViewDef","root","tableCellShaded","buttonGroup","button","buttonActive","close","RenderHook","rootElRef","handleRootEl","elRef","hookProps","ContentHook","defaultContent","backupElRef","innerElRef","innerContent","children","normalizeClassNames","CustomContentRenderContext","Consumer","renderId","ContentHookInner","renderInnerContent","componentDidMount","updateCustomContent","componentDidUpdate","componentWillUnmount","customContentInfo","destroy","getInnerContent","getContentMeta","contentKey","contentVal","buildLifecycleFuncs","normalizeContent","searchKey","MountHook","rootEl","buildClassNameNormalizer","currentGenerator","currentHookProps","currentClassNames","generator","ViewRoot","customClassNames","parseViewConfigs","inputs","parseViewConfig","viewProps","viewElRef","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","compileViewDefs","durationInput","durationUnit","singleUnitOverrides","json","JSON","stringify","durationInputMap","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","buttonTitleOverride","buttonHint","buttonTitleDefault","buildViewSpec","DateProfileGenerator","initHiddenDays","buildPrev","currentDateProfile","forceToValid","prevDate","currentRangeUnit","build","buildNext","nextDate","currentInfo","isRangeAllDay","renderRange","isValid","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","validRangeInput","simpleInput","refineRange","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","computeRes","isHiddenDay","skipHiddenDays","runningCount","visibleRangeInput","fallback","customAlignment","rangeInput","isHiddenDayHash","inc","isExclusive","initEventSources","addSources","rawSources","rawSources_1","source","parseInitialSources","reduceEventSources","eventSourceHash","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","fetchId","receiveResponse","computeEventSourcesLoading","sources_1","doesSourceNeedRange","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","fetch","xhr","error","message","ignoreRange","reduceEventStore","subset","calEachTransform","sourceEachTransform","transformEachRawEvent","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","expandRange","master","sub","filteredDefs","filteredInstances","excludeSubEventStore","refinedEvents","rawEvent","refinedEvent","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","parseToolbar","sectionStrHash","sectionWidgets","hasTitle","sectionName","sectionRes","parseSection","widgets","sectionStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonClick","buttonIcon","click","text","hint","textFallback","prevOrNext","navUnit","eventSourceDef$1","isResolved","wrappedSuccess","wrappedFailure","then","unpromisify","requestJson","method","params","successCallback","failureCallback","toUpperCase","encodeParams","injectQueryStringParams","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","handleEventSources","unfoundSources","newInputs","inputs_1","inputFound","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","globalPlugins","extraParams","requestParams","customRequestParams","buildRequestParams","errorMessage","startRecur","endRecur","recurringData","clippedFramingRange","dowHash","dayMarker","instanceStarts","instanceStart","expandRanges","_events","html","currentEl","currentHtml","domNodes","currentDomNodes","forEach","newDomNodes","newDomNodes_1","newNode","DelayedRunner","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","delay","isPaused","clearTimeout","tryDrain","setTimeout","pause","scope","resume","force","drained","clear","TaskRunner","runTaskOption","queue","delayedRunner","task","completedTasks","shift","runTask","buildTitle","buildTitleFormat","CalendarDataManager","computeOptionsData","_computeOptionsData","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","actionRunner","_handleAction","updateData","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","data","optionsData","currentViewType","currentViewData","initialDateInput","calendarContext","initialState","renderableEventStore","selectionConfig","contextAndState","reducer","computeIsLoading","resetOptions","append","reduceDynamicOptionOverrides","reduceViewType","reduceCurrentDate","dp","reduceDateProfile","eventUiSingleBase","eventUiBySource","wasLoading","isLoading","onAction","oldDateEnv","newDateEnv","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","onData","processRawCalendarOptions","refinedOptions","availableLocaleData","warnUnknownOptions","currentRaw","currentRefined","anyChanges","processRawViewOptions","explicitLocale","isLoadingFunc","viewName","CalendarDataProvider","handleData","dataManager","prevProps","newOptionOverrides","NamedTimeZoneImpl","SegHierarchy","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","addSegs","hiddenEntries","insertEntry","entry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","thickness","stackCnt","touchingEntry","splitEntry","barrier","partCnt","splitHiddenEntries","entrySpan","barrierSpan","intersectSpans","lateral","insertAt","level","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntries","trackingEntry","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","toRects","rects","entries","entries_1","groupIntersectingEntries","span0","span1","merges","entries_2","filteredMerges","hungryMerge","merges_1","merge","item","searchVal","getItemVal","startIndex","endIndex","middleIndex","middleVal","Interaction","isHitComboAllowed","parseInteractionSettings","useEventCenter","interactionSettingsStore","ElementDragging","setMirrorIsVisible","bool","setMirrorNeedsRevert","setAutoScrollEnabled","ToolbarSection","widgetGroups","widgetGroup","renderWidgetGroup","isOnlyButtons","widgetGroup_1","widget","titleId","isPressed","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","disabled","groupClassName","Toolbar","startContent","endContent","model","extraClassName","forceLtr","centerContent","renderSection","ViewContainer","availableWidth","handleEl","updateAvailableWidth","handleResize","liquid","paddingBottom","labeledById","EventClicking","handleSegClick","segEl","hasUrlContainer","defaultPrevented","location","EventHovering","onMouseEnter","onMouseLeave","currentMatchedChild","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","mouseOverEv","realOnMouseLeave_1","mouseLeaveEv","publicEvName","CalendarContent","buildViewPropTransformers","buildToolbarProps","headerRef","footerRef","interactionsStore","viewLabelId","settingsInput","interactions","TheInteractionClass","listeners","listeners_1","resizeRunner","viewAspectRatio","toolbarProps","viewVGrow","isHeightAuto","forPrint","viewContext","Provider","renderView","buildAppendContent","CalendarInteractionClass","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","CalendarRoot","handleBeforePrint","handleAfterPrint","CLASS_NAME","renderInner$1","TableDateCell","dayMeta","navLinkAttrs","colCnt","extraHookProps","role","colSpan","extraDataAttrs","isSticky","WEEKDAY_FORMAT","TableDowCell","dateMeta","extraClassNames","NowTimer","initialNowDate","initialNowQueriedMs","computeTiming","currentState","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","DayHeader","createDayHeaderFormatter","dates","datesRepDistinctDays","renderIntro","explicitFormat","dateCnt","computeFallbackHeaderFormat","DaySeriesModel","indices","dayIndex","cnt","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","segs_1","eventRanges","eventRanges_1","sliceEventRange","segs_2","isComponentAllDay","VISIBLE_HIDDEN_RE","Scroller","liquidIsAbsolute","isAbsolute","overcomeLeft","overcomeRight","overcomeBottom","marginLeft","marginRight","marginBottom","maxHeight","needsXScrolling","realClientWidth","getYScrollbarWidth","needsYScrolling","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","currentMap","depths","callbackMap","handleValue","removed","added","refCallback","collect","step","collectFromHash","getAll","computeShrinkWidth","chunkEls","largestWidth","shrinkCells_1","containers","allMatches","querySelectorAll","findElements","shrinkCell","getSectionHasLiquidHeight","sectionConfig","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","cols_1","colProps","sanitizeShrinkWidth","minWidth","getSectionClassNames","wholeTableVGrow","renderScrollShim","tableMinWidth","getStickyHeaderDates","getStickyFooterScrollbar","SimpleScrollGrid","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","sections","microColGroupNode","getScrollGridClassNames","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","isHeader","outerContent","renderChunkTd","chunk","chunkConfig","getAllowYScrolling","isLiquid","sectionKey","tableClassName","syncRowHeights","tableColGroupNode","rowContent","renderChunkContent","rowSyncHeights","reportRowHeightChange","scrollerEl","section","sections_1","getSectionByKey","scrollerElRef","cols_2","hasShrinkWidth","scrollbarWidth","scroller","harnessEl","EventRoot","timeText","isDraggable","disableDragging","isStartResizable","disableResizing","isEndResizable","isMirror","isDragging","isResizing","isDateSelecting","isSelected","standardClassNames","getEventClassNames","StandardEvent","defaultTimeFormat","renderInnerContent$1","innerProps","isAxis","DAY_NUM_FORMAT","DayCellContent","refineDayCellHookProps","showDayNumber","extraProps","dayNumberText","DayCellRoot","refineHookProps","dataAttrs","renderFill","fillType","defaultFormat","renderInner","Popover","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","onClose","extraAttrs","parentEl","alignmentEl","alignGridTop","alignmentRect","popoverDims","popoverTop","popoverLeft","origin_1","offsetParent","MorePopover","startDate","dayClassNames","extraDateSpan","dayEl","layer","MoreLinkRoot","linkElRef","isPopoverOpen","popoverId","handleClick","computeRange","buildPublicSeg","allDayDate","allSegs","hiddenSegs","handlePopoverClose","moreCnt","shortText","renderMoreLinkInner","alignmentElRef","popoverContent","updateParentEl","computeEarliestSegStart","pickLatestEnd","pickEarliestStart","seg0","seg1","factory","hookCallback","some","toString","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","fn","arrLen","extend","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","to","from","prop","momentPropertiesLen","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","stack","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","pow","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","match","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","aliases","addUnitAlias","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","modMonth","monthsShort","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","h","M","setFullYear","createUTCDate","setUTCFullYear","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","getSetGlobalLocale","e","values","getLocale","defineLocale","abbr","_config","parentLocale","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","tzFormat","string","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","configFromArray","expectedWeekday","yearToUse","nowValue","_useUTC","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","quarters","quarter","isoWeek","unitHasDecimal","orderLen","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","clone","setTime","local","getDateOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","period","tmp","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","properties","propertyLen","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","sod","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","prioritizedLen","toArray","toObject","keepOffset","inspect","suffix","zone","isLocal","for","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","_extendStatics","setPrototypeOf","__proto__","__extends","TypeError","__","_assign","__spreadArray","pack","ar","webpackPolyfill","paths","tz","load","memo","isOldIE","all","atob","getTarget","styleTarget","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","count","css","media","sourceMap","references","updater","addStyle","insertStyleElement","attributes","nonce","setAttribute","insert","textStore","replaceText","replacement","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","applyToTag","removeAttribute","btoa","unescape","firstChild","singleton","singletonCounter","styleIndex","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","useSourceMap","cssMapping","sourceMapping","base64","sourceURLs","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","f","weekdaysParseExact","suffixes","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","word","numbersNouns","numberNoun","hundred","ten","one","numberAsNoun","processHoursFunction","nominative","accusative","genitive","TableView","headerElRef","renderSimpleLayout","headerRowContent","bodyContent","renderHScrollLayout","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","TableCellTop","renderTopInner","forceDayTop","dayNumberId","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","TableBlockEvent","TableListItemEvent","TableCellMoreLink","compileSegs","singlePlacements","invisibleSegs","isForcedInvisible","visibility","isExpanded","singlePlacements_1","placement","isVisible","DEFAULT_WEEK_NUM_FORMAT","TableCell","dayElRef","rootDataAttrs","showWeekNumber","weekElRef","weekClassNames","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","computeFgSegPlacement","eventInstanceHeights","maxContentHeight","hierarchy","DayGridSegHierarchy","hiddenConsumes","segInputs","unknownHeightSegs","eventHeight","allRects","rectsByEachCol","rects_3","groupRectsByEachCol","singleColPlacements","multiColPlacements","leftoverMargins","currentHeight","currentMarginTop","rects_1","resliceSeg","absoluteTop","multiPlacements","rects_2","isFirstCol","placeRects","moreCnts","moreMarginTops","unknownHeightSegs_1","hiddenEntries_1","hiddenEntry","hiddenSpan","spanStart","spanEnd","forceHidden","excludeHidden","touchingEntryId","placeholderEntry","TableRow","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","mirrorSegs","colPlacements","topsByInstanceId","colPlacements_1","placements_1","buildAbsoluteTopHash","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","updateSizing","prevState","currentProps","segPlacements","nodes","segPlacements_1","leftRightCss","isExternalSizingChange","frameEls","oldInstanceHeights","newInstanceHeights","queryEventInstanceHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","getCellEls","elMap","Table","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","limitViaBalanced","colGroupNode","renderRowIntro","isSegAllDay","rowPositions","rowObj","colPositions","getCellRange","getCellEl","DayTableSlicer","dayTableModel","DayTable","slicer","tableRef","headerAlignElRef","DayTableView","buildDayTableModel","headerContent","contentArg","TableDateProfileGenerator","endOfWeek","main","dayGrid","dayGridDay","dayGridWeek","dayGridMonth","webpackContext","req","webpackContextResolve","resolve","default","cachedGuess","zones","links","_countries","guesses","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","whole","fractional","multiplier","charCodeAt","arrayToInt","mapIndices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","ZoneScore","offsetScore","abbrScore","findChange","low","high","mid","sortZoneScores","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","resolvedOptions","normalizeName","zoneScore","change","startYear","last","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","caller","link","addLink","normal0","normal1","needsOffset","isUnixTimestamp","unpacked","timestamp","countries","zone_name","country_code","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","offsetAt","dataVersion","_zones","_links","_names","country_zones","addCountries","zoneExists","didShowError","guess","ignoreCache","zonesForCountry","country","with_offset","old","abbrWrap","_z","resetZoneWrap","defaultZone","z","setDefault","_defineProperties","descriptor","writable","_createClass","Constructor","protoProps","staticProps","_extends","_inheritsLoose","subClass","superClass","_setPrototypeOf","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","Class","_wrapNativeSuper","_cache","Map","has","Wrapper","_objectWithoutPropertiesLoose","excluded","sourceKeys","_arrayLikeToArray","_createForOfIteratorHelperLoose","allowArrayLike","it","minLen","_unsupportedIterableToArray","done","LuxonError","_Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hourCycle","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isInteger","hasRelative","RelativeTimeFormat","bestBy","by","compare","best","pair","integerBetween","thing","parseInteger","parseFloating","parseMillis","fraction","roundTo","digits","towardZero","factor","trunc","floorMod","objToLocalTS","parseZoneInfo","ts","offsetFormat","intlOpts","modified","formatToParts","find","signedOffset","offHourStr","offMinuteStr","offHour","offMin","is","asNumber","numericValue","normalizeObject","normalizer","v","formatOffset","RangeError","timeObject","pick","ianaRegex","monthsLong","monthsNarrow","weekdaysLong","weekdaysNarrow","meridiems","erasLong","erasShort","erasNarrow","stringifyTokens","splits","tokenToString","_step","_iterator","literal","_macroTokenToFormatOpts","D","DD","DDD","DDDD","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","opts","loc","systemLoc","parseFormat","fmt","currentFull","bracketed","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","meridiemForDateTime","monthForDateTime","weekdayForDateTime","eraForDateTime","offsetName","weekNumber","maybeMacro","formatDurationFromString","lildur","_this2","tokenToField","realTokens","found","_ref","collapsed","shiftTo","mapped","Invalid","explanation","equals","otherZone","singleton$1","SystemZone","_Zone","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","dtf","hour12","_ref2","formatted","filled","_formatted$i","partsOffset","fMonth","fDay","hackyOffset","adOrBc","asTS","over","FixedOffsetZone","fixed","utcInstance","parseSpecifier","InvalidZone","normalizeZone","lowered","throwOnInvalid","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","Settings","resetCaches","numberingSystem","_excluded","_excluded2","intlLFCache","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","PolyNumberFormatter","intl","otherOpts","useGrouping","minimumIntegerDigits","inf","getCachedINF","PolyDateFormatter","isUniversal","gmtOffset","offsetZ","DateTime","fromMillis","_proto2","toJSDate","PolyRelFormatter","isEnglish","rtf","_opts","cacheKeyOpts","getCachedRTF","_proto3","numeric","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","_parseLocaleString","localeStr","uIndex","smaller","_options","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","intlConfigString","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","fromObject","_temp","_proto4","isActuallyEn","hasNoWeirdness","alts","redefaultToEN","formatStr","mapMonths","mapWeekdays","_this3","_this4","matching","fastNumbers","relFormatter","listFormatter","ListFormat","getCachedLF","startsWith","combineRegexes","_len","_key","full","combineExtractors","_len2","extractors","_key2","ex","mergedVals","mergedZone","cursor","_ex","_len3","patterns","_key3","_patterns","_patterns$_i","extractor","simpleParse","_len4","_key4","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","extractISOTime","extractISOOffset","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","weekStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","fromStrings","extractRFC2822","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","extractISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits$1","reverseUnits","clone$1","conf","conversionAccuracy","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","antiTrunc","accurate","isLuxonDuration","normalizeUnit","fromDurationLike","durationLike","fromISO","_parseISODuration","parseISODuration","fromISOTime","_parseISOTimeOnly","parseISOTimeOnly","toFormat","fmtOpts","toHuman","unitDisplay","listStyle","toISO","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","plus","minus","negate","mapUnits","_Object$keys","reconfigure","normalize","vals","previous","normalizeValues","lastUnit","_step2","built","accumulated","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","v1","v2","INVALID$1","validateStartEnd","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","_split","startIsValid","endIsValid","_dur","isInterval","toDuration","hasSame","isEmpty","dateTime","splitAt","dateTimes","sorted","results","splitBy","idx","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","union","intervals","_intervals$sort$reduc","sofar","final","xor","_Array$prototype","currentCount","ends","difference","toISODate","_temp2","_ref3$separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$locObj","locObj","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$locObj","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","_ref3$locObj","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_ref4$locObj","_temp5","_ref5$locale","_temp6","_ref6$locale","features","relative","dayDiff","earlier","later","utcDayStart","toUTC","_diff","_highOrderDiffs","lowestOrder","highWater","_differs","_differs$_i","differ","_cursor$plus","_cursor$plus2","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus3","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","intUnit","post","deser","search","_numberingSystemsUTF","parseDigits","spaceOrNBSP","fromCharCode","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","findIndex","groups","simple","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","part","tokenForPart","includes","explainFromTokens","expandMacroTokens","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","_ref5","unitate","disqualifyingUnit","_buildRegex","buildRegex","regexString","_match","matchIndex","rawMatches","_ref6","specificOffset","Z","q","G","S","toField","dateTimeFromMatches","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","fixOffset","localTS","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","_toISODate","extended","longFormat","_toISOTime","includeOffset","extendedZone","ianaName","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","lastOpts","argList","ot","_zone","isLuxonDateTime","_lastOpts","_lastOpts2","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","higherOrderInvalid","validWeek","validWeekday","hasInvalidWeekData","validOrdinal","hasInvalidOrdinalData","_objToTS2","_parseISODate","parseISODate","fromRFC2822","_parseRFC2822Date","preprocessRFC2822","parseRFC2822Date","fromHTTP","_parseHTTPDate","parseHTTPDate","fromFormat","_opts$locale","_opts$numberingSystem","_parseFromTokens","_explainFromTokens","parseFromTokens","fromString","fromSQL","_parseSQL","parseSQL","isDateTime","resolvedLocaleOptions","_Formatter$create$res","toLocal","_ref2$keepLocalTime","_ref2$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","mixed","settingWeekStuff","_objToTS4","normalizedUnit","_this$plus","toLocaleString","toLocaleParts","_ref4$format","_ref4$suppressSeconds","_ref4$suppressMillise","_ref4$includeOffset","_ref4$extendedZone","ext","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$includePrefix","_ref6$extendedZone","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","includeZone","_ref7$includeOffsetSp","includeOffsetSpace","toSQL","toSeconds","toUnixInteger","toBSON","includeConfig","otherDateTime","durOpts","otherIsLater","diffed","diffNow","adjustedToZone","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish","VERSION","AllDaySplitter","timed","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","isLabeled","isoTimeStr","labelFormat","TimeBodyAxis","slatMetas","slatMeta","TimeColsView","allDaySplitter","slatCoords","handleScrollTopRequest","renderHeadAxis","rowKey","frameHeight","renderTableRowAxis","rowHeight","renderAllDayInner","handleSlatCoords","timeContent","isNowIndicator","nowIndicatorTop","safeComputeTop","getAllDayMaxEventProps","TimeColsSlatsCoords","positions","startOfDayDate","timeMs","computeTimeTop","computeDateTop","when","slatIndex","slatRemainder","slatCoverage","TimeColsSlatsBody","slatElRefs","axis","TimeColsSlats","minHeight","onCoords","splitSegsByCol","segsByCol","splitInteractionByCol","TimeColMoreLink","renderPlainFgSegs","buildPositioning","topLevelNodes","totalThickness","stretchNode","hiddenGroups","web","buildNode","cacheable","siblingRange","subjectLevel","subjectLateral","subjectEntry","afterSubject","searchIndex","lateralStart","lateralEnd","findNextLevelSegs","nextLevelRes","buildNodes","nextLevelNodes","buildWeb","node","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","nextLevelNodes_1","childNode","newThickness","segRects","processNode","stackDepth","stackForward","processNodes","nodes_1","webToRects","pairs","cmpDescPressures","extractNode","keyFunc","workFunc","cache","computeSegVCoords","colDate","vcoords","DEFAULT_TIME_FORMAT","TimeColEvent","isShort","TimeColMisc","TimeCol","isSelectMirror","interactionAffectedInstances","sortedFgSegs","renderNowIndicator","nowIndicatorSegs","segIsInvisible","renderPositionedFgSegs","segVCoords","dumbSegs","segRects_1","segRect","dumbSegs_1","dumbSeg","computeFgSegPlacements","renderHiddenGroups","segPlacement","vStyle","computeSegVStyle","hStyle","computeSegHStyle","isInset","hiddenGroup","segEntries","positionCss","segEntry","segHCoords","shouldOverlap","nearCoord","farCoord","zIndex","hiddenInstances","TimeColsContent","splitNowIndicatorSegs","nowIndicatorSegsByRow","updateCoords","onColCoords","TimeCols","processSlotOptions","onScrollTopRequest","top_1","handleColCoords","colCoords","onSlatCoords","scrollResponder","snapsPerSlot","colIndex","slatTop","slatHeight","partial","snapIndex","dayDate","snapDurationOverride","DayTimeColsSlicer","dayRanges","DayTimeCols","buildDayRanges","timeColsRef","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","slatTime","slatIterator","labelInterval","slotsPerLabel","computeLabelInterval","metas","DayTimeColsView","buildTimeColsModel","hasAttachedAxis","hasDetachedAxis","allDaySlot","timeGridContent","OPTION_REFINERS","timeGrid","timeGridDay","timeGridWeek","ListViewHeaderRow","textId","cellId","listDayFormat","sideText","listDaySideFormat","sideNavLinkAttrs","ListViewEventRow","timeHeaderId","eventHeaderId","dateHeaderId","interactiveAttrs","renderEventInnerContent","doAllDay","headers","buildTimeContent","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","dateHeaderIdRoot","setRootEl","dayDates","renderSegList","renderEmptyMessage","noEventsClassNames","noEventsContent","renderNoEventsInner","noEventsDidMount","noEventsWillUnmount","segsByDay","groupSegsByDay","innerNodes","daySegs","daySegs_1","eventRangesToSegs","eventRangeToSegs","viewEnd","createFalsableFormatter","listDay","listWeek","listMonth","listYear","MomentNamedTimeZone","defaultProps","__k","__b","__e","__d","__c","__h","__v","vnode","_","g","__r","debounceRendering","__P","__n","ownerSVGElement","C","A","nextSibling","$","setProperty","H","I","__E","O","__s","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","localName","createElementNS","dangerouslySetInnerHTML","__html","checked","unmount","P","B","getDerivedStateFromError","componentDidCatch","forceUpdate","__H","__N","__V","requestAnimationFrame","cancelAnimationFrame","isPureReactComponent","__f","__u","__a","__R","__O","pop","delete","revealOrder","size","containerInfo","isReactComponent","Y","cancelBubble","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","J","class","K","multiple","selected","defaultValue","$$typeof","Q","globalObj","globalThis","ContextType","origProvider","isNew","subs_1","_props","runBeforeFlush","oldDebounceRendering","callbackQ","execCallbackSync","FakeComponent","Calendar","isRendering","isRendered","customContentRenderId","handleAction","renderRunner","handleRenderRequest","currentData_1","setClassNames","setHeight","wasRendering","pauseRendering","resumeRendering","classList","classNames_1","api","locals","___CSS_LOADER_API_IMPORT___","loadData","LuxonNamedTimeZone","arrayToLuxon","datetime","parseCmdStr","middle","tail","cmd","formatStart","formatEnd","startHead","startMiddle","startTail","endHead","endMiddle","endTail","startWhole","endWhole","getElementById","start_date","attr","end_date","gathering_id","timeZoneSelectorEl","prevent_start_date","prevent_end_date","dayGridPlugin","timeGridPlugin","listPlugin","momentTimezonePlugin","luxon2Plugin"],"mappings":"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","file":"js/calendar-e8277d2fb91bda047c16.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"//d2s7rgiurg9jkv.cloudfront.net/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 189);\n","/// \nif (typeof FullCalendarVDom === 'undefined') {\n throw new Error('Please import the top-level fullcalendar lib before attempting to import a plugin.');\n}\n\nvar Component = FullCalendarVDom.Component;\nvar createElement = FullCalendarVDom.createElement;\nvar render = FullCalendarVDom.render;\nvar createRef = FullCalendarVDom.createRef;\nvar Fragment = FullCalendarVDom.Fragment;\nvar createContext = FullCalendarVDom.createContext;\nvar createPortal = FullCalendarVDom.createPortal;\nvar flushSync = FullCalendarVDom.flushSync;\nvar unmountComponentAtNode = FullCalendarVDom.unmountComponentAtNode;\n/* eslint-enable */\n\nexport { Component, Fragment, createContext, createElement, createPortal, createRef, flushSync, render, unmountComponentAtNode };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\nFullCalendar v5.11.3\nDocs & License: https://fullcalendar.io/\n(c) 2022 Adam Shaw\n*/\nimport './main.css';\nimport { __assign, __spreadArray, __extends } from 'tslib';\nimport { createContext, Component, createRef, createElement, Fragment, createPortal } from './vdom.js';\nexport * from './vdom.js'; // no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\nvar EventSourceApi =\n/** @class */\nfunction () {\n function EventSourceApi(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n\n EventSourceApi.prototype.remove = function () {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId\n });\n };\n\n EventSourceApi.prototype.refetch = function () {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true\n });\n };\n\n Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function get() {\n return this.internalEventSource.publicId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n get: function get() {\n return this.internalEventSource.meta.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"format\", {\n get: function get() {\n return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n },\n enumerable: false,\n configurable: true\n });\n return EventSourceApi;\n}();\n\nfunction removeElement(el) {\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n} // Querying\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector); // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n\n if (!document.documentElement.contains(el)) {\n return null;\n }\n\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n\n return null;\n}\n\nfunction elementMatches(el, selector) {\n var method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n} // accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\n\n\nfunction findElements(container, selector) {\n var containers = container instanceof HTMLElement ? [container] : container;\n var allMatches = [];\n\n for (var i = 0; i < containers.length; i += 1) {\n var matches = containers[i].querySelectorAll(selector);\n\n for (var j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n\n return allMatches;\n} // accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\n\n\nfunction findDirectChildren(parent, selector) {\n var parents = parent instanceof HTMLElement ? [parent] : parent;\n var allMatches = [];\n\n for (var i = 0; i < parents.length; i += 1) {\n var childNodes = parents[i].children; // only ever elements\n\n for (var j = 0; j < childNodes.length; j += 1) {\n var childNode = childNodes[j];\n\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n\n return allMatches;\n} // Style\n// ----------------------------------------------------------------------------------------------------------------\n\n\nvar PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\n\nfunction applyStyle(el, props) {\n for (var propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\n\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n } else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = val + \"px\";\n } else {\n el.style[name] = val;\n }\n} // Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\n\n\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n} // Shadow DOM consuderations\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction getElRoot(el) {\n return el.getRootNode ? el.getRootNode() : document;\n} // Unique ID for DOM attribute\n\n\nvar guid$1 = 0;\n\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n} // Stops a mouse/touch event from doing it's native browser action\n\n\nfunction preventDefault(ev) {\n ev.preventDefault();\n} // Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction buildDelegationHandler(selector, handler) {\n return function (ev) {\n var matchedChild = elementClosest(ev.target, selector);\n\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n };\n}\n\nfunction listenBySelector(container, eventType, selector, handler) {\n var attachedHandler = buildDelegationHandler(selector, handler);\n container.addEventListener(eventType, attachedHandler);\n return function () {\n container.removeEventListener(eventType, attachedHandler);\n };\n}\n\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n var currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, function (mouseOverEv, matchedChild) {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(mouseOverEv, matchedChild);\n\n var realOnMouseLeave_1 = function realOnMouseLeave_1(mouseLeaveEv) {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n }; // listen to the next mouseleave, and then unattach\n\n\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n} // Animation\n// ----------------------------------------------------------------------------------------------------------------\n\n\nvar transitionEventNames = ['webkitTransitionEnd', 'otransitionend', 'oTransitionEnd', 'msTransitionEnd', 'transitionend']; // triggered only when the next single subsequent transition finishes\n\nfunction whenTransitionDone(el, callback) {\n var realCallback = function realCallback(ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n} // ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\n\n\nfunction createAriaClickAttrs(handler) {\n return __assign({\n onClick: handler\n }, createAriaKeyboardAttrs(handler));\n}\n\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown: function onKeyDown(ev) {\n if (ev.key === 'Enter' || ev.key === ' ') {\n handler(ev);\n ev.preventDefault(); // if space, don't scroll down page\n }\n }\n };\n}\n\nvar guidNumber = 0;\n\nfunction guid() {\n guidNumber += 1;\n return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\n\n\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n} // Returns the mouse cursor to its original look\n\n\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\n\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\n\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\n\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n } else if (typeof input === 'function') {\n tokens = [input];\n } else if (Array.isArray(input)) {\n tokens = input;\n }\n\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ? {\n field: token.substring(1),\n order: -1\n } : {\n field: token,\n order: 1\n });\n } else if (typeof token === 'function') {\n specs.push({\n func: token\n });\n }\n }\n\n return specs;\n}\n\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n\n if (cmp) {\n return cmp;\n }\n }\n\n return 0;\n}\n\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) * (fieldSpec.order || 1);\n}\n\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n\n if (b == null) {\n return -1;\n }\n\n if (a == null) {\n return 1;\n }\n\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\n\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter.apply(void 0, args);\n }\n\n if (typeof formatter === 'string') {\n // non-blank string\n return args.reduce(function (str, arg, index) {\n return str.replace('$' + index, arg || '');\n }, formatter);\n }\n\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\n\n\nfunction computeSmallestCellWidth(cellEl) {\n var allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n var contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\n }\n\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width;\n}\n\nvar DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; // Adding\n\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\n\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\n\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n} // Diffing (all return floats)\n// TODO: why not use ranges?\n\n\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\n\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\n\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\n\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\n\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\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} // Diffing Whole Units\n\n\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n\n return null;\n}\n\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n\n return null;\n} // Start-Of\n\n\nfunction startOfDay(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate()]);\n}\n\nfunction startOfHour(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours()]);\n}\n\nfunction startOfMinute(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes()]);\n}\n\nfunction startOfSecond(m) {\n return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes(), m.getUTCSeconds()]);\n} // Week Computation\n\n\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n\n return w;\n}\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} // start-of-first-week - start-of-year\n\n\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; // first-week day local weekday -- which local weekday is fwd\n\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n} // Array Conversion\n\n\nfunction dateToLocalArray(date) {\n return [date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 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}\n\nfunction dateToUtcArray(date) {\n return [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), 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\n return new Date(Date.UTC.apply(Date, a));\n} // Other Utils\n\n\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\n\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 + m.getUTCMinutes() * 1000 * 60 + m.getUTCSeconds() * 1000 + m.getUTCMilliseconds();\n}\n\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: guid(),\n defId: defId,\n range: range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n };\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty; // 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.\n\nfunction mergeProps(propObjs, complexPropsMap) {\n var dest = {};\n\n if (complexPropsMap) {\n for (var name_1 in complexPropsMap) {\n var complexObjs = []; // collect the trailing object values, stopping when a non-object is discovered\n\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var val = propObjs[i][name_1];\n\n if (_typeof(val) === 'object' && val) {\n // non-null object\n complexObjs.unshift(val);\n } else if (val !== undefined) {\n dest[name_1] = val; // if there were no objects, this value will be used\n\n break;\n }\n } // if the trailing values were objects, use the merged value\n\n\n if (complexObjs.length) {\n dest[name_1] = mergeProps(complexObjs);\n }\n }\n } // copy values into the destination, going from last to first\n\n\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var props = propObjs[i];\n\n for (var name_2 in props) {\n if (!(name_2 in dest)) {\n // if already assigned by previous props or complex props, don't reassign\n dest[name_2] = props[name_2];\n }\n }\n }\n\n return dest;\n}\n\nfunction filterHash(hash, func) {\n var filtered = {};\n\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n\n return filtered;\n}\n\nfunction mapHash(hash, func) {\n var newHash = {};\n\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n\n return newHash;\n}\n\nfunction arrayToHash(a) {\n var hash = {};\n\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\n return hash;\n}\n\nfunction buildHashFromArray(a, func) {\n var hash = {};\n\n for (var i = 0; i < a.length; i += 1) {\n var tuple = func(a[i], i);\n hash[tuple[0]] = tuple[1];\n }\n\n return hash;\n}\n\nfunction hashValuesToArray(obj) {\n var a = [];\n\n for (var key in obj) {\n a.push(obj[key]);\n }\n\n return a;\n}\n\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\n }\n\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\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\n return true;\n}\n\nfunction getUnequalProps(obj0, obj1) {\n var keys = [];\n\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key);\n }\n }\n }\n\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key);\n }\n }\n }\n\n return keys;\n}\n\nfunction compareObjs(oldProps, newProps, equalityFuncs) {\n if (equalityFuncs === void 0) {\n equalityFuncs = {};\n }\n\n if (oldProps === newProps) {\n return true;\n }\n\n for (var key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;else {\n return false;\n }\n } // check for props that were omitted in the new\n\n\n for (var key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\n\n\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n\n if (comparator) {\n return comparator(val0, val1);\n }\n\n return false;\n}\n\nfunction collectFromHash(hash, startIndex, endIndex, step) {\n if (startIndex === void 0) {\n startIndex = 0;\n }\n\n if (step === void 0) {\n step = 1;\n }\n\n var res = [];\n\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n\n for (var i = startIndex; i < endIndex; i += step) {\n var val = hash[i];\n\n if (val !== undefined) {\n // will disregard undefined for sparse arrays\n res.push(val);\n }\n }\n\n return res;\n}\n\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n for (var i = 0; i < recurringTypes.length; i += 1) {\n var parsed = recurringTypes[i].parse(refined, dateEnv);\n\n if (parsed) {\n var allDay = refined.allDay;\n\n if (allDay == null) {\n allDay = defaultAllDay;\n\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i\n };\n }\n }\n\n return null;\n}\n\nfunction expandRecurring(eventStore, framingRange, context) {\n var dateEnv = context.dateEnv,\n pluginHooks = context.pluginHooks,\n options = context.options;\n var defs = eventStore.defs,\n instances = eventStore.instances; // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n\n instances = filterHash(instances, function (instance) {\n return !defs[instance.defId].recurringDef;\n });\n\n for (var defId in defs) {\n var def = defs[defId];\n\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n\n if (!duration) {\n duration = def.allDay ? options.defaultAllDayEventDuration : options.defaultTimedEventDuration;\n }\n\n var starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n\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\n return {\n defs: defs,\n instances: instances\n };\n}\n/*\nEvent MUST have a recurringDef\n*/\n\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); // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n\n return markers;\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/; // Parsing and Creation\n\nfunction createDuration(input, unit) {\n var _a;\n\n if (typeof input === 'string') {\n return parseString(input);\n }\n\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return parseObject(input);\n }\n\n if (typeof input === 'number') {\n return parseObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n\n return null;\n}\n\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n\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\n return null;\n}\n\nfunction parseObject(obj) {\n var duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\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 };\n var weeks = obj.weeks || obj.week;\n\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n\n return duration;\n} // Equality\n\n\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years && d0.months === d1.months && d0.days === d1.days && d0.milliseconds === d1.milliseconds;\n}\n\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n\n return 0;\n} // Simple Math\n\n\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}\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}\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} // Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\n\n\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\n\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\n\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\n\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\n\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\n\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) + dur.months * (30 * 864e5) + dur.days * 864e5 + dur.milliseconds;\n} // Advanced Math\n\n\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n\n for (var i = 0; i < INTERNAL_UNITS.length; i += 1) {\n var unit = INTERNAL_UNITS[i];\n\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n\n if (!isInt(localRes) || res !== null && res !== localRes) {\n return null;\n }\n\n res = localRes;\n } else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n\n return res;\n}\n\nfunction greatestDurationDenominator(dur) {\n var ms = dur.milliseconds;\n\n if (ms) {\n if (ms % 1000 !== 0) {\n return {\n unit: 'millisecond',\n value: ms\n };\n }\n\n if (ms % (1000 * 60) !== 0) {\n return {\n unit: 'second',\n value: ms / 1000\n };\n }\n\n if (ms % (1000 * 60 * 60) !== 0) {\n return {\n unit: 'minute',\n value: ms / (1000 * 60)\n };\n }\n\n if (ms) {\n return {\n unit: 'hour',\n value: ms / (1000 * 60 * 60)\n };\n }\n }\n\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return {\n unit: 'week',\n value: dur.days / 7\n };\n }\n\n return {\n unit: 'day',\n value: dur.days\n };\n }\n\n if (dur.months) {\n return {\n unit: 'month',\n value: dur.months\n };\n }\n\n if (dur.years) {\n return {\n unit: 'year',\n value: dur.years\n };\n }\n\n return {\n unit: 'millisecond',\n value: 0\n };\n} // timeZoneOffset is in minutes\n\n\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) {\n stripZeroTime = false;\n }\n\n var s = marker.toISOString();\n s = s.replace('.000', '');\n\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n\n if (s.length > 10) {\n // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n } else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n } // otherwise, its UTC-0 and we want to keep the Z\n\n }\n\n return s;\n} // formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\n\n\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n} // TODO: use Date::toISOString and use everything after the T?\n\n\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' + padStart(marker.getUTCMinutes(), 2) + ':' + padStart(marker.getUTCSeconds(), 2);\n}\n\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) {\n doIso = false;\n }\n\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\n if (doIso) {\n return sign + padStart(hours, 2) + \":\" + padStart(mins, 2);\n }\n\n return \"GMT\" + sign + hours + (mins ? \":\" + padStart(mins, 2) : '');\n} // TODO: new util arrayify?\n\n\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n } else {\n i += 1;\n }\n }\n\n return removeCnt;\n}\n\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n\n var len = a0.length;\n var i;\n\n if (len !== a1.length) {\n // not array? or not same length?\n return false;\n }\n\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n var currentArgs;\n var currentRes;\n return function () {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n } else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n\n var res = workerFunc.apply(this, newArgs);\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n\n currentArgs = newArgs;\n return currentRes;\n };\n}\n\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArg;\n var currentRes;\n return function (newArg) {\n if (!currentArg) {\n currentRes = workerFunc.call(_this, newArg);\n } else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n\n var res = workerFunc.call(_this, newArg);\n\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n\n currentArg = newArg;\n return currentRes;\n };\n}\n\nfunction memoizeArraylike( // used at all?\nworkerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArgSets = [];\n var currentResults = [];\n return function (newArgSets) {\n var currentLen = currentArgSets.length;\n var newLen = newArgSets.length;\n var i = 0;\n\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) {\n // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n } else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n\n var res = workerFunc.apply(_this, newArgSets[i]);\n\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(_this, newArgSets[i]);\n }\n\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n\n return currentResults;\n };\n}\n\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n var _this = this;\n\n var currentArgHash = {};\n var currentResHash = {};\n return function (newArgHash) {\n var newResHash = {};\n\n for (var key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(_this, newArgHash[key]);\n } else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n\n var res = workerFunc.apply(_this, newArgHash[key]);\n newResHash[key] = resEquality && resEquality(res, currentResHash[key]) ? currentResHash[key] : res;\n } else {\n newResHash[key] = currentResHash[key];\n }\n }\n\n currentArgHash = newArgHash;\n currentResHash = newResHash;\n return newResHash;\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\n\nvar COMMA_RE = /,/g; // we need re for globalness\n\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\n\nvar UTC_RE = /UTC|GMT/;\n\nvar NativeFormatter =\n/** @class */\nfunction () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n\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 } else {\n standardDateProps[name_1] = formatSettings[name_1];\n\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) {\n // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n\n NativeFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n var _a = this,\n standardDateProps = _a.standardDateProps,\n extendedSettings = _a.extendedSettings;\n\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n\n if (!diffSeverity) {\n return this.format(start, context);\n }\n\n var biggestUnitForPartial = diffSeverity;\n\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') && (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && (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\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n\n if (full0 === full1) {\n return full0;\n }\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 || betterDefaultSeparator || context.defaultSeparator || '';\n\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n\n return full0 + separator + full1;\n };\n\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n\n case 4:\n return 'month';\n\n case 3:\n return 'week';\n\n case 2:\n return 'day';\n\n default:\n return 'time';\n // really?\n }\n };\n\n return NativeFormatter;\n}();\n\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) {\n return formatTimeZoneOffset(date.timeZoneOffset);\n };\n }\n\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) {\n return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week);\n };\n }\n\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\n\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n\n extendedSettings = __assign({}, extendedSettings); // copy\n\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n\n return function (date) {\n var marker = date.marker;\n var format;\n\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n } else {\n format = normalFormat;\n }\n\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\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\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n } // only support short timezone names\n\n\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n } // if requesting to display seconds, MUST display minutes\n\n\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\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\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, context.timeZone === 'UTC' || date.timeZoneOffset == null ? 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n } // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n\n\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n } else if (extendedSettings.meridiem === 'narrow') {\n // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase();\n });\n } else if (extendedSettings.meridiem === 'short') {\n // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase() + \"m\";\n });\n } else if (extendedSettings.meridiem === 'lowercase') {\n // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) {\n return m0.toLocaleLowerCase();\n });\n }\n\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\n\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n }); // IE11 doesn't include UTC/GMT in the original string, so append to end\n\n if (!replaced) {\n s += \" \" + tzoStr;\n }\n\n return s;\n}\n\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n var parts = [];\n\n if (display === 'long') {\n parts.push(weekTextLong);\n } else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n\n parts.push(locale.simpleNumberFormat.format(num));\n\n if (locale.options.direction === 'rtl') {\n // TODO: use control characters instead?\n parts.reverse();\n }\n\n return parts.join('');\n} // Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\n\n\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n\n return 0;\n}\n\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n\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\n return partialOptions;\n}\n\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n\n if (found0 === -1) {\n break;\n }\n\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n\n if (found1 === -1) {\n break;\n }\n\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0\n };\n }\n }\n }\n\n return null;\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\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\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 defaultSeparator: betterDefaultSeparator || context.defaultSeparator\n };\n}\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\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*/\n\n\nvar CmdFormatter =\n/** @class */\nfunction () {\n function CmdFormatter(cmdStr) {\n this.cmdStr = cmdStr;\n }\n\n CmdFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n\n CmdFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n\n return CmdFormatter;\n}();\n\nvar FuncFormatter =\n/** @class */\nfunction () {\n function FuncFormatter(func) {\n this.func = func;\n }\n\n FuncFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n\n FuncFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n\n return FuncFormatter;\n}();\n\nfunction createFormatter(input) {\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return new NativeFormatter(input);\n }\n\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n\n return null;\n} // base options\n// ------------\n\n\nvar BASE_OPTION_REFINERS = {\n navLinkDayClick: identity,\n navLinkWeekClick: identity,\n duration: createDuration,\n bootstrapFontAwesome: identity,\n buttonIcons: identity,\n customButtons: identity,\n defaultAllDayEventDuration: createDuration,\n defaultTimedEventDuration: createDuration,\n nextDayThreshold: createDuration,\n scrollTime: createDuration,\n scrollTimeReset: Boolean,\n slotMinTime: createDuration,\n slotMaxTime: createDuration,\n dayPopoverFormat: createFormatter,\n slotDuration: createDuration,\n snapDuration: createDuration,\n headerToolbar: identity,\n footerToolbar: identity,\n defaultRangeSeparator: String,\n titleRangeSeparator: String,\n forceEventDuration: Boolean,\n dayHeaders: Boolean,\n dayHeaderFormat: createFormatter,\n dayHeaderClassNames: identity,\n dayHeaderContent: identity,\n dayHeaderDidMount: identity,\n dayHeaderWillUnmount: identity,\n dayCellClassNames: identity,\n dayCellContent: identity,\n dayCellDidMount: identity,\n dayCellWillUnmount: identity,\n initialView: String,\n aspectRatio: Number,\n weekends: Boolean,\n weekNumberCalculation: identity,\n weekNumbers: Boolean,\n weekNumberClassNames: identity,\n weekNumberContent: identity,\n weekNumberDidMount: identity,\n weekNumberWillUnmount: identity,\n editable: Boolean,\n viewClassNames: identity,\n viewDidMount: identity,\n viewWillUnmount: identity,\n nowIndicator: Boolean,\n nowIndicatorClassNames: identity,\n nowIndicatorContent: identity,\n nowIndicatorDidMount: identity,\n nowIndicatorWillUnmount: identity,\n showNonCurrentDates: Boolean,\n lazyFetching: Boolean,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n timeZone: String,\n locales: identity,\n locale: identity,\n themeSystem: String,\n dragRevertDuration: Number,\n dragScroll: Boolean,\n allDayMaintainDuration: Boolean,\n unselectAuto: Boolean,\n dropAccept: identity,\n eventOrder: parseFieldSpecs,\n eventOrderStrict: Boolean,\n handleWindowResize: Boolean,\n windowResizeDelay: Number,\n longPressDelay: Number,\n eventDragMinDistance: Number,\n expandRows: Boolean,\n height: identity,\n contentHeight: identity,\n direction: String,\n weekNumberFormat: createFormatter,\n eventResizableFromStart: Boolean,\n displayEventTime: Boolean,\n displayEventEnd: Boolean,\n weekText: String,\n weekTextLong: String,\n progressiveEventRendering: Boolean,\n businessHours: identity,\n initialDate: identity,\n now: identity,\n eventDataTransform: identity,\n stickyHeaderDates: identity,\n stickyFooterScrollbar: identity,\n viewHeight: identity,\n defaultAllDay: Boolean,\n eventSourceFailure: identity,\n eventSourceSuccess: identity,\n eventDisplay: String,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventOverlap: identity,\n eventConstraint: identity,\n eventAllow: identity,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n eventClassNames: identity,\n eventContent: identity,\n eventDidMount: identity,\n eventWillUnmount: identity,\n selectConstraint: identity,\n selectOverlap: identity,\n selectAllow: identity,\n droppable: Boolean,\n unselectCancel: String,\n slotLabelFormat: identity,\n slotLaneClassNames: identity,\n slotLaneContent: identity,\n slotLaneDidMount: identity,\n slotLaneWillUnmount: identity,\n slotLabelClassNames: identity,\n slotLabelContent: identity,\n slotLabelDidMount: identity,\n slotLabelWillUnmount: identity,\n dayMaxEvents: identity,\n dayMaxEventRows: identity,\n dayMinWidth: Number,\n slotLabelInterval: createDuration,\n allDayText: String,\n allDayClassNames: identity,\n allDayContent: identity,\n allDayDidMount: identity,\n allDayWillUnmount: identity,\n slotMinWidth: Number,\n navLinks: Boolean,\n eventTimeFormat: createFormatter,\n rerenderDelay: Number,\n moreLinkText: identity,\n moreLinkHint: identity,\n selectMinDistance: Number,\n selectable: Boolean,\n selectLongPressDelay: Number,\n eventLongPressDelay: Number,\n selectMirror: Boolean,\n eventMaxStack: Number,\n eventMinHeight: Number,\n eventMinWidth: Number,\n eventShortHeight: Number,\n slotEventOverlap: Boolean,\n plugins: identity,\n firstDay: Number,\n dayCount: Number,\n dateAlignment: String,\n dateIncrement: createDuration,\n hiddenDays: identity,\n monthMode: Boolean,\n fixedWeekCount: Boolean,\n validRange: identity,\n visibleRange: identity,\n titleFormat: identity,\n eventInteractive: Boolean,\n // only used by list-view, but languages define the value, so we need it in base options\n noEventsText: String,\n viewHint: identity,\n navLinkHint: identity,\n closeHint: String,\n timeHint: String,\n eventHint: String,\n moreLinkClick: identity,\n moreLinkClassNames: identity,\n moreLinkContent: identity,\n moreLinkDidMount: identity,\n moreLinkWillUnmount: identity\n}; // do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\n\nvar BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: \" \\u2013 \",\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: {\n day: 1\n },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n dayHeaders: true,\n initialView: '',\n aspectRatio: 1.35,\n headerToolbar: {\n start: 'title',\n center: '',\n end: '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 scrollTimeReset: true,\n slotMinTime: '00:00:00',\n slotMaxTime: '24:00:00',\n showNonCurrentDates: true,\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n locales: [],\n locale: '',\n themeSystem: 'standard',\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n unselectAuto: true,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n dayPopoverFormat: {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5,\n expandRows: false,\n navLinks: false,\n selectable: false,\n eventMinHeight: 15,\n eventMinWidth: 30,\n eventShortHeight: 30\n}; // calendar listeners\n// ------------------\n\nvar CALENDAR_LISTENER_REFINERS = {\n datesSet: identity,\n eventsSet: identity,\n eventAdd: identity,\n eventChange: identity,\n eventRemove: identity,\n windowResize: identity,\n eventClick: identity,\n eventMouseEnter: identity,\n eventMouseLeave: identity,\n select: identity,\n unselect: identity,\n loading: identity,\n // internal\n _unmount: identity,\n _beforeprint: identity,\n _afterprint: identity,\n _noEventDrop: identity,\n _noEventResize: identity,\n _resize: identity,\n _scrollRequest: identity\n}; // calendar-specific options\n// -------------------------\n\nvar CALENDAR_OPTION_REFINERS = {\n buttonText: identity,\n buttonHints: identity,\n views: identity,\n plugins: identity,\n initialEvents: identity,\n events: identity,\n eventSources: identity\n};\nvar COMPLEX_OPTION_COMPARATORS = {\n headerToolbar: isMaybeObjectsEqual,\n footerToolbar: isMaybeObjectsEqual,\n buttonText: isMaybeObjectsEqual,\n buttonHints: isMaybeObjectsEqual,\n buttonIcons: isMaybeObjectsEqual,\n dateIncrement: isMaybeObjectsEqual\n};\n\nfunction isMaybeObjectsEqual(a, b) {\n if (_typeof(a) === 'object' && _typeof(b) === 'object' && a && b) {\n // both non-null objects\n return isPropsEqual(a, b);\n }\n\n return a === b;\n} // view-specific options\n// ---------------------\n\n\nvar VIEW_OPTION_REFINERS = {\n type: String,\n component: identity,\n buttonText: String,\n buttonTextKey: String,\n dateProfileGeneratorClass: identity,\n usesMinMaxTime: Boolean,\n classNames: identity,\n content: identity,\n didMount: identity,\n willUnmount: identity\n}; // util funcs\n// ----------------------------------------------------------------------------------------------------\n\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\n\nfunction refineProps(input, refiners) {\n var refined = {};\n var extra = {};\n\n for (var propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n\n for (var propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n\n return {\n refined: refined,\n extra: extra\n };\n}\n\nfunction identity(raw) {\n return raw;\n}\n\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange) {\n var eventStore = createEmptyEventStore();\n var eventRefiners = buildEventRefiners(context);\n\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners);\n\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n\n return eventStore;\n}\n\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) {\n eventStore = createEmptyEventStore();\n }\n\n eventStore.defs[tuple.def.defId] = tuple.def;\n\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n\n return eventStore;\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?\n\n\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n\n if (instance) {\n var def_1 = eventStore.defs[instance.defId]; // get events/instances with same group\n\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) {\n return isEventDefsGrouped(def_1, lookDef);\n }); // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n\n return createEmptyEventStore();\n}\n\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\n\nfunction createEmptyEventStore() {\n return {\n defs: {},\n instances: {}\n };\n}\n\nfunction mergeEventStores(store0, store1) {\n return {\n defs: __assign(__assign({}, store0.defs), store1.defs),\n instances: __assign(__assign({}, store0.instances), store1.instances)\n };\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 });\n return {\n defs: defs,\n instances: instances\n };\n}\n\nfunction excludeSubEventStore(master, sub) {\n var defs = master.defs,\n instances = master.instances;\n var filteredDefs = {};\n var filteredInstances = {};\n\n for (var defId in defs) {\n if (!sub.defs[defId]) {\n // not explicitly excluded\n filteredDefs[defId] = defs[defId];\n }\n }\n\n for (var instanceId in instances) {\n if (!sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId];\n }\n }\n\n return {\n defs: filteredDefs,\n instances: filteredInstances\n };\n}\n\nfunction normalizeConstraint(input, context) {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true); // allowOpenRange=true\n }\n\n if (_typeof(input) === 'object' && input) {\n // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n\n if (input != null) {\n return String(input);\n }\n\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n\n return [];\n} // TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\n\n\nvar EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity,\n overlap: identity,\n allow: identity,\n className: parseClassNames,\n classNames: parseClassNames,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String\n};\nvar EMPTY_EVENT_UI = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n};\n\nfunction createEventUi(refined, context) {\n var constraint = normalizeConstraint(refined.constraint, context);\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []) // join singular and plural\n\n };\n} // TODO: prevent against problems with <2 args!\n\n\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\n\nfunction combineTwoEventUis(item0, item1) {\n return {\n display: item1.display != null ? item1.display : item0.display,\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 EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n interactive: Boolean\n};\nvar EVENT_DATE_REFINERS = {\n start: identity,\n end: identity,\n date: identity,\n allDay: Boolean\n};\n\nvar EVENT_REFINERS = __assign(__assign(__assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), {\n extendedProps: identity\n});\n\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners) {\n if (refiners === void 0) {\n refiners = buildEventRefiners(context);\n }\n\n var _a = refineEventDef(raw, context, refiners),\n refined = _a.refined,\n extra = _a.extra;\n\n var defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n var recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n\n if (recurringRes) {\n var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration\n };\n return {\n def: def,\n instance: null\n };\n }\n\n var singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n\n if (singleRes) {\n var def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context);\n var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n return {\n def: def,\n instance: instance\n };\n }\n\n return null;\n}\n\nfunction refineEventDef(raw, context, refiners) {\n if (refiners === void 0) {\n refiners = buildEventRefiners(context);\n }\n\n return refineProps(raw, refiners);\n}\n\nfunction buildEventRefiners(context) {\n return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\n\n\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context) {\n var def = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: guid(),\n sourceId: sourceId,\n allDay: allDay,\n hasEnd: hasEnd,\n interactive: refined.interactive,\n ui: createEventUi(refined, context),\n extendedProps: __assign(__assign({}, refined.extendedProps || {}), extra)\n };\n\n for (var _i = 0, _a = context.pluginHooks.eventDefMemberAdders; _i < _a.length; _i++) {\n var memberAdder = _a[_i];\n\n __assign(def, memberAdder(refined));\n } // help out EventApi from having user modify props\n\n\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\n\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n var allDay = refined.allDay;\n var startMeta;\n var startMarker = null;\n var hasEnd = false;\n var endMeta;\n var endMarker = null;\n var startInput = refined.start != null ? refined.start : refined.date;\n startMeta = context.dateEnv.createMarkerMeta(startInput);\n\n if (startMeta) {\n startMarker = startMeta.marker;\n } else if (!allowOpenRange) {\n return null;\n }\n\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n } else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) && (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n\n if (endMeta) {\n endMarker = endMeta.marker;\n\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n\n if (endMarker) {\n hasEnd = true;\n } else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ? context.options.defaultAllDayEventDuration : context.options.defaultTimedEventDuration);\n }\n\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: {\n start: startMarker,\n end: endMarker\n },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n };\n}\n\nfunction computeIsDefaultAllDay(eventSource, context) {\n var res = null;\n\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n\n return res;\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.\n\n\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 {\n start: start,\n 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\n\n\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) {\n nextDayThreshold = createDuration(0);\n }\n\n var startDay = null;\n var endDay = null;\n\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\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\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\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n\n return {\n start: startDay,\n end: endDay\n };\n} // spans from one day into another?\n\n\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\n\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n\n if (!start && !end) {\n return null;\n }\n\n if (start && end && end < start) {\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n} // SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\n\n\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\n var i;\n var dateRange; // ranges need to be in order. required for our date-walking algorithm\n\n ranges.sort(compareRanges);\n\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i]; // add the span of time before the event (if there is any)\n\n if (dateRange.start > start) {\n // compare millisecond time (skip any ambig logic)\n invertedRanges.push({\n start: start,\n end: dateRange.start\n });\n }\n\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n } // add the span of time after the last event (if there is any)\n\n\n if (start < constraintRange.end) {\n // compare millisecond time (skip any ambig logic)\n invertedRanges.push({\n start: start,\n end: constraintRange.end\n });\n }\n\n return invertedRanges;\n}\n\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\n\nfunction intersectRanges(range0, range1) {\n var start = range0.start,\n end = range0.end;\n var newRange = null;\n\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n } else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n } else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n\n if (start === null || end === null || start < end) {\n newRange = {\n start: start,\n end: end\n };\n }\n\n return newRange;\n}\n\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\n\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) && (range0.start === null || range1.end === null || range0.start < range1.end);\n}\n\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || innerRange.start !== null && innerRange.start >= outerRange.start) && (outerRange.end === null || innerRange.end !== null && innerRange.end <= outerRange.end);\n}\n\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) && (range.end === null || date < range.end);\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).\n\n\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n\n return date;\n}\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\n\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\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n var ui = eventUis[def.defId];\n\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n } else {\n inverseBgByDefId[defId] = [];\n }\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 ? computeVisibleDayRange(origRange, nextDayThreshold) : origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n } else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n } else if (ui.display !== 'none') {\n (ui.display === '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\n for (var groupId in inverseBgByGroupId) {\n // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n\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\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n\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\n return {\n bg: bgRanges,\n fg: fgRanges\n };\n}\n\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\n\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\n\nfunction getElSeg(el) {\n return el.fcSeg || el.parentNode.fcSeg || // for the harness\n null;\n} // event ui computation\n\n\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) {\n return compileEventUi(eventDef, eventUiBases);\n });\n}\n\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\n\nfunction sortEventSegs(segs, eventOrderSpecs) {\n var objs = segs.map(buildSegCompareObj);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, eventOrderSpecs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n} // returns a object with all primitive props that can be compared\n\n\nfunction buildSegCompareObj(seg) {\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n\n var end = range.end ? range.end.valueOf() : 0; // \"\n\n return __assign(__assign(__assign({}, eventDef.extendedProps), eventDef), {\n id: eventDef.publicId,\n start: start,\n end: end,\n duration: end - start,\n allDay: Number(eventDef.allDay),\n _seg: seg\n });\n}\n\nfunction computeSegDraggable(seg, context) {\n var pluginHooks = context.pluginHooks;\n var transformers = pluginHooks.isDraggableTransformers;\n var _a = seg.eventRange,\n def = _a.def,\n ui = _a.ui;\n var val = ui.startEditable;\n\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n val = transformer(val, def, ui, context);\n }\n\n return val;\n}\n\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\n\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\n\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var displayEventTime = options.displayEventTime,\n displayEventEnd = options.displayEventEnd;\n var eventDef = seg.eventRange.def;\n var eventInstance = seg.eventRange.instance;\n\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\n }\n\n var wholeEventStart = eventInstance.range.start;\n var wholeEventEnd = eventInstance.range.end;\n var segStart = startOverride || seg.start || seg.eventRange.range.start;\n var segEnd = endOverride || seg.end || seg.eventRange.range.end;\n var isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n var isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\n\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo\n });\n }\n\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo // nooooo, same\n\n });\n }\n\n return '';\n}\n\nfunction getSegMeta(seg, todayRange, nowDate) {\n var segRange = seg.eventRange.range;\n return {\n isPast: segRange.end < (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start)\n };\n}\n\nfunction getEventClassNames(props) {\n var classNames = ['fc-event'];\n\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n\n return classNames;\n}\n\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance ? eventRange.instance.instanceId : eventRange.def.defId + \":\" + eventRange.range.start.toISOString(); // inverse-background events don't have specific instances. TODO: better solution\n}\n\nfunction getSegAnchorAttrs(seg, context) {\n var _a = seg.eventRange,\n def = _a.def,\n instance = _a.instance;\n var url = def.url;\n\n if (url) {\n return {\n href: url\n };\n }\n\n var emitter = context.emitter,\n options = context.options;\n var eventInteractive = options.eventInteractive;\n\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n } // mock what happens in EventClicking\n\n\n if (eventInteractive) {\n // only attach keyboard-related handlers because click handler is already done in EventClicking\n return createAriaKeyboardAttrs(function (ev) {\n emitter.trigger('eventClick', {\n el: ev.target,\n event: new EventApi(context, def, instance),\n jsEvent: ev,\n view: context.viewApi\n });\n });\n }\n\n return {};\n}\n\nvar STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean\n};\n\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n\n if (!range.start) {\n return null;\n }\n\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n\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*/\n\n\nfunction parseOpenDateSpan(raw, dateEnv) {\n var _a = refineProps(raw, STANDARD_PROPS),\n standardProps = _a.refined,\n extra = _a.extra;\n\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\n if (allDay == null) {\n allDay = startMeta && startMeta.isTimeUnspecified && (!endMeta || endMeta.isTimeUnspecified);\n }\n\n return __assign({\n range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null\n },\n allDay: allDay\n }, extra);\n}\n\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) && span0.allDay === span1.allDay && isSpanPropsEqual(span0, span1);\n} // the NON-DATE-RELATED props\n\n\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 } // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n\n\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction buildDateSpanApi(span, dateEnv) {\n return __assign(__assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), {\n allDay: span.allDay\n });\n}\n\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return __assign(__assign({}, buildRangeApi(range, dateEnv, omitTime)), {\n timeZone: dateEnv.timeZone\n });\n}\n\nfunction buildRangeApi(range, dateEnv, omitTime) {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, {\n omitTime: omitTime\n }),\n endStr: dateEnv.formatIso(range.end, {\n omitTime: omitTime\n })\n };\n}\n\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n var res = refineEventDef({\n editable: false\n }, context);\n var def = parseEventDef(res.refined, res.extra, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n context);\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 triggerDateSelect(selection, pev, context) {\n context.emitter.trigger('select', __assign(__assign({}, buildDateSpanApiWithContext(selection, context)), {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view\n }));\n}\n\nfunction triggerDateUnselect(pev, context) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view\n });\n}\n\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n var props = {};\n\n for (var _i = 0, _a = context.pluginHooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n\n __assign(props, transform(dateSpan, context));\n }\n\n __assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n\n return props;\n} // Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\n\n\nfunction getDefaultEventEnd(allDay, marker, context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var end = marker;\n\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n } else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n\n return end;\n} // applies the mutation to ALL defs/instances within the event store\n\n\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\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\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n\n return dest;\n}\n\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n var standardProps = mutation.standardProps || {}; // 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\n if (standardProps.hasEnd == null && eventConfig.durationEditable && (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n\n var copy = __assign(__assign(__assign({}, eventDef), standardProps), {\n ui: __assign(__assign({}, eventDef.ui), standardProps.ui)\n });\n\n if (mutation.extendedProps) {\n copy.extendedProps = __assign(__assign({}, copy.extendedProps), mutation.extendedProps);\n }\n\n for (var _i = 0, _a = context.pluginHooks.eventDefMutationAppliers; _i < _a.length; _i++) {\n var applier = _a[_i];\n applier(copy, mutation, context);\n }\n\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n\n return copy;\n}\n\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n var dateEnv = context.dateEnv;\n var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n\n var copy = __assign({}, eventInstance);\n\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\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\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\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\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context)\n };\n } // in case event was all-day but the supplied deltas were not\n // better util for this?\n\n\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end)\n };\n } // handle invalid durations\n\n\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n\n return copy;\n} // no public types yet. when there are, export from:\n// import {} from './api-type-deps'\n\n\nvar ViewApi =\n/** @class */\nfunction () {\n function ViewApi(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n\n Object.defineProperty(ViewApi.prototype, \"calendar\", {\n get: function get() {\n return this.getCurrentData().calendarApi;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"title\", {\n get: function get() {\n return this.getCurrentData().viewTitle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"activeStart\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"activeEnd\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"currentStart\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"currentEnd\", {\n get: function get() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n },\n enumerable: false,\n configurable: true\n });\n\n ViewApi.prototype.getOption = function (name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n };\n\n return ViewApi;\n}();\n\nvar EVENT_SOURCE_REFINERS = {\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity,\n eventDataTransform: identity,\n // for any network-related sources\n success: identity,\n failure: identity\n};\n\nfunction parseEventSource(raw, context, refiners) {\n if (refiners === void 0) {\n refiners = buildEventSourceRefiners(context);\n }\n\n var rawObj;\n\n if (typeof raw === 'string') {\n rawObj = {\n url: raw\n };\n } else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = {\n events: raw\n };\n } else if (_typeof(raw) === 'object' && raw) {\n // not null\n rawObj = raw;\n }\n\n if (rawObj) {\n var _a = refineProps(rawObj, refiners),\n refined = _a.refined,\n extra = _a.extra;\n\n var metaRes = buildEventSourceMeta(refined, context);\n\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra\n };\n }\n }\n\n return null;\n}\n\nfunction buildEventSourceRefiners(context) {\n return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\n\nfunction buildEventSourceMeta(raw, context) {\n var defs = context.pluginHooks.eventSourceDefs;\n\n for (var i = defs.length - 1; i >= 0; i -= 1) {\n // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n\n if (meta) {\n return {\n sourceDefId: i,\n meta: meta\n };\n }\n }\n\n return null;\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n\n default:\n return currentDate;\n }\n}\n\nfunction getInitialDate(options, dateEnv) {\n var initialDateInput = options.initialDate; // compute the initial ambig-timezone date\n\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\n\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n\n return dateEnv.createMarker(nowInput);\n}\n\nvar CalendarApi =\n/** @class */\nfunction () {\n function CalendarApi() {}\n\n CalendarApi.prototype.getCurrentData = function () {\n return this.currentDataManager.getCurrentData();\n };\n\n CalendarApi.prototype.dispatch = function (action) {\n return this.currentDataManager.dispatch(action);\n };\n\n Object.defineProperty(CalendarApi.prototype, \"view\", {\n get: function get() {\n return this.getCurrentData().viewApi;\n } // for public API\n ,\n enumerable: false,\n configurable: true\n });\n\n CalendarApi.prototype.batchRendering = function (callback) {\n callback();\n };\n\n CalendarApi.prototype.updateSize = function () {\n this.trigger('_resize', true);\n }; // Options\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.setOption = function (name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val\n });\n };\n\n CalendarApi.prototype.getOption = function (name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n };\n\n CalendarApi.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.getCurrentData().availableRawLocales);\n }; // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.on = function (handlerName, handler) {\n var currentDataManager = this.currentDataManager;\n\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n } else {\n console.warn(\"Unknown listener name '\" + handlerName + \"'\");\n }\n };\n\n CalendarApi.prototype.off = function (handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n }; // not meant for public use\n\n\n CalendarApi.prototype.trigger = function (handlerName) {\n var _a;\n\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n (_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArray([handlerName], args));\n }; // View\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.changeView = function (viewType, dateOrRange) {\n var _this = this;\n\n this.batchRendering(function () {\n _this.unselect();\n\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) {\n // a range\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType\n });\n\n _this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange\n });\n } else {\n var dateEnv = _this.getCurrentData().dateEnv;\n\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateEnv.createMarker(dateOrRange)\n });\n }\n } else {\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType\n });\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\n\n CalendarApi.prototype.zoomTo = function (dateMarker, viewType) {\n var state = this.getCurrentData();\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker\n });\n } else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: dateMarker\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\n\n CalendarApi.prototype.getUnitViewSpec = function (unit) {\n var _a = this.getCurrentData(),\n viewSpecs = _a.viewSpecs,\n toolbarConfig = _a.toolbarConfig;\n\n var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n var i;\n var spec;\n\n for (var viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n\n return null;\n }; // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.prev = function () {\n this.unselect();\n this.dispatch({\n type: 'PREV'\n });\n };\n\n CalendarApi.prototype.next = function () {\n this.unselect();\n this.dispatch({\n type: 'NEXT'\n });\n };\n\n CalendarApi.prototype.prevYear = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1)\n });\n };\n\n CalendarApi.prototype.nextYear = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1)\n });\n };\n\n CalendarApi.prototype.today = function () {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv)\n });\n };\n\n CalendarApi.prototype.gotoDate = function (zonedDateInput) {\n var state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput)\n });\n };\n\n CalendarApi.prototype.incrementDate = function (deltaInput) {\n var state = this.getCurrentData();\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta)\n });\n }\n }; // for external API\n\n\n CalendarApi.prototype.getDate = function () {\n var state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n }; // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n }; // `settings` is for formatter AND isEndExclusive\n\n\n CalendarApi.prototype.formatRange = function (d0, d1, settings) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n };\n\n CalendarApi.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), {\n omitTime: omitTime\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\n\n CalendarApi.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n } else {\n selectionInput = {\n start: dateOrObj,\n end: null\n };\n }\n } else {\n selectionInput = {\n start: dateOrObj,\n end: endDate\n };\n }\n\n var state = this.getCurrentData();\n var selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({\n days: 1\n }));\n\n if (selection) {\n // throw parse error otherwise?\n this.dispatch({\n type: 'SELECT_DATES',\n selection: selection\n });\n triggerDateSelect(selection, null, state);\n }\n }; // public method\n\n\n CalendarApi.prototype.unselect = function (pev) {\n var state = this.getCurrentData();\n\n if (state.dateSelection) {\n this.dispatch({\n type: 'UNSELECT_DATES'\n });\n triggerDateUnselect(pev, state);\n }\n }; // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.addEvent = function (eventInput, sourceInput) {\n if (eventInput instanceof EventApi) {\n var def = eventInput._def;\n var instance = eventInput._instance;\n var currentData = this.getCurrentData(); // not already present? don't want to add an old snapshot\n\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({\n def: def,\n instance: instance\n }) // TODO: better util for two args?\n\n });\n this.triggerEventAdd(eventInput);\n }\n\n return eventInput;\n }\n\n var state = this.getCurrentData();\n var eventSource;\n\n if (sourceInput instanceof EventSourceApi) {\n eventSource = sourceInput.internalEventSource;\n } else if (typeof sourceInput === 'boolean') {\n if (sourceInput) {\n // true. part of the first event source\n eventSource = hashValuesToArray(state.eventSources)[0];\n }\n } else if (sourceInput != null) {\n // an ID. accepts a number too\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n\n if (!sourceApi) {\n console.warn(\"Could not find an event source with ID \\\"\" + sourceInput + \"\\\"\"); // TODO: test\n\n return null;\n }\n\n eventSource = sourceApi.internalEventSource;\n }\n\n var tuple = parseEvent(eventInput, eventSource, state, false);\n\n if (tuple) {\n var newEventApi = new EventApi(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple)\n });\n this.triggerEventAdd(newEventApi);\n return newEventApi;\n }\n\n return null;\n };\n\n CalendarApi.prototype.triggerEventAdd = function (eventApi) {\n var _this = this;\n\n var emitter = this.getCurrentData().emitter;\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: function revert() {\n _this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi)\n });\n }\n });\n }; // TODO: optimize\n\n\n CalendarApi.prototype.getEventById = function (id) {\n var state = this.getCurrentData();\n var _a = state.eventStore,\n defs = _a.defs,\n instances = _a.instances;\n id = String(id);\n\n for (var defId in defs) {\n var def = defs[defId];\n\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(state, def, null);\n }\n\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n\n if (instance.defId === def.defId) {\n return new EventApi(state, def, instance);\n }\n }\n }\n }\n\n return null;\n };\n\n CalendarApi.prototype.getEvents = function () {\n var currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n };\n\n CalendarApi.prototype.removeAllEvents = function () {\n this.dispatch({\n type: 'REMOVE_ALL_EVENTS'\n });\n }; // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.getEventSources = function () {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n var sourceApis = [];\n\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(state, sourceHash[internalId]));\n }\n\n return sourceApis;\n };\n\n CalendarApi.prototype.getEventSourceById = function (id) {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n id = String(id);\n\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(state, sourceHash[sourceId]);\n }\n }\n\n return null;\n };\n\n CalendarApi.prototype.addEventSource = function (sourceInput) {\n var state = this.getCurrentData();\n\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource]\n });\n }\n\n return sourceInput;\n }\n\n var eventSource = parseEventSource(sourceInput, state);\n\n if (eventSource) {\n // TODO: error otherwise?\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [eventSource]\n });\n return new EventSourceApi(state, eventSource);\n }\n\n return null;\n };\n\n CalendarApi.prototype.removeAllEventSources = function () {\n this.dispatch({\n type: 'REMOVE_ALL_EVENT_SOURCES'\n });\n };\n\n CalendarApi.prototype.refetchEvents = function () {\n this.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n isRefetch: true\n });\n }; // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n\n\n CalendarApi.prototype.scrollToTime = function (timeInput) {\n var time = createDuration(timeInput);\n\n if (time) {\n this.trigger('_scrollRequest', {\n time: time\n });\n }\n };\n\n return CalendarApi;\n}();\n\nvar EventApi =\n/** @class */\nfunction () {\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n function EventApi(context, def, instance) {\n this._context = context;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n\n\n EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\n\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.'); // TODO: make proper aliasing system?\n } else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: {\n publicId: val\n } // hardcoded internal name\n\n });\n } else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: (_a = {}, _a[name] = val, _a)\n });\n } else if (name in EVENT_UI_REFINERS) {\n var ui = EVENT_UI_REFINERS[name](val);\n\n if (name === 'color') {\n ui = {\n backgroundColor: val,\n borderColor: val\n };\n } else if (name === 'editable') {\n ui = {\n startEditable: val,\n durationEditable: val\n };\n } else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n\n this.mutate({\n standardProps: {\n ui: ui\n }\n });\n } else {\n console.warn(\"Could not set prop '\" + name + \"'. Use setExtendedProp instead.\");\n }\n };\n\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a)\n });\n };\n\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var start = dateEnv.createMarker(startInput);\n\n if (start && this._instance) {\n // 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\n if (options.maintainDuration) {\n this.mutate({\n datesDelta: startDelta\n });\n } else {\n this.mutate({\n startDelta: startDelta\n });\n }\n }\n };\n\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var end;\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({\n endDelta: endDelta\n });\n } else {\n this.mutate({\n standardProps: {\n hasEnd: false\n }\n });\n }\n }\n };\n\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = this._context.dateEnv;\n var standardProps = {\n allDay: options.allDay\n };\n var start = dateEnv.createMarker(startInput);\n var end;\n\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n\n if (!end) {\n // TODO: warning if parsed bad\n return;\n }\n }\n\n if (this._instance) {\n var instanceRange = this._instance.range; // 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\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({\n datesDelta: startDelta,\n standardProps: standardProps\n });\n } else {\n this.mutate({\n startDelta: startDelta,\n endDelta: endDelta,\n standardProps: standardProps\n });\n }\n } else {\n // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({\n datesDelta: startDelta,\n standardProps: standardProps\n });\n }\n }\n };\n\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n startDelta: delta\n });\n }\n };\n\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n endDelta: delta\n });\n }\n };\n\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n\n if (delta) {\n // TODO: warning if parsed bad\n this.mutate({\n datesDelta: delta\n });\n }\n };\n\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) {\n options = {};\n }\n\n var standardProps = {\n allDay: allDay\n };\n var maintainDuration = options.maintainDuration;\n\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n\n this.mutate({\n standardProps: standardProps\n });\n };\n\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._context.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput);\n\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\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo\n });\n };\n\n EventApi.prototype.mutate = function (mutation) {\n var instance = this._instance;\n\n if (instance) {\n var def = this._def;\n var context_1 = this._context;\n var eventStore_1 = context_1.getCurrentData().eventStore;\n var relevantEvents = getRelevantEvents(eventStore_1, instance.instanceId);\n var eventConfigBase = {\n '': {\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n }\n };\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context_1);\n var oldEvent = new EventApi(context_1, def, instance); // snapshot\n\n this._def = relevantEvents.defs[def.defId];\n this._instance = relevantEvents.instances[instance.instanceId];\n context_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents\n });\n context_1.emitter.trigger('eventChange', {\n oldEvent: oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context_1, instance),\n revert: function revert() {\n context_1.dispatch({\n type: 'RESET_EVENTS',\n eventStore: eventStore_1\n });\n }\n });\n }\n };\n\n EventApi.prototype.remove = function () {\n var context = this._context;\n var asStore = eventApiToStore(this);\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore\n });\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert: function revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore\n });\n }\n });\n };\n\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function get() {\n var sourceId = this._def.sourceId;\n\n if (sourceId) {\n return new EventSourceApi(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function get() {\n return this._instance ? this._context.dateEnv.toDate(this._instance.range.start) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function get() {\n return this._instance && this._def.hasEnd ? this._context.dateEnv.toDate(this._instance.range.end) : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startStr\", {\n get: function get() {\n var instance = this._instance;\n\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo\n });\n }\n\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"endStr\", {\n get: function get() {\n var instance = this._instance;\n\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo\n });\n }\n\n return '';\n },\n enumerable: false,\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 get() {\n return this._def.publicId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function get() {\n return this._def.groupId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function get() {\n return this._def.allDay;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function get() {\n return this._def.title;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function get() {\n return this._def.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"display\", {\n get: function get() {\n return this._def.ui.display || 'auto';\n } // bad. just normalize the type earlier\n ,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function get() {\n return this._def.ui.startEditable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function get() {\n return this._def.ui.durationEditable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function get() {\n return this._def.ui.constraints[0] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function get() {\n return this._def.ui.overlap;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function get() {\n return this._def.ui.allows[0] || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function get() {\n return this._def.ui.backgroundColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function get() {\n return this._def.ui.borderColor;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function get() {\n return this._def.ui.textColor;\n },\n enumerable: false,\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 get() {\n return this._def.ui.classNames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function get() {\n return this._def.extendedProps;\n },\n enumerable: false,\n configurable: true\n });\n\n EventApi.prototype.toPlainObject = function (settings) {\n if (settings === void 0) {\n settings = {};\n }\n\n var def = this._def;\n var ui = def.ui;\n\n var _a = this,\n startStr = _a.startStr,\n endStr = _a.endStr;\n\n var res = {};\n\n if (def.title) {\n res.title = def.title;\n }\n\n if (startStr) {\n res.start = startStr;\n }\n\n if (endStr) {\n res.end = endStr;\n }\n\n if (def.publicId) {\n res.id = def.publicId;\n }\n\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n\n if (def.url) {\n res.url = def.url;\n }\n\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n } // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n\n\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n } else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n __assign(res, def.extendedProps);\n } else {\n res.extendedProps = def.extendedProps;\n }\n }\n\n return res;\n };\n\n EventApi.prototype.toJSON = function () {\n return this.toPlainObject();\n };\n\n return EventApi;\n}();\n\nfunction eventApiToStore(eventApi) {\n var _a, _b;\n\n var def = eventApi._def;\n var instance = eventApi._instance;\n return {\n defs: (_a = {}, _a[def.defId] = def, _a),\n instances: instance ? (_b = {}, _b[instance.instanceId] = instance, _b) : {}\n };\n}\n\nfunction buildEventApis(eventStore, context, excludeInstance) {\n var defs = eventStore.defs,\n instances = eventStore.instances;\n var eventApis = [];\n var excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventApi(context, def, instance));\n }\n }\n\n return eventApis;\n}\n\nvar calendarSystemClassMap = {};\n\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\n\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\n\nvar GregorianCalendarSystem =\n/** @class */\nfunction () {\n function GregorianCalendarSystem() {}\n\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n\n return GregorianCalendarSystem;\n}();\n\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\nvar ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\n\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n\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\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + Number(m[18] || 0));\n }\n\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset\n };\n }\n }\n\n return null;\n}\n\nvar DateEnv =\n/** @class */\nfunction () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\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\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n this.cmdFormatter = settings.cmdFormatter;\n this.defaultSeparator = settings.defaultSeparator;\n } // Creating / Parsing\n\n\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n\n if (meta === null) {\n return null;\n }\n\n return meta.marker;\n };\n\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\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\n\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\n var marker = null;\n\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n } else if (input instanceof Date) {\n input = input.valueOf();\n\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n } else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n\n return {\n marker: marker,\n isTimeUnspecified: false,\n forcedTzo: null\n };\n };\n\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n\n if (parts === null) {\n return null;\n }\n\n var marker = parts.marker;\n var forcedTzo = null;\n\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n } else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n\n return {\n marker: marker,\n isTimeUnspecified: parts.isTimeUnspecified,\n forcedTzo: forcedTzo\n };\n }; // Accessors\n\n\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n }; // Adding / Subtracting\n\n\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\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\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\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 }; // Diffing Whole Units\n\n\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n\n if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n\n return null;\n };\n\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n\n if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0) + (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n\n return null;\n }; // Range / Duration\n\n\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'year',\n value: n\n };\n }\n\n n = this.diffWholeMonths(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'month',\n value: n\n };\n }\n\n n = diffWholeWeeks(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'week',\n value: n\n };\n }\n\n n = diffWholeDays(m0, m1);\n\n if (n !== null) {\n return {\n unit: 'day',\n value: n\n };\n }\n\n n = diffHours(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'hour',\n value: n\n };\n }\n\n n = diffMinutes(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'minute',\n value: n\n };\n }\n\n n = diffSeconds(m0, m1);\n\n if (isInt(n)) {\n return {\n unit: 'second',\n value: n\n };\n }\n\n return {\n unit: 'millisecond',\n value: m1.valueOf() - m0.valueOf()\n };\n };\n\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n }; // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n\n\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n\n if (unit === 'day') {\n return startOfDay(m);\n }\n\n if (unit === 'hour') {\n return startOfHour(m);\n }\n\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n\n if (unit === 'second') {\n return startOfSecond(m);\n }\n\n return null;\n };\n\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m)]);\n };\n\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m)]);\n };\n\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m), m.getUTCDate() - (m.getUTCDay() - this.weekDow + 7) % 7]);\n }; // Week Number\n\n\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }; // TODO: choke on timeZoneName: long\n\n\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) {\n dateOptions = {};\n }\n\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ? dateOptions.forcedTzo : this.offsetForMarker(marker)\n }, this);\n };\n\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) {\n dateOptions = {};\n }\n\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ? dateOptions.forcedStartTzo : this.offsetForMarker(start)\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ? dateOptions.forcedEndTzo : this.offsetForMarker(end)\n }, this, dateOptions.defaultSeparator);\n };\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n\n\n DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) {\n extraOptions = {};\n }\n\n var timeZoneOffset = null;\n\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n } else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n }; // TimeZone\n\n\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n\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\n if (this.timeZone === 'UTC') {\n return 0;\n }\n\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n\n return null;\n }; // Conversion\n\n\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n\n return new Date(m.valueOf() - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n };\n\n return DateEnv;\n}();\n\nvar globalLocales = [];\nvar MINIMAL_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 },\n direction: '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 weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display'\n};\n\nvar RAW_EN_LOCALE = __assign(__assign({}, MINIMAL_RAW_EN_LOCALE), {\n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today: function today(buttonText, unit) {\n return unit === 'day' ? 'Today' : \"This \" + buttonText;\n }\n },\n viewHint: '$0 view',\n navLinkHint: 'Go to $0',\n moreLinkHint: function moreLinkHint(eventCnt) {\n return \"Show \" + eventCnt + \" more event\" + (eventCnt === 1 ? '' : 's');\n }\n});\n\nfunction organizeRawLocales(explicitRawLocales) {\n var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n var allRawLocales = globalLocales.concat(explicitRawLocales);\n var rawLocaleMap = {\n en: RAW_EN_LOCALE\n };\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\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode\n };\n}\n\nfunction buildLocale(inputSingular, available) {\n if (_typeof(inputSingular) === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n\n return queryLocale(inputSingular, available);\n}\n\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\n\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i += 1) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n\n for (var j = parts.length; j > 0; j -= 1) {\n var simpleId = parts.slice(0, j).join('-');\n\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n\n return null;\n}\n\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n\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\nfunction formatDate(dateInput, options) {\n if (options === void 0) {\n options = {};\n }\n\n var dateEnv = buildDateEnv$1(options);\n var formatter = createFormatter(options);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n\n if (!dateMeta) {\n // TODO: warning?\n return '';\n }\n\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo\n });\n}\n\nfunction formatRange(startInput, endInput, options) {\n var dateEnv = buildDateEnv$1(_typeof(options) === 'object' && options ? options : {}); // pass in if non-null object\n\n var formatter = createFormatter(options);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n\n if (!startMeta || !endMeta) {\n // TODO: warning?\n return '';\n }\n\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator\n });\n} // TODO: more DRY and optimized\n\n\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n\n return new DateEnv(__assign(__assign({\n timeZone: BASE_OPTION_DEFAULTS.timeZone,\n calendarSystem: 'gregory'\n }, settings), {\n locale: locale\n }));\n}\n\nvar DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours' // so multiple defs get grouped\n\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\n\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\n\nfunction refineInputs(input) {\n var rawDefs;\n\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\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 } else if (_typeof(input) === 'object' && input) {\n // non-null object\n rawDefs = [input];\n } else {\n // is probably false\n rawDefs = [];\n }\n\n rawDefs = rawDefs.map(function (rawDef) {\n return __assign(__assign({}, DEF_DEFAULTS), rawDef);\n });\n return rawDefs;\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left && point.left < rect.right && point.top >= rect.top && point.top < rect.bottom;\n} // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\n\n\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\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n\n return false;\n}\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} // Returns a new point that will have been moved to reside within the given rectangle\n\n\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} // Returns a point that is the center of the given rectangle\n\n\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2\n };\n} // Subtracts point2's coordinates from point1's coordinates, returning a delta\n\n\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top\n };\n}\n\nvar canVGrowWithinCell;\n\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n\n return canVGrowWithinCell;\n}\n\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true;\n }\n\n var el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.left = '0px';\n el.innerHTML = '
';\n el.querySelector('table').style.height = '100px';\n el.querySelector('div').style.height = '100%';\n document.body.appendChild(el);\n var div = el.querySelector('div');\n var possible = div.offsetHeight > 0;\n document.body.removeChild(el);\n return possible;\n}\n\nvar EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\n\nvar Splitter =\n/** @class */\nfunction () {\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\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n\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\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\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\n return splitProps;\n };\n\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n\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\n return dateSpans;\n };\n\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n\n return mapHash(eventStore.defs, function (eventDef) {\n return _this.getKeysForEventDef(eventDef);\n });\n };\n\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs,\n instances = eventStore.instances;\n var splitStores = {};\n\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n\n if (splitStores[key]) {\n // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n\n return splitStores;\n };\n\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n\n for (var defId in eventUiBases) {\n if (defId) {\n // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n\n return splitHashes;\n };\n\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents)); // can't rely on defKeys because event data is mutated\n\n\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n\n var populate = function populate(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 };\n }\n };\n\n for (var key in affectedStores_1) {\n populate(key);\n }\n\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n\n return splitStates;\n };\n\n return Splitter;\n}();\n\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n\n if (allUi) {\n baseParts.push(allUi);\n }\n\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n\n var stuff = {\n '': combineEventUis(baseParts)\n };\n\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n\n return stuff;\n}\n\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? date < nowDate : todayRange ? date < todayRange.start : false),\n isFuture: Boolean(nowDate ? date > nowDate : todayRange ? date >= todayRange.end : false)\n };\n}\n\nfunction getDayClassNames(meta, theme) {\n var classNames = ['fc-day', \"fc-day-\" + DAY_IDS[meta.dow]];\n\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n } else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n\n return classNames;\n}\n\nfunction getSlotClassNames(meta, theme) {\n var classNames = ['fc-slot', \"fc-slot-\" + DAY_IDS[meta.dow]];\n\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n } else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n\n return classNames;\n}\n\nvar DAY_FORMAT = createFormatter({\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n});\nvar WEEK_FORMAT = createFormatter({\n week: 'long'\n});\n\nfunction buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {\n if (viewType === void 0) {\n viewType = 'day';\n }\n\n if (isTabbable === void 0) {\n isTabbable = true;\n }\n\n var dateEnv = context.dateEnv,\n options = context.options,\n calendarApi = context.calendarApi;\n var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n\n if (options.navLinks) {\n var zonedDate = dateEnv.toDate(dateMarker);\n\n var handleInteraction = function handleInteraction(ev) {\n var customAction = viewType === 'day' ? options.navLinkDayClick : viewType === 'week' ? options.navLinkWeekClick : null;\n\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n } else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n\n return __assign({\n title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr),\n 'data-navlink': ''\n }, isTabbable ? createAriaClickAttrs(handleInteraction) : {\n onClick: handleInteraction\n });\n }\n\n return {\n 'aria-label': dateStr\n };\n}\n\nvar _isRtlScrollbarOnLeft = null;\n\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n\n return _isRtlScrollbarOnLeft;\n}\n\nfunction computeIsRtlScrollbarOnLeft() {\n var outerEl = document.createElement('div');\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl'\n });\n outerEl.innerHTML = '
';\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\nvar _scrollbarWidths;\n\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n\n return _scrollbarWidths;\n}\n\nfunction computeScrollbarWidths() {\n var el = document.createElement('div');\n el.style.overflow = 'scroll';\n el.style.position = 'absolute';\n el.style.top = '-9999px';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n var res = computeScrollbarWidthsForEl(el);\n document.body.removeChild(el);\n return res;\n} // WARNING: will include border\n\n\nfunction computeScrollbarWidthsForEl(el) {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth\n };\n}\n\nfunction computeEdges(el, getPadding) {\n if (getPadding === void 0) {\n getPadding = false;\n }\n\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 var badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n\n var scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n var scrollbarBottom = badScrollbarWidths.x - 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\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') {\n // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n } else {\n res.scrollbarRight = scrollbarLeftRight;\n }\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\n return res;\n}\n\nfunction computeInnerRect(el, goWithinPadding, doFromWindowViewport) {\n if (goWithinPadding === void 0) {\n goWithinPadding = false;\n }\n\n var outerRect = doFromWindowViewport ? el.getBoundingClientRect() : 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\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\n return res;\n}\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}\n\nfunction computeClippedClientRect(el) {\n var clippingParents = getClippingParents(el);\n var rect = el.getBoundingClientRect();\n\n for (var _i = 0, clippingParents_1 = clippingParents; _i < clippingParents_1.length; _i++) {\n var clippingParent = clippingParents_1[_i];\n var intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n\n if (intersection) {\n rect = intersection;\n } else {\n return null;\n }\n }\n\n return rect;\n}\n\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\n\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) + parseInt(computed.marginBottom, 10);\n} // does not return window\n\n\nfunction getClippingParents(el) {\n var parents = [];\n\n while (el instanceof HTMLElement) {\n // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n\n if (computedStyle.position === 'fixed') {\n break;\n }\n\n if (/(auto|scroll)/.test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n\n el = el.parentNode;\n }\n\n return parents;\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.\n\n\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\n var wrappedSuccess = function wrappedSuccess() {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n };\n\n var wrappedFailure = function wrappedFailure() {\n if (!isResolved) {\n isResolved = true;\n\n if (failure) {\n failure.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n }\n };\n\n var res = func(wrappedSuccess, wrappedFailure);\n\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Emitter =\n/** @class */\nfunction () {\n function Emitter() {\n this.handlers = {};\n this.thisContext = null;\n }\n\n Emitter.prototype.setThisContext = function (thisContext) {\n this.thisContext = thisContext;\n };\n\n Emitter.prototype.setOptions = function (options) {\n this.options = options;\n };\n\n Emitter.prototype.on = function (type, handler) {\n addToHash(this.handlers, type, handler);\n };\n\n Emitter.prototype.off = function (type, handler) {\n removeFromHash(this.handlers, type, handler);\n };\n\n Emitter.prototype.trigger = function (type) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var attachedHandlers = this.handlers[type] || [];\n var optionHandler = this.options && this.options[type];\n var handlers = [].concat(optionHandler || [], attachedHandlers);\n\n for (var _a = 0, handlers_1 = handlers; _a < handlers_1.length; _a++) {\n var handler = handlers_1[_a];\n handler.apply(this.thisContext, args);\n }\n };\n\n Emitter.prototype.hasHandlers = function (type) {\n return Boolean(this.handlers[type] && this.handlers[type].length || this.options && this.options[type]);\n };\n\n return Emitter;\n}();\n\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = [])).push(handler);\n}\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 } else {\n delete hash[type]; // remove all handler funcs for this type\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*/\n\n\nvar PositionCache =\n/** @class */\nfunction () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n var originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n } // Populates the left/right internal coordinate arrays\n\n\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n\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\n this.lefts = lefts;\n this.rights = rights;\n }; // Populates the top/bottom internal coordinate arrays\n\n\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n\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\n this.tops = tops;\n this.bottoms = bottoms;\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\n\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var _a = this,\n lefts = _a.lefts,\n rights = _a.rights;\n\n var len = lefts.length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n\n return undefined; // TODO: better\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\n\n PositionCache.prototype.topToIndex = function (topPosition) {\n var _a = this,\n tops = _a.tops,\n bottoms = _a.bottoms;\n\n var len = tops.length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n\n return undefined; // TODO: better\n }; // Gets the width of the element at the given index\n\n\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n }; // Gets the height of the element at the given index\n\n\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n\n return PositionCache;\n}();\n/* eslint max-classes-per-file: \"off\" */\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*/\n\n\nvar ScrollController =\n/** @class */\nfunction () {\n function ScrollController() {}\n\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n\n return ScrollController;\n}();\n\nvar ElementScrollController =\n/** @class */\nfunction (_super) {\n __extends(ElementScrollController, _super);\n\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n\n _this.el = el;\n return _this;\n }\n\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n\n return ElementScrollController;\n}(ScrollController);\n\nvar WindowScrollController =\n/** @class */\nfunction (_super) {\n __extends(WindowScrollController, _super);\n\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n\n return WindowScrollController;\n}(ScrollController);\n\nvar Theme =\n/** @class */\nfunction () {\n function Theme(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n\n if (_typeof(iconOverrideHash) === 'object' && iconOverrideHash) {\n // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n\n this.iconClasses = iconClassesCopy;\n } else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n\n if (prefix && className.indexOf(prefix) !== 0) {\n // if not already present\n className = prefix + className;\n }\n\n return className;\n };\n\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n\n Theme.prototype.getIconClass = function (buttonName, isRtl) {\n var className;\n\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n } else {\n className = this.iconClasses[buttonName];\n }\n\n if (className) {\n return this.baseIconClass + \" \" + className;\n }\n\n return '';\n };\n\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n\n if (className) {\n return this.baseIconClass + \" \" + this.applyIconOverridePrefix(className);\n }\n }\n\n return '';\n };\n\n return Theme;\n}();\n\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar ScrollResponder =\n/** @class */\nfunction () {\n function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) {\n var _this = this;\n\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n\n this.handleScrollRequest = function (request) {\n _this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);\n\n _this.drain();\n };\n\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n\n ScrollResponder.prototype.detach = function () {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n };\n\n ScrollResponder.prototype.update = function (isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n } else {\n this.drain();\n }\n };\n\n ScrollResponder.prototype.fireInitialScroll = function () {\n this.handleScrollRequest({\n time: this.scrollTime\n });\n };\n\n ScrollResponder.prototype.drain = function () {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n };\n\n return ScrollResponder;\n}();\n\nvar ViewContextType = createContext({}); // for Components\n\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n return {\n dateEnv: dateEnv,\n options: viewOptions,\n pluginHooks: pluginHooks,\n emitter: emitter,\n dispatch: dispatch,\n getCurrentData: getCurrentData,\n calendarApi: calendarApi,\n viewSpec: viewSpec,\n viewApi: viewApi,\n dateProfileGenerator: dateProfileGenerator,\n theme: theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler: function addResizeHandler(handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler: function removeResizeHandler(handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder: function createScrollResponder(execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent: registerInteractiveComponent,\n unregisterInteractiveComponent: unregisterInteractiveComponent\n };\n}\n/* eslint max-classes-per-file: off */\n\n\nvar PureComponent =\n/** @class */\nfunction (_super) {\n __extends(PureComponent, _super);\n\n function PureComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PureComponent.prototype.shouldComponentUpdate = function (nextProps, nextState) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n }\n\n return !compareObjs(this.props, nextProps, this.propEquality) || !compareObjs(this.state, nextState, this.stateEquality);\n }; // HACK for freakin' React StrictMode\n\n\n PureComponent.prototype.safeSetState = function (newState) {\n if (!compareObjs(this.state, __assign(__assign({}, this.state), newState), this.stateEquality)) {\n this.setState(newState);\n }\n };\n\n PureComponent.addPropsEquality = addPropsEquality;\n PureComponent.addStateEquality = addStateEquality;\n PureComponent.contextType = ViewContextType;\n return PureComponent;\n}(Component);\n\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\n\nvar BaseComponent =\n/** @class */\nfunction (_super) {\n __extends(BaseComponent, _super);\n\n function BaseComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BaseComponent.contextType = ViewContextType;\n return BaseComponent;\n}(PureComponent);\n\nfunction addPropsEquality(propEquality) {\n var hash = Object.create(this.prototype.propEquality);\n\n __assign(hash, propEquality);\n\n this.prototype.propEquality = hash;\n}\n\nfunction addStateEquality(stateEquality) {\n var hash = Object.create(this.prototype.stateEquality);\n\n __assign(hash, stateEquality);\n\n this.prototype.stateEquality = hash;\n} // use other one\n\n\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n } else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\n}\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\n\n\nvar DateComponent =\n/** @class */\nfunction (_super) {\n __extends(DateComponent, _super);\n\n function DateComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.uid = guid();\n return _this;\n } // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n\n\n DateComponent.prototype.prepareHits = function () {};\n\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n }; // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n\n\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n };\n\n DateComponent.prototype.isValidDateDownEl = function (el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') && !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover'); // hack\n };\n\n return DateComponent;\n}(BaseComponent); // TODO: easier way to add new hooks? need to update a million things\n\n\nfunction createPlugin(input) {\n return {\n id: guid(),\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\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 viewContainerAppends: input.viewContainerAppends || [],\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 initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n contentTypeHandlers: input.contentTypeHandlers || {},\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {}\n };\n}\n\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n var isAdded = {};\n var hooks = {\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n contentTypeHandlers: {},\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {}\n };\n\n function addDefs(defs) {\n for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {\n var def = defs_1[_i];\n\n if (!isAdded[def.id]) {\n isAdded[def.id] = true;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n }\n }\n\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n\n addDefs(globalDefs);\n return hooks;\n}\n\nfunction buildBuildPluginHooks() {\n var currentOverrideDefs = [];\n var currentGlobalDefs = [];\n var currentHooks;\n return function (overrideDefs, globalDefs) {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\n\nfunction combineHooks(hooks0, hooks1) {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: __assign(__assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: __assign(__assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\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(__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 viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: __assign(__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 initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: __assign(__assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n contentTypeHandlers: __assign(__assign({}, hooks0.contentTypeHandlers), hooks1.contentTypeHandlers),\n listenerRefiners: __assign(__assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: __assign(__assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: __assign(__assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers)\n };\n}\n\nvar StandardTheme =\n/** @class */\nfunction (_super) {\n __extends(StandardTheme, _super);\n\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return StandardTheme;\n}(Theme);\n\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active'\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.rtlIconClasses = {\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};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\n\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n\n return hash;\n}\n\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n\n return viewDef;\n}\n\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n\n var queryProp = function queryProp(name) {\n return defaultConfig && defaultConfig[name] !== null ? defaultConfig[name] : overrideConfig && overrideConfig[name] !== null ? overrideConfig[name] : null;\n };\n\n var theComponent = queryProp('component');\n var superType = queryProp('superType');\n var superDef = null;\n\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n\n return {\n type: viewType,\n component: theComponent,\n defaults: __assign(__assign({}, superDef ? superDef.defaults : {}), defaultConfig ? defaultConfig.rawOptions : {}),\n overrides: __assign(__assign({}, superDef ? superDef.overrides : {}), overrideConfig ? overrideConfig.rawOptions : {})\n };\n}\n/* eslint max-classes-per-file: off */\n// NOTE: in JSX, you should always use this class with arg. otherwise, will default to any???\n\n\nvar RenderHook =\n/** @class */\nfunction (_super) {\n __extends(RenderHook, _super);\n\n function RenderHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.rootElRef = createRef();\n\n _this.handleRootEl = function (el) {\n setRef(_this.rootElRef, el);\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n };\n\n return _this;\n }\n\n RenderHook.prototype.render = function () {\n var _this = this;\n\n var props = this.props;\n var hookProps = props.hookProps;\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: props.didMount,\n willUnmount: props.willUnmount,\n elRef: this.handleRootEl\n }, function (rootElRef) {\n return createElement(ContentHook, {\n hookProps: hookProps,\n content: props.content,\n defaultContent: props.defaultContent,\n backupElRef: _this.rootElRef\n }, function (innerElRef, innerContent) {\n return props.children(rootElRef, normalizeClassNames(props.classNames, hookProps), innerElRef, innerContent);\n });\n });\n };\n\n return RenderHook;\n}(BaseComponent); // TODO: rename to be about function, not default. use in above type\n// for forcing rerender of components that use the ContentHook\n\n\nvar CustomContentRenderContext = createContext(0);\n\nfunction ContentHook(props) {\n return createElement(CustomContentRenderContext.Consumer, null, function (renderId) {\n return createElement(ContentHookInner, __assign({\n renderId: renderId\n }, props));\n });\n}\n\nvar ContentHookInner =\n/** @class */\nfunction (_super) {\n __extends(ContentHookInner, _super);\n\n function ContentHookInner() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.innerElRef = createRef();\n return _this;\n }\n\n ContentHookInner.prototype.render = function () {\n return this.props.children(this.innerElRef, this.renderInnerContent());\n };\n\n ContentHookInner.prototype.componentDidMount = function () {\n this.updateCustomContent();\n };\n\n ContentHookInner.prototype.componentDidUpdate = function () {\n this.updateCustomContent();\n };\n\n ContentHookInner.prototype.componentWillUnmount = function () {\n if (this.customContentInfo && this.customContentInfo.destroy) {\n this.customContentInfo.destroy();\n }\n };\n\n ContentHookInner.prototype.renderInnerContent = function () {\n var customContentInfo = this.customContentInfo; // only populated if using non-[p]react node(s)\n\n var innerContent = this.getInnerContent();\n var meta = this.getContentMeta(innerContent); // initial run, or content-type changing? (from vue -> react for example)\n\n if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {\n // clearing old value\n if (customContentInfo) {\n if (customContentInfo.destroy) {\n customContentInfo.destroy();\n }\n\n customContentInfo = this.customContentInfo = null;\n } // assigning new value\n\n\n if (meta.contentKey) {\n customContentInfo = this.customContentInfo = __assign({\n contentKey: meta.contentKey,\n contentVal: innerContent[meta.contentKey]\n }, meta.buildLifecycleFuncs());\n } // updating\n\n } else if (customContentInfo) {\n customContentInfo.contentVal = innerContent[meta.contentKey];\n }\n\n return customContentInfo ? [] // signal that something was specified\n : innerContent; // assume a [p]react vdom node. use it\n };\n\n ContentHookInner.prototype.getInnerContent = function () {\n var props = this.props;\n var innerContent = normalizeContent(props.content, props.hookProps);\n\n if (innerContent === undefined) {\n // use the default\n innerContent = normalizeContent(props.defaultContent, props.hookProps);\n }\n\n return innerContent == null ? null : innerContent; // convert undefined to null (better for React)\n };\n\n ContentHookInner.prototype.getContentMeta = function (innerContent) {\n var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;\n var contentKey = '';\n var buildLifecycleFuncs = null;\n\n if (innerContent) {\n // allowed to be null, for convenience to caller\n for (var searchKey in contentTypeHandlers) {\n if (innerContent[searchKey] !== undefined) {\n contentKey = searchKey;\n buildLifecycleFuncs = contentTypeHandlers[searchKey];\n break;\n }\n }\n }\n\n return {\n contentKey: contentKey,\n buildLifecycleFuncs: buildLifecycleFuncs\n };\n };\n\n ContentHookInner.prototype.updateCustomContent = function () {\n if (this.customContentInfo) {\n // for non-[p]react\n this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, // the element to render into\n this.customContentInfo.contentVal);\n }\n };\n\n return ContentHookInner;\n}(BaseComponent);\n\nvar MountHook =\n/** @class */\nfunction (_super) {\n __extends(MountHook, _super);\n\n function MountHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, rootEl);\n }\n };\n\n return _this;\n }\n\n MountHook.prototype.render = function () {\n return this.props.children(this.handleRootEl);\n };\n\n MountHook.prototype.componentDidMount = function () {\n var callback = this.props.didMount;\n\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), {\n el: this.rootEl\n }));\n }\n };\n\n MountHook.prototype.componentWillUnmount = function () {\n var callback = this.props.willUnmount;\n\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), {\n el: this.rootEl\n }));\n }\n };\n\n return MountHook;\n}(BaseComponent);\n\nfunction buildClassNameNormalizer() {\n var currentGenerator;\n var currentHookProps;\n var currentClassNames = [];\n return function (generator, hookProps) {\n if (!currentHookProps || !isPropsEqual(currentHookProps, hookProps) || generator !== currentGenerator) {\n currentGenerator = generator;\n currentHookProps = hookProps;\n currentClassNames = normalizeClassNames(generator, hookProps);\n }\n\n return currentClassNames;\n };\n}\n\nfunction normalizeClassNames(classNames, hookProps) {\n if (typeof classNames === 'function') {\n classNames = classNames(hookProps);\n }\n\n return parseClassNames(classNames);\n}\n\nfunction normalizeContent(input, hookProps) {\n if (typeof input === 'function') {\n return input(hookProps, createElement); // give the function the vdom-creation func\n }\n\n return input;\n}\n\nvar ViewRoot =\n/** @class */\nfunction (_super) {\n __extends(ViewRoot, _super);\n\n function ViewRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n\n ViewRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = {\n view: context.viewApi\n };\n var customClassNames = this.normalizeClassNames(options.viewClassNames, hookProps);\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: options.viewDidMount,\n willUnmount: options.viewWillUnmount,\n elRef: props.elRef\n }, function (rootElRef) {\n return props.children(rootElRef, [\"fc-\" + props.viewSpec.type + \"-view\", 'fc-view'].concat(customClassNames));\n });\n };\n\n return ViewRoot;\n}(BaseComponent);\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\n\nfunction parseViewConfig(input) {\n var rawOptions = typeof input === 'function' ? {\n component: input\n } : input;\n var component = rawOptions.component;\n\n if (rawOptions.content) {\n component = createViewHookComponent(rawOptions); // TODO: remove content/classNames/didMount/etc from options?\n }\n\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions: rawOptions\n };\n}\n\nfunction createViewHookComponent(options) {\n return function (viewProps) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n return createElement(ViewRoot, {\n viewSpec: context.viewSpec\n }, function (viewElRef, viewClassNames) {\n var hookProps = __assign(__assign({}, viewProps), {\n nextDayThreshold: context.options.nextDayThreshold\n });\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.classNames,\n content: options.content,\n didMount: options.didMount,\n willUnmount: options.willUnmount,\n elRef: viewElRef\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"div\", {\n className: viewClassNames.concat(customClassNames).join(' '),\n ref: rootElRef\n }, innerContent);\n });\n });\n });\n };\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n var defaultConfigs = parseViewConfigs(defaultInputs);\n var overrideConfigs = parseViewConfigs(optionOverrides.views);\n var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, function (viewDef) {\n return buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults);\n });\n}\n\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n var durationInput = viewDef.overrides.duration || viewDef.defaults.duration || dynamicOptionOverrides.duration || optionOverrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n\n if (durationInput) {\n duration = createDurationCached(durationInput);\n\n if (duration) {\n // valid?\n var denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n\n var queryButtonText = function queryButtonText(optionsSubset) {\n var buttonTextMap = optionsSubset.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n\n return null;\n };\n\n var queryButtonTitle = function queryButtonTitle(optionsSubset) {\n var buttonHints = optionsSubset.buttonHints || {};\n var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n\n return null;\n };\n\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration: duration,\n durationUnit: durationUnit,\n singleUnit: singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: __assign(__assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) || queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) || viewDef.defaults.buttonText || queryButtonText(BASE_OPTION_DEFAULTS) || viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) || queryButtonTitle(optionOverrides) || viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) || viewDef.defaults.buttonHint || queryButtonTitle(BASE_OPTION_DEFAULTS) // will eventually fall back to buttonText\n\n };\n} // hack to get memoization working\n\n\nvar durationInputMap = {};\n\nfunction createDurationCached(durationInput) {\n var json = JSON.stringify(durationInput);\n var res = durationInputMap[json];\n\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n\n return res;\n}\n\nvar DateProfileGenerator =\n/** @class */\nfunction () {\n function DateProfileGenerator(props) {\n this.props = props;\n this.nowDate = getNow(props.nowInput, props.dateEnv);\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\n\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate, forceToValid) {\n var dateEnv = this.props.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, forceToValid);\n }; // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n\n\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate, forceToValid) {\n var dateEnv = this.props.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, forceToValid);\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\n\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) {\n forceToValid = true;\n }\n\n var props = this.props;\n var validRange;\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\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\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\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n\n activeRange = this.adjustActiveRange(activeRange);\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\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 slotMinTime: props.slotMinTime,\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n isValid: isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration) // 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\n\n DateProfileGenerator.prototype.buildValidRange = function () {\n var input = this.props.validRangeInput;\n var simpleInput = typeof input === 'function' ? input.call(this.props.calendarApi, this.nowDate) : input;\n return this.refineRange(simpleInput) || {\n start: null,\n end: null\n }; // completely open-ended\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\n\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var props = this.props;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n } else if (dayCount = this.props.dayCount) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n } else if (range = this.buildCustomVisibleRange(date)) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n } else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n\n return {\n duration: duration,\n unit: unit,\n range: range\n };\n };\n\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({\n day: 1\n });\n }; // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n\n\n DateProfileGenerator.prototype.adjustActiveRange = function (range) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n usesMinMaxTime = _a.usesMinMaxTime,\n slotMinTime = _a.slotMinTime,\n slotMaxTime = _a.slotMaxTime;\n var start = range.start,\n end = range.end;\n\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start); // necessary?\n\n start = dateEnv.add(start, slotMinTime);\n } // expand active range if slotMaxTime is beyond one day (why not when negative?)\n\n\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n\n return {\n start: start,\n 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\n\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n dateAlignment = _a.dateAlignment;\n var start;\n var end;\n var res; // compute what the alignment should be\n\n if (!dateAlignment) {\n var dateIncrement = this.props.dateIncrement;\n\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n } else {\n dateAlignment = unit;\n }\n } else {\n dateAlignment = unit;\n }\n } // if the view displays a single day or smaller\n\n\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = {\n start: start,\n end: end\n };\n }\n\n computeRes(); // if range is completely enveloped by hidden days, go past the hidden days\n\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n\n return res;\n }; // Builds the \"current\" range when a dayCount is specified.\n\n\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var _a = this.props,\n dateEnv = _a.dateEnv,\n dateAlignment = _a.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n\n do {\n end = addDays(end, 1);\n\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n\n return {\n start: start,\n 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\n\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var props = this.props;\n var input = props.visibleRangeInput;\n var simpleInput = typeof input === 'function' ? input.call(props.calendarApi, props.dateEnv.toDate(date)) : input;\n var range = this.refineRange(simpleInput);\n\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n\n return range;\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\n\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n }; // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n\n\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrement = this.props.dateIncrement;\n var customAlignment;\n\n if (dateIncrement) {\n return dateIncrement;\n }\n\n if (customAlignment = this.props.dateAlignment) {\n return createDuration(1, customAlignment);\n }\n\n if (fallback) {\n return fallback;\n }\n\n return createDuration({\n days: 1\n });\n };\n\n DateProfileGenerator.prototype.refineRange = function (rangeInput) {\n if (rangeInput) {\n var range = parseRange(rangeInput, this.props.dateEnv);\n\n if (range) {\n range = computeVisibleDayRange(range);\n }\n\n return range;\n }\n\n return null;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n\n\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n\n var dayCnt = 0;\n var i;\n\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n\n this.isHiddenDayHash = isHiddenDayHash;\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\n\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start,\n end = range.end;\n\n if (start) {\n start = this.skipHiddenDays(start);\n }\n\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n\n if (start == null || end == null || start < end) {\n return {\n start: start,\n end: end\n };\n }\n\n return null;\n }; // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n\n\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n\n return this.isHiddenDayHash[day];\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\n\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) {\n inc = 1;\n }\n\n if (isExclusive === void 0) {\n isExclusive = false;\n }\n\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n\n return date;\n };\n\n return DateProfileGenerator;\n}();\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n var _a;\n\n switch (action.type) {\n case 'SET_OPTION':\n return __assign(__assign({}, dynamicOptionOverrides), (_a = {}, _a[action.optionName] = action.rawOptionValue, _a));\n\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n var dp;\n\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n\n if (dp.isValid) {\n return dp;\n }\n\n break;\n\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n\n if (dp.isValid) {\n return dp;\n }\n\n break;\n }\n\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\n\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n\n switch (action.type) {\n case 'ADD_EVENT_SOURCES':\n // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n\n return eventSources;\n\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) : excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n\n default:\n return eventSources;\n }\n}\n\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\n\nfunction computeEventSourcesLoading(eventSources) {\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n var hash = {};\n\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\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n\n return __assign(__assign({}, eventSourceHash), hash);\n}\n\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) {\n return eventSource.sourceId !== sourceId;\n });\n}\n\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) {\n return isSourceDirty(eventSource, fetchRange, context);\n }), fetchRange, false, context);\n}\n\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n\n return !context.options.lazyFetching || !eventSource.fetchRange || eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start || fetchRange.end > eventSource.fetchRange.end;\n}\n\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n var nextSources = {};\n\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n } else {\n nextSources[sourceId] = source;\n }\n }\n\n return nextSources;\n}\n\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n var options = context.options,\n calendarApi = context.calendarApi;\n var sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n var fetchId = guid();\n sourceDef.fetch({\n eventSource: eventSource,\n range: fetchRange,\n isRefetch: isRefetch,\n context: context\n }, function (res) {\n var rawEvents = res.rawEvents;\n\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n }\n\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawEvents: rawEvents\n });\n }, function (error) {\n console.warn(error.message, error);\n\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n }\n\n if (eventSource.failure) {\n eventSource.failure(error);\n }\n\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign(__assign({}, eventSource), {\n isFetching: true,\n latestFetchId: fetchId\n });\n}\n\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n\n var eventSource = sourceHash[sourceId];\n\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), {\n isFetching: false,\n fetchRange: fetchRange\n }), _a));\n }\n\n return sourceHash;\n}\n\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, function (eventSource) {\n return doesSourceNeedRange(eventSource, context);\n });\n}\n\nfunction parseInitialSources(rawOptions, context) {\n var refiners = buildEventSourceRefiners(context);\n var rawSources = [].concat(rawOptions.eventSources || []);\n var sources = []; // parsed\n\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\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, context, refiners);\n\n if (source) {\n sources.push(source);\n }\n }\n\n return sources;\n}\n\nfunction doesSourceNeedRange(eventSource, context) {\n var defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n switch (action.type) {\n case 'RECEIVE_EVENTS':\n // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n\n case 'ADD_EVENTS':\n // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n\n case 'RESET_EVENTS':\n return action.eventStore;\n\n case 'MERGE_EVENTS':\n // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n\n return eventStore;\n\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n\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 });\n\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n\n default:\n return eventStore;\n }\n}\n\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\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, context), eventSource, context);\n\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n\n return eventStore;\n}\n\nfunction transformRawEvents(rawEvents, eventSource, context) {\n var calEachTransform = context.options.eventDataTransform;\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n\n return rawEvents;\n}\n\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n\n if (!func) {\n refinedEvents = rawEvents;\n } else {\n refinedEvents = [];\n\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var refinedEvent = func(rawEvent);\n\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n } else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n\n }\n }\n\n return refinedEvents;\n}\n\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n\n return mergeEventStores(eventStore, subset);\n}\n\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n var defs = eventStore.defs;\n var instances = mapHash(eventStore.instances, function (instance) {\n var def = defs[instance.defId];\n\n if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n\n return __assign(__assign({}, instance), {\n range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n },\n forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo,\n forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo\n });\n });\n return {\n defs: defs,\n instances: instances\n };\n}\n\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.sourceId !== sourceId;\n });\n} // QUESTION: why not just return instances? do a general object-property-exclusion util\n\n\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\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n\n case 'SELECT_DATES':\n return action.selection;\n\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n var newDrag;\n\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent\n };\n\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n var newResize;\n\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent\n };\n\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n var header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n var footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return {\n header: header,\n footer: footer\n };\n}\n\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n var sectionWidgets = {};\n var viewsWithButtons = [];\n var hasTitle = false;\n\n for (var sectionName in sectionStrHash) {\n var sectionStr = sectionStrHash[sectionName];\n var sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push.apply(viewsWithButtons, sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n\n return {\n sectionWidgets: sectionWidgets,\n viewsWithButtons: viewsWithButtons,\n hasTitle: hasTitle\n };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\n\n\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n var isRtl = calendarOptions.direction === 'rtl';\n var calendarCustomButtons = calendarOptions.customButtons || {};\n var calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n var calendarButtonText = calendarOptions.buttonText || {};\n var calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n var calendarButtonHints = calendarOptions.buttonHints || {};\n var sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n var viewsWithButtons = [];\n var hasTitle = false;\n var widgets = sectionSubstrs.map(function (buttonGroupStr) {\n return buttonGroupStr.split(',').map(function (buttonName) {\n if (buttonName === 'title') {\n hasTitle = true;\n return {\n buttonName: buttonName\n };\n }\n\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n\n var buttonText; // \"\n\n var buttonHint; // ^ for the title=\"\" attribute, for accessibility\n\n if (customButtonProps = calendarCustomButtons[buttonName]) {\n buttonClick = function buttonClick(ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n } else if (viewSpec = viewSpecs[buttonName]) {\n viewsWithButtons.push(buttonName);\n\n buttonClick = function buttonClick() {\n calendarApi.changeView(buttonName);\n };\n\n (buttonText = viewSpec.buttonTextOverride) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = viewSpec.buttonTextDefault);\n var textFallback = viewSpec.buttonTextOverride || viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride || viewSpec.buttonTitleDefault || calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n } else if (calendarApi[buttonName]) {\n // a calendarApi method\n buttonClick = function buttonClick() {\n calendarApi[buttonName]();\n };\n\n (buttonText = calendarButtonTextOverrides[buttonName]) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] || calendarButtonHints[prevOrNext], [calendarButtonText.year || 'year', 'year'], calendarButtonText[buttonName]);\n } else {\n buttonHint = function buttonHint(navUnit) {\n return formatWithOrdinals(calendarButtonHintOverrides[buttonName] || calendarButtonHints[buttonName], [calendarButtonText[navUnit] || navUnit, navUnit], calendarButtonText[buttonName]);\n };\n }\n }\n\n return {\n buttonName: buttonName,\n buttonClick: buttonClick,\n buttonIcon: buttonIcon,\n buttonText: buttonText,\n buttonHint: buttonHint\n };\n });\n });\n return {\n widgets: widgets,\n viewsWithButtons: viewsWithButtons,\n hasTitle: hasTitle\n };\n}\n\nvar eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta: function parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n\n return null;\n },\n fetch: function fetch(arg, success) {\n success({\n rawEvents: arg.eventSource.meta\n });\n }\n};\nvar arrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2]\n});\nvar eventSourceDef$1 = {\n parseMeta: function parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n\n return null;\n },\n fetch: function fetch(arg, success, failure) {\n var dateEnv = arg.context.dateEnv;\n var func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), function (rawEvents) {\n success({\n rawEvents: rawEvents\n }); // needs an object response\n }, failure);\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\n if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n } else {\n body = encodeParams(params);\n }\n\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n var parsed = false;\n var res = void 0;\n\n try {\n res = JSON.parse(xhr.responseText);\n parsed = true;\n } catch (err) {// will handle parsed=false\n }\n\n if (parsed) {\n successCallback(res, xhr);\n } else {\n failureCallback('Failure parsing JSON', xhr);\n }\n } else {\n failureCallback('Request failed', xhr);\n }\n };\n\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n\n xhr.send(body);\n}\n\nfunction injectQueryStringParams(url, params) {\n return url + (url.indexOf('?') === -1 ? '?' : '&') + encodeParams(params);\n}\n\nfunction encodeParams(params) {\n var parts = [];\n\n for (var key in params) {\n parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]));\n }\n\n return parts.join('&');\n}\n\nvar JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String\n};\nvar eventSourceDef = {\n parseMeta: function parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam\n };\n }\n\n return null;\n },\n fetch: function fetch(arg, success, failure) {\n var meta = arg.eventSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n success({\n rawEvents: rawEvents,\n xhr: xhr\n });\n }, function (errorMessage, xhr) {\n failure({\n message: errorMessage,\n xhr: xhr\n });\n });\n }\n};\nvar jsonFeedEventSourcePlugin = createPlugin({\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef]\n});\n\nfunction buildRequestParams(meta, range, context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n\n if (startParam == null) {\n startParam = options.startParam;\n }\n\n endParam = meta.endParam;\n\n if (endParam == null) {\n endParam = options.endParam;\n }\n\n timeZoneParam = meta.timeZoneParam;\n\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n } // retrieve any outbound GET/POST data from the options\n\n\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n } else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n\n __assign(params, customRequestParams);\n\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n\n return params;\n}\n\nvar SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity\n};\nvar recurring = {\n parse: function parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n var recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null\n };\n var duration = void 0;\n\n if (refined.duration) {\n duration = refined.duration;\n }\n\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration: duration,\n typeData: recurringData // doesn't need endTime anymore but oh well\n\n };\n }\n\n return null;\n },\n expand: function expand(typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, {\n start: typeData.startRecur,\n end: typeData.endRecur\n });\n\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n\n return [];\n }\n};\nvar simpleRecurringEventsPlugin = createPlugin({\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS\n});\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\n while (dayMarker < endMarker) {\n var instanceStart // if everyday, or this particular day-of-week\n = void 0; // if everyday, or this particular day-of-week\n\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n } else {\n instanceStart = dayMarker;\n }\n\n instanceStarts.push(instanceStart);\n }\n\n dayMarker = addDays(dayMarker, 1);\n }\n\n return instanceStarts;\n}\n\nvar changeHandlerPlugin = createPlugin({\n optionChangeHandlers: {\n events: function events(_events, context) {\n handleEventSources([_events], context);\n },\n eventSources: handleEventSources\n }\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\n\nfunction handleEventSources(inputs, context) {\n var unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n var newInputs = [];\n\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n\n for (var i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n\n inputFound = true;\n break;\n }\n }\n\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId\n });\n }\n\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', __assign(__assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), {\n view: context.viewApi\n }));\n}\n\nfunction handleEventStore(eventStore, context) {\n var emitter = context.emitter;\n\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\n\n\nvar globalPlugins = [arrayEventSourcePlugin, funcEventSourcePlugin, jsonFeedEventSourcePlugin, simpleRecurringEventsPlugin, changeHandlerPlugin, createPlugin({\n isLoadingFuncs: [function (state) {\n return computeEventSourcesLoading(state.eventSources);\n }],\n contentTypeHandlers: {\n html: buildHtmlRenderer,\n domNodes: buildDomNodeRenderer\n },\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore\n }\n})];\n\nfunction buildHtmlRenderer() {\n var currentEl = null;\n var currentHtml = '';\n\n function render(el, html) {\n if (el !== currentEl || html !== currentHtml) {\n el.innerHTML = html;\n }\n\n currentEl = el;\n currentHtml = html;\n }\n\n function destroy() {\n currentEl.innerHTML = '';\n currentEl = null;\n currentHtml = '';\n }\n\n return {\n render: render,\n destroy: destroy\n };\n}\n\nfunction buildDomNodeRenderer() {\n var currentEl = null;\n var currentDomNodes = [];\n\n function render(el, domNodes) {\n var newDomNodes = Array.prototype.slice.call(domNodes);\n\n if (el !== currentEl || !isArraysEqual(currentDomNodes, newDomNodes)) {\n // append first, remove second (for scroll resetting)\n for (var _i = 0, newDomNodes_1 = newDomNodes; _i < newDomNodes_1.length; _i++) {\n var newNode = newDomNodes_1[_i];\n el.appendChild(newNode);\n }\n\n destroy();\n }\n\n currentEl = el;\n currentDomNodes = newDomNodes;\n }\n\n function destroy() {\n currentDomNodes.forEach(removeElement);\n currentDomNodes = [];\n currentEl = null;\n }\n\n return {\n render: render,\n destroy: destroy\n };\n}\n\nvar DelayedRunner =\n/** @class */\nfunction () {\n function DelayedRunner(drainedOption) {\n this.drainedOption = drainedOption;\n this.isRunning = false;\n this.isDirty = false;\n this.pauseDepths = {};\n this.timeoutId = 0;\n }\n\n DelayedRunner.prototype.request = function (delay) {\n this.isDirty = true;\n\n if (!this.isPaused()) {\n this.clearTimeout();\n\n if (delay == null) {\n this.tryDrain();\n } else {\n this.timeoutId = setTimeout( // NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n };\n\n DelayedRunner.prototype.pause = function (scope) {\n if (scope === void 0) {\n scope = '';\n }\n\n var pauseDepths = this.pauseDepths;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n };\n\n DelayedRunner.prototype.resume = function (scope, force) {\n if (scope === void 0) {\n scope = '';\n }\n\n var pauseDepths = this.pauseDepths;\n\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n } else {\n pauseDepths[scope] -= 1;\n var depth = pauseDepths[scope];\n\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n\n this.tryDrain();\n }\n };\n\n DelayedRunner.prototype.isPaused = function () {\n return Object.keys(this.pauseDepths).length;\n };\n\n DelayedRunner.prototype.tryDrain = function () {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n\n this.isRunning = false;\n }\n };\n\n DelayedRunner.prototype.clear = function () {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n };\n\n DelayedRunner.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n };\n\n DelayedRunner.prototype.drained = function () {\n if (this.drainedOption) {\n this.drainedOption();\n }\n };\n\n return DelayedRunner;\n}();\n\nvar TaskRunner =\n/** @class */\nfunction () {\n function TaskRunner(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n\n TaskRunner.prototype.request = function (task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n };\n\n TaskRunner.prototype.pause = function (scope) {\n this.delayedRunner.pause(scope);\n };\n\n TaskRunner.prototype.resume = function (scope, force) {\n this.delayedRunner.resume(scope, force);\n };\n\n TaskRunner.prototype.drain = function () {\n var queue = this.queue;\n\n while (queue.length) {\n var completedTasks = [];\n var task = void 0;\n\n while (task = queue.shift()) {\n this.runTask(task);\n completedTasks.push(task);\n }\n\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n\n };\n\n TaskRunner.prototype.runTask = function (task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n };\n\n TaskRunner.prototype.drained = function (completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n };\n\n return TaskRunner;\n}(); // Computes what the title at the top of the calendarApi should be for this view\n\n\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n var range; // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n } else {\n // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator\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`.\n\n\nfunction buildTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n\n if (currentRangeUnit === 'year') {\n return {\n year: 'numeric'\n };\n }\n\n if (currentRangeUnit === 'month') {\n return {\n year: 'numeric',\n month: 'long'\n }; // like \"September 2014\"\n }\n\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n };\n } // one day. longer, like \"September 9 2014\"\n\n\n return {\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n} // in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\n\n\nvar CalendarDataManager =\n/** @class */\nfunction () {\n function CalendarDataManager(props) {\n var _this = this;\n\n this.computeOptionsData = memoize(this._computeOptionsData);\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n\n this.getCurrentData = function () {\n return _this.data;\n };\n\n this.dispatch = function (action) {\n _this.actionRunner.request(action); // protects against recursive calls to _handleAction\n\n };\n\n this.props = props;\n this.actionRunner.pause();\n var dynamicOptionOverrides = {};\n var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n var currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides); // wire things up\n // TODO: not DRY\n\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n var currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n var dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n\n var calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData\n }; // needs to be after setThisContext\n\n for (var _i = 0, _a = optionsData.pluginHooks.contextInit; _i < _a.length; _i++) {\n var callback = _a[_i];\n callback(calendarContext);\n } // NOT DRY\n\n\n var eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n var initialState = {\n dynamicOptionOverrides: dynamicOptionOverrides,\n currentViewType: currentViewType,\n currentDate: currentDate,\n dateProfile: dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources: eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig\n };\n\n var contextAndState = __assign(__assign({}, calendarContext), initialState);\n\n for (var _b = 0, _c = optionsData.pluginHooks.reducers; _b < _c.length; _b++) {\n var reducer = _c[_b];\n\n __assign(initialState, reducer(null, null, contextAndState));\n }\n\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n\n CalendarDataManager.prototype.resetOptions = function (optionOverrides, append) {\n var props = this.props;\n props.optionOverrides = append ? __assign(__assign({}, props.optionOverrides), optionOverrides) : optionOverrides;\n this.actionRunner.request({\n type: 'NOTHING'\n });\n };\n\n CalendarDataManager.prototype._handleAction = function (action) {\n var _a = this,\n props = _a.props,\n state = _a.state,\n emitter = _a.emitter;\n\n var dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n var optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n var currentViewType = reduceViewType(state.currentViewType, action);\n var currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides); // wire things up\n // TODO: not DRY\n\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n var calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: emitter,\n getCurrentData: this.getCurrentData\n };\n var currentDate = state.currentDate,\n dateProfile = state.dateProfile;\n\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) {\n // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n\n var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n var eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n var isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n\n var renderableEventStore = isEventsLoading && !currentViewData.options.progressiveEventRendering ? state.renderableEventStore || eventStore : // try from previous state\n eventStore;\n\n var _b = this.buildViewUiProps(calendarContext),\n eventUiSingleBase = _b.eventUiSingleBase,\n selectionConfig = _b.selectionConfig; // will memoize obj\n\n\n var eventUiBySource = this.buildEventUiBySource(eventSources);\n var eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n var newState = {\n dynamicOptionOverrides: dynamicOptionOverrides,\n currentViewType: currentViewType,\n currentDate: currentDate,\n dateProfile: dateProfile,\n eventSources: eventSources,\n eventStore: eventStore,\n renderableEventStore: renderableEventStore,\n selectionConfig: selectionConfig,\n eventUiBases: eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action)\n };\n\n var contextAndState = __assign(__assign({}, calendarContext), newState);\n\n for (var _i = 0, _c = optionsData.pluginHooks.reducers; _i < _c.length; _i++) {\n var reducer = _c[_i];\n\n __assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n\n }\n\n var wasLoading = computeIsLoading(state, calendarContext);\n var isLoading = computeIsLoading(newState, calendarContext); // TODO: use propSetHandlers in plugin system\n\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n } else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n\n this.state = newState;\n\n if (props.onAction) {\n props.onAction(action);\n }\n };\n\n CalendarDataManager.prototype.updateData = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n var oldData = this.data;\n var optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n var currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n\n var data = this.data = __assign(__assign(__assign({\n viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv),\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData\n }, optionsData), currentViewData), state);\n\n var changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n var oldCalendarOptions = oldData && oldData.calendarOptions;\n var newCalendarOptions = optionsData.calendarOptions;\n\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n }\n\n for (var optionName in changeHandlers) {\n if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n\n if (props.onData) {\n props.onData(data);\n }\n };\n\n CalendarDataManager.prototype._computeOptionsData = function (optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n var _a = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides),\n refinedOptions = _a.refinedOptions,\n pluginHooks = _a.pluginHooks,\n localeDefaults = _a.localeDefaults,\n availableLocaleData = _a.availableLocaleData,\n extra = _a.extra;\n\n warnUnknownOptions(extra);\n var dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n var viewSpecs = this.buildViewSpecs(pluginHooks.views, optionOverrides, dynamicOptionOverrides, localeDefaults);\n var theme = this.buildTheme(refinedOptions, pluginHooks);\n var toolbarConfig = this.parseToolbars(refinedOptions, optionOverrides, theme, viewSpecs, calendarApi);\n return {\n calendarOptions: refinedOptions,\n pluginHooks: pluginHooks,\n dateEnv: dateEnv,\n viewSpecs: viewSpecs,\n theme: theme,\n toolbarConfig: toolbarConfig,\n localeDefaults: localeDefaults,\n availableRawLocales: availableLocaleData.map\n };\n }; // always called from behind a memoizer\n\n\n CalendarDataManager.prototype.processRawCalendarOptions = function (optionOverrides, dynamicOptionOverrides) {\n var _a = mergeRawOptions([BASE_OPTION_DEFAULTS, optionOverrides, dynamicOptionOverrides]),\n locales = _a.locales,\n locale = _a.locale;\n\n var availableLocaleData = this.organizeRawLocales(locales);\n var availableRawLocales = availableLocaleData.map;\n var localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n var pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n\n var refiners = this.currentCalendarOptionsRefiners = __assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n\n var extra = {};\n var raw = mergeRawOptions([BASE_OPTION_DEFAULTS, localeDefaults, optionOverrides, dynamicOptionOverrides]);\n var refined = {};\n var currentRaw = this.currentCalendarOptionsInput;\n var currentRefined = this.currentCalendarOptionsRefined;\n var anyChanges = false;\n\n for (var optionName in raw) {\n if (optionName !== 'plugins') {\n // because plugins is special-cased\n if (raw[optionName] === currentRaw[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && optionName in currentRaw && COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])) {\n refined[optionName] = currentRefined[optionName];\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n } else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n }\n\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n }\n\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks: pluginHooks,\n availableLocaleData: availableLocaleData,\n localeDefaults: localeDefaults,\n extra: extra\n };\n };\n\n CalendarDataManager.prototype._computeCurrentViewData = function (viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n var viewSpec = optionsData.viewSpecs[viewType];\n\n if (!viewSpec) {\n throw new Error(\"viewType \\\"\" + viewType + \"\\\" is not available. Please make sure you've loaded all neccessary plugins\");\n }\n\n var _a = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides),\n refinedOptions = _a.refinedOptions,\n extra = _a.extra;\n\n warnUnknownOptions(extra);\n var dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n monthMode: refinedOptions.monthMode,\n fixedWeekCount: refinedOptions.fixedWeekCount\n });\n var viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return {\n viewSpec: viewSpec,\n options: refinedOptions,\n dateProfileGenerator: dateProfileGenerator,\n viewApi: viewApi\n };\n };\n\n CalendarDataManager.prototype.processRawViewOptions = function (viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n var raw = mergeRawOptions([BASE_OPTION_DEFAULTS, viewSpec.optionDefaults, localeDefaults, optionOverrides, viewSpec.optionOverrides, dynamicOptionOverrides]);\n\n var refiners = __assign(__assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n\n var refined = {};\n var currentRaw = this.currentViewOptionsInput;\n var currentRefined = this.currentViewOptionsRefined;\n var anyChanges = false;\n var extra = {};\n\n for (var optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName])) {\n refined[optionName] = currentRefined[optionName];\n } else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] || COMPLEX_OPTION_COMPARATORS[optionName] && COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName])) {\n if (optionName in this.currentCalendarOptionsRefined) {\n // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n } else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n } else {\n extra[optionName] = raw[optionName];\n }\n\n anyChanges = true;\n }\n }\n\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra: extra\n };\n };\n\n return CalendarDataManager;\n}();\n\nfunction buildDateEnv(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n var locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone: timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale: locale,\n weekNumberCalculation: weekNumberCalculation,\n firstDay: firstDay,\n weekText: weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator: defaultSeparator\n });\n}\n\nfunction buildTheme(options, pluginHooks) {\n var ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\n\nfunction buildDateProfileGenerator(props) {\n var DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\n\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewApi(type, getCurrentData, dateEnv);\n}\n\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) {\n return eventSource.ui;\n });\n}\n\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = {\n '': eventUiSingleBase\n };\n\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n\n return eventUiBases;\n}\n\nfunction buildViewUiProps(calendarContext) {\n var options = calendarContext.options;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor // classNames: options.eventClassNames // render hook will handle this\n\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow\n }, calendarContext)\n };\n}\n\nfunction computeIsLoading(state, context) {\n for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {\n var isLoadingFunc = _a[_i];\n\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\n\nfunction warnUnknownOptions(options, viewName) {\n for (var optionName in options) {\n console.warn(\"Unknown option '\" + optionName + \"'\" + (viewName ? \" for view '\" + viewName + \"'\" : ''));\n }\n} // TODO: move this to react plugin?\n\n\nvar CalendarDataProvider =\n/** @class */\nfunction (_super) {\n __extends(CalendarDataProvider, _super);\n\n function CalendarDataProvider(props) {\n var _this = _super.call(this, props) || this;\n\n _this.handleData = function (data) {\n if (!_this.dataManager) {\n // still within initial run, before assignment in constructor\n // eslint-disable-next-line react/no-direct-mutation-state\n _this.state = data; // can't use setState yet\n } else {\n _this.setState(data);\n }\n };\n\n _this.dataManager = new CalendarDataManager({\n optionOverrides: props.optionOverrides,\n calendarApi: props.calendarApi,\n onData: _this.handleData\n });\n return _this;\n }\n\n CalendarDataProvider.prototype.render = function () {\n return this.props.children(this.state);\n };\n\n CalendarDataProvider.prototype.componentDidUpdate = function (prevProps) {\n var newOptionOverrides = this.props.optionOverrides;\n\n if (newOptionOverrides !== prevProps.optionOverrides) {\n // prevent recursive handleData\n this.dataManager.resetOptions(newOptionOverrides);\n }\n };\n\n return CalendarDataProvider;\n}(Component); // HELPERS\n\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\n\n\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nvar NamedTimeZoneImpl =\n/** @class */\nfunction () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n\n return NamedTimeZoneImpl;\n}();\n\nvar SegHierarchy =\n/** @class */\nfunction () {\n function SegHierarchy() {\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n\n this.maxStackCnt = -1; // -1 means no max\n\n this.levelCoords = []; // ordered\n\n this.entriesByLevel = []; // parallel with levelCoords\n\n this.stackCnts = {}; // TODO: use better technique!?\n }\n\n SegHierarchy.prototype.addSegs = function (inputs) {\n var hiddenEntries = [];\n\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n this.insertEntry(input, hiddenEntries);\n }\n\n return hiddenEntries;\n };\n\n SegHierarchy.prototype.insertEntry = function (entry, hiddenEntries) {\n var insertion = this.findInsertion(entry);\n\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n return 1;\n }\n\n return this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n };\n\n SegHierarchy.prototype.isInsertionValid = function (insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) && (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n }; // returns number of new entries inserted\n\n\n SegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n\n hiddenEntries.push(entry);\n return 0;\n };\n\n SegHierarchy.prototype.splitEntry = function (entry, barrier, hiddenEntries) {\n var partCnt = 0;\n var splitHiddenEntries = [];\n var entrySpan = entry.span;\n var barrierSpan = barrier.span;\n\n if (entrySpan.start < barrierSpan.start) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: {\n start: entrySpan.start,\n end: barrierSpan.start\n }\n }, splitHiddenEntries);\n }\n\n if (entrySpan.end > barrierSpan.end) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: {\n start: barrierSpan.end,\n end: entrySpan.end\n }\n }, splitHiddenEntries);\n }\n\n if (partCnt) {\n hiddenEntries.push.apply(hiddenEntries, __spreadArray([{\n index: entry.index,\n thickness: entry.thickness,\n span: intersectSpans(barrierSpan, entrySpan) // guaranteed to intersect\n\n }], splitHiddenEntries));\n return partCnt;\n }\n\n hiddenEntries.push(entry);\n return 0;\n };\n\n SegHierarchy.prototype.insertEntryAt = function (entry, insertion) {\n var _a = this,\n entriesByLevel = _a.entriesByLevel,\n levelCoords = _a.levelCoords;\n\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n } else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n };\n\n SegHierarchy.prototype.findInsertion = function (newEntry) {\n var _a = this,\n levelCoords = _a.levelCoords,\n entriesByLevel = _a.entriesByLevel,\n strictOrder = _a.strictOrder,\n stackCnts = _a.stackCnts;\n\n var levelCnt = levelCoords.length;\n var candidateCoord = 0;\n var touchingLevel = -1;\n var touchingLateral = -1;\n var touchingEntry = null;\n var stackCnt = 0;\n\n for (var trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n var trackingCoord = levelCoords[trackingLevel]; // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n\n if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {\n break;\n }\n\n var trackingEntries = entriesByLevel[trackingLevel];\n var trackingEntry = void 0;\n var searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n\n var lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n var trackingEntryBottom = trackingCoord + trackingEntry.thickness; // intersects into the top of the candidate?\n\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n } // butts up against top of candidate? (will happen if just intersected as well)\n\n\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n }\n\n lateralIndex += 1;\n }\n } // the destination level will be after touchingEntry's level. find it\n\n\n var destLevel = 0;\n\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n } // if adding to an existing level, find where to insert\n\n\n var destLateral = -1;\n\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n }\n\n return {\n touchingLevel: touchingLevel,\n touchingLateral: touchingLateral,\n touchingEntry: touchingEntry,\n stackCnt: stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral\n };\n }; // sorted by levelCoord (lowest to highest)\n\n\n SegHierarchy.prototype.toRects = function () {\n var _a = this,\n entriesByLevel = _a.entriesByLevel,\n levelCoords = _a.levelCoords;\n\n var levelCnt = entriesByLevel.length;\n var rects = [];\n\n for (var level = 0; level < levelCnt; level += 1) {\n var entries = entriesByLevel[level];\n var levelCoord = levelCoords[level];\n\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var entry = entries_1[_i];\n rects.push(__assign(__assign({}, entry), {\n levelCoord: levelCoord\n }));\n }\n }\n\n return rects;\n };\n\n return SegHierarchy;\n}();\n\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\n\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n} // returns groups with entries sorted by input order\n\n\nfunction groupIntersectingEntries(entries) {\n var merges = [];\n\n for (var _i = 0, entries_2 = entries; _i < entries_2.length; _i++) {\n var entry = entries_2[_i];\n var filteredMerges = [];\n var hungryMerge = {\n span: entry.span,\n entries: [entry]\n };\n\n for (var _a = 0, merges_1 = merges; _a < merges_1.length; _a++) {\n var merge = merges_1[_a];\n\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries),\n span: joinSpans(merge.span, hungryMerge.span)\n };\n } else {\n filteredMerges.push(merge);\n }\n }\n\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n\n return merges;\n}\n\nfunction joinSpans(span0, span1) {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end)\n };\n}\n\nfunction intersectSpans(span0, span1) {\n var start = Math.max(span0.start, span1.start);\n var end = Math.min(span0.end, span1.end);\n\n if (start < end) {\n return {\n start: start,\n end: end\n };\n }\n\n return null;\n} // general util\n// ---------------------------------------------------------------------------------------------------------------------\n\n\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\n\nfunction binarySearch(a, searchVal, getItemVal) {\n var startIndex = 0;\n var endIndex = a.length; // exclusive\n\n if (!endIndex || searchVal < getItemVal(a[startIndex])) {\n // no items OR before first item\n return [0, 0];\n }\n\n if (searchVal > getItemVal(a[endIndex - 1])) {\n // after last item\n return [endIndex, 0];\n }\n\n while (startIndex < endIndex) {\n var middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n var middleVal = getItemVal(a[middleIndex]);\n\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n } else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n } else {\n // equal!\n return [middleIndex, 1];\n }\n }\n\n return [startIndex, 0];\n}\n\nvar Interaction =\n/** @class */\nfunction () {\n function Interaction(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n\n Interaction.prototype.destroy = function () {};\n\n return Interaction;\n}();\n\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null\n };\n}\n\nfunction interactionSettingsToStore(settings) {\n var _a;\n\n return _a = {}, _a[settings.component.uid] = settings, _a;\n} // global state\n\n\nvar interactionSettingsStore = {};\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*/\n\nvar ElementDragging =\n/** @class */\nfunction () {\n function ElementDragging(el, selector) {\n this.emitter = new Emitter();\n }\n\n ElementDragging.prototype.destroy = function () {};\n\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {// optional if subclass doesn't want to support a mirror\n };\n\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {// optional if subclass doesn't want to support a mirror\n };\n\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {// optional\n };\n\n return ElementDragging;\n}(); // TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\n\n\nvar config = {};\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\n\nvar DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String\n};\n\nfunction parseDragMeta(raw) {\n var _a = refineProps(raw, DRAG_META_REFINERS),\n refined = _a.refined,\n extra = _a.extra;\n\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra\n };\n}\n\nvar ToolbarSection =\n/** @class */\nfunction (_super) {\n __extends(ToolbarSection, _super);\n\n function ToolbarSection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ToolbarSection.prototype.render = function () {\n var _this = this;\n\n var children = this.props.widgetGroups.map(function (widgetGroup) {\n return _this.renderWidgetGroup(widgetGroup);\n });\n return createElement.apply(void 0, __spreadArray(['div', {\n className: 'fc-toolbar-chunk'\n }], children));\n };\n\n ToolbarSection.prototype.renderWidgetGroup = function (widgetGroup) {\n var props = this.props;\n var theme = this.context.theme;\n var children = [];\n var isOnlyButtons = true;\n\n for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {\n var widget = widgetGroup_1[_i];\n var buttonName = widget.buttonName,\n buttonClick = widget.buttonClick,\n buttonText = widget.buttonText,\n buttonIcon = widget.buttonIcon,\n buttonHint = widget.buttonHint;\n\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", {\n className: \"fc-toolbar-title\",\n id: props.titleId\n }, props.title));\n } else {\n var isPressed = buttonName === props.activeButton;\n var isDisabled = !props.isTodayEnabled && buttonName === 'today' || !props.isPrevEnabled && buttonName === 'prev' || !props.isNextEnabled && buttonName === 'next';\n var buttonClasses = [\"fc-\" + buttonName + \"-button\", theme.getClass('button')];\n\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n\n children.push(createElement(\"button\", {\n type: \"button\",\n title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint,\n disabled: isDisabled,\n \"aria-pressed\": isPressed,\n className: buttonClasses.join(' '),\n onClick: buttonClick\n }, buttonText || (buttonIcon ? createElement(\"span\", {\n className: buttonIcon\n }) : '')));\n }\n }\n\n if (children.length > 1) {\n var groupClassName = isOnlyButtons && theme.getClass('buttonGroup') || '';\n return createElement.apply(void 0, __spreadArray(['div', {\n className: groupClassName\n }], children));\n }\n\n return children[0];\n };\n\n return ToolbarSection;\n}(BaseComponent);\n\nvar Toolbar =\n/** @class */\nfunction (_super) {\n __extends(Toolbar, _super);\n\n function Toolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Toolbar.prototype.render = function () {\n var _a = this.props,\n model = _a.model,\n extraClassName = _a.extraClassName;\n var forceLtr = false;\n var startContent;\n var endContent;\n var sectionWidgets = model.sectionWidgets;\n var centerContent = sectionWidgets.center;\n\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n } else {\n startContent = sectionWidgets.start;\n }\n\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n } else {\n endContent = sectionWidgets.end;\n }\n\n var classNames = [extraClassName || '', 'fc-toolbar', forceLtr ? 'fc-toolbar-ltr' : ''];\n return createElement(\"div\", {\n className: classNames.join(' ')\n }, this.renderSection('start', startContent || []), this.renderSection('center', centerContent || []), this.renderSection('end', endContent || []));\n };\n\n Toolbar.prototype.renderSection = function (key, widgetGroups) {\n var props = this.props;\n return createElement(ToolbarSection, {\n key: key,\n widgetGroups: widgetGroups,\n title: props.title,\n navUnit: props.navUnit,\n activeButton: props.activeButton,\n isTodayEnabled: props.isTodayEnabled,\n isPrevEnabled: props.isPrevEnabled,\n isNextEnabled: props.isNextEnabled,\n titleId: props.titleId\n });\n };\n\n return Toolbar;\n}(BaseComponent); // TODO: do function component?\n\n\nvar ViewContainer =\n/** @class */\nfunction (_super) {\n __extends(ViewContainer, _super);\n\n function ViewContainer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n availableWidth: null\n };\n\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n\n _this.updateAvailableWidth();\n };\n\n _this.handleResize = function () {\n _this.updateAvailableWidth();\n };\n\n return _this;\n }\n\n ViewContainer.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n var aspectRatio = props.aspectRatio;\n var classNames = ['fc-view-harness', aspectRatio || props.liquid || props.height ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive' // let the view do the height\n ];\n var height = '';\n var paddingBottom = '';\n\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n } else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = 1 / aspectRatio * 100 + \"%\";\n }\n } else {\n height = props.height || '';\n }\n\n return createElement(\"div\", {\n \"aria-labelledby\": props.labeledById,\n ref: this.handleEl,\n className: classNames.join(' '),\n style: {\n height: height,\n paddingBottom: paddingBottom\n }\n }, props.children);\n };\n\n ViewContainer.prototype.componentDidMount = function () {\n this.context.addResizeHandler(this.handleResize);\n };\n\n ViewContainer.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleResize);\n };\n\n ViewContainer.prototype.updateAvailableWidth = function () {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({\n availableWidth: this.el.offsetWidth\n });\n }\n };\n\n return ViewContainer;\n}(BaseComponent);\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\n\n\nvar EventClicking =\n/** @class */\nfunction (_super) {\n __extends(EventClicking, _super);\n\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var context = component.context;\n var seg = getElSeg(segEl);\n\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-event-forced-url');\n var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventApi(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi\n });\n\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n\n _this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n _this.handleSegClick);\n return _this;\n }\n\n return EventClicking;\n}(Interaction);\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\n\n\nvar EventHovering =\n/** @class */\nfunction (_super) {\n __extends(EventHovering, _super);\n\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this; // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n\n\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) {\n // TODO: better way to make sure not hovering over more+ link or its wrapper\n _this.currentSegEl = segEl;\n\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n _this.currentSegEl = null;\n\n _this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n\n _this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n _this.handleSegEnter, _this.handleSegLeave);\n return _this;\n }\n\n EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\n };\n\n EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n var component = this.component;\n var context = component.context;\n var seg = getElSeg(segEl);\n\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventApi(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi\n });\n }\n };\n\n return EventHovering;\n}(Interaction);\n\nvar CalendarContent =\n/** @class */\nfunction (_super) {\n __extends(CalendarContent, _super);\n\n function CalendarContent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.buildViewContext = memoize(buildViewContext);\n _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n _this.buildToolbarProps = memoize(buildToolbarProps);\n _this.headerRef = createRef();\n _this.footerRef = createRef();\n _this.interactionsStore = {}; // eslint-disable-next-line\n\n _this.state = {\n viewLabelId: getUniqueDomId()\n }; // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n\n _this.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [EventClicking, EventHovering];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(_this.props.pluginHooks.componentInteractions);\n var interactions = interactionClasses.map(function (TheInteractionClass) {\n return new TheInteractionClass(settings);\n });\n _this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n\n _this.unregisterInteractiveComponent = function (component) {\n var listeners = _this.interactionsStore[component.uid];\n\n if (listeners) {\n for (var _i = 0, listeners_1 = listeners; _i < listeners_1.length; _i++) {\n var listener = listeners_1[_i];\n listener.destroy();\n }\n\n delete _this.interactionsStore[component.uid];\n }\n\n delete interactionSettingsStore[component.uid];\n }; // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n\n\n _this.resizeRunner = new DelayedRunner(function () {\n _this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n\n\n _this.props.emitter.trigger('windowResize', {\n view: _this.props.viewApi\n });\n });\n\n _this.handleWindowResize = function (ev) {\n var options = _this.props.options;\n\n if (options.handleWindowResize && ev.target === window // avoid jqui events\n ) {\n _this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n\n return _this;\n }\n /*\n renders INSIDE of an outer div\n */\n\n\n CalendarContent.prototype.render = function () {\n var props = this.props;\n var toolbarConfig = props.toolbarConfig,\n options = props.options;\n var toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n var viewVGrow = false;\n var viewHeight = '';\n var viewAspectRatio;\n\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n } else if (options.height != null) {\n viewVGrow = true;\n } else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n } else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n\n var viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n var viewLabelId = toolbarConfig.header && toolbarConfig.header.hasTitle ? this.state.viewLabelId : '';\n return createElement(ViewContextType.Provider, {\n value: viewContext\n }, toolbarConfig.header && createElement(Toolbar, __assign({\n ref: this.headerRef,\n extraClassName: \"fc-header-toolbar\",\n model: toolbarConfig.header,\n titleId: viewLabelId\n }, toolbarProps)), createElement(ViewContainer, {\n liquid: viewVGrow,\n height: viewHeight,\n aspectRatio: viewAspectRatio,\n labeledById: viewLabelId\n }, this.renderView(props), this.buildAppendContent()), toolbarConfig.footer && createElement(Toolbar, __assign({\n ref: this.footerRef,\n extraClassName: \"fc-footer-toolbar\",\n model: toolbarConfig.footer,\n titleId: \"\"\n }, toolbarProps)));\n };\n\n CalendarContent.prototype.componentDidMount = function () {\n var props = this.props;\n this.calendarInteractions = props.pluginHooks.calendarInteractions.map(function (CalendarInteractionClass) {\n return new CalendarInteractionClass(props);\n });\n window.addEventListener('resize', this.handleWindowResize);\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n\n for (var propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n };\n\n CalendarContent.prototype.componentDidUpdate = function (prevProps) {\n var props = this.props;\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n\n for (var propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n };\n\n CalendarContent.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n\n this.props.emitter.trigger('_unmount');\n };\n\n CalendarContent.prototype.buildAppendContent = function () {\n var props = this.props;\n var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) {\n return buildAppendContent(props);\n });\n return createElement.apply(void 0, __spreadArray([Fragment, {}], children));\n };\n\n CalendarContent.prototype.renderView = function (props) {\n var pluginHooks = props.pluginHooks;\n var viewSpec = props.viewSpec;\n var viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint\n };\n var transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n\n __assign(viewProps, transformer.transform(viewProps, props));\n }\n\n var ViewComponent = viewSpec.component;\n return createElement(ViewComponent, __assign({}, viewProps));\n };\n\n return CalendarContent;\n}(PureComponent);\n\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n var todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n\n var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title: title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid\n };\n} // Plugin\n// -----------------------------------------------------------------------------------------------------------------\n\n\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (TheClass) {\n return new TheClass();\n });\n}\n\nvar CalendarRoot =\n/** @class */\nfunction (_super) {\n __extends(CalendarRoot, _super);\n\n function CalendarRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n forPrint: false\n };\n\n _this.handleBeforePrint = function () {\n _this.setState({\n forPrint: true\n });\n };\n\n _this.handleAfterPrint = function () {\n _this.setState({\n forPrint: false\n });\n };\n\n return _this;\n }\n\n CalendarRoot.prototype.render = function () {\n var props = this.props;\n var options = props.options;\n var forPrint = this.state.forPrint;\n var isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n var height = !isHeightAuto && options.height != null ? options.height : '';\n var classNames = ['fc', forPrint ? 'fc-media-print' : 'fc-media-screen', \"fc-direction-\" + options.direction, props.theme.getClass('root')];\n\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n\n return props.children(classNames, height, isHeightAuto, forPrint);\n };\n\n CalendarRoot.prototype.componentDidMount = function () {\n var emitter = this.props.emitter;\n emitter.on('_beforeprint', this.handleBeforePrint);\n emitter.on('_afterprint', this.handleAfterPrint);\n };\n\n CalendarRoot.prototype.componentWillUnmount = function () {\n var emitter = this.props.emitter;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n };\n\n return CalendarRoot;\n}(BaseComponent); // Computes a default column header formatting string if `colFormat` is not explicitly defined\n\n\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 createFormatter({\n weekday: 'short'\n }); // \"Sat\"\n }\n\n if (dayCnt > 1) {\n return createFormatter({\n weekday: 'short',\n month: 'numeric',\n day: 'numeric',\n omitCommas: true\n }); // \"Sat 11/12\"\n }\n\n return createFormatter({\n weekday: 'long'\n }); // \"Saturday\"\n}\n\nvar CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\n\nfunction renderInner$1(hookProps) {\n return hookProps.text;\n}\n\nvar TableDateCell =\n/** @class */\nfunction (_super) {\n __extends(TableDateCell, _super);\n\n function TableDateCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TableDateCell.prototype.render = function () {\n var _a = this.context,\n dateEnv = _a.dateEnv,\n options = _a.options,\n theme = _a.theme,\n viewApi = _a.viewApi;\n var props = this.props;\n var date = props.date,\n dateProfile = props.dateProfile;\n var dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n var classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n var text = dateEnv.format(date, props.dayHeaderFormat); // if colCnt is 1, we are already in a day-view and don't need a navlink\n\n var navLinkAttrs = !dayMeta.isDisabled && props.colCnt > 1 ? buildNavLinkAttrs(this.context, date) : {};\n\n var hookProps = __assign(__assign(__assign({\n date: dateEnv.toDate(date),\n view: viewApi\n }, props.extraHookProps), {\n text: text\n }), dayMeta);\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.dayHeaderClassNames,\n content: options.dayHeaderContent,\n defaultContent: renderInner$1,\n didMount: options.dayHeaderDidMount,\n willUnmount: options.dayHeaderWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"th\", __assign({\n ref: rootElRef,\n role: \"columnheader\",\n className: classNames.concat(customClassNames).join(' '),\n \"data-date\": !dayMeta.isDisabled ? formatDayString(date) : undefined,\n colSpan: props.colSpan\n }, props.extraDataAttrs), createElement(\"div\", {\n className: \"fc-scrollgrid-sync-inner\"\n }, !dayMeta.isDisabled && createElement(\"a\", __assign({\n ref: innerElRef,\n className: ['fc-col-header-cell-cushion', props.isSticky ? 'fc-sticky' : ''].join(' ')\n }, navLinkAttrs), innerContent)));\n });\n };\n\n return TableDateCell;\n}(BaseComponent);\n\nvar WEEKDAY_FORMAT = createFormatter({\n weekday: 'long'\n});\n\nvar TableDowCell =\n/** @class */\nfunction (_super) {\n __extends(TableDowCell, _super);\n\n function TableDowCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TableDowCell.prototype.render = function () {\n var props = this.props;\n var _a = this.context,\n dateEnv = _a.dateEnv,\n theme = _a.theme,\n viewApi = _a.viewApi,\n options = _a.options;\n var date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n\n var dateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false\n };\n var classNames = [CLASS_NAME].concat(getDayClassNames(dateMeta, theme), props.extraClassNames || []);\n var text = dateEnv.format(date, props.dayHeaderFormat);\n\n var hookProps = __assign(__assign(__assign(__assign({\n // TODO: make this public?\n date: date\n }, dateMeta), {\n view: viewApi\n }), props.extraHookProps), {\n text: text\n });\n\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.dayHeaderClassNames,\n content: options.dayHeaderContent,\n defaultContent: renderInner$1,\n didMount: options.dayHeaderDidMount,\n willUnmount: options.dayHeaderWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return createElement(\"th\", __assign({\n ref: rootElRef,\n role: \"columnheader\",\n className: classNames.concat(customClassNames).join(' '),\n colSpan: props.colSpan\n }, props.extraDataAttrs), createElement(\"div\", {\n className: \"fc-scrollgrid-sync-inner\"\n }, createElement(\"a\", {\n \"aria-label\": dateEnv.format(date, WEEKDAY_FORMAT),\n className: ['fc-col-header-cell-cushion', props.isSticky ? 'fc-sticky' : ''].join(' '),\n ref: innerElRef\n }, innerContent)));\n });\n };\n\n return TableDowCell;\n}(BaseComponent);\n\nvar NowTimer =\n/** @class */\nfunction (_super) {\n __extends(NowTimer, _super);\n\n function NowTimer(props, context) {\n var _this = _super.call(this, props, context) || this;\n\n _this.initialNowDate = getNow(context.options.now, context.dateEnv);\n _this.initialNowQueriedMs = new Date().valueOf();\n _this.state = _this.computeTiming().currentState;\n return _this;\n }\n\n NowTimer.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n return props.children(state.nowDate, state.todayRange);\n };\n\n NowTimer.prototype.componentDidMount = function () {\n this.setTimeout();\n };\n\n NowTimer.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n };\n\n NowTimer.prototype.componentWillUnmount = function () {\n this.clearTimeout();\n };\n\n NowTimer.prototype.computeTiming = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n var currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n var nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n var waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf(); // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: {\n nowDate: currentUnitStart,\n todayRange: buildDayRange(currentUnitStart)\n },\n nextState: {\n nowDate: nextUnitStart,\n todayRange: buildDayRange(nextUnitStart)\n },\n waitMs: waitMs\n };\n };\n\n NowTimer.prototype.setTimeout = function () {\n var _this = this;\n\n var _a = this.computeTiming(),\n nextState = _a.nextState,\n waitMs = _a.waitMs;\n\n this.timeoutId = setTimeout(function () {\n _this.setState(nextState, function () {\n _this.setTimeout();\n });\n }, waitMs);\n };\n\n NowTimer.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n };\n\n NowTimer.contextType = ViewContextType;\n return NowTimer;\n}(Component);\n\nfunction buildDayRange(date) {\n var start = startOfDay(date);\n var end = addDays(start, 1);\n return {\n start: start,\n end: end\n };\n}\n\nvar DayHeader =\n/** @class */\nfunction (_super) {\n __extends(DayHeader, _super);\n\n function DayHeader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n return _this;\n }\n\n DayHeader.prototype.render = function () {\n var context = this.context;\n var _a = this.props,\n dates = _a.dates,\n dateProfile = _a.dateProfile,\n datesRepDistinctDays = _a.datesRepDistinctDays,\n renderIntro = _a.renderIntro;\n var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return createElement(NowTimer, {\n unit: \"day\"\n }, function (nowDate, todayRange) {\n return createElement(\"tr\", {\n role: \"row\"\n }, renderIntro && renderIntro('day'), dates.map(function (date) {\n return datesRepDistinctDays ? createElement(TableDateCell, {\n key: date.toISOString(),\n date: date,\n dateProfile: dateProfile,\n todayRange: todayRange,\n colCnt: dates.length,\n dayHeaderFormat: dayHeaderFormat\n }) : createElement(TableDowCell, {\n key: date.getUTCDay(),\n dow: date.getUTCDay(),\n dayHeaderFormat: dayHeaderFormat\n });\n }));\n });\n };\n\n return DayHeader;\n}(BaseComponent);\n\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nvar DaySeriesModel =\n/** @class */\nfunction () {\n function DaySeriesModel(range, dateProfileGenerator) {\n var date = range.start;\n var end = range.end;\n var indices = [];\n var dates = [];\n var dayIndex = -1;\n\n while (date < end) {\n // 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 } else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n\n date = addDays(date, 1);\n }\n\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n\n DaySeriesModel.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex); // deal with in-between indices\n\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex\n };\n }\n\n return null;\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\n\n DaySeriesModel.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n\n return indices[dayOffset];\n };\n\n return DaySeriesModel;\n}();\n\nvar DayTableModel =\n/** @class */\nfunction () {\n function DayTableModel(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n\n rowCnt = Math.ceil(dates.length / daysPerRow);\n } else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\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\n DayTableModel.prototype.buildCells = function () {\n var rows = [];\n\n for (var row = 0; row < this.rowCnt; row += 1) {\n var cells = [];\n\n for (var col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n\n rows.push(cells);\n }\n\n return rows;\n };\n\n DayTableModel.prototype.buildCell = function (row, col) {\n var date = this.daySeries.dates[row * this.colCnt + col];\n return {\n key: date.toISOString(),\n date: date\n };\n };\n\n DayTableModel.prototype.buildHeaderDates = function () {\n var dates = [];\n\n for (var col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n\n return dates;\n };\n\n DayTableModel.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex,\n lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n\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\n return segs;\n };\n\n return DayTableModel;\n}();\n\nvar Slicer =\n/** @class */\nfunction () {\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 this.forceDayIfListItem = false; // hack\n }\n\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, __spreadArray([props.eventStore, eventUiBases, dateProfile, nextDayThreshold], extraArgs));\n return {\n dateSelectionSegs: this.sliceDateSelection.apply(this, __spreadArray([props.dateSelection, eventUiBases, context], extraArgs)),\n businessHourSegs: this.sliceBusinessHours.apply(this, __spreadArray([props.businessHours, dateProfile, nextDayThreshold, context], extraArgs)),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag.apply(this, __spreadArray([props.eventDrag, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n eventResize: this.sliceEventResize.apply(this, __spreadArray([props.eventResize, eventUiBases, dateProfile, nextDayThreshold], extraArgs)),\n eventSelection: props.eventSelection\n }; // TODO: give interactionSegs?\n };\n\n Slicer.prototype.sliceNowDate = function ( // does not memoize\n date, context) {\n var extraArgs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n\n return this._sliceDateSpan.apply(this, __spreadArray([{\n range: {\n start: date,\n end: addMs(date, 1)\n },\n allDay: false\n }, {}, context], extraArgs));\n };\n\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (!businessHours) {\n return [];\n }\n\n return this._sliceEventStore.apply(this, __spreadArray([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold], extraArgs)).bg;\n };\n\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs)\n };\n }\n\n return {\n bg: [],\n fg: []\n };\n };\n\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n\n if (!interaction) {\n return null;\n }\n\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent\n };\n };\n\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, context) {\n var extraArgs = [];\n\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n\n if (!dateSpan) {\n return [];\n }\n\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n var segs = this.sliceRange.apply(this, __spreadArray([dateSpan.range], extraArgs));\n\n for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n var seg = segs_1[_a];\n seg.eventRange = eventRange;\n }\n\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n\n\n Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {\n var segs = [];\n\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, extraArgs));\n }\n\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n\n\n Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {\n var dateRange = eventRange.range; // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1)\n };\n }\n\n var segs = this.sliceRange.apply(this, __spreadArray([dateRange], extraArgs));\n\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n\n return segs;\n };\n\n return Slicer;\n}();\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\n\n\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n\n if (isComponentAllDay) {\n return range;\n }\n\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5) // 864e5 = ms in a day\n\n };\n} // high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isInteractionValid(interaction, dateProfile, context) {\n var instances = interaction.mutatedEvents.instances;\n\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n\n return isNewPropsValid({\n eventDrag: interaction\n }, context); // HACK: the eventDrag props is used for ALL interactions\n}\n\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n\n return isNewPropsValid({\n dateSelection: dateSelection\n }, context);\n}\n\nfunction isNewPropsValid(newProps, context) {\n var calendarState = context.getCurrentData();\n\n var props = __assign({\n businessHours: calendarState.businessHours,\n dateSelection: '',\n eventStore: calendarState.eventStore,\n eventUiBases: calendarState.eventUiBases,\n eventSelection: '',\n eventDrag: null,\n eventResize: null\n }, newProps);\n\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\n\nfunction isPropsValid(state, context, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) {\n dateSpanMeta = {};\n }\n\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n\n return true;\n} // Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n var currentState = context.getCurrentData();\n var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n\n var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? state.eventUiBases : {\n '': currentState.selectionConfig\n });\n\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n } // exclude the subject events. TODO: exclude defs too?\n\n\n var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n var otherDefs = otherEventStore.defs;\n var otherInstances = otherEventStore.instances;\n var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n\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]; // constraint\n\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n } // overlap\n\n\n var eventOverlap = context.options.eventOverlap;\n var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId]; // intersect! evaluate\n\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap; // consider the other event's overlap. only do this if the subject event is a \"real\" event\n\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n\n if (subjectConfig.overlap === false) {\n return false;\n }\n\n if (eventOverlapFunc && !eventOverlapFunc(new EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n } // allow (a function)\n\n\n var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n\n var subjectDateSpan = __assign(__assign({}, dateSpanMeta), {\n range: subjectInstance.range,\n allDay: subjectDef.allDay\n });\n\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n\n if (origDef) {\n // was previously in the calendar\n eventApi = new EventApi(context, origDef, origInstance);\n } else {\n // was an external event\n eventApi = new EventApi(context, subjectDef); // no instance, because had no dates\n }\n\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n\n return true;\n} // Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction isDateSelectionPropsValid(state, context, 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 = context.getCurrentData().selectionConfig;\n\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n } // constraint\n\n\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n } // overlap\n\n\n var selectOverlap = context.options.selectOverlap;\n var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId]; // intersect! evaluate\n\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n\n if (selectOverlapFunc && !selectOverlapFunc(new EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n } // allow (a function)\n\n\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n\n var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);\n\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n\n return true;\n} // Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\n\n\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n var constraint = constraints_1[_i];\n\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n\n return true;\n}\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'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n\n if (typeof constraint === 'string') {\n // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) {\n return eventDef.groupId === constraint;\n }));\n }\n\n if (_typeof(constraint) === 'object' && constraint) {\n // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n\n return []; // if it's false\n} // TODO: move to event-store file?\n\n\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n\n return ranges;\n} // TODO: move to geom file?\n\n\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n\n return false;\n}\n\nvar VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\n\nvar Scroller =\n/** @class */\nfunction (_super) {\n __extends(Scroller, _super);\n\n function Scroller() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n };\n\n return _this;\n }\n\n Scroller.prototype.render = function () {\n var props = this.props;\n var liquid = props.liquid,\n liquidIsAbsolute = props.liquidIsAbsolute;\n var isAbsolute = liquid && liquidIsAbsolute;\n var className = ['fc-scroller'];\n\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n } else {\n className.push('fc-scroller-liquid');\n }\n }\n\n return createElement(\"div\", {\n ref: this.handleEl,\n className: className.join(' '),\n style: {\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n left: isAbsolute && -(props.overcomeLeft || 0) || '',\n right: isAbsolute && -(props.overcomeRight || 0) || '',\n bottom: isAbsolute && -(props.overcomeBottom || 0) || '',\n marginLeft: !isAbsolute && -(props.overcomeLeft || 0) || '',\n marginRight: !isAbsolute && -(props.overcomeRight || 0) || '',\n marginBottom: !isAbsolute && -(props.overcomeBottom || 0) || '',\n maxHeight: props.maxHeight || ''\n }\n }, props.children);\n };\n\n Scroller.prototype.needsXScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n } // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n\n var el = this.el;\n var realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n var children = el.children;\n\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n\n return false;\n };\n\n Scroller.prototype.needsYScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n } // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n\n\n var el = this.el;\n var realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n var children = el.children;\n\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n\n return false;\n };\n\n Scroller.prototype.getXScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n\n Scroller.prototype.getYScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n\n return Scroller;\n}(BaseComponent);\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\n\n\nvar RefMap =\n/** @class */\nfunction () {\n function RefMap(masterCallback) {\n var _this = this;\n\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n\n this.handleValue = function (val, key) {\n var _a = _this,\n depths = _a.depths,\n currentMap = _a.currentMap;\n var removed = false;\n var added = false;\n\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = key in currentMap;\n currentMap[key] = val;\n depths[key] = (depths[key] || 0) + 1;\n added = true;\n } else {\n depths[key] -= 1;\n\n if (!depths[key]) {\n delete currentMap[key];\n delete _this.callbackMap[key];\n removed = true;\n }\n }\n\n if (_this.masterCallback) {\n if (removed) {\n _this.masterCallback(null, String(key));\n }\n\n if (added) {\n _this.masterCallback(val, String(key));\n }\n }\n };\n }\n\n RefMap.prototype.createRef = function (key) {\n var _this = this;\n\n var refCallback = this.callbackMap[key];\n\n if (!refCallback) {\n refCallback = this.callbackMap[key] = function (val) {\n _this.handleValue(val, String(key));\n };\n }\n\n return refCallback;\n }; // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n\n\n RefMap.prototype.collect = function (startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n };\n\n RefMap.prototype.getAll = function () {\n return hashValuesToArray(this.currentMap);\n };\n\n return RefMap;\n}();\n\nfunction computeShrinkWidth(chunkEls) {\n var shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n var largestWidth = 0;\n\n for (var _i = 0, shrinkCells_1 = shrinkCells; _i < shrinkCells_1.length; _i++) {\n var shrinkCell = shrinkCells_1[_i];\n largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n }\n\n return Math.ceil(largestWidth); // elements work best with integers. round up to ensure contents fits\n}\n\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\n\nfunction getAllowYScrolling(props, sectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n} // TODO: ONLY use `arg`. force out internal function to use same API\n\n\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n var expandRows = arg.expandRows;\n var content = typeof chunkConfig.content === 'function' ? chunkConfig.content(arg) : createElement('table', {\n role: 'presentation',\n className: [chunkConfig.tableClassName, sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : ''].join(' '),\n style: {\n minWidth: arg.tableMinWidth,\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '' // css `height` on a
serves as a min-height\n\n }\n }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation'\n }, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));\n return content;\n}\n\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\n}\n\nfunction renderMicroColGroup(cols, shrinkWidth) {\n var colNodes = [];\n /*\n for ColProps with spans, it would have been great to make a single \n HOWEVER, Chrome was getting messing up distributing the width to elements makes Chrome behave.\n */\n\n for (var _i = 0, cols_1 = cols; _i < cols_1.length; _i++) {\n var colProps = cols_1[_i];\n var span = colProps.span || 1;\n\n for (var i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", {\n style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : colProps.width || '',\n minWidth: colProps.minWidth || ''\n }\n }));\n }\n }\n\n return createElement.apply(void 0, __spreadArray(['colgroup', {}], colNodes));\n}\n\nfunction sanitizeShrinkWidth(shrinkWidth) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth;\n}\n\nfunction hasShrinkWidth(cols) {\n for (var _i = 0, cols_2 = cols; _i < cols_2.length; _i++) {\n var col = cols_2[_i];\n\n if (col.width === 'shrink') {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getScrollGridClassNames(liquid, context) {\n var classNames = ['fc-scrollgrid', context.theme.getClass('table')];\n\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n\n return classNames;\n}\n\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n var classNames = ['fc-scrollgrid-section', \"fc-scrollgrid-section-\" + sectionConfig.type, sectionConfig.className // used?\n ];\n\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n\n return classNames;\n}\n\nfunction renderScrollShim(arg) {\n return createElement(\"div\", {\n className: \"fc-scrollgrid-sticky-shim\",\n style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth\n }\n });\n}\n\nfunction getStickyHeaderDates(options) {\n var stickyHeaderDates = options.stickyHeaderDates;\n\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n\n return stickyHeaderDates;\n}\n\nfunction getStickyFooterScrollbar(options) {\n var stickyFooterScrollbar = options.stickyFooterScrollbar;\n\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n\n return stickyFooterScrollbar;\n}\n\nvar SimpleScrollGrid =\n/** @class */\nfunction (_super) {\n __extends(SimpleScrollGrid, _super);\n\n function SimpleScrollGrid() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.processCols = memoize(function (a) {\n return a;\n }, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\n\n _this.renderMicroColGroup = memoize(renderMicroColGroup);\n _this.scrollerRefs = new RefMap();\n _this.scrollerElRefs = new RefMap(_this._handleScrollerEl.bind(_this));\n _this.state = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {}\n }; // TODO: can do a really simple print-view. dont need to join rows\n\n _this.handleSizing = function () {\n _this.safeSetState(__assign({\n shrinkWidth: _this.computeShrinkWidth()\n }, _this.computeScrollerDims()));\n };\n\n return _this;\n }\n\n SimpleScrollGrid.prototype.render = function () {\n var _a = this,\n props = _a.props,\n state = _a.state,\n context = _a.context;\n\n var sectionConfigs = props.sections || [];\n var cols = this.processCols(props.cols);\n var microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n var classNames = getScrollGridClassNames(props.liquid, context);\n\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n } // TODO: make DRY\n\n\n var configCnt = sectionConfigs.length;\n var configI = 0;\n var currentConfig;\n var headSectionNodes = [];\n var bodySectionNodes = [];\n var footSectionNodes = [];\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n } // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n\n\n var isBuggy = !getCanVGrowWithinCell();\n var roleAttrs = {\n role: 'rowgroup'\n };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: {\n height: props.height\n }\n }, Boolean(!isBuggy && headSectionNodes.length) && createElement.apply(void 0, __spreadArray(['thead', roleAttrs], headSectionNodes)), Boolean(!isBuggy && bodySectionNodes.length) && createElement.apply(void 0, __spreadArray(['tbody', roleAttrs], bodySectionNodes)), Boolean(!isBuggy && footSectionNodes.length) && createElement.apply(void 0, __spreadArray(['tfoot', roleAttrs], footSectionNodes)), isBuggy && createElement.apply(void 0, __spreadArray(__spreadArray(__spreadArray(['tbody', roleAttrs], headSectionNodes), bodySectionNodes), footSectionNodes)));\n };\n\n SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return createElement(Fragment, {\n key: sectionConfig.key\n }, sectionConfig.outerContent);\n }\n\n return createElement(\"tr\", {\n key: sectionConfig.key,\n role: \"presentation\",\n className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ')\n }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader));\n };\n\n SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n\n var props = this.props;\n var _a = this.state,\n forceYScrollbars = _a.forceYScrollbars,\n scrollerClientWidths = _a.scrollerClientWidths,\n scrollerClientHeights = _a.scrollerClientHeights;\n var needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n\n var isLiquid = getSectionHasLiquidHeight(props, sectionConfig); // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n\n var overflowY = !props.liquid ? 'visible' : forceYScrollbars ? 'scroll' : !needsYScrolling ? 'hidden' : 'auto';\n var sectionKey = sectionConfig.key;\n var content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: !props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: function reportRowHeightChange() {}\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation'\n }, createElement(\"div\", {\n className: \"fc-scroller-harness\" + (isLiquid ? ' fc-scroller-harness-liquid' : '')\n }, createElement(Scroller, {\n ref: this.scrollerRefs.createRef(sectionKey),\n elRef: this.scrollerElRefs.createRef(sectionKey),\n overflowY: overflowY,\n overflowX: !props.liquid ? 'visible' : 'hidden'\n /* natural height? */\n ,\n maxHeight: sectionConfig.maxHeight,\n liquid: isLiquid,\n liquidIsAbsolute // because its within a harness\n : true\n }, content)));\n };\n\n SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {\n var section = getSectionByKey(this.props.sections, key);\n\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n };\n\n SimpleScrollGrid.prototype.componentDidMount = function () {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n };\n\n SimpleScrollGrid.prototype.componentDidUpdate = function () {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n };\n\n SimpleScrollGrid.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleSizing);\n };\n\n SimpleScrollGrid.prototype.computeShrinkWidth = function () {\n return hasShrinkWidth(this.props.cols) ? computeShrinkWidth(this.scrollerElRefs.getAll()) : 0;\n };\n\n SimpleScrollGrid.prototype.computeScrollerDims = function () {\n var scrollbarWidth = getScrollbarWidths();\n\n var _a = this,\n scrollerRefs = _a.scrollerRefs,\n scrollerElRefs = _a.scrollerElRefs;\n\n var forceYScrollbars = false;\n var scrollerClientWidths = {};\n var scrollerClientHeights = {};\n\n for (var sectionKey in scrollerRefs.currentMap) {\n var scroller = scrollerRefs.currentMap[sectionKey];\n\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\n }\n }\n\n for (var _i = 0, _b = this.props.sections; _i < _b.length; _i++) {\n var section = _b[_i];\n var sectionKey = section.key;\n var scrollerEl = scrollerElRefs.currentMap[sectionKey];\n\n if (scrollerEl) {\n var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0));\n scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n }\n }\n\n return {\n forceYScrollbars: forceYScrollbars,\n scrollerClientWidths: scrollerClientWidths,\n scrollerClientHeights: scrollerClientHeights\n };\n };\n\n return SimpleScrollGrid;\n}(BaseComponent);\n\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual\n});\n\nfunction getSectionByKey(sections, key) {\n for (var _i = 0, sections_1 = sections; _i < sections_1.length; _i++) {\n var section = sections_1[_i];\n\n if (section.key === key) {\n return section;\n }\n }\n\n return null;\n}\n\nvar EventRoot =\n/** @class */\nfunction (_super) {\n __extends(EventRoot, _super);\n\n function EventRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.elRef = createRef();\n return _this;\n }\n\n EventRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var seg = props.seg;\n var eventRange = seg.eventRange;\n var ui = eventRange.ui;\n var hookProps = {\n event: new EventApi(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast),\n isFuture: Boolean(props.isFuture),\n isToday: Boolean(props.isToday),\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing)\n };\n var standardClassNames = getEventClassNames(hookProps).concat(ui.classNames);\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.eventClassNames,\n content: options.eventContent,\n defaultContent: props.defaultContent,\n didMount: options.eventDidMount,\n willUnmount: options.eventWillUnmount,\n elRef: this.elRef\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return props.children(rootElRef, standardClassNames.concat(customClassNames), innerElRef, innerContent, hookProps);\n });\n };\n\n EventRoot.prototype.componentDidMount = function () {\n setElSeg(this.elRef.current, this.props.seg);\n };\n /*\n need to re-assign seg to the element if seg changes, even if the element is the same\n */\n\n\n EventRoot.prototype.componentDidUpdate = function (prevProps) {\n var seg = this.props.seg;\n\n if (seg !== prevProps.seg) {\n setElSeg(this.elRef.current, seg);\n }\n };\n\n return EventRoot;\n}(BaseComponent); // should not be a purecomponent\n\n\nvar StandardEvent =\n/** @class */\nfunction (_super) {\n __extends(StandardEvent, _super);\n\n function StandardEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n StandardEvent.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var seg = props.seg;\n var timeFormat = context.options.eventTimeFormat || props.defaultTimeFormat;\n var timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n return createElement(EventRoot, {\n seg: seg,\n timeText: timeText,\n disableDragging: props.disableDragging,\n disableResizing: props.disableResizing,\n defaultContent: props.defaultContent || renderInnerContent$1,\n isDragging: props.isDragging,\n isResizing: props.isResizing,\n isDateSelecting: props.isDateSelecting,\n isSelected: props.isSelected,\n isPast: props.isPast,\n isFuture: props.isFuture,\n isToday: props.isToday\n }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) {\n return createElement(\"a\", __assign({\n className: props.extraClassNames.concat(classNames).join(' '),\n style: {\n borderColor: hookProps.borderColor,\n backgroundColor: hookProps.backgroundColor\n },\n ref: rootElRef\n }, getSegAnchorAttrs(seg, context)), createElement(\"div\", {\n className: \"fc-event-main\",\n ref: innerElRef,\n style: {\n color: hookProps.textColor\n }\n }, innerContent), hookProps.isStartResizable && createElement(\"div\", {\n className: \"fc-event-resizer fc-event-resizer-start\"\n }), hookProps.isEndResizable && createElement(\"div\", {\n className: \"fc-event-resizer fc-event-resizer-end\"\n }));\n });\n };\n\n return StandardEvent;\n}(BaseComponent);\n\nfunction renderInnerContent$1(innerProps) {\n return createElement(\"div\", {\n className: \"fc-event-main-frame\"\n }, innerProps.timeText && createElement(\"div\", {\n className: \"fc-event-time\"\n }, innerProps.timeText), createElement(\"div\", {\n className: \"fc-event-title-container\"\n }, createElement(\"div\", {\n className: \"fc-event-title fc-sticky\"\n }, innerProps.event.title || createElement(Fragment, null, \"\\xA0\"))));\n}\n\nvar NowIndicatorRoot = function NowIndicatorRoot(props) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n var options = context.options;\n var hookProps = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi\n };\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.nowIndicatorClassNames,\n content: options.nowIndicatorContent,\n didMount: options.nowIndicatorDidMount,\n willUnmount: options.nowIndicatorWillUnmount\n }, props.children);\n });\n};\n\nvar DAY_NUM_FORMAT = createFormatter({\n day: 'numeric'\n});\n\nvar DayCellContent =\n/** @class */\nfunction (_super) {\n __extends(DayCellContent, _super);\n\n function DayCellContent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DayCellContent.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = refineDayCellHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv\n });\n return createElement(ContentHook, {\n hookProps: hookProps,\n content: options.dayCellContent,\n defaultContent: props.defaultContent\n }, props.children);\n };\n\n return DayCellContent;\n}(BaseComponent);\n\nfunction refineDayCellHookProps(raw) {\n var date = raw.date,\n dateEnv = raw.dateEnv;\n var dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);\n return __assign(__assign(__assign({\n date: dateEnv.toDate(date),\n view: raw.viewApi\n }, dayMeta), {\n dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : ''\n }), raw.extraProps);\n}\n\nvar DayCellRoot =\n/** @class */\nfunction (_super) {\n __extends(DayCellRoot, _super);\n\n function DayCellRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.refineHookProps = memoizeObjArg(refineDayCellHookProps);\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n\n DayCellRoot.prototype.render = function () {\n var _a = this,\n props = _a.props,\n context = _a.context;\n\n var options = context.options;\n var hookProps = this.refineHookProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n showDayNumber: props.showDayNumber,\n extraProps: props.extraHookProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv\n });\n var classNames = getDayClassNames(hookProps, context.theme).concat(hookProps.isDisabled ? [] // don't use custom classNames if disabled\n : this.normalizeClassNames(options.dayCellClassNames, hookProps));\n var dataAttrs = hookProps.isDisabled ? {} : {\n 'data-date': formatDayString(props.date)\n };\n return createElement(MountHook, {\n hookProps: hookProps,\n didMount: options.dayCellDidMount,\n willUnmount: options.dayCellWillUnmount,\n elRef: props.elRef\n }, function (rootElRef) {\n return props.children(rootElRef, classNames, dataAttrs, hookProps.isDisabled);\n });\n };\n\n return DayCellRoot;\n}(BaseComponent);\n\nfunction renderFill(fillType) {\n return createElement(\"div\", {\n className: \"fc-\" + fillType\n });\n}\n\nvar BgEvent = function BgEvent(props) {\n return createElement(EventRoot, {\n defaultContent: renderInnerContent,\n seg: props.seg\n /* uselesss i think */\n ,\n timeText: \"\",\n disableDragging: true,\n disableResizing: true,\n isDragging: false,\n isResizing: false,\n isDateSelecting: false,\n isSelected: false,\n isPast: props.isPast,\n isFuture: props.isFuture,\n isToday: props.isToday\n }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) {\n return createElement(\"div\", {\n ref: rootElRef,\n className: ['fc-bg-event'].concat(classNames).join(' '),\n style: {\n backgroundColor: hookProps.backgroundColor\n }\n }, innerContent);\n });\n};\n\nfunction renderInnerContent(props) {\n var title = props.event.title;\n return title && createElement(\"div\", {\n className: \"fc-event-title\"\n }, props.event.title);\n}\n\nvar WeekNumberRoot = function WeekNumberRoot(props) {\n return createElement(ViewContextType.Consumer, null, function (context) {\n var dateEnv = context.dateEnv,\n options = context.options;\n var date = props.date;\n var format = options.weekNumberFormat || props.defaultFormat;\n var num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n\n var text = dateEnv.format(date, format);\n var hookProps = {\n num: num,\n text: text,\n date: date\n };\n return createElement(RenderHook, {\n hookProps: hookProps,\n classNames: options.weekNumberClassNames,\n content: options.weekNumberContent,\n defaultContent: renderInner,\n didMount: options.weekNumberDidMount,\n willUnmount: options.weekNumberWillUnmount\n }, props.children);\n });\n};\n\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nvar PADDING_FROM_VIEWPORT = 10;\n\nvar Popover =\n/** @class */\nfunction (_super) {\n __extends(Popover, _super);\n\n function Popover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.state = {\n titleId: getUniqueDomId()\n };\n\n _this.handleRootEl = function (el) {\n _this.rootEl = el;\n\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n }; // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n\n\n _this.handleDocumentMouseDown = function (ev) {\n // only hide the popover if the click happened outside the popover\n var target = getEventTargetViaRoot(ev);\n\n if (!_this.rootEl.contains(target)) {\n _this.handleCloseClick();\n }\n };\n\n _this.handleDocumentKeyDown = function (ev) {\n if (ev.key === 'Escape') {\n _this.handleCloseClick();\n }\n };\n\n _this.handleCloseClick = function () {\n var onClose = _this.props.onClose;\n\n if (onClose) {\n onClose();\n }\n };\n\n return _this;\n }\n\n Popover.prototype.render = function () {\n var _a = this.context,\n theme = _a.theme,\n options = _a.options;\n\n var _b = this,\n props = _b.props,\n state = _b.state;\n\n var classNames = ['fc-popover', theme.getClass('popover')].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", __assign({\n id: props.id,\n className: classNames.join(' '),\n \"aria-labelledby\": state.titleId\n }, props.extraAttrs, {\n ref: this.handleRootEl\n }), createElement(\"div\", {\n className: 'fc-popover-header ' + theme.getClass('popoverHeader')\n }, createElement(\"span\", {\n className: \"fc-popover-title\",\n id: state.titleId\n }, props.title), createElement(\"span\", {\n className: 'fc-popover-close ' + theme.getIconClass('close'),\n title: options.closeHint,\n onClick: this.handleCloseClick\n })), createElement(\"div\", {\n className: 'fc-popover-body ' + theme.getClass('popoverContent')\n }, props.children)), props.parentEl);\n };\n\n Popover.prototype.componentDidMount = function () {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n };\n\n Popover.prototype.componentWillUnmount = function () {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n };\n\n Popover.prototype.updateSize = function () {\n var isRtl = this.context.isRtl;\n var _a = this.props,\n alignmentEl = _a.alignmentEl,\n alignGridTop = _a.alignGridTop;\n var rootEl = this.rootEl;\n var alignmentRect = computeClippedClientRect(alignmentEl);\n\n if (alignmentRect) {\n var popoverDims = rootEl.getBoundingClientRect(); // position relative to viewport\n\n var popoverTop = alignGridTop ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top : alignmentRect.top;\n var popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left; // constrain\n\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n var origin_1 = rootEl.offsetParent.getBoundingClientRect();\n applyStyle(rootEl, {\n top: popoverTop - origin_1.top,\n left: popoverLeft - origin_1.left\n });\n }\n };\n\n return Popover;\n}(BaseComponent);\n\nvar MorePopover =\n/** @class */\nfunction (_super) {\n __extends(MorePopover, _super);\n\n function MorePopover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n\n if (rootEl) {\n _this.context.registerInteractiveComponent(_this, {\n el: rootEl,\n useEventCenter: false\n });\n } else {\n _this.context.unregisterInteractiveComponent(_this);\n }\n };\n\n return _this;\n }\n\n MorePopover.prototype.render = function () {\n var _a = this.context,\n options = _a.options,\n dateEnv = _a.dateEnv;\n var props = this.props;\n var startDate = props.startDate,\n todayRange = props.todayRange,\n dateProfile = props.dateProfile;\n var title = dateEnv.format(startDate, options.dayPopoverFormat);\n return createElement(DayCellRoot, {\n date: startDate,\n dateProfile: dateProfile,\n todayRange: todayRange,\n elRef: this.handleRootEl\n }, function (rootElRef, dayClassNames, dataAttrs) {\n return createElement(Popover, {\n elRef: rootElRef,\n id: props.id,\n title: title,\n extraClassNames: ['fc-more-popover'].concat(dayClassNames),\n extraAttrs: dataAttrs\n /* TODO: make these time-based when not whole-day? */\n ,\n parentEl: props.parentEl,\n alignmentEl: props.alignmentEl,\n alignGridTop: props.alignGridTop,\n onClose: props.onClose\n }, createElement(DayCellContent, {\n date: startDate,\n dateProfile: dateProfile,\n todayRange: todayRange\n }, function (innerElRef, innerContent) {\n return innerContent && createElement(\"div\", {\n className: \"fc-more-popover-misc\",\n ref: innerElRef\n }, innerContent);\n }), props.children);\n });\n };\n\n MorePopover.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var _a = this,\n rootEl = _a.rootEl,\n props = _a.props;\n\n if (positionLeft >= 0 && positionLeft < elWidth && positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: __assign({\n allDay: true,\n range: {\n start: props.startDate,\n end: props.endDate\n }\n }, props.extraDateSpan),\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1 // important when comparing with hits from other components\n\n };\n }\n\n return null;\n };\n\n return MorePopover;\n}(DateComponent);\n\nvar MoreLinkRoot =\n/** @class */\nfunction (_super) {\n __extends(MoreLinkRoot, _super);\n\n function MoreLinkRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.linkElRef = createRef();\n _this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId()\n };\n\n _this.handleClick = function (ev) {\n var _a = _this,\n props = _a.props,\n context = _a.context;\n var moreLinkClick = context.options.moreLinkClick;\n var date = computeRange(props).start;\n\n function buildPublicSeg(seg) {\n var _a = seg.eventRange,\n def = _a.def,\n instance = _a.instance,\n range = _a.range;\n return {\n event: new EventApi(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd\n };\n }\n\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date: date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi\n });\n }\n\n if (!moreLinkClick || moreLinkClick === 'popover') {\n _this.setState({\n isPopoverOpen: true\n });\n } else if (typeof moreLinkClick === 'string') {\n // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n\n _this.handlePopoverClose = function () {\n _this.setState({\n isPopoverOpen: false\n });\n };\n\n return _this;\n }\n\n MoreLinkRoot.prototype.render = function () {\n var _this = this;\n\n var _a = this,\n props = _a.props,\n state = _a.state;\n\n return createElement(ViewContextType.Consumer, null, function (context) {\n var viewApi = context.viewApi,\n options = context.options,\n calendarApi = context.calendarApi;\n var moreLinkText = options.moreLinkText;\n var moreCnt = props.moreCnt;\n var range = computeRange(props);\n var text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n ? moreLinkText.call(calendarApi, moreCnt) : \"+\" + moreCnt + \" \" + moreLinkText;\n var title = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n var hookProps = {\n num: moreCnt,\n shortText: \"+\" + moreCnt,\n text: text,\n view: viewApi\n };\n return createElement(Fragment, null, Boolean(props.moreCnt) && createElement(RenderHook, {\n elRef: _this.linkElRef,\n hookProps: hookProps,\n classNames: options.moreLinkClassNames,\n content: options.moreLinkContent,\n defaultContent: props.defaultContent || renderMoreLinkInner,\n didMount: options.moreLinkDidMount,\n willUnmount: options.moreLinkWillUnmount\n }, function (rootElRef, customClassNames, innerElRef, innerContent) {\n return props.children(rootElRef, ['fc-more-link'].concat(customClassNames), innerElRef, innerContent, _this.handleClick, title, state.isPopoverOpen, state.isPopoverOpen ? state.popoverId : '');\n }), state.isPopoverOpen && createElement(MorePopover, {\n id: state.popoverId,\n startDate: range.start,\n endDate: range.end,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n extraDateSpan: props.extraDateSpan,\n parentEl: _this.parentEl,\n alignmentEl: props.alignmentElRef.current,\n alignGridTop: props.alignGridTop,\n onClose: _this.handlePopoverClose\n }, props.popoverContent()));\n });\n };\n\n MoreLinkRoot.prototype.componentDidMount = function () {\n this.updateParentEl();\n };\n\n MoreLinkRoot.prototype.componentDidUpdate = function () {\n this.updateParentEl();\n };\n\n MoreLinkRoot.prototype.updateParentEl = function () {\n if (this.linkElRef.current) {\n this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness');\n }\n };\n\n return MoreLinkRoot;\n}(BaseComponent);\n\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\n\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1)\n };\n }\n\n var hiddenSegs = props.hiddenSegs;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs)\n };\n}\n\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\n\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\n\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\n\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n} // exports\n// --------------------------------------------------------------------------------------------------\n\n\nvar version = '5.11.3'; // important to type it, so .d.ts has generic string\n\nexport { BASE_OPTION_DEFAULTS, BASE_OPTION_REFINERS, BaseComponent, BgEvent, CalendarApi, CalendarContent, CalendarDataManager, CalendarDataProvider, CalendarRoot, ContentHook, CustomContentRenderContext, DateComponent, DateEnv, DateProfileGenerator, DayCellContent, DayCellRoot, DayHeader, DaySeriesModel, DayTableModel, DelayedRunner, ElementDragging, ElementScrollController, Emitter, EventApi, EventRoot, EventSourceApi, Interaction, MoreLinkRoot, MountHook, NamedTimeZoneImpl, NowIndicatorRoot, NowTimer, PositionCache, RefMap, RenderHook, ScrollController, ScrollResponder, Scroller, SegHierarchy, SimpleScrollGrid, Slicer, Splitter, StandardEvent, TableDateCell, TableDowCell, Theme, ViewApi, ViewContextType, ViewRoot, WeekNumberRoot, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, applyMutationToEventStore, applyStyle, applyStyleProp, asCleanDays, asRoughMinutes, asRoughMs, asRoughSeconds, binarySearch, buildClassNameNormalizer, buildEntryKey, buildEventApis, buildEventRangeKey, buildHashFromArray, buildIsoString, buildNavLinkAttrs, buildSegCompareObj, buildSegTimeText, collectFromHash, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compareObjs, computeEarliestSegStart, computeEdges, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeSegDraggable, computeSegEndResizable, computeSegStartResizable, computeShrinkWidth, computeSmallestCellWidth, computeVisibleDayRange, config, constrainPoint, createAriaClickAttrs, createDuration, createEmptyEventStore, createEventInstance, createEventUi, createFormatter, createPlugin, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findDirectChildren, findElements, flexibleCompare, formatDate, formatDayString, formatIsoTimeString, formatRange, getAllowYScrolling, getCanVGrowWithinCell, getClippingParents, getDateMeta, getDayClassNames, getDefaultEventEnd, getElRoot, getElSeg, getEntrySpanEnd, getEventClassNames, getEventTargetViaRoot, getIsRtlScrollbarOnLeft, getRectCenter, getRelevantEvents, getScrollGridClassNames, getScrollbarWidths, getSectionClassNames, getSectionHasLiquidHeight, getSegAnchorAttrs, getSegMeta, getSlotClassNames, getStickyFooterScrollbar, getStickyHeaderDates, getUnequalProps, getUniqueDomId, globalLocales, globalPlugins, greatestDurationDenominator, groupIntersectingEntries, guid, hasBgRendering, hasShrinkWidth, identity, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, intersectSpans, isArraysEqual, isColPropsEqual, isDateSelectionValid, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isValidDate, joinSpans, listenBySelector, mapHash, memoize, memoizeArraylike, memoizeHashlike, memoizeObjArg, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseClassNames, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, preventContextMenu, preventDefault, preventSelection, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineEventDef, refineProps, removeElement, removeExact, renderChunkContent, renderFill, renderMicroColGroup, renderScrollShim, requestJson, sanitizeShrinkWidth, setElSeg, setRef, sliceEventStore, sliceEvents, sortEventSegs, startOfDay, translateRect, triggerDateSelect, unpromisify, version, whenTransitionDone, wholeDivideDurations };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n\n for (i = 0; i < argLen; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n tokenLen = token.length;\n\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (_typeof(eras[i].since)) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (_typeof(eras[i].until)) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (_typeof(argWithSuffix) === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (_typeof(argThresholds) === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.4';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if ((typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n };\n }\n\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || _typeof(receiver) !== \"object\" && typeof receiver !== \"function\") throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","var moment = module.exports = require(\"./moment-timezone\");\n\nmoment.tz.load(require('./data/packed/latest.json'));","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of
/ elements with colspans.\n SOLUTION: making individual