{"version":3,"sources":["webpack:///./src/myTasks/components/ListOfClasses.vue?c43f","webpack:///src/myTasks/components/ListOfClasses.vue","webpack:///./src/myTasks/components/ListOfClasses.vue?d3ee","webpack:///./src/myTasks/components/ListOfClasses.vue","webpack:///./src/myTasks/views/CalendarView.vue?7d3e","webpack:///./src/myTasks/components/skeletons/CalendarSkeleton.vue?36ef","webpack:///./src/myTasks/components/skeletons/CalendarSkeleton.vue","webpack:///./src/myTasks/components/MyCalendar.vue?8cd2","webpack:///./node_modules/@fullcalendar/daygrid/main.esm.js","webpack:///./node_modules/@fullcalendar/timegrid/main.esm.js","webpack:///./node_modules/@fullcalendar/interaction/main.esm.js","webpack:///src/myTasks/components/MyCalendar.vue","webpack:///./src/myTasks/components/MyCalendar.vue?07da","webpack:///./src/myTasks/components/MyCalendar.vue","webpack:///src/myTasks/views/CalendarView.vue","webpack:///./src/myTasks/views/CalendarView.vue?e2bf","webpack:///./src/myTasks/views/CalendarView.vue","webpack:///./node_modules/@fullcalendar/core/main.esm.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./src/myTasks/constants/calendar.js","webpack:///./src/myTasks/constants/task.js","webpack:///./src/myTasks/constants/index.js","webpack:///./src/myTasks/components/ListOfClasses.vue?b1f9","webpack:///./src/myTasks/adapters/calendarAdapters.js","webpack:///./src/myTasks/adapters/taskAdapters.js","webpack:///./src/myTasks/adapters/index.js","webpack:///./node_modules/@fullcalendar/vue/main.esm.js","webpack:///./src/myTasks/components/MyCalendar.vue?24b5"],"names":["render","_vm","this","_h","$createElement","_c","_self","class","className","staticClass","_v","_s","title","list","length","style","_l","item","key","id","name","staticRenderFns","props","String","Array","type","default","component","attrs","navBarTitle","loading","scopedSlots","_u","fn","proxy","loadingChangesInEvent","calendarEvents","userIsAParent","parentCanEdit","on","dateClick","eventEdited","classes","$event","goAddTask","_e","script","editable","changeViewToCalendar","ref","left","right","calendarPlugins","calendarWeekends","eventRender","eventClick","eventResizeOrDrop","extendStatics","d","b","Object","setPrototypeOf","__proto__","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","call","apply","_super","DayGridDateProfileGenerator","buildRenderRange","currentRange","currentRangeUnit","isRangeAllDay","endOfWeek","dateEnv","renderRange","start","end","test","startOfWeek","valueOf","options","monthMode","fixedWeekCount","rowCnt","Math","ceil","Popover","_this","isHidden","margin","documentMousedown","ev","el","contains","target","hide","show","display","position","trigger","top","content","parentEl","appendChild","autoHide","document","addEventListener","destroy","removeEventListener","elDims","getBoundingClientRect","origin","offsetParent","clippingRect","undefined","width","min","bottom","height","max","slice","SimpleDayGridEventRenderer","renderSegHtml","seg","mirrorInfo","timeText","titleHtml","_a","context","view","eventRange","eventDef","def","eventUi","ui","allDay","isDraggable","computeEventDraggable","isResizableFromStart","isStart","computeEventStartResizable","isResizableFromEnd","isEnd","computeEventEndResizable","getSegClasses","skinCss","getSkinCss","timeHtml","unshift","getTimeText","join","url","dir","computeEventTimeFormat","hour","minute","omitZeroMinute","meridiem","computeDisplayEventEnd","DayGridEventRenderer","dayGrid","attachSegs","segs","rowStructs","renderSegRows","rowEls","forEach","rowNode","querySelector","tbodyEl","removeSegPopover","detachSegs","rowStruct","pop","segRows","row","groupSegRows","push","renderSegRow","rowSegs","levelSegs","col","tr","j","td","colCnt","isRtl","segLevels","buildSegLevels","levelCnt","tbody","createElement","segMatrix","cellMatrix","loneCellMatrix","emptyCellsUntil","endCol","rowSpan","leftCol","lastCol","firstCol","rightCol","colSpan","introHtml","renderProps","renderIntroHtml","levels","sortEventSegs","isDaySegCollision","level","sort","compareDaySegCols","otherSegs","otherSeg","a","DayGridMirrorRenderer","sourceSeg","skeletonTopEl","skeletonTop","skeletonEl","EMPTY_CELL_HTML","DayGridFillRenderer","fillSegTag","renderSegs","filter","els","renderFillRow","trEl","startCol","toLowerCase","getElementsByTagName","DayTile","eventRenderer","renderFrame","_renderFrame","renderFgEvents","bind","unrender","renderEventSelection","selectByInstanceId","unselectByInstanceId","renderEventDrag","hideByHash","showByHash","renderEventResize","calendar","registerInteractiveComponent","useEventCenter","date","fgSegs","eventSelection","eventDragInstances","eventResizeInstances","unregisterInteractiveComponent","theme","format","opt","innerHTML","getClass","getIconClass","segContainerEl","queryHit","positionLeft","positionTop","elWidth","elHeight","dateSpan","range","dayEl","rect","layer","DayTileEventRenderer","dayTile","_i","segs_1","segs_2","DayBgRow","renderHtml","parts","cells","cell","renderCellHtml","dateProfile","htmlAttrs","reverse","otherAttrs","isDateValid","activeRange","formatIso","omitTime","DAY_NUM_FORMAT","day","WEEK_NUM_FORMAT","week","DayGrid","bottomCoordPadding","isCellSizesDirty","fillRenderer","mirrorRenderer","renderCells","_renderCells","_unrenderCells","renderBusinessHours","renderDateSelection","renderBgEvents","_renderEventDrag","_unrenderEventDrag","_renderEventResize","_unrenderEventResize","isRigid","businessHourSegs","dateSelectionSegs","bgEventSegs","fgEventSegs","eventDrag","eventResize","segPopoverTile","updateSegPopoverTile","getCellRange","ownProps","receiveProps","affectedInstances","_b","html","renderDayRowHtml","cellEls","rowPositions","colPositions","publiclyTrigger","toDate","getCellEl","bgRow","renderBgIntroHtml","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","cellWeekNumbersVisible","colWeekNumbersVisible","intro","renderNumberIntroHtml","renderNumberCellsHtml","htmls","renderNumberCellHtml","weekCalcFirstDow","isDayNumberVisible","weekDow","getUTCDay","updateSize","isResize","isEventsUpdated","buildPositionCaches","computeSizes","assignSizes","buildColPositions","buildRowPositions","build","bottoms","positionToHit","leftPosition","topPosition","leftToIndex","topToIndex","relativeRect","lefts","rights","tops","state","isResizing","segPopover","limitRows","levelLimit","rowLevelLimit","unlimitRow","computeRowLevelLimit","limitRow","rowEl","rowBottom","trEls","classList","remove","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","segMoreNodes","moreTd","moreWrap","moreLink","moreNodes","getCellSegs","renderMoreLink","node","add","concat","moreEls","limitedEls","limitedEl","hiddenSegs","innerText","getMoreLinkText","clickOption","_col","moreEl","currentTarget","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","jsEvent","showSegPopover","zoomTo","topEl","parentNode","releaseAfterSizingTriggers","dayDate","dayStart","dayEnd","dayRange","newSegs","origRange","slicedRange","durationEditable","instance","num","startLevel","WEEK_NUM_FORMAT$1","DayGridView","viewSpec","dateProfileGenerator","renderHeadIntroHtml","weekNumberStyleAttr","renderDayGridNumberIntroHtml","weekStart","forceOff","renderDayGridBgIntroHtml","renderDayGridIntroHtml","renderSkeletonHtml","scroller","dayGridContainerEl","dayGridEl","weekNumberWidth","hasRigidRows","eventLimit","viewHeight","isAuto","updateBaseSize","scrollerHeight","scrollbarWidths","headRowEl","header","clear","computeScrollerHeight","setGridHeight","setHeight","getScrollbarWidths","lockOverflow","computeDateScroll","duration","queryDateScroll","getScrollTop","applyDateScroll","scroll","setScrollTop","dateProfileGeneratorClass","SimpleDayGrid","slicer","DayGridSlicer","dayTable","sliceProps","nextDayThreshold","rawHit","sliceRange","dateRange","DayGridView$1","_context","buildDayTable","simpleDayGrid","dates","headerDates","datesRepDistinctDays","businessHours","dateSelection","eventStore","eventUiBases","daySeries","defaultView","views","dayGridDay","days","dayGridWeek","weeks","dayGridMonth","months","TimeGridEventRenderer","timeGrid","fullTimeFormat","separator","defaultRangeSeparator","segsByCol","groupSegsByCol","attachSegsByCol","fgContainerEls","computeSegSizes","computeSegVerticals","computeSegHorizontals","assignSegSizes","assignSegVerticals","assignSegCss","fullTimeText","startTimeText","unzonedStart","unzonedEnd","_getTimeText","level0","buildSlotSegLevels","computeForwardSlotSegs","computeSlotSegPressures","computeSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardSegs","forwardCoord","sortForwardSegs","backwardCoord","objs","map","buildTimeGridSegCompareObj","specs","field","order","eventOrderSpecs","obj0","obj1","c","_seg","generateSegCss","shouldOverlap","slotEventOverlap","generateSegVerticalCss","zIndex","forwardPressure","computeSlotSegCollisions","k","forwardSeg","results","isSlotSegCollision","seg1","seg2","obj","TimeGridMirrorRenderer","mirrorContainerEls","sourceSegProps","marginLeft","marginRight","TimeGridFillRenderer","containerEls","bgContainerEls","businessContainerEls","highlightContainerEls","AGENDA_STOCK_SUB_DURATIONS","hours","minutes","seconds","TimeGrid","isSlatSizesDirty","isColSizesDirty","renderSlats","_renderSlats","renderColumns","_renderColumns","_unrenderColumns","_renderDateSelection","_unrenderDateSelection","processOptions","rootBgContainerEl","slatContainerEl","bottomRuleEl","snapsPerSlot","input","slotDuration","snapDuration","isArray","labelFormat","labelInterval","computeLabelInterval","slotsPerLabel","buildSlatPositions","renderSlatRowHtml","slatEls","slatPositions","slotDate","isLabeled","axisHtml","slotTime","minTime","slotIterator","maxTime","colEls","renderContentSkeleton","unrenderContentSkeleton","contentSkeletonEl","colContainerEls","getNowIndicatorUnit","renderNowIndicator","computeDateTop","nodes","lineEl","arrowEl","nowIndicatorEls","unrenderNowIndicator","getTotalSlatHeight","when","startOfDayDate","computeTimeTop","slatIndex","slatRemainder","len","slatCoverage","milliseconds","floor","getHeight","eventMinHeight","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","time","isEvent","isDragging","isSelecting","AllDaySplitter","getKeyInfo","timed","getKeysForDateSpan","getKeysForEventDef","TIMEGRID_ALL_DAY_EVENT_LIMIT","WEEK_HEADER_FORMAT","TimeGridView","splitter","weekText","dayCnt","axisStyleAttr","renderTimeGridBgIntroHtml","renderTimeGridIntroHtml","timeGridWrapEl","timeGridEl","dividerEl","axisWidth","noScrollRowEls","usesMinMaxTime","SimpleTimeGrid","buildDayRanges","dayRanges","sliceNowDate","ranges","TimeGridSlicer","segRange","TimeGridView$1","simpleTimeGrid","splitProps","allDaySlot","timeGridDay","timeGridWeek","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","containerEl","subjectEl","downEl","selector","handleSelector","shouldIgnoreMove","shouldWatchScroll","isTouchDragging","wasTouchScroll","handleMouseDown","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","pev","createEventFromMouse","emitter","initScrollWatch","handleMouseMove","handleMouseUp","recordCoords","cleanup","handleTouchStart","createEventFromTouch","handleTouchMove","handleTouchEnd","window","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","pageXOffset","prevScrollX","prevPageX","pageY","pageYOffset","prevScrollY","prevPageY","origEvent","isTouch","deltaX","origPageX","deltaY","origPageY","passive","listenerCreated","listenerDestroyed","querySubjectEl","destroyScrollWatch","cancelTouchScroll","isFirst","touches","button","ctrlKey","setTimeout","onWindowTouchMove","preventDefault","ElementMirror","isVisible","sourceEl","mirrorEl","sourceElRect","body","revertDuration","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","bool","stop","needsRevertAnimation","callback","done","doRevertAnimation","finalSourceElRect","transition","getMirrorEl","cloneNode","visibility","boxSizing","ScrollGeomCache","scrollController","doesListening","scrollTop","scrollLeft","getScrollLeft","handleScrollChange","origScrollTop","origScrollLeft","scrollWidth","getScrollWidth","scrollHeight","getScrollHeight","clientWidth","getClientWidth","clientHeight","getClientHeight","clientRect","computeClientRect","getEventTarget","getMaxScrollTop","setScrollLeft","getMaxScrollLeft","ElementScrollGeomCache","WindowScrollGeomCache","getTime","performance","now","Date","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","buildCaches","yDelta","xDelta","scrollCache","requestAnimationFrame","invDistance","distance","velocity","sign","bestSide","leftDist","rightDist","topDist","bottomDist","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","queryScrollEls","query","querySelectorAll","FeaturefulElementDragging","delay","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","pointer","mirror","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","tryStopDrag","clearTimeout","handleDelayEnd","tryStartDrag","stopDrag","setIgnoreMove","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","OffsetTracker","origRect","computeLeft","computeTop","isWithinClipping","point","isIgnoredClipping","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","offsetLeft","offsetTop","bestHit","offsetTracker","originLeft","originTop","hit0","hit1","Boolean","DateClicking","settings","isValidDateDownEl","hitDragging","triggerDateClick","DateSelecting","dragSelection","canSelect","getComponentTouchDelay","unselect","handleHitUpdate","isFinal","isInvalid","joinHitsIntoSelection","pluginSystem","hooks","dateSelectionTransformers","isDateSelectionValid","dispatch","selection","triggerDateSelect","dateSpan0","dateSpan1","ms","dateSelectionTransformers_1","transformer","res","EventDragging","subjectSeg","relevantEvents","receivingCalendar","validMutation","mutatedRelevantEvents","origTarget","initialCalendar","eventInstanceId","instanceId","getComponentTouchDelay$1","isValid","isValidSegDownEl","event","mutation","interaction","affectedEvents","mutatedEvents","origSeg","receivingComponent","computeEventMutation","eventDragMutationMassagers","isInteractionValid","displayDrag","initialCalendar_1","initialView","eventInstance","eventApi","relevantEvents_1","clearDrag","transformed","eventDropTransformers","eventDropArg","delta","datesDelta","oldEvent","defs","defId","instances","revert","draggedEl","dropArg","buildDatePointApi","SELECTOR","nextCalendar","prevCalendar","massagers","date0","date1","standardProps","hasEnd","largeUnit","massagers_1","massager","EventDragging$1","draggingSeg","querySeg","computeMutation","eventResizeJoinTransforms","startDelta","endDelta","prevEvent","fgSegSelector","isFromStart","instanceRange","transforms","transforms_1","transform","UnselectAuto","isRecentPointerDateSelect","onSelect","selectInfo","onDocumentPointerUp","documentPointer","unselectAuto","viewOpt","unselectCancel","off","ExternalElementDragging","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","computeEventForDateSpan","finalView","arg","getDragMetaFromEl","dropAccept","defProps","leftoverProps","externalDefTransforms","sourceId","startTime","getDefaultEventEnd","str","getEmbeddedElData","JSON","parse","prefix","dataAttrPrefix","prefixedName","getAttribute","ExternalDraggable","longPressDelay","eventDragMinDistance","itemSelector","appendTo","eventData","InferredElementDragging","mirrorSelector","currentMirrorEl","handlePointerMove","ThirdPartyDraggable","containerOrSettings","Element","componentInteractions","calendarInteractions","elementDraggingImpl","components","FullCalendar","required","data","tooltipDisabled","methods","calendarApi","changeView","styleView","extendedProps","icon","prepend","$router","params","dateStr","search","$emit","reloadCalendar","eventSources","addEventSource","refetchEvents","watch","NavBar","MyCalendar","CalendarSkeleton","ListOfClasses","LoadingOverlay","color","allEvents","selectDate","selectHour","sessionStore","noneClass","getAllCalendarQuery","all","computed","childName","getChildId","childSelectedId","userId","getCurrentChild","taskTypes","calendarHour","toString","calendarDate","elementPropHash","containerTagHash","attrName","applyStyle","setAttribute","appendToElement","htmlToElement","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","findChildren","parents","children","childNode","PIXEL_PROP_RE","propName","applyStyleProp","val","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","marginTop","marginBottom","getClippingParents","overflowY","overflowX","computeClippingRect","reduce","rect0","listenBySelector","eventType","handler","realHandler","matchedChild","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","realOnMouseLeave_1","transitionEventNames","whenTransitionDone","realCallback","eventName","DAY_IDS","addWeeks","m","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","startOfDay","m1day","years","diffWholeWeeks","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","startOfHour","getUTCHours","startOfMinute","getUTCMinutes","startOfSecond","getUTCSeconds","weekOfYear","marker","dow","doy","y","w","weekOfGivenYear","nextW","year","firstWeekStart","firstWeekOffset","fwd","fwdlw","dateToLocalArray","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","UTC","isValidDate","isNaN","INTERNAL_UNITS","PARSE_RE","createDuration","unit","parseString","normalizeObject","exec","month","getWeeksFromInput","second","millisecond","durationsEqual","d0","d1","addDurations","subtractDurations","multiplyDuration","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","wholeDivideDurations","numerator","denominator","localRes","isInt","greatestDurationDenominator","dontReturnWeeks","value","compensateScroll","uncompensateScroll","disableCursor","enableCursor","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","tokens","split","charAt","substring","func","compareByFieldSpecs","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","localeCompare","capitaliseFirstLetter","toUpperCase","padStart","compareNumbers","applyAll","functions","thisObj","args","ret","firstDefined","debounce","wait","timeout","timestamp","result","later","last","refineProps","rawProps","processors","defaults","refined","processor","Function","Number","computeAlignedDayRange","timedRange","computeVisibleDayRange","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","filterHash","hash","filtered","mapHash","newHash","arrayToHash","a_1","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","constraintRange","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","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","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","simpleNumberFormat","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","EventApi","_calendar","_def","_instance","setProp","DATE_PROPS","NON_DATE_PROPS","mutate","UNSCOPED_EVENT_UI_PROPS","backgroundColor","borderColor","startEditable","setExtendedProp","setStart","startInput","granularity","maintainDuration","setEnd","endInput","setDates","moveStart","deltaInput","moveEnd","moveDates","setAllDay","formatInput","formatter","forcedStartTzo","forcedEndTzo","forcedTzo","fromApi","rendering","constraints","overlap","allows","textColor","classNames","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","normalRange","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","filterSegsViaEls","isMirror","hasPublicHandlers","custom","setElSeg","fcSeg","getElSeg","eventDefs","compileEventUi","uis","combineEventUis","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","newProps","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","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","dependents_1","dependent","dependencies_1","dependency","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","keyInfos","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","info","buildEventUiForKey","keyInfo","buildEventUi","dateSpans","keys_1","splitStores","splitHashes","splitStates","affectedStores_1","mutatedKeysByDefId","mutatedStores_1","populate","allUi","eventUiForKey","baseParts","stuff","buildGotoAnchorHtml","gotoOptions","innerHtml","finalOptions","stringify","getAllDayHtml","getDayClasses","noThemeHighlight","todayStart","todayEnd","getNow","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","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","originClientTop","getWidth","leftIndex","topIndex","ScrollController","canScrollVertically","canScrollHorizontally","ElementScrollController","WindowScrollController","ScrollComponent","applyOverflow","Theme","calendarOptions","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","guid","Component","isView","addEqualityFuncs","newFuncs","equalityFuncs","recycleProps","anyChanges","comboProps","oldProps","DateComponent","validRange","publiclyTriggerAfterSizing","triggerRenderedSegs","isMirrors","loadingLevel","afterSizingTriggers","_eventsPositioned","triggerWillRemoveSegs","segs_3","isPopover","isInPopover","segEl","bgSegSelector","uid$1","createPlugin","deps","reducers","isDraggableTransformers","datePointTransforms","dateSpanTransforms","viewPropsTransformers","viewContainerModifiers","themeClasses","eventSourceDefs","namedTimeZonedImpl","optionChangeHandlers","PluginSystem","addedHash","plugin","dep","combineHooks","hooks0","hooks1","eventSourceDef","ignoreRange","parseMeta","events","fetch","ArrayEventSourcePlugin","eventSourceDef$1","startStr","endStr","FuncEventSourcePlugin","requestJson","method","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","addPluginInputs","config","globalDefaults","titleRangeSeparator","forceEventDuration","columnHeader","aspectRatio","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","showNonCurrentDates","lazyFetching","locales","timeGridEventMinHeight","themeSystem","dragRevertDuration","dragScroll","allDayMaintainDuration","eventOrder","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","rtlDefaults","buttonIcons","prev","next","prevYear","nextYear","complexOptions","mergeOptions","optionObjs","INTERNAL_PLUGINS","refinePluginDefs","pluginInputs","pluginInputs_1","pluginInput","globalName","console","warn","RAW_EN_LOCALE","code","buttonText","today","allDayText","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","weekDoy","firstDay","weekNumberFunc","createNowMarker","timestampToMarker","getYear","addYears","addMonths","greatestWholeUnit","countDurationsBetween","startOf","startOfYear","startOfMonth","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","initHiddenDays","buildPrev","currentDateProfile","currentDate","prevDate","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","adjustActiveRange","buildDateIncrement","getRangeOption","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","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","eventSourceLoadingLevel","computeLoadingLevel","reducerFunc","currentViewType","newDateProfile","dateProfileGenerators","dateMarker","generator","newDate","currentSelection","currentInstanceId","currentDrag","newDrag","currentResize","newResize","cnt","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","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","buttonGroupClassName","toggleButtonEnabled","titleEl","disabled","CalendarComponent","_renderToolbars","renderToolbars","buildViewPropTransformers","contentEl","modifyViewContainer","toggleElClassNames","computeTitle","footer","dirClassName","themeClassName","freezeHeight","renderView","thawHeight","headerLayout","footerLayout","todayInfo","prevInfo","nextInfo","toolbarProps","addScroll","queryScroll","viewProps","transformers","transformers_1","isHeightAuto","computeHeightVars","updateNowIndicator","popScroll","heightInput","contentHeightInput","queryToolbarsHeight","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","buildDateEnv","buildTheme","buildEventUiSingleBase","_buildEventUiSingleBase","buildSelectionConfig","_buildSelectionConfig","buildEventUiBySource","buildEventUiBases","interactionsStore","actionQueue","isReducing","needsRerender","needsFullRerender","isRendering","renderingPauseDepth","buildDelayedRerender","isViewUpdated","isDatesUpdated","handleOptions","hydrate","calendarInteractionClass","pluginDefs","pluginDefs_1","pluginDef","requestRerender","renderableEventStore","bindHandlers","executeRender","unbindHandlers","removeNavLinkListener","anchorEl","customAction","windowResizeProxy","windowResize","buildInitialState","rawSources","singleRawSource","rawSources_1","rawSource","batchRendering","getInitialDate","oldState","shift","newState","needsFull","delayedRerender","tryRerender","renderComponent","savedScroll","eventUiSingleBase","eventUiBySource","applyScroll","setOption","mutateOptions","getOption","viewOpts","changeHandlers","normalUpdates","specialUpdates","isTimeZoneDirty","isSizeDirty","anyDifficultOptions","name_3","pluginHooks","rerenderDelay","availableRawLocales","getAvailableLocaleCodes","rawOpts","eventEditable","optHandler","name_4","isValidViewType","dateOrRange","spec","getUnitViewSpec","viewTypes","defaultDateInput","gotoDate","zonedDateInput","incrementDate","formatDate","isHandlingWindowResize","settingsInput","DEFAULT_INTERACTIONS","interactionClasses","interactions","interactionClass","listener","select","dateOrObj","endDate","selectionInput","triggerDateUnselect","sourceInput","sourceApi","getEventSourceById","getEventById","getEvents","eventApis","removeAllEvents","rerenderEvents","getEventSources","sourceApis","internalId","removeAllEventSources","scrollToTime","timeInput","scrollToDuration","themeClass","View","renderDatesMem","renderDatesWrap","unrenderDatesWrap","renderBusinessHoursMem","unrenderBusinessHours","renderDateSelectionMem","renderDateSelectionWrap","unrenderDateSelectionWrap","renderEventsMem","renderEvents","unrenderEvents","renderEventSelectionMem","renderEventSelectionWrap","unrenderEventSelectionWrap","renderEventDragMem","renderEventDragWrap","unrenderEventDragWrap","renderEventResizeMem","renderEventResizeWrap","unrenderEventResizeWrap","initialize","renderDates","startNowIndicator","stopNowIndicator","unrenderDates","unrenderDateSelection","sliceEvents","unrenderEventSelection","unrenderEventDrag","unrenderEventResize","update","initialNowDate","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","isNowIndicatorRendered","clearInterval","queuedScroll","applyQueuedScroll","FgEventRenderer","rangeUpdated","renderSegEls","_segs","displayEventTime","displayEventEnd","eventTimeFormat","computeDisplayEventTime","isResizable","displayEnd","buildSegCompareObj","force","FillRenderer","dirtySizeFlags","containerElsByType","segsByType","getSegsByType","renderedSegs","css","ElementDragging","NamedTimeZoneImpl","DRAG_META_PROPS","DRAG_META_DEFAULTS","parseDragMeta","computeFallbackHeaderFormat","renderDateCell","colHeadFormat","colspan","columnHeaderHtml","columnHeaderText","DayHeader","thead","dates_1","DaySeries","indices","dayIndex","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTable","breakOnWeeks","daysPerRow","buildCells","buildHeaderDates","rows","buildCell","seriesSeg","index","nextIndex","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","extraArgs","eventSegs","computeActiveRange","rangeRes","sliceEventRanges","eventRanges","eventRanges_1","sliceEventRange","isComponentAllDay","keyList","hasProp","module","exports","equal","arrA","arrB","dateA","dateB","regexpA","RegExp","regexpB","DURATION_OF_THE_EVENT","ALL_DAY","EVENT_TYPE","EVENTS","PROJECTS","TASKS","TASK_STATUSES","BACKLOG","QUEUE","REJECTED","CREATED","IN_PROGRESS","COMPLETED","TURNED_IN","DUE_OPTIONS","due_description","BASIC_STRUCTURE","tasks","other","TASK_REPEAT_OPTIONS","DOES_NOT_REPEAT","DAILY","WEEKLY","MONTHLY","adapterCalendarEvents","task","subjectColor","duration_type","end_date","attachment","start_date","adapterToUpdateEventOrTask","formatDateToLocalISOString","getStartDateWhitHoursOfEndDate","adapterToUpdateProject","formatLongDateTime","due_date","due_hour","getPlainHour","tasksAdapter","allTasks","default_color","default_title","items","taskGroup","TaskGroup","child","complete_attachment","complete_date","description","dueDate","due_section","is_due","notification_date","notification_type","parent_approved_completion","parent_approved_creation","parent_qualified_completion","priority","image","project","repeat","repeat_date","repeat_date_date","repeat_date_hour","repeat_text","state_name","subject","subject_name","submitted","timeSpentSeconds","type_text","_typeof","Symbol","iterator","deepCopy","output","PROP_DEFS","bootstrapFontAwesome","weekNumbersWithinDays","contentHeight","slotLabelFormat","slotLabelInterval","listDayFormat","listDayAltFormat","defaultDate","nowIndicator","columnHeaderFormat","navLinks","navLinkDayClick","navLinkWeekClick","selectable","selectMirror","selectConstraint","selectOverlap","selectAllow","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventClassName","eventClassNames","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","eventLongPressDelay","droppable","eventResizableFromStart","allDayHtml","eventResourceEditable","eventSourceFailure","eventSourceSuccess","progressiveEventRendering","selectLongPressDelay","selectMinDistance","schedulerLicenseKey","resources","resourceLabelText","resourceOrder","filterResourcesWithEvents","resourceText","resourceGroupField","resourceGroupText","resourceAreaWidth","resourceColumns","resourcesInitiallyExpanded","slotWidth","datesAboveResources","googleCalendarApiKey","refetchResourcesOnNavigate","datesRender","datesDestroy","dayRender","eventDestroy","viewSkeletonRender","viewSkeletonDestroy","resourceRender","PROP_IS_DEEP","EMISSION_NAMES","EMISSION_USE_PROP","FullCalendarComponent","renderId","deepCopies","mounted","warnDeprecatedListeners","$listeners","$options","$el","buildCalendarOptions","beforeUpdate","renderDirty","beforeDestroy","buildPropWatcher","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_loop","emissionName","_len","_key","_iterator","propVal","recordDirtyOption","optionName","newVal","dirtyOptions","getApi","propDef","deep","oldVal","listenerHash","GlobalVue","installed","install","Vue","global","use"],"mappings":"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","file":"js/chunk-396e0591.79891535.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.className},[_c('p',{staticClass:\"d-block font-weight-bolder mb-1 text-uppercase point__title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.list.length === 0)?_c('div',{staticClass:\"mb-1 mx-2 d-flex align-items-center\"},[_c('i',{staticClass:\"material-icons m-1\",style:(\"color:#c0c1f9;\")},[_vm._v(\"lens\")]),_c('small',[_vm._v(\"No \"+_vm._s(_vm.title)+\" created\")])]):_c('div',{staticClass:\"row justify-content-start\"},_vm._l((_vm.list),function(item){return _c('div',{key:item.id,staticClass:\"d-flex col-4 col-sm-4 col-md-4 col-lg-2 col-xl-2 align-items-center\"},[_c('i',{staticClass:\"material-icons m-1\",style:((\"color:#\" + (item.color) + \";\"))},[_vm._v(\"lens\")]),_c('small',[_vm._v(_vm._s(item.name))])])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListOfClasses.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListOfClasses.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListOfClasses.vue?vue&type=template&id=71e3f4ae&scoped=true&\"\nimport script from \"./ListOfClasses.vue?vue&type=script&lang=js&\"\nexport * from \"./ListOfClasses.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ListOfClasses.vue?vue&type=style&index=0&id=71e3f4ae&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71e3f4ae\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('nav-bar',{attrs:{\"title\":_vm.navBarTitle}}),_c('div',{staticClass:\"mobile none-padding-mobile pt-4 position-relative\"},[_c('b-container',[_c('b-skeleton-wrapper',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('calendar-skeleton')]},proxy:true}])},[_c('div',[_c('loading-overlay',{attrs:{\"isLoading\":_vm.loadingChangesInEvent},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('span',[_vm._v(\"Updating the calendar\")])]},proxy:true}])},[[_c('my-calendar',{attrs:{\"calendarEvents\":_vm.calendarEvents,\"editable\":!_vm.userIsAParent || _vm.parentCanEdit},on:{\"dateClick\":_vm.dateClick,\"eventEdited\":_vm.eventEdited}})]],2),_c('list-of-classes',{attrs:{\"title\":\"Classes\",\"list\":_vm.classes,\"className\":\"container mx-0 mx-md-3\"}})],1)])],1)],1),(!_vm.userIsAParent || _vm.parentCanEdit)?_c('b-button',{staticClass:\"bg-main border-0 font-weight-bolder float-button-right rounded-circle p-1 mb-3 mr-2\",attrs:{\"pill\":\"\"},on:{\"click\":function($event){return _vm.goAddTask()}}},[_c('i',{staticClass:\"material-icons big-icon align-middle\"},[_vm._v(\"add\")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-row',[_c('b-col',[_c('b-skeleton',{attrs:{\"height\":\"60vh\"}})],1),_c('b-col',{staticClass:\"mt-4\",attrs:{\"cols\":\"12\"}},[_c('b-skeleton',{staticClass:\"mb-2\",attrs:{\"width\":\"10vw\"}}),_c('b-skeleton',{attrs:{\"height\":\"10vh\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CalendarSkeleton.vue?vue&type=template&id=1711e5a8&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"atm-desktop-max-width py-4 mx-auto\"},[_vm._v(\" \"+_vm._s(_vm.editable)+\" \"),_c('b-tabs',{staticClass:\"pb-3\",attrs:{\"fill\":\"\",\"content-class\":\"\"}},[_c('b-tab',{attrs:{\"active\":\"\",\"title\":\"Day\"},on:{\"click\":function($event){return _vm.changeViewToCalendar('timeGridDay')}}}),_c('b-tab',{attrs:{\"title\":\"Week\"},on:{\"click\":function($event){return _vm.changeViewToCalendar('timeGridWeek')}}}),_c('b-tab',{attrs:{\"title\":\"Month\",\"active\":\"\"},on:{\"click\":function($event){return _vm.changeViewToCalendar('dayGridMonth')}}})],1),_c('full-calendar',{ref:\"fullCalendar\",attrs:{\"header\":{\n left: 'title',\n right: 'today prev,next',\n },\"initialView\":\"dayGridMonth\",\"minTime\":'07:00:00',\"selectable\":true,\"plugins\":_vm.calendarPlugins,\"weekends\":_vm.calendarWeekends,\"events\":_vm.calendarEvents,\"editable\":_vm.editable,\"droppable\":_vm.editable,\"eventLimit\":3,\"nowIndicator\":_vm.editable},on:{\"eventRender\":_vm.eventRender,\"eventClick\":_vm.eventClick,\"dateClick\":_vm.dateClick,\"eventDrop\":_vm.eventResizeOrDrop,\"eventResize\":_vm.eventResizeOrDrop}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\nFullCalendar Day Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { addWeeks, diffWeeks, DateProfileGenerator, createElement, listenBySelector, removeElement, computeRect, computeClippingRect, applyStyle, cssToStr, htmlEscape, FgEventRenderer, appendToElement, prependToElement, htmlToElement, FillRenderer, memoizeRendering, createFormatter, addDays, DateComponent, rangeContainsMarker, getDayClasses, findElements, PositionCache, buildGotoAnchorHtml, findChildren, insertAfterElement, intersectRanges, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, distributeHeight, undistributeHeight, View, Slicer, memoize, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar DayGridDateProfileGenerator = /** @class */ (function (_super) {\n __extends(DayGridDateProfileGenerator, _super);\n function DayGridDateProfileGenerator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Computes the date range that will be rendered.\n DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n var dateEnv = this.dateEnv;\n var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);\n var start = renderRange.start;\n var end = renderRange.end;\n var endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (/^(year|month)$/.test(currentRangeUnit)) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (this.options.monthMode &&\n this.options.fixedWeekCount) {\n var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(start, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start: start, end: end };\n };\n return DayGridDateProfileGenerator;\n}(DateProfileGenerator));\n\n/* A rectangular panel that is absolutely positioned over other content\n------------------------------------------------------------------------------------------------------------------------\nOptions:\n - className (string)\n - content (HTML string, element, or element array)\n - parentEl\n - top\n - left\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\n - autoHide (boolean)\n - show (callback)\n - hide (callback)\n*/\nvar Popover = /** @class */ (function () {\n function Popover(options) {\n var _this = this;\n this.isHidden = true;\n this.margin = 10; // the space required between the popover and the edges of the scroll container\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.documentMousedown = function (ev) {\n // only hide the popover if the click happened outside the popover\n if (_this.el && !_this.el.contains(ev.target)) {\n _this.hide();\n }\n };\n this.options = options;\n }\n // Shows the popover on the specified position. Renders it if not already\n Popover.prototype.show = function () {\n if (this.isHidden) {\n if (!this.el) {\n this.render();\n }\n this.el.style.display = '';\n this.position();\n this.isHidden = false;\n this.trigger('show');\n }\n };\n // Hides the popover, through CSS, but does not remove it from the DOM\n Popover.prototype.hide = function () {\n if (!this.isHidden) {\n this.el.style.display = 'none';\n this.isHidden = true;\n this.trigger('hide');\n }\n };\n // Creates `this.el` and renders content inside of it\n Popover.prototype.render = function () {\n var _this = this;\n var options = this.options;\n var el = this.el = createElement('div', {\n className: 'fc-popover ' + (options.className || ''),\n style: {\n top: '0',\n left: '0'\n }\n });\n if (typeof options.content === 'function') {\n options.content(el);\n }\n options.parentEl.appendChild(el);\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\n listenBySelector(el, 'click', '.fc-close', function (ev) {\n _this.hide();\n });\n if (options.autoHide) {\n document.addEventListener('mousedown', this.documentMousedown);\n }\n };\n // Hides and unregisters any handlers\n Popover.prototype.destroy = function () {\n this.hide();\n if (this.el) {\n removeElement(this.el);\n this.el = null;\n }\n document.removeEventListener('mousedown', this.documentMousedown);\n };\n // Positions the popover optimally, using the top/left/right options\n Popover.prototype.position = function () {\n var options = this.options;\n var el = this.el;\n var elDims = el.getBoundingClientRect(); // only used for width,height\n var origin = computeRect(el.offsetParent);\n var clippingRect = computeClippingRect(options.parentEl);\n var top; // the \"position\" (not \"offset\") values for the popover\n var left; //\n // compute top and left\n top = options.top || 0;\n if (options.left !== undefined) {\n left = options.left;\n }\n else if (options.right !== undefined) {\n left = options.right - elDims.width; // derive the left value from the right value\n }\n else {\n left = 0;\n }\n // constrain to the view port. if constrained by two edges, give precedence to top/left\n top = Math.min(top, clippingRect.bottom - elDims.height - this.margin);\n top = Math.max(top, clippingRect.top + this.margin);\n left = Math.min(left, clippingRect.right - elDims.width - this.margin);\n left = Math.max(left, clippingRect.left + this.margin);\n applyStyle(el, {\n top: top - origin.top,\n left: left - origin.left\n });\n };\n // Triggers a callback. Calls a function in the option hash of the same name.\n // Arguments beyond the first `name` are forwarded on.\n // TODO: better code reuse for this. Repeat code\n // can kill this???\n Popover.prototype.trigger = function (name) {\n if (this.options[name]) {\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n };\n return Popover;\n}());\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\n// \"Simple\" is bad a name. has nothing to do with SimpleDayGrid\nvar SimpleDayGridEventRenderer = /** @class */ (function (_super) {\n __extends(SimpleDayGridEventRenderer, _super);\n function SimpleDayGridEventRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Builds the HTML to be used for the default element for an individual segment\n SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var _a = this.context, view = _a.view, options = _a.options;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var allDay = eventDef.allDay;\n var isDraggable = view.computeEventDraggable(eventDef, eventUi);\n var isResizableFromStart = allDay && seg.isStart && view.computeEventStartResizable(eventDef, eventUi);\n var isResizableFromEnd = allDay && seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n var skinCss = cssToStr(this.getSkinCss(eventUi));\n var timeHtml = '';\n var timeText;\n var titleHtml;\n classes.unshift('fc-day-grid-event', 'fc-h-event');\n // Only display a timed events time if it is the starting segment\n if (seg.isStart) {\n timeText = this.getTimeText(eventRange);\n if (timeText) {\n timeHtml = '' + htmlEscape(timeText) + '';\n }\n }\n titleHtml =\n '' +\n (htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\n '';\n return '' +\n '
' +\n (options.dir === 'rtl' ?\n titleHtml + ' ' + timeHtml : // put a natural space in between\n timeHtml + ' ' + titleHtml //\n ) +\n '
' +\n (isResizableFromStart ?\n '
' :\n '') +\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow'\n };\n };\n SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return false; // TODO: somehow consider the originating DayGrid's column count\n };\n return SimpleDayGridEventRenderer;\n}(FgEventRenderer));\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\nvar DayGridEventRenderer = /** @class */ (function (_super) {\n __extends(DayGridEventRenderer, _super);\n function DayGridEventRenderer(dayGrid) {\n var _this = _super.call(this, dayGrid.context) || this;\n _this.dayGrid = dayGrid;\n return _this;\n }\n // Renders the given foreground event segments onto the grid\n DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // append to each row's content skeleton\n this.dayGrid.rowEls.forEach(function (rowNode, i) {\n rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl);\n });\n // removes the \"more..\" events popover\n if (!mirrorInfo) {\n this.dayGrid.removeSegPopover();\n }\n };\n // Unrenders all currently rendered foreground event segments\n DayGridEventRenderer.prototype.detachSegs = function () {\n var rowStructs = this.rowStructs || [];\n var rowStruct;\n while ((rowStruct = rowStructs.pop())) {\n removeElement(rowStruct.tbodyEl);\n }\n this.rowStructs = null;\n };\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\n var rowStructs = [];\n var segRows;\n var row;\n segRows = this.groupSegRows(segs); // group into nested arrays\n // iterate each row of segment groupings\n for (row = 0; row < segRows.length; row++) {\n rowStructs.push(this.renderSegRow(row, segRows[row]));\n }\n return rowStructs;\n };\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\n // NOTE: modifies rowSegs\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\n var dayGrid = this.dayGrid;\n var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\n var tbody = document.createElement('tbody');\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\n var cellMatrix = []; // lookup for all elements of the level+col matrix\n var loneCellMatrix = []; // lookup for elements that only take up a single column\n var i;\n var levelSegs;\n var col;\n var tr;\n var j;\n var seg;\n var td;\n // populates empty cells from the current column (`col`) to `endCol`\n function emptyCellsUntil(endCol) {\n while (col < endCol) {\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\n td = (loneCellMatrix[i - 1] || [])[col];\n if (td) {\n td.rowSpan = (td.rowSpan || 1) + 1;\n }\n else {\n td = document.createElement('td');\n tr.appendChild(td);\n }\n cellMatrix[i][col] = td;\n loneCellMatrix[i][col] = td;\n col++;\n }\n }\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\n levelSegs = segLevels[i];\n col = 0;\n tr = document.createElement('tr');\n segMatrix.push([]);\n cellMatrix.push([]);\n loneCellMatrix.push([]);\n // levelCnt might be 1 even though there are no actual levels. protect against this.\n // this single empty row is useful for styling.\n if (levelSegs) {\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\n seg = levelSegs[j];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol);\n // create a container that occupies or more columns. append the event element.\n td = createElement('td', { className: 'fc-event-container' }, seg.el);\n if (leftCol !== rightCol) {\n td.colSpan = rightCol - leftCol + 1;\n }\n else { // a single-column segment\n loneCellMatrix[i][col] = td;\n }\n while (col <= rightCol) {\n cellMatrix[i][col] = td;\n segMatrix[i][col] = seg;\n col++;\n }\n tr.appendChild(td);\n }\n }\n emptyCellsUntil(colCnt); // finish off the row\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(tr, introHtml);\n }\n else {\n prependToElement(tr, introHtml);\n }\n }\n tbody.appendChild(tr);\n }\n return {\n row: row,\n tbodyEl: tbody,\n cellMatrix: cellMatrix,\n segMatrix: segMatrix,\n segLevels: segLevels,\n segs: rowSegs\n };\n };\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\n // NOTE: modifies segs\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\n var _a = this.dayGrid, isRtl = _a.isRtl, colCnt = _a.colCnt;\n var levels = [];\n var i;\n var seg;\n var j;\n // Give preference to elements with certain criteria, so they have\n // a chance to be closer to the top.\n segs = this.sortEventSegs(segs);\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\n for (j = 0; j < levels.length; j++) {\n if (!isDaySegCollision(seg, levels[j])) {\n break;\n }\n }\n // `j` now holds the desired subrow index\n seg.level = j;\n seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only\n seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only\n ;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n // order segments left-to-right. very important if calendar is RTL\n for (j = 0; j < levels.length; j++) {\n levels[j].sort(compareDaySegCols);\n }\n return levels;\n };\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\n var segRows = [];\n var i;\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\n segRows.push([]);\n }\n for (i = 0; i < segs.length; i++) {\n segRows[segs[i].row].push(segs[i]);\n }\n return segRows;\n };\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\n };\n return DayGridEventRenderer;\n}(SimpleDayGridEventRenderer));\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\nfunction isDaySegCollision(seg, otherSegs) {\n var i;\n var otherSeg;\n for (i = 0; i < otherSegs.length; i++) {\n otherSeg = otherSegs[i];\n if (otherSeg.firstCol <= seg.lastCol &&\n otherSeg.lastCol >= seg.firstCol) {\n return true;\n }\n }\n return false;\n}\n// A cmp function for determining the leftmost event\nfunction compareDaySegCols(a, b) {\n return a.leftCol - b.leftCol;\n}\n\nvar DayGridMirrorRenderer = /** @class */ (function (_super) {\n __extends(DayGridMirrorRenderer, _super);\n function DayGridMirrorRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var sourceSeg = mirrorInfo.sourceSeg;\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // inject each new event skeleton into each associated row\n this.dayGrid.rowEls.forEach(function (rowNode, row) {\n var skeletonEl = htmlToElement('
'); // will be absolutely positioned\n var skeletonTopEl;\n var skeletonTop;\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\n if (sourceSeg && sourceSeg.row === row) {\n skeletonTopEl = sourceSeg.el;\n }\n else {\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody');\n if (!skeletonTopEl) { // when no events\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table');\n }\n }\n skeletonTop = skeletonTopEl.getBoundingClientRect().top -\n rowNode.getBoundingClientRect().top; // the offsetParent origin\n skeletonEl.style.top = skeletonTop + 'px';\n skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl);\n rowNode.appendChild(skeletonEl);\n });\n };\n return DayGridMirrorRenderer;\n}(DayGridEventRenderer));\n\nvar EMPTY_CELL_HTML = '';\nvar DayGridFillRenderer = /** @class */ (function (_super) {\n __extends(DayGridFillRenderer, _super);\n function DayGridFillRenderer(dayGrid) {\n var _this = _super.call(this, dayGrid.context) || this;\n _this.fillSegTag = 'td'; // override the default tag name\n _this.dayGrid = dayGrid;\n return _this;\n }\n DayGridFillRenderer.prototype.renderSegs = function (type, segs) {\n // don't render timed background events\n if (type === 'bgEvent') {\n segs = segs.filter(function (seg) {\n return seg.eventRange.def.allDay;\n });\n }\n _super.prototype.renderSegs.call(this, type, segs);\n };\n DayGridFillRenderer.prototype.attachSegs = function (type, segs) {\n var els = [];\n var i;\n var seg;\n var skeletonEl;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n skeletonEl = this.renderFillRow(type, seg);\n this.dayGrid.rowEls[seg.row].appendChild(skeletonEl);\n els.push(skeletonEl);\n }\n return els;\n };\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\n var dayGrid = this.dayGrid;\n var colCnt = dayGrid.colCnt, isRtl = dayGrid.isRtl;\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n var startCol = leftCol;\n var endCol = rightCol + 1;\n var className;\n var skeletonEl;\n var trEl;\n if (type === 'businessHours') {\n className = 'bgevent';\n }\n else {\n className = type.toLowerCase();\n }\n skeletonEl = htmlToElement('
' +\n '
' +\n '
');\n trEl = skeletonEl.getElementsByTagName('tr')[0];\n if (startCol > 0) {\n appendToElement(trEl, \n // will create (startCol + 1) td's\n new Array(startCol + 1).join(EMPTY_CELL_HTML));\n }\n seg.el.colSpan = endCol - startCol;\n trEl.appendChild(seg.el);\n if (endCol < colCnt) {\n appendToElement(trEl, \n // will create (colCnt - endCol) td's\n new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML));\n }\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (dayGrid.isRtl) {\n appendToElement(trEl, introHtml);\n }\n else {\n prependToElement(trEl, introHtml);\n }\n }\n return skeletonEl;\n };\n return DayGridFillRenderer;\n}(FillRenderer));\n\nvar DayTile = /** @class */ (function (_super) {\n __extends(DayTile, _super);\n function DayTile(context, el) {\n var _this = _super.call(this, context, el) || this;\n var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this);\n var renderFrame = _this.renderFrame = memoizeRendering(_this._renderFrame);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n _this.renderEventResize = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.el,\n useEventCenter: false\n });\n return _this;\n }\n DayTile.prototype.render = function (props) {\n this.renderFrame(props.date);\n this.renderFgEvents(props.fgSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDragInstances);\n this.renderEventResize(props.eventResizeInstances);\n };\n DayTile.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderFrame.unrender(); // should unrender everything else\n this.calendar.unregisterInteractiveComponent(this);\n };\n DayTile.prototype._renderFrame = function (date) {\n var _a = this, theme = _a.theme, dateEnv = _a.dateEnv;\n var title = dateEnv.format(date, createFormatter(this.opt('dayPopoverFormat')) // TODO: cache\n );\n this.el.innerHTML =\n '
' +\n '' +\n htmlEscape(title) +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
';\n this.segContainerEl = this.el.querySelector('.fc-event-container');\n };\n DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var date = this.props.date; // HACK\n if (positionLeft < elWidth && positionTop < elHeight) {\n return {\n component: this,\n dateSpan: {\n allDay: true,\n range: { start: date, end: addDays(date, 1) }\n },\n dayEl: this.el,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1\n };\n }\n };\n return DayTile;\n}(DateComponent));\nvar DayTileEventRenderer = /** @class */ (function (_super) {\n __extends(DayTileEventRenderer, _super);\n function DayTileEventRenderer(dayTile) {\n var _this = _super.call(this, dayTile.context) || this;\n _this.dayTile = dayTile;\n return _this;\n }\n DayTileEventRenderer.prototype.attachSegs = function (segs) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n this.dayTile.segContainerEl.appendChild(seg.el);\n }\n };\n DayTileEventRenderer.prototype.detachSegs = function (segs) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n removeElement(seg.el);\n }\n };\n return DayTileEventRenderer;\n}(SimpleDayGridEventRenderer));\n\nvar DayBgRow = /** @class */ (function () {\n function DayBgRow(context) {\n this.context = context;\n }\n DayBgRow.prototype.renderHtml = function (props) {\n var parts = [];\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n for (var _i = 0, _a = props.cells; _i < _a.length; _i++) {\n var cell = _a[_i];\n parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs));\n }\n if (!props.cells.length) {\n parts.push('');\n }\n if (this.context.options.dir === 'rtl') {\n parts.reverse();\n }\n return '' + parts.join('') + '';\n };\n return DayBgRow;\n}());\nfunction renderCellHtml(date, dateProfile, context, otherAttrs) {\n var dateEnv = context.dateEnv, theme = context.theme;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var classes = getDayClasses(date, dateProfile, context);\n classes.unshift('fc-day', theme.getClass('widgetContent'));\n return '';\n}\n\nvar DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nvar WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' });\nvar DayGrid = /** @class */ (function (_super) {\n __extends(DayGrid, _super);\n function DayGrid(context, el, renderProps) {\n var _this = _super.call(this, context, el) || this;\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\n _this.isCellSizesDirty = false;\n var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this);\n var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this);\n _this.mirrorRenderer = new DayGridMirrorRenderer(_this);\n var renderCells = _this.renderCells = memoizeRendering(_this._renderCells, _this._unrenderCells);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]);\n _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]);\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]);\n _this.renderProps = renderProps;\n return _this;\n }\n DayGrid.prototype.render = function (props) {\n var cells = props.cells;\n this.rowCnt = cells.length;\n this.colCnt = cells[0].length;\n this.renderCells(cells, props.isRigid);\n this.renderBusinessHours(props.businessHourSegs);\n this.renderDateSelection(props.dateSelectionSegs);\n this.renderBgEvents(props.bgEventSegs);\n this.renderFgEvents(props.fgEventSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDrag);\n this.renderEventResize(props.eventResize);\n if (this.segPopoverTile) {\n this.updateSegPopoverTile();\n }\n };\n DayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderCells.unrender(); // will unrender everything else\n };\n DayGrid.prototype.getCellRange = function (row, col) {\n var start = this.props.cells[row][col].date;\n var end = addDays(start, 1);\n return { start: start, end: end };\n };\n DayGrid.prototype.updateSegPopoverTile = function (date, segs) {\n var ownProps = this.props;\n this.segPopoverTile.receiveProps({\n date: date || this.segPopoverTile.props.date,\n fgSegs: segs || this.segPopoverTile.props.fgSegs,\n eventSelection: ownProps.eventSelection,\n eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null,\n eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null\n });\n };\n /* Date Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderCells = function (cells, isRigid) {\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt;\n var html = '';\n var row;\n var col;\n for (row = 0; row < rowCnt; row++) {\n html += this.renderDayRowHtml(row, isRigid);\n }\n this.el.innerHTML = html;\n this.rowEls = findElements(this.el, '.fc-row');\n this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n if (this.isRtl) {\n this.cellEls.reverse();\n }\n this.rowPositions = new PositionCache(this.el, this.rowEls, false, true // vertical\n );\n this.colPositions = new PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row\n true, false // horizontal\n );\n // trigger dayRender with each cell's element\n for (row = 0; row < rowCnt; row++) {\n for (col = 0; col < colCnt; col++) {\n this.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[row][col].date),\n el: this.getCellEl(row, col),\n view: view\n }\n ]);\n }\n }\n this.isCellSizesDirty = true;\n };\n DayGrid.prototype._unrenderCells = function () {\n this.removeSegPopover();\n };\n // Generates the HTML for a single row, which is a div that wraps a table.\n // `row` is the row number.\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\n var theme = this.theme;\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\n if (isRigid) {\n classes.push('fc-rigid');\n }\n var bgRow = new DayBgRow(this.context);\n return '' +\n '
' +\n '
' +\n '' +\n bgRow.renderHtml({\n cells: this.props.cells[row],\n dateProfile: this.props.dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '
' +\n '
' +\n '
' +\n '' +\n (this.getIsNumbersVisible() ?\n '' +\n this.renderNumberTrHtml(row) +\n '' :\n '') +\n '
' +\n '
' +\n '
';\n };\n DayGrid.prototype.getIsNumbersVisible = function () {\n return this.getIsDayNumbersVisible() ||\n this.renderProps.cellWeekNumbersVisible ||\n this.renderProps.colWeekNumbersVisible;\n };\n DayGrid.prototype.getIsDayNumbersVisible = function () {\n return this.rowCnt > 1;\n };\n /* Grid Number Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.renderNumberTrHtml = function (row) {\n var intro = this.renderProps.renderNumberIntroHtml(row, this);\n return '' +\n '' +\n (this.isRtl ? '' : intro) +\n this.renderNumberCellsHtml(row) +\n (this.isRtl ? intro : '') +\n '';\n };\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\n var htmls = [];\n var col;\n var date;\n for (col = 0; col < this.colCnt; col++) {\n date = this.props.cells[row][col].date;\n htmls.push(this.renderNumberCellHtml(date));\n }\n if (this.isRtl) {\n htmls.reverse();\n }\n return htmls.join('');\n };\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\n // The number row will only exist if either day numbers or week numbers are turned on.\n DayGrid.prototype.renderNumberCellHtml = function (date) {\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var html = '';\n var isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\n var classes;\n var weekCalcFirstDow;\n if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) {\n // no numbers in day cell (week number must be along the side)\n return ''; // will create an empty space above events :(\n }\n classes = getDayClasses(date, this.props.dateProfile, this.context);\n classes.unshift('fc-day-top');\n if (this.renderProps.cellWeekNumbersVisible) {\n weekCalcFirstDow = dateEnv.weekDow;\n }\n html += '';\n if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) {\n html += buildGotoAnchorHtml(view, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML\n );\n }\n if (isDayNumberVisible) {\n html += buildGotoAnchorHtml(view, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML\n );\n }\n html += '';\n return html;\n };\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.updateSize = function (isResize) {\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n if (isResize ||\n this.isCellSizesDirty ||\n this.view.calendar.isEventsUpdated // hack\n ) {\n this.buildPositionCaches();\n this.isCellSizesDirty = false;\n }\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n DayGrid.prototype.buildPositionCaches = function () {\n this.buildColPositions();\n this.buildRowPositions();\n };\n DayGrid.prototype.buildColPositions = function () {\n this.colPositions.build();\n };\n DayGrid.prototype.buildRowPositions = function () {\n this.rowPositions.build();\n this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\n };\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.positionToHit = function (leftPosition, topPosition) {\n var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;\n var col = colPositions.leftToIndex(leftPosition);\n var row = rowPositions.topToIndex(topPosition);\n if (row != null && col != null) {\n return {\n row: row,\n col: col,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true\n },\n dayEl: this.getCellEl(row, col),\n relativeRect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row]\n }\n };\n }\n };\n /* Cell System\n ------------------------------------------------------------------------------------------------------------------*/\n // FYI: the first column is the leftmost column, regardless of date\n DayGrid.prototype.getCellEl = function (row, col) {\n return this.cellEls[row * this.colCnt + col];\n };\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', state.segs);\n }\n };\n DayGrid.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight');\n }\n };\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventResize = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', state.segs);\n this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n DayGrid.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight');\n this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n /* More+ Link Popover\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.removeSegPopover = function () {\n if (this.segPopover) {\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\n }\n };\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\n DayGrid.prototype.limitRows = function (levelLimit) {\n var rowStructs = this.eventRenderer.rowStructs || [];\n var row; // row #\n var rowLevelLimit;\n for (row = 0; row < rowStructs.length; row++) {\n this.unlimitRow(row);\n if (!levelLimit) {\n rowLevelLimit = false;\n }\n else if (typeof levelLimit === 'number') {\n rowLevelLimit = levelLimit;\n }\n else {\n rowLevelLimit = this.computeRowLevelLimit(row);\n }\n if (rowLevelLimit !== false) {\n this.limitRow(row, rowLevelLimit);\n }\n }\n };\n // Computes the number of levels a row will accomodate without going outside its bounds.\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\n // `row` is the row number.\n DayGrid.prototype.computeRowLevelLimit = function (row) {\n var rowEl = this.rowEls[row]; // the containing \"fake\" row div\n var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport!\n var trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl);\n var i;\n var trEl;\n // Reveal one level at a time and stop when we find one out of bounds\n for (i = 0; i < trEls.length; i++) {\n trEl = trEls[i];\n trEl.classList.remove('fc-limited'); // reset to original state (reveal)\n if (trEl.getBoundingClientRect().bottom > rowBottom) {\n return i;\n }\n }\n return false; // should not limit at all\n };\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\n // `row` is the row number.\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\n DayGrid.prototype.limitRow = function (row, levelLimit) {\n var _this = this;\n var _a = this, colCnt = _a.colCnt, isRtl = _a.isRtl;\n var rowStruct = this.eventRenderer.rowStructs[row];\n var moreNodes = []; // array of \"more\" links and DOM nodes\n var col = 0; // col #, left-to-right (not chronologically)\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\n var cellMatrix; // a matrix (by level, then column) of all elements in the row\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\n var i;\n var seg;\n var segsBelow; // array of segment objects below `seg` in the current `col`\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\n var td;\n var rowSpan;\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\n var j;\n var moreTd;\n var moreWrap;\n var moreLink;\n // Iterates through empty level cells and places \"more\" links inside if need be\n var emptyCellsUntil = function (endCol) {\n while (col < endCol) {\n segsBelow = _this.getCellSegs(row, col, levelLimit);\n if (segsBelow.length) {\n td = cellMatrix[levelLimit - 1][col];\n moreLink = _this.renderMoreLink(row, col, segsBelow);\n moreWrap = createElement('div', null, moreLink);\n td.appendChild(moreWrap);\n moreNodes.push(moreWrap);\n }\n col++;\n }\n };\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\n levelSegs = rowStruct.segLevels[levelLimit - 1];\n cellMatrix = rowStruct.cellMatrix;\n limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit\n limitedNodes.forEach(function (node) {\n node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array\n });\n // iterate though segments in the last allowable level\n for (i = 0; i < levelSegs.length; i++) {\n seg = levelSegs[i];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol); // process empty cells before the segment\n // determine *all* segments below `seg` that occupy the same columns\n colSegsBelow = [];\n totalSegsBelow = 0;\n while (col <= rightCol) {\n segsBelow = this.getCellSegs(row, col, levelLimit);\n colSegsBelow.push(segsBelow);\n totalSegsBelow += segsBelow.length;\n col++;\n }\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\n td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell\n rowSpan = td.rowSpan || 1;\n segMoreNodes = [];\n // make a replacement for each column the segment occupies. will be one for each colspan\n for (j = 0; j < colSegsBelow.length; j++) {\n moreTd = createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan });\n segsBelow = colSegsBelow[j];\n moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\n );\n moreWrap = createElement('div', null, moreLink);\n moreTd.appendChild(moreWrap);\n segMoreNodes.push(moreTd);\n moreNodes.push(moreTd);\n }\n td.classList.add('fc-limited');\n insertAfterElement(td, segMoreNodes);\n limitedNodes.push(td);\n }\n }\n emptyCellsUntil(this.colCnt); // finish off the level\n rowStruct.moreEls = moreNodes; // for easy undoing later\n rowStruct.limitedEls = limitedNodes; // for easy undoing later\n }\n };\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\n // `row` is a row number.\n DayGrid.prototype.unlimitRow = function (row) {\n var rowStruct = this.eventRenderer.rowStructs[row];\n if (rowStruct.moreEls) {\n rowStruct.moreEls.forEach(removeElement);\n rowStruct.moreEls = null;\n }\n if (rowStruct.limitedEls) {\n rowStruct.limitedEls.forEach(function (limitedEl) {\n limitedEl.classList.remove('fc-limited');\n });\n rowStruct.limitedEls = null;\n }\n };\n // Renders an element that represents hidden event element for a cell.\n // Responsible for attaching click handler as well.\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\n var _this = this;\n var _a = this, view = _a.view, dateEnv = _a.dateEnv;\n var a = createElement('a', { className: 'fc-more' });\n a.innerText = this.getMoreLinkText(hiddenSegs.length);\n a.addEventListener('click', function (ev) {\n var clickOption = _this.opt('eventLimitClick');\n var _col = _this.isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var date = _this.props.cells[row][_col].date;\n var moreEl = ev.currentTarget;\n var dayEl = _this.getCellEl(row, col);\n var allSegs = _this.getCellSegs(row, col);\n // rescope the segments to be within the cell's date\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\n if (typeof clickOption === 'function') {\n // the returned value can be an atomic option\n clickOption = _this.publiclyTrigger('eventLimitClick', [\n {\n date: dateEnv.toDate(date),\n allDay: true,\n dayEl: dayEl,\n moreEl: moreEl,\n segs: reslicedAllSegs,\n hiddenSegs: reslicedHiddenSegs,\n jsEvent: ev,\n view: view\n }\n ]);\n }\n if (clickOption === 'popover') {\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\n }\n else if (typeof clickOption === 'string') { // a view name\n view.calendar.zoomTo(date, clickOption);\n }\n });\n return a;\n };\n // Reveals the popover that displays all events within a cell\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\n var _this = this;\n var _a = this, calendar = _a.calendar, view = _a.view, theme = _a.theme;\n var _col = this.isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var moreWrap = moreLink.parentNode; // the
wrapper around the \n var topEl; // the element we want to match the top coordinate of\n var options;\n if (this.rowCnt === 1) {\n topEl = view.el; // will cause the popover to cover any sort of header\n }\n else {\n topEl = this.rowEls[row]; // will align with top of row\n }\n options = {\n className: 'fc-more-popover ' + theme.getClass('popover'),\n parentEl: view.el,\n top: computeRect(topEl).top,\n autoHide: true,\n content: function (el) {\n _this.segPopoverTile = new DayTile(_this.context, el);\n _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs);\n },\n hide: function () {\n _this.segPopoverTile.destroy();\n _this.segPopoverTile = null;\n _this.segPopover.destroy();\n _this.segPopover = null;\n }\n };\n // Determine horizontal coordinate.\n // We use the moreWrap instead of the to avoid border confusion.\n if (this.isRtl) {\n options.right = computeRect(moreWrap).right + 1; // +1 to be over cell border\n }\n else {\n options.left = computeRect(moreWrap).left - 1; // -1 to be over cell border\n }\n this.segPopover = new Popover(options);\n this.segPopover.show();\n calendar.releaseAfterSizingTriggers(); // hack for eventPositioned\n };\n // Given the events within an array of segment objects, reslice them to be in a single day\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\n var dayStart = dayDate;\n var dayEnd = addDays(dayStart, 1);\n var dayRange = { start: dayStart, end: dayEnd };\n var newSegs = [];\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n var eventRange = seg.eventRange;\n var origRange = eventRange.range;\n var slicedRange = intersectRanges(origRange, dayRange);\n if (slicedRange) {\n newSegs.push(__assign({}, seg, { eventRange: {\n def: eventRange.def,\n ui: __assign({}, eventRange.ui, { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() }));\n }\n }\n return newSegs;\n };\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\n DayGrid.prototype.getMoreLinkText = function (num) {\n var opt = this.opt('eventLimitText');\n if (typeof opt === 'function') {\n return opt(num);\n }\n else {\n return '+' + num + ' ' + opt;\n }\n };\n // Returns segments within a given cell.\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\n var level = startLevel || 0;\n var segs = [];\n var seg;\n while (level < segMatrix.length) {\n seg = segMatrix[level][col];\n if (seg) {\n segs.push(seg);\n }\n level++;\n }\n return segs;\n };\n return DayGrid;\n}(DateComponent));\n\nvar WEEK_NUM_FORMAT$1 = createFormatter({ week: 'numeric' });\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nvar DayGridView = /** @class */ (function (_super) {\n __extends(DayGridView, _super);\n function DayGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n /* Header Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before the day-of week header cells\n _this.renderHeadIntroHtml = function () {\n var theme = _this.theme;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n '' + // needed for matchCellWidths\n htmlEscape(_this.opt('weekLabel')) +\n '' +\n '';\n }\n return '';\n };\n /* Day Grid Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\n _this.renderDayGridNumberIntroHtml = function (row, dayGrid) {\n var dateEnv = _this.dateEnv;\n var weekStart = dayGrid.props.cells[row][0].date;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n _this, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML\n ) +\n '';\n }\n return '';\n };\n // Generates the HTML that goes before the day bg cells for each day-row\n _this.renderDayGridBgIntroHtml = function () {\n var theme = _this.theme;\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n // Generates the HTML that goes before every other type of row generated by DayGrid.\n // Affects mirror-skeleton and highlight-skeleton rows.\n _this.renderDayGridIntroHtml = function () {\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n _this.el.classList.add('fc-dayGrid-view');\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n var dayGridContainerEl = _this.scroller.el;\n _this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl);\n dayGridContainerEl.classList.add('fc-day-grid-container');\n var dayGridEl = createElement('div', { className: 'fc-day-grid' });\n dayGridContainerEl.appendChild(dayGridEl);\n var cellWeekNumbersVisible;\n if (_this.opt('weekNumbers')) {\n if (_this.opt('weekNumbersWithinDays')) {\n cellWeekNumbersVisible = true;\n _this.colWeekNumbersVisible = false;\n }\n else {\n cellWeekNumbersVisible = false;\n _this.colWeekNumbersVisible = true;\n }\n }\n else {\n _this.colWeekNumbersVisible = false;\n cellWeekNumbersVisible = false;\n }\n _this.dayGrid = new DayGrid(_this.context, dayGridEl, {\n renderNumberIntroHtml: _this.renderDayGridNumberIntroHtml,\n renderBgIntroHtml: _this.renderDayGridBgIntroHtml,\n renderIntroHtml: _this.renderDayGridIntroHtml,\n colWeekNumbersVisible: _this.colWeekNumbersVisible,\n cellWeekNumbersVisible: cellWeekNumbersVisible\n });\n return _this;\n }\n DayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.dayGrid.destroy();\n this.scroller.destroy();\n };\n // Builds the HTML skeleton for the view.\n // The day-grid component will render inside of a container defined by this HTML.\n DayGridView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return '' +\n '' +\n (this.opt('columnHeader') ?\n '' +\n '' +\n '' +\n '' +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
 
';\n };\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\n DayGridView.prototype.weekNumberStyleAttr = function () {\n if (this.weekNumberWidth != null) {\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\n }\n return '';\n };\n // Determines whether each row should have a constant height\n DayGridView.prototype.hasRigidRows = function () {\n var eventLimit = this.opt('eventLimit');\n return eventLimit && typeof eventLimit !== 'number';\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n DayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n this.dayGrid.updateSize(isResize);\n };\n // Refreshes the horizontal dimensions of the view\n DayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n var dayGrid = this.dayGrid;\n var eventLimit = this.opt('eventLimit');\n var headRowEl = this.header ? this.header.el : null; // HACK\n var scrollerHeight;\n var scrollbarWidths;\n // hack to give the view some height prior to dayGrid's columns being rendered\n // TODO: separate setting height from scroller VS dayGrid.\n if (!dayGrid.rowEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n return;\n }\n if (this.colWeekNumbersVisible) {\n // Make sure all week number cells running down the side have the same width.\n this.weekNumberWidth = matchCellWidths(findElements(this.el, '.fc-week-number'));\n }\n // reset all heights to be natural\n this.scroller.clear();\n if (headRowEl) {\n uncompensateScroll(headRowEl);\n }\n dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n // is the event limit a constant level number?\n if (eventLimit && typeof eventLimit === 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\n }\n // distribute the height to the rows\n // (viewHeight is a \"recommended\" value if isAuto)\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.setGridHeight(scrollerHeight, isAuto);\n // is the event limit dynamically calculated?\n if (eventLimit && typeof eventLimit !== 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\n }\n if (!isAuto) { // should we force dimensions of the scroll container?\n this.scroller.setHeight(scrollerHeight);\n scrollbarWidths = this.scroller.getScrollbarWidths();\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n if (headRowEl) {\n compensateScroll(headRowEl, scrollbarWidths);\n }\n // doing the scrollbar compensation might have created text overflow which created more height. redo\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths);\n }\n };\n // given a desired total height of the view, returns what the height of the scroller should be\n DayGridView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n // Sets the height of just the DayGrid component in this view\n DayGridView.prototype.setGridHeight = function (height, isAuto) {\n if (this.opt('monthMode')) {\n // if auto, make the height of each row the height that it would be if there were 6 weeks\n if (isAuto) {\n height *= this.dayGrid.rowCnt / 6;\n }\n distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\n }\n else {\n if (isAuto) {\n undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\n }\n else {\n distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\n }\n }\n };\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n DayGridView.prototype.computeDateScroll = function (duration) {\n return { top: 0 };\n };\n DayGridView.prototype.queryDateScroll = function () {\n return { top: this.scroller.getScrollTop() };\n };\n DayGridView.prototype.applyDateScroll = function (scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top);\n }\n };\n return DayGridView;\n}(View));\nDayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator;\n\nvar SimpleDayGrid = /** @class */ (function (_super) {\n __extends(SimpleDayGrid, _super);\n function SimpleDayGrid(context, dayGrid) {\n var _this = _super.call(this, context, dayGrid.el) || this;\n _this.slicer = new DayGridSlicer();\n _this.dayGrid = dayGrid;\n context.calendar.registerInteractiveComponent(_this, { el: _this.dayGrid.el });\n return _this;\n }\n SimpleDayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n SimpleDayGrid.prototype.render = function (props) {\n var dayGrid = this.dayGrid;\n var dateProfile = props.dateProfile, dayTable = props.dayTable;\n dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }));\n };\n SimpleDayGrid.prototype.buildPositionCaches = function () {\n this.dayGrid.buildPositionCaches();\n };\n SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.dayGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return SimpleDayGrid;\n}(DateComponent));\nvar DayGridSlicer = /** @class */ (function (_super) {\n __extends(DayGridSlicer, _super);\n function DayGridSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) {\n return dayTable.sliceRange(dateRange);\n };\n return DayGridSlicer;\n}(Slicer));\n\nvar DayGridView$1 = /** @class */ (function (_super) {\n __extends(DayGridView, _super);\n function DayGridView(_context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.buildDayTable = memoize(buildDayTable);\n if (_this.opt('columnHeader')) {\n _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid);\n return _this;\n }\n DayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.simpleDayGrid.destroy();\n };\n DayGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props);\n var dateProfile = this.props.dateProfile;\n var dayTable = this.dayTable =\n this.buildDayTable(dateProfile, this.dateProfileGenerator);\n if (this.header) {\n this.header.receiveProps({\n dateProfile: dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: dayTable.rowCnt === 1,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.simpleDayGrid.receiveProps({\n dateProfile: dateProfile,\n dayTable: dayTable,\n businessHours: props.businessHours,\n dateSelection: props.dateSelection,\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isRigid: this.hasRigidRows(),\n nextDayThreshold: this.nextDayThreshold\n });\n };\n return DayGridView;\n}(DayGridView));\nfunction buildDayTable(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n return new DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nvar main = createPlugin({\n defaultView: 'dayGridMonth',\n views: {\n dayGrid: DayGridView$1,\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 }\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 }\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n monthMode: true,\n fixedWeekCount: true\n }\n }\n});\n\nexport default main;\nexport { DayGridView as AbstractDayGridView, DayBgRow, DayGrid, DayGridSlicer, DayGridView$1 as DayGridView, SimpleDayGrid, buildDayTable as buildBasicDayTable };\n","/*!\nFullCalendar Time Grid Plugin v4.3.0\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { createFormatter, removeElement, cssToStr, isMultiDayRange, htmlEscape, compareByFieldSpecs, applyStyle, FgEventRenderer, buildSegCompareObj, FillRenderer, memoizeRendering, createDuration, wholeDivideDurations, findElements, PositionCache, startOfDay, asRoughMs, formatIsoTimeString, addDurations, htmlToElement, createElement, multiplyDuration, DateComponent, hasBgRendering, Splitter, diffDays, buildGotoAnchorHtml, getAllDayHtml, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, View, memoize, intersectRanges, Slicer, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core';\nimport { DayBgRow, DayGrid, SimpleDayGrid } from '@fullcalendar/daygrid';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\n/*\nOnly handles foreground segs.\nDoes not own rendering. Use for low-level util methods by TimeGrid.\n*/\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\n __extends(TimeGridEventRenderer, _super);\n function TimeGridEventRenderer(timeGrid) {\n var _this = _super.call(this, timeGrid.context) || this;\n _this.timeGrid = timeGrid;\n _this.fullTimeFormat = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n separator: _this.context.options.defaultRangeSeparator\n });\n return _this;\n }\n // Given an array of foreground segments, render a DOM element for each, computes position,\n // and attaches to the column inner-container elements.\n TimeGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var segsByCol = this.timeGrid.groupSegsByCol(segs);\n // order the segs within each column\n // TODO: have groupSegsByCol do this?\n for (var col = 0; col < segsByCol.length; col++) {\n segsByCol[col] = this.sortEventSegs(segsByCol[col]);\n }\n this.segsByCol = segsByCol;\n this.timeGrid.attachSegsByCol(segsByCol, this.timeGrid.fgContainerEls);\n };\n TimeGridEventRenderer.prototype.detachSegs = function (segs) {\n segs.forEach(function (seg) {\n removeElement(seg.el);\n });\n this.segsByCol = null;\n };\n TimeGridEventRenderer.prototype.computeSegSizes = function (allSegs) {\n var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n var colCnt = timeGrid.colCnt;\n timeGrid.computeSegVerticals(allSegs); // horizontals relies on this\n if (segsByCol) {\n for (var col = 0; col < colCnt; col++) {\n this.computeSegHorizontals(segsByCol[col]); // compute horizontal coordinates, z-index's, and reorder the array\n }\n }\n };\n TimeGridEventRenderer.prototype.assignSegSizes = function (allSegs) {\n var _a = this, timeGrid = _a.timeGrid, segsByCol = _a.segsByCol;\n var colCnt = timeGrid.colCnt;\n timeGrid.assignSegVerticals(allSegs); // horizontals relies on this\n if (segsByCol) {\n for (var col = 0; col < colCnt; col++) {\n this.assignSegCss(segsByCol[col]);\n }\n }\n };\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n meridiem: false\n };\n };\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return true;\n };\n // Renders the HTML for a single event segment's default rendering\n TimeGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var view = this.context.view;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var allDay = eventDef.allDay;\n var isDraggable = view.computeEventDraggable(eventDef, eventUi);\n var isResizableFromStart = seg.isStart && view.computeEventStartResizable(eventDef, eventUi);\n var isResizableFromEnd = seg.isEnd && view.computeEventEndResizable(eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n var skinCss = cssToStr(this.getSkinCss(eventUi));\n var timeText;\n var fullTimeText; // more verbose time text. for the print stylesheet\n var startTimeText; // just the start time text\n classes.unshift('fc-time-grid-event');\n // if the event appears to span more than one day...\n if (isMultiDayRange(eventRange.range)) {\n // Don't display time text on segments that run entirely through a day.\n // That would appear as midnight-midnight and would look dumb.\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\n if (seg.isStart || seg.isEnd) {\n var unzonedStart = seg.start;\n var unzonedEnd = seg.end;\n timeText = this._getTimeText(unzonedStart, unzonedEnd, allDay); // TODO: give the timezones\n fullTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, this.fullTimeFormat);\n startTimeText = this._getTimeText(unzonedStart, unzonedEnd, allDay, null, false); // displayEnd=false\n }\n }\n else {\n // Display the normal time text for the *event's* times\n timeText = this.getTimeText(eventRange);\n fullTimeText = this.getTimeText(eventRange, this.fullTimeFormat);\n startTimeText = this.getTimeText(eventRange, null, false); // displayEnd=false\n }\n return '
' +\n '
' +\n (timeText ?\n '
' +\n '' + htmlEscape(timeText) + '' +\n '
' :\n '') +\n (eventDef.title ?\n '
' +\n htmlEscape(eventDef.title) +\n '
' :\n '') +\n '
' +\n /* TODO: write CSS for this\n (isResizableFromStart ?\n '
' :\n ''\n ) +\n */\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\n // Assumed the segs are already ordered.\n // NOTE: Also reorders the given array by date!\n TimeGridEventRenderer.prototype.computeSegHorizontals = function (segs) {\n var levels;\n var level0;\n var i;\n levels = buildSlotSegLevels(segs);\n computeForwardSlotSegs(levels);\n if ((level0 = levels[0])) {\n for (i = 0; i < level0.length; i++) {\n computeSlotSegPressures(level0[i]);\n }\n for (i = 0; i < level0.length; i++) {\n this.computeSegForwardBack(level0[i], 0, 0);\n }\n }\n };\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\n //\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\n // coordinate of the first segment in the series.\n TimeGridEventRenderer.prototype.computeSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\n var forwardSegs = seg.forwardSegs;\n var i;\n if (seg.forwardCoord === undefined) { // not already computed\n if (!forwardSegs.length) {\n // if there are no forward segments, this segment should butt up against the edge\n seg.forwardCoord = 1;\n }\n else {\n // sort highest pressure first\n this.sortForwardSegs(forwardSegs);\n // this segment's forwardCoord will be calculated from the backwardCoord of the\n // highest-pressure forward segment.\n this.computeSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\n seg.forwardCoord = forwardSegs[0].backwardCoord;\n }\n // calculate the backwardCoord from the forwardCoord. consider the series\n seg.backwardCoord = seg.forwardCoord -\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\n (seriesBackwardPressure + 1); // # of segments in the series\n // use this segment's coordinates to computed the coordinates of the less-pressurized\n // forward segments\n for (i = 0; i < forwardSegs.length; i++) {\n this.computeSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\n }\n }\n };\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\n var objs = forwardSegs.map(buildTimeGridSegCompareObj);\n var specs = [\n // put higher-pressure first\n { field: 'forwardPressure', order: -1 },\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\n { field: 'backwardCoord', order: 1 }\n ].concat(this.context.view.eventOrderSpecs);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, specs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n };\n // Given foreground event segments that have already had their position coordinates computed,\n // assigns position-related CSS values to their elements.\n TimeGridEventRenderer.prototype.assignSegCss = function (segs) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n applyStyle(seg.el, this.generateSegCss(seg));\n if (seg.level > 0) {\n seg.el.classList.add('fc-time-grid-event-inset');\n }\n // if the event is short that the title will be cut off,\n // attach a className that condenses the title into the time area.\n if (seg.eventRange.def.title && seg.bottom - seg.top < 30) {\n seg.el.classList.add('fc-short'); // TODO: \"condensed\" is a better name\n }\n }\n };\n // Generates an object with CSS properties/values that should be applied to an event segment element.\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\n TimeGridEventRenderer.prototype.generateSegCss = function (seg) {\n var shouldOverlap = this.context.options.slotEventOverlap;\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\n var isRtl = this.timeGrid.isRtl;\n var left; // amount of space from left edge, a fraction of the total width\n var right; // amount of space from right edge, a fraction of the total width\n if (shouldOverlap) {\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\n }\n if (isRtl) {\n left = 1 - forwardCoord;\n right = backwardCoord;\n }\n else {\n left = backwardCoord;\n right = 1 - forwardCoord;\n }\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\n props.left = left * 100 + '%';\n props.right = right * 100 + '%';\n if (shouldOverlap && seg.forwardPressure) {\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\n props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n }\n return props;\n };\n return TimeGridEventRenderer;\n}(FgEventRenderer));\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\nfunction buildSlotSegLevels(segs) {\n var levels = [];\n var i;\n var seg;\n var j;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n // go through all the levels and stop on the first level where there are no collisions\n for (j = 0; j < levels.length; j++) {\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\n break;\n }\n }\n seg.level = j;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n return levels;\n}\n// For every segment, figure out the other segments that are in subsequent\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\nfunction computeForwardSlotSegs(levels) {\n var i;\n var level;\n var j;\n var seg;\n var k;\n for (i = 0; i < levels.length; i++) {\n level = levels[i];\n for (j = 0; j < level.length; j++) {\n seg = level[j];\n seg.forwardSegs = [];\n for (k = i + 1; k < levels.length; k++) {\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\n }\n }\n }\n}\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\nfunction computeSlotSegPressures(seg) {\n var forwardSegs = seg.forwardSegs;\n var forwardPressure = 0;\n var i;\n var forwardSeg;\n if (seg.forwardPressure === undefined) { // not already computed\n for (i = 0; i < forwardSegs.length; i++) {\n forwardSeg = forwardSegs[i];\n // figure out the child's maximum forward path\n computeSlotSegPressures(forwardSeg);\n // either use the existing maximum, or use the child's forward pressure\n // plus one (for the forwardSeg itself)\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\n }\n seg.forwardPressure = forwardPressure;\n }\n}\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\n// Append into an optionally-supplied `results` array and return.\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\n if (results === void 0) { results = []; }\n for (var i = 0; i < otherSegs.length; i++) {\n if (isSlotSegCollision(seg, otherSegs[i])) {\n results.push(otherSegs[i]);\n }\n }\n return results;\n}\n// Do these segments occupy the same vertical space?\nfunction isSlotSegCollision(seg1, seg2) {\n return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\n}\nfunction buildTimeGridSegCompareObj(seg) {\n var obj = buildSegCompareObj(seg);\n obj.forwardPressure = seg.forwardPressure;\n obj.backwardCoord = seg.backwardCoord;\n return obj;\n}\n\nvar TimeGridMirrorRenderer = /** @class */ (function (_super) {\n __extends(TimeGridMirrorRenderer, _super);\n function TimeGridMirrorRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n this.segsByCol = this.timeGrid.groupSegsByCol(segs);\n this.timeGrid.attachSegsByCol(this.segsByCol, this.timeGrid.mirrorContainerEls);\n this.sourceSeg = mirrorInfo.sourceSeg;\n };\n TimeGridMirrorRenderer.prototype.generateSegCss = function (seg) {\n var props = _super.prototype.generateSegCss.call(this, seg);\n var sourceSeg = this.sourceSeg;\n if (sourceSeg && sourceSeg.col === seg.col) {\n var sourceSegProps = _super.prototype.generateSegCss.call(this, sourceSeg);\n props.left = sourceSegProps.left;\n props.right = sourceSegProps.right;\n props.marginLeft = sourceSegProps.marginLeft;\n props.marginRight = sourceSegProps.marginRight;\n }\n return props;\n };\n return TimeGridMirrorRenderer;\n}(TimeGridEventRenderer));\n\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\n __extends(TimeGridFillRenderer, _super);\n function TimeGridFillRenderer(timeGrid) {\n var _this = _super.call(this, timeGrid.context) || this;\n _this.timeGrid = timeGrid;\n return _this;\n }\n TimeGridFillRenderer.prototype.attachSegs = function (type, segs) {\n var timeGrid = this.timeGrid;\n var containerEls;\n // TODO: more efficient lookup\n if (type === 'bgEvent') {\n containerEls = timeGrid.bgContainerEls;\n }\n else if (type === 'businessHours') {\n containerEls = timeGrid.businessContainerEls;\n }\n else if (type === 'highlight') {\n containerEls = timeGrid.highlightContainerEls;\n }\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\n return segs.map(function (seg) {\n return seg.el;\n });\n };\n TimeGridFillRenderer.prototype.computeSegSizes = function (segs) {\n this.timeGrid.computeSegVerticals(segs);\n };\n TimeGridFillRenderer.prototype.assignSegSizes = function (segs) {\n this.timeGrid.assignSegVerticals(segs);\n };\n return TimeGridFillRenderer;\n}(FillRenderer));\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nvar AGENDA_STOCK_SUB_DURATIONS = [\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { seconds: 30 },\n { seconds: 15 }\n];\nvar TimeGrid = /** @class */ (function (_super) {\n __extends(TimeGrid, _super);\n function TimeGrid(context, el, renderProps) {\n var _this = _super.call(this, context, el) || this;\n _this.isSlatSizesDirty = false;\n _this.isColSizesDirty = false;\n _this.renderSlats = memoizeRendering(_this._renderSlats);\n var eventRenderer = _this.eventRenderer = new TimeGridEventRenderer(_this);\n var fillRenderer = _this.fillRenderer = new TimeGridFillRenderer(_this);\n _this.mirrorRenderer = new TimeGridMirrorRenderer(_this);\n var renderColumns = _this.renderColumns = memoizeRendering(_this._renderColumns, _this._unrenderColumns);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderColumns]);\n _this.renderDateSelection = memoizeRendering(_this._renderDateSelection, _this._unrenderDateSelection, [renderColumns]);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderColumns]);\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderColumns]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderColumns]);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderColumns]);\n _this.processOptions();\n el.innerHTML =\n '
' +\n '
' +\n '
';\n _this.rootBgContainerEl = el.querySelector('.fc-bg');\n _this.slatContainerEl = el.querySelector('.fc-slats');\n _this.bottomRuleEl = el.querySelector('.fc-divider');\n _this.renderProps = renderProps;\n return _this;\n }\n /* Options\n ------------------------------------------------------------------------------------------------------------------*/\n // Parses various options into properties of this object\n TimeGrid.prototype.processOptions = function () {\n var slotDuration = this.opt('slotDuration');\n var snapDuration = this.opt('snapDuration');\n var snapsPerSlot;\n var input;\n slotDuration = createDuration(slotDuration);\n snapDuration = snapDuration ? createDuration(snapDuration) : slotDuration;\n snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n if (snapsPerSlot === null) {\n snapDuration = slotDuration;\n snapsPerSlot = 1;\n // TODO: say warning?\n }\n this.slotDuration = slotDuration;\n this.snapDuration = snapDuration;\n this.snapsPerSlot = snapsPerSlot;\n // might be an array value (for TimelineView).\n // if so, getting the most granular entry (the last one probably).\n input = this.opt('slotLabelFormat');\n if (Array.isArray(input)) {\n input = input[input.length - 1];\n }\n this.labelFormat = createFormatter(input || {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short'\n });\n input = this.opt('slotLabelInterval');\n this.labelInterval = input ?\n createDuration(input) :\n this.computeLabelInterval(slotDuration);\n };\n // Computes an automatic value for slotLabelInterval\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\n var i;\n var labelInterval;\n var slotsPerLabel;\n // find the smallest stock label interval that results in more than one slots-per-label\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\n labelInterval = createDuration(AGENDA_STOCK_SUB_DURATIONS[i]);\n slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n if (slotsPerLabel !== null && slotsPerLabel > 1) {\n return labelInterval;\n }\n }\n return slotDuration; // fall back\n };\n /* Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.render = function (props) {\n var cells = props.cells;\n this.colCnt = cells.length;\n this.renderSlats(props.dateProfile);\n this.renderColumns(props.cells, props.dateProfile);\n this.renderBusinessHours(props.businessHourSegs);\n this.renderDateSelection(props.dateSelectionSegs);\n this.renderFgEvents(props.fgEventSegs);\n this.renderBgEvents(props.bgEventSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDrag);\n this.renderEventResize(props.eventResize);\n };\n TimeGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // should unrender everything else too\n this.renderSlats.unrender();\n this.renderColumns.unrender();\n };\n TimeGrid.prototype.updateSize = function (isResize) {\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n if (isResize || this.isSlatSizesDirty) {\n this.buildSlatPositions();\n this.isSlatSizesDirty = false;\n }\n if (isResize || this.isColSizesDirty) {\n this.buildColPositions();\n this.isColSizesDirty = false;\n }\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n TimeGrid.prototype._renderSlats = function (dateProfile) {\n var theme = this.theme;\n this.slatContainerEl.innerHTML =\n '' +\n this.renderSlatRowHtml(dateProfile) +\n '
';\n this.slatEls = findElements(this.slatContainerEl, 'tr');\n this.slatPositions = new PositionCache(this.el, this.slatEls, false, true // vertical\n );\n this.isSlatSizesDirty = true;\n };\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n TimeGrid.prototype.renderSlatRowHtml = function (dateProfile) {\n var _a = this, dateEnv = _a.dateEnv, theme = _a.theme, isRtl = _a.isRtl;\n var html = '';\n var dayStart = startOfDay(dateProfile.renderRange.start);\n var slotTime = dateProfile.minTime;\n var slotIterator = createDuration(0);\n var slotDate; // will be on the view's first day, but we only care about its time\n var isLabeled;\n var axisHtml;\n // Calculate the time for each slot\n while (asRoughMs(slotTime) < asRoughMs(dateProfile.maxTime)) {\n slotDate = dateEnv.add(dayStart, slotTime);\n isLabeled = wholeDivideDurations(slotIterator, this.labelInterval) !== null;\n axisHtml =\n '' +\n (isLabeled ?\n '' + // for matchCellWidths\n htmlEscape(dateEnv.format(slotDate, this.labelFormat)) +\n '' :\n '') +\n '';\n html +=\n '' +\n (!isRtl ? axisHtml : '') +\n '' +\n (isRtl ? axisHtml : '') +\n '';\n slotTime = addDurations(slotTime, this.slotDuration);\n slotIterator = addDurations(slotIterator, this.slotDuration);\n }\n return html;\n };\n TimeGrid.prototype._renderColumns = function (cells, dateProfile) {\n var _a = this, theme = _a.theme, dateEnv = _a.dateEnv, view = _a.view;\n var bgRow = new DayBgRow(this.context);\n this.rootBgContainerEl.innerHTML =\n '' +\n bgRow.renderHtml({\n cells: cells,\n dateProfile: dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '
';\n this.colEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n for (var col = 0; col < this.colCnt; col++) {\n this.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[col].date),\n el: this.colEls[col],\n view: view\n }\n ]);\n }\n if (this.isRtl) {\n this.colEls.reverse();\n }\n this.colPositions = new PositionCache(this.el, this.colEls, true, // horizontal\n false);\n this.renderContentSkeleton();\n this.isColSizesDirty = true;\n };\n TimeGrid.prototype._unrenderColumns = function () {\n this.unrenderContentSkeleton();\n };\n /* Content Skeleton\n ------------------------------------------------------------------------------------------------------------------*/\n // Renders the DOM that the view's content will live in\n TimeGrid.prototype.renderContentSkeleton = function () {\n var parts = [];\n var skeletonEl;\n parts.push(this.renderProps.renderIntroHtml());\n for (var i = 0; i < this.colCnt; i++) {\n parts.push('' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '');\n }\n if (this.isRtl) {\n parts.reverse();\n }\n skeletonEl = this.contentSkeletonEl = htmlToElement('
' +\n '' +\n '' + parts.join('') + '' +\n '
' +\n '
');\n this.colContainerEls = findElements(skeletonEl, '.fc-content-col');\n this.mirrorContainerEls = findElements(skeletonEl, '.fc-mirror-container');\n this.fgContainerEls = findElements(skeletonEl, '.fc-event-container:not(.fc-mirror-container)');\n this.bgContainerEls = findElements(skeletonEl, '.fc-bgevent-container');\n this.highlightContainerEls = findElements(skeletonEl, '.fc-highlight-container');\n this.businessContainerEls = findElements(skeletonEl, '.fc-business-container');\n if (this.isRtl) {\n this.colContainerEls.reverse();\n this.mirrorContainerEls.reverse();\n this.fgContainerEls.reverse();\n this.bgContainerEls.reverse();\n this.highlightContainerEls.reverse();\n this.businessContainerEls.reverse();\n }\n this.el.appendChild(skeletonEl);\n };\n TimeGrid.prototype.unrenderContentSkeleton = function () {\n removeElement(this.contentSkeletonEl);\n };\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\n TimeGrid.prototype.groupSegsByCol = function (segs) {\n var segsByCol = [];\n var i;\n for (i = 0; i < this.colCnt; i++) {\n segsByCol.push([]);\n }\n for (i = 0; i < segs.length; i++) {\n segsByCol[segs[i].col].push(segs[i]);\n }\n return segsByCol;\n };\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\n // elements, each living within a column.\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\n var col;\n var segs;\n var i;\n for (col = 0; col < this.colCnt; col++) { // iterate each column grouping\n segs = segsByCol[col];\n for (i = 0; i < segs.length; i++) {\n containerEls[col].appendChild(segs[i].el);\n }\n }\n };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.getNowIndicatorUnit = function () {\n return 'minute'; // will refresh on the minute\n };\n TimeGrid.prototype.renderNowIndicator = function (segs, date) {\n // HACK: if date columns not ready for some reason (scheduler)\n if (!this.colContainerEls) {\n return;\n }\n var top = this.computeDateTop(date);\n var nodes = [];\n var i;\n // render lines within the columns\n for (i = 0; i < segs.length; i++) {\n var lineEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-line' });\n lineEl.style.top = top + 'px';\n this.colContainerEls[segs[i].col].appendChild(lineEl);\n nodes.push(lineEl);\n }\n // render an arrow over the axis\n if (segs.length > 0) { // is the current time in view?\n var arrowEl = createElement('div', { className: 'fc-now-indicator fc-now-indicator-arrow' });\n arrowEl.style.top = top + 'px';\n this.contentSkeletonEl.appendChild(arrowEl);\n nodes.push(arrowEl);\n }\n this.nowIndicatorEls = nodes;\n };\n TimeGrid.prototype.unrenderNowIndicator = function () {\n if (this.nowIndicatorEls) {\n this.nowIndicatorEls.forEach(removeElement);\n this.nowIndicatorEls = null;\n }\n };\n /* Coordinates\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.getTotalSlatHeight = function () {\n return this.slatContainerEl.getBoundingClientRect().height;\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n TimeGrid.prototype.computeDateTop = function (when, startOfDayDate) {\n if (!startOfDayDate) {\n startOfDayDate = startOfDay(when);\n }\n return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n };\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n TimeGrid.prototype.computeTimeTop = function (duration) {\n var len = this.slatEls.length;\n var dateProfile = this.props.dateProfile;\n var slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.minTime)) / asRoughMs(this.slotDuration); // floating-point value of # of slots covered\n var slatIndex;\n var slatRemainder;\n // compute a floating-point number for how many slats should be progressed through.\n // from 0 to number of slats (inclusive)\n // constrained because minTime/maxTime might be customized.\n slatCoverage = Math.max(0, slatCoverage);\n slatCoverage = Math.min(len, slatCoverage);\n // an integer index of the furthest whole slat\n // from 0 to number slats (*exclusive*, so len-1)\n slatIndex = Math.floor(slatCoverage);\n slatIndex = Math.min(slatIndex, len - 1);\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n // could be 1.0 if slatCoverage is covering *all* the slots\n slatRemainder = slatCoverage - slatIndex;\n return this.slatPositions.tops[slatIndex] +\n this.slatPositions.getHeight(slatIndex) * slatRemainder;\n };\n // For each segment in an array, computes and assigns its top and bottom properties\n TimeGrid.prototype.computeSegVerticals = function (segs) {\n var eventMinHeight = this.opt('timeGridEventMinHeight');\n var i;\n var seg;\n var dayDate;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n dayDate = this.props.cells[seg.col].date;\n seg.top = this.computeDateTop(seg.start, dayDate);\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.end, dayDate));\n }\n };\n // Given segments that already have their top/bottom properties computed, applies those values to\n // the segments' elements.\n TimeGrid.prototype.assignSegVerticals = function (segs) {\n var i;\n var seg;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n applyStyle(seg.el, this.generateSegVerticalCss(seg));\n }\n };\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\n return {\n top: seg.top,\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\n };\n };\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.buildPositionCaches = function () {\n this.buildColPositions();\n this.buildSlatPositions();\n };\n TimeGrid.prototype.buildColPositions = function () {\n this.colPositions.build();\n };\n TimeGrid.prototype.buildSlatPositions = function () {\n this.slatPositions.build();\n };\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype.positionToHit = function (positionLeft, positionTop) {\n var _a = this, dateEnv = _a.dateEnv, snapsPerSlot = _a.snapsPerSlot, slatPositions = _a.slatPositions, colPositions = _a.colPositions;\n var colIndex = colPositions.leftToIndex(positionLeft);\n var slatIndex = slatPositions.topToIndex(positionTop);\n if (colIndex != null && slatIndex != null) {\n var slatTop = slatPositions.tops[slatIndex];\n var slatHeight = slatPositions.getHeight(slatIndex);\n var partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n var dayDate = this.props.cells[colIndex].date;\n var time = addDurations(this.props.dateProfile.minTime, multiplyDuration(this.snapDuration, snapIndex));\n var start = dateEnv.add(dayDate, time);\n var end = dateEnv.add(start, this.snapDuration);\n return {\n col: colIndex,\n dateSpan: {\n range: { start: start, end: end },\n allDay: false\n },\n dayEl: this.colEls[colIndex],\n relativeRect: {\n left: colPositions.lefts[colIndex],\n right: colPositions.rights[colIndex],\n top: slatTop,\n bottom: slatTop + slatHeight\n }\n };\n }\n };\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n if (state.isEvent) {\n this.mirrorRenderer.renderSegs(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n }\n else {\n this.fillRenderer.renderSegs('highlight', state.segs);\n }\n }\n };\n TimeGrid.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.mirrorRenderer.unrender(state.segs, { isDragging: true, sourceSeg: state.sourceSeg });\n this.fillRenderer.unrender('highlight');\n }\n };\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGrid.prototype._renderEventResize = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.mirrorRenderer.renderSegs(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n TimeGrid.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.mirrorRenderer.unrender(state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n /* Selection\n ------------------------------------------------------------------------------------------------------------------*/\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\n TimeGrid.prototype._renderDateSelection = function (segs) {\n if (segs) {\n if (this.opt('selectMirror')) {\n this.mirrorRenderer.renderSegs(segs, { isSelecting: true });\n }\n else {\n this.fillRenderer.renderSegs('highlight', segs);\n }\n }\n };\n TimeGrid.prototype._unrenderDateSelection = function (segs) {\n this.mirrorRenderer.unrender(segs, { isSelecting: true });\n this.fillRenderer.unrender('highlight');\n };\n return TimeGrid;\n}(DateComponent));\n\nvar AllDaySplitter = /** @class */ (function (_super) {\n __extends(AllDaySplitter, _super);\n function AllDaySplitter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AllDaySplitter.prototype.getKeyInfo = function () {\n return {\n allDay: {},\n timed: {}\n };\n };\n AllDaySplitter.prototype.getKeysForDateSpan = function (dateSpan) {\n if (dateSpan.allDay) {\n return ['allDay'];\n }\n else {\n return ['timed'];\n }\n };\n AllDaySplitter.prototype.getKeysForEventDef = function (eventDef) {\n if (!eventDef.allDay) {\n return ['timed'];\n }\n else if (hasBgRendering(eventDef)) {\n return ['timed', 'allDay'];\n }\n else {\n return ['allDay'];\n }\n };\n return AllDaySplitter;\n}(Splitter));\n\nvar TIMEGRID_ALL_DAY_EVENT_LIMIT = 5;\nvar WEEK_HEADER_FORMAT = createFormatter({ week: 'short' });\n/* An abstract class for all timegrid-related views. Displays one more columns with time slots running vertically.\n----------------------------------------------------------------------------------------------------------------------*/\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\n// Responsible for managing width/height.\nvar TimeGridView = /** @class */ (function (_super) {\n __extends(TimeGridView, _super);\n function TimeGridView(context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.splitter = new AllDaySplitter();\n /* Header Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before the day-of week header cells\n _this.renderHeadIntroHtml = function () {\n var _a = _this, theme = _a.theme, dateEnv = _a.dateEnv;\n var range = _this.props.dateProfile.renderRange;\n var dayCnt = diffDays(range.start, range.end);\n var weekText;\n if (_this.opt('weekNumbers')) {\n weekText = dateEnv.format(range.start, WEEK_HEADER_FORMAT);\n return '' +\n '' +\n buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n _this, { date: range.start, type: 'week', forceOff: dayCnt > 1 }, htmlEscape(weekText) // inner HTML\n ) +\n '';\n }\n else {\n return '';\n }\n };\n /* Time Grid Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\n _this.renderTimeGridBgIntroHtml = function () {\n var theme = _this.theme;\n return '';\n };\n // Generates the HTML that goes before all other types of cells.\n // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n _this.renderTimeGridIntroHtml = function () {\n return '';\n };\n /* Day Grid Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that goes before the all-day cells\n _this.renderDayGridBgIntroHtml = function () {\n var theme = _this.theme;\n return '' +\n '' +\n '' + // needed for matchCellWidths\n getAllDayHtml(_this) +\n '' +\n '';\n };\n // Generates the HTML that goes before all other types of cells.\n // Affects content-skeleton, mirror-skeleton, highlight-skeleton for both the time-grid and day-grid.\n _this.renderDayGridIntroHtml = function () {\n return '';\n };\n _this.el.classList.add('fc-timeGrid-view');\n _this.el.innerHTML = _this.renderSkeletonHtml();\n _this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n var timeGridWrapEl = _this.scroller.el;\n _this.el.querySelector('.fc-body > tr > td').appendChild(timeGridWrapEl);\n timeGridWrapEl.classList.add('fc-time-grid-container');\n var timeGridEl = createElement('div', { className: 'fc-time-grid' });\n timeGridWrapEl.appendChild(timeGridEl);\n _this.timeGrid = new TimeGrid(_this.context, timeGridEl, {\n renderBgIntroHtml: _this.renderTimeGridBgIntroHtml,\n renderIntroHtml: _this.renderTimeGridIntroHtml\n });\n if (_this.opt('allDaySlot')) { // should we display the \"all-day\" area?\n _this.dayGrid = new DayGrid(// the all-day subcomponent of this view\n _this.context, _this.el.querySelector('.fc-day-grid'), {\n renderNumberIntroHtml: _this.renderDayGridIntroHtml,\n renderBgIntroHtml: _this.renderDayGridBgIntroHtml,\n renderIntroHtml: _this.renderDayGridIntroHtml,\n colWeekNumbersVisible: false,\n cellWeekNumbersVisible: false\n });\n // have the day-grid extend it's coordinate area over the
dividing the two grids\n var dividerEl = _this.el.querySelector('.fc-divider');\n _this.dayGrid.bottomCoordPadding = dividerEl.getBoundingClientRect().height;\n }\n return _this;\n }\n TimeGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.timeGrid.destroy();\n if (this.dayGrid) {\n this.dayGrid.destroy();\n }\n this.scroller.destroy();\n };\n /* Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds the HTML skeleton for the view.\n // The day-grid and time-grid components will render inside containers defined by this HTML.\n TimeGridView.prototype.renderSkeletonHtml = function () {\n var theme = this.theme;\n return '' +\n '' +\n (this.opt('columnHeader') ?\n '' +\n '' +\n '' +\n '' +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
 
' +\n (this.opt('allDaySlot') ?\n '
' +\n '
' :\n '') +\n '
';\n };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGridView.prototype.getNowIndicatorUnit = function () {\n return this.timeGrid.getNowIndicatorUnit();\n };\n // subclasses should implement\n // renderNowIndicator(date: DateMarker) {\n // }\n TimeGridView.prototype.unrenderNowIndicator = function () {\n this.timeGrid.unrenderNowIndicator();\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n TimeGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n this.timeGrid.updateSize(isResize);\n if (this.dayGrid) {\n this.dayGrid.updateSize(isResize);\n }\n };\n // Adjusts the vertical dimensions of the view to the specified values\n TimeGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n var _this = this;\n var eventLimit;\n var scrollerHeight;\n var scrollbarWidths;\n // make all axis cells line up\n this.axisWidth = matchCellWidths(findElements(this.el, '.fc-axis'));\n // hack to give the view some height prior to timeGrid's columns being rendered\n // TODO: separate setting height from scroller VS timeGrid.\n if (!this.timeGrid.colEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n return;\n }\n // set of fake row elements that must compensate when scroller has scrollbars\n var noScrollRowEls = findElements(this.el, '.fc-row').filter(function (node) {\n return !_this.scroller.el.contains(node);\n });\n // reset all dimensions back to the original state\n this.timeGrid.bottomRuleEl.style.display = 'none'; // will be shown later if this
is necessary\n this.scroller.clear(); // sets height to 'auto' and clears overflow\n noScrollRowEls.forEach(uncompensateScroll);\n // limit number of events in the all-day area\n if (this.dayGrid) {\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n eventLimit = this.opt('eventLimit');\n if (eventLimit && typeof eventLimit !== 'number') {\n eventLimit = TIMEGRID_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\n }\n if (eventLimit) {\n this.dayGrid.limitRows(eventLimit);\n }\n }\n if (!isAuto) { // should we force dimensions of the scroll container?\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n scrollbarWidths = this.scroller.getScrollbarWidths();\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n // make the all-day and header rows lines up\n noScrollRowEls.forEach(function (rowEl) {\n compensateScroll(rowEl, scrollbarWidths);\n });\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\n // and reapply the desired height to the scroller.\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths);\n // if there's any space below the slats, show the horizontal rule.\n // this won't cause any new overflow, because lockOverflow already called.\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\n this.timeGrid.bottomRuleEl.style.display = '';\n }\n }\n };\n // given a desired total height of the view, returns what the height of the scroller should be\n TimeGridView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\n TimeGridView.prototype.computeDateScroll = function (duration) {\n var top = this.timeGrid.computeTimeTop(duration);\n // zoom can give weird floating-point values. rather scroll a little bit further\n top = Math.ceil(top);\n if (top) {\n top++; // to overcome top border that slots beyond the first have. looks better\n }\n return { top: top };\n };\n TimeGridView.prototype.queryDateScroll = function () {\n return { top: this.scroller.getScrollTop() };\n };\n TimeGridView.prototype.applyDateScroll = function (scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top);\n }\n };\n // Generates an HTML attribute string for setting the width of the axis, if it is known\n TimeGridView.prototype.axisStyleAttr = function () {\n if (this.axisWidth != null) {\n return 'style=\"width:' + this.axisWidth + 'px\"';\n }\n return '';\n };\n return TimeGridView;\n}(View));\nTimeGridView.prototype.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\n\nvar SimpleTimeGrid = /** @class */ (function (_super) {\n __extends(SimpleTimeGrid, _super);\n function SimpleTimeGrid(context, timeGrid) {\n var _this = _super.call(this, context, timeGrid.el) || this;\n _this.buildDayRanges = memoize(buildDayRanges);\n _this.slicer = new TimeGridSlicer();\n _this.timeGrid = timeGrid;\n context.calendar.registerInteractiveComponent(_this, {\n el: _this.timeGrid.el\n });\n return _this;\n }\n SimpleTimeGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.calendar.unregisterInteractiveComponent(this);\n };\n SimpleTimeGrid.prototype.render = function (props) {\n var dateProfile = props.dateProfile, dayTable = props.dayTable;\n var dayRanges = this.dayRanges = this.buildDayRanges(dayTable, dateProfile, this.dateEnv);\n this.timeGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, null, this.timeGrid, dayRanges), { dateProfile: dateProfile, cells: dayTable.cells[0] }));\n };\n SimpleTimeGrid.prototype.renderNowIndicator = function (date) {\n this.timeGrid.renderNowIndicator(this.slicer.sliceNowDate(date, this.timeGrid, this.dayRanges), date);\n };\n SimpleTimeGrid.prototype.buildPositionCaches = function () {\n this.timeGrid.buildPositionCaches();\n };\n SimpleTimeGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.timeGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.timeGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return SimpleTimeGrid;\n}(DateComponent));\nfunction buildDayRanges(dayTable, dateProfile, dateEnv) {\n var ranges = [];\n for (var _i = 0, _a = dayTable.headerDates; _i < _a.length; _i++) {\n var date = _a[_i];\n ranges.push({\n start: dateEnv.add(date, dateProfile.minTime),\n end: dateEnv.add(date, dateProfile.maxTime)\n });\n }\n return ranges;\n}\nvar TimeGridSlicer = /** @class */ (function (_super) {\n __extends(TimeGridSlicer, _super);\n function TimeGridSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TimeGridSlicer.prototype.sliceRange = function (range, dayRanges) {\n var segs = [];\n for (var col = 0; col < dayRanges.length; col++) {\n var segRange = intersectRanges(range, dayRanges[col]);\n if (segRange) {\n segs.push({\n start: segRange.start,\n end: segRange.end,\n isStart: segRange.start.valueOf() === range.start.valueOf(),\n isEnd: segRange.end.valueOf() === range.end.valueOf(),\n col: col\n });\n }\n }\n return segs;\n };\n return TimeGridSlicer;\n}(Slicer));\n\nvar TimeGridView$1 = /** @class */ (function (_super) {\n __extends(TimeGridView, _super);\n function TimeGridView(_context, viewSpec, dateProfileGenerator, parentEl) {\n var _this = _super.call(this, _context, viewSpec, dateProfileGenerator, parentEl) || this;\n _this.buildDayTable = memoize(buildDayTable);\n if (_this.opt('columnHeader')) {\n _this.header = new DayHeader(_this.context, _this.el.querySelector('.fc-head-container'));\n }\n _this.simpleTimeGrid = new SimpleTimeGrid(_this.context, _this.timeGrid);\n if (_this.dayGrid) {\n _this.simpleDayGrid = new SimpleDayGrid(_this.context, _this.dayGrid);\n }\n return _this;\n }\n TimeGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.simpleTimeGrid.destroy();\n if (this.simpleDayGrid) {\n this.simpleDayGrid.destroy();\n }\n };\n TimeGridView.prototype.render = function (props) {\n _super.prototype.render.call(this, props); // for flags for updateSize\n var dateProfile = this.props.dateProfile;\n var dayTable = this.buildDayTable(dateProfile, this.dateProfileGenerator);\n var splitProps = this.splitter.splitProps(props);\n if (this.header) {\n this.header.receiveProps({\n dateProfile: dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: true,\n renderIntroHtml: this.renderHeadIntroHtml\n });\n }\n this.simpleTimeGrid.receiveProps(__assign({}, splitProps['timed'], { dateProfile: dateProfile,\n dayTable: dayTable }));\n if (this.simpleDayGrid) {\n this.simpleDayGrid.receiveProps(__assign({}, splitProps['allDay'], { dateProfile: dateProfile,\n dayTable: dayTable, nextDayThreshold: this.nextDayThreshold, isRigid: false }));\n }\n };\n TimeGridView.prototype.renderNowIndicator = function (date) {\n this.simpleTimeGrid.renderNowIndicator(date);\n };\n return TimeGridView;\n}(TimeGridView));\nfunction buildDayTable(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n return new DayTable(daySeries, false);\n}\n\nvar main = createPlugin({\n defaultView: 'timeGridWeek',\n views: {\n timeGrid: {\n class: TimeGridView$1,\n allDaySlot: true,\n slotDuration: '00:30:00',\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\n },\n timeGridDay: {\n type: 'timeGrid',\n duration: { days: 1 }\n },\n timeGridWeek: {\n type: 'timeGrid',\n duration: { weeks: 1 }\n }\n }\n});\n\nexport default main;\nexport { TimeGridView as AbstractTimeGridView, TimeGrid, TimeGridSlicer, TimeGridView$1 as TimeGridView, buildDayRanges, buildDayTable };\n","/*!\nFullCalendar Interaction Plugin v4.3.0\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. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\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 pointer = _this.dragging.pointer;\n if (!pointer.wasTouchScroll) {\n var _a = _this.hitDragging, initialHit = _a.initialHit, finalHit = _a.finalHit;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n component.calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, component.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 canSelect = component.opt('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.calendar.unselect(ev); // unselect previous selections\n };\n _this.handleHitUpdate = function (hit, isFinal) {\n var calendar = _this.component.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.calendar.triggerDateSelect(_this.dragSelection, pev);\n _this.dragSelection = null;\n }\n };\n var component = settings.component;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = component.opt('selectMinDistance') || 0;\n dragging.autoScroller.isEnabled = component.opt('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 delay = component.opt('selectLongPressDelay');\n if (delay == null) {\n delay = component.opt('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 initialCalendar = component.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 : component.opt('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 = component.opt('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 initialCalendar = _this.component.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: _this.component.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.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.calendar;\n if (initialCalendar === receivingCalendar ||\n receivingComponent.opt('editable') && receivingComponent.opt('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 initialCalendar_1 = _this.component.calendar;\n var initialView = _this.component.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 dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.opt('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.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.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.opt('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.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 delay = component.opt('eventLongPressDelay');\n if (delay == null) {\n delay = component.opt('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.opt('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 calendar = _this.component.calendar;\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: _this.component.view\n }\n ]);\n };\n _this.handleHitUpdate = function (hit, isFinal, ev) {\n var calendar = _this.component.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 calendar = _this.component.calendar;\n var view = _this.component.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.opt('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.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.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.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","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyCalendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MyCalendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MyCalendar.vue?vue&type=template&id=352b95d0&\"\nimport script from \"./MyCalendar.vue?vue&type=script&lang=js&\"\nexport * from \"./MyCalendar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MyCalendar.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","