{"version":3,"sources":["webpack:///./node_modules/preact/hooks/dist/hooks.module.js","webpack:///./node_modules/preact/compat/dist/compat.module.js","webpack:///./node_modules/@fullcalendar/daygrid/internal.js","webpack:///./node_modules/@fullcalendar/daygrid/index.js","webpack:///./node_modules/@fullcalendar/interaction/index.js","webpack:///./node_modules/@fullcalendar/core/internal-common.js","webpack:///./node_modules/@fullcalendar/vue/dist/options.js","webpack:///./node_modules/@fullcalendar/vue/dist/OffscreenFragment.js","webpack:///./node_modules/@fullcalendar/vue/dist/TransportContainer.js","webpack:///./node_modules/@fullcalendar/vue/dist/FullCalendar.js","webpack:///./node_modules/@fullcalendar/vue/dist/index.js","webpack:///./node_modules/@fullcalendar/core/index.js","webpack:///./node_modules/preact/dist/preact.module.js"],"names":["f","c","__b","a","__r","v","diffed","__c","m","unmount","d","t","u","__h","i","__H","__","length","push","__V","p","n","y","B","o","__N","r","setState","shouldComponentUpdate","filter","every","call","this","forEach","props","h","__s","z","s","_","F","current","A","concat","T","q","context","sub","value","x","useDebugValue","V","__v","__m","b","shift","__P","k","w","__e","requestAnimationFrame","j","some","g","clearTimeout","cancelAnimationFrame","setTimeout","e","C","E","R","ref","displayName","name","prototype","isReactComponent","__f","isPureReactComponent","state","type","N","Symbol","for","$$typeof","render","map","O","count","only","toArray","then","__k","I","L","U","insertBefore","__d","D","__u","__a","M","default","__R","l","__O","pop","forceUpdate","componentWillUnmount","document","createElement","fallback","children","W","delete","revealOrder","size","getChildContext","$","nodeType","parentNode","childNodes","appendChild","removeChild","splice","indexOf","containerInfo","get","Map","reverse","set","componentDidUpdate","componentDidMount","H","Z","test","Y","textContent","Object","defineProperty","configurable","writable","G","event","J","K","cancelBubble","Q","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","X","nn","class","tn","vnode","toLowerCase","replace","multiple","Array","isArray","selected","defaultValue","className","enumerable","en","rn","ReactCurrentDispatcher","readContext","__n","on","bind","ln","cn","apply","arguments","fn","an","base","sn","hn","vn","dn","pn","mn","yn","_n","super","headerElRef","headerRowContent","bodyContent","sections","stickyHeaderDates","options","key","isSticky","chunk","elRef","tableClassName","rowContent","liquid","content","elClasses","viewSpec","isHeightAuto","forPrint","collapsibleWidth","cols","colCnt","dayMinWidth","ScrollGrid","pluginHooks","scrollGridImpl","Error","stickyFooterScrollbar","chunks","colGroups","span","minWidth","splitSegsByRow","segs","rowCnt","byRow","seg","row","splitSegsByFirstCol","byCol","firstCol","splitInteractionByRow","ui","affectedInstances","isEvent","DEFAULT_TABLE_EVENT_TIME_FORMAT","hour","minute","omitZeroMinute","meridiem","hasListItemDisplay","display","eventRange","def","allDay","lastCol","isStart","isEnd","assign","defaultTimeFormat","defaultDisplayEventEnd","disableResizing","timeFormat","eventTimeFormat","timeText","elTag","elAttrs","defaultGenerator","renderInnerContent","isResizing","isDateSelecting","renderProps","style","borderColor","backgroundColor","title","compileSegs","allSegs","invisibleSegs","singlePlacements","dateProfile","todayRange","allDayDate","moreCnt","hiddenSegs","alignmentElRef","alignGridTop","extraDateSpan","popoverContent","isForcedInvisible","eventDrag","eventResize","instanceId","instance","visibility","isDragging","isSelected","eventSelection","placement","isVisible","DEFAULT_WEEK_NUM_FORMAT","week","rootElRef","dayNumberId","handleRootEl","el","dateEnv","date","isMonthStart","showDayNumber","shouldDisplayMonthStart","currentRange","extraClassNames","extraDataAttrs","role","renderTopInner","extraRenderProps","InnerContent","innerElRef","minHeight","showWeekNumber","defaultFormat","isDisabled","forceDayTop","id","undefined","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","dayNumberText","start","currentStart","end","currentEnd","currentEndIncl","currentFirstYear","getYear","currentFirstMonth","getMonth","currentLastYear","currentLastMonth","Boolean","valueOf","getDay","generateSegKey","generateSegUid","computeFgSegPlacement","dayMaxEvents","dayMaxEventRows","strictOrder","segHeights","maxContentHeight","cells","hierarchy","segEntry","segUid","index","allowReslicing","maxCoord","hiddenConsumes","maxStackCnt","segInputs","unknownHeightSegs","eventHeight","hiddenEntries","addSegs","segRects","toRects","singleColPlacements","multiColPlacements","leftoverMargins","placeRects","moreCnts","moreMarginTops","isAbsolute","absoluteTop","col","resliceSeg","hiddenEntry","hiddenSpan","allRects","rectsByEachCol","groupRectsByEachCol","rects","currentHeight","currentMarginTop","rect","levelCoord","thickness","multiPlacements","isFirstCol","spanStart","spanEnd","origRange","range","slicedRange","durationEditable","forceHidden","entriesByLevel","excludeHidden","entry","level","insertion","touchingEntry","touchingLevel","touchingLateral","touchingEntryId","hiddenEntryId","splitEntry","handleInvalidInsertion","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","handleResize","isForced","updateSizing","businessHoursByCol","businessHourSegs","bgEventSegsByCol","bgEventSegs","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","fgEventSegs","eventOrder","eventOrderStrict","renderIntro","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","buildMirrorPlacements","createRef","showDayNumbers","showWeekNumbers","renderFillSegs","cellMinHeight","addResizeHandler","prevProps","prevState","currentProps","removeResizeHandler","dateSelectionSegs","segPlacements","isMirror","nodes","left","right","isRtl","lefts","rights","top","fillType","leftRightCss","isExternalSizingChange","clientWidth","frameEls","currentMap","originEl","newPositionCache","similarTo","oldSegHeights","newSegHeights","querySegHeights","limitByContentHeight","safeSetState","computeMaxContentHeight","segElMap","height","Math","round","getBoundingClientRect","max","firstKey","cellEl","fcContainerEl","bottom","elMap","mirrorSegs","colPlacements","topsByInstanceId","buildAbsoluteTopHash","placements","addStateEquality","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","splitEventDrag","splitEventResize","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","aspectRatio","unit","nowDate","toISOString","renderRowIntro","isSegAllDay","clientHeight","registerInteractiveComponent","rootEl","firstCellEl","getCellEls","closest","isHitComboAllowed","unregisterInteractiveComponent","rowPositions","collect","rowObj","colPositions","positionLeft","positionTop","leftToIndex","topToIndex","dateSpan","getCellRange","dayEl","getCellEl","tops","bottoms","layer","needsScrollReset","expandRows","limitViaBalanced","classNames","join","width","tableMinWidth","colGroupNode","requestScrollReset","flushScrollReset","subjectEl","getScrollSubjectEl","scrollEl","scrollTop","containerEl","currentRangeUnit","match","querySelector","currentDate","forceDayIfListItem","dateRange","dayTableModel","sliceRange","slicer","tableRef","sliceProps","nextDayThreshold","headerAlignElRef","buildDayTableModel","headerRef","dateProfileGenerator","headerContent","dayHeaders","dates","headerDates","datesRepDistinctDays","contentArg","businessHours","dateSelection","eventStore","eventUiBases","tableColGroupNode","weekNumbers","renderHScrollLayout","renderSimpleLayout","daySeries","renderRange","isRangeAllDay","buildRenderRange","buildDayTableRenderRange","snapToWeek","fixedWeekCount","endOfWeek","startOfWeek","lastMonthRenderStart","startOfMonth","ceil","css_248z","initialView","views","dayGrid","component","dateProfileGeneratorClass","dayGridDay","duration","days","dayGridWeek","weeks","dayGridMonth","months","dayGridYear","years","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","selector","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","ev","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","pev","createEventFromMouse","emitter","trigger","initScrollWatch","addEventListener","handleMouseMove","handleMouseUp","recordCoords","removeEventListener","cleanup","handleTouchStart","createEventFromTouch","targetEl","target","handleTouchMove","handleTouchEnd","window","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","scrollX","prevScrollX","prevPageX","pageY","scrollY","prevScrollY","prevPageY","origEvent","isTouch","deltaX","origPageX","deltaY","origPageY","passive","listenerCreated","listenerDestroyed","querySubjectEl","downEl","destroyScrollWatch","isFirst","touches","button","ctrlKey","onWindowTouchMove","preventDefault","ElementMirror","sourceEl","mirrorEl","sourceElRect","body","zIndex","revertDuration","origScreenX","origScreenY","updateElPosition","bool","needsRevertAnimation","callback","done","doRevertAnimation","finalSourceElRect","transition","getMirrorEl","cloneNode","userSelect","webkitUserSelect","pointerEvents","classList","add","position","boxSizing","margin","ScrollGeomCache","scrollController","doesListening","getScrollTop","scrollLeft","getScrollLeft","handleScrollChange","origScrollTop","origScrollLeft","scrollWidth","getScrollWidth","scrollHeight","getScrollHeight","getClientWidth","getClientHeight","clientRect","computeClientRect","getEventTarget","setScrollTop","min","getMaxScrollTop","setScrollLeft","getMaxScrollLeft","ElementScrollGeomCache","WindowScrollGeomCache","getTime","performance","now","Date","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","scrollStartEl","buildCaches","handleMove","yDelta","xDelta","scrollCache","destroy","seconds","invDistance","distance","velocity","sign","bestSide","leftDist","rightDist","topDist","bottomDist","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","queryScrollEls","els","query","slice","getRootNode","querySelectorAll","FeaturefulElementDragging","delay","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","setIsVisible","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","stop","tryStopDrag","handleDelayEnd","tryStartDrag","cancelTouchScroll","stopDrag","OffsetTracker","origRect","point","isIgnoredClipping","node","tagName","HitDragging","dragging","droppableStore","useSubjectCenter","requireInitial","disablePointCheck","initialHit","movingHit","finalHit","handlePointerDown","prepareHits","processFirstCoord","setIgnoreMove","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","HTMLElement","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","offsetLeft","offsetTop","bestHit","offsetTracker","isWithinClipping","originLeft","computeLeft","originTop","computeTop","queryHit","activeRange","contains","elementFromPoint","componentId","hit0","hit1","buildDatePointApiWithContext","transform","datePointTransforms","buildDatePointApi","toDate","dateStr","formatIso","omitTime","DateClicking","settings","isValidDateDownEl","hitDragging","arg","jsEvent","view","viewApi","calendarApi","DateSelecting","dragSelection","canSelect","selectable","getComponentTouchDelay$1","unselect","handleHitUpdate","isFinal","isInvalid","disallowed","joinHitsIntoSelection","dateSelectionTransformers","dispatch","selection","selectMinDistance","dragScroll","selectLongPressDelay","longPressDelay","dateSpan0","dateSpan1","ms","sort","transformer","res","EventDragging","subjectSeg","relevantEvents","receivingContext","validMutation","mutatedRelevantEvents","origTarget","initialContext","eventInstanceId","getCurrentData","eventDragMinDistance","getComponentTouchDelay","fixedMirrorParent","dragRevertDuration","isValid","isValidSegDownEl","mutation","interaction","affectedEvents","mutatedEvents","receivingOptions","editable","droppable","computeEventMutation","eventDragMutationMassagers","displayDrag","setMirrorNeedsRevert","setMirrorIsVisible","eventDef","eventInstance","eventApi","clearDrag","updatedEventApi","defs","defId","instances","eventChangeArg","oldEvent","relatedEvents","transformed","eventDropTransformers","delta","datesDelta","eventRemoveArg","draggedEl","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","SELECTOR","useEventCenter","nextContext","prevContext","initialCalendar","eventInstanceStart","massagers","date0","date1","standardProps","hasEnd","allDayMaintainDuration","largeUnit","milliseconds","massager","eventLongPressDelay","EventResizing","draggingSegEl","draggingSeg","segEl","querySegEl","computeMutation","startDelta","endDelta","isFromStart","instanceRange","UnselectAuto","isRecentPointerDateSelect","matchesCancel","matchesEvent","onSelect","selectInfo","onDocumentPointerDown","unselectCancel","onDocumentPointerUp","documentPointer","calendarState","unselectAuto","off","OPTION_REFINERS","LISTENER_REFINERS","dateClick","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","drop","eventReceive","eventLeave","dataAttrPrefix","componentInteractions","calendarInteractions","elementDraggingImpl","optionRefiners","listenerRefiners","styleTexts","styleEls","injectStyles","styleText","styleEl","appendStylesTo","ensureElHasStyles","isConnected","registerStylesRoot","rootNode","setAttribute","nonce","getNonceValue","parentEl","head","firstChild","hydrateStylesRoot","sheet","ruleCnt","cssRules","split","styleStr","trim","insertRule","queriedNonceValue","queryNonceValue","metaWithNonce","hasAttribute","getAttribute","elWithNonce","DelayedRunner","drainedOption","isRunning","isDirty","pauseDepths","timeoutId","isPaused","tryDrain","scope","force","depth","keys","drained","removeElement","elementClosest","documentElement","elementMatches","parentElement","method","matches","matchesSelector","msMatchesSelector","findElements","container","containers","allMatches","PIXEL_PROP_RE","applyStyle","propName","applyStyleProp","val","getEventTargetViaRoot","_a","_b","composedPath","guid$1","getUniqueDomId","buildDelegationHandler","handler","matchedChild","listenBySelector","eventType","attachedHandler","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","mouseOverEv","realOnMouseLeave","mouseLeaveEv","transitionEventNames","whenTransitionDone","realCallback","eventName","createAriaClickAttrs","onClick","createAriaKeyboardAttrs","tabIndex","guidNumber","guid","String","disableCursor","enableCursor","remove","preventSelection","allowSelection","preventContextMenu","allowContextMenu","parseFieldSpecs","input","token","specs","tokens","charAt","field","substring","order","func","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","localeCompare","padStart","len","substr","formatWithOrdinals","formatter","args","fallbackText","reduce","str","compareNumbers","isInt","computeSmallestCellWidth","allWidthEl","contentWidthEl","PARSE_RE","createDuration","parseString","parseObject","exec","parseInt","obj","year","month","day","hours","minutes","second","millisecond","specifiedWeeks","durationsEqual","d0","d1","subtractDurations","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","greatestDurationDenominator","isArraysEqual","a0","a1","equalityFunc","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","startOfDay","m1day","diffWholeWeeks","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","startOfHour","getUTCHours","startOfMinute","getUTCMinutes","startOfSecond","getUTCSeconds","weekOfYear","marker","dow","doy","weekOfGivenYear","nextW","firstWeekStart","firstWeekOffset","dayStart","floor","fwd","fwdlw","getUTCDay","dateToLocalArray","getFullYear","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","UTC","isValidDate","isNaN","buildIsoString","timeZoneOffset","stripZeroTime","formatTimeZoneOffset","formatDayString","formatIsoMonthStr","doIso","abs","mins","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","newArg","isPropsEqual","EXTENDED_SETTINGS_AND_SEVERITIES","separator","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","betterDefaultSeparator","diffSeverity","computeMarkerDiffSeverity","calendarSystem","format","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","findCommonInsertion","defaultSeparator","before","after","standardDatePropCnt","formatWeekNumber","computeWeekNumber","weekText","weekTextLong","locale","buildNativeFormattingFunc","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","postProcess","injectTzoStr","toLocaleLowerCase","tzoStr","replaced","num","parts","simpleNumberFormat","direction","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","defaultAllDayEventDuration","defaultTimedEventDuration","scrollTime","scrollTimeReset","slotMinTime","slotMaxTime","dayPopoverFormat","slotDuration","snapDuration","headerToolbar","footerToolbar","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","dayHeaderFormat","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","dayCellClassNames","dayCellContent","dayCellDidMount","dayCellWillUnmount","Number","weekends","weekNumberCalculation","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","viewClassNames","viewDidMount","viewWillUnmount","nowIndicator","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","showNonCurrentDates","lazyFetching","startParam","endParam","timeZoneParam","locales","themeSystem","dropAccept","handleWindowResize","windowResizeDelay","contentHeight","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","progressiveEventRendering","initialDate","eventDataTransform","viewHeight","defaultAllDay","eventSourceFailure","eventSourceSuccess","eventDisplay","eventStartEditable","eventDurationEditable","eventOverlap","eventConstraint","eventAllow","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","eventClassNames","eventContent","eventDidMount","eventWillUnmount","selectConstraint","selectOverlap","selectAllow","slotLabelFormat","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","slotLabelInterval","allDayText","allDayClassNames","allDayContent","allDayDidMount","allDayWillUnmount","slotMinWidth","navLinks","rerenderDelay","moreLinkText","moreLinkHint","selectMirror","eventMaxStack","eventMinHeight","eventMinWidth","eventShortHeight","slotEventOverlap","plugins","firstDay","dayCount","dateAlignment","dateIncrement","hiddenDays","validRange","visibleRange","titleFormat","eventInteractive","noEventsText","viewHint","navLinkHint","closeHint","timeHint","eventHint","moreLinkClick","moreLinkClassNames","moreLinkContent","moreLinkDidMount","moreLinkWillUnmount","monthStartFormat","handleCustomRendering","customRenderingMetaMap","customRenderingReplaces","BASE_OPTION_DEFAULTS","center","CALENDAR_LISTENER_REFINERS","datesSet","eventsSet","eventAdd","eventChange","eventRemove","windowResize","eventClick","eventMouseEnter","eventMouseLeave","select","loading","_unmount","_beforeprint","_afterprint","_noEventDrop","_noEventResize","_resize","_scrollRequest","CALENDAR_OPTION_REFINERS","buttonText","buttonHints","initialEvents","events","eventSources","COMPLEX_OPTION_COMPARATORS","isMaybeObjectsEqual","isMaybeArraysEqual","VIEW_OPTION_REFINERS","buttonTextKey","usesMinMaxTime","didMount","willUnmount","mergeRawOptions","optionSets","mergeProps","refineProps","refiners","refined","extra","raw","hasOwnProperty","propObjs","complexPropsMap","dest","complexObjs","unshift","filterHash","hash","filtered","mapHash","newHash","arrayToHash","item","hashValuesToArray","HANDLER_RE","isNonHandlerPropsEqual","getUnequalProps","compareObjs","oldProps","newProps","equalityFuncs","isObjValsEqual","val0","val1","comparator","collectFromHash","startIndex","endIndex","step","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","arr","ISO_RE","parse","isTimeUnspecified","DateEnv","isNamedTimeZone","namedTimeZoneImpl","canComputeOffset","weekDow","weekDoy","weekNumberFunc","meta","createMarkerMeta","timestampToMarker","forcedTzo","arrayToMarker","diffWholeYears","diffWholeMonths","diff","startOfYear","dateOptions","offsetForMarker","isEndExclusive","formatRange","forcedStartTzo","forcedEndTzo","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","Theme","calendarOptions","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","prefix","iconOverridePrefix","classes","rtlIconClasses","baseIconClass","customButtonProps","iconOverrideCustomButtonOption","flushSync","runBeforeFlush","oldDebounceRendering","debounceRendering","callbackQ","execCallbackSync","FakeComponent","createContext","ContextType","origProvider","Provider","isNew","subs","_props","old","ScrollResponder","execFunc","handleScrollRequest","request","queuedRequest","drain","fireInitialScroll","isDatesNew","time","ViewContextType","buildViewContext","viewOptions","theme","PureComponent","nextProps","nextState","debug","console","log","propEquality","stateEquality","newState","addPropsEquality","contextType","BaseComponent","create","setRef","ContentInjector","queuedDomNodes","currentDomNodes","handleEl","generatorName","hasCustomRenderingHandler","updateElRef","customGenerator","attrs","buildElAttrs","innerContent","currentGeneratorMeta","useDefault","customGeneratorRes","isObject","dangerouslySetInnerHTML","__html","html","domNodes","applyQueueudDomNodes","triggerCustomRendering","isActive","generatorMeta","reportNewContainerEl","isTruthy","newNode","elStyle","RenderId","ContentContainer","InnerContentInjector","didMountMisfire","generatedClassNames","generateClassNames","classNameGenerator","renderId","containerComponent","parentProps","ViewContainer","buildViewClassNames","parseRange","createMarker","invertRanges","ranges","constraintRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","constrainMarkerToRange","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","diffDates","reduceCurrentDate","action","dateMarker","getInitialDate","initialDateInput","getNow","nowInput","createNowMarker","DateProfileGenerator","initHiddenDays","currentDateProfile","forceToValid","prevDate","subtract","startOf","build","nextDate","currentInfo","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","adjustActiveRange","buildDateIncrement","validRangeInput","simpleInput","refineRange","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","greatestWholeUnit","getFallbackDuration","computeRes","isHiddenDay","skipHiddenDays","runningCount","visibleRangeInput","customAlignment","rangeInput","isHiddenDayHash","inc","isExclusive","createEventInstance","parseRecurring","recurringTypes","parsed","allDayGuess","typeData","typeId","expandRecurring","framingRange","recurringDef","starts","expandRecurringRanges","typeDef","markers","expand","EVENT_NON_DATE_REFINERS","groupId","url","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","parseEvent","eventSource","allowOpenRange","buildEventRefiners","defIdMap","instanceIdMap","refineEventDef","computeIsDefaultAllDay","recurringRes","parseEventDef","sourceId","singleRes","parseSingle","publicId","EVENT_UI_REFINERS","eventRefiners","createEventUi","memberAdder","eventDefMemberAdders","freeze","startMeta","endMeta","startMarker","endMarker","startInput","parseEvents","rawEvents","createEmptyEventStore","rawEvent","tuple","eventTupleToStore","getRelevantEvents","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","mergeEventStores","store0","store1","filterFunc","excludeSubEventStore","master","filteredDefs","filteredInstances","normalizeConstraint","parseClassNames","startEditable","constraint","overlap","allow","color","textColor","EMPTY_EVENT_UI","constraints","allows","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_SOURCE_REFINERS","success","failure","parseEventSource","buildEventSourceRefiners","rawObj","metaRes","buildEventSourceMeta","_raw","isFetching","latestFetchId","fetchRange","sourceDefId","eventSourceRefiners","eventSourceDefs","parseMeta","reduceEventStore","receiveRawEvents","fetchId","resetRawEvents","addEvent","excludeEventsBySourceId","subset","transformRawEvents","existingEventStore","buildPublicIdMaps","newEventStore","calEachTransform","sourceEachTransform","transformEachRawEvent","refinedEvents","refinedEvent","expandRange","rezoneEventStoreDates","oldDateEnv","newDateEnv","excludeInstances","removals","Emitter","handlers","thisContext","addToHash","removeFromHash","attachedHandlers","optionHandler","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","refineInputs","rawDefs","rawDef","triggerDateSelect","buildDateSpanApiWithContext","triggerDateUnselect","dateSpanTransforms","buildDateSpanApi","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","eventConfigs","compileEventUis","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","copy","applier","eventDefMutationAppliers","forceAllDay","clearEnd","EventSourceImpl","internalEventSource","sourceIds","isRefetch","EventImpl","_context","_def","_instance","warn","mutate","granularity","maintainDuration","endInput","deltaInput","formatInput","buildEventApis","asStore","eventApiToStore","startStr","endStr","collapseColor","collapseExtendedProps","toPlainObject","excludeInstance","eventApis","excludeInstanceId","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","normalRange","invertedRange","bg","fg","setElSeg","fcSeg","getElSeg","eventDefs","compileEventUi","sortEventSegs","eventOrderSpecs","objs","buildSegCompareObj","_seg","computeSegDraggable","transformers","isDraggableTransformers","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","defaultDisplayEventTime","startOverride","endOverride","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","segRange","isPast","isFuture","isToday","getEventClassNames","isDraggable","isStartResizable","isEndResizable","buildEventRangeKey","getSegAnchorAttrs","href","hasHandlers","STANDARD_PROPS","parseDateSpan","defaultDuration","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApi","buildRangeApiWithTimeZone","fabricateEventRange","unpromisify","normalizedSuccessCallback","normalizedFailureCallback","isResolved","wrappedSuccess","wrappedFailure","error","JsonRequestError","message","response","requestJson","params","toUpperCase","fetchOptions","URLSearchParams","headers","fetch","fetchRes","ok","json","parsedResponse","canVGrowWithinCell","getCanVGrowWithinCell","computeCanVGrowWithinCell","innerHTML","div","possible","offsetHeight","CalendarRoot","handleBeforePrint","handleAfterPrint","getClass","Interaction","parseInteractionSettings","interactionSettingsToStore","uid","interactionSettingsStore","CalendarImpl","currentDataManager","optionName","rawOptionValue","currentCalendarOptionsInput","availableRawLocales","handlerName","currentCalendarOptionsRefiners","viewType","dateOrRange","batchRendering","spec","viewSpecs","getUnitViewSpec","toolbarConfig","viewTypes","header","viewsWithButtons","footer","singleUnit","addYears","zonedDateInput","dateOrObj","endDate","selectionInput","eventInput","sourceInput","currentData","triggerEventAdd","sourceApi","getEventSourceById","newEventApi","revert","sourceHash","sourceApis","internalId","sources","timeInput","pointInsideRect","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","getDateMeta","isOther","getDayClassNames","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","zonedDate","handleInteraction","customAction","zoomTo","_scrollbarWidths","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","computeIsRtlScrollbarOnLeft","outerEl","border","padding","overflow","innerEl","getScrollbarWidths","computeScrollbarWidths","computeScrollbarWidthsForEl","offsetWidth","computeEdges","getPadding","computedStyle","getComputedStyle","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","computeClippedClientRect","clippingParents","getClippingParents","clippingParent","intersection","parents","overflowY","overflowX","PositionCache","isHorizontal","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","originClientTop","leftPosition","topPosition","leftIndex","topIndex","otherCache","similarNumArrays","ScrollController","ElementScrollController","WindowScrollController","scroll","DateComponent","elWidth","elHeight","SegHierarchy","getEntryThickness","levelCoords","stackCnts","inputs","insertEntry","findInsertion","isInsertionValid","insertEntryAt","stackCnt","intersectSpans","barrier","entrySpan","barrierSpan","lateral","insertAt","buildEntryKey","newEntry","levelCnt","candidateCoord","trackingLevel","trackingCoord","trackingEntry","trackingEntries","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","entries","searchVal","getItemVal","middleIndex","middleVal","ElementDragging","config","DRAG_META_REFINERS","parseDragMeta","leftoverProps","computeFallbackHeaderFormat","CLASS_NAME","renderInner$1","text","TableDateCell","dayMeta","navLinkAttrs","colSpan","InnerContainer","WEEKDAY_FORMAT","TableDowCell","dateMeta","NowTimer","initialNowDate","initialNowQueriedMs","computeTiming","currentState","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","DayHeader","createDayHeaderFormatter","explicitFormat","dateCnt","DaySeriesModel","indices","dayIndex","cnt","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTableModel","breakOnWeeks","daysPerRow","buildCells","buildHeaderDates","rows","buildCell","seriesSeg","nextIndex","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","extraArgs","eventSegs","computeActiveRange","rangeRes","sliceEventRanges","activeDateSpanRange","eventRanges","sliceEventRange","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","isPropsValid","dateSpanMeta","filterConfig","isInteractionPropsValid","isDateSelectionPropsValid","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","selectionConfig","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlapFunc","otherInstanceId","otherInstance","otherOverlap","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","businessHoursUnexpanded","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","VISIBLE_HIDDEN_RE","Scroller","liquidIsAbsolute","overcomeLeft","overcomeRight","overcomeBottom","marginLeft","marginRight","marginBottom","maxHeight","realClientWidth","getYScrollbarWidth","childEl","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","depths","callbackMap","handleValue","removed","added","refCallback","computeShrinkWidth","chunkEls","shrinkCells","largestWidth","shrinkCell","getSectionHasLiquidHeight","sectionConfig","getAllowYScrolling","renderChunkContent","chunkConfig","isHeader","syncRowHeights","isColPropsEqual","cols0","cols1","renderMicroColGroup","shrinkWidth","colNodes","colProps","sanitizeShrinkWidth","hasShrinkWidth","getScrollGridClassNames","getSectionClassNames","wholeTableVGrow","renderScrollShim","getStickyHeaderDates","getStickyFooterScrollbar","SimpleScrollGrid","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","computeScrollerDims","sectionConfigs","microColGroupNode","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","renderSection","isBuggy","roleAttrs","outerContent","renderChunkTd","needsYScrolling","isLiquid","sectionKey","rowSyncHeights","reportRowHeightChange","scrollerEl","section","getSectionByKey","scrollerElRef","getAll","scrollbarWidth","scroller","harnessEl","EventContainer","disableDragging","StandardEvent","renderInnerContent$1","eventContentArg","innerProps","DAY_NUM_FORMAT","DayCellContainer","refineRenderProps","hasCustomDayCellContent","BgEvent","renderFill","WeekNumberContainer","Consumer","renderInner","PADDING_FROM_VIEWPORT","Popover","titleId","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","onClose","extraAttrs","getIconClass","updateSize","alignmentEl","alignmentRect","popoverDims","popoverTop","popoverLeft","origin","offsetParent","MorePopover","startDate","forceTimed","MoreLinkContainer","isPopoverOpen","popoverId","handleLinkEl","linkEl","handleClick","computeRange","buildPublicSeg","handlePopoverClose","hint","shortText","renderMoreLinkInner","updateParentEl","computeEarliestSegStart","computeLatestSegEnd","pickEarliestStart","seg0","seg1","pickLatestEnd","Store","currentValue","CustomRenderingStore","customRendering","updated","has","OPTION_IS_COMPLEX","resources","dummyContainer","createDocumentFragment","OffscreenFragment","extend","$slots","$el","TransportContainer","inPlaceOf","Element","reportEl","Function","replaceEl","subject","nextSibling","FullCalendar","customRenderingMap","methods","getSecret","calendar","suppliedOptions","kebabToCamelKeys","$scopedSlots","customRenderingNodes","values","customRenderingStore","handle","buildOptions","subscribe","needCustomRenderingResize","getApi","resumeRendering","watch","buildWatchers","inst","watchers","deep","pauseRendering","resetOptions","complexOptionName","newMap","kebabToCamel","word","capitalize","GlobalVue","installed","install","Vue","globalThis","use","globalLocales","MINIMAL_RAW_EN_LOCALE","code","prev","next","prevYear","nextYear","today","list","RAW_EN_LOCALE","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","rawLocale","buildLocale","inputSingular","available","queryLocale","parseLocale","codeArg","queryRawLocale","simpleId","merged","NumberFormat","createPlugin","premiumReleaseDate","deps","reducers","isLoadingFuncs","contextInit","viewPropsTransformers","externalDefTransforms","viewContainerAppends","themeClasses","namedTimeZonedImpl","optionChangeHandlers","propSetHandlers","buildPluginHooks","pluginDefs","globalDefs","currentPluginIds","hooks","addDefs","pluginName","currentId","combineHooks","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","hooks0","hooks1","compareOptionalDates","StandardTheme","compileViewDefs","defaultConfigs","overrideConfigs","ensureViewDef","viewDef","buildViewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","defaults","rawOptions","overrides","parseViewConfigs","parseViewConfig","createViewHookComponent","viewProps","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","buildViewSpec","durationInput","singleUnitOverrides","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","buttonTitleOverride","buttonHint","buttonTitleDefault","root","tableCellShaded","buttonGroup","buttonActive","close","durationInputMap","JSON","stringify","reduceViewType","reduceDynamicOptionOverrides","reduceDateProfile","dp","buildPrev","buildNext","initEventSources","addSources","parseInitialSources","reduceEventSources","removeSource","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","receiveResponse","reduceEventSourcesNewTimeZone","computeEventSourcesLoading","eventSourceHash","source","isSourceDirty","doesSourceNeedRange","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","errorHandled","rawSources","rawSource","ignoreRange","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","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","getCustomButtonIconClass","changeView","textFallback","prevOrNext","navUnit","ViewImpl","viewTitle","eventSourceDef$2","successCallback","arrayEventSourcePlugin","eventSourceDef$1","errorCallback","funcEventSourcePlugin","JSON_FEED_EVENT_SOURCE_REFINERS","extraParams","eventSourceDef","requestParams","buildRequestParams","jsonFeedEventSourcePlugin","customRequestParams","SIMPLE_RECURRING_REFINERS","startRecur","endRecur","recurring","recurringData","clippedFramingRange","expandRanges","simpleRecurringEventsPlugin","dowHash","dayMarker","instanceStarts","instanceStart","changeHandlerPlugin","handleEventSources","unfoundSources","newInputs","inputFound","unfoundSource","newInput","addEventSource","handleDateProfile","handleEventStore","globalPlugins","TaskRunner","runTaskOption","queue","delayedRunner","task","pause","resume","completedTasks","runTask","buildTitle","buildTitleFormat","CalendarDataManager","computeCurrentViewData","_computeCurrentViewData","buildDateEnv","buildDateEnv$1","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","actionRunner","_handleAction","updateData","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","optionsForRefining","optionsForHandling","data","optionsData","computeOptionsData","currentViewType","currentViewData","setThisContext","setOptions","calendarContext","initialState","renderableEventStore","contextAndState","reducer","computeIsLoading","changedOptionNames","isEventsLoading","eventUiSingleBase","eventUiBySource","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","onData","stableOptionOverrides","stableDynamicOptionOverrides","stableCalendarOptionsData","refinedOptions","availableLocaleData","processRawCalendarOptions","warnUnknownOptions","currentRaw","currentRefined","anyChanges","processRawViewOptions","explicitLocale","ThemeClass","DateProfileGeneratorClass","isLoadingFunc","viewName","ToolbarSection","widgetGroups","widgetGroup","renderWidgetGroup","isOnlyButtons","widget","isPressed","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","disabled","groupClassName","Toolbar","startContent","endContent","model","extraClassName","forceLtr","centerContent","ViewHarness","availableWidth","updateAvailableWidth","labeledById","EventClicking","handleSegClick","hasUrlContainer","location","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","publicEvName","CalendarContent","buildViewPropTransformers","buildToolbarProps","footerRef","interactionsStore","viewLabelId","settingsInput","DEFAULT_INTERACTIONS","interactionClasses","interactions","TheInteractionClass","listeners","listener","resizeRunner","viewAspectRatio","toolbarProps","viewVGrow","viewContext","renderView","buildAppendContent","CalendarInteractionClass","clear","ViewComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","Calendar","isRendering","isRendered","currentClassNames","customContentRenderId","handleAction","renderRunner","handleData","handleRenderRequest","setClassNames","setHeight","wasRendering","defaultProps","constructor","setProperty","cssText","removeAttribute","P","ownerSVGElement","S","__E","_sb","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","componentWillUpdate","getSnapshotBeforeUpdate","localName","createTextNode","createElementNS","is","attributes","checked","getDerivedStateFromError","componentDidCatch","Promise","resolve"],"mappings":"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","file":"js/chunk-103c7a0f.281caff8.js","sourcesContent":["import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,h as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,s as useLayoutEffect,F as useMemo,y as useReducer,_ as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(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,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new n).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var N=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var A=function(n,t){return null==n?null:r(r(n).map(t))},O={map:A,forEach:A,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},T=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var I=e.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function V(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(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.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var W=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),e.i.removeChild(n)}}),o(t(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function j(n,e){var r=t($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new n).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(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},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=\"undefined\"!=typeof document,Z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){var t=n.type,e=n.props,u=e;if(\"string\"==typeof t){var o=-1===t.indexOf(\"-\");for(var i in u={},e){var l=e[i];H&&\"children\"===i&&\"noscript\"===t||\"value\"===i&&\"defaultValue\"in e&&null==l||(\"defaultValue\"===i&&\"value\"in e&&null==e.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":/ondoubleclick/i.test(i)?i=\"ondblclick\":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i=\"oninput\":/^onfocus$/i.test(i)?i=\"onfocusin\":/^onblur$/i.test(i)?i=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,\"-$&\").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i=\"oninputCapture\")),u[i]=l)}\"select\"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=r(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==t&&null!=u.defaultValue&&(u.value=r(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable=\"className\"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,\"className\",nn))}n.$$typeof=z,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un=\"17.0.2\";function on(n){return t.bind(null,n)}function ln(n){return!!n&&n.$$typeof===z}function cn(n){return ln(n)?f.apply(null,arguments):n}function fn(n){return!!n.__k&&(o(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=u;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=d;function _n(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),v(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:O,render:Y,hydrate:q,unmountComponentAtNode:fn,createPortal:j,createElement:t,createContext:l,createFactory:on,cloneElement:cn,createRef:c,Fragment:u,isValidElement:ln,findDOMNode:an,Component:n,PureComponent:w,memo:R,forwardRef:k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};export{O as Children,w as PureComponent,vn as StrictMode,D as Suspense,V as SuspenseList,rn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,cn as cloneElement,on as createFactory,j as createPortal,bn as default,an as findDOMNode,hn as flushSync,k as forwardRef,q as hydrate,ln as isValidElement,M as lazy,R as memo,Y as render,dn as startTransition,fn as unmountComponentAtNode,sn as unstable_batchedUpdates,pn as useDeferredValue,yn as useInsertionEffect,_n as useSyncExternalStore,mn as useTransition,un as version};\n//# sourceMappingURL=compat.module.js.map\n","import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends DateComponent {\n constructor() {\n super(...arguments);\n this.headerElRef = createRef();\n }\n renderSimpleLayout(headerRowContent, bodyContent) {\n let { props, context } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n });\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));\n }\n renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { props, context } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n });\n }\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));\n }\n}\n\nfunction splitSegsByRow(segs, rowCnt) {\n let byRow = [];\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = [];\n }\n for (let seg of segs) {\n byRow[seg.row].push(seg);\n }\n return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n let byCol = [];\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = [];\n }\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg);\n }\n return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg);\n }\n }\n return byRow;\n}\n\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n});\nfunction hasListItemDisplay(seg) {\n let { display } = seg.eventRange.ui;\n return display === 'list-item' || (display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n );\n}\n\nclass TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n }\n}\n\nclass TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props, { elTag: \"a\", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));\n }\n}\nfunction renderInnerContent(renderProps) {\n return (createElement(Fragment, null,\n createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),\n renderProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, renderProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title\" }, renderProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n}\n\nclass TableCellMoreLink extends BaseComponent {\n constructor() {\n super(...arguments);\n this.compileSegs = memoize(compileSegs);\n }\n render() {\n let { props } = this;\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);\n return (createElement(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {\n let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n visibility: isForcedInvisible[instanceId] ? 'hidden' : '',\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));\n })));\n } }));\n }\n}\nfunction compileSegs(singlePlacements) {\n let allSegs = [];\n let invisibleSegs = [];\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg);\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg);\n }\n }\n return { allSegs, invisibleSegs };\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\nclass TableCell extends DateComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.state = {\n dayNumberId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n setRef(this.rootElRef, el);\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { context, props, state, rootElRef } = this;\n let { options, dateEnv } = context;\n let { date, dateProfile } = props;\n // TODO: memoize this?\n const isMonthStart = props.showDayNumber &&\n shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: this.handleRootEl, elClasses: [\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (createElement(\"div\", { ref: props.innerElRef, className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", style: { minHeight: props.minHeight } },\n props.showWeekNumber && (createElement(WeekNumberContainer, { elTag: \"a\", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (createElement(\"div\", { className: \"fc-daygrid-day-top\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-daygrid-day-number',\n isMonthStart && 'fc-daygrid-month-start',\n ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (\n // for creating correct amount of space (see issue #7162)\n createElement(\"div\", { className: \"fc-daygrid-day-top\", style: { visibility: 'hidden' } },\n createElement(\"a\", { className: \"fc-daygrid-day-number\" }, \"\\u00A0\"))) : undefined,\n createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef },\n props.fgContent,\n createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),\n createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))));\n }\n}\nfunction renderTopInner(props) {\n return props.dayNumberText || createElement(Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n const { start: currentStart, end: currentEnd } = currentRange;\n const currentEndIncl = addMs(currentEnd, -1);\n const currentFirstYear = dateEnv.getYear(currentStart);\n const currentFirstMonth = dateEnv.getMonth(currentStart);\n const currentLastYear = dateEnv.getYear(currentEndIncl);\n const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n // spans more than one month?\n return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&\n Boolean(\n // first date in current view?\n date.valueOf() === currentStart.valueOf() ||\n // a month-start that's within the current range?\n (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));\n}\n\nfunction generateSegKey(seg) {\n return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs, // assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n let hierarchy = new DayGridSegHierarchy((segEntry) => {\n // TODO: more DRY with generateSegUid\n let segUid = segs[segEntry.index].eventRange.instance.instanceId +\n ':' + segEntry.span.start +\n ':' + (segEntry.span.end - 1);\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return segHeights[segUid] || 1;\n });\n hierarchy.allowReslicing = true;\n hierarchy.strictOrder = strictOrder;\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight;\n hierarchy.hiddenConsumes = true;\n }\n else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents;\n }\n else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows;\n hierarchy.hiddenConsumes = true;\n }\n // create segInputs only for segs with known heights\n let segInputs = [];\n let unknownHeightSegs = [];\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let segUid = generateSegUid(seg);\n let eventHeight = segHeights[segUid];\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n });\n }\n else {\n unknownHeightSegs.push(seg);\n }\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let segRects = hierarchy.toRects();\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);\n let moreCnts = [];\n let moreMarginTops = [];\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0);\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index];\n let hiddenSpan = hiddenEntry.span;\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1;\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col]);\n }\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n let singleColPlacements = [];\n let multiColPlacements = [];\n let leftoverMargins = [];\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col];\n // compute all static segs in singlePlacements\n let singlePlacements = [];\n let currentHeight = 0;\n let currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n });\n currentHeight = rect.levelCoord + rect.thickness;\n }\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements = [];\n currentHeight = 0;\n currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n let isFirstCol = rect.span.start === col;\n currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n if (isAbsolute) {\n currentMarginTop += rect.thickness;\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n });\n }\n }\n else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n });\n currentMarginTop = 0;\n }\n }\n singleColPlacements.push(singlePlacements);\n multiColPlacements.push(multiPlacements);\n leftoverMargins.push(currentMarginTop);\n }\n return { singleColPlacements, multiColPlacements, leftoverMargins };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n let rectsByEachCol = [];\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([]);\n }\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect);\n }\n }\n return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg;\n }\n let eventRange = seg.eventRange;\n let origRange = eventRange.range;\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n });\n return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {\n def: eventRange.def,\n ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange,\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });\n}\nclass DayGridSegHierarchy extends SegHierarchy {\n constructor() {\n super(...arguments);\n // config\n this.hiddenConsumes = false;\n // allows us to keep hidden entries in the hierarchy so they take up space\n this.forceHidden = {};\n }\n addSegs(segInputs) {\n const hiddenSegs = super.addSegs(segInputs);\n const { entriesByLevel } = this;\n const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n }\n return hiddenSegs;\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n const { entriesByLevel, forceHidden } = this;\n const { touchingEntry, touchingLevel, touchingLateral } = insertion;\n // the entry that the new insertion is touching must be hidden\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry);\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n // split up the touchingEntry, reinsert it\n const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });\n // reinsert the area that turned into a \"more\" link (so no other entries try to\n // occupy the space) but mark it forced-hidden\n const hiddenEntryId = buildEntryKey(hiddenEntry);\n forceHidden[hiddenEntryId] = true;\n entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(touchingEntry, entry, hiddenEntries);\n }\n else {\n forceHidden[touchingEntryId] = true;\n hiddenEntries.push(touchingEntry);\n }\n }\n }\n // will try to reslice...\n super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n}\n\nclass TableRow extends DateComponent {\n constructor() {\n super(...arguments);\n this.cellElRefs = new RefMap(); // the \n this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n this.rootElRef = createRef();\n this.state = {\n framePositions: null,\n maxContentHeight: null,\n segHeights: {},\n };\n this.handleResize = (isForced) => {\n if (isForced) {\n this.updateSizing(true); // isExternal=true\n }\n };\n }\n render() {\n let { props, state, context } = this;\n let { options } = context;\n let colCnt = props.cells.length;\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n return (createElement(\"tr\", { ref: this.rootElRef, role: \"row\" },\n props.renderIntro && props.renderIntro(),\n props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n createElement(Fragment, null, normalFgNodes),\n createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));\n })));\n }\n componentDidMount() {\n this.updateSizing(true);\n this.context.addResizeHandler(this.handleResize);\n }\n componentDidUpdate(prevProps, prevState) {\n let currentProps = this.props;\n this.updateSizing(!isPropsEqual(prevProps, currentProps));\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n getHighlightSegs() {\n let { props } = this;\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs;\n }\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return props.dateSelectionSegs;\n }\n getMirrorSegs() {\n let { props } = this;\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return [];\n }\n renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n let { context } = this;\n let { eventSelection } = this.props;\n let { framePositions } = this.state;\n let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting;\n let nodes = [];\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement;\n let { instanceId } = seg.eventRange.instance;\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n let isAbsolute = placement.isAbsolute;\n let left = '';\n let right = '';\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0;\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n }\n else {\n left = 0;\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n }\n }\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {\n visibility: isVisible ? '' : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n }\n }\n return nodes;\n }\n renderFillSegs(segs, fillType) {\n let { isRtl } = this.context;\n let { todayRange } = this.props;\n let { framePositions } = this.state;\n let nodes = [];\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n };\n nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n renderFill(fillType)));\n }\n }\n return createElement(Fragment, {}, ...nodes);\n }\n updateSizing(isExternalSizingChange) {\n let { props, state, frameElRefs } = this;\n if (!props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);\n if (frameEls.length) {\n let originEl = this.rootElRef.current;\n let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal\n false);\n if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n this.setState({\n framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n false),\n });\n }\n }\n }\n const oldSegHeights = this.state.segHeights;\n const newSegHeights = this.querySegHeights();\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n });\n }\n }\n querySegHeights() {\n let segElMap = this.segHarnessRefs.currentMap;\n let segHeights = {};\n // get the max height amongst instance segs\n for (let segUid in segElMap) {\n let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n }\n return segHeights;\n }\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key;\n let cellEl = this.cellElRefs.currentMap[firstKey];\n let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n }\n getCellEls() {\n let elMap = this.cellElRefs.currentMap;\n return this.props.cells.map((cell) => elMap[cell.key]);\n }\n}\nTableRow.addStateEquality({\n segHeights: isPropsEqual,\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n if (!mirrorSegs.length) {\n return [];\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n return mirrorSegs.map((seg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n let topsByInstanceId = {};\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n }\n }\n return topsByInstanceId;\n}\n\nclass TableRows extends DateComponent {\n constructor() {\n super(...arguments);\n this.splitBusinessHourSegs = memoize(splitSegsByRow);\n this.splitBgEventSegs = memoize(splitSegsByRow);\n this.splitFgEventSegs = memoize(splitSegsByRow);\n this.splitDateSelectionSegs = memoize(splitSegsByRow);\n this.splitEventDrag = memoize(splitInteractionByRow);\n this.splitEventResize = memoize(splitInteractionByRow);\n this.rowRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let rowCnt = props.cells.length;\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n // choose 7 because a month view will have max 6 rows\n let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?\n props.clientWidth / context.options.aspectRatio / 6 :\n null;\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(Fragment, null, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));\n }\n componentDidMount() {\n this.registerInteractiveComponent();\n }\n componentDidUpdate() {\n // for if started with zero cells\n this.registerInteractiveComponent();\n }\n registerInteractiveComponent() {\n if (!this.rootEl) {\n // HACK: need a daygrid wrapper parent to do positioning\n // NOTE: a daygrid resource view w/o resources can have zero cells\n const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n if (rootEl) {\n this.rootEl = rootEl;\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n }\n }\n componentWillUnmount() {\n if (this.rootEl) {\n this.context.unregisterInteractiveComponent(this);\n this.rootEl = null;\n }\n }\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n prepareHits() {\n this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false, true);\n this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false);\n }\n queryHit(positionLeft, positionTop) {\n let { colPositions, rowPositions } = this;\n let col = colPositions.leftToIndex(positionLeft);\n let row = rowPositions.topToIndex(positionTop);\n if (row != null && col != null) {\n let cell = this.props.cells[row][col];\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n };\n }\n return null;\n }\n getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n }\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date;\n let end = addDays(start, 1);\n return { start, end };\n }\n}\nfunction isSegAllDay(seg) {\n return seg.eventRange.def.allDay;\n}\n\nclass Table extends DateComponent {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.needsScrollReset = false;\n }\n render() {\n let { props } = this;\n let { dayMaxEventRows, dayMaxEvents, expandRows } = props;\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false;\n dayMaxEventRows = null;\n dayMaxEvents = null;\n }\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ];\n return (createElement(\"div\", { ref: this.elRef, className: classNames.join(' '), style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(\"table\", { role: \"presentation\", className: \"fc-scrollgrid-sync-table\", style: {\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n } },\n props.colGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));\n }\n componentDidMount() {\n this.requestScrollReset();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.dateProfile !== this.props.dateProfile) {\n this.requestScrollReset();\n }\n else {\n this.flushScrollReset();\n }\n }\n requestScrollReset() {\n this.needsScrollReset = true;\n this.flushScrollReset();\n }\n flushScrollReset() {\n if (this.needsScrollReset &&\n this.props.clientWidth // sizes computed?\n ) {\n const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n if (subjectEl) {\n const originEl = subjectEl.closest('.fc-daygrid-body');\n const scrollEl = originEl.closest('.fc-scroller');\n const scrollTop = subjectEl.getBoundingClientRect().top -\n originEl.getBoundingClientRect().top;\n scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border\n }\n this.needsScrollReset = false;\n }\n }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n let el;\n if (dateProfile.currentRangeUnit.match(/year|month/)) {\n el = containerEl.querySelector(`[data-date=\"${formatIsoMonthStr(dateProfile.currentDate)}-01\"]`);\n // even if view is month-based, first-of-month might be hidden...\n }\n if (!el) {\n el = containerEl.querySelector(`[data-date=\"${formatDayString(dateProfile.currentDate)}\"]`);\n // could still be hidden if an interior-view hidden day\n }\n return el;\n}\n\nclass DayTableSlicer extends Slicer {\n constructor() {\n super(...arguments);\n this.forceDayIfListItem = true;\n }\n sliceRange(dateRange, dayTableModel) {\n return dayTableModel.sliceRange(dateRange);\n }\n}\n\nclass DayTable extends DateComponent {\n constructor() {\n super(...arguments);\n this.slicer = new DayTableSlicer();\n this.tableRef = createRef();\n }\n render() {\n let { props, context } = this;\n return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n }\n}\n\nclass DayTableView extends TableView {\n constructor() {\n super(...arguments);\n this.buildDayTableModel = memoize(buildDayTableModel);\n this.headerRef = createRef();\n this.tableRef = createRef();\n // can't override any lifecycle methods from parent\n }\n render() {\n let { options, dateProfileGenerator } = this.context;\n let { props } = this;\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent);\n }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nclass TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n let { props } = this;\n return buildDayTableRenderRange({\n currentRange: renderRange,\n snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n fixedWeekCount: props.fixedWeekCount,\n dateEnv: props.dateEnv,\n });\n }\n}\nfunction buildDayTableRenderRange(props) {\n let { dateEnv, currentRange } = props;\n let { start, end } = currentRange;\n let endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (props.snapToWeek) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (props.fixedWeekCount) {\n // TODO: instead of these date-math gymnastics (for multimonth view),\n // compute dateprofiles of all months, then use start of first and end of last.\n let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));\n let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(lastMonthRenderStart, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start, end };\n}\n\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\ninjectStyles(css_248z);\n\nexport { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayGridView as DayTableView, TableDateProfileGenerator } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/daygrid',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n fixedWeekCount: true,\n },\n dayGridYear: {\n type: 'dayGrid',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { config, Emitter, elementClosest, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, ElementDragging, preventSelection, preventContextMenu, allowSelection, allowContextMenu, computeRect, getClippingParents, pointInsideRect, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, isDateSpansEqual, Interaction, interactionSettingsToStore, isDateSelectionValid, enableCursor, disableCursor, triggerDateSelect, compareNumbers, getElSeg, getRelevantEvents, EventImpl, createEmptyEventStore, applyMutationToEventStore, isInteractionValid, buildEventApis, interactionSettingsStore, startOfDay, diffDates, createDuration, getEventTargetViaRoot, identity, eventTupleToStore, parseDragMeta, elementMatches, refineEventDef, parseEventDef, getDefaultEventEnd, createEventInstance, BASE_OPTION_DEFAULTS } from '@fullcalendar/core/internal.js';\n\nconfig.touchMouseIgnoreWait = 500;\nlet ignoreMouseDepth = 0;\nlet listenerCnt = 0;\nlet isWindowTouchMoveCancelled = false;\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nclass PointerDragging {\n constructor(containerEl) {\n this.subjectEl = null;\n // options that can be directly assigned by caller\n this.selector = ''; // will cause subjectEl in all emitted events to be this element\n this.handleSelector = '';\n this.shouldIgnoreMove = false;\n this.shouldWatchScroll = true; // for simulating pointermove on scroll\n // internal states\n this.isDragging = false;\n this.isTouchDragging = false;\n this.wasTouchScroll = false;\n // Mouse\n // ----------------------------------------------------------------------------------------------------\n this.handleMouseDown = (ev) => {\n if (!this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n this.tryStart(ev)) {\n let pev = this.createEventFromMouse(ev, true);\n this.emitter.trigger('pointerdown', pev);\n this.initScrollWatch(pev);\n if (!this.shouldIgnoreMove) {\n document.addEventListener('mousemove', this.handleMouseMove);\n }\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n };\n this.handleMouseMove = (ev) => {\n let pev = this.createEventFromMouse(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleMouseUp = (ev) => {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n this.emitter.trigger('pointerup', this.createEventFromMouse(ev));\n this.cleanup(); // call last so that pointerup has access to props\n };\n // Touch\n // ----------------------------------------------------------------------------------------------------\n this.handleTouchStart = (ev) => {\n if (this.tryStart(ev)) {\n this.isTouchDragging = true;\n let pev = this.createEventFromTouch(ev, true);\n this.emitter.trigger('pointerdown', pev);\n this.initScrollWatch(pev);\n // unlike mouse, need to attach to target, not document\n // https://stackoverflow.com/a/45760014\n let targetEl = ev.target;\n if (!this.shouldIgnoreMove) {\n targetEl.addEventListener('touchmove', this.handleTouchMove);\n }\n targetEl.addEventListener('touchend', this.handleTouchEnd);\n targetEl.addEventListener('touchcancel', this.handleTouchEnd); // treat it as a touch end\n // attach a handler to get called when ANY scroll action happens on the page.\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n // http://stackoverflow.com/a/32954565/96342\n window.addEventListener('scroll', this.handleTouchScroll, true);\n }\n };\n this.handleTouchMove = (ev) => {\n let pev = this.createEventFromTouch(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleTouchEnd = (ev) => {\n if (this.isDragging) { // done to guard against touchend followed by touchcancel\n let targetEl = ev.target;\n targetEl.removeEventListener('touchmove', this.handleTouchMove);\n targetEl.removeEventListener('touchend', this.handleTouchEnd);\n targetEl.removeEventListener('touchcancel', this.handleTouchEnd);\n window.removeEventListener('scroll', this.handleTouchScroll, true); // useCaptured=true\n this.emitter.trigger('pointerup', this.createEventFromTouch(ev));\n this.cleanup(); // call last so that pointerup has access to props\n this.isTouchDragging = false;\n startIgnoringMouse();\n }\n };\n this.handleTouchScroll = () => {\n this.wasTouchScroll = true;\n };\n this.handleScroll = (ev) => {\n if (!this.shouldIgnoreMove) {\n let pageX = (window.scrollX - this.prevScrollX) + this.prevPageX;\n let pageY = (window.scrollY - this.prevScrollY) + this.prevPageY;\n this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: this.isTouchDragging,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX: pageX - this.origPageX,\n deltaY: pageY - this.origPageY,\n });\n }\n };\n this.containerEl = containerEl;\n this.emitter = new Emitter();\n containerEl.addEventListener('mousedown', this.handleMouseDown);\n containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerCreated();\n }\n destroy() {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerDestroyed();\n }\n tryStart(ev) {\n let subjectEl = this.querySubjectEl(ev);\n let downEl = ev.target;\n if (subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n this.subjectEl = subjectEl;\n this.isDragging = true; // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false;\n return true;\n }\n return false;\n }\n cleanup() {\n isWindowTouchMoveCancelled = false;\n this.isDragging = false;\n this.subjectEl = null;\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch();\n }\n querySubjectEl(ev) {\n if (this.selector) {\n return elementClosest(ev.target, this.selector);\n }\n return this.containerEl;\n }\n shouldIgnoreMouse() {\n return ignoreMouseDepth || this.isTouchDragging;\n }\n // can be called by user of this class, to cancel touch-based scrolling for the current drag\n cancelTouchScroll() {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true;\n }\n }\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n initScrollWatch(ev) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev);\n window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n }\n }\n recordCoords(ev) {\n if (this.shouldWatchScroll) {\n this.prevPageX = ev.pageX;\n this.prevPageY = ev.pageY;\n this.prevScrollX = window.scrollX;\n this.prevScrollY = window.scrollY;\n }\n }\n destroyScrollWatch() {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n }\n }\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n createEventFromMouse(ev, isFirst) {\n let deltaX = 0;\n let deltaY = 0;\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = ev.pageX;\n this.origPageY = ev.pageY;\n }\n else {\n deltaX = ev.pageX - this.origPageX;\n deltaY = ev.pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: false,\n subjectEl: this.subjectEl,\n pageX: ev.pageX,\n pageY: ev.pageY,\n deltaX,\n deltaY,\n };\n }\n createEventFromTouch(ev, isFirst) {\n let touches = ev.touches;\n let pageX;\n let pageY;\n let deltaX = 0;\n let deltaY = 0;\n // if touch coords available, prefer,\n // because FF would give bad ev.pageX ev.pageY\n if (touches && touches.length) {\n pageX = touches[0].pageX;\n pageY = touches[0].pageY;\n }\n else {\n pageX = ev.pageX;\n pageY = ev.pageY;\n }\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = pageX;\n this.origPageY = pageY;\n }\n else {\n deltaX = pageX - this.origPageX;\n deltaY = pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: true,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX,\n deltaY,\n };\n }\n}\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev) {\n return ev.button === 0 && !ev.ctrlKey;\n}\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\nfunction startIgnoringMouse() {\n ignoreMouseDepth += 1;\n setTimeout(() => {\n ignoreMouseDepth -= 1;\n }, config.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n listenerCnt += 1;\n if (listenerCnt === 1) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction listenerDestroyed() {\n listenerCnt -= 1;\n if (!listenerCnt) {\n window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction onWindowTouchMove(ev) {\n if (isWindowTouchMoveCancelled) {\n ev.preventDefault();\n }\n}\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nclass ElementMirror {\n constructor() {\n this.isVisible = false; // must be explicitly enabled\n this.sourceEl = null;\n this.mirrorEl = null;\n this.sourceElRect = null; // screen coords relative to viewport\n // options that can be set directly by caller\n this.parentNode = document.body; // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues\n this.zIndex = 9999;\n this.revertDuration = 0;\n }\n start(sourceEl, pageX, pageY) {\n this.sourceEl = sourceEl;\n this.sourceElRect = this.sourceEl.getBoundingClientRect();\n this.origScreenX = pageX - window.scrollX;\n this.origScreenY = pageY - window.scrollY;\n this.deltaX = 0;\n this.deltaY = 0;\n this.updateElPosition();\n }\n handleMove(pageX, pageY) {\n this.deltaX = (pageX - window.scrollX) - this.origScreenX;\n this.deltaY = (pageY - window.scrollY) - this.origScreenY;\n this.updateElPosition();\n }\n // can be called before start\n setIsVisible(bool) {\n if (bool) {\n if (!this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = '';\n }\n this.isVisible = bool; // needs to happen before updateElPosition\n this.updateElPosition(); // because was not updating the position while invisible\n }\n }\n else if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none';\n }\n this.isVisible = bool;\n }\n }\n // always async\n stop(needsRevertAnimation, callback) {\n let done = () => {\n this.cleanup();\n callback();\n };\n if (needsRevertAnimation &&\n this.mirrorEl &&\n this.isVisible &&\n this.revertDuration && // if 0, transition won't work\n (this.deltaX || this.deltaY) // if same coords, transition won't work\n ) {\n this.doRevertAnimation(done, this.revertDuration);\n }\n else {\n setTimeout(done, 0);\n }\n }\n doRevertAnimation(callback, revertDuration) {\n let mirrorEl = this.mirrorEl;\n let finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n mirrorEl.style.transition =\n 'top ' + revertDuration + 'ms,' +\n 'left ' + revertDuration + 'ms';\n applyStyle(mirrorEl, {\n left: finalSourceElRect.left,\n top: finalSourceElRect.top,\n });\n whenTransitionDone(mirrorEl, () => {\n mirrorEl.style.transition = '';\n callback();\n });\n }\n cleanup() {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl);\n this.mirrorEl = null;\n }\n this.sourceEl = null;\n }\n updateElPosition() {\n if (this.sourceEl && this.isVisible) {\n applyStyle(this.getMirrorEl(), {\n left: this.sourceElRect.left + this.deltaX,\n top: this.sourceElRect.top + this.deltaY,\n });\n }\n }\n getMirrorEl() {\n let sourceElRect = this.sourceElRect;\n let mirrorEl = this.mirrorEl;\n if (!mirrorEl) {\n mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n // we don't want long taps or any mouse interaction causing selection/menus.\n // would use preventSelection(), but that prevents selectstart, causing problems.\n mirrorEl.style.userSelect = 'none';\n mirrorEl.style.webkitUserSelect = 'none';\n mirrorEl.style.pointerEvents = 'none';\n mirrorEl.classList.add('fc-event-dragging');\n applyStyle(mirrorEl, {\n position: 'fixed',\n zIndex: this.zIndex,\n visibility: '',\n boxSizing: 'border-box',\n width: sourceElRect.right - sourceElRect.left,\n height: sourceElRect.bottom - sourceElRect.top,\n right: 'auto',\n bottom: 'auto',\n margin: 0,\n });\n this.parentNode.appendChild(mirrorEl);\n }\n return mirrorEl;\n }\n}\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nclass ScrollGeomCache extends ScrollController {\n constructor(scrollController, doesListening) {\n super();\n this.handleScroll = () => {\n this.scrollTop = this.scrollController.getScrollTop();\n this.scrollLeft = this.scrollController.getScrollLeft();\n this.handleScrollChange();\n };\n this.scrollController = scrollController;\n this.doesListening = doesListening;\n this.scrollTop = this.origScrollTop = scrollController.getScrollTop();\n this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft();\n this.scrollWidth = scrollController.getScrollWidth();\n this.scrollHeight = scrollController.getScrollHeight();\n this.clientWidth = scrollController.getClientWidth();\n this.clientHeight = scrollController.getClientHeight();\n this.clientRect = this.computeClientRect(); // do last in case it needs cached values\n if (this.doesListening) {\n this.getEventTarget().addEventListener('scroll', this.handleScroll);\n }\n }\n destroy() {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n }\n }\n getScrollTop() {\n return this.scrollTop;\n }\n getScrollLeft() {\n return this.scrollLeft;\n }\n setScrollTop(top) {\n this.scrollController.setScrollTop(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n this.handleScrollChange();\n }\n }\n setScrollLeft(top) {\n this.scrollController.setScrollLeft(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n this.handleScrollChange();\n }\n }\n getClientWidth() {\n return this.clientWidth;\n }\n getClientHeight() {\n return this.clientHeight;\n }\n getScrollWidth() {\n return this.scrollWidth;\n }\n getScrollHeight() {\n return this.scrollHeight;\n }\n handleScrollChange() {\n }\n}\n\nclass ElementScrollGeomCache extends ScrollGeomCache {\n constructor(el, doesListening) {\n super(new ElementScrollController(el), doesListening);\n }\n getEventTarget() {\n return this.scrollController.el;\n }\n computeClientRect() {\n return computeInnerRect(this.scrollController.el);\n }\n}\n\nclass WindowScrollGeomCache extends ScrollGeomCache {\n constructor(doesListening) {\n super(new WindowScrollController(), doesListening);\n }\n getEventTarget() {\n return window;\n }\n computeClientRect() {\n return {\n left: this.scrollLeft,\n right: this.scrollLeft + this.clientWidth,\n top: this.scrollTop,\n bottom: this.scrollTop + this.clientHeight,\n };\n }\n // the window is the only scroll object that changes it's rectangle relative\n // to the document's topleft as it scrolls\n handleScrollChange() {\n this.clientRect = this.computeClientRect();\n }\n}\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nconst getTime = typeof performance === 'function' ? performance.now : Date.now;\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nclass AutoScroller {\n constructor() {\n // options that can be set by caller\n this.isEnabled = true;\n this.scrollQuery = [window, '.fc-scroller'];\n this.edgeThreshold = 50; // pixels\n this.maxVelocity = 300; // pixels per second\n // internal state\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.isAnimating = false;\n this.scrollCaches = null;\n // protect against the initial pointerdown being too close to an edge and starting the scroll\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.animate = () => {\n if (this.isAnimating) { // wasn't cancelled between animation calls\n let edge = this.computeBestEdge(this.pointerScreenX + window.scrollX, this.pointerScreenY + window.scrollY);\n if (edge) {\n let now = getTime();\n this.handleSide(edge, (now - this.msSinceRequest) / 1000);\n this.requestAnimation(now);\n }\n else {\n this.isAnimating = false; // will stop animation\n }\n }\n };\n }\n start(pageX, pageY, scrollStartEl) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches(scrollStartEl);\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.handleMove(pageX, pageY);\n }\n }\n handleMove(pageX, pageY) {\n if (this.isEnabled) {\n let pointerScreenX = pageX - window.scrollX;\n let pointerScreenY = pageY - window.scrollY;\n let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n if (yDelta < 0) {\n this.everMovedUp = true;\n }\n else if (yDelta > 0) {\n this.everMovedDown = true;\n }\n if (xDelta < 0) {\n this.everMovedLeft = true;\n }\n else if (xDelta > 0) {\n this.everMovedRight = true;\n }\n this.pointerScreenX = pointerScreenX;\n this.pointerScreenY = pointerScreenY;\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.requestAnimation(getTime());\n }\n }\n }\n stop() {\n if (this.isEnabled) {\n this.isAnimating = false; // will stop animation\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n this.scrollCaches = null;\n }\n }\n requestAnimation(now) {\n this.msSinceRequest = now;\n requestAnimationFrame(this.animate);\n }\n handleSide(edge, seconds) {\n let { scrollCache } = edge;\n let { edgeThreshold } = this;\n let invDistance = edgeThreshold - edge.distance;\n let velocity = // the closer to the edge, the faster we scroll\n ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic\n this.maxVelocity * seconds;\n let sign = 1;\n switch (edge.name) {\n case 'left':\n sign = -1;\n // falls through\n case 'right':\n scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n break;\n case 'top':\n sign = -1;\n // falls through\n case 'bottom':\n scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n break;\n }\n }\n // left/top are relative to document topleft\n computeBestEdge(left, top) {\n let { edgeThreshold } = this;\n let bestSide = null;\n let scrollCaches = this.scrollCaches || [];\n for (let scrollCache of scrollCaches) {\n let rect = scrollCache.clientRect;\n let leftDist = left - rect.left;\n let rightDist = rect.right - left;\n let topDist = top - rect.top;\n let bottomDist = rect.bottom - top;\n // completely within the rect?\n if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n (!bestSide || bestSide.distance > topDist)) {\n bestSide = { scrollCache, name: 'top', distance: topDist };\n }\n if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)) {\n bestSide = { scrollCache, name: 'bottom', distance: bottomDist };\n }\n /*\n TODO: fix broken RTL scrolling. canScrollLeft always returning false\n https://github.com/fullcalendar/fullcalendar/issues/4837\n */\n if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)) {\n bestSide = { scrollCache, name: 'left', distance: leftDist };\n }\n if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)) {\n bestSide = { scrollCache, name: 'right', distance: rightDist };\n }\n }\n }\n return bestSide;\n }\n buildCaches(scrollStartEl) {\n return this.queryScrollEls(scrollStartEl).map((el) => {\n if (el === window) {\n return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n }\n return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n });\n }\n queryScrollEls(scrollStartEl) {\n let els = [];\n for (let query of this.scrollQuery) {\n if (typeof query === 'object') {\n els.push(query);\n }\n else {\n /*\n TODO: in the future, always have auto-scroll happen on element where current Hit came from\n Ticket: https://github.com/fullcalendar/fullcalendar/issues/4593\n */\n els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));\n }\n }\n return els;\n }\n}\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nclass FeaturefulElementDragging extends ElementDragging {\n constructor(containerEl, selector) {\n super(containerEl);\n this.containerEl = containerEl;\n // options that can be directly set by caller\n // the caller can also set the PointerDragging's options as well\n this.delay = null;\n this.minDistance = 0;\n this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n this.mirrorNeedsRevert = false;\n this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n this.delayTimeoutId = null;\n this.onPointerDown = (ev) => {\n if (!this.isDragging) { // so new drag doesn't happen while revert animation is going\n this.isInteracting = true;\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n preventSelection(document.body);\n preventContextMenu(document.body);\n // prevent links from being visited if there's an eventual drag.\n // also prevents selection in older browsers (maybe?).\n // not necessary for touch, besides, browser would complain about passiveness.\n if (!ev.isTouch) {\n ev.origEvent.preventDefault();\n }\n this.emitter.trigger('pointerdown', ev);\n if (this.isInteracting && // not destroyed via pointerdown handler\n !this.pointer.shouldIgnoreMove) {\n // actions related to initiating dragstart+dragmove+dragend...\n this.mirror.setIsVisible(false); // reset. caller must set-visible\n this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n this.startDelay(ev);\n if (!this.minDistance) {\n this.handleDistanceSurpassed(ev);\n }\n }\n }\n };\n this.onPointerMove = (ev) => {\n if (this.isInteracting) {\n this.emitter.trigger('pointermove', ev);\n if (!this.isDistanceSurpassed) {\n let minDistance = this.minDistance;\n let distanceSq; // current distance from the origin, squared\n let { deltaX, deltaY } = ev;\n distanceSq = deltaX * deltaX + deltaY * deltaY;\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n this.handleDistanceSurpassed(ev);\n }\n }\n if (this.isDragging) {\n // a real pointer move? (not one simulated by scrolling)\n if (ev.origEvent.type !== 'scroll') {\n this.mirror.handleMove(ev.pageX, ev.pageY);\n this.autoScroller.handleMove(ev.pageX, ev.pageY);\n }\n this.emitter.trigger('dragmove', ev);\n }\n }\n };\n this.onPointerUp = (ev) => {\n if (this.isInteracting) {\n this.isInteracting = false;\n allowSelection(document.body);\n allowContextMenu(document.body);\n this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n if (this.isDragging) {\n this.autoScroller.stop();\n this.tryStopDrag(ev); // which will stop the mirror\n }\n if (this.delayTimeoutId) {\n clearTimeout(this.delayTimeoutId);\n this.delayTimeoutId = null;\n }\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.onPointerDown);\n pointer.emitter.on('pointermove', this.onPointerMove);\n pointer.emitter.on('pointerup', this.onPointerUp);\n if (selector) {\n pointer.selector = selector;\n }\n this.mirror = new ElementMirror();\n this.autoScroller = new AutoScroller();\n }\n destroy() {\n this.pointer.destroy();\n // HACK: simulate a pointer-up to end the current drag\n // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n this.onPointerUp({});\n }\n startDelay(ev) {\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(() => {\n this.delayTimeoutId = null;\n this.handleDelayEnd(ev);\n }, this.delay); // not assignable to number!\n }\n else {\n this.handleDelayEnd(ev);\n }\n }\n handleDelayEnd(ev) {\n this.isDelayEnded = true;\n this.tryStartDrag(ev);\n }\n handleDistanceSurpassed(ev) {\n this.isDistanceSurpassed = true;\n this.tryStartDrag(ev);\n }\n tryStartDrag(ev) {\n if (this.isDelayEnded && this.isDistanceSurpassed) {\n if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n this.isDragging = true;\n this.mirrorNeedsRevert = false;\n this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl);\n this.emitter.trigger('dragstart', ev);\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll();\n }\n }\n }\n }\n tryStopDrag(ev) {\n // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n // that come from the document to fire beforehand. much more convenient this way.\n this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));\n }\n stopDrag(ev) {\n this.isDragging = false;\n this.emitter.trigger('dragend', ev);\n }\n // fill in the implementations...\n setIgnoreMove(bool) {\n this.pointer.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n this.mirror.setIsVisible(bool);\n }\n setMirrorNeedsRevert(bool) {\n this.mirrorNeedsRevert = bool;\n }\n setAutoScrollEnabled(bool) {\n this.autoScroller.isEnabled = bool;\n }\n}\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nclass OffsetTracker {\n constructor(el) {\n this.el = el;\n this.origRect = computeRect(el);\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map((scrollEl) => new ElementScrollGeomCache(scrollEl, true));\n }\n destroy() {\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n }\n computeLeft() {\n let left = this.origRect.left;\n for (let scrollCache of this.scrollCaches) {\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n }\n return left;\n }\n computeTop() {\n let top = this.origRect.top;\n for (let scrollCache of this.scrollCaches) {\n top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n }\n return top;\n }\n isWithinClipping(pageX, pageY) {\n let point = { left: pageX, top: pageY };\n for (let scrollCache of this.scrollCaches) {\n if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)) {\n return false;\n }\n }\n return true;\n }\n}\n// certain clipping containers should never constrain interactions, like and \n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n let tagName = node.tagName;\n return tagName === 'HTML' || tagName === 'BODY';\n}\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nclass HitDragging {\n constructor(dragging, droppableStore) {\n // options that can be set by caller\n this.useSubjectCenter = false;\n this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n this.disablePointCheck = false;\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null;\n this.prepareHits();\n this.processFirstCoord(ev);\n if (this.initialHit || !this.requireInitial) {\n dragging.setIgnoreMove(false);\n // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n this.emitter.trigger('pointerdown', ev);\n }\n else {\n dragging.setIgnoreMove(true);\n }\n };\n this.handleDragStart = (ev) => {\n this.emitter.trigger('dragstart', ev);\n this.handleMove(ev, true); // force = fire even if initially null\n };\n this.handleDragMove = (ev) => {\n this.emitter.trigger('dragmove', ev);\n this.handleMove(ev);\n };\n this.handlePointerUp = (ev) => {\n this.releaseHits();\n this.emitter.trigger('pointerup', ev);\n };\n this.handleDragEnd = (ev) => {\n if (this.movingHit) {\n this.emitter.trigger('hitupdate', null, true, ev);\n }\n this.finalHit = this.movingHit;\n this.movingHit = null;\n this.emitter.trigger('dragend', ev);\n };\n this.droppableStore = droppableStore;\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n dragging.emitter.on('dragmove', this.handleDragMove);\n dragging.emitter.on('pointerup', this.handlePointerUp);\n dragging.emitter.on('dragend', this.handleDragEnd);\n this.dragging = dragging;\n this.emitter = new Emitter();\n }\n // sets initialHit\n // sets coordAdjust\n processFirstCoord(ev) {\n let origPoint = { left: ev.pageX, top: ev.pageY };\n let adjustedPoint = origPoint;\n let subjectEl = ev.subjectEl;\n let subjectRect;\n if (subjectEl instanceof HTMLElement) { // i.e. not a Document/ShadowRoot\n subjectRect = computeRect(subjectEl);\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n }\n let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n let slicedSubjectRect = intersectRects(subjectRect, initialHit.rect);\n if (slicedSubjectRect) {\n adjustedPoint = getRectCenter(slicedSubjectRect);\n }\n }\n this.coordAdjust = diffPoints(adjustedPoint, origPoint);\n }\n else {\n this.coordAdjust = { left: 0, top: 0 };\n }\n }\n handleMove(ev, forceHandle) {\n let hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n this.movingHit = hit;\n this.emitter.trigger('hitupdate', hit, false, ev);\n }\n }\n prepareHits() {\n this.offsetTrackers = mapHash(this.droppableStore, (interactionSettings) => {\n interactionSettings.component.prepareHits();\n return new OffsetTracker(interactionSettings.el);\n });\n }\n releaseHits() {\n let { offsetTrackers } = this;\n for (let id in offsetTrackers) {\n offsetTrackers[id].destroy();\n }\n this.offsetTrackers = {};\n }\n queryHitForOffset(offsetLeft, offsetTop) {\n let { droppableStore, offsetTrackers } = this;\n let bestHit = null;\n for (let id in droppableStore) {\n let component = droppableStore[id].component;\n let offsetTracker = offsetTrackers[id];\n if (offsetTracker && // wasn't destroyed mid-drag\n offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n let originLeft = offsetTracker.computeLeft();\n let originTop = offsetTracker.computeTop();\n let positionLeft = offsetLeft - originLeft;\n let positionTop = offsetTop - originTop;\n let { origRect } = offsetTracker;\n let width = origRect.right - origRect.left;\n let height = origRect.bottom - origRect.top;\n if (\n // must be within the element's bounds\n positionLeft >= 0 && positionLeft < width &&\n positionTop >= 0 && positionTop < height) {\n let hit = component.queryHit(positionLeft, positionTop, width, height);\n if (hit && (\n // make sure the hit is within activeRange, meaning it's not a dead cell\n rangeContainsRange(hit.dateProfile.activeRange, hit.dateSpan.range)) &&\n // Ensure the component we are querying for the hit is accessibly my the pointer\n // Prevents obscured calendars (ex: under a modal dialog) from accepting hit\n // https://github.com/fullcalendar/fullcalendar/issues/5026\n (this.disablePointCheck ||\n offsetTracker.el.contains(document.elementFromPoint(\n // add-back origins to get coordinate relative to top-left of window viewport\n positionLeft + originLeft - window.scrollX, positionTop + originTop - window.scrollY))) &&\n (!bestHit || hit.layer > bestHit.layer)) {\n hit.componentId = id;\n hit.context = component.context;\n // TODO: better way to re-orient rectangle\n hit.rect.left += originLeft;\n hit.rect.right += originLeft;\n hit.rect.top += originTop;\n hit.rect.bottom += originTop;\n bestHit = hit;\n }\n }\n }\n }\n return bestHit;\n }\n}\nfunction isHitsEqual(hit0, hit1) {\n if (!hit0 && !hit1) {\n return true;\n }\n if (Boolean(hit0) !== Boolean(hit1)) {\n return false;\n }\n return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan);\n}\n\nfunction buildDatePointApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.datePointTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDatePointApi(dateSpan, context.dateEnv));\n return props;\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay,\n };\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nclass DateClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handlePointerDown = (pev) => {\n let { dragging } = this;\n let downEl = pev.origEvent.target;\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(!this.component.isValidDateDownEl(downEl));\n };\n // won't even fire if moving was ignored\n this.handleDragEnd = (ev) => {\n let { component } = this;\n let { pointer } = this.dragging;\n if (!pointer.wasTouchScroll) {\n let { initialHit, finalHit } = this.hitDragging;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n let { context } = component;\n let arg = Object.assign(Object.assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), { dayEl: initialHit.dayEl, jsEvent: ev.origEvent, view: context.viewApi || context.calendarApi.view });\n context.emitter.trigger('dateClick', arg);\n }\n }\n };\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n this.dragging = new FeaturefulElementDragging(settings.el);\n this.dragging.autoScroller.isEnabled = false;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nclass DateSelecting extends Interaction {\n constructor(settings) {\n super(settings);\n this.dragSelection = null;\n this.handlePointerDown = (ev) => {\n let { component, dragging } = this;\n let { options } = component.context;\n let canSelect = options.selectable &&\n component.isValidDateDownEl(ev.origEvent.target);\n // don't bother to watch expensive moves if component won't do selection\n dragging.setIgnoreMove(!canSelect);\n // if touch, require user to hold down\n dragging.delay = ev.isTouch ? getComponentTouchDelay$1(component) : null;\n };\n this.handleDragStart = (ev) => {\n this.component.context.calendarApi.unselect(ev); // unselect previous selections\n };\n this.handleHitUpdate = (hit, isFinal) => {\n let { context } = this.component;\n let dragSelection = null;\n let isInvalid = false;\n if (hit) {\n let initialHit = this.hitDragging.initialHit;\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n dragSelection = joinHitsIntoSelection(initialHit, hit, context.pluginHooks.dateSelectionTransformers);\n }\n if (!dragSelection || !isDateSelectionValid(dragSelection, hit.dateProfile, context)) {\n isInvalid = true;\n dragSelection = null;\n }\n }\n if (dragSelection) {\n context.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n }\n else if (!isFinal) { // only unselect if moved away while dragging\n context.dispatch({ type: 'UNSELECT_DATES' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n }\n };\n this.handlePointerUp = (pev) => {\n if (this.dragSelection) {\n // selection is already rendered, so just need to report selection\n triggerDateSelect(this.dragSelection, pev, this.component.context);\n this.dragSelection = null;\n }\n };\n let { component } = settings;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = options.selectMinDistance || 0;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\nfunction getComponentTouchDelay$1(component) {\n let { options } = component.context;\n let delay = options.selectLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end,\n ];\n ms.sort(compareNumbers);\n let props = {};\n for (let transformer of dateSelectionTransformers) {\n let res = transformer(hit0, hit1);\n if (res === false) {\n return null;\n }\n if (res) {\n Object.assign(props, res);\n }\n }\n props.range = { start: ms[0], end: ms[3] };\n props.allDay = dateSpan0.allDay;\n return props;\n}\n\nclass EventDragging extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.subjectEl = null;\n this.subjectSeg = null; // the seg being selected/dragged\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null; // the events being dragged\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let origTarget = ev.origEvent.target;\n let { component, dragging } = this;\n let { mirror } = dragging;\n let { options } = component.context;\n let initialContext = component.context;\n this.subjectEl = ev.subjectEl;\n let subjectSeg = this.subjectSeg = getElSeg(ev.subjectEl);\n let eventRange = this.eventRange = subjectSeg.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n this.relevantEvents = getRelevantEvents(initialContext.getCurrentData().eventStore, eventInstanceId);\n dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n dragging.delay =\n // only do a touch delay if touch and this event hasn't been selected yet\n (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n getComponentTouchDelay(component) :\n null;\n if (options.fixedMirrorParent) {\n mirror.parentNode = options.fixedMirrorParent;\n }\n else {\n mirror.parentNode = elementClosest(origTarget, '.fc');\n }\n mirror.revertDuration = options.dragRevertDuration;\n let isValid = component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-event-resizer'); // NOT on a resizer\n dragging.setIgnoreMove(!isValid);\n // disable dragging for elements that are resizable (ie, selectable)\n // but are not draggable\n this.isDragging = isValid &&\n ev.subjectEl.classList.contains('fc-event-draggable');\n };\n this.handleDragStart = (ev) => {\n let initialContext = this.component.context;\n let eventRange = this.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== this.component.props.eventSelection) {\n initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId });\n }\n }\n else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialContext.dispatch({ type: 'UNSELECT_EVENT' });\n }\n if (this.isDragging) {\n initialContext.calendarApi.unselect(ev); // unselect *date* selection\n initialContext.emitter.trigger('eventDragStart', {\n el: this.subjectEl,\n event: new EventImpl(initialContext, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: initialContext.viewApi,\n });\n }\n };\n this.handleHitUpdate = (hit, isFinal) => {\n if (!this.isDragging) {\n return;\n }\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let initialContext = this.component.context;\n // states based on new hit\n let receivingContext = null;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n receivingContext = hit.context;\n let receivingOptions = receivingContext.options;\n if (initialContext === receivingContext ||\n (receivingOptions.editable && receivingOptions.droppable)) {\n mutation = computeEventMutation(initialHit, hit, this.eventRange.instance.range.start, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, receivingContext)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = createEmptyEventStore();\n }\n }\n }\n else {\n receivingContext = null;\n }\n }\n this.displayDrag(receivingContext, interaction);\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (initialContext === receivingContext && // TODO: write test for this\n isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.dragging.setMirrorNeedsRevert(!mutation);\n // render the mirror if no already-rendered mirror\n // TODO: wish we could somehow wait for dispatch to guarantee render\n this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));\n // assign states based on new hit\n this.receivingContext = receivingContext;\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handlePointerUp = () => {\n if (!this.isDragging) {\n this.cleanup(); // because handleDragEnd won't fire\n }\n };\n this.handleDragEnd = (ev) => {\n if (this.isDragging) {\n let initialContext = this.component.context;\n let initialView = initialContext.viewApi;\n let { receivingContext, validMutation } = this;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(initialContext, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n let { finalHit } = this.hitDragging;\n this.clearDrag(); // must happen after revert animation\n initialContext.emitter.trigger('eventDragStop', {\n el: this.subjectEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: initialView,\n });\n if (validMutation) {\n // dropped within same calendar\n if (receivingContext === initialContext) {\n let updatedEventApi = new EventImpl(initialContext, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change data\n });\n },\n };\n let transformed = {};\n for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {\n Object.assign(transformed, transformer(validMutation, initialContext));\n }\n initialContext.emitter.trigger('eventDrop', Object.assign(Object.assign(Object.assign({}, eventChangeArg), transformed), { el: ev.subjectEl, delta: validMutation.datesDelta, jsEvent: ev.origEvent, view: initialView }));\n initialContext.emitter.trigger('eventChange', eventChangeArg);\n // dropped in different calendar\n }\n else if (receivingContext) {\n let eventRemoveArg = {\n event: eventApi,\n relatedEvents: buildEventApis(relevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n },\n };\n initialContext.emitter.trigger('eventLeave', Object.assign(Object.assign({}, eventRemoveArg), { draggedEl: ev.subjectEl, view: initialView }));\n initialContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: relevantEvents,\n });\n initialContext.emitter.trigger('eventRemove', eventRemoveArg);\n let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId];\n let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId];\n let addedEventApi = new EventImpl(receivingContext, addedEventDef, addedEventInstance);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventAddArg = {\n event: addedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, receivingContext, addedEventInstance),\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n },\n };\n receivingContext.emitter.trigger('eventAdd', eventAddArg);\n if (ev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId,\n });\n }\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.context.viewApi }));\n receivingContext.emitter.trigger('eventReceive', Object.assign(Object.assign({}, eventAddArg), { draggedEl: ev.subjectEl, view: finalHit.context.viewApi }));\n }\n }\n else {\n initialContext.emitter.trigger('_noEventDrop');\n }\n }\n this.cleanup();\n };\n let { component } = this;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsStore);\n hitDragging.useSubjectCenter = settings.useEventCenter;\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n // render a drag state on the next receivingCalendar\n displayDrag(nextContext, state) {\n let initialContext = this.component.context;\n let prevContext = this.receivingContext;\n // does the previous calendar need to be cleared?\n if (prevContext && prevContext !== nextContext) {\n // does the initial calendar need to be cleared?\n // if so, don't clear all the way. we still need to to hide the affectedEvents\n if (prevContext === initialContext) {\n prevContext.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n },\n });\n // completely clear the old calendar if it wasn't the initial\n }\n else {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n let initialCalendar = this.component.context;\n let { receivingContext } = this;\n if (receivingContext) {\n receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingContext) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n cleanup() {\n this.subjectSeg = null;\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null;\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n }\n}\n// TODO: test this in IE11\n// QUESTION: why do we need it on the resizable???\nEventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';\nfunction computeEventMutation(hit0, hit1, eventInstanceStart, massagers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let date0 = dateSpan0.range.start;\n let date1 = dateSpan1.range.start;\n let standardProps = {};\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay;\n standardProps.hasEnd = hit1.context.options.allDayMaintainDuration;\n if (dateSpan1.allDay) {\n // means date1 is already start-of-day,\n // but date0 needs to be converted\n date0 = startOfDay(eventInstanceStart);\n }\n else {\n // Moving from allDate->timed\n // Doesn't matter where on the event the drag began, mutate the event's start-date to date1\n date0 = eventInstanceStart;\n }\n }\n let delta = diffDates(date0, date1, hit0.context.dateEnv, hit0.componentId === hit1.componentId ?\n hit0.largeUnit :\n null);\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false;\n }\n let mutation = {\n datesDelta: delta,\n standardProps,\n };\n for (let massager of massagers) {\n massager(mutation, hit0, hit1);\n }\n return mutation;\n}\nfunction getComponentTouchDelay(component) {\n let { options } = component.context;\n let delay = options.eventLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\n\nclass EventResizing extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.draggingSegEl = null;\n this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n this.eventRange = null;\n this.relevantEvents = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let { component } = this;\n let segEl = this.querySegEl(ev);\n let seg = getElSeg(segEl);\n let eventRange = this.eventRange = seg.eventRange;\n this.dragging.minDistance = component.context.options.eventDragMinDistance;\n // if touch, need to be working with a selected event\n this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(ev.origEvent.target) ||\n (ev.isTouch && this.component.props.eventSelection !== eventRange.instance.instanceId));\n };\n this.handleDragStart = (ev) => {\n let { context } = this.component;\n let eventRange = this.eventRange;\n this.relevantEvents = getRelevantEvents(context.getCurrentData().eventStore, this.eventRange.instance.instanceId);\n let segEl = this.querySegEl(ev);\n this.draggingSegEl = segEl;\n this.draggingSeg = getElSeg(segEl);\n context.calendarApi.unselect();\n context.emitter.trigger('eventResizeStart', {\n el: segEl,\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { context } = this.component;\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let eventInstance = this.eventRange.instance;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range);\n }\n }\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, context)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = null;\n }\n }\n if (mutatedRelevantEvents) {\n context.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction,\n });\n }\n else {\n context.dispatch({ type: 'UNSET_EVENT_RESIZE' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (mutation && isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handleDragEnd = (ev) => {\n let { context } = this.component;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(context, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n context.emitter.trigger('eventResizeStop', {\n el: this.draggingSegEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n if (this.validMutation) {\n let updatedEventApi = new EventImpl(context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, context, eventInstance),\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change events\n });\n },\n };\n context.emitter.trigger('eventResize', Object.assign(Object.assign({}, eventChangeArg), { el: this.draggingSegEl, startDelta: this.validMutation.startDelta || createDuration(0), endDelta: this.validMutation.endDelta || createDuration(0), jsEvent: ev.origEvent, view: context.viewApi }));\n context.emitter.trigger('eventChange', eventChangeArg);\n }\n else {\n context.emitter.trigger('_noEventResize');\n }\n // reset all internal state\n this.draggingSeg = null;\n this.relevantEvents = null;\n this.validMutation = null;\n // okay to keep eventInstance around. useful to set it in handlePointerDown\n };\n let { component } = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = '.fc-event-resizer';\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n querySegEl(ev) {\n return elementClosest(ev.subjectEl, '.fc-event');\n }\n}\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange) {\n let dateEnv = hit0.context.dateEnv;\n let date0 = hit0.dateSpan.range.start;\n let date1 = hit1.dateSpan.range.start;\n let delta = diffDates(date0, date1, dateEnv, hit0.largeUnit);\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n return { startDelta: delta };\n }\n }\n else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n return { endDelta: delta };\n }\n return null;\n}\n\nclass UnselectAuto {\n constructor(context) {\n this.context = context;\n this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n this.matchesCancel = false;\n this.matchesEvent = false;\n this.onSelect = (selectInfo) => {\n if (selectInfo.jsEvent) {\n this.isRecentPointerDateSelect = true;\n }\n };\n this.onDocumentPointerDown = (pev) => {\n let unselectCancel = this.context.options.unselectCancel;\n let downEl = getEventTargetViaRoot(pev.origEvent);\n this.matchesCancel = !!elementClosest(downEl, unselectCancel);\n this.matchesEvent = !!elementClosest(downEl, EventDragging.SELECTOR); // interaction started on an event?\n };\n this.onDocumentPointerUp = (pev) => {\n let { context } = this;\n let { documentPointer } = this;\n let calendarState = context.getCurrentData();\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (calendarState.dateSelection && // an existing date selection?\n !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n let unselectAuto = context.options.unselectAuto;\n if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {\n context.calendarApi.unselect(pev);\n }\n }\n if (calendarState.eventSelection && // an existing event selected?\n !this.matchesEvent // interaction DIDN'T start on an event\n ) {\n context.dispatch({ type: 'UNSELECT_EVENT' });\n }\n }\n this.isRecentPointerDateSelect = false;\n };\n let documentPointer = this.documentPointer = new PointerDragging(document);\n documentPointer.shouldIgnoreMove = true;\n documentPointer.shouldWatchScroll = false;\n documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);\n documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n /*\n TODO: better way to know about whether there was a selection with the pointer\n */\n context.emitter.on('select', this.onSelect);\n }\n destroy() {\n this.context.emitter.off('select', this.onSelect);\n this.documentPointer.destroy();\n }\n}\n\nconst OPTION_REFINERS = {\n fixedMirrorParent: identity,\n};\nconst LISTENER_REFINERS = {\n dateClick: identity,\n eventDragStart: identity,\n eventDragStop: identity,\n eventDrop: identity,\n eventResizeStart: identity,\n eventResizeStop: identity,\n eventResize: identity,\n drop: identity,\n eventReceive: identity,\n eventLeave: identity,\n};\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nclass ExternalElementDragging {\n constructor(dragging, suppliedDragMeta) {\n this.receivingContext = null;\n this.droppableEvent = null; // will exist for all drags, even if create:false\n this.suppliedDragMeta = null;\n this.dragMeta = null;\n this.handleDragStart = (ev) => {\n this.dragMeta = this.buildDragMeta(ev.subjectEl);\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { dragging } = this.hitDragging;\n let receivingContext = null;\n let droppableEvent = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: this.dragMeta.create,\n };\n if (hit) {\n receivingContext = hit.context;\n if (this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {\n droppableEvent = computeEventForDateSpan(hit.dateSpan, this.dragMeta, receivingContext);\n interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n isInvalid = !isInteractionValid(interaction, hit.dateProfile, receivingContext);\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore();\n droppableEvent = null;\n }\n }\n }\n this.displayDrag(receivingContext, interaction);\n // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n // TODO: wish we could somehow wait for dispatch to guarantee render\n dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent);\n this.receivingContext = receivingContext;\n this.droppableEvent = droppableEvent;\n }\n };\n this.handleDragEnd = (pev) => {\n let { receivingContext, droppableEvent } = this;\n this.clearDrag();\n if (receivingContext && droppableEvent) {\n let finalHit = this.hitDragging.finalHit;\n let finalView = finalHit.context.viewApi;\n let dragMeta = this.dragMeta;\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }));\n if (dragMeta.create) {\n let addingEvents = eventTupleToStore(droppableEvent);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: addingEvents,\n });\n if (pev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId,\n });\n }\n // signal that an external event landed\n receivingContext.emitter.trigger('eventReceive', {\n event: new EventImpl(receivingContext, droppableEvent.def, droppableEvent.instance),\n relatedEvents: [],\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: addingEvents,\n });\n },\n draggedEl: pev.subjectEl,\n view: finalView,\n });\n }\n }\n this.receivingContext = null;\n this.droppableEvent = null;\n };\n let hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore);\n hitDragging.requireInitial = false; // will start outside of a component\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n this.suppliedDragMeta = suppliedDragMeta;\n }\n buildDragMeta(subjectEl) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta);\n }\n if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl));\n }\n return getDragMetaFromEl(subjectEl);\n }\n displayDrag(nextContext, state) {\n let prevContext = this.receivingContext;\n if (prevContext && prevContext !== nextContext) {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n if (this.receivingContext) {\n this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n canDropElOnCalendar(el, receivingContext) {\n let dropAccept = receivingContext.options.dropAccept;\n if (typeof dropAccept === 'function') {\n return dropAccept.call(receivingContext.calendarApi, el);\n }\n if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept));\n }\n return true;\n }\n}\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, context) {\n let defProps = Object.assign({}, dragMeta.leftoverProps);\n for (let transform of context.pluginHooks.externalDefTransforms) {\n Object.assign(defProps, transform(dateSpan, dragMeta));\n }\n let { refined, extra } = refineEventDef(defProps, context);\n let def = parseEventDef(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd\n context);\n let start = dateSpan.range.start;\n // only rely on time info if drop zone is all-day,\n // otherwise, we already know the time\n if (dateSpan.allDay && dragMeta.startTime) {\n start = context.dateEnv.add(start, dragMeta.startTime);\n }\n let end = dragMeta.duration ?\n context.dateEnv.add(start, dragMeta.duration) :\n getDefaultEventEnd(dateSpan.allDay, start, context);\n let instance = createEventInstance(def.defId, { start, end });\n return { def, instance };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n let str = getEmbeddedElData(el, 'event');\n let obj = str ?\n JSON.parse(str) :\n { create: false }; // if no embedded data, assume no event creation\n return parseDragMeta(obj);\n}\nconfig.dataAttrPrefix = '';\nfunction getEmbeddedElData(el, name) {\n let prefix = config.dataAttrPrefix;\n let prefixedName = (prefix ? prefix + '-' : '') + name;\n return el.getAttribute('data-' + prefixedName) || '';\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nclass ExternalDraggable {\n constructor(el, settings = {}) {\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n let { minDistance, longPressDelay } = this.settings;\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : BASE_OPTION_DEFAULTS.eventDragMinDistance);\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : BASE_OPTION_DEFAULTS.longPressDelay) :\n 0;\n };\n this.handleDragStart = (ev) => {\n if (ev.isTouch &&\n this.dragging.delay &&\n ev.subjectEl.classList.contains('fc-event')) {\n this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');\n }\n };\n this.settings = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(el);\n dragging.touchScrollAllowed = false;\n if (settings.itemSelector != null) {\n dragging.pointer.selector = settings.itemSelector;\n }\n if (settings.appendTo != null) {\n dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n }\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nclass InferredElementDragging extends ElementDragging {\n constructor(containerEl) {\n super(containerEl);\n this.shouldIgnoreMove = false;\n this.mirrorSelector = '';\n this.currentMirrorEl = null;\n this.handlePointerDown = (ev) => {\n this.emitter.trigger('pointerdown', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragstart right away. does not support delay or min-distance\n this.emitter.trigger('dragstart', ev);\n }\n };\n this.handlePointerMove = (ev) => {\n if (!this.shouldIgnoreMove) {\n this.emitter.trigger('dragmove', ev);\n }\n };\n this.handlePointerUp = (ev) => {\n this.emitter.trigger('pointerup', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragend right away. does not support a revert animation\n this.emitter.trigger('dragend', ev);\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.handlePointerDown);\n pointer.emitter.on('pointermove', this.handlePointerMove);\n pointer.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.pointer.destroy();\n }\n setIgnoreMove(bool) {\n this.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n if (bool) {\n // restore a previously hidden element.\n // use the reference in case the selector class has already been removed.\n if (this.currentMirrorEl) {\n this.currentMirrorEl.style.visibility = '';\n this.currentMirrorEl = null;\n }\n }\n else {\n let mirrorEl = this.mirrorSelector\n // TODO: somehow query FullCalendars WITHIN shadow-roots\n ? document.querySelector(this.mirrorSelector)\n : null;\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl;\n mirrorEl.style.visibility = 'hidden';\n }\n }\n }\n}\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nclass ThirdPartyDraggable {\n constructor(containerOrSettings, settings) {\n let containerEl = document;\n if (\n // wish we could just test instanceof EventTarget, but doesn't work in IE11\n containerOrSettings === document ||\n containerOrSettings instanceof Element) {\n containerEl = containerOrSettings;\n settings = settings || {};\n }\n else {\n settings = (containerOrSettings || {});\n }\n let dragging = this.dragging = new InferredElementDragging(containerEl);\n if (typeof settings.itemSelector === 'string') {\n dragging.pointer.selector = settings.itemSelector;\n }\n else if (containerEl === document) {\n dragging.pointer.selector = '[data-event]';\n }\n if (typeof settings.mirrorSelector === 'string') {\n dragging.mirrorSelector = settings.mirrorSelector;\n }\n let externalDragging = new ExternalElementDragging(dragging, settings.eventData);\n // The hit-detection system requires that the dnd-mirror-element be pointer-events:none,\n // but this can't be guaranteed for third-party draggables, so disable\n externalDragging.hitDragging.disablePointCheck = true;\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\nvar index = createPlugin({\n name: '@fullcalendar/interaction',\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging,\n optionRefiners: OPTION_REFINERS,\n listenerRefiners: LISTENER_REFINERS,\n});\n\nexport { ExternalDraggable as Draggable, ThirdPartyDraggable, index as default };\n","import * as preact from 'preact';\nimport { Component, createElement, isValidElement, Fragment } from 'preact';\nimport { createPortal } from 'preact/compat';\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n styleTexts.push(styleText);\n styleEls.forEach((styleEl) => {\n appendStylesTo(styleEl, styleText);\n });\n}\nfunction ensureElHasStyles(el) {\n if (el.isConnected && // sometimes true if SSR system simulates DOM\n el.getRootNode // sometimes undefined if SSR system simulates DOM\n ) {\n registerStylesRoot(el.getRootNode());\n }\n}\nfunction registerStylesRoot(rootNode) {\n let styleEl = styleEls.get(rootNode);\n if (!styleEl || !styleEl.isConnected) {\n styleEl = rootNode.querySelector('style[data-fullcalendar]');\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.setAttribute('data-fullcalendar', '');\n const nonce = getNonceValue();\n if (nonce) {\n styleEl.nonce = nonce;\n }\n const parentEl = rootNode === document ? document.head : rootNode;\n const insertBefore = rootNode === document\n ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')\n : parentEl.firstChild;\n parentEl.insertBefore(styleEl, insertBefore);\n }\n styleEls.set(rootNode, styleEl);\n hydrateStylesRoot(styleEl);\n }\n}\nfunction hydrateStylesRoot(styleEl) {\n for (const styleText of styleTexts) {\n appendStylesTo(styleEl, styleText);\n }\n}\nfunction appendStylesTo(styleEl, styleText) {\n const { sheet } = styleEl;\n const ruleCnt = sheet.cssRules.length;\n styleText.split('}').forEach((styleStr, i) => {\n styleStr = styleStr.trim();\n if (styleStr) {\n sheet.insertRule(styleStr + '}', ruleCnt + i);\n }\n });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n if (queriedNonceValue === undefined) {\n queriedNonceValue = queryNonceValue();\n }\n return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder