{"version":3,"sources":["webpack:///./node_modules/@fullcalendar/interaction/main.esm.js","webpack:///./node_modules/@fullcalendar/core/main.esm.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./node_modules/@fullcalendar/daygrid/main.esm.js","webpack:///./node_modules/@fullcalendar/timegrid/main.esm.js","webpack:///./node_modules/@fullcalendar/vue/main.esm.js","webpack:///./node_modules/@fullcalendar/list/main.esm.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","containerEl","_this","subjectEl","downEl","selector","handleSelector","shouldIgnoreMove","shouldWatchScroll","isDragging","isTouchDragging","wasTouchScroll","handleMouseDown","ev","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","pev","createEventFromMouse","emitter","trigger","initScrollWatch","document","addEventListener","handleMouseMove","handleMouseUp","recordCoords","removeEventListener","cleanup","handleTouchStart","createEventFromTouch","target","handleTouchMove","handleTouchEnd","window","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","pageXOffset","prevScrollX","prevPageX","pageY","pageYOffset","prevScrollY","prevPageY","origEvent","isTouch","deltaX","origPageX","deltaY","origPageY","passive","listenerCreated","destroy","listenerDestroyed","querySubjectEl","destroyScrollWatch","cancelTouchScroll","isFirst","touches","button","ctrlKey","setTimeout","onWindowTouchMove","preventDefault","ElementMirror","isVisible","sourceEl","mirrorEl","sourceElRect","parentNode","body","zIndex","revertDuration","start","getBoundingClientRect","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","bool","style","display","stop","needsRevertAnimation","callback","done","doRevertAnimation","finalSourceElRect","transition","left","top","getMirrorEl","cloneNode","classList","add","position","visibility","boxSizing","width","right","height","bottom","margin","appendChild","ScrollGeomCache","_super","scrollController","doesListening","scrollTop","getScrollTop","scrollLeft","getScrollLeft","handleScrollChange","origScrollTop","origScrollLeft","scrollWidth","getScrollWidth","scrollHeight","getScrollHeight","clientWidth","getClientWidth","clientHeight","getClientHeight","clientRect","computeClientRect","getEventTarget","setScrollTop","Math","max","min","getMaxScrollTop","setScrollLeft","getMaxScrollLeft","ElementScrollGeomCache","el","WindowScrollGeomCache","getTime","performance","now","Date","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","buildCaches","yDelta","xDelta","_i","_a","scrollCache","requestAnimationFrame","seconds","invDistance","distance","velocity","sign","name","bestSide","rect","leftDist","rightDist","topDist","bottomDist","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","queryScrollEls","map","els","query","push","slice","querySelectorAll","FeaturefulElementDragging","delay","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","type","autoScroller","onPointerUp","tryStopDrag","clearTimeout","on","handleDelayEnd","tryStartDrag","stopDrag","bind","setIgnoreMove","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","OffsetTracker","origRect","computeLeft","computeTop","isWithinClipping","point","isIgnoredClipping","node","tagName","HitDragging","dragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","prepareHits","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","queryHitForOffset","slicedSubjectRect","coordAdjust","forceHandle","hit","isHitsEqual","offsetTrackers","interactionSettings","component","buildPositionCaches","id","offsetLeft","offsetTop","bestHit","offsetTracker","originLeft","originTop","positionLeft","positionTop","queryHit","props","dateProfile","activeRange","dateSpan","range","layer","hit0","hit1","Boolean","DateClicking","settings","isValidDateDownEl","context","calendar","view","_b","hitDragging","triggerDateClick","dayEl","DateSelecting","dragSelection","options","canSelect","selectable","getComponentTouchDelay","unselect","handleHitUpdate","isFinal","isInvalid","joinHitsIntoSelection","pluginSystem","hooks","dateSelectionTransformers","isDateSelectionValid","dispatch","selection","triggerDateSelect","selectMinDistance","dragScroll","selectLongPressDelay","longPressDelay","dateSpan0","dateSpan1","ms","end","sort","dateSelectionTransformers_1","transformer","res","allDay","EventDragging","subjectSeg","eventRange","relevantEvents","receivingCalendar","validMutation","mutatedRelevantEvents","origTarget","initialCalendar","eventInstanceId","instance","instanceId","state","eventStore","eventDragMinDistance","eventSelection","getComponentTouchDelay$1","dragRevertDuration","isValid","isValidSegDownEl","contains","publiclyTrigger","event","def","jsEvent","mutation","interaction","affectedEvents","mutatedEvents","isEvent","origSeg","receivingComponent","receivingOptions","editable","droppable","computeEventMutation","eventDragMutationMassagers","eventUiBases","isInteractionValid","displayDrag","querySelector","initialCalendar_1","initialView","eventDef","eventInstance","eventApi","relevantEvents_1","clearDrag","transformed","eventDropTransformers","eventDropArg","delta","datesDelta","oldEvent","defs","defId","instances","revert","draggedEl","dropArg","buildDatePointApi","SELECTOR","useEventCenter","nextCalendar","prevCalendar","massagers","date0","date1","standardProps","hasEnd","allDayMaintainDuration","dateEnv","largeUnit","milliseconds","massagers_1","massager","eventLongPressDelay","EventDragging$1","draggingSeg","seg","querySeg","computeMutation","eventResizeJoinTransforms","startDelta","endDelta","prevEvent","fgSegSelector","isFromStart","instanceRange","transforms","transforms_1","transform","UnselectAuto","isRecentPointerDateSelect","onSelect","selectInfo","onDocumentPointerUp","documentPointer","dateSelection","unselectAuto","viewOpt","unselectCancel","off","ExternalElementDragging","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","computeEventForDateSpan","finalView","arg","getDragMetaFromEl","dropAccept","opt","defProps","leftoverProps","externalDefTransforms","sourceId","duration","startTime","getDefaultEventEnd","str","getEmbeddedElData","obj","JSON","parse","prefix","dataAttrPrefix","prefixedName","getAttribute","ExternalDraggable","itemSelector","appendTo","eventData","InferredElementDragging","mirrorSelector","currentMirrorEl","handlePointerMove","main","ThirdPartyDraggable","containerOrSettings","Element","componentInteractions","calendarInteractions","elementDraggingImpl","elementPropHash","className","colSpan","rowSpan","containerTagHash","createElement","attrs","content","attrName","applyStyle","setAttribute","innerHTML","appendToElement","htmlToElement","html","trim","container","computeContainerTag","firstChild","htmlToElements","htmlToNodeList","childNodes","substr","normalizeContent","prependToElement","parent","newEls","afterEl","insertBefore","insertAfterElement","refEl","nextSibling","Node","removeElement","removeChild","matchesMethod","matches","matchesSelector","msMatchesSelector","closestMethod","closest","documentElement","elementMatches","parentElement","nodeType","elementClosest","findElements","containers","HTMLElement","allMatches","j","findChildren","parents","children","childNode","PIXEL_PROP_RE","propName","applyStyleProp","val","test","pointInsideRect","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","computeIsRtlScrollbarOnLeft","outerEl","border","padding","overflow","direction","innerEl","sanitizeScrollbarWidth","round","computeEdges","getPadding","computedStyle","getComputedStyle","borderLeft","parseInt","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","scrollbarLeftRight","offsetWidth","scrollbarBottom","offsetHeight","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","computeInnerRect","goWithinPadding","outerRect","computeRect","edges","computeViewportRect","computeHeightAndMargins","computeVMargins","computed","marginTop","marginBottom","getClippingParents","overflowY","overflowX","computeClippingRect","concat","reduce","rect0","listenBySelector","eventType","handler","realHandler","matchedChild","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","realOnMouseLeave_1","transitionEventNames","whenTransitionDone","realCallback","forEach","eventName","DAY_IDS","addWeeks","m","a","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","startOfDay","m1day","years","months","days","diffWholeWeeks","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","startOfHour","getUTCHours","startOfMinute","getUTCMinutes","startOfSecond","getUTCSeconds","weekOfYear","marker","dow","doy","y","w","weekOfGivenYear","nextW","year","firstWeekStart","firstWeekOffset","dayStart","floor","fwd","fwdlw","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","UTC","isValidDate","isNaN","INTERNAL_UNITS","PARSE_RE","createDuration","input","unit","parseString","normalizeObject","exec","month","day","getWeeksFromInput","hours","hour","minutes","minute","second","millisecond","weeks","week","durationsEqual","d0","d1","addDurations","subtractDurations","multiplyDuration","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","wholeDivideDurations","numerator","denominator","localRes","isInt","greatestDurationDenominator","dontReturnWeeks","value","compensateScroll","rowEl","scrollbarWidths","marginLeft","marginRight","uncompensateScroll","disableCursor","enableCursor","remove","distributeHeight","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalHeight","naturalOffset","newHeight","matchCellWidths","maxInnerWidth","innerWidth_1","subtractInnerElHeight","reflowStyleProps","diff","resetStyleProps","preventSelection","allowSelection","preventContextMenu","allowContextMenu","parseFieldSpecs","token","specs","tokens","split","isArray","charAt","field","substring","order","func","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","String","localeCompare","capitaliseFirstLetter","toUpperCase","padStart","len","compareNumbers","applyAll","functions","thisObj","args","ret","firstDefined","undefined","debounce","wait","timeout","timestamp","result","later","last","refineProps","rawProps","processors","defaults","refined","key","processor","Function","Number","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","isMultiDayRange","visibleRange","diffDates","diffWholeYears","diffWholeMonths","parseRecurring","eventInput","allDayDefault","recurringTypes","leftovers","localLeftovers","parsed","allDayGuess","typeData","typeId","expandRecurringRanges","framingRange","typeDef","recurringDef","markers","expand","subtract","mergeProps","propObjs","complexProps","complexObjs","dest","unshift","filterHash","hash","filtered","mapHash","newHash","arrayToHash","a_1","item","hashValuesToArray","isPropsEqual","parseEvents","rawEvents","allowOpenRange","createEmptyEventStore","rawEvents_1","rawEvent","tuple","parseEvent","eventTupleToStore","expandRecurring","defaultAllDayEventDuration","defaultTimedEventDuration","starts","starts_1","createEventInstance","getRelevantEvents","def_1","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","groupId","transformRawEvents","eventSource","calEachTransform","sourceEachTransform","eventDataTransform","transformEachRawEvent","refinedEvents","rawEvents_2","refinedEvent","mergeEventStores","store0","store1","filterFunc","parseRange","createMarker","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","constrainMarkerToRange","isArraysEqual","a0","a1","memoize","workerFunc","memoizeOutput","equalityFunc","cachedRes","newRes","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","name_1","buildFormattingFunc","format","formatRange","diffSeverity","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","insertion","findCommonInsertion","before","after","getLargestUnit","standardDatePropCnt","keys","formatTimeZoneOffset","timeZoneOffset","formatWeekNumber","computeWeekNumber","weekLabel","locale","buildNativeFormattingFunc","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","postProcess","replace","injectTzoStr","toLocaleLowerCase","tzoStr","replaced","num","parts","simpleNumberFormat","isRtl","reverse","join","ca","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnit","partialOptions","name_2","i0","found0","indexOf","before0","after0","i1","found1","before1","after1","CmdFormatter","cmdStr","cmdFormatter","createVerboseFormattingArg","FuncFormatter","createFormatter","defaultSeparator","buildIsoString","stripZeroTime","toISOString","formatIsoTimeString","doIso","abs","mins","startInfo","expandZonedMarker","endInfo","localeCodes","dateInfo","markerToArray","array","EventSourceApi","internalEventSource","refetch","sourceIds","defineProperty","get","publicId","enumerable","configurable","meta","url","EventApi","_calendar","_def","_instance","setProp","DATE_PROPS","NON_DATE_PROPS","mutate","UNSCOPED_EVENT_UI_PROPS","ui","backgroundColor","borderColor","startEditable","durationEditable","setExtendedProp","extendedProps","setStart","startInput","granularity","maintainDuration","setEnd","endInput","setDates","moveStart","deltaInput","moveEnd","moveDates","setAllDay","formatInput","formatter","forcedStartTzo","forcedEndTzo","forcedTzo","fromApi","eventSources","toDate","title","rendering","constraints","overlap","allows","textColor","classNames","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","filterSegsViaEls","segs","isMirror","hasPublicHandlers","filter","custom","segs_1","setElSeg","fcSeg","getElSeg","eventDefs","compileEventUi","uis","combineEventUis","triggerRenderedSegs","isMirrors","segs_2","publiclyTriggerAfterSizing","eventSourceLoadingLevel","afterSizingTriggers","_eventsPositioned","triggerWillRemoveSegs","segs_3","segs_4","computeEventDraggable","eventUi","transformers","isDraggableTransformers","transformers_1","computeEventStartResizable","eventResizableFromStart","computeEventEndResizable","applyMutationToEventStore","eventConfigBase","eventConfigs","applyMutationToEventDef","eventDefMutationAppliers","applyMutationToEventInstance","eventConfig","appliers","copy","appliers_1","applier","forceAllDay","clearEnd","reduceEventStore","action","receiveRawEvents","fetchId","fetchRange","addEvent","rezoneDates","oldDateEnv","applyMutationToRelated","excludeInstances","excludeEventsBySourceId","latestFetchId","subset","expandRange","newDateEnv","canComputeOffset","relevant","removals","isNewPropsValid","eventDrag","newProps","businessHours","eventResize","isPropsValid","dateSpanMeta","filterConfig","isInteractionPropsValid","isDateSelectionPropsValid","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","selectionConfig","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","overlapFunc","otherInstanceId","otherInstance","otherOverlap","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","buildDateSpanApi","relevantEventStore","relevantDefs","relevantInstances","selectionRange","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","businessHoursUnexpanded","constraints_1","constraint","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","outerRanges_1","normalizeConstraint","htmlEscape","cssToStr","cssProps","statements","attrsToStr","parseClassName","raw","allow","color","processUnscopedUiProps","processScopedUiProps","rawScoped","rawUnscoped","wasFound","scopedKey","EMPTY_EVENT_UI","combineTwoEventUis","item0","item1","uid","computeIsAllDayDefault","leftovers0","recurringRes","parseEventDef","leftovers1","singleRes","parseSingle","pluckNonDateProps","eventDefParsers","eventDefParser","newLeftovers","freeze","startMeta","endMeta","pluckDateProps","startMarker","endMarker","createMarkerMeta","isTimeUnspecified","preLeftovers","source","DEF_DEFAULTS","endTime","daysOfWeek","parseBusinessHours","refineInputs","rawDefs","rawDef","memoizeRendering","renderFunc","unrenderFunc","dependencies","thisContext","prevArgs","dependents","unrender","dependents_1","dependent","dependencies_1","dependency","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","info","buildEventUiForKey","keyInfo","buildEventUi","dateSpans","getKeysForDateSpan","keys_1","getKeysForEventDef","splitStores","_c","splitHashes","splitStates","affectedStores_1","mutatedKeysByDefId","mutatedStores_1","populate","allUi","eventUiForKey","baseParts","stuff","buildGotoAnchorHtml","allOptions","gotoOptions","innerHtml","forceOff","finalOptions","formatIso","omitTime","navLinks","stringify","getAllDayHtml","allDayHtml","allDayText","getDayClasses","noThemeHighlight","todayStart","todayEnd","theme","classes","monthMode","currentRange","getNow","getClass","unpromisify","success","failure","isResolved","wrappedSuccess","wrappedFailure","then","Mixin","mixInto","destClass","mixIntoObj","destObj","getOwnPropertyNames","mixOver","EmitterMixin","addToHash","_handlers","one","_oneHandlers","removeFromHash","triggerWith","hasHandlers","PositionCache","originEl","isHorizontal","isVertical","build","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","ScrollController","canScrollVertically","canScrollHorizontally","ElementScrollController","WindowScrollController","scroll","ScrollComponent","applyOverflow","clear","setHeight","lockOverflow","getScrollbarWidths","Theme","calendarOptions","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","guid","ComponentContext","dir","eventOrderSpecs","eventOrder","extend","Component","everRendered","addEqualityFuncs","newFuncs","equalityFuncs","receiveProps","receiveContext","recycleProps","anyChanges","comboProps","beforeUpdate","render","afterUpdate","oldContext","firstContext","oldProps","DateComponent","elWidth","elHeight","validRange","isPopover","isInPopover","segEl","bgSegSelector","uid$1","createPlugin","deps","reducers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","viewContainerModifiers","themeClasses","eventSourceDefs","namedTimeZonedImpl","defaultView","optionChangeHandlers","PluginSystem","addedHash","plugin","dep","combineHooks","hooks0","hooks1","eventSourceDef","ignoreRange","parseMeta","events","fetch","ArrayEventSourcePlugin","eventSourceDef$1","startStr","endStr","FuncEventSourcePlugin","requestJson","method","params","successCallback","failureCallback","injectQueryStringParams","encodeParams","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","eventSourceDef$2","extraParams","startParam","endParam","timeZoneParam","requestParams","buildRequestParams","errorMessage","message","JsonFeedEventSourcePlugin","customRequestParams","recurring","startRecur","endRecur","anyValid","clippedFramingRange","expandRanges","SimpleRecurrencePlugin","dowHash","dayMarker","instanceStarts","instanceStart","DefaultOptionChangeHandlers","deepEqual","handleEventSources","plugins","handlePlugins","inputs","unfoundSources","newInputs","inputs_1","inputFound","_raw","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","addEventSource","addPluginInputs","config","globalDefaults","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","columnHeader","aspectRatio","header","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","locales","timeGridEventMinHeight","themeSystem","eventLimit","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","rtlDefaults","buttonIcons","prev","next","prevYear","nextYear","complexOptions","mergeOptions","optionObjs","INTERNAL_PLUGINS","refinePluginDefs","pluginInputs","pluginInputs_1","pluginInput","globalName","default","console","warn","RAW_EN_LOCALE","code","buttonText","today","list","eventLimitText","noEventsMessage","parseRawLocales","explicitRawLocales","defaultCode","globalArray","globalObject","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","queryLocale","parseLocale","codeArg","queryRawLocale","simpleId","merged","NumberFormat","OptionsManager","overrides","dynamicOverrides","compute","updates","isDynamic","overrideHash","removals_1","localeDefaults","dirDefaults","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","arrayToMarker","arr","ISO_RE","DateEnv","isNamedTimeZone","namedTimeZoneImpl","weekDow","weekDoy","firstDay","weekNumberFunc","createNowMarker","timestampToMarker","getYear","addYears","addMonths","greatestWholeUnit","countDurationsBetween","startOf","startOfYear","startOfMonth","startOfWeek","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","SIMPLE_SOURCE_PROPS","uid$2","doesSourceNeedRange","sourceDefId","parseEventSource","parseEventSourceProps","isFetching","reduceEventSources","addSources","sources","removeSource","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","receiveResponse","uid$3","eventSourceHash","sources_1","sourceHash","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","calSuccessRes","sourceSuccessRes","calSuccess","error","callFailure","DateProfileGenerator","viewSpec","initHiddenDays","buildPrev","currentDateProfile","currentDate","prevDate","currentRangeUnit","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","isRangeAllDay","renderRange","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","getRangeOption","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","class","usesMinMaxTime","dateIncrementInput","dateIncrementDuration","alignment","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","customAlignment","runningCount","fallback","otherArgs","hiddenDays","isHiddenDayHash","Error","inc","isExclusive","isDateProfilesEqual","p0","p1","viewType","reduceViewType","reduceDateProfile","nextState","reduceCurrentDate","reduceDateSelection","reduceSelectedEvent","reduceEventDrag","reduceEventResize","computeLoadingLevel","loadingLevel","reducerFunc","currentViewType","newDateProfile","dateProfileGenerators","dateMarker","generator","newDate","currentSelection","currentInstanceId","currentDrag","newDrag","currentResize","newResize","cnt","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","dateStr","fabricateEventRange","compileViewDefs","defaultConfigs","overrideConfigs","ensureViewDef","viewDef","buildViewDef","defaultConfig","overrideConfig","queryProp","superType","findViewNameBySubclass","superDef","viewSubclass","configs","superProto","getPrototypeOf","parseViewConfigs","parseViewConfig","VIEW_DEF_PROPS","buildViewSpecs","defaultInputs","optionsManager","viewDefs","buildViewSpec","durationInput","singleUnit","singleUnitOverrides","denom","queryButtonText","buttonTextMap","buttonTextKey","buttonTextOverride","buttonTextDefault","Toolbar","extraClassName","_renderLayout","renderLayout","unrenderLayout","_updateTitle","updateTitle","_updateActiveButton","updateActiveButton","_updateToday","updateToday","_updatePrev","updatePrev","_updateNext","updateNext","layout","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","viewsWithButtons","renderSection","buttonStr","viewSpecs","sectionEl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","click","text","changeView","buttonGroupClassName","toggleButtonEnabled","titleEl","innerText","disabled","CalendarComponent","elClassNames","renderSkeleton","_renderSkeleton","_unrenderSkeleton","renderToolbars","_renderToolbars","_unrenderToolbars","buildComponentContext","buildViewPropTransformers","computeTitle","freezeHeight","renderView","updateSize","thawHeight","footer","updateElClassNames","contentEl","modifyViewContainer","savedScroll","queryScroll","removeElClassNames","headerLayout","footerLayout","dateProfileGenerator","todayInfo","prevInfo","nextInfo","toolbarProps","addScroll","viewProps","isResize","isHeightAuto","computeHeightVars","viewHeight","updateNowIndicator","popScroll","heightInput","contentHeightInput","queryToolbarsHeight","parentEl","viewOptions","titleFormat","computeTitleFormat","theClasses","Interaction","parseInteractionSettings","interactionSettingsToStore","interactionSettingsStore","EventClicking","handleSegClick","hasUrlContainer","href","defaultPrevented","location","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","publicEvName","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","buttonActive","popoverHeader","popoverContent","headerRow","dayRow","listView","close","Calendar","buildComponentContext$1","buildDateEnv","buildTheme","buildEventUiSingleBase","_buildEventUiSingleBase","buildSelectionConfig","_buildSelectionConfig","buildEventUiBySource","buildEventUiBases","interactionsStore","actionQueue","isReducing","needsRerender","isRendering","renderingPauseDepth","buildDelayedRerender","isViewUpdated","isDatesUpdated","isEventsUpdated","handleOptions","hydrate","calendarInteractionClass","pluginDefs","pluginDefs_1","pluginDef","requestRerender","renderableEventStore","bindHandlers","executeRender","unbindHandlers","removeNavLinkListener","anchorEl","customAction","zoomTo","windowResizeProxy","windowResize","buildInitialState","rawSources","singleRawSource","rawSources_1","rawSource","batchRendering","getInitialDate","oldState","shift","newState","delayedRerender","tryRerender","renderComponent","eventUiSingleBase","eventUiBySource","releaseAfterSizingTriggers","setOption","mutateOptions","getOption","viewOpts","changeHandlers","normalUpdates","specialUpdates","isTimeZoneDirty","isSizeDirty","anyDifficultOptions","name_3","pluginHooks","rerenderDelay","availableRawLocales","dateProfileGeneratorClass","getAvailableLocaleCodes","rawOpts","eventEditable","optHandler","name_4","isValidViewType","dateOrRange","spec","getUnitViewSpec","viewTypes","defaultDateInput","gotoDate","zonedDateInput","incrementDate","formatDate","isHandlingWindowResize","registerInteractiveComponent","settingsInput","DEFAULT_INTERACTIONS","interactionClasses","interactions","interactionClass","unregisterInteractiveComponent","listener","select","dateOrObj","endDate","selectionInput","triggerDateUnselect","sourceInput","sourceApi","getEventSourceById","getEventById","getEvents","eventApis","removeAllEvents","rerenderEvents","getEventSources","sourceApis","internalId","removeAllEventSources","refetchEvents","scrollToTime","timeInput","scrollToDuration","themeClass","View","renderDatesMem","renderDatesWrap","unrenderDatesWrap","renderBusinessHoursMem","renderBusinessHours","unrenderBusinessHours","renderDateSelectionMem","renderDateSelectionWrap","unrenderDateSelectionWrap","renderEventsMem","renderEvents","unrenderEvents","renderEventSelectionMem","renderEventSelectionWrap","unrenderEventSelectionWrap","renderEventDragMem","renderEventDragWrap","unrenderEventDragWrap","renderEventResizeMem","renderEventResizeWrap","unrenderEventResizeWrap","initialize","isAuto","updateBaseSize","renderDates","stopNowIndicator","unrenderDates","renderDateSelection","unrenderDateSelection","sliceEvents","renderEventSelection","unrenderEventSelection","renderEventDrag","unrenderEventDrag","renderEventResize","unrenderEventResize","startNowIndicator","update","nowIndicator","initialNowDate","getNowIndicatorUnit","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearInterval","isForced","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeDateScroll","applyDateScroll","FgEventRenderer","renderSegs","mirrorInfo","rangeUpdated","renderSegEls","attachSegs","_segs","detachSegs","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","renderSegHtml","getSegClasses","isDraggable","isResizable","isResizing","getTimeText","displayEnd","_getTimeText","getSkinCss","sortEventSegs","objs","buildSegCompareObj","c","_seg","computeSizes","force","computeSegSizes","assignSizes","assignSegSizes","hideByHash","showByHash","selectByInstanceId","unselectByInstanceId","FillRenderer","fillSegTag","dirtySizeFlags","containerElsByType","segsByType","getSegsByType","renderedSegs","containerEls","css","toLowerCase","ElementDragging","NamedTimeZoneImpl","DRAG_META_PROPS","DRAG_META_DEFAULTS","parseDragMeta","computeFallbackHeaderFormat","datesRepDistinctDays","renderDateCell","colCnt","colHeadFormat","colspan","otherAttrs","isDateValid","columnHeaderHtml","columnHeaderText","DayHeader","dates","renderIntroHtml","columnHeaderFormat","dates_1","thead","DaySeries","indices","dayIndex","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTable","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","index","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","sourceSeg","eventRanges","eventRanges_1","sliceEventRange","isComponentAllDay","keyList","hasProp","module","exports","equal","arrA","arrB","dateA","dateB","regexpA","RegExp","regexpB","toString","DayGridDateProfileGenerator","endOfWeek","fixedWeekCount","Popover","isHidden","documentMousedown","hide","show","autoHide","elDims","origin","offsetParent","clippingRect","SimpleDayGridEventRenderer","timeText","titleHtml","isResizableFromStart","isResizableFromEnd","skinCss","timeHtml","DayGridEventRenderer","dayGrid","rowStructs","renderSegRows","rowEls","rowNode","tbodyEl","removeSegPopover","rowStruct","pop","segRows","groupSegRows","renderSegRow","rowSegs","levelSegs","tr","td","segLevels","buildSegLevels","levelCnt","tbody","segMatrix","cellMatrix","loneCellMatrix","emptyCellsUntil","endCol","leftCol","rightCol","introHtml","renderProps","levels","isDaySegCollision","level","compareDaySegCols","otherSegs","otherSeg","DayGridMirrorRenderer","skeletonTopEl","skeletonTop","skeletonEl","EMPTY_CELL_HTML","DayGridFillRenderer","renderFillRow","trEl","startCol","getElementsByTagName","DayTile","eventRenderer","DayTileEventRenderer","renderFrame","_renderFrame","renderFgEvents","fgSegs","eventDragInstances","eventResizeInstances","segContainerEl","dayTile","DayBgRow","renderHtml","cell","renderCellHtml","htmlAttrs","DAY_NUM_FORMAT","WEEK_NUM_FORMAT","DayGrid","bottomCoordPadding","isCellSizesDirty","fillRenderer","mirrorRenderer","renderCells","_renderCells","_unrenderCells","renderBgEvents","_renderEventDrag","_unrenderEventDrag","_renderEventResize","_unrenderEventResize","isRigid","segPopoverTile","updateSegPopoverTile","getCellRange","ownProps","renderDayRowHtml","cellEls","rowPositions","colPositions","getCellEl","bgRow","renderBgIntroHtml","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","cellWeekNumbersVisible","colWeekNumbersVisible","intro","renderNumberIntroHtml","renderNumberCellsHtml","htmls","renderNumberCellHtml","weekCalcFirstDow","isDayNumberVisible","buildColPositions","buildRowPositions","positionToHit","relativeRect","segPopover","limitRows","levelLimit","rowLevelLimit","unlimitRow","computeRowLevelLimit","limitRow","rowBottom","trEls","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","segMoreNodes","moreTd","moreWrap","moreLink","moreNodes","getCellSegs","renderMoreLink","moreEls","limitedEls","limitedEl","hiddenSegs","getMoreLinkText","clickOption","_col","moreEl","currentTarget","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","topEl","dayDate","dayEnd","dayRange","newSegs","startLevel","WEEK_NUM_FORMAT$1","AbstractDayGridView","processOptions","_processOptions","renderHeadIntroHtml","weekNumberStyleAttr","renderDayGridNumberIntroHtml","weekStart","renderDayGridBgIntroHtml","renderDayGridIntroHtml","weekNumbersWithinDays","renderSkeletonHtml","scroller","dayGridContainerEl","dayGridEl","weekNumberWidth","hasRigidRows","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","SimpleDayGrid","slicer","DayGridSlicer","dayTable","rawHit","DayGridView","buildDayTable","simpleDayGrid","dayGridDay","dayGridWeek","dayGridMonth","TimeGridEventRenderer","timeGrid","fullTimeFormat","segsByCol","groupSegsByCol","attachSegsByCol","fgContainerEls","computeSegVerticals","computeSegHorizontals","assignSegVerticals","assignSegCss","fullTimeText","startTimeText","unzonedStart","unzonedEnd","level0","buildSlotSegLevels","computeForwardSlotSegs","computeSlotSegPressures","computeSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardSegs","forwardCoord","sortForwardSegs","backwardCoord","buildTimeGridSegCompareObj","generateSegCss","shouldOverlap","slotEventOverlap","generateSegVerticalCss","forwardPressure","computeSlotSegCollisions","k","forwardSeg","results","isSlotSegCollision","seg1","seg2","TimeGridMirrorRenderer","mirrorContainerEls","sourceSegProps","TimeGridFillRenderer","bgContainerEls","businessContainerEls","highlightContainerEls","AGENDA_STOCK_SUB_DURATIONS","TimeGrid","isSlatSizesDirty","isColSizesDirty","renderSlats","_renderSlats","renderColumns","_renderColumns","_unrenderColumns","_renderDateSelection","_unrenderDateSelection","snapsPerSlot","slotDuration","snapDuration","slotLabelFormat","labelFormat","slotLabelInterval","labelInterval","computeLabelInterval","slotsPerLabel","buildSlatPositions","rootBgContainerEl","slatContainerEl","bottomRuleEl","renderSlatRowHtml","slatEls","slatPositions","slotDate","isLabeled","axisHtml","slotTime","slotIterator","colEls","renderContentSkeleton","unrenderContentSkeleton","contentSkeletonEl","colContainerEls","computeDateTop","nodes","lineEl","arrowEl","nowIndicatorEls","getTotalSlatHeight","when","startOfDayDate","computeTimeTop","slatIndex","slatRemainder","slatCoverage","eventMinHeight","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","time","selectMirror","isSelecting","AllDaySplitter","timed","TIMEGRID_ALL_DAY_EVENT_LIMIT","WEEK_HEADER_FORMAT","AbstractTimeGridView","splitter","weekText","axisStyleAttr","renderTimeGridBgIntroHtml","renderTimeGridIntroHtml","timeGridWrapEl","timeGridEl","allDaySlot","dividerEl","axisWidth","noScrollRowEls","SimpleTimeGrid","buildDayRanges","TimeGridSlicer","dayRanges","segRange","TimeGridView","simpleTimeGrid","timeGridDay","timeGridWeek","_typeof","Symbol","iterator","_unsupportedIterableToArray","o","minLen","_arrayLikeToArray","from","arr2","_createForOfIteratorHelper","allowArrayLike","it","F","e","f","TypeError","normalCompletion","didErr","step","return","deepCopy","output","PROP_DEFS","bootstrapFontAwesome","contentHeight","listDayFormat","listDayAltFormat","defaultDate","navLinkDayClick","navLinkWeekClick","selectConstraint","selectOverlap","selectAllow","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventClassName","eventClassNames","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","eventResourceEditable","eventSourceFailure","eventSourceSuccess","progressiveEventRendering","schedulerLicenseKey","resources","resourceLabelText","resourceOrder","filterResourcesWithEvents","resourceText","resourceGroupField","resourceGroupText","resourceAreaWidth","resourceColumns","resourcesInitiallyExpanded","slotWidth","datesAboveResources","googleCalendarApiKey","refetchResourcesOnNavigate","datesRender","datesDestroy","dayRender","eventRender","eventDestroy","viewSkeletonRender","viewSkeletonDestroy","resourceRender","PROP_IS_DEEP","EMISSION_NAMES","EMISSION_USE_PROP","FullCalendarComponent","data","renderId","deepCopies","mounted","warnDeprecatedListeners","$listeners","$options","$el","buildCalendarOptions","renderDirty","beforeDestroy","watch","buildPropWatcher","methods","_step","_iterator","_loop","emissionName","_len","_key","$emit","propVal","recordDirtyOption","optionName","newVal","dirtyOptions","getApi","propDef","deep","oldVal","listenerHash","GlobalVue","installed","install","Vue","global","use","ListEventRenderer","renderSegList","renderEmptyMessage","bgColor","ListView","computeDateVars","eventStoreToSegs","_eventStoreToSegs","renderContent","dayDates","listViewClassNames","listViewClassNames_1","listViewClassName","eventRangesToSegs","eventRangeToSegs","daySegs","segsByDay","groupSegsByDay","tableEl","buildDayHeaderRow","mainFormat","altFormat","viewEnd","listDay","listWeek","listMonth","listYear"],"mappings":"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","file":"js/chunk-6ac58584.7bf8952b.js","sourcesContent":["/*!\nFullCalendar Interaction Plugin v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { config, elementClosest, EmitterMixin, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, preventSelection, preventContextMenu, allowSelection, allowContextMenu, ElementDragging, computeRect, getClippingParents, pointInsideRect, isDateSpansEqual, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, interactionSettingsToStore, Interaction, enableCursor, disableCursor, compareNumbers, getElSeg, getRelevantEvents, EventApi, createEmptyEventStore, applyMutationToEventStore, interactionSettingsStore, startOfDay, diffDates, createDuration, eventTupleToStore, isInteractionValid, parseDragMeta, elementMatches, parseEventDef, createEventInstance, globalDefaults, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nconfig.touchMouseIgnoreWait = 500;\nvar ignoreMouseDepth = 0;\nvar listenerCnt = 0;\nvar 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*/\nvar PointerDragging = /** @class */ (function () {\n function PointerDragging(containerEl) {\n var _this = this;\n this.subjectEl = null;\n this.downEl = 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 = function (ev) {\n if (!_this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n _this.tryStart(ev)) {\n var 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 = function (ev) {\n var pev = _this.createEventFromMouse(ev);\n _this.recordCoords(pev);\n _this.emitter.trigger('pointermove', pev);\n };\n this.handleMouseUp = function (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 = function (ev) {\n if (_this.tryStart(ev)) {\n _this.isTouchDragging = true;\n var 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 var target = ev.target;\n if (!_this.shouldIgnoreMove) {\n target.addEventListener('touchmove', _this.handleTouchMove);\n }\n target.addEventListener('touchend', _this.handleTouchEnd);\n target.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 // useCapture\n );\n }\n };\n this.handleTouchMove = function (ev) {\n var pev = _this.createEventFromTouch(ev);\n _this.recordCoords(pev);\n _this.emitter.trigger('pointermove', pev);\n };\n this.handleTouchEnd = function (ev) {\n if (_this.isDragging) { // done to guard against touchend followed by touchcancel\n var target = ev.target;\n target.removeEventListener('touchmove', _this.handleTouchMove);\n target.removeEventListener('touchend', _this.handleTouchEnd);\n target.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 = function () {\n _this.wasTouchScroll = true;\n };\n this.handleScroll = function (ev) {\n if (!_this.shouldIgnoreMove) {\n var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX;\n var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY;\n _this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: _this.isTouchDragging,\n subjectEl: _this.subjectEl,\n pageX: pageX,\n pageY: pageY,\n deltaX: pageX - _this.origPageX,\n deltaY: pageY - _this.origPageY\n });\n }\n };\n this.containerEl = containerEl;\n this.emitter = new EmitterMixin();\n containerEl.addEventListener('mousedown', this.handleMouseDown);\n containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerCreated();\n }\n PointerDragging.prototype.destroy = function () {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerDestroyed();\n };\n PointerDragging.prototype.tryStart = function (ev) {\n var subjectEl = this.querySubjectEl(ev);\n var downEl = ev.target;\n if (subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n this.subjectEl = subjectEl;\n this.downEl = downEl;\n this.isDragging = true; // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false;\n return true;\n }\n return false;\n };\n PointerDragging.prototype.cleanup = function () {\n isWindowTouchMoveCancelled = false;\n this.isDragging = false;\n this.subjectEl = null;\n this.downEl = null;\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch();\n };\n PointerDragging.prototype.querySubjectEl = function (ev) {\n if (this.selector) {\n return elementClosest(ev.target, this.selector);\n }\n else {\n return this.containerEl;\n }\n };\n PointerDragging.prototype.shouldIgnoreMouse = function () {\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 PointerDragging.prototype.cancelTouchScroll = function () {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true;\n }\n };\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n PointerDragging.prototype.initScrollWatch = function (ev) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev);\n window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n }\n };\n PointerDragging.prototype.recordCoords = function (ev) {\n if (this.shouldWatchScroll) {\n this.prevPageX = ev.pageX;\n this.prevPageY = ev.pageY;\n this.prevScrollX = window.pageXOffset;\n this.prevScrollY = window.pageYOffset;\n }\n };\n PointerDragging.prototype.destroyScrollWatch = function () {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n }\n };\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) {\n var deltaX = 0;\n var 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: deltaX,\n deltaY: deltaY\n };\n };\n PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) {\n var touches = ev.touches;\n var pageX;\n var pageY;\n var deltaX = 0;\n var 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: pageX,\n pageY: pageY,\n deltaX: deltaX,\n deltaY: deltaY\n };\n };\n return PointerDragging;\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++;\n setTimeout(function () {\n ignoreMouseDepth--;\n }, config.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n if (!(listenerCnt++)) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction listenerDestroyed() {\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*/\nvar ElementMirror = /** @class */ (function () {\n function ElementMirror() {\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;\n this.zIndex = 9999;\n this.revertDuration = 0;\n }\n ElementMirror.prototype.start = function (sourceEl, pageX, pageY) {\n this.sourceEl = sourceEl;\n this.sourceElRect = this.sourceEl.getBoundingClientRect();\n this.origScreenX = pageX - window.pageXOffset;\n this.origScreenY = pageY - window.pageYOffset;\n this.deltaX = 0;\n this.deltaY = 0;\n this.updateElPosition();\n };\n ElementMirror.prototype.handleMove = function (pageX, pageY) {\n this.deltaX = (pageX - window.pageXOffset) - this.origScreenX;\n this.deltaY = (pageY - window.pageYOffset) - this.origScreenY;\n this.updateElPosition();\n };\n // can be called before start\n ElementMirror.prototype.setIsVisible = function (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 {\n if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none';\n }\n this.isVisible = bool;\n }\n }\n };\n // always async\n ElementMirror.prototype.stop = function (needsRevertAnimation, callback) {\n var _this = this;\n var done = function () {\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 ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) {\n var mirrorEl = this.mirrorEl;\n var 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, function () {\n mirrorEl.style.transition = '';\n callback();\n });\n };\n ElementMirror.prototype.cleanup = function () {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl);\n this.mirrorEl = null;\n }\n this.sourceEl = null;\n };\n ElementMirror.prototype.updateElPosition = function () {\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 ElementMirror.prototype.getMirrorEl = function () {\n var sourceElRect = this.sourceElRect;\n var 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.classList.add('fc-unselectable');\n mirrorEl.classList.add('fc-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 return ElementMirror;\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*/\nvar ScrollGeomCache = /** @class */ (function (_super) {\n __extends(ScrollGeomCache, _super);\n function ScrollGeomCache(scrollController, doesListening) {\n var _this = _super.call(this) || this;\n _this.handleScroll = function () {\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 return _this;\n }\n ScrollGeomCache.prototype.destroy = function () {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n }\n };\n ScrollGeomCache.prototype.getScrollTop = function () {\n return this.scrollTop;\n };\n ScrollGeomCache.prototype.getScrollLeft = function () {\n return this.scrollLeft;\n };\n ScrollGeomCache.prototype.setScrollTop = function (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 ScrollGeomCache.prototype.setScrollLeft = function (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 ScrollGeomCache.prototype.getClientWidth = function () {\n return this.clientWidth;\n };\n ScrollGeomCache.prototype.getClientHeight = function () {\n return this.clientHeight;\n };\n ScrollGeomCache.prototype.getScrollWidth = function () {\n return this.scrollWidth;\n };\n ScrollGeomCache.prototype.getScrollHeight = function () {\n return this.scrollHeight;\n };\n ScrollGeomCache.prototype.handleScrollChange = function () {\n };\n return ScrollGeomCache;\n}(ScrollController));\nvar ElementScrollGeomCache = /** @class */ (function (_super) {\n __extends(ElementScrollGeomCache, _super);\n function ElementScrollGeomCache(el, doesListening) {\n return _super.call(this, new ElementScrollController(el), doesListening) || this;\n }\n ElementScrollGeomCache.prototype.getEventTarget = function () {\n return this.scrollController.el;\n };\n ElementScrollGeomCache.prototype.computeClientRect = function () {\n return computeInnerRect(this.scrollController.el);\n };\n return ElementScrollGeomCache;\n}(ScrollGeomCache));\nvar WindowScrollGeomCache = /** @class */ (function (_super) {\n __extends(WindowScrollGeomCache, _super);\n function WindowScrollGeomCache(doesListening) {\n return _super.call(this, new WindowScrollController(), doesListening) || this;\n }\n WindowScrollGeomCache.prototype.getEventTarget = function () {\n return window;\n };\n WindowScrollGeomCache.prototype.computeClientRect = function () {\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 WindowScrollGeomCache.prototype.handleScrollChange = function () {\n this.clientRect = this.computeClientRect();\n };\n return WindowScrollGeomCache;\n}(ScrollGeomCache));\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\nvar 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*/\nvar AutoScroller = /** @class */ (function () {\n function AutoScroller() {\n var _this = this;\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 = function () {\n if (_this.isAnimating) { // wasn't cancelled between animation calls\n var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset);\n if (edge) {\n var 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 AutoScroller.prototype.start = function (pageX, pageY) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches();\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 AutoScroller.prototype.handleMove = function (pageX, pageY) {\n if (this.isEnabled) {\n var pointerScreenX = pageX - window.pageXOffset;\n var pointerScreenY = pageY - window.pageYOffset;\n var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n var 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 AutoScroller.prototype.stop = function () {\n if (this.isEnabled) {\n this.isAnimating = false; // will stop animation\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n scrollCache.destroy();\n }\n this.scrollCaches = null;\n }\n };\n AutoScroller.prototype.requestAnimation = function (now) {\n this.msSinceRequest = now;\n requestAnimationFrame(this.animate);\n };\n AutoScroller.prototype.handleSide = function (edge, seconds) {\n var scrollCache = edge.scrollCache;\n var edgeThreshold = this.edgeThreshold;\n var invDistance = edgeThreshold - edge.distance;\n var velocity = // the closer to the edge, the faster we scroll\n (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic\n this.maxVelocity * seconds;\n var 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 AutoScroller.prototype.computeBestEdge = function (left, top) {\n var edgeThreshold = this.edgeThreshold;\n var bestSide = null;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n var rect = scrollCache.clientRect;\n var leftDist = left - rect.left;\n var rightDist = rect.right - left;\n var topDist = top - rect.top;\n var 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: scrollCache, name: 'top', distance: topDist };\n }\n if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)) {\n bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist };\n }\n if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)) {\n bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist };\n }\n if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)) {\n bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist };\n }\n }\n }\n return bestSide;\n };\n AutoScroller.prototype.buildCaches = function () {\n return this.queryScrollEls().map(function (el) {\n if (el === window) {\n return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n }\n else {\n return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n }\n });\n };\n AutoScroller.prototype.queryScrollEls = function () {\n var els = [];\n for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) {\n var query = _a[_i];\n if (typeof query === 'object') {\n els.push(query);\n }\n else {\n els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query)));\n }\n }\n return els;\n };\n return AutoScroller;\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*/\nvar FeaturefulElementDragging = /** @class */ (function (_super) {\n __extends(FeaturefulElementDragging, _super);\n function FeaturefulElementDragging(containerEl) {\n var _this = _super.call(this, containerEl) || this;\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 = function (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.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 = function (ev) {\n if (_this.isInteracting) { // if false, still waiting for previous drag's revert\n _this.emitter.trigger('pointermove', ev);\n if (!_this.isDistanceSurpassed) {\n var minDistance = _this.minDistance;\n var distanceSq = void 0; // current distance from the origin, squared\n var deltaX = ev.deltaX, deltaY = ev.deltaY;\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 = function (ev) {\n if (_this.isInteracting) { // if false, still waiting for previous drag's revert\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 var 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 _this.mirror = new ElementMirror();\n _this.autoScroller = new AutoScroller();\n return _this;\n }\n FeaturefulElementDragging.prototype.destroy = function () {\n this.pointer.destroy();\n };\n FeaturefulElementDragging.prototype.startDelay = function (ev) {\n var _this = this;\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(function () {\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 FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) {\n this.isDelayEnded = true;\n this.tryStartDrag(ev);\n };\n FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) {\n this.isDistanceSurpassed = true;\n this.tryStartDrag(ev);\n };\n FeaturefulElementDragging.prototype.tryStartDrag = function (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);\n this.emitter.trigger('dragstart', ev);\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll();\n }\n }\n }\n };\n FeaturefulElementDragging.prototype.tryStopDrag = function (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) // bound with args\n );\n };\n FeaturefulElementDragging.prototype.stopDrag = function (ev) {\n this.isDragging = false;\n this.emitter.trigger('dragend', ev);\n };\n // fill in the implementations...\n FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) {\n this.pointer.shouldIgnoreMove = bool;\n };\n FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) {\n this.mirror.setIsVisible(bool);\n };\n FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n this.mirrorNeedsRevert = bool;\n };\n FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n this.autoScroller.isEnabled = bool;\n };\n return FeaturefulElementDragging;\n}(ElementDragging));\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*/\nvar OffsetTracker = /** @class */ (function () {\n function OffsetTracker(el) {\n this.origRect = computeRect(el);\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map(function (el) {\n return new ElementScrollGeomCache(el, true); // listen=true\n });\n }\n OffsetTracker.prototype.destroy = function () {\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n scrollCache.destroy();\n }\n };\n OffsetTracker.prototype.computeLeft = function () {\n var left = this.origRect.left;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n }\n return left;\n };\n OffsetTracker.prototype.computeTop = function () {\n var top = this.origRect.top;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n }\n return top;\n };\n OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) {\n var point = { left: pageX, top: pageY };\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)) {\n return false;\n }\n }\n return true;\n };\n return OffsetTracker;\n}());\n// certain clipping containers should never constrain interactions, like and
\n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n var 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*/\nvar HitDragging = /** @class */ (function () {\n function HitDragging(dragging, droppableStore) {\n var _this = this;\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.initialHit = null;\n this.movingHit = null;\n this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\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 _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n }\n else {\n dragging.setIgnoreMove(true);\n }\n };\n this.handleDragStart = function (ev) {\n _this.emitter.trigger('dragstart', ev);\n _this.handleMove(ev, true); // force = fire even if initially null\n };\n this.handleDragMove = function (ev) {\n _this.emitter.trigger('dragmove', ev);\n _this.handleMove(ev);\n };\n this.handlePointerUp = function (ev) {\n _this.releaseHits();\n _this.emitter.trigger('pointerup', ev);\n };\n this.handleDragEnd = function (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 EmitterMixin();\n }\n // sets initialHit\n // sets coordAdjust\n HitDragging.prototype.processFirstCoord = function (ev) {\n var origPoint = { left: ev.pageX, top: ev.pageY };\n var adjustedPoint = origPoint;\n var subjectEl = ev.subjectEl;\n var subjectRect;\n if (subjectEl !== document) {\n subjectRect = computeRect(subjectEl);\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n }\n var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n var 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 HitDragging.prototype.handleMove = function (ev, forceHandle) {\n var 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 HitDragging.prototype.prepareHits = function () {\n this.offsetTrackers = mapHash(this.droppableStore, function (interactionSettings) {\n interactionSettings.component.buildPositionCaches();\n return new OffsetTracker(interactionSettings.el);\n });\n };\n HitDragging.prototype.releaseHits = function () {\n var offsetTrackers = this.offsetTrackers;\n for (var id in offsetTrackers) {\n offsetTrackers[id].destroy();\n }\n this.offsetTrackers = {};\n };\n HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) {\n var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers;\n var bestHit = null;\n for (var id in droppableStore) {\n var component = droppableStore[id].component;\n var offsetTracker = offsetTrackers[id];\n if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n var originLeft = offsetTracker.computeLeft();\n var originTop = offsetTracker.computeTop();\n var positionLeft = offsetLeft - originLeft;\n var positionTop = offsetTop - originTop;\n var origRect = offsetTracker.origRect;\n var width = origRect.right - origRect.left;\n var 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 var hit = component.queryHit(positionLeft, positionTop, width, height);\n if (hit &&\n (\n // make sure the hit is within activeRange, meaning it's not a deal cell\n !component.props.dateProfile || // hack for DayTile\n rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) &&\n (!bestHit || hit.layer > bestHit.layer)) {\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 return HitDragging;\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\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*/\nvar DateClicking = /** @class */ (function (_super) {\n __extends(DateClicking, _super);\n function DateClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl));\n };\n // won't even fire if moving was ignored\n _this.handleDragEnd = function (ev) {\n var component = _this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var pointer = _this.dragging.pointer;\n if (!pointer.wasTouchScroll) {\n var _b = _this.hitDragging, initialHit = _b.initialHit, finalHit = _b.finalHit;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, view, ev.origEvent);\n }\n }\n };\n var component = settings.component;\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n _this.dragging = new FeaturefulElementDragging(component.el);\n _this.dragging.autoScroller.isEnabled = false;\n var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n hitDragging.emitter.on('dragend', _this.handleDragEnd);\n return _this;\n }\n DateClicking.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return DateClicking;\n}(Interaction));\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*/\nvar DateSelecting = /** @class */ (function (_super) {\n __extends(DateSelecting, _super);\n function DateSelecting(settings) {\n var _this = _super.call(this, settings) || this;\n _this.dragSelection = null;\n _this.handlePointerDown = function (ev) {\n var _a = _this, component = _a.component, dragging = _a.dragging;\n var options = component.context.options;\n var 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(component) : null;\n };\n _this.handleDragStart = function (ev) {\n _this.component.context.calendar.unselect(ev); // unselect previous selections\n };\n _this.handleHitUpdate = function (hit, isFinal) {\n var calendar = _this.component.context.calendar;\n var dragSelection = null;\n var isInvalid = false;\n if (hit) {\n dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers);\n if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) {\n isInvalid = true;\n dragSelection = null;\n }\n }\n if (dragSelection) {\n calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n }\n else if (!isFinal) { // only unselect if moved away while dragging\n calendar.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 = function (pev) {\n if (_this.dragSelection) {\n // selection is already rendered, so just need to report selection\n _this.component.context.calendar.triggerDateSelect(_this.dragSelection, pev);\n _this.dragSelection = null;\n }\n };\n var component = settings.component;\n var options = component.context.options;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = options.selectMinDistance || 0;\n dragging.autoScroller.isEnabled = options.dragScroll;\n var 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 return _this;\n }\n DateSelecting.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return DateSelecting;\n}(Interaction));\nfunction getComponentTouchDelay(component) {\n var options = component.context.options;\n var delay = options.selectLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n var dateSpan0 = hit0.dateSpan;\n var dateSpan1 = hit1.dateSpan;\n var ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end\n ];\n ms.sort(compareNumbers);\n var props = {};\n for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) {\n var transformer = dateSelectionTransformers_1[_i];\n var res = transformer(hit0, hit1);\n if (res === false) {\n return null;\n }\n else if (res) {\n __assign(props, res);\n }\n }\n props.range = { start: ms[0], end: ms[3] };\n props.allDay = dateSpan0.allDay;\n return props;\n}\n\nvar EventDragging = /** @class */ (function (_super) {\n __extends(EventDragging, _super);\n function EventDragging(settings) {\n var _this = _super.call(this, settings) || this;\n // internal state\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.receivingCalendar = null;\n _this.validMutation = null;\n _this.mutatedRelevantEvents = null;\n _this.handlePointerDown = function (ev) {\n var origTarget = ev.origEvent.target;\n var _a = _this, component = _a.component, dragging = _a.dragging;\n var mirror = dragging.mirror;\n var options = component.context.options;\n var initialCalendar = component.context.calendar;\n var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl);\n var eventRange = _this.eventRange = subjectSeg.eventRange;\n var eventInstanceId = eventRange.instance.instanceId;\n _this.relevantEvents = getRelevantEvents(initialCalendar.state.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$1(component) :\n null;\n mirror.parentNode = initialCalendar.el;\n mirror.revertDuration = options.dragRevertDuration;\n var isValid = component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-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-draggable');\n };\n _this.handleDragStart = function (ev) {\n var context = _this.component.context;\n var initialCalendar = context.calendar;\n var eventRange = _this.eventRange;\n var eventInstanceId = eventRange.instance.instanceId;\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== _this.component.props.eventSelection) {\n initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId });\n }\n }\n else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialCalendar.dispatch({ type: 'UNSELECT_EVENT' });\n }\n if (_this.isDragging) {\n initialCalendar.unselect(ev); // unselect *date* selection\n initialCalendar.publiclyTrigger('eventDragStart', [\n {\n el: _this.subjectSeg.el,\n event: new EventApi(initialCalendar, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: context.view\n }\n ]);\n }\n };\n _this.handleHitUpdate = function (hit, isFinal) {\n if (!_this.isDragging) {\n return;\n }\n var relevantEvents = _this.relevantEvents;\n var initialHit = _this.hitDragging.initialHit;\n var initialCalendar = _this.component.context.calendar;\n // states based on new hit\n var receivingCalendar = null;\n var mutation = null;\n var mutatedRelevantEvents = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: _this.subjectSeg\n };\n if (hit) {\n var receivingComponent = hit.component;\n receivingCalendar = receivingComponent.context.calendar;\n var receivingOptions = receivingComponent.context.options;\n if (initialCalendar === receivingCalendar ||\n receivingOptions.editable && receivingOptions.droppable) {\n mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers);\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!receivingComponent.isInteractionValid(interaction)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = createEmptyEventStore();\n }\n }\n }\n else {\n receivingCalendar = null;\n }\n }\n _this.displayDrag(receivingCalendar, interaction);\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (initialCalendar === receivingCalendar && // 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 || !document.querySelector('.fc-mirror'));\n // assign states based on new hit\n _this.receivingCalendar = receivingCalendar;\n _this.validMutation = mutation;\n _this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n _this.handlePointerUp = function () {\n if (!_this.isDragging) {\n _this.cleanup(); // because handleDragEnd won't fire\n }\n };\n _this.handleDragEnd = function (ev) {\n if (_this.isDragging) {\n var context = _this.component.context;\n var initialCalendar_1 = context.calendar;\n var initialView = context.view;\n var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation;\n var eventDef = _this.eventRange.def;\n var eventInstance = _this.eventRange.instance;\n var eventApi = new EventApi(initialCalendar_1, eventDef, eventInstance);\n var relevantEvents_1 = _this.relevantEvents;\n var mutatedRelevantEvents = _this.mutatedRelevantEvents;\n var finalHit = _this.hitDragging.finalHit;\n _this.clearDrag(); // must happen after revert animation\n initialCalendar_1.publiclyTrigger('eventDragStop', [\n {\n el: _this.subjectSeg.el,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: initialView\n }\n ]);\n if (validMutation) {\n // dropped within same calendar\n if (receivingCalendar === initialCalendar_1) {\n initialCalendar_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents\n });\n var transformed = {};\n for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) {\n var transformer = _b[_i];\n __assign(transformed, transformer(validMutation, initialCalendar_1));\n }\n var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new EventApi(// the data AFTER the mutation\n initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () {\n initialCalendar_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents_1\n });\n }, jsEvent: ev.origEvent, view: initialView });\n initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]);\n // dropped in different calendar\n }\n else if (receivingCalendar) {\n initialCalendar_1.publiclyTrigger('eventLeave', [\n {\n draggedEl: ev.subjectEl,\n event: eventApi,\n view: initialView\n }\n ]);\n initialCalendar_1.dispatch({\n type: 'REMOVE_EVENT_INSTANCES',\n instances: _this.mutatedRelevantEvents.instances\n });\n receivingCalendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: _this.mutatedRelevantEvents\n });\n if (ev.isTouch) {\n receivingCalendar.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId\n });\n }\n var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644\n });\n receivingCalendar.publiclyTrigger('drop', [dropArg]);\n receivingCalendar.publiclyTrigger('eventReceive', [\n {\n draggedEl: ev.subjectEl,\n event: new EventApi(// the data AFTER the mutation\n receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]),\n view: finalHit.component // should this be finalHit.component.view? See #4644\n }\n ]);\n }\n }\n else {\n initialCalendar_1.publiclyTrigger('_noEventDrop');\n }\n }\n _this.cleanup();\n };\n var component = _this.component;\n var options = component.context.options;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = options.dragScroll;\n var 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 return _this;\n }\n EventDragging.prototype.destroy = function () {\n this.dragging.destroy();\n };\n // render a drag state on the next receivingCalendar\n EventDragging.prototype.displayDrag = function (nextCalendar, state) {\n var initialCalendar = this.component.context.calendar;\n var prevCalendar = this.receivingCalendar;\n // does the previous calendar need to be cleared?\n if (prevCalendar && prevCalendar !== nextCalendar) {\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 (prevCalendar === initialCalendar) {\n prevCalendar.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: state.origSeg\n }\n });\n // completely clear the old calendar if it wasn't the initial\n }\n else {\n prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n if (nextCalendar) {\n nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n }\n };\n EventDragging.prototype.clearDrag = function () {\n var initialCalendar = this.component.context.calendar;\n var receivingCalendar = this.receivingCalendar;\n if (receivingCalendar) {\n receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingCalendar) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n };\n EventDragging.prototype.cleanup = function () {\n this.subjectSeg = null;\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null;\n this.receivingCalendar = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n };\n EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11\n return EventDragging;\n}(Interaction));\nfunction computeEventMutation(hit0, hit1, massagers) {\n var dateSpan0 = hit0.dateSpan;\n var dateSpan1 = hit1.dateSpan;\n var date0 = dateSpan0.range.start;\n var date1 = dateSpan1.range.start;\n var standardProps = {};\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay;\n standardProps.hasEnd = hit1.component.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(date0);\n }\n }\n var delta = diffDates(date0, date1, hit0.component.context.dateEnv, hit0.component === hit1.component ?\n hit0.component.largeUnit :\n null);\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false;\n }\n var mutation = {\n datesDelta: delta,\n standardProps: standardProps\n };\n for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) {\n var massager = massagers_1[_i];\n massager(mutation, hit0, hit1);\n }\n return mutation;\n}\nfunction getComponentTouchDelay$1(component) {\n var options = component.context.options;\n var delay = options.eventLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\n\nvar EventDragging$1 = /** @class */ (function (_super) {\n __extends(EventDragging, _super);\n function EventDragging(settings) {\n var _this = _super.call(this, settings) || this;\n // internal state\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 = function (ev) {\n var component = _this.component;\n var seg = _this.querySeg(ev);\n var 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 = function (ev) {\n var _a = _this.component.context, calendar = _a.calendar, view = _a.view;\n var eventRange = _this.eventRange;\n _this.relevantEvents = getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId);\n _this.draggingSeg = _this.querySeg(ev);\n calendar.unselect();\n calendar.publiclyTrigger('eventResizeStart', [\n {\n el: _this.draggingSeg.el,\n event: new EventApi(calendar, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n };\n _this.handleHitUpdate = function (hit, isFinal, ev) {\n var calendar = _this.component.context.calendar;\n var relevantEvents = _this.relevantEvents;\n var initialHit = _this.hitDragging.initialHit;\n var eventInstance = _this.eventRange.instance;\n var mutation = null;\n var mutatedRelevantEvents = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: _this.draggingSeg\n };\n if (hit) {\n mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms);\n }\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!_this.component.isInteractionValid(interaction)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = null;\n }\n }\n if (mutatedRelevantEvents) {\n calendar.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction\n });\n }\n else {\n calendar.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 = function (ev) {\n var _a = _this.component.context, calendar = _a.calendar, view = _a.view;\n var eventDef = _this.eventRange.def;\n var eventInstance = _this.eventRange.instance;\n var eventApi = new EventApi(calendar, eventDef, eventInstance);\n var relevantEvents = _this.relevantEvents;\n var mutatedRelevantEvents = _this.mutatedRelevantEvents;\n calendar.publiclyTrigger('eventResizeStop', [\n {\n el: _this.draggingSeg.el,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n if (_this.validMutation) {\n calendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents\n });\n calendar.publiclyTrigger('eventResize', [\n {\n el: _this.draggingSeg.el,\n startDelta: _this.validMutation.startDelta || createDuration(0),\n endDelta: _this.validMutation.endDelta || createDuration(0),\n prevEvent: eventApi,\n event: new EventApi(// the data AFTER the mutation\n calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null),\n revert: function () {\n calendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents\n });\n },\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n }\n else {\n calendar.publiclyTrigger('_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 var component = settings.component;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.pointer.selector = '.fc-resizer';\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n var 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 return _this;\n }\n EventDragging.prototype.destroy = function () {\n this.dragging.destroy();\n };\n EventDragging.prototype.querySeg = function (ev) {\n return getElSeg(elementClosest(ev.subjectEl, this.component.fgSegSelector));\n };\n return EventDragging;\n}(Interaction));\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) {\n var dateEnv = hit0.component.context.dateEnv;\n var date0 = hit0.dateSpan.range.start;\n var date1 = hit1.dateSpan.range.start;\n var delta = diffDates(date0, date1, dateEnv, hit0.component.largeUnit);\n var props = {};\n for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {\n var transform = transforms_1[_i];\n var res = transform(hit0, hit1);\n if (res === false) {\n return null;\n }\n else if (res) {\n __assign(props, res);\n }\n }\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n props.startDelta = delta;\n return props;\n }\n }\n else {\n if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n props.endDelta = delta;\n return props;\n }\n }\n return null;\n}\n\nvar UnselectAuto = /** @class */ (function () {\n function UnselectAuto(calendar) {\n var _this = this;\n this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n this.onSelect = function (selectInfo) {\n if (selectInfo.jsEvent) {\n _this.isRecentPointerDateSelect = true;\n }\n };\n this.onDocumentPointerUp = function (pev) {\n var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer;\n var state = calendar.state;\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (state.dateSelection && // an existing date selection?\n !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n var unselectAuto = calendar.viewOpt('unselectAuto');\n var unselectCancel = calendar.viewOpt('unselectCancel');\n if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) {\n calendar.unselect(pev);\n }\n }\n if (state.eventSelection && // an existing event selected?\n !elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event\n ) {\n calendar.dispatch({ type: 'UNSELECT_EVENT' });\n }\n }\n _this.isRecentPointerDateSelect = false;\n };\n this.calendar = calendar;\n var documentPointer = this.documentPointer = new PointerDragging(document);\n documentPointer.shouldIgnoreMove = true;\n documentPointer.shouldWatchScroll = false;\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 calendar.on('select', this.onSelect);\n }\n UnselectAuto.prototype.destroy = function () {\n this.calendar.off('select', this.onSelect);\n this.documentPointer.destroy();\n };\n return UnselectAuto;\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*/\nvar ExternalElementDragging = /** @class */ (function () {\n function ExternalElementDragging(dragging, suppliedDragMeta) {\n var _this = this;\n this.receivingCalendar = 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 = function (ev) {\n _this.dragMeta = _this.buildDragMeta(ev.subjectEl);\n };\n this.handleHitUpdate = function (hit, isFinal, ev) {\n var dragging = _this.hitDragging.dragging;\n var receivingCalendar = null;\n var droppableEvent = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: _this.dragMeta.create,\n origSeg: null\n };\n if (hit) {\n receivingCalendar = hit.component.context.calendar;\n if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) {\n droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar);\n interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n isInvalid = !isInteractionValid(interaction, receivingCalendar);\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore();\n droppableEvent = null;\n }\n }\n }\n _this.displayDrag(receivingCalendar, 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-mirror'));\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent);\n _this.receivingCalendar = receivingCalendar;\n _this.droppableEvent = droppableEvent;\n }\n };\n this.handleDragEnd = function (pev) {\n var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent;\n _this.clearDrag();\n if (receivingCalendar && droppableEvent) {\n var finalHit = _this.hitDragging.finalHit;\n var finalView = finalHit.component.context.view;\n var dragMeta = _this.dragMeta;\n var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView });\n receivingCalendar.publiclyTrigger('drop', [arg]);\n if (dragMeta.create) {\n receivingCalendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: eventTupleToStore(droppableEvent)\n });\n if (pev.isTouch) {\n receivingCalendar.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId\n });\n }\n // signal that an external event landed\n receivingCalendar.publiclyTrigger('eventReceive', [\n {\n draggedEl: pev.subjectEl,\n event: new EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance),\n view: finalView\n }\n ]);\n }\n }\n _this.receivingCalendar = null;\n _this.droppableEvent = null;\n };\n var 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 ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta);\n }\n else if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl));\n }\n else {\n return getDragMetaFromEl(subjectEl);\n }\n };\n ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) {\n var prevCalendar = this.receivingCalendar;\n if (prevCalendar && prevCalendar !== nextCalendar) {\n prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n if (nextCalendar) {\n nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n }\n };\n ExternalElementDragging.prototype.clearDrag = function () {\n if (this.receivingCalendar) {\n this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n };\n ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) {\n var dropAccept = receivingCalendar.opt('dropAccept');\n if (typeof dropAccept === 'function') {\n return dropAccept(el);\n }\n else if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept));\n }\n return true;\n };\n return ExternalElementDragging;\n}());\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, calendar) {\n var defProps = __assign({}, dragMeta.leftoverProps);\n for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(defProps, transform(dateSpan, dragMeta));\n }\n var def = parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd\n calendar);\n var 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 = calendar.dateEnv.add(start, dragMeta.startTime);\n }\n var end = dragMeta.duration ?\n calendar.dateEnv.add(start, dragMeta.duration) :\n calendar.getDefaultEventEnd(dateSpan.allDay, start);\n var instance = createEventInstance(def.defId, { start: start, end: end });\n return { def: def, instance: instance };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n var str = getEmbeddedElData(el, 'event');\n var 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 var prefix = config.dataAttrPrefix;\n var 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*/\nvar ExternalDraggable = /** @class */ (function () {\n function ExternalDraggable(el, settings) {\n var _this = this;\n if (settings === void 0) { settings = {}; }\n this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\n var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay;\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : globalDefaults.eventDragMinDistance);\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : globalDefaults.longPressDelay) :\n 0;\n };\n this.handleDragStart = function (ev) {\n if (ev.isTouch &&\n _this.dragging.delay &&\n ev.subjectEl.classList.contains('fc-event')) {\n _this.dragging.mirror.getMirrorEl().classList.add('fc-selected');\n }\n };\n this.settings = settings;\n var 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);\n }\n ExternalDraggable.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return ExternalDraggable;\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*/\nvar InferredElementDragging = /** @class */ (function (_super) {\n __extends(InferredElementDragging, _super);\n function InferredElementDragging(containerEl) {\n var _this = _super.call(this, containerEl) || this;\n _this.shouldIgnoreMove = false;\n _this.mirrorSelector = '';\n _this.currentMirrorEl = null;\n _this.handlePointerDown = function (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 = function (ev) {\n if (!_this.shouldIgnoreMove) {\n _this.emitter.trigger('dragmove', ev);\n }\n };\n _this.handlePointerUp = function (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 var 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 return _this;\n }\n InferredElementDragging.prototype.destroy = function () {\n this.pointer.destroy();\n };\n InferredElementDragging.prototype.setIgnoreMove = function (bool) {\n this.shouldIgnoreMove = bool;\n };\n InferredElementDragging.prototype.setMirrorIsVisible = function (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 var mirrorEl = this.mirrorSelector ?\n document.querySelector(this.mirrorSelector) :\n null;\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl;\n mirrorEl.style.visibility = 'hidden';\n }\n }\n };\n return InferredElementDragging;\n}(ElementDragging));\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nvar ThirdPartyDraggable = /** @class */ (function () {\n function ThirdPartyDraggable(containerOrSettings, settings) {\n var 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 var 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 new ExternalElementDragging(dragging, settings.eventData);\n }\n ThirdPartyDraggable.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return ThirdPartyDraggable;\n}());\n\nvar main = createPlugin({\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging\n});\n\nexport default main;\nexport { ExternalDraggable as Draggable, FeaturefulElementDragging, PointerDragging, ThirdPartyDraggable };\n","/*!\nFullCalendar Core Package v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\n// Creating\n// ----------------------------------------------------------------------------------------------------------------\nvar elementPropHash = {\n className: true,\n colSpan: true,\n rowSpan: true\n};\nvar containerTagHash = {\n '' +\n ' |
' +\n ' |
' +\n ' |
' +\n (options.allDaySlot ?\n '' +\n ' ' :\n '') +\n ' | ' +\n '