{"version":3,"sources":["webpack:///./node_modules/vuelidate/lib/validators/integer.js","webpack:///./node_modules/vuelidate/lib/validators/maxLength.js","webpack:///./node_modules/vuelidate/lib/validators/and.js","webpack:///./node_modules/vuelidate/lib/validators/alphaNum.js","webpack:///./src/router/layouts/main.vue?9854","webpack:///src/router/layouts/main.vue","webpack:///./src/router/layouts/main.vue?f812","webpack:///./src/router/layouts/main.vue","webpack:///./node_modules/vuelidate/lib/validators/numeric.js","webpack:///./node_modules/vuelidate/lib/validators/maxValue.js","webpack:///./node_modules/vuelidate/lib/validators/email.js","webpack:///./node_modules/vuelidate/lib/validators/minLength.js","webpack:///./node_modules/vuelidate/lib/validators/alpha.js","webpack:///./node_modules/vuelidate/lib/validators/not.js","webpack:///./node_modules/vuelidate/lib/validators/url.js","webpack:///./node_modules/vuelidate/lib/validators/common.js","webpack:///./node_modules/vuelidate/lib/withParams.js","webpack:///./src/router/views/calendar/index.vue?0fe0","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/node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/core/node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/@fullcalendar/core/main.js","webpack:///./node_modules/@fullcalendar/vue/dist/options.js","webpack:///./node_modules/@fullcalendar/vue/dist/utils.js","webpack:///./node_modules/@fullcalendar/vue/dist/custom-content-type.js","webpack:///./node_modules/@fullcalendar/vue/dist/FullCalendar.js","webpack:///./node_modules/@fullcalendar/vue/dist/main.js","webpack:///./node_modules/@fullcalendar/daygrid/node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/daygrid/node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/@fullcalendar/daygrid/main.js","webpack:///./node_modules/@fullcalendar/timegrid/node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/timegrid/node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/@fullcalendar/timegrid/main.js","webpack:///./node_modules/@fullcalendar/common/vdom.js","webpack:///./node_modules/@fullcalendar/common/main.js","webpack:///./node_modules/@fullcalendar/interaction/main.js","webpack:///./node_modules/@fullcalendar/bootstrap/main.js","webpack:///./node_modules/@fullcalendar/list/main.js","webpack:///./src/router/views/calendar/data.js","webpack:///src/router/views/calendar/index.vue","webpack:///./src/router/views/calendar/index.vue?db4e","webpack:///./src/router/views/calendar/index.vue","webpack:///./node_modules/vuelidate/lib/validators/macAddress.js","webpack:///./node_modules/vuelidate/lib/validators/requiredIf.js","webpack:///./node_modules/vuelidate/lib/validators/index.js","webpack:///./node_modules/vuelidate/lib/validators/sameAs.js","webpack:///./node_modules/vuelidate/lib/validators/decimal.js","webpack:///./node_modules/vuelidate/lib/validators/ipAddress.js","webpack:///./node_modules/vuelidate/lib/withParamsBrowser.js","webpack:///./node_modules/vuelidate/lib/validators/or.js","webpack:///./node_modules/vuelidate/lib/validators/required.js","webpack:///./node_modules/vuelidate/lib/validators/requiredUnless.js","webpack:///./node_modules/vuelidate/lib/validators/minValue.js","webpack:///./node_modules/vuelidate/lib/validators/between.js"],"names":["Object","defineProperty","exports","value","default","_common","_default","regex","length","withParams","type","max","req","len","_len","arguments","validators","Array","_key","_this","this","_len2","args","_key2","reduce","valid","fn","apply","render","_vm","_h","$createElement","_c","_self","layoutType","attrs","_t","_e","staticRenderFns","component","test","Date","emailRegex","min","validator","vm","call","urlRegex","enumerable","get","_withParams","ref","_interopRequireDefault","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","isArray","undefined","isNaN","getTime","_","String","keys","reference","parentVm","expr","BUILD","title","items","staticClass","calendarOptions","model","callback","$$v","showModal","expression","on","$event","preventDefault","handleSubmit","_v","directives","name","rawName","event","class","submitted","$v","$error","domProps","target","composing","$set","required","category","errors","$$selectedVal","filter","options","o","selected","map","val","_value","multiple","_l","option","key","backgroundColor","_s","hideModal","eventModal","slot","editSubmit","editevent","confirm","closeModal","f","c","n","l","u","s","parentNode","removeChild","a","i","t","r","push","children","defaultProps","v","props","__k","__","__b","__e","__d","__c","__h","__v","vnode","h","current","y","p","context","d","indexOf","base","k","b","__r","debounceRendering","sort","some","__P","I","__n","ownerSVGElement","T","m","e","w","A","P","g","x","L","z","appendChild","nextSibling","insertBefore","C","setProperty","style","cssText","replace","toLowerCase","slice","addEventListener","H","$","removeEventListener","setAttribute","removeAttribute","contextType","__E","M","sub","state","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","j","diffed","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","innerHTML","firstChild","checked","unmount","componentWillUnmount","N","q","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","bind","resolve","setTimeout","__H","requestAnimationFrame","clearTimeout","cancelAnimationFrame","E","isPureReactComponent","__f","for","__u","U","__R","__O","pop","fallback","delete","revealOrder","size","Map","reverse","set","W","V","isReactComponent","configurable","writable","Z","Y","cancelBubble","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","G","J","defaultValue","className","$$typeof","K","performance","now","globalObj","globalThis","window","flushSync","runBeforeFlush","oldDebounceRendering","callbackQ","execCallbackSync","shift","FullCalendarVDom","console","warn","Component","createRef","Fragment","createContext","createPortal","unmountComponentAtNode","_super","FakeComponent","ContextType","origProvider","isNew","subs_1","_props","old","node","Error","EventSourceApi","internalEventSource","remove","dispatch","sourceId","refetch","sourceIds","isRefetch","publicId","meta","url","format","removeElement","el","elementClosest","selector","closest","documentElement","contains","elementMatches","parentElement","method","matches","matchesSelector","msMatchesSelector","findElements","container","containers","HTMLElement","allMatches","querySelectorAll","PIXEL_PROP_RE","applyStyle","propName","applyStyleProp","getEventTargetViaRoot","ev","_a","_b","composedPath","guid$1","getUniqueDomId","buildDelegationHandler","handler","matchedChild","listenBySelector","eventType","attachedHandler","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","mouseOverEv","realOnMouseLeave_1","mouseLeaveEv","createAriaClickAttrs","onClick","createAriaKeyboardAttrs","tabIndex","onKeyDown","guidNumber","guid","parseFieldSpecs","input","token","specs","tokens","split","charAt","field","substring","order","func","padStart","substr","formatWithOrdinals","formatter","fallbackText","str","arg","index","isInt","computeSmallestCellWidth","cellEl","allWidthEl","querySelector","contentWidthEl","getBoundingClientRect","width","DAY_IDS","addDays","dateToUtcArray","arrayToUtcDate","addMs","diffDays","m0","m1","valueOf","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","startOfDay","m1day","years","months","days","Math","round","milliseconds","diffWholeWeeks","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","startOfHour","getUTCHours","startOfMinute","getUTCMinutes","startOfSecond","getUTCSeconds","weekOfYear","marker","dow","doy","weekOfGivenYear","nextW","year","firstWeekStart","firstWeekOffset","dayStart","floor","fwd","fwdlw","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","concat","UTC","isValidDate","createEventInstance","defId","range","forcedStartTzo","forcedEndTzo","instanceId","hasOwnProperty","mergeProps","propObjs","complexPropsMap","dest","name_1","complexObjs","unshift","name_2","filterHash","hash","filtered","mapHash","newHash","arrayToHash","_i","a_1","item","hashValuesToArray","isPropsEqual","obj0","obj1","getUnequalProps","compareObjs","oldProps","newProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","collectFromHash","startIndex","endIndex","step","res","parseRecurring","refined","defaultAllDay","dateEnv","recurringTypes","parsed","parse","allDay","allDayGuess","duration","typeData","typeId","expandRecurring","eventStore","framingRange","pluginHooks","defs","instances","instance","recurringDef","def","defaultAllDayEventDuration","defaultTimedEventDuration","starts","expandRecurringRanges","starts_1","start","end","add","eventDef","typeDef","markers","expand","subtract","PARSE_RE","createDuration","unit","parseString","parseObject","exec","sign","parseInt","month","day","hours","hour","minutes","minute","seconds","second","millisecond","ms","weeks","week","specifiedWeeks","durationsEqual","d0","d1","subtractDurations","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","greatestDurationDenominator","buildIsoString","timeZoneOffset","stripZeroTime","toISOString","formatTimeZoneOffset","formatDayString","doIso","abs","mins","isArraysEqual","a0","a1","equalityFunc","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","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","buildFormattingFunc","formatRange","betterDefaultSeparator","diffSeverity","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","insertion","findCommonInsertion","defaultSeparator","before","after","getLargestUnit","standardDatePropCnt","formatWeekNumber","computeWeekNumber","weekText","weekTextLong","locale","buildNativeFormattingFunc","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","postProcess","injectTzoStr","trim","toLocaleLowerCase","tzoStr","replaced","num","display","parts","simpleNumberFormat","direction","join","ca","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnit","partialOptions","i0","found0","before0","after0","i1","found1","before1","after1","expandZonedMarker","dateInfo","markerToArray","array","createVerboseFormattingArg","startInfo","endInfo","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","eventOrderStrict","handleWindowResize","windowResizeDelay","longPressDelay","eventDragMinDistance","expandRows","height","contentHeight","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","progressiveEventRendering","businessHours","initialDate","eventDataTransform","stickyHeaderDates","stickyFooterScrollbar","viewHeight","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","isBoolComplexEqual","VIEW_OPTION_REFINERS","buttonTextKey","dateProfileGeneratorClass","usesMinMaxTime","classNames","content","didMount","willUnmount","mergeRawOptions","optionSets","refineProps","refiners","extra","raw","parseEvents","rawEvents","eventSource","allowOpenRange","createEmptyEventStore","eventRefiners","buildEventRefiners","rawEvents_1","rawEvent","tuple","parseEvent","eventTupleToStore","getRelevantEvents","def_1","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","groupId","mergeEventStores","store0","store1","filterFunc","excludeSubEventStore","master","filteredDefs","filteredInstances","normalizeConstraint","parseClassNames","EVENT_UI_REFINERS","startEditable","durationEditable","constraint","overlap","allow","color","borderColor","textColor","EMPTY_EVENT_UI","constraints","allows","createEventUi","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_NON_DATE_REFINERS","id","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","refineEventDef","computeIsDefaultAllDay","recurringRes","parseEventDef","singleRes","parseSingle","hasEnd","ui","eventDefMemberAdders","memberAdder","freeze","startMeta","endMeta","startMarker","endMarker","startInput","createMarkerMeta","isTimeUnspecified","forcedTzo","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","diffDates","date0","date1","largeUnit","diffWholeYears","diffWholeMonths","parseRange","createMarker","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","rangesIntersect","rangeContainsMarker","constrainMarkerToRange","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","setElSeg","seg","fcSeg","getElSeg","eventDefs","compileEventUi","computeSegDraggable","transformers","isDraggableTransformers","eventRange","transformers_1","transformer","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","eventInstance","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getEventClassNames","isMirror","isDraggable","isStartResizable","isEndResizable","isDragging","isResizing","isSelected","isPast","isToday","isFuture","getSegAnchorAttrs","href","emitter","hasHandlers","trigger","jsEvent","view","viewApi","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","standardProps","buildDateSpanApi","buildRangeApi","buildRangeApiWithTimeZone","omitTime","toDate","startStr","formatIso","endStr","fabricateEventRange","dateSpan","triggerDateSelect","selection","pev","buildDateSpanApiWithContext","origEvent","calendarApi","triggerDateUnselect","dateSpanTransforms","transform","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","startDelta","endDelta","copy","eventDefMutationAppliers","applier","forceAllDay","clearEnd","datesDelta","ViewApi","getCurrentData","viewTitle","dateProfile","activeRange","currentRange","getOption","EVENT_SOURCE_REFINERS","success","failure","parseEventSource","rawObj","buildEventSourceRefiners","metaRes","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","sourceDefId","eventSourceRefiners","eventSourceDefs","parseMeta","reduceCurrentDate","currentDate","action","dateMarker","getInitialDate","initialDateInput","getNow","nowInput","createNowMarker","CalendarApi","currentDataManager","batchRendering","updateSize","setOption","optionName","rawOptionValue","currentCalendarOptionsInput","getAvailableLocaleCodes","availableRawLocales","handlerName","currentCalendarOptionsRefiners","off","changeView","viewType","dateOrRange","zoomTo","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","header","viewsWithButtons","footer","singleUnit","prev","next","prevYear","addYears","nextYear","today","gotoDate","zonedDateInput","incrementDate","deltaInput","delta","formatDate","settings","dateOrObj","endDate","selectionInput","dateSelection","addEvent","eventInput","sourceInput","_def","_instance","currentData","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","eventApi","relatedEvents","revert","eventApiToStore","getEventById","getEvents","buildEventApis","removeAllEvents","getEventSources","sourceHash","sourceApis","internalId","addEventSource","sources","removeAllEventSources","refetchEvents","scrollToTime","timeInput","time","EventApi","_context","setProp","mutate","setExtendedProp","setStart","instanceRange","granularity","maintainDuration","setEnd","endInput","setDates","moveStart","moveEnd","moveDates","setAllDay","formatInput","context_1","eventStore_1","relevantEvents","oldEvent","asStore","toPlainObject","collapseColor","collapseExtendedProps","toJSON","excludeInstance","eventApis","excludeInstanceId","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","arrayToMarker","arr","ISO_RE","DateEnv","isNamedTimeZone","namedTimeZoneImpl","canComputeOffset","weekDow","weekDoy","weekNumberFunc","timestampToMarker","getYear","addMonths","greatestWholeUnit","countDurationsBetween","diff","startOf","startOfYear","startOfMonth","startOfWeek","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","queryLocale","parseLocale","codeArg","queryRawLocale","simpleId","merged","NumberFormat","canVGrowWithinCell","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","refineInputs","rawDefs","rawDef","intersectRects","rect1","rect2","left","right","top","bottom","getCanVGrowWithinCell","computeCanVGrowWithinCell","position","body","div","possible","offsetHeight","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","getKeysForDateSpan","keys_1","getKeysForEventDef","splitStores","splitHashes","interaction","splitStates","affectedStores_1","affectedEvents","mutatedKeysByDefId","mutatedEvents","mutatedStores_1","populate","isEvent","allUi","eventUiForKey","baseParts","stuff","getDateMeta","todayRange","nowDate","isDisabled","isOther","getDayClassNames","theme","getClass","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","zonedDate","handleInteraction","customAction","_scrollbarWidths","getScrollbarWidths","computeScrollbarWidths","overflow","computeScrollbarWidthsForEl","clientHeight","offsetWidth","clientWidth","computeClippedClientRect","clippingParents","getClippingParents","rect","clippingParents_1","clippingParent","intersection","parents","computedStyle","getComputedStyle","overflowY","overflowX","unpromisify","isResolved","wrappedSuccess","wrappedFailure","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","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","nextProps","nextState","debug","log","propEquality","stateEquality","addPropsEquality","addStateEquality","BaseComponent","create","setRef","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","buildPluginHooks","pluginDefs","globalDefs","isAdded","hooks","addDefs","defs_1","combineHooks","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","hooks0","hooks1","StandardTheme","compileViewDefs","defaultConfigs","overrideConfigs","ensureViewDef","viewDef","buildViewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","defaults","rawOptions","overrides","root","tableCellShaded","buttonGroup","button","buttonActive","close","RenderHook","rootElRef","handleRootEl","elRef","hookProps","ContentHook","defaultContent","backupElRef","innerElRef","innerContent","normalizeClassNames","CustomContentRenderContext","renderId","ContentHookInner","renderInnerContent","updateCustomContent","customContentInfo","destroy","getInnerContent","getContentMeta","contentKey","contentVal","buildLifecycleFuncs","normalizeContent","searchKey","MountHook","rootEl","buildClassNameNormalizer","currentGenerator","currentHookProps","currentClassNames","generator","ViewRoot","customClassNames","parseViewConfigs","inputs","parseViewConfig","createViewHookComponent","viewProps","viewElRef","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","buildViewSpec","durationInput","durationUnit","singleUnitOverrides","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","buttonTitleOverride","buttonHint","buttonTitleDefault","durationInputMap","json","JSON","stringify","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","customAlignment","rangeInput","isHiddenDayHash","inc","isExclusive","reduceViewType","reduceDynamicOptionOverrides","reduceDateProfile","dp","initEventSources","addSources","parseInitialSources","reduceEventSources","removeSource","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","receiveResponse","fetchId","reduceEventSourcesNewTimeZone","computeEventSourcesLoading","eventSourceHash","sources_1","source","isSourceDirty","doesSourceNeedRange","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","fetch","xhr","error","message","rawSources","rawSources_1","rawSource","ignoreRange","reduceEventStore","receiveRawEvents","excludeEventsBySourceId","subset","transformRawEvents","calEachTransform","sourceEachTransform","transformEachRawEvent","refinedEvents","refinedEvent","expandRange","rezoneEventStoreDates","oldDateEnv","newDateEnv","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","parseToolbar","sectionStrHash","sectionWidgets","hasTitle","sectionName","sectionStr","sectionRes","parseSection","widgets","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonClick","buttonIcon","click","text","hint","textFallback","prevOrNext","navUnit","eventSourceDef$2","arrayEventSourcePlugin","eventSourceDef$1","funcEventSourcePlugin","requestJson","params","successCallback","failureCallback","toUpperCase","injectQueryStringParams","encodeParams","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","JSON_FEED_EVENT_SOURCE_REFINERS","extraParams","eventSourceDef","requestParams","buildRequestParams","errorMessage","jsonFeedEventSourcePlugin","customRequestParams","SIMPLE_RECURRING_REFINERS","startRecur","endRecur","recurring","recurringData","clippedFramingRange","expandRanges","simpleRecurringEventsPlugin","dowHash","dayMarker","instanceStarts","instanceStart","changeHandlerPlugin","handleEventSources","unfoundSources","newInputs","inputs_1","inputFound","unfoundSources_1","unfoundSource","newInputs_1","newInput","handleDateProfile","handleEventStore","globalPlugins","html","buildHtmlRenderer","domNodes","buildDomNodeRenderer","currentEl","currentHtml","currentDomNodes","newDomNodes","newDomNodes_1","newNode","DelayedRunner","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","delay","isPaused","tryDrain","pause","scope","resume","force","depth","drained","clear","TaskRunner","runTaskOption","queue","delayedRunner","task","completedTasks","runTask","buildTitle","buildTitleFormat","CalendarDataManager","computeOptionsData","_computeOptionsData","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","actionRunner","_handleAction","updateData","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","optionsData","currentViewType","currentViewData","calendarContext","initialState","renderableEventStore","selectionConfig","contextAndState","reducer","computeIsLoading","resetOptions","append","isEventsLoading","eventUiSingleBase","eventUiBySource","newState","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","onData","processRawCalendarOptions","refinedOptions","availableLocaleData","warnUnknownOptions","currentRaw","currentRefined","anyChanges","processRawViewOptions","explicitLocale","ThemeClass","DateProfileGeneratorClass","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","span0","span1","searchVal","getItemVal","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","extraClassName","forceLtr","centerContent","renderSection","ViewContainer","availableWidth","handleEl","updateAvailableWidth","handleResize","liquid","paddingBottom","labeledById","EventClicking","handleSegClick","segEl","hasUrlContainer","location","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","publicEvName","CalendarContent","buildViewPropTransformers","buildToolbarProps","headerRef","footerRef","interactionsStore","viewLabelId","settingsInput","DEFAULT_INTERACTIONS","interactionClasses","interactions","TheInteractionClass","listeners","listeners_1","listener","resizeRunner","viewAspectRatio","toolbarProps","viewVGrow","isHeightAuto","forPrint","viewContext","renderView","buildAppendContent","CalendarInteractionClass","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","CalendarRoot","handleBeforePrint","handleAfterPrint","computeFallbackHeaderFormat","datesRepDistinctDays","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","renderIntro","explicitFormat","dateCnt","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","segs","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","childEl","needsYScrolling","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","currentMap","depths","callbackMap","handleValue","removed","added","refCallback","collect","getAll","computeShrinkWidth","chunkEls","shrinkCells","largestWidth","shrinkCells_1","shrinkCell","getSectionHasLiquidHeight","sectionConfig","getAllowYScrolling","renderChunkContent","chunkConfig","isHeader","tableClassName","syncRowHeights","minWidth","tableMinWidth","tableColGroupNode","rowContent","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","cols_1","colProps","sanitizeShrinkWidth","hasShrinkWidth","cols_2","getScrollGridClassNames","getSectionClassNames","wholeTableVGrow","SimpleScrollGrid","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","sections","microColGroupNode","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","outerContent","renderChunkTd","chunk","isLiquid","sectionKey","rowSyncHeights","reportRowHeightChange","scrollerEl","section","getSectionByKey","scrollerElRef","scrollbarWidth","scroller","harnessEl","sections_1","EventRoot","timeText","disableDragging","disableResizing","isDateSelecting","standardClassNames","StandardEvent","defaultTimeFormat","renderInnerContent$1","innerProps","DAY_NUM_FORMAT","DayCellContent","refineDayCellHookProps","showDayNumber","extraProps","dayNumberText","DayCellRoot","refineHookProps","dataAttrs","PADDING_FROM_VIEWPORT","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","computeLatestSegEnd","pickEarliestStart","seg0","seg1","pickLatestEnd","Calendar","isRendering","isRendered","customContentRenderId","handleAction","renderRunner","handleRenderRequest","currentData_1","setClassNames","setHeight","wasRendering","pauseRendering","resumeRendering","classList","classNames_1","OPTION_IS_COMPLEX","resources","shallowCopy","output","wrapVDomGenerator","vDomGenerator","vue","createVueContentTypePlugin","parent","buildVDomHandler","vDomContent","$destroy","initVue","innerEl","$mount","initialContent","FullCalendar","extend","initData","mounted","internal","$options","scopedSlotOptions","$scopedSlots","calendar","$el","buildOptions","methods","getApi","beforeUpdate","beforeDestroy","watch","buildWatchers","suppliedOptions","watchers","deep","_loop_1","complexOptionName","GlobalVue","installed","install","Vue","use","fieldSpecs","cmp","fieldSpec","localeCompare","isMaybeObjectsEqual","eventOrderSpecs","objs","_seg","segRange","safeSetState","fillType","defaultFormat","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","hiddenConsumes","segInputs","unknownHeightSegs","eventHeight","segRects","placeRects","singleColPlacements","multiColPlacements","leftoverMargins","moreCnts","moreMarginTops","unknownHeightSegs_1","absoluteTop","resliceSeg","hiddenEntries_1","hiddenEntry","hiddenSpan","allRects","rectsByEachCol","groupRectsByEachCol","currentHeight","currentMarginTop","rects_1","multiPlacements","rects_2","isFirstCol","rects_3","spanStart","spanEnd","DayGridSegHierarchy","forceHidden","excludeHidden","touchingEntryId","placeholderEntry","placeholderEntryId","TableRow","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","updateSizing","prevState","currentProps","segPlacements","nodes","segPlacements_1","leftRightCss","isExternalSizingChange","frameEls","oldInstanceHeights","newInstanceHeights","queryEventInstanceHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","getCellEls","elMap","mirrorSegs","colPlacements","topsByInstanceId","buildAbsoluteTopHash","colPlacements_1","placements","placements_1","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","dayGrid","dayGridDay","dayGridWeek","dayGridMonth","numerator","denominator","localRes","merges","entries_2","filteredMerges","hungryMerge","merges_1","merge","isAxis","AllDaySplitter","timed","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","isLabeled","isoTimeStr","labelFormat","TimeBodyAxis","slatMetas","slatMeta","AUTO_ALL_DAY_MAX_EVENT_ROWS","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","collectSlatEls","splitSegsByCol","segsByCol","splitInteractionByCol","TimeColMoreLink","renderPlainFgSegs","buildPositioning","hiddenGroups","web","buildWeb","stretchWeb","webToRects","buildNode","cacheable","siblingRange","findNextLevelSegs","nextLevelRes","buildNodes","nextLevelNodes","lateralStart","lateralEnd","pairs","cmpDescPressures","extractNode","subjectLevel","subjectLateral","subjectEntry","afterSubject","searchIndex","topLevelNodes","totalThickness","stretchNode","startCoord","prevThickness","endCoord","allThickness","thicknessFraction","newChildren","nextLevelNodes_1","childNode","newThickness","processNode","stackDepth","stackForward","processNodes","nodes_1","keyFunc","workFunc","cache","computeSegVCoords","colDate","vcoords","computeFgSegPlacements","segVCoords","dumbSegs","segRects_1","segRect","dumbSegs_1","dumbSeg","DEFAULT_TIME_FORMAT","TimeColEvent","isShort","TimeColMisc","TimeCol","sortEventSegs","isSelectMirror","interactionAffectedInstances","sortedFgSegs","renderNowIndicator","nowIndicatorSegs","segIsInvisible","renderPositionedFgSegs","renderHiddenGroups","segPlacement","vStyle","computeSegVStyle","hStyle","computeSegHStyle","isInset","hiddenGroup","positionCss","compileSegsFromEntries","segHCoords","shouldOverlap","nearCoord","farCoord","zIndex","hiddenInstances","segEntries","segEntry","TimeColsContent","splitNowIndicatorSegs","nowIndicatorSegsByRow","updateCoords","onColCoords","collectCellEls","TimeCols","processSlotOptions","onScrollTopRequest","top_1","handleColCoords","colCoords","onSlatCoords","scrollResponder","snapsPerSlot","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","dayDate","snapDurationOverride","DayTimeColsSlicer","dayRanges","DayTimeCols","buildDayRanges","timeColsRef","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","slatTime","slatIterator","labelInterval","computeLabelInterval","metas","slotsPerLabel","DayTimeColsView","buildTimeColsModel","hasAttachedAxis","hasDetachedAxis","allDaySlot","timeGridContent","OPTION_REFINERS","timeGrid","timeGridDay","timeGridWeek","flushToDom","realCallback","eventName","outerRange","innerRange","point","point1","point2","buildNavLinkData","outerEl","border","padding","getPadding","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","goWithinPadding","doFromWindowViewport","outerRect","edges","rawVal","innerContentVDom","removals","injectHtml","injectDomNodes","oldNodes","newNodes","newNodes_1","segInputs_1","segInput","nextLevel","resCoord","leftoverProps","ariaAttrs","handleNavLinkClick","_handleNavLinkClick","anchorEl","navLinkOptions","getAttribute","calendarState","dateSpanMeta","filterConfig","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","eventOverlapFunc","otherInstanceId","otherInstance","otherOverlap","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","businessHoursUnexpanded","constraints_1","outerRanges","outerRanges_1","handleDocumentMousedown","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","containerEl","subjectEl","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","createEventFromMouse","initScrollWatch","handleMouseMove","handleMouseUp","recordCoords","cleanup","handleTouchStart","createEventFromTouch","targetEl","handleTouchMove","handleTouchEnd","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","prevScrollX","prevPageX","pageY","prevScrollY","prevPageY","isTouch","deltaX","origPageX","deltaY","origPageY","passive","listenerCreated","listenerDestroyed","querySubjectEl","downEl","destroyScrollWatch","cancelTouchScroll","isFirst","touches","ctrlKey","onWindowTouchMove","ElementMirror","sourceEl","mirrorEl","sourceElRect","revertDuration","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","stop","needsRevertAnimation","done","doRevertAnimation","finalSourceElRect","transition","getMirrorEl","cloneNode","boxSizing","margin","ScrollGeomCache","scrollController","doesListening","handleScrollChange","origScrollTop","origScrollLeft","clientRect","computeClientRect","getEventTarget","ElementScrollGeomCache","WindowScrollGeomCache","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","buildCaches","yDelta","xDelta","scrollCache","invDistance","distance","velocity","bestSide","leftDist","rightDist","topDist","bottomDist","queryScrollEls","query","FeaturefulElementDragging","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","tryStopDrag","handleDelayEnd","tryStartDrag","stopDrag","setIgnoreMove","OffsetTracker","origRect","scrollEl","computeLeft","computeTop","isWithinClipping","isIgnoredClipping","tagName","HitDragging","dragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","offsetLeft","offsetTop","bestHit","offsetTracker","originLeft","originTop","componentId","hit0","hit1","buildDatePointApiWithContext","buildDatePointApi","DateClicking","hitDragging","DateSelecting","dragSelection","canSelect","getComponentTouchDelay$1","handleHitUpdate","isFinal","isInvalid","disallowed","joinHitsIntoSelection","dateSpan0","dateSpan1","dateSelectionTransformers_1","EventDragging","subjectSeg","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","getComponentTouchDelay","fixedMirrorParent","receivingOptions","computeEventMutation","displayDrag","initialContext_1","receivingContext_1","relevantEvents_1","mutatedRelevantEvents_1","clearDrag","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","SELECTOR","nextContext","prevContext","initialCalendar","massagers","massagers_1","massager","EventResizing","draggingSegEl","draggingSeg","querySegEl","computeMutation","isFromStart","UnselectAuto","isRecentPointerDateSelect","matchesCancel","matchesEvent","onSelect","selectInfo","onDocumentPointerDown","onDocumentPointerUp","documentPointer","LISTENER_REFINERS","dateClick","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","drop","eventReceive","eventLeave","ExternalElementDragging","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","computeEventForDateSpan","finalView","addingEvents_1","getDragMetaFromEl","defProps","getEmbeddedElData","dataAttrPrefix","prefixedName","ExternalDraggable","itemSelector","appendTo","eventData","InferredElementDragging","mirrorSelector","currentMirrorEl","handlePointerMove","ThirdPartyDraggable","containerOrSettings","Element","BootstrapTheme","table","popover","popoverHeader","bootstrap","ListViewHeaderRow","listDayFormat","sideText","listDaySideFormat","navLinkData","ListViewEventRow","renderEventInnerContent","buildTimeContent","anchorAttrs","doAllDay","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","setRootEl","dayDates","renderSegList","renderEmptyMessage","noEventsClassNames","noEventsContent","renderNoEventsInner","noEventsDidMount","noEventsWillUnmount","segsByDay","groupSegsByDay","innerNodes","daySegs","dayStr","daySegs_1","eventRangesToSegs","eventRangeToSegs","viewEnd","createFalsableFormatter","listDay","listWeek","listMonth","listYear","categories","calendarEvents","match","every","hexValid","hex","prop","_alpha","_alphaNum","_numeric","_between","_email","_ipAddress","_macAddress","_maxLength","_minLength","_required","_requiredIf","_requiredUnless","_sameAs","_url","_or","_and","_not","_minValue","_maxValue","_integer","_decimal","helpers","_interopRequireWildcard","newObj","desc","getOwnPropertyDescriptor","equalTo","eq","nibbles","nibbleValid","nibble","numeric","global","fakeWithParams","paramsOrClosure","maybeValidator","vuelidate"],"mappings":"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","file":"js/chunk-c8e93708.db00ed49.js","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('integer', /(^[0-9]*$)|(^-[0-9]+$)/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'maxLength',\n max: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) <= length;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'and'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid && fn.apply(_this, args);\n }, true);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alphaNum', /^[a-zA-Z0-9]*$/);\n\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.layoutType === 'vertical')?_c('Vertical',{attrs:{\"layout\":_vm.layoutType}},[_vm._t(\"default\")],2):_vm._e(),(_vm.layoutType === 'horizontal')?_c('Horizontal',{attrs:{\"layout\":_vm.layoutType}},[_vm._t(\"default\")],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./main.vue?vue&type=template&id=2c9ce7e8&\"\nimport script from \"./main.vue?vue&type=script&lang=js&\"\nexport * from \"./main.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('numeric', /^[0-9]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(max) {\n return (0, _common.withParams)({\n type: 'maxValue',\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value <= +max;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/;\n\nvar _default = (0, _common.regex)('email', emailRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(length) {\n return (0, _common.withParams)({\n type: 'minLength',\n min: length\n }, function (value) {\n return !(0, _common.req)(value) || (0, _common.len)(value) >= length;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('alpha', /^[a-zA-Z]*$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(validator) {\n return (0, _common.withParams)({\n type: 'not'\n }, function (value, vm) {\n return !(0, _common.req)(value) || !validator.call(this, value, vm);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar urlRegex = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i;\n\nvar _default = (0, _common.regex)('url', urlRegex);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"withParams\", {\n enumerable: true,\n get: function get() {\n return _withParams.default;\n }\n});\nexports.regex = exports.ref = exports.len = exports.req = void 0;\n\nvar _withParams = _interopRequireDefault(require(\"../withParams\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar req = function req(value) {\n if (Array.isArray(value)) return !!value.length;\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value === false) {\n return true;\n }\n\n if (value instanceof Date) {\n return !isNaN(value.getTime());\n }\n\n if (_typeof(value) === 'object') {\n for (var _ in value) {\n return true;\n }\n\n return false;\n }\n\n return !!String(value).length;\n};\n\nexports.req = req;\n\nvar len = function len(value) {\n if (Array.isArray(value)) return value.length;\n\n if (_typeof(value) === 'object') {\n return Object.keys(value).length;\n }\n\n return String(value).length;\n};\n\nexports.len = len;\n\nvar ref = function ref(reference, vm, parentVm) {\n return typeof reference === 'function' ? reference.call(vm, parentVm) : parentVm[reference];\n};\n\nexports.ref = ref;\n\nvar regex = function regex(type, expr) {\n return (0, _withParams.default)({\n type: type\n }, function (value) {\n return !req(value) || expr.test(value);\n });\n};\n\nexports.regex = regex;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar withParams = process.env.BUILD === 'web' ? require('./withParamsBrowser').withParams : require('./params').withParams;\nvar _default = withParams;\nexports.default = _default;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Layout',[_c('PageHeader',{attrs:{\"title\":_vm.title,\"items\":_vm.items}}),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"app-calendar\"},[_c('FullCalendar',{ref:\"fullCalendar\",attrs:{\"options\":_vm.calendarOptions}})],1)])])]),_c('b-modal',{attrs:{\"centered\":\"\",\"title\":\"Add New Event\",\"title-class\":\"text-black font-18\",\"body-class\":\"p-4\",\"hide-footer\":\"\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit.apply(null, arguments)}}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"mb-3\"},[_c('label',{staticClass:\"form-label\",attrs:{\"for\":\"name\"}},[_vm._v(\"Event Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.event.title),expression:\"event.title\"}],staticClass:\"form-control\",class:{ 'is-invalid': _vm.submitted && _vm.$v.event.title.$error },attrs:{\"id\":\"name\",\"type\":\"text\",\"placeholder\":\"Insert Event name\"},domProps:{\"value\":(_vm.event.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.event, \"title\", $event.target.value)}}}),(_vm.submitted && !_vm.$v.event.title.required)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" This value is required. \")]):_vm._e()])]),_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"mb-3\"},[_c('label',{staticClass:\"form-label\"},[_vm._v(\"Category\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.event.category),expression:\"event.category\"}],staticClass:\"form-control\",class:{\n 'is-invalid': _vm.submitted && _vm.$v.event.category.errors,\n },attrs:{\"name\":\"category\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.event, \"category\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.categories),function(option){return _c('option',{key:option.backgroundColor,domProps:{\"value\":(\"\" + (option.value))}},[_vm._v(\" \"+_vm._s(option.name)+\" \")])}),0),(_vm.submitted && !_vm.$v.event.category.required)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\" This value is required. \")]):_vm._e()])])]),_c('div',{staticClass:\"mt-2 text-end\"},[_c('b-button',{attrs:{\"variant\":\"light\"},on:{\"click\":_vm.hideModal}},[_vm._v(\"Close\")]),_c('b-button',{staticClass:\"ms-1\",attrs:{\"type\":\"submit\",\"variant\":\"success\"}},[_vm._v(\"Save\")])],1)])]),_c('b-modal',{attrs:{\"centered\":\"\",\"title\":\"Edit Event\",\"title-class\":\"text-black font-18\",\"hide-footer\":\"\",\"body-class\":\"p-4\"},model:{value:(_vm.eventModal),callback:function ($$v) {_vm.eventModal=$$v},expression:\"eventModal\"}},[_c('div',{attrs:{\"slot\":\"modal-title\"},slot:\"modal-title\"},[_vm._v(\" Edit Event \")]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.editSubmit.apply(null, arguments)}}},[_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"mb-3\"},[_c('label',{staticClass:\"form-label\",attrs:{\"for\":\"name\"}},[_vm._v(\"Event Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editevent.editTitle),expression:\"editevent.editTitle\"}],staticClass:\"form-control\",attrs:{\"id\":\"name\",\"type\":\"text\",\"placeholder\":\"Insert Event name\"},domProps:{\"value\":(_vm.editevent.editTitle)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.editevent, \"editTitle\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"mb-3\"},[_c('label',{staticClass:\"form-label\"},[_vm._v(\"Category\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.editevent.editcategory),expression:\"editevent.editcategory\"}],staticClass:\"form-control\",attrs:{\"name\":\"category\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.editevent, \"editcategory\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.categories),function(option){return _c('option',{key:option.backgroundColor,domProps:{\"value\":(\"\" + (option.value))}},[_vm._v(\" \"+_vm._s(option.name)+\" \")])}),0)])])]),_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-6\"},[_c('b-button',{staticClass:\"ms-1\",attrs:{\"variant\":\"danger\"},on:{\"click\":_vm.confirm}},[_vm._v(\"Delete\")])],1),_c('div',{staticClass:\"col-6 text-end\"},[_c('b-button',{attrs:{\"variant\":\"light\"},on:{\"click\":_vm.closeModal}},[_vm._v(\"Close\")]),_c('b-button',{staticClass:\"ms-1\",attrs:{\"variant\":\"success\"},on:{\"click\":_vm.editSubmit}},[_vm._v(\"Save\")])],1)])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var n,l,u,i,t,o,r={},f=[],e=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function c(n,l){for(var u in l)n[u]=l[u];return n}function s(n){var l=n.parentNode;l&&l.removeChild(n)}function a(n,l,u){var i,t,o,r=arguments,f={};for(o in l)\"key\"==o?i=l[o]:\"ref\"==o?t=l[o]:f[o]=l[o];if(arguments.length>3)for(u=[u],o=3;o0?v(k.type,k.props,k.key,null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(_=A[h])||_&&k.key==_.key&&k.type===_.type)A[h]=void 0;else for(p=0;p3)for(u=[u],o=3;o=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){i.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}),i=[]}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=void 0},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g)}catch(t){n.__e(t,u.__v)}};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u;\"function\"==typeof n.__c&&n.__c(),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as f,useDebugValue as c}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as p,Fragment as v,render as d,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function C(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=C({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:p(p(n).map(t))},k={map:N,forEach:N,count:function(n){return n?p(n).length:0},only:function(n){var t=p(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:p},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function F(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=C({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),t.i.removeChild(n)}}),d(s(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function I(n,t){return s(j,{__v:n,i:t})}(F.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u()};e?e(o):o()}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=p(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t)})};var W=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=\"\"),d(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){for(var u in r={},e){var o=e[u];\"value\"===u&&\"defaultValue\"in e&&null==o||(\"defaultValue\"===u&&\"value\"in e&&null==e.value?u=\"value\":\"download\"===u&&!0===o?o=\"\":/ondoubleclick/i.test(u)?u=\"ondblclick\":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u=\"oninput\":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===o&&(o=void 0),r[u]=o)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=p(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=p(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r}t&&e.class!=e.className&&(G.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",G)),n.$$typeof=W,J&&J(n)};var K=h.__r;h.__r=function(n){K&&K(n),q=n.__c};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}},X=1,nn=2,tn=3,en=4,rn=5;function un(n,t){return t()}var on=\"object\"==typeof performance&&\"function\"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()},ln=\"16.8.0\";function fn(n){return s.bind(null,n)}function cn(n){return!!n&&n.$$typeof===W}function an(n){return cn(n)?y.apply(null,arguments):n}function sn(n){return!!n.__k&&(d(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},vn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:f,useDebugValue:c,version:\"16.8.0\",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:s,createContext:_,createFactory:fn,cloneElement:an,createRef:b,Fragment:v,isValidElement:cn,findDOMNode:hn,Component:a,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:v,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};export{ln as version,k as Children,z as render,B as hydrate,sn as unmountComponentAtNode,I as createPortal,fn as createFactory,an as cloneElement,cn as isValidElement,hn as findDOMNode,E as PureComponent,g as memo,x as forwardRef,pn as unstable_batchedUpdates,vn as StrictMode,L as Suspense,F as SuspenseList,D as lazy,Q as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,X as unstable_ImmediatePriority,nn as unstable_UserBlockingPriority,tn as unstable_NormalPriority,en as unstable_LowPriority,rn as unstable_IdlePriority,un as unstable_runWithPriority,on as unstable_now};\n//# sourceMappingURL=compat.module.js.map\n","import { __extends } from 'tslib';\nimport * as preact from 'preact';\nimport * as preactCompat from 'preact/compat';\n\nvar globalObj = typeof globalThis !== 'undefined' ? globalThis : window; // // TODO: streamline when killing IE11 support\nif (globalObj.FullCalendarVDom) {\n console.warn('FullCalendar VDOM already loaded');\n}\nelse {\n globalObj.FullCalendarVDom = {\n Component: preact.Component,\n createElement: preact.createElement,\n render: preact.render,\n createRef: preact.createRef,\n Fragment: preact.Fragment,\n createContext: createContext,\n createPortal: preactCompat.createPortal,\n flushSync: flushSync,\n unmountComponentAtNode: unmountComponentAtNode,\n };\n}\n// HACKS...\n// TODO: lock version\n// TODO: link gh issues\nfunction flushSync(runBeforeFlush) {\n runBeforeFlush();\n var oldDebounceRendering = preact.options.debounceRendering; // orig\n var callbackQ = [];\n function execCallbackSync(callback) {\n callbackQ.push(callback);\n }\n preact.options.debounceRendering = execCallbackSync;\n preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));\n while (callbackQ.length) {\n callbackQ.shift()();\n }\n preact.options.debounceRendering = oldDebounceRendering;\n}\nvar FakeComponent = /** @class */ (function (_super) {\n __extends(FakeComponent, _super);\n function FakeComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FakeComponent.prototype.render = function () { return preact.createElement('div', {}); };\n FakeComponent.prototype.componentDidMount = function () { this.setState({}); };\n return FakeComponent;\n}(preact.Component));\nfunction createContext(defaultValue) {\n var ContextType = preact.createContext(defaultValue);\n var origProvider = ContextType.Provider;\n ContextType.Provider = function () {\n var _this = this;\n var isNew = !this.getChildContext;\n var children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n if (isNew) {\n var subs_1 = [];\n this.shouldComponentUpdate = function (_props) {\n if (_this.props.value !== _props.value) {\n subs_1.forEach(function (c) {\n c.context = _props.value;\n c.forceUpdate();\n });\n }\n };\n this.sub = function (c) {\n subs_1.push(c);\n var old = c.componentWillUnmount;\n c.componentWillUnmount = function () {\n subs_1.splice(subs_1.indexOf(c), 1);\n old && old.call(c);\n };\n };\n }\n return children;\n };\n return ContextType;\n}\nfunction unmountComponentAtNode(node) {\n preact.render(null, node);\n}\n","/// \nif (typeof FullCalendarVDom === 'undefined') {\n throw new Error('Please import the top-level fullcalendar lib before attempting to import a plugin.');\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 };\n","/*!\nFullCalendar v5.10.2\nDocs & License: https://fullcalendar.io/\n(c) 2021 Adam Shaw\n*/\nimport './main.css';\n\nimport { __assign, __spreadArray, __extends } from 'tslib';\nimport { createContext, Component, createRef, createElement, Fragment, createPortal } from './vdom.js';\nexport * from './vdom.js';\n\n// no public types yet. when there are, export from:\n// import {} from './api-type-deps'\nvar EventSourceApi = /** @class */ (function () {\n function EventSourceApi(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n EventSourceApi.prototype.remove = function () {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId,\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 Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function () {\n return this.internalEventSource.publicId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n get: function () {\n return this.internalEventSource.meta.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"format\", {\n get: function () {\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}\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n el = (el.parentElement || el.parentNode);\n } while (el !== null && el.nodeType === 1);\n return null;\n}\nfunction elementMatches(el, selector) {\n var method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n}\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nfunction findElements(container, selector) {\n var containers = container instanceof HTMLElement ? [container] : container;\n var allMatches = [];\n for (var i = 0; i < containers.length; i += 1) {\n var matches = containers[i].querySelectorAll(selector);\n for (var j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n return allMatches;\n}\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nfunction findDirectChildren(parent, selector) {\n var parents = parent instanceof HTMLElement ? [parent] : parent;\n var allMatches = [];\n for (var i = 0; i < parents.length; i += 1) {\n var childNodes = parents[i].children; // only ever elements\n for (var j = 0; j < childNodes.length; j += 1) {\n var childNode = childNodes[j];\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n return allMatches;\n}\n// Style\n// ----------------------------------------------------------------------------------------------------------------\nvar PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\nfunction applyStyle(el, props) {\n for (var propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n }\n else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = val + \"px\";\n }\n else {\n el.style[name] = val;\n }\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.\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n}\n// Shadow DOM consuderations\n// ----------------------------------------------------------------------------------------------------------------\nfunction getElRoot(el) {\n return el.getRootNode ? el.getRootNode() : document;\n}\n// Unique ID for DOM attribute\nvar guid$1 = 0;\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction buildDelegationHandler(selector, handler) {\n return function (ev) {\n var matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\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}\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 var realOnMouseLeave_1 = function (mouseLeaveEv) {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nvar transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n var realCallback = function (ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n// ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\nfunction createAriaClickAttrs(handler) {\n return __assign({ onClick: handler }, createAriaKeyboardAttrs(handler));\n}\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown: function (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;\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\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter.apply(void 0, args);\n }\n if (typeof formatter === 'string') { // non-blank string\n return args.reduce(function (str, arg, index) { return (str.replace('$' + index, arg || '')); }, formatter);\n }\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\nfunction computeSmallestCellWidth(cellEl) {\n var allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n var contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\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'];\n// Adding\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\n// TODO: why not use ranges?\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n var m0day = startOfDay(m0);\n var m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds(),\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n var dayStart = startOfDay(marker);\n var days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n var fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC.apply(Date, a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\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;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexPropsMap) {\n var dest = {};\n if (complexPropsMap) {\n for (var name_1 in complexPropsMap) {\n var complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var val = propObjs[i][name_1];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name_1] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name_1] = mergeProps(complexObjs);\n }\n }\n }\n // copy values into the destination, going from last to first\n for (var i = propObjs.length - 1; i >= 0; i -= 1) {\n var props = propObjs[i];\n for (var name_2 in props) {\n if (!(name_2 in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name_2] = props[name_2];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n var filtered = {};\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n var newHash = {};\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n var hash = {};\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var item = a_1[_i];\n hash[item] = true;\n }\n return hash;\n}\nfunction buildHashFromArray(a, func) {\n var hash = {};\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 return hash;\n}\nfunction hashValuesToArray(obj) {\n var a = [];\n for (var key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\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 for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\nfunction getUnequalProps(obj0, obj1) {\n var keys = [];\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 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 return keys;\n}\nfunction compareObjs(oldProps, newProps, equalityFuncs) {\n if (equalityFuncs === void 0) { equalityFuncs = {}; }\n if (oldProps === newProps) {\n return true;\n }\n for (var key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;\n else {\n return false;\n }\n }\n // check for props that were omitted in the new\n for (var key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n if (comparator) {\n return comparator(val0, val1);\n }\n return false;\n}\nfunction collectFromHash(hash, startIndex, endIndex, step) {\n if (startIndex === void 0) { startIndex = 0; }\n if (step === void 0) { step = 1; }\n var res = [];\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n for (var i = startIndex; i < endIndex; i += step) {\n var val = hash[i];\n if (val !== undefined) { // will disregard undefined for sparse arrays\n res.push(val);\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 if (parsed) {\n var allDay = refined.allDay;\n if (allDay == null) {\n allDay = defaultAllDay;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i,\n };\n }\n }\n return null;\n}\nfunction expandRecurring(eventStore, framingRange, context) {\n var dateEnv = context.dateEnv, pluginHooks = context.pluginHooks, options = context.options;\n var defs = eventStore.defs, instances = eventStore.instances;\n // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n instances = filterHash(instances, function (instance) { return !defs[instance.defId].recurringDef; });\n for (var defId in defs) {\n var def = defs[defId];\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n if (!duration) {\n duration = def.allDay ?\n options.defaultAllDayEventDuration :\n options.defaultTimedEventDuration;\n }\n var starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n var start = starts_1[_i];\n var instance = createEventInstance(defId, {\n start: start,\n end: dateEnv.add(start, duration),\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs: defs, instances: instances };\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end,\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n var _a;\n if (typeof input === 'string') {\n return parseString(input);\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseObject(input);\n }\n if (typeof input === 'number') {\n return parseObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n return null;\n}\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n if (m) {\n var sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n ),\n };\n }\n return null;\n}\nfunction 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 var weeks = obj.weeks || obj.week;\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n return duration;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n return 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds,\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds,\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n,\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n for (var i = 0; i < INTERNAL_UNITS.length; i += 1) {\n var unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur) {\n var ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) { stripZeroTime = false; }\n var s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n}\n// TODO: use Date::toISOString and use everything after the T?\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) { doIso = false; }\n var sign = minutes < 0 ? '-' : '+';\n var abs = Math.abs(minutes);\n var hours = Math.floor(abs / 60);\n var mins = Math.round(abs % 60);\n if (doIso) {\n return sign + padStart(hours, 2) + \":\" + padStart(mins, 2);\n }\n return \"GMT\" + sign + hours + (mins ? \":\" + padStart(mins, 2) : '');\n}\n\n// TODO: new util arrayify?\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n }\n else {\n i += 1;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n var len = a0.length;\n var i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\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 for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n }\n else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n var res = workerFunc.apply(this, newArgs);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArgs = newArgs;\n return currentRes;\n };\n}\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n var _this = this;\n var currentArg;\n var currentRes;\n return function (newArg) {\n if (!currentArg) {\n currentRes = workerFunc.call(_this, newArg);\n }\n else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n var res = workerFunc.call(_this, newArg);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArg = newArg;\n return currentRes;\n };\n}\nfunction memoizeArraylike(// used at all?\nworkerFunc, resEquality, teardownFunc) {\n var _this = this;\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 for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) { // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n }\n else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n var res = workerFunc.apply(_this, newArgSets[i]);\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(_this, newArgSets[i]);\n }\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n return currentResults;\n };\n}\nfunction memoizeHashlike(// used?\nworkerFunc, resEquality, teardownFunc) {\n var _this = this;\n var currentArgHash = {};\n var currentResHash = {};\n return function (newArgHash) {\n var newResHash = {};\n for (var key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(_this, newArgHash[key]);\n }\n else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n var res = workerFunc.apply(_this, newArgHash[key]);\n newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n ? currentResHash[key]\n : res;\n }\n else {\n newResHash[key] = currentResHash[key];\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\nvar COMMA_RE = /,/g; // we need re for globalness\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\nvar UTC_RE = /UTC|GMT/;\nvar NativeFormatter = /** @class */ (function () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n for (var name_1 in formatSettings) {\n if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name_1] = formatSettings[name_1];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n }\n else {\n standardDateProps[name_1] = formatSettings[name_1];\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n NativeFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings;\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n var biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n var partial0 = partialFormattingFunc(start);\n var partial1 = partialFormattingFunc(end);\n var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n var separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n };\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n case 2:\n return 'day';\n default:\n return 'time'; // really?\n }\n };\n return NativeFormatter;\n}());\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) { return (formatTimeZoneOffset(date.timeZoneOffset)); };\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) { return (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week)); };\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n extendedSettings = __assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return function (date) {\n var marker = date.marker;\n var format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) { return m1.toLocaleLowerCase(); });\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) { return m1.toLocaleLowerCase() + \"m\"; });\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) { return m0.toLocaleLowerCase(); });\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += \" \" + tzoStr;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n var parts = [];\n if (display === 'long') {\n parts.push(weekTextLong);\n }\n else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n for (var name_2 in options) {\n if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n partialOptions[name_2] = options[name_2];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0,\n };\n }\n }\n }\n return null;\n}\n\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\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nvar CmdFormatter = /** @class */ (function () {\n function CmdFormatter(cmdStr) {\n this.cmdStr = cmdStr;\n }\n CmdFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n CmdFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n return CmdFormatter;\n}());\n\nvar FuncFormatter = /** @class */ (function () {\n function FuncFormatter(func) {\n this.func = func;\n }\n FuncFormatter.prototype.format = function (date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n };\n FuncFormatter.prototype.formatRange = function (start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n };\n return FuncFormatter;\n}());\n\nfunction createFormatter(input) {\n if (typeof input === 'object' && input) { // non-null object\n return new NativeFormatter(input);\n }\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n return null;\n}\n\n// base options\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};\n// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\nvar BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\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: { month: 'long', day: 'numeric', year: 'numeric' },\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};\n// calendar listeners\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};\n// calendar-specific options\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: isBoolComplexEqual,\n footerToolbar: isBoolComplexEqual,\n buttonText: isBoolComplexEqual,\n buttonHints: isBoolComplexEqual,\n buttonIcons: isBoolComplexEqual,\n};\nfunction isBoolComplexEqual(a, b) {\n if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects\n return isPropsEqual(a, b);\n }\n return a === b;\n}\n// view-specific options\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};\n// util funcs\n// ----------------------------------------------------------------------------------------------------\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\nfunction refineProps(input, refiners) {\n var refined = {};\n var extra = {};\n for (var propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n for (var propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n return { refined: refined, extra: extra };\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 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 if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) { eventStore = createEmptyEventStore(); }\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n if (instance) {\n var def_1 = eventStore.defs[instance.defId];\n // get events/instances with same group\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) { return isEventDefsGrouped(def_1, lookDef); });\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\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}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n var defs = filterHash(eventStore.defs, filterFunc);\n var instances = filterHash(eventStore.instances, function (instance) { return (defs[instance.defId] // still exists?\n ); });\n return { defs: defs, instances: instances };\n}\nfunction excludeSubEventStore(master, sub) {\n var defs = master.defs, instances = master.instances;\n var filteredDefs = {};\n var filteredInstances = {};\n for (var defId in defs) {\n if (!sub.defs[defId]) { // not explicitly excluded\n filteredDefs[defId] = defs[defId];\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 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 if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n if (input != null) {\n return String(input);\n }\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n return [];\n}\n\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\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};\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!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\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};\nvar EVENT_REFINERS = __assign(__assign(__assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners) {\n if (refiners === void 0) { refiners = buildEventRefiners(context); }\n var _a = refineEventDef(raw, context, refiners), refined = _a.refined, extra = _a.extra;\n var defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n var recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\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 { def: def, instance: null };\n }\n var singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\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 { def: def, instance: instance };\n }\n return null;\n}\nfunction refineEventDef(raw, context, refiners) {\n if (refiners === void 0) { refiners = buildEventRefiners(context); }\n return refineProps(raw, refiners);\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*/\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 for (var _i = 0, _a = context.pluginHooks.eventDefMemberAdders; _i < _a.length; _i++) {\n var memberAdder = _a[_i];\n __assign(def, memberAdder(refined));\n }\n // help out EventApi from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction 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 if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ?\n context.options.defaultAllDayEventDuration :\n context.options.defaultTimedEventDuration);\n }\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n };\n}\nfunction computeIsDefaultAllDay(eventSource, context) {\n var res = null;\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n return res;\n}\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n var start = startOfDay(timedRange.start);\n var end = addDays(start, dayCnt);\n return { start: start, end: end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); }\n var startDay = null;\n var endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start: start, end: end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n var invertedRanges = [];\n var start = constraintRange.start; // the end of the previous range. the start of the new range\n var i;\n var dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n var start = range0.start, end = range0.end;\n var newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start: start, end: end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n var inverseBgByGroupId = {};\n var inverseBgByDefId = {};\n var defByGroupId = {};\n var bgRanges = [];\n var fgRanges = [];\n var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n var ui = eventUis[def.defId];\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = eventStore.defs[instance.defId];\n var ui = eventUis[def.defId];\n var origRange = instance.range;\n var normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else 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 for (var groupId in inverseBgByGroupId) { // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n var invertedRange = invertedRanges_1[_i];\n var def = defByGroupId[groupId];\n var ui = eventUis[def.defId];\n bgRanges.push({\n def: def,\n ui: ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n var invertedRange = invertedRanges_2[_a];\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg ||\n el.parentNode.fcSeg || // for the harness\n null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) { return compileEventUi(eventDef, eventUiBases); });\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\nfunction sortEventSegs(segs, eventOrderSpecs) {\n var objs = segs.map(buildSegCompareObj);\n objs.sort(function (obj0, obj1) { return compareByFieldSpecs(obj0, obj1, eventOrderSpecs); });\n return objs.map(function (c) { return c._seg; });\n}\n// returns a object with all primitive props that can be compared\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 var end = range.end ? range.end.valueOf() : 0; // \"\n return __assign(__assign(__assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start: start,\n end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });\n}\nfunction computeSegDraggable(seg, context) {\n var pluginHooks = context.pluginHooks;\n var transformers = pluginHooks.isDraggableTransformers;\n var _a = seg.eventRange, def = _a.def, ui = _a.ui;\n var val = ui.startEditable;\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 return val;\n}\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n var dateEnv = context.dateEnv, options = context.options;\n var displayEventTime = options.displayEventTime, displayEventEnd = options.displayEventEnd;\n var eventDef = seg.eventRange.def;\n var eventInstance = seg.eventRange.instance;\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\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 if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\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 return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same\n });\n }\n return '';\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}\nfunction getEventClassNames(props) {\n var classNames = ['fc-event'];\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n return classNames;\n}\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance\n ? eventRange.instance.instanceId\n : eventRange.def.defId + \":\" + eventRange.range.start.toISOString();\n // inverse-background events don't have specific instances. TODO: better solution\n}\nfunction getSegAnchorAttrs(seg, context) {\n var _a = seg.eventRange, def = _a.def, instance = _a.instance;\n var url = def.url;\n if (url) {\n return { href: url };\n }\n var emitter = context.emitter, options = context.options;\n var eventInteractive = options.eventInteractive;\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n }\n // mock what happens in EventClicking\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 return {};\n}\n\nvar STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean,\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n var _a = refineProps(raw, STANDARD_PROPS), standardProps = _a.refined, extra = _a.extra;\n var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n var allDay = standardProps.allDay;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n return __assign({ range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null,\n }, allDay: allDay }, extra);\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (var propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return __assign(__assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });\n}\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return __assign(__assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });\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, { omitTime: omitTime }),\n endStr: dateEnv.formatIso(range.end, { omitTime: omitTime }),\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n var res = refineEventDef({ editable: false }, 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)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));\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}\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n var props = {};\n for (var _i = 0, _a = context.pluginHooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, context));\n }\n __assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n return props;\n}\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nfunction getDefaultEventEnd(allDay, marker, context) {\n var dateEnv = context.dateEnv, options = context.options;\n var end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n }\n else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n return end;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n var standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n var copy = __assign(__assign(__assign({}, eventDef), standardProps), { ui: __assign(__assign({}, eventDef.ui), standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = __assign(__assign({}, copy.extendedProps), mutation.extendedProps);\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 if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n return copy;\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 var copy = __assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta),\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end,\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta),\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end),\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n return copy;\n}\n\n// no public types yet. when there are, export from:\n// import {} from './api-type-deps'\nvar ViewApi = /** @class */ (function () {\n function ViewApi(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n Object.defineProperty(ViewApi.prototype, \"calendar\", {\n get: function () {\n return this.getCurrentData().calendarApi;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"title\", {\n get: function () {\n return this.getCurrentData().viewTitle;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ViewApi.prototype, \"activeStart\", {\n get: function () {\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 () {\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 () {\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 () {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n },\n enumerable: false,\n configurable: true\n });\n ViewApi.prototype.getOption = function (name) {\n return this.getCurrentData().options[name]; // are the view-specific options\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};\nfunction parseEventSource(raw, context, refiners) {\n if (refiners === void 0) { refiners = buildEventSourceRefiners(context); }\n var rawObj;\n if (typeof raw === 'string') {\n rawObj = { url: raw };\n }\n else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = { events: raw };\n }\n else if (typeof raw === 'object' && raw) { // not null\n rawObj = raw;\n }\n if (rawObj) {\n var _a = refineProps(rawObj, refiners), refined = _a.refined, extra = _a.extra;\n var metaRes = buildEventSourceMeta(refined, context);\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 return null;\n}\nfunction buildEventSourceRefiners(context) {\n return __assign(__assign(__assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\nfunction buildEventSourceMeta(raw, context) {\n var defs = context.pluginHooks.eventSourceDefs;\n for (var i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n if (meta) {\n return { sourceDefId: i, meta: meta };\n }\n }\n return null;\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n default:\n return currentDate;\n }\n}\nfunction getInitialDate(options, dateEnv) {\n var initialDateInput = options.initialDate;\n // compute the initial ambig-timezone date\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n return dateEnv.createMarker(nowInput);\n}\n\nvar CalendarApi = /** @class */ (function () {\n function CalendarApi() {\n }\n CalendarApi.prototype.getCurrentData = function () {\n return this.currentDataManager.getCurrentData();\n };\n CalendarApi.prototype.dispatch = function (action) {\n return this.currentDataManager.dispatch(action);\n };\n Object.defineProperty(CalendarApi.prototype, \"view\", {\n get: function () { return this.getCurrentData().viewApi; } // for public API\n ,\n enumerable: false,\n configurable: true\n });\n CalendarApi.prototype.batchRendering = function (callback) {\n callback();\n };\n CalendarApi.prototype.updateSize = function () {\n this.trigger('_resize', true);\n };\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.setOption = function (name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val,\n });\n };\n CalendarApi.prototype.getOption = function (name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n };\n CalendarApi.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.getCurrentData().availableRawLocales);\n };\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.on = function (handlerName, handler) {\n var currentDataManager = this.currentDataManager;\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n }\n else {\n console.warn(\"Unknown listener name '\" + handlerName + \"'\");\n }\n };\n CalendarApi.prototype.off = function (handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n };\n // not meant for public use\n CalendarApi.prototype.trigger = function (handlerName) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n (_a = this.currentDataManager.emitter).trigger.apply(_a, __spreadArray([handlerName], args));\n };\n // View\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.changeView = function (viewType, dateOrRange) {\n var _this = this;\n this.batchRendering(function () {\n _this.unselect();\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType,\n });\n _this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange,\n });\n }\n else {\n var dateEnv = _this.getCurrentData().dateEnv;\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateEnv.createMarker(dateOrRange),\n });\n }\n }\n else {\n _this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: viewType,\n });\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 CalendarApi.prototype.zoomTo = function (dateMarker, viewType) {\n var state = this.getCurrentData();\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker,\n });\n }\n else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: dateMarker,\n });\n }\n };\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n CalendarApi.prototype.getUnitViewSpec = function (unit) {\n var _a = this.getCurrentData(), viewSpecs = _a.viewSpecs, toolbarConfig = _a.toolbarConfig;\n var viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n var i;\n var spec;\n for (var viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n return null;\n };\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.prev = function () {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n };\n CalendarApi.prototype.next = function () {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\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 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 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 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 CalendarApi.prototype.incrementDate = function (deltaInput) {\n var state = this.getCurrentData();\n var delta = createDuration(deltaInput);\n if (delta) { // 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 };\n // for external API\n CalendarApi.prototype.getDate = function () {\n var state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n };\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n };\n // `settings` is for formatter AND isEndExclusive\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 CalendarApi.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.getCurrentData().dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), { 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 CalendarApi.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null,\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate,\n };\n }\n var state = this.getCurrentData();\n var selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection: selection });\n triggerDateSelect(selection, null, state);\n }\n };\n // public method\n CalendarApi.prototype.unselect = function (pev) {\n var state = this.getCurrentData();\n if (state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n triggerDateUnselect(pev, state);\n }\n };\n // Public Events API\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();\n // not already present? don't want to add an old snapshot\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def: def, instance: instance }), // TODO: better util for two args?\n });\n this.triggerEventAdd(eventInput);\n }\n return eventInput;\n }\n var state = this.getCurrentData();\n var eventSource;\n if (sourceInput instanceof EventSourceApi) {\n eventSource = sourceInput.internalEventSource;\n }\n else if (typeof sourceInput === 'boolean') {\n if (sourceInput) { // true. part of the first event source\n eventSource = hashValuesToArray(state.eventSources)[0];\n }\n }\n else if (sourceInput != null) { // an ID. accepts a number too\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn(\"Could not find an event source with ID \\\"\" + sourceInput + \"\\\"\"); // TODO: test\n return null;\n }\n eventSource = sourceApi.internalEventSource;\n }\n var tuple = parseEvent(eventInput, eventSource, state, false);\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 return null;\n };\n CalendarApi.prototype.triggerEventAdd = function (eventApi) {\n var _this = this;\n var emitter = this.getCurrentData().emitter;\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: function () {\n _this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi),\n });\n },\n });\n };\n // TODO: optimize\n CalendarApi.prototype.getEventById = function (id) {\n var state = this.getCurrentData();\n var _a = state.eventStore, defs = _a.defs, instances = _a.instances;\n id = String(id);\n for (var defId in defs) {\n var def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(state, def, null);\n }\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventApi(state, def, instance);\n }\n }\n }\n }\n return null;\n };\n CalendarApi.prototype.getEvents = function () {\n var currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n };\n CalendarApi.prototype.removeAllEvents = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n };\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.getEventSources = function () {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n var sourceApis = [];\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(state, sourceHash[internalId]));\n }\n return sourceApis;\n };\n CalendarApi.prototype.getEventSourceById = function (id) {\n var state = this.getCurrentData();\n var sourceHash = state.eventSources;\n id = String(id);\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(state, sourceHash[sourceId]);\n }\n }\n return null;\n };\n CalendarApi.prototype.addEventSource = function (sourceInput) {\n var state = this.getCurrentData();\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 return sourceInput;\n }\n var eventSource = parseEventSource(sourceInput, state);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceApi(state, eventSource);\n }\n return null;\n };\n CalendarApi.prototype.removeAllEventSources = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n };\n CalendarApi.prototype.refetchEvents = function () {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });\n };\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n CalendarApi.prototype.scrollToTime = function (timeInput) {\n var time = createDuration(timeInput);\n if (time) {\n this.trigger('_scrollRequest', { time: time });\n }\n };\n return CalendarApi;\n}());\n\nvar EventApi = /** @class */ (function () {\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 EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\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.');\n // TODO: make proper aliasing system?\n }\n else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { publicId: val }, // 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 }\n else if (name in EVENT_UI_REFINERS) {\n var ui = EVENT_UI_REFINERS[name](val);\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n this.mutate({\n standardProps: { ui: ui },\n });\n }\n else {\n console.warn(\"Could not set prop '\" + name + \"'. Use setExtendedProp instead.\");\n }\n };\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a),\n });\n };\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._context.dateEnv;\n var start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n var instanceRange = this._instance.range;\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta: startDelta });\n }\n }\n };\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._context.dateEnv;\n var end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta: endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n };\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._context.dateEnv;\n var standardProps = { allDay: options.allDay };\n var start = dateEnv.createMarker(startInput);\n var end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n var instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n else {\n this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n }\n };\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n };\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n };\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n };\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) { options = {}; }\n var standardProps = { allDay: allDay };\n var maintainDuration = options.maintainDuration;\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps: standardProps });\n };\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._context.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput);\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 return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo,\n });\n };\n EventApi.prototype.mutate = function (mutation) {\n var instance = this._instance;\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 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 () {\n context_1.dispatch({\n type: 'RESET_EVENTS',\n eventStore: eventStore_1,\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 () {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore,\n });\n },\n });\n };\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function () {\n var sourceId = this._def.sourceId;\n if (sourceId) {\n return new EventSourceApi(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function () {\n return this._instance ?\n this._context.dateEnv.toDate(this._instance.range.start) :\n null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function () {\n return (this._instance && this._def.hasEnd) ?\n this._context.dateEnv.toDate(this._instance.range.end) :\n null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startStr\", {\n get: function () {\n var instance = this._instance;\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo,\n });\n }\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"endStr\", {\n get: function () {\n var instance = this._instance;\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 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 () { return this._def.publicId; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function () { return this._def.groupId; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function () { return this._def.allDay; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function () { return this._def.title; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function () { return this._def.url; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"display\", {\n get: function () { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier\n ,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function () { return this._def.ui.startEditable; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function () { return this._def.ui.durationEditable; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function () { return this._def.ui.constraints[0] || null; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function () { return this._def.ui.overlap; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function () { return this._def.ui.allows[0] || null; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function () { return this._def.ui.backgroundColor; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function () { return this._def.ui.borderColor; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function () { return this._def.ui.textColor; },\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 () { return this._def.ui.classNames; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function () { return this._def.extendedProps; },\n enumerable: false,\n configurable: true\n });\n EventApi.prototype.toPlainObject = function (settings) {\n if (settings === void 0) { settings = {}; }\n var def = this._def;\n var ui = def.ui;\n var _a = this, startStr = _a.startStr, endStr = _a.endStr;\n var res = {};\n if (def.title) {\n res.title = def.title;\n }\n if (startStr) {\n res.start = startStr;\n }\n if (endStr) {\n res.end = endStr;\n }\n if (def.publicId) {\n res.id = def.publicId;\n }\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n if (def.url) {\n res.url = def.url;\n }\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n }\n // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n __assign(res, def.extendedProps);\n }\n else {\n res.extendedProps = def.extendedProps;\n }\n }\n return res;\n };\n EventApi.prototype.toJSON = function () {\n return this.toPlainObject();\n };\n return EventApi;\n}());\nfunction eventApiToStore(eventApi) {\n var _a, _b;\n var def = eventApi._def;\n var instance = eventApi._instance;\n return {\n defs: (_a = {}, _a[def.defId] = def, _a),\n instances: instance\n ? (_b = {}, _b[instance.instanceId] = instance, _b) : {},\n };\n}\nfunction buildEventApis(eventStore, context, excludeInstance) {\n var defs = eventStore.defs, instances = eventStore.instances;\n var eventApis = [];\n var excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventApi(context, def, instance));\n }\n }\n return eventApis;\n}\n\nvar calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nvar GregorianCalendarSystem = /** @class */ (function () {\n function GregorianCalendarSystem() {\n }\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n return GregorianCalendarSystem;\n}());\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nvar ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n if (m) {\n var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(\"0.\" + m[12]) * 1000 : 0));\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset,\n };\n }\n }\n return null;\n}\n\nvar DateEnv = /** @class */ (function () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.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 }\n // Creating / Parsing\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n };\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n };\n DateEnv.prototype.createMarkerMeta = function (input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n var marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker: marker, isTimeUnspecified: false, forcedTzo: null };\n };\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n if (parts === null) {\n return null;\n }\n var marker = parts.marker;\n var forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo };\n };\n // Accessors\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n };\n // Adding / Subtracting\n DateEnv.prototype.add = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.subtract = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addYears = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addMonths = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n // Diffing Whole Units\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n };\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n };\n // Range / Duration\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n };\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n };\n // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n if (unit === 'day') {\n return startOfDay(m);\n }\n if (unit === 'hour') {\n return startOfHour(m);\n }\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n if (unit === 'second') {\n return startOfSecond(m);\n }\n return null;\n };\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n ]);\n };\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n ]);\n };\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n ]);\n };\n // Week Number\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n };\n // TODO: choke on timeZoneName: long\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker),\n }, this);\n };\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start),\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end),\n }, this, 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 DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) { extraOptions = {}; }\n var timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n };\n // TimeZone\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\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 if (this.timeZone === 'UTC') {\n return 0;\n }\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n };\n // Conversion\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n };\n return DateEnv;\n}());\n\nvar globalLocales = [];\n\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 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};\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 (buttonText, unit) {\n return (unit === 'day')\n ? 'Today'\n : \"This \" + buttonText;\n },\n }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint: function (eventCnt) {\n return \"Show \" + eventCnt + \" more event\" + (eventCnt === 1 ? '' : 's');\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 for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n var rawLocale = allRawLocales_1[_i];\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode,\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i += 1) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n for (var j = parts.length; j > 0; j -= 1) {\n var simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n var week = merged.week;\n delete merged.week;\n return {\n codeArg: codeArg,\n codes: codes,\n week: week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n };\n}\n\nfunction formatDate(dateInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = buildDateEnv$1(options);\n var formatter = createFormatter(options);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo,\n });\n}\nfunction formatRange(startInput, endInput, options) {\n var dateEnv = buildDateEnv$1(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n var formatter = createFormatter(options);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n return new DateEnv(__assign(__assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale: locale }));\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/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\nfunction refineInputs(input) {\n var rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter(function (rawDef) { return rawDef.daysOfWeek; });\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map(function (rawDef) { return (__assign(__assign({}, DEF_DEFAULTS), rawDef)); });\n return rawDefs;\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n var res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom),\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY,\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2,\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top,\n };\n}\n\nvar canVGrowWithinCell;\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n return canVGrowWithinCell;\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 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\nvar Splitter = /** @class */ (function () {\n function Splitter() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n var keyInfos = this.getKeyInfo(props);\n var defKeys = this.getKeysForEventDefs(props.eventStore);\n var dateSelections = this.splitDateSelection(props.dateSelection);\n var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n var eventStores = this.splitEventStore(props.eventStore, defKeys);\n var eventDrags = this.splitEventDrag(props.eventDrag);\n var eventResizes = this.splitEventResize(props.eventResize);\n var splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, function (info, key) { return _this.eventUiBuilders[key] || memoize(buildEventUiForKey); });\n for (var key in keyInfos) {\n var keyInfo = keyInfos[key];\n var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n var buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore: eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null,\n };\n }\n return splitProps;\n };\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n };\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n return mapHash(eventStore.defs, function (eventDef) { return _this.getKeysForEventDef(eventDef); });\n };\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs, instances = eventStore.instances;\n var splitStores = {};\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n };\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n for (var defId in eventUiBases) {\n if (defId) { // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n };\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n // can't rely on defKeys because event data is mutated\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n var populate = function (key) {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n };\n }\n };\n for (var key in affectedStores_1) {\n populate(key);\n }\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n return splitStates;\n };\n return Splitter;\n}());\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n var stuff = {\n '': combineEventUis(baseParts),\n };\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n return stuff;\n}\n\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}\nfunction getDayClassNames(meta, theme) {\n var classNames = [\n 'fc-day',\n \"fc-day-\" + DAY_IDS[meta.dow],\n ];\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n return classNames;\n}\nfunction getSlotClassNames(meta, theme) {\n var classNames = [\n 'fc-slot',\n \"fc-slot-\" + DAY_IDS[meta.dow],\n ];\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n return classNames;\n}\n\nvar DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });\nvar WEEK_FORMAT = createFormatter({ week: 'long' });\nfunction buildNavLinkAttrs(context, dateMarker, viewType, isTabbable) {\n if (viewType === void 0) { viewType = 'day'; }\n if (isTabbable === void 0) { isTabbable = true; }\n var dateEnv = context.dateEnv, options = context.options, calendarApi = context.calendarApi;\n var dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n if (options.navLinks) {\n var zonedDate = dateEnv.toDate(dateMarker);\n var handleInteraction = function (ev) {\n var customAction = viewType === 'day' ? options.navLinkDayClick :\n viewType === 'week' ? options.navLinkWeekClick : null;\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n return __assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable\n ? createAriaClickAttrs(handleInteraction)\n : { onClick: handleInteraction }));\n }\n return { 'aria-label': dateStr };\n}\n\nvar _isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return _isRtlScrollbarOnLeft;\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;\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n return _scrollbarWidths;\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}\n// WARNING: will include border\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) { getPadding = false; }\n var computedStyle = window.getComputedStyle(el);\n var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n var badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\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 if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding, doFromWindowViewport) {\n if (goWithinPadding === void 0) { goWithinPadding = false; }\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 if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset,\n };\n}\nfunction computeClippedClientRect(el) {\n var clippingParents = getClippingParents(el);\n var rect = el.getBoundingClientRect();\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 if (intersection) {\n rect = intersection;\n }\n else {\n return null;\n }\n }\n return rect;\n}\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) +\n parseInt(computed.marginBottom, 10);\n}\n// does not return window\nfunction getClippingParents(el) {\n var parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\n\n// given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\nfunction unpromisify(func, success, failure) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n var isResolved = false;\n var wrappedSuccess = function () {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n };\n var wrappedFailure = function () {\n if (!isResolved) {\n isResolved = true;\n if (failure) {\n failure.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n }\n };\n var res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Emitter = /** @class */ (function () {\n function Emitter() {\n this.handlers = {};\n this.thisContext = null;\n }\n Emitter.prototype.setThisContext = function (thisContext) {\n this.thisContext = thisContext;\n };\n Emitter.prototype.setOptions = function (options) {\n this.options = options;\n };\n Emitter.prototype.on = function (type, handler) {\n addToHash(this.handlers, type, handler);\n };\n Emitter.prototype.off = function (type, handler) {\n removeFromHash(this.handlers, type, handler);\n };\n Emitter.prototype.trigger = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var attachedHandlers = this.handlers[type] || [];\n var optionHandler = this.options && this.options[type];\n var handlers = [].concat(optionHandler || [], attachedHandlers);\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 Emitter.prototype.hasHandlers = function (type) {\n return Boolean((this.handlers[type] && this.handlers[type].length) ||\n (this.options && this.options[type]));\n };\n return Emitter;\n}());\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter(function (func) { return func !== handler; });\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nvar PositionCache = /** @class */ (function () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n var originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n }\n // Populates the left/right internal coordinate arrays\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n };\n // Populates the top/bottom internal coordinate arrays\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n };\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var _a = this, lefts = _a.lefts, rights = _a.rights;\n var len = lefts.length;\n var i;\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n };\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.topToIndex = function (topPosition) {\n var _a = this, tops = _a.tops, bottoms = _a.bottoms;\n var len = tops.length;\n var i;\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n };\n // Gets the width of the element at the given index\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n };\n // Gets the height of the element at the given index\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n return PositionCache;\n}());\n\n/* eslint max-classes-per-file: \"off\" */\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nvar ScrollController = /** @class */ (function () {\n function ScrollController() {\n }\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n return ScrollController;\n}());\nvar ElementScrollController = /** @class */ (function (_super) {\n __extends(ElementScrollController, _super);\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n return ElementScrollController;\n}(ScrollController));\nvar WindowScrollController = /** @class */ (function (_super) {\n __extends(WindowScrollController, _super);\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n return WindowScrollController;\n}(ScrollController));\n\nvar Theme = /** @class */ (function () {\n function Theme(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n };\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n Theme.prototype.getIconClass = function (buttonName, isRtl) {\n var className;\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n }\n else {\n className = this.iconClasses[buttonName];\n }\n if (className) {\n return this.baseIconClass + \" \" + className;\n }\n return '';\n };\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return this.baseIconClass + \" \" + this.applyIconOverridePrefix(className);\n }\n }\n return '';\n };\n return Theme;\n}());\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar ScrollResponder = /** @class */ (function () {\n function ScrollResponder(execFunc, emitter, scrollTime, scrollTimeReset) {\n var _this = this;\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n this.handleScrollRequest = function (request) {\n _this.queuedRequest = __assign({}, _this.queuedRequest || {}, request);\n _this.drain();\n };\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n ScrollResponder.prototype.detach = function () {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n };\n ScrollResponder.prototype.update = function (isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n }\n else {\n this.drain();\n }\n };\n ScrollResponder.prototype.fireInitialScroll = function () {\n this.handleScrollRequest({\n time: this.scrollTime,\n });\n };\n ScrollResponder.prototype.drain = function () {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n };\n return ScrollResponder;\n}());\n\nvar ViewContextType = createContext({}); // for Components\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 (handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler: function (handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder: function (execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent: registerInteractiveComponent,\n unregisterInteractiveComponent: unregisterInteractiveComponent,\n };\n}\n\n/* eslint max-classes-per-file: off */\nvar PureComponent = /** @class */ (function (_super) {\n __extends(PureComponent, _super);\n function PureComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\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 return !compareObjs(this.props, nextProps, this.propEquality) ||\n !compareObjs(this.state, nextState, this.stateEquality);\n };\n PureComponent.addPropsEquality = addPropsEquality;\n PureComponent.addStateEquality = addStateEquality;\n PureComponent.contextType = ViewContextType;\n return PureComponent;\n}(Component));\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n function BaseComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BaseComponent.contextType = ViewContextType;\n return BaseComponent;\n}(PureComponent));\nfunction addPropsEquality(propEquality) {\n var hash = Object.create(this.prototype.propEquality);\n __assign(hash, propEquality);\n this.prototype.propEquality = hash;\n}\nfunction addStateEquality(stateEquality) {\n var hash = Object.create(this.prototype.stateEquality);\n __assign(hash, stateEquality);\n this.prototype.stateEquality = hash;\n}\n// use other one\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n }\n else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\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*/\nvar DateComponent = /** @class */ (function (_super) {\n __extends(DateComponent, _super);\n function DateComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.uid = guid();\n return _this;\n }\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.prepareHits = function () {\n };\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n };\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n };\n DateComponent.prototype.isValidDateDownEl = function (el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n !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 return DateComponent;\n}(BaseComponent));\n\n// TODO: easier way to add new hooks? need to update a million things\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}\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 function addDefs(defs) {\n for (var _i = 0, defs_1 = defs; _i < defs_1.length; _i++) {\n var def = defs_1[_i];\n if (!isAdded[def.id]) {\n isAdded[def.id] = true;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n }\n }\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n addDefs(globalDefs);\n return hooks;\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 currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\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 = /** @class */ (function (_super) {\n __extends(StandardTheme, _super);\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return StandardTheme;\n}(Theme));\nStandardTheme.prototype.classes = {\n 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\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n var queryProp = function (name) { return ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null)); };\n var theComponent = queryProp('component');\n var superType = queryProp('superType');\n var superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\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\n/* eslint max-classes-per-file: off */\n// NOTE: in JSX, you should always use this class with arg. otherwise, will default to any???\nvar RenderHook = /** @class */ (function (_super) {\n __extends(RenderHook, _super);\n function RenderHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rootElRef = createRef();\n _this.handleRootEl = function (el) {\n setRef(_this.rootElRef, el);\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n };\n return _this;\n }\n RenderHook.prototype.render = function () {\n var _this = this;\n var props = this.props;\n var hookProps = props.hookProps;\n return (createElement(MountHook, { hookProps: hookProps, didMount: props.didMount, willUnmount: props.willUnmount, elRef: this.handleRootEl }, function (rootElRef) { return (createElement(ContentHook, { hookProps: hookProps, content: props.content, defaultContent: props.defaultContent, backupElRef: _this.rootElRef }, function (innerElRef, innerContent) { return props.children(rootElRef, normalizeClassNames(props.classNames, hookProps), innerElRef, innerContent); })); }));\n };\n return RenderHook;\n}(BaseComponent));\n// TODO: rename to be about function, not default. use in above type\n// for forcing rerender of components that use the ContentHook\nvar CustomContentRenderContext = createContext(0);\nfunction ContentHook(props) {\n return (createElement(CustomContentRenderContext.Consumer, null, function (renderId) { return (createElement(ContentHookInner, __assign({ renderId: renderId }, props))); }));\n}\nvar ContentHookInner = /** @class */ (function (_super) {\n __extends(ContentHookInner, _super);\n function ContentHookInner() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.innerElRef = createRef();\n return _this;\n }\n ContentHookInner.prototype.render = function () {\n return this.props.children(this.innerElRef, this.renderInnerContent());\n };\n ContentHookInner.prototype.componentDidMount = function () {\n this.updateCustomContent();\n };\n ContentHookInner.prototype.componentDidUpdate = function () {\n this.updateCustomContent();\n };\n ContentHookInner.prototype.componentWillUnmount = function () {\n if (this.customContentInfo && this.customContentInfo.destroy) {\n this.customContentInfo.destroy();\n }\n };\n ContentHookInner.prototype.renderInnerContent = function () {\n var customContentInfo = this.customContentInfo; // only populated if using non-[p]react node(s)\n var innerContent = this.getInnerContent();\n var meta = this.getContentMeta(innerContent);\n // initial run, or content-type changing? (from vue -> react for example)\n if (!customContentInfo || customContentInfo.contentKey !== meta.contentKey) {\n // clearing old value\n if (customContentInfo) {\n if (customContentInfo.destroy) {\n customContentInfo.destroy();\n }\n customContentInfo = this.customContentInfo = null;\n }\n // assigning new value\n if (meta.contentKey) {\n customContentInfo = this.customContentInfo = __assign({ contentKey: meta.contentKey, contentVal: innerContent[meta.contentKey] }, meta.buildLifecycleFuncs());\n }\n // updating\n }\n else if (customContentInfo) {\n customContentInfo.contentVal = innerContent[meta.contentKey];\n }\n return customContentInfo\n ? [] // signal that something was specified\n : innerContent; // assume a [p]react vdom node. use it\n };\n ContentHookInner.prototype.getInnerContent = function () {\n var props = this.props;\n var innerContent = normalizeContent(props.content, props.hookProps);\n if (innerContent === undefined) { // use the default\n innerContent = normalizeContent(props.defaultContent, props.hookProps);\n }\n return innerContent == null ? null : innerContent; // convert undefined to null (better for React)\n };\n ContentHookInner.prototype.getContentMeta = function (innerContent) {\n var contentTypeHandlers = this.context.pluginHooks.contentTypeHandlers;\n var contentKey = '';\n var buildLifecycleFuncs = null;\n if (innerContent) { // 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 return { contentKey: contentKey, buildLifecycleFuncs: buildLifecycleFuncs };\n };\n ContentHookInner.prototype.updateCustomContent = function () {\n if (this.customContentInfo) { // 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 return ContentHookInner;\n}(BaseComponent));\nvar MountHook = /** @class */ (function (_super) {\n __extends(MountHook, _super);\n function MountHook() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n if (_this.props.elRef) {\n setRef(_this.props.elRef, rootEl);\n }\n };\n return _this;\n }\n MountHook.prototype.render = function () {\n return this.props.children(this.handleRootEl);\n };\n MountHook.prototype.componentDidMount = function () {\n var callback = this.props.didMount;\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), { el: this.rootEl }));\n }\n };\n MountHook.prototype.componentWillUnmount = function () {\n var callback = this.props.willUnmount;\n if (callback) {\n callback(__assign(__assign({}, this.props.hookProps), { el: this.rootEl }));\n }\n };\n return MountHook;\n}(BaseComponent));\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 return currentClassNames;\n };\n}\nfunction normalizeClassNames(classNames, hookProps) {\n if (typeof classNames === 'function') {\n classNames = classNames(hookProps);\n }\n return parseClassNames(classNames);\n}\nfunction normalizeContent(input, hookProps) {\n if (typeof input === 'function') {\n return input(hookProps, createElement); // give the function the vdom-creation func\n }\n return input;\n}\n\nvar ViewRoot = /** @class */ (function (_super) {\n __extends(ViewRoot, _super);\n function ViewRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n ViewRoot.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\n var options = context.options;\n var hookProps = { view: context.viewApi };\n var customClassNames = this.normalizeClassNames(options.viewClassNames, hookProps);\n return (createElement(MountHook, { hookProps: hookProps, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount, elRef: props.elRef }, function (rootElRef) { return props.children(rootElRef, [\"fc-\" + props.viewSpec.type + \"-view\", 'fc-view'].concat(customClassNames)); }));\n };\n return ViewRoot;\n}(BaseComponent));\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n var rawOptions = typeof input === 'function' ?\n { component: input } :\n input;\n var component = rawOptions.component;\n if (rawOptions.content) {\n component = createViewHookComponent(rawOptions);\n // TODO: remove content/classNames/didMount/etc from options?\n }\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions: rawOptions,\n };\n}\nfunction createViewHookComponent(options) {\n return function (viewProps) { return (createElement(ViewContextType.Consumer, null, function (context) { return (createElement(ViewRoot, { viewSpec: context.viewSpec }, function (viewElRef, viewClassNames) {\n var hookProps = __assign(__assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold });\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.classNames, content: options.content, didMount: options.didMount, willUnmount: options.willUnmount, elRef: viewElRef }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"div\", { className: viewClassNames.concat(customClassNames).join(' '), ref: rootElRef }, innerContent)); }));\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) { return buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults); });\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n var durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n if (durationInput) {\n duration = createDurationCached(durationInput);\n if (duration) { // valid?\n var denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n var queryButtonText = function (optionsSubset) {\n var buttonTextMap = optionsSubset.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n return null;\n };\n var queryButtonTitle = function (optionsSubset) {\n var buttonHints = optionsSubset.buttonHints || {};\n var buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n return null;\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) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||\n queryButtonTitle(optionOverrides) ||\n viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) ||\n viewDef.defaults.buttonHint ||\n queryButtonTitle(BASE_OPTION_DEFAULTS),\n // will eventually fall back to buttonText\n };\n}\n// hack to get memoization working\nvar durationInputMap = {};\nfunction createDurationCached(durationInput) {\n var json = JSON.stringify(durationInput);\n var res = durationInputMap[json];\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n return res;\n}\n\nvar DateProfileGenerator = /** @class */ (function () {\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 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 };\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\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 };\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) { forceToValid = true; }\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 if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\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 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),\n // pass a fallback (might be null) ^\n };\n };\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildValidRange = function () {\n var input = this.props.validRangeInput;\n var simpleInput = typeof input === 'function'\n ? input.call(this.props.calendarApi, this.nowDate)\n : input;\n return this.refineRange(simpleInput) ||\n { start: null, end: null }; // completely open-ended\n };\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var props = this.props;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.props.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration: duration, unit: unit, range: range };\n };\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({ day: 1 });\n };\n // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n DateProfileGenerator.prototype.adjustActiveRange = function (range) {\n var _a = this.props, dateEnv = _a.dateEnv, usesMinMaxTime = _a.usesMinMaxTime, slotMinTime = _a.slotMinTime, slotMaxTime = _a.slotMaxTime;\n var start = range.start, end = range.end;\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 start = dateEnv.add(start, slotMinTime);\n }\n // expand active range if slotMaxTime is beyond one day (why not when negative?)\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n return { start: start, end: end };\n };\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var _a = this.props, dateEnv = _a.dateEnv, dateAlignment = _a.dateAlignment;\n var start;\n var end;\n var res;\n // compute what the alignment should be\n if (!dateAlignment) {\n var dateIncrement = this.props.dateIncrement;\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n }\n else {\n dateAlignment = unit;\n }\n }\n else {\n dateAlignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = { start: start, end: end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n };\n // Builds the \"current\" range when a dayCount is specified.\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var _a = this.props, dateEnv = _a.dateEnv, dateAlignment = _a.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n return { start: start, end: end };\n };\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var props = this.props;\n var input = props.visibleRangeInput;\n var simpleInput = typeof input === 'function'\n ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n : input;\n var range = this.refineRange(simpleInput);\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n return range;\n };\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n };\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrement = this.props.dateIncrement;\n var customAlignment;\n if (dateIncrement) {\n return dateIncrement;\n }\n if ((customAlignment = this.props.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n if (fallback) {\n return fallback;\n }\n return createDuration({ days: 1 });\n };\n DateProfileGenerator.prototype.refineRange = function (rangeInput) {\n if (rangeInput) {\n var range = parseRange(rangeInput, this.props.dateEnv);\n if (range) {\n range = computeVisibleDayRange(range);\n }\n return range;\n }\n return null;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n var dayCnt = 0;\n var i;\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n };\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start, end = range.end;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start: start, end: end };\n }\n return null;\n };\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n };\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) { inc = 1; }\n if (isExclusive === void 0) { isExclusive = false; }\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n };\n return DateProfileGenerator;\n}());\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n var _a;\n switch (action.type) {\n case 'SET_OPTION':\n return __assign(__assign({}, dynamicOptionOverrides), (_a = {}, _a[action.optionName] = action.rawOptionValue, _a));\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n var dp;\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\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}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n return eventSources;\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n var activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n var hash = {};\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n var source = sources_1[_i];\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n return __assign(__assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) { return eventSource.sourceId !== sourceId; });\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) { return isSourceDirty(eventSource, fetchRange, context); }), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n var nextSources = {};\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n var options = context.options, 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 if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.xhr) || rawEvents;\n }\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.xhr) || rawEvents;\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 if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n }\n if (eventSource.failure) {\n eventSource.failure(error);\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), { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n var eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign(__assign({}, sourceHash), (_a = {}, _a[sourceId] = __assign(__assign({}, eventSource), { isFetching: false, fetchRange: fetchRange }), _a));\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, function (eventSource) { return doesSourceNeedRange(eventSource, context); });\n}\nfunction parseInitialSources(rawOptions, context) {\n var refiners = buildEventSourceRefiners(context);\n var rawSources = [].concat(rawOptions.eventSources || []);\n var sources = []; // parsed\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\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 if (source) {\n sources.push(source);\n }\n }\n return sources;\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': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n case 'RESET_EVENTS':\n return action.eventStore;\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n return eventStore;\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, function (eventDef) { return (!eventDef.sourceId // only keep events with no source id\n ); });\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n default:\n return eventStore;\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 if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction transformRawEvents(rawEvents, eventSource, context) {\n var calEachTransform = context.options.eventDataTransform;\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n return mergeEventStores(eventStore, subset);\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 if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n return __assign(__assign({}, instance), { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n });\n return { defs: defs, instances: instances };\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) { return eventDef.sourceId !== sourceId; });\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, function (instance) { return !removals[instance.instanceId]; }),\n };\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n case 'SELECT_DATES':\n return action.selection;\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n var newDrag;\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\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 default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n var newResize;\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\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 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 { header: header, footer: footer };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n var sectionWidgets = {};\n var viewsWithButtons = [];\n var hasTitle = false;\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 return { sectionWidgets: sectionWidgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };\n}\n/*\nBAD: querying icons and text here. should be done at render time\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) { return (buttonGroupStr.split(',').map(function (buttonName) {\n if (buttonName === 'title') {\n hasTitle = true;\n return { buttonName: buttonName };\n }\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n var buttonText; // \"\n var buttonHint;\n // ^ for the title=\"\" attribute, for accessibility\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = function (ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName);\n buttonClick = function () {\n calendarApi.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault);\n var textFallback = viewSpec.buttonTextOverride ||\n viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||\n viewSpec.buttonTitleDefault ||\n calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n }\n else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = function () {\n calendarApi[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n var prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||\n calendarButtonHints[prevOrNext], [\n calendarButtonText.year || 'year',\n 'year',\n ], calendarButtonText[buttonName]);\n }\n else {\n buttonHint = function (navUnit) { return formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||\n calendarButtonHints[buttonName], [\n calendarButtonText[navUnit] || navUnit,\n navUnit,\n ], calendarButtonText[buttonName]); };\n }\n }\n return { buttonName: buttonName, buttonClick: buttonClick, buttonIcon: buttonIcon, buttonText: buttonText, buttonHint: buttonHint };\n })); });\n return { widgets: widgets, viewsWithButtons: viewsWithButtons, hasTitle: hasTitle };\n}\n\nvar eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta: function (refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n return null;\n },\n fetch: function (arg, success) {\n success({\n rawEvents: arg.eventSource.meta,\n });\n },\n};\nvar arrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2],\n});\n\nvar eventSourceDef$1 = {\n parseMeta: function (refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n return null;\n },\n fetch: function (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({ rawEvents: rawEvents }); // 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 if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n }\n else {\n body = encodeParams(params);\n }\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n var parsed = false;\n var res = void 0;\n try {\n res = JSON.parse(xhr.responseText);\n parsed = true;\n }\n catch (err) {\n // will handle parsed=false\n }\n if (parsed) {\n successCallback(res, xhr);\n }\n else {\n failureCallback('Failure parsing JSON', xhr);\n }\n }\n else {\n failureCallback('Request failed', xhr);\n }\n };\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n xhr.send(body);\n}\nfunction injectQueryStringParams(url, params) {\n return url +\n (url.indexOf('?') === -1 ? '?' : '&') +\n encodeParams(params);\n}\nfunction encodeParams(params) {\n var parts = [];\n for (var key in params) {\n parts.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(params[key]));\n }\n return parts.join('&');\n}\n\nvar JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n};\n\nvar eventSourceDef = {\n parseMeta: function (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 return null;\n },\n fetch: function (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({ rawEvents: rawEvents, xhr: xhr });\n }, function (errorMessage, xhr) {\n failure({ message: errorMessage, xhr: xhr });\n });\n },\n};\nvar jsonFeedEventSourcePlugin = createPlugin({\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n});\nfunction buildRequestParams(meta, range, context) {\n var dateEnv = context.dateEnv, options = context.options;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = options.startParam;\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = options.endParam;\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n __assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nvar SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity,\n};\n\nvar recurring = {\n parse: function (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 if (refined.duration) {\n duration = refined.duration;\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\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 return null;\n },\n expand: function (typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n return [];\n },\n};\nvar simpleRecurringEventsPlugin = createPlugin({\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n var dayMarker = startOfDay(framingRange.start);\n var endMarker = framingRange.end;\n var instanceStarts = [];\n while (dayMarker < endMarker) {\n var instanceStart \n // if everyday, or this particular day-of-week\n = void 0;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nvar changeHandlerPlugin = createPlugin({\n optionChangeHandlers: {\n events: function (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*/\nfunction handleEventSources(inputs, context) {\n var unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n var newInputs = [];\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n for (var i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n });\n }\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', __assign(__assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n}\n\nfunction handleEventStore(eventStore, context) {\n var emitter = context.emitter;\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\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*/\nvar globalPlugins = [\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({\n isLoadingFuncs: [\n function (state) { 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 function render(el, html) {\n if (el !== currentEl || html !== currentHtml) {\n el.innerHTML = html;\n }\n currentEl = el;\n currentHtml = html;\n }\n function destroy() {\n currentEl.innerHTML = '';\n currentEl = null;\n currentHtml = '';\n }\n return { render: render, destroy: destroy };\n}\nfunction buildDomNodeRenderer() {\n var currentEl = null;\n var currentDomNodes = [];\n function render(el, domNodes) {\n var newDomNodes = Array.prototype.slice.call(domNodes);\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 destroy();\n }\n currentEl = el;\n currentDomNodes = newDomNodes;\n }\n function destroy() {\n currentDomNodes.forEach(removeElement);\n currentDomNodes = [];\n currentEl = null;\n }\n return { render: render, destroy: destroy };\n}\n\nvar DelayedRunner = /** @class */ (function () {\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 DelayedRunner.prototype.request = function (delay) {\n this.isDirty = true;\n if (!this.isPaused()) {\n this.clearTimeout();\n if (delay == null) {\n this.tryDrain();\n }\n else {\n this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n };\n DelayedRunner.prototype.pause = function (scope) {\n if (scope === void 0) { scope = ''; }\n var pauseDepths = this.pauseDepths;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n };\n DelayedRunner.prototype.resume = function (scope, force) {\n if (scope === void 0) { scope = ''; }\n var pauseDepths = this.pauseDepths;\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n }\n else {\n pauseDepths[scope] -= 1;\n var depth = pauseDepths[scope];\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n this.tryDrain();\n }\n };\n DelayedRunner.prototype.isPaused = function () {\n return Object.keys(this.pauseDepths).length;\n };\n DelayedRunner.prototype.tryDrain = function () {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n this.isRunning = false;\n }\n };\n DelayedRunner.prototype.clear = function () {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n };\n DelayedRunner.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n };\n DelayedRunner.prototype.drained = function () {\n if (this.drainedOption) {\n this.drainedOption();\n }\n };\n return DelayedRunner;\n}());\n\nvar TaskRunner = /** @class */ (function () {\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 TaskRunner.prototype.request = function (task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n };\n TaskRunner.prototype.pause = function (scope) {\n this.delayedRunner.pause(scope);\n };\n TaskRunner.prototype.resume = function (scope, force) {\n this.delayedRunner.resume(scope, force);\n };\n TaskRunner.prototype.drain = function () {\n var queue = this.queue;\n while (queue.length) {\n var completedTasks = [];\n var task = void 0;\n while ((task = queue.shift())) {\n this.runTask(task);\n completedTasks.push(task);\n }\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n };\n TaskRunner.prototype.runTask = function (task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n };\n TaskRunner.prototype.drained = function (completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n };\n return TaskRunner;\n}());\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n var range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n}\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\nvar CalendarDataManager = /** @class */ (function () {\n function CalendarDataManager(props) {\n var _this = this;\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 this.getCurrentData = function () { return _this.data; };\n this.dispatch = function (action) {\n _this.actionRunner.request(action); // protects against recursive calls to _handleAction\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);\n // wire things up\n // TODO: not DRY\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 if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\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 };\n // needs to be after setThisContext\n for (var _i = 0, _a = optionsData.pluginHooks.contextInit; _i < _a.length; _i++) {\n var callback = _a[_i];\n callback(calendarContext);\n }\n // NOT DRY\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 var contextAndState = __assign(__assign({}, calendarContext), initialState);\n for (var _b = 0, _c = optionsData.pluginHooks.reducers; _b < _c.length; _b++) {\n var reducer = _c[_b];\n __assign(initialState, reducer(null, null, contextAndState));\n }\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n CalendarDataManager.prototype.resetOptions = function (optionOverrides, append) {\n var props = this.props;\n props.optionOverrides = append\n ? __assign(__assign({}, props.optionOverrides), optionOverrides) : optionOverrides;\n this.actionRunner.request({\n type: 'NOTHING',\n });\n };\n CalendarDataManager.prototype._handleAction = function (action) {\n var _a = this, props = _a.props, state = _a.state, emitter = _a.emitter;\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);\n // wire things up\n // TODO: not DRY\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, dateProfile = state.dateProfile;\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\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 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 var renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore;\n var _b = this.buildViewUiProps(calendarContext), eventUiSingleBase = _b.eventUiSingleBase, selectionConfig = _b.selectionConfig; // will memoize obj\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 var contextAndState = __assign(__assign({}, calendarContext), newState);\n for (var _i = 0, _c = optionsData.pluginHooks.reducers; _i < _c.length; _i++) {\n var reducer = _c[_i];\n __assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n }\n var wasLoading = computeIsLoading(state, calendarContext);\n var isLoading = computeIsLoading(newState, calendarContext);\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n }\n else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n this.state = newState;\n if (props.onAction) {\n props.onAction(action);\n }\n };\n CalendarDataManager.prototype.updateData = function () {\n var _a = this, props = _a.props, state = _a.state;\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 var data = this.data = __assign(__assign(__assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n var changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n var oldCalendarOptions = oldData && oldData.calendarOptions;\n var newCalendarOptions = optionsData.calendarOptions;\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 for (var optionName in changeHandlers) {\n if (oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n if (props.onData) {\n props.onData(data);\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), refinedOptions = _a.refinedOptions, pluginHooks = _a.pluginHooks, localeDefaults = _a.localeDefaults, availableLocaleData = _a.availableLocaleData, extra = _a.extra;\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 };\n // always called from behind a memoizer\n CalendarDataManager.prototype.processRawCalendarOptions = function (optionOverrides, dynamicOptionOverrides) {\n var _a = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ]), locales = _a.locales, locale = _a.locale;\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 var refiners = this.currentCalendarOptionsRefiners = __assign(__assign(__assign(__assign(__assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n var extra = {};\n var raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n var refined = {};\n var currentRaw = this.currentCalendarOptionsInput;\n var currentRefined = this.currentCalendarOptionsRefined;\n var anyChanges = false;\n for (var optionName in raw) {\n if (optionName !== 'plugins') { // because plugins is special-cased\n if (raw[optionName] === currentRaw[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName]))) {\n refined[optionName] = currentRefined[optionName];\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n }\n else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n }\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\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 CalendarDataManager.prototype._computeCurrentViewData = function (viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n var viewSpec = optionsData.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(\"viewType \\\"\" + viewType + \"\\\" is not available. Please make sure you've loaded all neccessary plugins\");\n }\n var _a = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides), refinedOptions = _a.refinedOptions, extra = _a.extra;\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 { viewSpec: viewSpec, options: refinedOptions, dateProfileGenerator: dateProfileGenerator, viewApi: viewApi };\n };\n CalendarDataManager.prototype.processRawViewOptions = function (viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n var raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n 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 var refined = {};\n var currentRaw = this.currentViewOptionsInput;\n var currentRefined = this.currentViewOptionsRefined;\n var anyChanges = false;\n var extra = {};\n for (var optionName in raw) {\n if (raw[optionName] === currentRaw[optionName]) {\n refined[optionName] = currentRefined[optionName];\n }\n else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName]) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n }\n else {\n extra[optionName] = raw[optionName];\n }\n anyChanges = true;\n }\n }\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra: extra,\n };\n };\n return CalendarDataManager;\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}\nfunction buildTheme(options, pluginHooks) {\n var ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n var DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewApi(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) { return eventSource.ui; });\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = { '': eventUiSingleBase };\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\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,\n // classNames: options.eventClassNames // render hook will handle this\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}\nfunction computeIsLoading(state, context) {\n for (var _i = 0, _a = context.pluginHooks.isLoadingFuncs; _i < _a.length; _i++) {\n var isLoadingFunc = _a[_i];\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n for (var optionName in options) {\n console.warn(\"Unknown option '\" + optionName + \"'\" +\n (viewName ? \" for view '\" + viewName + \"'\" : ''));\n }\n}\n\n// TODO: move this to react plugin?\nvar CalendarDataProvider = /** @class */ (function (_super) {\n __extends(CalendarDataProvider, _super);\n function CalendarDataProvider(props) {\n var _this = _super.call(this, props) || this;\n _this.handleData = function (data) {\n if (!_this.dataManager) { // 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 }\n else {\n _this.setState(data);\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 CalendarDataProvider.prototype.render = function () {\n return this.props.children(this.state);\n };\n CalendarDataProvider.prototype.componentDidUpdate = function (prevProps) {\n var newOptionOverrides = this.props.optionOverrides;\n if (newOptionOverrides !== prevProps.optionOverrides) { // prevent recursive handleData\n this.dataManager.resetOptions(newOptionOverrides);\n }\n };\n return CalendarDataProvider;\n}(Component));\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nvar NamedTimeZoneImpl = /** @class */ (function () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n return NamedTimeZoneImpl;\n}());\n\nvar SegHierarchy = /** @class */ (function () {\n function SegHierarchy() {\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n this.maxStackCnt = -1; // -1 means no max\n this.levelCoords = []; // ordered\n this.entriesByLevel = []; // parallel with levelCoords\n this.stackCnts = {}; // TODO: use better technique!?\n }\n SegHierarchy.prototype.addSegs = function (inputs) {\n var hiddenEntries = [];\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 return hiddenEntries;\n };\n SegHierarchy.prototype.insertEntry = function (entry, hiddenEntries) {\n var insertion = this.findInsertion(entry);\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n return 1;\n }\n return this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n };\n SegHierarchy.prototype.isInsertionValid = function (insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + entry.thickness <= this.maxCoord) &&\n (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n };\n // returns number of new entries inserted\n SegHierarchy.prototype.handleInvalidInsertion = function (insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n return this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n hiddenEntries.push(entry);\n return 0;\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 if (entrySpan.start < barrierSpan.start) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: entrySpan.start, end: barrierSpan.start },\n }, splitHiddenEntries);\n }\n if (entrySpan.end > barrierSpan.end) {\n partCnt += this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: barrierSpan.end, end: entrySpan.end },\n }, splitHiddenEntries);\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 }], splitHiddenEntries));\n return partCnt;\n }\n hiddenEntries.push(entry);\n return 0;\n };\n SegHierarchy.prototype.insertEntryAt = function (entry, insertion) {\n var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n }\n else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n };\n SegHierarchy.prototype.findInsertion = function (newEntry) {\n var _a = this, levelCoords = _a.levelCoords, entriesByLevel = _a.entriesByLevel, strictOrder = _a.strictOrder, stackCnts = _a.stackCnts;\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 for (var trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n var trackingCoord = levelCoords[trackingLevel];\n // 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 if (!strictOrder && trackingCoord >= candidateCoord + newEntry.thickness) {\n break;\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 var lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\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;\n // intersects into the top of the candidate?\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n }\n // butts up against top of candidate? (will happen if just intersected as well)\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 lateralIndex += 1;\n }\n }\n // the destination level will be after touchingEntry's level. find it\n var destLevel = 0;\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n }\n // if adding to an existing level, find where to insert\n var destLateral = -1;\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\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 };\n // sorted by levelCoord (lowest to highest)\n SegHierarchy.prototype.toRects = function () {\n var _a = this, entriesByLevel = _a.entriesByLevel, levelCoords = _a.levelCoords;\n var levelCnt = entriesByLevel.length;\n var rects = [];\n for (var level = 0; level < levelCnt; level += 1) {\n var entries = entriesByLevel[level];\n var levelCoord = levelCoords[level];\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), { levelCoord: levelCoord }));\n }\n }\n return rects;\n };\n return SegHierarchy;\n}());\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n}\n// returns groups with entries sorted by input order\nfunction groupIntersectingEntries(entries) {\n var merges = [];\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 for (var _a = 0, merges_1 = merges; _a < merges_1.length; _a++) {\n var merge = merges_1[_a];\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 }\n else {\n filteredMerges.push(merge);\n }\n }\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n return merges;\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}\nfunction intersectSpans(span0, span1) {\n var start = Math.max(span0.start, span1.start);\n var end = Math.min(span0.end, span1.end);\n if (start < end) {\n return { start: start, end: end };\n }\n return null;\n}\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\nfunction binarySearch(a, searchVal, getItemVal) {\n var startIndex = 0;\n var endIndex = a.length; // exclusive\n if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item\n return [0, 0];\n }\n if (searchVal > getItemVal(a[endIndex - 1])) { // after last item\n return [endIndex, 0];\n }\n while (startIndex < endIndex) {\n var middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n var middleVal = getItemVal(a[middleIndex]);\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n }\n else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n }\n else { // equal!\n return [middleIndex, 1];\n }\n }\n return [startIndex, 0];\n}\n\nvar Interaction = /** @class */ (function () {\n function Interaction(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n Interaction.prototype.destroy = function () {\n };\n return Interaction;\n}());\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null,\n };\n}\nfunction interactionSettingsToStore(settings) {\n var _a;\n return _a = {},\n _a[settings.component.uid] = settings,\n _a;\n}\n// global state\nvar interactionSettingsStore = {};\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nvar ElementDragging = /** @class */ (function () {\n function ElementDragging(el, selector) {\n this.emitter = new Emitter();\n }\n ElementDragging.prototype.destroy = function () {\n };\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n // optional\n };\n return ElementDragging;\n}());\n\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.\nvar config = {};\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\nvar DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String,\n};\nfunction parseDragMeta(raw) {\n var _a = refineProps(raw, DRAG_META_REFINERS), refined = _a.refined, extra = _a.extra;\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 = /** @class */ (function (_super) {\n __extends(ToolbarSection, _super);\n function ToolbarSection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ToolbarSection.prototype.render = function () {\n var _this = this;\n var children = this.props.widgetGroups.map(function (widgetGroup) { return _this.renderWidgetGroup(widgetGroup); });\n return createElement.apply(void 0, __spreadArray(['div', { className: 'fc-toolbar-chunk' }], children));\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 for (var _i = 0, widgetGroup_1 = widgetGroup; _i < widgetGroup_1.length; _i++) {\n var widget = widgetGroup_1[_i];\n var buttonName = widget.buttonName, buttonClick = widget.buttonClick, buttonText = widget.buttonText, buttonIcon = widget.buttonIcon, buttonHint = widget.buttonHint;\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", { className: \"fc-toolbar-title\", id: props.titleId }, props.title));\n }\n else {\n var isPressed = buttonName === props.activeButton;\n var isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next');\n var buttonClasses = [\"fc-\" + buttonName + \"-button\", theme.getClass('button')];\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n children.push(createElement(\"button\", { type: \"button\", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, \"aria-pressed\": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon }) : '')));\n }\n }\n if (children.length > 1) {\n var groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n return createElement.apply(void 0, __spreadArray(['div', { className: groupClassName }], children));\n }\n return children[0];\n };\n return ToolbarSection;\n}(BaseComponent));\n\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Toolbar.prototype.render = function () {\n var _a = this.props, model = _a.model, extraClassName = _a.extraClassName;\n var forceLtr = false;\n var startContent;\n var endContent;\n var sectionWidgets = model.sectionWidgets;\n var centerContent = sectionWidgets.center;\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n }\n else {\n startContent = sectionWidgets.start;\n }\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n }\n else {\n endContent = sectionWidgets.end;\n }\n var classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ];\n return (createElement(\"div\", { className: classNames.join(' ') },\n this.renderSection('start', startContent || []),\n this.renderSection('center', centerContent || []),\n this.renderSection('end', endContent || [])));\n };\n Toolbar.prototype.renderSection = function (key, widgetGroups) {\n var props = this.props;\n return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));\n };\n return Toolbar;\n}(BaseComponent));\n\n// TODO: do function component?\nvar ViewContainer = /** @class */ (function (_super) {\n __extends(ViewContainer, _super);\n function ViewContainer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n availableWidth: null,\n };\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n _this.updateAvailableWidth();\n };\n _this.handleResize = function () {\n _this.updateAvailableWidth();\n };\n return _this;\n }\n ViewContainer.prototype.render = function () {\n var _a = this, props = _a.props, state = _a.state;\n var aspectRatio = props.aspectRatio;\n var classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? '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 if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n }\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 }\n else {\n height = props.height || '';\n }\n return (createElement(\"div\", { \"aria-labelledby\": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height: height, paddingBottom: paddingBottom } }, props.children));\n };\n ViewContainer.prototype.componentDidMount = function () {\n this.context.addResizeHandler(this.handleResize);\n };\n ViewContainer.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleResize);\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({ availableWidth: this.el.offsetWidth });\n }\n };\n return ViewContainer;\n}(BaseComponent));\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nvar EventClicking = /** @class */ (function (_super) {\n __extends(EventClicking, _super);\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var context = component.context;\n var seg = getElSeg(segEl);\n if (seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n var hasUrlContainer = elementClosest(ev.target, '.fc-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 if (url && !ev.defaultPrevented) {\n window.location.href = url;\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 return EventClicking;\n}(Interaction));\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nvar EventHovering = /** @class */ (function (_super) {\n __extends(EventHovering, _super);\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this;\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n _this.currentSegEl = segEl;\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n _this.currentSegEl = null;\n _this.triggerEvent('eventMouseLeave', ev, segEl);\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 EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\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 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 return EventHovering;\n}(Interaction));\n\nvar CalendarContent = /** @class */ (function (_super) {\n __extends(CalendarContent, _super);\n function CalendarContent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\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 = {};\n // eslint-disable-next-line\n _this.state = {\n viewLabelId: getUniqueDomId(),\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n _this.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering,\n ];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(_this.props.pluginHooks.componentInteractions);\n var interactions = interactionClasses.map(function (TheInteractionClass) { return new TheInteractionClass(settings); });\n _this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n _this.unregisterInteractiveComponent = function (component) {\n var listeners = _this.interactionsStore[component.uid];\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 delete _this.interactionsStore[component.uid];\n }\n delete interactionSettingsStore[component.uid];\n };\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n _this.resizeRunner = new DelayedRunner(function () {\n _this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n _this.props.emitter.trigger('windowResize', { view: _this.props.viewApi });\n });\n _this.handleWindowResize = function (ev) {\n var options = _this.props.options;\n if (options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n _this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n return _this;\n }\n /*\n renders INSIDE of an outer div\n */\n CalendarContent.prototype.render = function () {\n var props = this.props;\n var toolbarConfig = props.toolbarConfig, 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 if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n }\n else if (options.height != null) {\n viewVGrow = true;\n }\n else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n }\n else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\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)\n ? this.state.viewLabelId\n : '';\n return (createElement(ViewContextType.Provider, { value: viewContext },\n toolbarConfig.header && (createElement(Toolbar, __assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),\n createElement(ViewContainer, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },\n this.renderView(props),\n this.buildAppendContent()),\n toolbarConfig.footer && (createElement(Toolbar, __assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footer, titleId: \"\" }, toolbarProps)))));\n };\n CalendarContent.prototype.componentDidMount = function () {\n var props = this.props;\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map(function (CalendarInteractionClass) { return new CalendarInteractionClass(props); });\n window.addEventListener('resize', this.handleWindowResize);\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n for (var propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n };\n CalendarContent.prototype.componentDidUpdate = function (prevProps) {\n var props = this.props;\n var propSetHandlers = props.pluginHooks.propSetHandlers;\n for (var propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n };\n CalendarContent.prototype.componentWillUnmount = function () {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n this.props.emitter.trigger('_unmount');\n };\n CalendarContent.prototype.buildAppendContent = function () {\n var props = this.props;\n var children = props.pluginHooks.viewContainerAppends.map(function (buildAppendContent) { return buildAppendContent(props); });\n return createElement.apply(void 0, __spreadArray([Fragment, {}], children));\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 for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n __assign(viewProps, transformer.transform(viewProps, props));\n }\n var ViewComponent = viewSpec.component;\n return (createElement(ViewComponent, __assign({}, viewProps)));\n };\n return CalendarContent;\n}(PureComponent));\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 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}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (TheClass) { return new TheClass(); });\n}\n\nvar CalendarRoot = /** @class */ (function (_super) {\n __extends(CalendarRoot, _super);\n function CalendarRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n forPrint: false,\n };\n _this.handleBeforePrint = function () {\n _this.setState({ forPrint: true });\n };\n _this.handleAfterPrint = function () {\n _this.setState({ forPrint: false });\n };\n return _this;\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 = [\n 'fc',\n forPrint ? 'fc-media-print' : 'fc-media-screen',\n \"fc-direction-\" + options.direction,\n props.theme.getClass('root'),\n ];\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n return props.children(classNames, height, isHeightAuto, forPrint);\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 CalendarRoot.prototype.componentWillUnmount = function () {\n var emitter = this.props.emitter;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n };\n return CalendarRoot;\n}(BaseComponent));\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({ weekday: 'short' }); // \"Sat\"\n }\n if (dayCnt > 1) {\n return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // \"Sat 11/12\"\n }\n return createFormatter({ weekday: 'long' }); // \"Saturday\"\n}\n\nvar CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\nfunction renderInner$1(hookProps) {\n return hookProps.text;\n}\n\nvar TableDateCell = /** @class */ (function (_super) {\n __extends(TableDateCell, _super);\n function TableDateCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableDateCell.prototype.render = function () {\n var _a = this.context, dateEnv = _a.dateEnv, options = _a.options, theme = _a.theme, viewApi = _a.viewApi;\n var props = this.props;\n var date = props.date, 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);\n // if colCnt is 1, we are already in a day-view and don't need a navlink\n var navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)\n ? buildNavLinkAttrs(this.context, date)\n : {};\n var hookProps = __assign(__assign(__assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraHookProps), { text: text }), dayMeta);\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"th\", __assign({ ref: rootElRef, role: \"columnheader\", className: classNames.concat(customClassNames).join(' '), \"data-date\": !dayMeta.isDisabled ? formatDayString(date) : undefined, colSpan: props.colSpan }, props.extraDataAttrs),\n createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" }, !dayMeta.isDisabled && (createElement(\"a\", __assign({ ref: innerElRef, className: [\n 'fc-col-header-cell-cushion',\n props.isSticky ? 'fc-sticky' : '',\n ].join(' ') }, navLinkAttrs), innerContent))))); }));\n };\n return TableDateCell;\n}(BaseComponent));\n\nvar WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });\nvar TableDowCell = /** @class */ (function (_super) {\n __extends(TableDowCell, _super);\n function TableDowCell() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TableDowCell.prototype.render = function () {\n var props = this.props;\n var _a = this.context, dateEnv = _a.dateEnv, theme = _a.theme, viewApi = _a.viewApi, options = _a.options;\n var date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\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 var hookProps = __assign(__assign(__assign(__assign({ // TODO: make this public?\n date: date }, dateMeta), { view: viewApi }), props.extraHookProps), { text: text });\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.dayHeaderClassNames, content: options.dayHeaderContent, defaultContent: renderInner$1, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { return (createElement(\"th\", __assign({ ref: rootElRef, role: \"columnheader\", className: classNames.concat(customClassNames).join(' '), colSpan: props.colSpan }, props.extraDataAttrs),\n createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(\"a\", { \"aria-label\": dateEnv.format(date, WEEKDAY_FORMAT), className: [\n 'fc-col-header-cell-cushion',\n props.isSticky ? 'fc-sticky' : '',\n ].join(' '), ref: innerElRef }, innerContent)))); }));\n };\n return TableDowCell;\n}(BaseComponent));\n\nvar NowTimer = /** @class */ (function (_super) {\n __extends(NowTimer, _super);\n function NowTimer(props, context) {\n var _this = _super.call(this, props, context) || this;\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 NowTimer.prototype.render = function () {\n var _a = this, props = _a.props, state = _a.state;\n return props.children(state.nowDate, state.todayRange);\n };\n NowTimer.prototype.componentDidMount = function () {\n this.setTimeout();\n };\n NowTimer.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n };\n NowTimer.prototype.componentWillUnmount = function () {\n this.clearTimeout();\n };\n NowTimer.prototype.computeTiming = function () {\n var _a = this, props = _a.props, context = _a.context;\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();\n // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },\n nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },\n waitMs: waitMs,\n };\n };\n NowTimer.prototype.setTimeout = function () {\n var _this = this;\n var _a = this.computeTiming(), nextState = _a.nextState, waitMs = _a.waitMs;\n this.timeoutId = setTimeout(function () {\n _this.setState(nextState, function () {\n _this.setTimeout();\n });\n }, waitMs);\n };\n NowTimer.prototype.clearTimeout = function () {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n };\n NowTimer.contextType = ViewContextType;\n return NowTimer;\n}(Component));\nfunction buildDayRange(date) {\n var start = startOfDay(date);\n var end = addDays(start, 1);\n return { start: start, end: end };\n}\n\nvar DayHeader = /** @class */ (function (_super) {\n __extends(DayHeader, _super);\n function DayHeader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n return _this;\n }\n DayHeader.prototype.render = function () {\n var context = this.context;\n var _a = this.props, dates = _a.dates, dateProfile = _a.dateProfile, datesRepDistinctDays = _a.datesRepDistinctDays, renderIntro = _a.renderIntro;\n var dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, function (nowDate, todayRange) { return (createElement(\"tr\", { role: \"row\" },\n renderIntro && renderIntro('day'),\n dates.map(function (date) { return (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))); }))); }));\n };\n return DayHeader;\n}(BaseComponent));\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nvar DaySeriesModel = /** @class */ (function () {\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 while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n DaySeriesModel.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex,\n };\n }\n return null;\n };\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n DaySeriesModel.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n return indices[dayOffset];\n };\n return DaySeriesModel;\n}());\n\nvar DayTableModel = /** @class */ (function () {\n function DayTableModel(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n DayTableModel.prototype.buildCells = function () {\n var rows = [];\n for (var row = 0; row < this.rowCnt; row += 1) {\n var cells = [];\n for (var col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\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 DayTableModel.prototype.buildHeaderDates = function () {\n var dates = [];\n for (var col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n };\n DayTableModel.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n while (index <= lastIndex) {\n var row = Math.floor(index / colCnt);\n var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row: row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n });\n index = nextIndex;\n }\n }\n return segs;\n };\n return DayTableModel;\n}());\n\nvar Slicer = /** @class */ (function () {\n function Slicer() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n this.forceDayIfListItem = false; // hack\n }\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, __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 Slicer.prototype.sliceNowDate = function (// does not memoize\n date, context) {\n var extraArgs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n return this._sliceDateSpan.apply(this, __spreadArray([{ range: { start: date, end: addMs(date, 1) }, allDay: false },\n {},\n context], extraArgs));\n };\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, context) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore.apply(this, __spreadArray([expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context),\n {},\n dateProfile,\n nextDayThreshold], extraArgs)).bg;\n };\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n };\n }\n return { bg: [], fg: [] };\n };\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold) {\n var extraArgs = [];\n for (var _i = 4; _i < arguments.length; _i++) {\n extraArgs[_i - 4] = arguments[_i];\n }\n if (!interaction) {\n return null;\n }\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n };\n };\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, context) {\n var extraArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n if (!dateSpan) {\n return [];\n }\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n var segs = this.sliceRange.apply(this, __spreadArray([dateSpan.range], extraArgs));\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 return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRanges = function (eventRanges, extraArgs) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.sliceEventRange(eventRange, extraArgs));\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRange = function (eventRange, extraArgs) {\n var dateRange = eventRange.range;\n // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1),\n };\n }\n var segs = this.sliceRange.apply(this, __spreadArray([dateRange], extraArgs));\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 return segs;\n };\n return Slicer;\n}());\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, dateProfile, context) {\n var instances = interaction.mutatedEvents.instances;\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n return isNewPropsValid({ dateSelection: dateSelection }, context);\n}\nfunction isNewPropsValid(newProps, context) {\n var calendarState = context.getCurrentData();\n var props = __assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\nfunction isPropsValid(state, context, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) { dateSpanMeta = {}; }\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\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 var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': currentState.selectionConfig });\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n // exclude the subject events. TODO: exclude defs too?\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 for (var subjectInstanceId in subjectInstances) {\n var subjectInstance = subjectInstances[subjectInstanceId];\n var subjectRange = subjectInstance.range;\n var subjectConfig = subjectConfigs[subjectInstance.defId];\n var subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n var eventOverlap = context.options.eventOverlap;\n var eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (eventOverlapFunc && !eventOverlapFunc(new EventApi(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n var calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n var subjectDateSpan = __assign(__assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n if (origDef) { // was previously in the calendar\n eventApi = new EventApi(context, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventApi(context, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\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 if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n var selectOverlap = context.options.selectOverlap;\n var selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (selectOverlapFunc && !selectOverlapFunc(new EventApi(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n }\n // allow (a function)\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n var fullDateSpan = __assign(__assign({}, dateSpanMeta), selection);\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\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 if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) { return eventDef.groupId === constraint; }));\n }\n if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n\nvar VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\nvar Scroller = /** @class */ (function (_super) {\n __extends(Scroller, _super);\n function Scroller() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleEl = function (el) {\n _this.el = el;\n setRef(_this.props.elRef, el);\n };\n return _this;\n }\n Scroller.prototype.render = function () {\n var props = this.props;\n var liquid = props.liquid, liquidIsAbsolute = props.liquidIsAbsolute;\n var isAbsolute = liquid && liquidIsAbsolute;\n var className = ['fc-scroller'];\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n }\n else {\n className.push('fc-scroller-liquid');\n }\n }\n return (createElement(\"div\", { ref: this.handleEl, className: className.join(' '), 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 } }, props.children));\n };\n Scroller.prototype.needsXScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n }\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 var el = this.el;\n var realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n var children = el.children;\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n return false;\n };\n Scroller.prototype.needsYScrolling = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n }\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 var el = this.el;\n var realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n var children = el.children;\n for (var i = 0; i < children.length; i += 1) {\n var childEl = children[i];\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n return false;\n };\n Scroller.prototype.getXScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n Scroller.prototype.getYScrollbarWidth = function () {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n };\n return Scroller;\n}(BaseComponent));\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nvar RefMap = /** @class */ (function () {\n function RefMap(masterCallback) {\n var _this = this;\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n this.handleValue = function (val, key) {\n var _a = _this, depths = _a.depths, currentMap = _a.currentMap;\n var removed = false;\n var added = false;\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 }\n else {\n depths[key] -= 1;\n if (!depths[key]) {\n delete currentMap[key];\n delete _this.callbackMap[key];\n removed = true;\n }\n }\n if (_this.masterCallback) {\n if (removed) {\n _this.masterCallback(null, String(key));\n }\n if (added) {\n _this.masterCallback(val, String(key));\n }\n }\n };\n }\n RefMap.prototype.createRef = function (key) {\n var _this = this;\n var refCallback = this.callbackMap[key];\n if (!refCallback) {\n refCallback = this.callbackMap[key] = function (val) {\n _this.handleValue(val, String(key));\n };\n }\n return refCallback;\n };\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 RefMap.prototype.collect = function (startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n };\n RefMap.prototype.getAll = function () {\n return hashValuesToArray(this.currentMap);\n };\n return RefMap;\n}());\n\nfunction computeShrinkWidth(chunkEls) {\n var shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n var largestWidth = 0;\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 return Math.ceil(largestWidth); // elements work best with integers. round up to ensure contents fits\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}\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}\n// TODO: ONLY use `arg`. force out internal function to use same API\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n var expandRows = arg.expandRows;\n var content = typeof chunkConfig.content === 'function' ?\n chunkConfig.content(arg) :\n createElement('table', {\n role: 'presentation',\n className: [\n chunkConfig.tableClassName,\n sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n ].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 }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation',\n }, typeof chunkConfig.rowContent === 'function'\n ? chunkConfig.rowContent(arg)\n : chunkConfig.rowContent));\n return content;\n}\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\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 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 for (var i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", { style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),\n minWidth: colProps.minWidth || '',\n } }));\n }\n }\n return createElement.apply(void 0, __spreadArray(['colgroup', {}], colNodes));\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}\nfunction hasShrinkWidth(cols) {\n for (var _i = 0, cols_2 = cols; _i < cols_2.length; _i++) {\n var col = cols_2[_i];\n if (col.width === 'shrink') {\n return true;\n }\n }\n return false;\n}\nfunction getScrollGridClassNames(liquid, context) {\n var classNames = [\n 'fc-scrollgrid',\n context.theme.getClass('table'),\n ];\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n return classNames;\n}\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n var classNames = [\n 'fc-scrollgrid-section',\n \"fc-scrollgrid-section-\" + sectionConfig.type,\n sectionConfig.className, // used?\n ];\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n return classNames;\n}\nfunction renderScrollShim(arg) {\n return (createElement(\"div\", { className: \"fc-scrollgrid-sticky-shim\", style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth,\n } }));\n}\nfunction getStickyHeaderDates(options) {\n var stickyHeaderDates = options.stickyHeaderDates;\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyHeaderDates;\n}\nfunction getStickyFooterScrollbar(options) {\n var stickyFooterScrollbar = options.stickyFooterScrollbar;\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyFooterScrollbar;\n}\n\nvar SimpleScrollGrid = /** @class */ (function (_super) {\n __extends(SimpleScrollGrid, _super);\n function SimpleScrollGrid() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.processCols = memoize(function (a) { return a; }, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\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 };\n // TODO: can do a really simple print-view. dont need to join rows\n _this.handleSizing = function () {\n _this.setState(__assign({ shrinkWidth: _this.computeShrinkWidth() }, _this.computeScrollerDims()));\n };\n return _this;\n }\n SimpleScrollGrid.prototype.render = function () {\n var _a = this, props = _a.props, state = _a.state, context = _a.context;\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 if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n }\n // TODO: make DRY\n var configCnt = sectionConfigs.length;\n var configI = 0;\n var currentConfig;\n var headSectionNodes = [];\n var bodySectionNodes = [];\n var footSectionNodes = [];\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\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 var isBuggy = !getCanVGrowWithinCell();\n var roleAttrs = { role: 'rowgroup' };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: { height: props.height },\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 SimpleScrollGrid.prototype.renderSection = function (sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));\n }\n return (createElement(\"tr\", { key: sectionConfig.key, role: \"presentation\", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));\n };\n SimpleScrollGrid.prototype.renderChunkTd = function (sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n var props = this.props;\n var _a = this.state, forceYScrollbars = _a.forceYScrollbars, scrollerClientWidths = _a.scrollerClientWidths, scrollerClientHeights = _a.scrollerClientHeights;\n var needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n var isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n // 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 var overflowY = !props.liquid ? 'visible' :\n forceYScrollbars ? 'scroll' :\n !needsYScrolling ? 'hidden' :\n '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 () { },\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation',\n }, createElement(\"div\", { className: \"fc-scroller-harness\" + (isLiquid ? ' fc-scroller-harness-liquid' : '') },\n createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness\n : true }, content)));\n };\n SimpleScrollGrid.prototype._handleScrollerEl = function (scrollerEl, key) {\n var section = getSectionByKey(this.props.sections, key);\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n };\n SimpleScrollGrid.prototype.componentDidMount = function () {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n };\n SimpleScrollGrid.prototype.componentDidUpdate = function () {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n };\n SimpleScrollGrid.prototype.componentWillUnmount = function () {\n this.context.removeResizeHandler(this.handleSizing);\n };\n SimpleScrollGrid.prototype.computeShrinkWidth = function () {\n return hasShrinkWidth(this.props.cols)\n ? computeShrinkWidth(this.scrollerElRefs.getAll())\n : 0;\n };\n SimpleScrollGrid.prototype.computeScrollerDims = function () {\n var scrollbarWidth = getScrollbarWidths();\n var _a = this, scrollerRefs = _a.scrollerRefs, scrollerElRefs = _a.scrollerElRefs;\n var forceYScrollbars = false;\n var scrollerClientWidths = {};\n var scrollerClientHeights = {};\n for (var sectionKey in scrollerRefs.currentMap) {\n var scroller = scrollerRefs.currentMap[sectionKey];\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\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 if (scrollerEl) {\n var harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars\n ? 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 return { forceYScrollbars: forceYScrollbars, scrollerClientWidths: scrollerClientWidths, scrollerClientHeights: scrollerClientHeights };\n };\n return SimpleScrollGrid;\n}(BaseComponent));\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual,\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 if (section.key === key) {\n return section;\n }\n }\n return null;\n}\n\nvar EventRoot = /** @class */ (function (_super) {\n __extends(EventRoot, _super);\n function EventRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.elRef = createRef();\n return _this;\n }\n EventRoot.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\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, { hookProps: hookProps, classNames: options.eventClassNames, content: options.eventContent, defaultContent: props.defaultContent, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount, elRef: this.elRef }, function (rootElRef, customClassNames, innerElRef, innerContent) { return props.children(rootElRef, standardClassNames.concat(customClassNames), innerElRef, innerContent, hookProps); }));\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 EventRoot.prototype.componentDidUpdate = function (prevProps) {\n var seg = this.props.seg;\n if (seg !== prevProps.seg) {\n setElSeg(this.elRef.current, seg);\n }\n };\n return EventRoot;\n}(BaseComponent));\n\n// should not be a purecomponent\nvar StandardEvent = /** @class */ (function (_super) {\n __extends(StandardEvent, _super);\n function StandardEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StandardEvent.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\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, { seg: seg, timeText: timeText, disableDragging: props.disableDragging, disableResizing: props.disableResizing, defaultContent: props.defaultContent || renderInnerContent$1, isDragging: props.isDragging, isResizing: props.isResizing, isDateSelecting: props.isDateSelecting, isSelected: props.isSelected, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"a\", __assign({ className: props.extraClassNames.concat(classNames).join(' '), style: {\n borderColor: hookProps.borderColor,\n backgroundColor: hookProps.backgroundColor,\n }, ref: rootElRef }, getSegAnchorAttrs(seg, context)),\n createElement(\"div\", { className: \"fc-event-main\", ref: innerElRef, style: { color: hookProps.textColor } }, innerContent),\n hookProps.isStartResizable &&\n createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-start\" }),\n hookProps.isEndResizable &&\n createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-end\" }))); }));\n };\n return StandardEvent;\n}(BaseComponent));\nfunction renderInnerContent$1(innerProps) {\n return (createElement(\"div\", { className: \"fc-event-main-frame\" },\n innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title-container\" },\n createElement(\"div\", { className: \"fc-event-title fc-sticky\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\")))));\n}\n\nvar NowIndicatorRoot = function (props) { 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, { hookProps: hookProps, classNames: options.nowIndicatorClassNames, content: options.nowIndicatorContent, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount }, props.children));\n})); };\n\nvar DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nvar DayCellContent = /** @class */ (function (_super) {\n __extends(DayCellContent, _super);\n function DayCellContent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayCellContent.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\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, { hookProps: hookProps, content: options.dayCellContent, defaultContent: props.defaultContent }, props.children));\n };\n return DayCellContent;\n}(BaseComponent));\nfunction refineDayCellHookProps(raw) {\n var date = raw.date, dateEnv = raw.dateEnv;\n var dayMeta = getDateMeta(date, raw.todayRange, null, raw.dateProfile);\n return __assign(__assign(__assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { dayNumberText: raw.showDayNumber ? dateEnv.format(date, DAY_NUM_FORMAT) : '' }), raw.extraProps);\n}\n\nvar DayCellRoot = /** @class */ (function (_super) {\n __extends(DayCellRoot, _super);\n function DayCellRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.refineHookProps = memoizeObjArg(refineDayCellHookProps);\n _this.normalizeClassNames = buildClassNameNormalizer();\n return _this;\n }\n DayCellRoot.prototype.render = function () {\n var _a = this, props = _a.props, context = _a.context;\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\n ? [] // 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, { hookProps: hookProps, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount, elRef: props.elRef }, function (rootElRef) { return props.children(rootElRef, classNames, dataAttrs, hookProps.isDisabled); }));\n };\n return DayCellRoot;\n}(BaseComponent));\n\nfunction renderFill(fillType) {\n return (createElement(\"div\", { className: \"fc-\" + fillType }));\n}\nvar BgEvent = function (props) { return (createElement(EventRoot, { defaultContent: renderInnerContent, seg: props.seg /* uselesss i think */, timeText: \"\", disableDragging: true, disableResizing: true, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday }, function (rootElRef, classNames, innerElRef, innerContent, hookProps) { return (createElement(\"div\", { ref: rootElRef, className: ['fc-bg-event'].concat(classNames).join(' '), style: {\n backgroundColor: hookProps.backgroundColor,\n } }, innerContent)); })); };\nfunction renderInnerContent(props) {\n var title = props.event.title;\n return title && (createElement(\"div\", { className: \"fc-event-title\" }, props.event.title));\n}\n\nvar WeekNumberRoot = function (props) { return (createElement(ViewContextType.Consumer, null, function (context) {\n var dateEnv = context.dateEnv, 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 var text = dateEnv.format(date, format);\n var hookProps = { num: num, text: text, date: date };\n return (createElement(RenderHook, { hookProps: hookProps, classNames: options.weekNumberClassNames, content: options.weekNumberContent, defaultContent: renderInner, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount }, props.children));\n})); };\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nvar PADDING_FROM_VIEWPORT = 10;\nvar Popover = /** @class */ (function (_super) {\n __extends(Popover, _super);\n function Popover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n titleId: getUniqueDomId(),\n };\n _this.handleRootEl = function (el) {\n _this.rootEl = el;\n if (_this.props.elRef) {\n setRef(_this.props.elRef, el);\n }\n };\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n _this.handleDocumentMouseDown = function (ev) {\n // only hide the popover if the click happened outside the popover\n var target = getEventTargetViaRoot(ev);\n if (!_this.rootEl.contains(target)) {\n _this.handleCloseClick();\n }\n };\n _this.handleDocumentKeyDown = function (ev) {\n if (ev.key === 'Escape') {\n _this.handleCloseClick();\n }\n };\n _this.handleCloseClick = function () {\n var onClose = _this.props.onClose;\n if (onClose) {\n onClose();\n }\n };\n return _this;\n }\n Popover.prototype.render = function () {\n var _a = this.context, theme = _a.theme, options = _a.options;\n var _b = this, props = _b.props, state = _b.state;\n var classNames = [\n 'fc-popover',\n theme.getClass('popover'),\n ].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", __assign({ id: props.id, className: classNames.join(' '), \"aria-labelledby\": state.titleId }, props.extraAttrs, { ref: this.handleRootEl }),\n createElement(\"div\", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },\n createElement(\"span\", { className: \"fc-popover-title\", id: state.titleId }, props.title),\n createElement(\"span\", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),\n createElement(\"div\", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);\n };\n Popover.prototype.componentDidMount = function () {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n };\n Popover.prototype.componentWillUnmount = function () {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n };\n Popover.prototype.updateSize = function () {\n var isRtl = this.context.isRtl;\n var _a = this.props, alignmentEl = _a.alignmentEl, alignGridTop = _a.alignGridTop;\n var rootEl = this.rootEl;\n var alignmentRect = computeClippedClientRect(alignmentEl);\n if (alignmentRect) {\n var popoverDims = rootEl.getBoundingClientRect();\n // position relative to viewport\n var popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top;\n var popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;\n // constrain\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 return Popover;\n}(BaseComponent));\n\nvar MorePopover = /** @class */ (function (_super) {\n __extends(MorePopover, _super);\n function MorePopover() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handleRootEl = function (rootEl) {\n _this.rootEl = rootEl;\n if (rootEl) {\n _this.context.registerInteractiveComponent(_this, {\n el: rootEl,\n useEventCenter: false,\n });\n }\n else {\n _this.context.unregisterInteractiveComponent(_this);\n }\n };\n return _this;\n }\n MorePopover.prototype.render = function () {\n var _a = this.context, options = _a.options, dateEnv = _a.dateEnv;\n var props = this.props;\n var startDate = props.startDate, todayRange = props.todayRange, dateProfile = props.dateProfile;\n var title = dateEnv.format(startDate, options.dayPopoverFormat);\n return (createElement(DayCellRoot, { date: startDate, dateProfile: dateProfile, todayRange: todayRange, elRef: this.handleRootEl }, function (rootElRef, dayClassNames, dataAttrs) { return (createElement(Popover, { elRef: rootElRef, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(dayClassNames), extraAttrs: dataAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },\n createElement(DayCellContent, { date: startDate, dateProfile: dateProfile, todayRange: todayRange }, function (innerElRef, innerContent) { return (innerContent &&\n createElement(\"div\", { className: \"fc-more-popover-misc\", ref: innerElRef }, innerContent)); }),\n props.children)); }));\n };\n MorePopover.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var _a = this, rootEl = _a.rootEl, props = _a.props;\n if (positionLeft >= 0 && positionLeft < elWidth &&\n positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: __assign({ allDay: true, range: {\n start: props.startDate,\n end: props.endDate,\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 return null;\n };\n return MorePopover;\n}(DateComponent));\n\nvar MoreLinkRoot = /** @class */ (function (_super) {\n __extends(MoreLinkRoot, _super);\n function MoreLinkRoot() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.linkElRef = createRef();\n _this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId(),\n };\n _this.handleClick = function (ev) {\n var _a = _this, props = _a.props, context = _a.context;\n var moreLinkClick = context.options.moreLinkClick;\n var date = computeRange(props).start;\n function buildPublicSeg(seg) {\n var _a = seg.eventRange, def = _a.def, instance = _a.instance, 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 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 if (!moreLinkClick || moreLinkClick === 'popover') {\n _this.setState({ isPopoverOpen: true });\n }\n else if (typeof moreLinkClick === 'string') { // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n _this.handlePopoverClose = function () {\n _this.setState({ isPopoverOpen: false });\n };\n return _this;\n }\n MoreLinkRoot.prototype.render = function () {\n var _this = this;\n var _a = this, props = _a.props, state = _a.state;\n return (createElement(ViewContextType.Consumer, null, function (context) {\n var viewApi = context.viewApi, options = context.options, 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)\n : \"+\" + 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,\n Boolean(props.moreCnt) && (createElement(RenderHook, { elRef: _this.linkElRef, hookProps: hookProps, classNames: options.moreLinkClassNames, content: options.moreLinkContent, defaultContent: props.defaultContent || renderMoreLinkInner, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, function (rootElRef, customClassNames, innerElRef, innerContent) { 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, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: _this.parentEl, alignmentEl: props.alignmentElRef.current, alignGridTop: props.alignGridTop, onClose: _this.handlePopoverClose }, props.popoverContent()))));\n }));\n };\n MoreLinkRoot.prototype.componentDidMount = function () {\n this.updateParentEl();\n };\n MoreLinkRoot.prototype.componentDidUpdate = function () {\n this.updateParentEl();\n };\n MoreLinkRoot.prototype.updateParentEl = function () {\n if (this.linkElRef.current) {\n this.parentEl = elementClosest(this.linkElRef.current, '.fc-view-harness');\n }\n };\n return MoreLinkRoot;\n}(BaseComponent));\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1),\n };\n }\n var hiddenSegs = props.hiddenSegs;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs),\n };\n}\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n}\n\n// exports\n// --------------------------------------------------------------------------------------------------\nvar version = '5.10.2'; // 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 };\n//# sourceMappingURL=main.js.map\n","/*!\nFullCalendar v5.10.2\nDocs & License: https://fullcalendar.io/\n(c) 2021 Adam Shaw\n*/\nimport './vdom.js';\nimport { __extends, __assign } from 'tslib';\nimport { flushSync, render, createElement, CalendarRoot, CustomContentRenderContext, CalendarContent, unmountComponentAtNode, DelayedRunner, CalendarDataManager, isArraysEqual, applyStyleProp, CalendarApi } from '@fullcalendar/common';\nexport * from '@fullcalendar/common';\n\nvar Calendar = /** @class */ (function (_super) {\n __extends(Calendar, _super);\n function Calendar(el, optionOverrides) {\n if (optionOverrides === void 0) { optionOverrides = {}; }\n var _this = _super.call(this) || this;\n _this.isRendering = false;\n _this.isRendered = false;\n _this.currentClassNames = [];\n _this.customContentRenderId = 0; // will affect custom generated classNames?\n _this.handleAction = function (action) {\n // actions we know we want to render immediately\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n case 'SET_EVENT_RESIZE':\n _this.renderRunner.tryDrain();\n }\n };\n _this.handleData = function (data) {\n _this.currentData = data;\n _this.renderRunner.request(data.calendarOptions.rerenderDelay);\n };\n _this.handleRenderRequest = function () {\n if (_this.isRendering) {\n _this.isRendered = true;\n var currentData_1 = _this.currentData;\n flushSync(function () {\n render(createElement(CalendarRoot, { options: currentData_1.calendarOptions, theme: currentData_1.theme, emitter: currentData_1.emitter }, function (classNames, height, isHeightAuto, forPrint) {\n _this.setClassNames(classNames);\n _this.setHeight(height);\n return (createElement(CustomContentRenderContext.Provider, { value: _this.customContentRenderId },\n createElement(CalendarContent, __assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData_1))));\n }), _this.el);\n });\n }\n else if (_this.isRendered) {\n _this.isRendered = false;\n unmountComponentAtNode(_this.el);\n _this.setClassNames([]);\n _this.setHeight('');\n }\n };\n _this.el = el;\n _this.renderRunner = new DelayedRunner(_this.handleRenderRequest);\n new CalendarDataManager({\n optionOverrides: optionOverrides,\n calendarApi: _this,\n onAction: _this.handleAction,\n onData: _this.handleData,\n });\n return _this;\n }\n Object.defineProperty(Calendar.prototype, \"view\", {\n get: function () { return this.currentData.viewApi; } // for public API\n ,\n enumerable: false,\n configurable: true\n });\n Calendar.prototype.render = function () {\n var wasRendering = this.isRendering;\n if (!wasRendering) {\n this.isRendering = true;\n }\n else {\n this.customContentRenderId += 1;\n }\n this.renderRunner.request();\n if (wasRendering) {\n this.updateSize();\n }\n };\n Calendar.prototype.destroy = function () {\n if (this.isRendering) {\n this.isRendering = false;\n this.renderRunner.request();\n }\n };\n Calendar.prototype.updateSize = function () {\n var _this = this;\n flushSync(function () {\n _super.prototype.updateSize.call(_this);\n });\n };\n Calendar.prototype.batchRendering = function (func) {\n this.renderRunner.pause('batchRendering');\n func();\n this.renderRunner.resume('batchRendering');\n };\n Calendar.prototype.pauseRendering = function () {\n this.renderRunner.pause('pauseRendering');\n };\n Calendar.prototype.resumeRendering = function () {\n this.renderRunner.resume('pauseRendering', true);\n };\n Calendar.prototype.resetOptions = function (optionOverrides, append) {\n this.currentDataManager.resetOptions(optionOverrides, append);\n };\n Calendar.prototype.setClassNames = function (classNames) {\n if (!isArraysEqual(classNames, this.currentClassNames)) {\n var classList = this.el.classList;\n for (var _i = 0, _a = this.currentClassNames; _i < _a.length; _i++) {\n var className = _a[_i];\n classList.remove(className);\n }\n for (var _b = 0, classNames_1 = classNames; _b < classNames_1.length; _b++) {\n var className = classNames_1[_b];\n classList.add(className);\n }\n this.currentClassNames = classNames;\n }\n };\n Calendar.prototype.setHeight = function (height) {\n applyStyleProp(this.el, 'height', height);\n };\n return Calendar;\n}(CalendarApi));\n\nexport { Calendar };\n//# sourceMappingURL=main.js.map\n","export var OPTION_IS_COMPLEX = {\n headerToolbar: true,\n footerToolbar: true,\n events: true,\n eventSources: true,\n resources: true\n};\n//# sourceMappingURL=options.js.map","// TODO: add types!\nimport { __assign } from \"tslib\";\n/*\nworks with objects and arrays\n*/\nexport function shallowCopy(val) {\n if (typeof val === 'object') {\n if (Array.isArray(val)) {\n val = Array.prototype.slice.call(val);\n }\n else if (val) { // non-null\n val = __assign({}, val);\n }\n }\n return val;\n}\nexport function mapHash(input, func) {\n var output = {};\n for (var key in input) {\n if (input.hasOwnProperty(key)) {\n output[key] = func(input[key], key);\n }\n }\n return output;\n}\n//# sourceMappingURL=utils.js.map","import Vue from 'vue';\nimport { createPlugin } from '@fullcalendar/core';\n/*\nwrap it in an object with a `vue` key, which the custom content-type handler system will look for\n*/\nexport function wrapVDomGenerator(vDomGenerator) {\n return function (props) {\n return { vue: vDomGenerator(props) };\n };\n}\nexport function createVueContentTypePlugin(parent) {\n return createPlugin({\n contentTypeHandlers: {\n vue: function () { return buildVDomHandler(parent); }, // looks for the `vue` key\n }\n });\n}\nfunction buildVDomHandler(parent) {\n var currentEl;\n var v; // the Vue instance\n function render(el, vDomContent) {\n if (currentEl !== el) {\n if (currentEl && v) { // if changing elements, recreate the vue\n v.$destroy();\n }\n currentEl = el;\n }\n if (!v) {\n v = initVue(vDomContent, parent);\n // vue's mount method *replaces* the given element. create an artificial inner el\n var innerEl = document.createElement('span');\n el.appendChild(innerEl);\n v.$mount(innerEl);\n }\n else {\n v.content = vDomContent;\n }\n }\n function destroy() {\n if (v) { // needed?\n v.$destroy();\n }\n }\n return { render: render, destroy: destroy };\n}\nfunction initVue(initialContent, parent) {\n return new Vue({\n parent: parent,\n data: {\n content: initialContent,\n },\n render: function (h) {\n var content = this.content;\n // the slot result can be an array, but the returned value of a vue component's\n // render method must be a single node.\n if (content.length === 1) {\n return content[0];\n }\n else {\n return h('span', {}, content);\n }\n }\n });\n}\n//# sourceMappingURL=custom-content-type.js.map","import { __assign } from \"tslib\";\nimport Vue from 'vue';\nimport { Calendar } from '@fullcalendar/core';\nimport { OPTION_IS_COMPLEX } from './options';\nimport { shallowCopy, mapHash } from './utils';\nimport { wrapVDomGenerator, createVueContentTypePlugin } from './custom-content-type';\nvar FullCalendar = Vue.extend({\n props: {\n options: Object\n },\n data: initData,\n render: function (createElement) {\n return createElement('div', {\n // when renderId is changed, Vue will trigger a real-DOM async rerender, calling beforeUpdate/updated\n attrs: { 'data-fc-render-id': this.renderId }\n });\n },\n mounted: function () {\n var internal = this.$options;\n internal.scopedSlotOptions = mapHash(this.$scopedSlots, wrapVDomGenerator); // needed for buildOptions\n var calendar = new Calendar(this.$el, this.buildOptions(this.options, this));\n internal.calendar = calendar;\n calendar.render();\n },\n methods: {\n getApi: getApi,\n buildOptions: buildOptions,\n },\n beforeUpdate: function () {\n this.getApi().resumeRendering(); // the watcher handlers paused it\n },\n beforeDestroy: function () {\n this.getApi().destroy();\n },\n watch: buildWatchers()\n});\nfunction initData() {\n return {\n renderId: 0\n };\n}\nfunction buildOptions(suppliedOptions, parent) {\n var internal = this.$options;\n suppliedOptions = suppliedOptions || {};\n return __assign(__assign(__assign({}, internal.scopedSlotOptions), suppliedOptions), { plugins: (suppliedOptions.plugins || []).concat([\n createVueContentTypePlugin(parent)\n ]) });\n}\nfunction getApi() {\n var internal = this.$options;\n return internal.calendar;\n}\nfunction buildWatchers() {\n var watchers = {\n // watches changes of ALL options and their nested objects,\n // but this is only a means to be notified of top-level non-complex options changes.\n options: {\n deep: true,\n handler: function (options) {\n var calendar = this.getApi();\n calendar.pauseRendering();\n calendar.resetOptions(this.buildOptions(options, this));\n this.renderId++; // will queue a rerender\n }\n }\n };\n var _loop_1 = function (complexOptionName) {\n // handlers called when nested objects change\n watchers[\"options.\" + complexOptionName] = {\n deep: true,\n handler: function (val) {\n var _a;\n // unfortunately the handler is called with undefined if new props were set, but the complex one wasn't ever set\n if (val !== undefined) {\n var calendar = this.getApi();\n calendar.pauseRendering();\n calendar.resetOptions((_a = {},\n // the only reason we shallow-copy is to trick FC into knowing there's a nested change.\n // TODO: future versions of FC will more gracefully handle event option-changes that are same-reference.\n _a[complexOptionName] = shallowCopy(val),\n _a), true);\n this.renderId++; // will queue a rerender\n }\n }\n };\n };\n for (var complexOptionName in OPTION_IS_COMPLEX) {\n _loop_1(complexOptionName);\n }\n return watchers;\n}\nexport default FullCalendar;\n//# sourceMappingURL=FullCalendar.js.map","import FullCalendarComponent from './FullCalendar';\n/*\nRegisters the component globally if appropriate.\nThis modules exposes the component AND an install function.\n\nDerived from:\nhttps://vuejs.org/v2/cookbook/packaging-sfc-for-npm.html\n*/\nvar installed = false;\n// declare install function executed by Vue.use()\nexport function install(Vue) {\n if (!installed) {\n installed = true;\n Vue.component('FullCalendar', FullCalendarComponent);\n }\n}\n// detect a globally availble version of Vue (eg. in browser via \n\n\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=425e52b0&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ':';\n return (0, _common.withParams)({\n type: 'macAddress'\n }, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var parts = typeof separator === 'string' && separator !== '' ? value.split(separator) : value.length === 12 || value.length === 16 ? value.match(/.{2}/g) : null;\n return parts !== null && (parts.length === 6 || parts.length === 8) && parts.every(hexValid);\n });\n};\n\nexports.default = _default;\n\nvar hexValid = function hexValid(hex) {\n return hex.toLowerCase().match(/^[0-9a-f]{2}$/);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredIf',\n prop: prop\n }, function (value, parentVm) {\n return (0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"alpha\", {\n enumerable: true,\n get: function get() {\n return _alpha.default;\n }\n});\nObject.defineProperty(exports, \"alphaNum\", {\n enumerable: true,\n get: function get() {\n return _alphaNum.default;\n }\n});\nObject.defineProperty(exports, \"numeric\", {\n enumerable: true,\n get: function get() {\n return _numeric.default;\n }\n});\nObject.defineProperty(exports, \"between\", {\n enumerable: true,\n get: function get() {\n return _between.default;\n }\n});\nObject.defineProperty(exports, \"email\", {\n enumerable: true,\n get: function get() {\n return _email.default;\n }\n});\nObject.defineProperty(exports, \"ipAddress\", {\n enumerable: true,\n get: function get() {\n return _ipAddress.default;\n }\n});\nObject.defineProperty(exports, \"macAddress\", {\n enumerable: true,\n get: function get() {\n return _macAddress.default;\n }\n});\nObject.defineProperty(exports, \"maxLength\", {\n enumerable: true,\n get: function get() {\n return _maxLength.default;\n }\n});\nObject.defineProperty(exports, \"minLength\", {\n enumerable: true,\n get: function get() {\n return _minLength.default;\n }\n});\nObject.defineProperty(exports, \"required\", {\n enumerable: true,\n get: function get() {\n return _required.default;\n }\n});\nObject.defineProperty(exports, \"requiredIf\", {\n enumerable: true,\n get: function get() {\n return _requiredIf.default;\n }\n});\nObject.defineProperty(exports, \"requiredUnless\", {\n enumerable: true,\n get: function get() {\n return _requiredUnless.default;\n }\n});\nObject.defineProperty(exports, \"sameAs\", {\n enumerable: true,\n get: function get() {\n return _sameAs.default;\n }\n});\nObject.defineProperty(exports, \"url\", {\n enumerable: true,\n get: function get() {\n return _url.default;\n }\n});\nObject.defineProperty(exports, \"or\", {\n enumerable: true,\n get: function get() {\n return _or.default;\n }\n});\nObject.defineProperty(exports, \"and\", {\n enumerable: true,\n get: function get() {\n return _and.default;\n }\n});\nObject.defineProperty(exports, \"not\", {\n enumerable: true,\n get: function get() {\n return _not.default;\n }\n});\nObject.defineProperty(exports, \"minValue\", {\n enumerable: true,\n get: function get() {\n return _minValue.default;\n }\n});\nObject.defineProperty(exports, \"maxValue\", {\n enumerable: true,\n get: function get() {\n return _maxValue.default;\n }\n});\nObject.defineProperty(exports, \"integer\", {\n enumerable: true,\n get: function get() {\n return _integer.default;\n }\n});\nObject.defineProperty(exports, \"decimal\", {\n enumerable: true,\n get: function get() {\n return _decimal.default;\n }\n});\nexports.helpers = void 0;\n\nvar _alpha = _interopRequireDefault(require(\"./alpha\"));\n\nvar _alphaNum = _interopRequireDefault(require(\"./alphaNum\"));\n\nvar _numeric = _interopRequireDefault(require(\"./numeric\"));\n\nvar _between = _interopRequireDefault(require(\"./between\"));\n\nvar _email = _interopRequireDefault(require(\"./email\"));\n\nvar _ipAddress = _interopRequireDefault(require(\"./ipAddress\"));\n\nvar _macAddress = _interopRequireDefault(require(\"./macAddress\"));\n\nvar _maxLength = _interopRequireDefault(require(\"./maxLength\"));\n\nvar _minLength = _interopRequireDefault(require(\"./minLength\"));\n\nvar _required = _interopRequireDefault(require(\"./required\"));\n\nvar _requiredIf = _interopRequireDefault(require(\"./requiredIf\"));\n\nvar _requiredUnless = _interopRequireDefault(require(\"./requiredUnless\"));\n\nvar _sameAs = _interopRequireDefault(require(\"./sameAs\"));\n\nvar _url = _interopRequireDefault(require(\"./url\"));\n\nvar _or = _interopRequireDefault(require(\"./or\"));\n\nvar _and = _interopRequireDefault(require(\"./and\"));\n\nvar _not = _interopRequireDefault(require(\"./not\"));\n\nvar _minValue = _interopRequireDefault(require(\"./minValue\"));\n\nvar _maxValue = _interopRequireDefault(require(\"./maxValue\"));\n\nvar _integer = _interopRequireDefault(require(\"./integer\"));\n\nvar _decimal = _interopRequireDefault(require(\"./decimal\"));\n\nvar helpers = _interopRequireWildcard(require(\"./common\"));\n\nexports.helpers = helpers;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(equalTo) {\n return (0, _common.withParams)({\n type: 'sameAs',\n eq: equalTo\n }, function (value, parentVm) {\n return value === (0, _common.ref)(equalTo, this, parentVm);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.regex)('decimal', /^[-]?\\d*(\\.\\d+)?$/);\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'ipAddress'\n}, function (value) {\n if (!(0, _common.req)(value)) {\n return true;\n }\n\n if (typeof value !== 'string') {\n return false;\n }\n\n var nibbles = value.split('.');\n return nibbles.length === 4 && nibbles.every(nibbleValid);\n});\n\nexports.default = _default;\n\nvar nibbleValid = function nibbleValid(nibble) {\n if (nibble.length > 3 || nibble.length === 0) {\n return false;\n }\n\n if (nibble[0] === '0' && nibble !== '0') {\n return false;\n }\n\n if (!nibble.match(/^\\d+$/)) {\n return false;\n }\n\n var numeric = +nibble | 0;\n return numeric >= 0 && numeric <= 255;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withParams = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar root = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nvar fakeWithParams = function fakeWithParams(paramsOrClosure, maybeValidator) {\n if (_typeof(paramsOrClosure) === 'object' && maybeValidator !== undefined) {\n return maybeValidator;\n }\n\n return paramsOrClosure(function () {});\n};\n\nvar withParams = root.vuelidate ? root.vuelidate.withParams : fakeWithParams;\nexports.withParams = withParams;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default() {\n for (var _len = arguments.length, validators = new Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n return (0, _common.withParams)({\n type: 'or'\n }, function () {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return validators.length > 0 && validators.reduce(function (valid, fn) {\n return valid || fn.apply(_this, args);\n }, false);\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = (0, _common.withParams)({\n type: 'required'\n}, function (value) {\n if (typeof value === 'string') {\n return (0, _common.req)(value.trim());\n }\n\n return (0, _common.req)(value);\n});\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(prop) {\n return (0, _common.withParams)({\n type: 'requiredUnless',\n prop: prop\n }, function (value, parentVm) {\n return !(0, _common.ref)(prop, this, parentVm) ? (0, _common.req)(value) : true;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min) {\n return (0, _common.withParams)({\n type: 'minValue',\n min: min\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +value >= +min;\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _common = require(\"./common\");\n\nvar _default = function _default(min, max) {\n return (0, _common.withParams)({\n type: 'between',\n min: min,\n max: max\n }, function (value) {\n return !(0, _common.req)(value) || (!/\\s/.test(value) || value instanceof Date) && +min <= +value && +max >= +value;\n });\n};\n\nexports.default = _default;"],"sourceRoot":""}
/ elements with colspans.\n SOLUTION: making individual