{"version":3,"sources":["webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./src/components/Header.vue?2a4b","webpack:///./src/components/Identify.vue?bc7f","webpack:///src/components/Identify.vue","webpack:///./src/components/Identify.vue?1ed9","webpack:///./src/components/Identify.vue","webpack:///src/components/Header.vue","webpack:///./src/components/Header.vue?2d70","webpack:///./src/components/Header.vue","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./src/components/Header.vue?8e73","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/@fullcalendar/interaction/main.esm.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/@fullcalendar/core/main.esm.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./src/assets/images/logo2.svg","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/vue2-editor/dist/vue2-editor.esm.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/se.js"],"names":["global","factory","exports","module","require","define","this","moment","uzLatn","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","week","dow","doy","ml","monthsParseExact","meridiemParse","meridiemHour","hour","meridiem","minute","isLower","cv","output","affix","exec","dayOfMonthOrdinalParse","ordinal","render","_vm","_h","$createElement","_c","_self","attrs","staticClass","on","setShowMenu","staticStyle","$event","goNTUA","_m","staticRenderFns","_v","contentWidth","contentHeight","name","props","identifyCode","type","String","default","fontSizeMin","Number","fontSizeMax","backgroundColorMin","backgroundColorMax","colorMin","colorMax","lineColorMin","lineColorMax","dotColorMin","dotColorMax","methods","randomNum","Math","floor","random","max","min","randomColor","r","g","b","drawPic","ctx","textBaseline","fillStyle","fillRect","drawText","i","drawLine","drawDot","font","translate","x","rotate","fillText","txt","strokeStyle","beginPath","moveTo","lineTo","stroke","arc","fill","watch","mounted","component","components","Identify","data","loginDialog","account","password","showMenu","code","identifyCodes","computed","userName","window","localStorage","getItem","JSON","parse","RealName","hasRole","loginHandler","vm","$alertT","fire","icon","title","$api","getInfoByToken","token","GetInfoByToken","params","then","user","stringify","res","response","location","reload","logoutHandler","$confirm","confirmButtonText","cancelButtonText","removeItem","$router","push","$emit","refreshCode","makeCode","href","plural","n","number","withoutSuffix","key","isFuture","result","is","fo","ja","eras","since","offset","narrow","abbr","until","Infinity","eraYearOrdinalRegex","eraYearOrdinalParse","input","match","parseInt","l","ll","lll","llll","isPM","now","period","monthsShortDot","monthsParse","monthsRegex","esDo","format","test","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","hours","arMa","processRelativeTime","gomLatn","standalone","isFormat","frCh","enAu","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","tr","minutes","a","c","da","tlPh","eu","th","translator","words","correctGrammaticalCase","wordKey","length","srCyrl","day","lastWeekDays","ocLnc","extendStatics","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","arguments","call","apply","config","touchMouseIgnoreWait","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","containerEl","_this","subjectEl","downEl","selector","handleSelector","shouldIgnoreMove","shouldWatchScroll","isDragging","isTouchDragging","wasTouchScroll","handleMouseDown","ev","shouldIgnoreMouse","isPrimaryMouseButton","tryStart","pev","createEventFromMouse","emitter","trigger","initScrollWatch","document","addEventListener","handleMouseMove","handleMouseUp","recordCoords","removeEventListener","cleanup","handleTouchStart","createEventFromTouch","target","handleTouchMove","handleTouchEnd","handleTouchScroll","startIgnoringMouse","handleScroll","pageX","pageXOffset","prevScrollX","prevPageX","pageY","pageYOffset","prevScrollY","prevPageY","origEvent","isTouch","deltaX","origPageX","deltaY","origPageY","EmitterMixin","passive","listenerCreated","destroy","listenerDestroyed","querySubjectEl","elementClosest","destroyScrollWatch","cancelTouchScroll","isFirst","touches","button","ctrlKey","setTimeout","onWindowTouchMove","preventDefault","ElementMirror","isVisible","sourceEl","mirrorEl","sourceElRect","parentNode","body","zIndex","revertDuration","start","getBoundingClientRect","origScreenX","origScreenY","updateElPosition","handleMove","setIsVisible","bool","style","display","stop","needsRevertAnimation","callback","done","doRevertAnimation","finalSourceElRect","transition","applyStyle","left","top","whenTransitionDone","removeElement","getMirrorEl","cloneNode","classList","add","position","visibility","boxSizing","width","right","height","bottom","margin","appendChild","ScrollGeomCache","_super","scrollController","doesListening","scrollTop","getScrollTop","scrollLeft","getScrollLeft","handleScrollChange","origScrollTop","origScrollLeft","scrollWidth","getScrollWidth","scrollHeight","getScrollHeight","clientWidth","getClientWidth","clientHeight","getClientHeight","clientRect","computeClientRect","getEventTarget","setScrollTop","getMaxScrollTop","setScrollLeft","getMaxScrollLeft","ScrollController","ElementScrollGeomCache","el","ElementScrollController","computeInnerRect","WindowScrollGeomCache","WindowScrollController","getTime","performance","Date","AutoScroller","isEnabled","scrollQuery","edgeThreshold","maxVelocity","pointerScreenX","pointerScreenY","isAnimating","scrollCaches","everMovedUp","everMovedDown","everMovedLeft","everMovedRight","animate","edge","computeBestEdge","handleSide","msSinceRequest","requestAnimation","buildCaches","yDelta","xDelta","_i","_a","scrollCache","requestAnimationFrame","seconds","invDistance","distance","velocity","sign","bestSide","rect","leftDist","rightDist","topDist","bottomDist","canScrollUp","canScrollDown","canScrollLeft","canScrollRight","queryScrollEls","map","els","query","slice","querySelectorAll","FeaturefulElementDragging","delay","minDistance","touchScrollAllowed","mirrorNeedsRevert","isInteracting","isDelayEnded","isDistanceSurpassed","delayTimeoutId","onPointerDown","preventSelection","preventContextMenu","pointer","mirror","startDelay","handleDistanceSurpassed","onPointerMove","distanceSq","autoScroller","onPointerUp","allowSelection","allowContextMenu","tryStopDrag","clearTimeout","handleDelayEnd","tryStartDrag","stopDrag","bind","setIgnoreMove","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","ElementDragging","OffsetTracker","origRect","computeRect","getClippingParents","computeLeft","computeTop","isWithinClipping","point","isIgnoredClipping","pointInsideRect","node","tagName","HitDragging","dragging","droppableStore","useSubjectCenter","requireInitial","initialHit","movingHit","finalHit","handlePointerDown","prepareHits","processFirstCoord","handleDragStart","handleDragMove","handlePointerUp","releaseHits","handleDragEnd","subjectRect","origPoint","adjustedPoint","constrainPoint","queryHitForOffset","slicedSubjectRect","intersectRects","getRectCenter","coordAdjust","diffPoints","forceHandle","hit","isHitsEqual","offsetTrackers","mapHash","interactionSettings","buildPositionCaches","id","offsetLeft","offsetTop","bestHit","offsetTracker","originLeft","originTop","positionLeft","positionTop","queryHit","dateProfile","rangeContainsRange","activeRange","dateSpan","range","layer","hit0","hit1","Boolean","isDateSpansEqual","DateClicking","settings","isValidDateDownEl","context","view","_b","hitDragging","triggerDateClick","dayEl","interactionSettingsToStore","Interaction","DateSelecting","dragSelection","options","canSelect","selectable","getComponentTouchDelay","unselect","handleHitUpdate","isFinal","isInvalid","joinHitsIntoSelection","pluginSystem","hooks","dateSelectionTransformers","isDateSelectionValid","dispatch","selection","disableCursor","enableCursor","triggerDateSelect","selectMinDistance","dragScroll","selectLongPressDelay","longPressDelay","dateSpan0","dateSpan1","ms","end","sort","compareNumbers","dateSelectionTransformers_1","transformer","allDay","EventDragging","subjectSeg","eventRange","relevantEvents","receivingCalendar","validMutation","mutatedRelevantEvents","origTarget","initialCalendar","getElSeg","eventInstanceId","instance","instanceId","getRelevantEvents","state","eventStore","eventDragMinDistance","eventSelection","getComponentTouchDelay$1","dragRevertDuration","isValid","isValidSegDownEl","contains","publiclyTrigger","event","EventApi","def","jsEvent","mutation","interaction","affectedEvents","mutatedEvents","createEmptyEventStore","isEvent","origSeg","receivingComponent","receivingOptions","editable","droppable","computeEventMutation","eventDragMutationMassagers","applyMutationToEventStore","eventUiBases","isInteractionValid","displayDrag","querySelector","initialCalendar_1","initialView","eventDef","eventInstance","eventApi","relevantEvents_1","clearDrag","transformed","eventDropTransformers","eventDropArg","delta","datesDelta","oldEvent","defs","defId","instances","revert","draggedEl","dropArg","buildDatePointApi","SELECTOR","interactionSettingsStore","useEventCenter","nextCalendar","prevCalendar","massagers","date0","date1","standardProps","hasEnd","allDayMaintainDuration","startOfDay","diffDates","dateEnv","largeUnit","milliseconds","massagers_1","massager","eventLongPressDelay","EventDragging$1","draggingSeg","seg","querySeg","computeMutation","eventResizeJoinTransforms","startDelta","createDuration","endDelta","prevEvent","fgSegSelector","isFromStart","instanceRange","transforms","transforms_1","transform","UnselectAuto","isRecentPointerDateSelect","onSelect","selectInfo","onDocumentPointerUp","documentPointer","dateSelection","unselectAuto","viewOpt","unselectCancel","off","ExternalElementDragging","suppliedDragMeta","droppableEvent","dragMeta","buildDragMeta","canDropElOnCalendar","computeEventForDateSpan","eventTupleToStore","finalView","arg","parseDragMeta","getDragMetaFromEl","dropAccept","opt","elementMatches","defProps","leftoverProps","externalDefTransforms","parseEventDef","sourceId","duration","startTime","getDefaultEventEnd","createEventInstance","str","getEmbeddedElData","obj","prefix","dataAttrPrefix","prefixedName","getAttribute","ExternalDraggable","globalDefaults","itemSelector","appendTo","eventData","InferredElementDragging","mirrorSelector","currentMirrorEl","handlePointerMove","main","ThirdPartyDraggable","containerOrSettings","Element","createPlugin","componentInteractions","calendarInteractions","elementDraggingImpl","mt","symbolMap","pluralForm","plurals","pluralize","u","string","f","replace","arLy","preparse","postformat","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","len","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","join","extraBytes","parts","maxChunkLength","len2","word","forms","relativeTimeWithPlural","be","ka","$0","$1","$2","ko","isUpper","numberMap","ku","bs","units","translateSeconds","translateSingular","special","lt","vi","me","af","uz","enCa","enGb","relativeTimeMr","mr","ne","zhMo","hm","0","12","13","40","tg","cs","ta","kn","arKw","processFutureTime","substr","eifelerRegelAppliesToNumber","processPastTime","isNaN","lastDigit","firstDigit","lb","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","keys","resolve","az","elementPropHash","className","colSpan","rowSpan","containerTagHash","createElement","content","attrName","setAttribute","innerHTML","appendToElement","htmlToElement","html","trim","container","computeContainerTag","firstChild","htmlToElements","htmlToNodeList","childNodes","normalizeContent","prependToElement","parent","newEls","afterEl","insertBefore","insertAfterElement","refEl","nextSibling","Node","removeChild","matchesMethod","matches","matchesSelector","msMatchesSelector","closestMethod","closest","documentElement","parentElement","nodeType","findElements","containers","HTMLElement","allMatches","j","findChildren","parents","children","childNode","PIXEL_PROP_RE","propName","applyStyleProp","val","rect1","rect2","point1","point2","isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","computeIsRtlScrollbarOnLeft","outerEl","border","padding","overflow","direction","innerEl","sanitizeScrollbarWidth","round","computeEdges","getPadding","computedStyle","getComputedStyle","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","scrollbarLeftRight","offsetWidth","scrollbarBottom","offsetHeight","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","goWithinPadding","outerRect","edges","computeViewportRect","computeHeightAndMargins","computeVMargins","marginTop","marginBottom","overflowY","overflowX","computeClippingRect","concat","reduce","rect0","listenBySelector","eventType","handler","realHandler","matchedChild","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","realOnMouseLeave_1","transitionEventNames","realCallback","forEach","eventName","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","valueOf","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","m1day","years","days","diffWholeWeeks","diffWholeDays","timeAsMs","getUTCFullYear","getUTCMonth","getUTCDate","startOfHour","getUTCHours","startOfMinute","getUTCMinutes","startOfSecond","getUTCSeconds","weekOfYear","marker","w","weekOfGivenYear","nextW","year","firstWeekStart","firstWeekOffset","dayStart","fwd","fwdlw","getUTCDay","dateToLocalArray","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCMilliseconds","UTC","isValidDate","INTERNAL_UNITS","PARSE_RE","unit","parseString","normalizeObject","getWeeksFromInput","second","millisecond","weeks","durationsEqual","d0","d1","addDurations","subtractDurations","multiplyDuration","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","wholeDivideDurations","numerator","denominator","localRes","isInt","greatestDurationDenominator","dontReturnWeeks","value","compensateScroll","rowEl","scrollbarWidths","marginLeft","marginRight","uncompensateScroll","remove","distributeHeight","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalHeight","naturalOffset","newHeight","matchCellWidths","maxInnerWidth","innerWidth_1","subtractInnerElHeight","reflowStyleProps","diff","resetStyleProps","parseFieldSpecs","specs","tokens","isArray","charAt","field","substring","order","func","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","localeCompare","capitaliseFirstLetter","toUpperCase","padStart","applyAll","functions","thisObj","args","ret","firstDefined","undefined","debounce","wait","timeout","timestamp","later","last","refineProps","rawProps","processors","defaults","refined","processor","Function","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","isMultiDayRange","visibleRange","diffWholeYears","diffWholeMonths","parseRecurring","eventInput","allDayDefault","recurringTypes","leftovers","localLeftovers","parsed","allDayGuess","typeData","typeId","expandRecurringRanges","framingRange","typeDef","recurringDef","markers","expand","subtract","mergeProps","propObjs","complexProps","complexObjs","dest","unshift","filterHash","hash","filtered","newHash","arrayToHash","a_1","item","hashValuesToArray","isPropsEqual","parseEvents","rawEvents","allowOpenRange","rawEvents_1","rawEvent","tuple","parseEvent","expandRecurring","defaultAllDayEventDuration","defaultTimedEventDuration","starts","starts_1","def_1","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","groupId","transformRawEvents","eventSource","calEachTransform","sourceEachTransform","eventDataTransform","transformEachRawEvent","refinedEvents","rawEvents_2","refinedEvent","mergeEventStores","store0","store1","filterFunc","parseRange","createMarker","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","outerRange","innerRange","rangeContainsMarker","constrainMarkerToRange","isArraysEqual","a0","a1","memoize","workerFunc","memoizeOutput","equalityFunc","cachedRes","newRes","EXTENDED_SETTINGS_AND_SEVERITIES","separator","omitZeroMinute","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","formatTimeZoneOffset","timeZoneOffset","formatWeekNumber","computeWeekNumber","weekLabel","locale","buildNativeFormattingFunc","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","postProcess","injectTzoStr","toLocaleLowerCase","tzoStr","replaced","simpleNumberFormat","isRtl","reverse","ca","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnit","partialOptions","name_2","i0","found0","before0","after0","i1","found1","before1","after1","CmdFormatter","cmdStr","cmdFormatter","createVerboseFormattingArg","FuncFormatter","createFormatter","defaultSeparator","buildIsoString","stripZeroTime","toISOString","formatIsoTimeString","doIso","abs","mins","startInfo","expandZonedMarker","endInfo","localeCodes","dateInfo","markerToArray","array","EventSourceApi","internalEventSource","refetch","sourceIds","defineProperty","get","publicId","enumerable","configurable","meta","url","_calendar","_def","_instance","setProp","DATE_PROPS","NON_DATE_PROPS","mutate","UNSCOPED_EVENT_UI_PROPS","ui","backgroundColor","borderColor","startEditable","durationEditable","setExtendedProp","extendedProps","setStart","startInput","granularity","maintainDuration","setEnd","endInput","setDates","moveStart","deltaInput","moveEnd","moveDates","setAllDay","formatInput","formatter","forcedStartTzo","forcedEndTzo","forcedTzo","fromApi","eventSources","toDate","rendering","constraints","overlap","allows","textColor","classNames","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","hasBgRendering","filterSegsViaEls","segs","isMirror","hasPublicHandlers","filter","custom","segs_1","setElSeg","fcSeg","eventDefs","compileEventUi","uis","combineEventUis","triggerRenderedSegs","isMirrors","segs_2","publiclyTriggerAfterSizing","eventSourceLoadingLevel","afterSizingTriggers","_eventsPositioned","triggerWillRemoveSegs","segs_3","segs_4","computeEventDraggable","eventUi","transformers","isDraggableTransformers","transformers_1","computeEventStartResizable","eventResizableFromStart","computeEventEndResizable","eventConfigBase","eventConfigs","applyMutationToEventDef","eventDefMutationAppliers","applyMutationToEventInstance","eventConfig","appliers","copy","appliers_1","applier","forceAllDay","clearEnd","reduceEventStore","action","receiveRawEvents","fetchId","fetchRange","addEvent","rezoneDates","oldDateEnv","applyMutationToRelated","excludeInstances","excludeEventsBySourceId","latestFetchId","subset","expandRange","newDateEnv","canComputeOffset","relevant","removals","isNewPropsValid","eventDrag","newProps","businessHours","eventResize","isPropsValid","dateSpanMeta","filterConfig","isInteractionPropsValid","isDateSelectionPropsValid","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","selectionConfig","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","overlapFunc","otherInstanceId","otherInstance","otherOverlap","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","buildDateSpanApi","relevantEventStore","relevantDefs","relevantInstances","selectionRange","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","businessHoursUnexpanded","constraints_1","constraint","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","outerRanges_1","normalizeConstraint","htmlEscape","cssToStr","cssProps","statements","attrsToStr","parseClassName","raw","allow","color","processUnscopedUiProps","processScopedUiProps","rawScoped","rawUnscoped","wasFound","scopedKey","EMPTY_EVENT_UI","combineTwoEventUis","item0","item1","uid","computeIsAllDayDefault","leftovers0","recurringRes","leftovers1","singleRes","parseSingle","pluckNonDateProps","eventDefParsers","eventDefParser","newLeftovers","freeze","startMeta","endMeta","pluckDateProps","startMarker","endMarker","createMarkerMeta","isTimeUnspecified","preLeftovers","source","DEF_DEFAULTS","endTime","daysOfWeek","parseBusinessHours","refineInputs","rawDefs","rawDef","memoizeRendering","renderFunc","unrenderFunc","dependencies","thisContext","prevArgs","dependents","unrender","dependents_1","dependent","dependencies_1","dependency","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","info","buildEventUiForKey","keyInfo","buildEventUi","dateSpans","getKeysForDateSpan","keys_1","getKeysForEventDef","splitStores","splitHashes","splitStates","affectedStores_1","mutatedKeysByDefId","mutatedStores_1","populate","allUi","eventUiForKey","baseParts","stuff","buildGotoAnchorHtml","allOptions","gotoOptions","innerHtml","forceOff","finalOptions","formatIso","omitTime","navLinks","getAllDayHtml","allDayHtml","allDayText","getDayClasses","noThemeHighlight","todayStart","todayEnd","theme","classes","monthMode","currentRange","getNow","getClass","unpromisify","success","failure","isResolved","wrappedSuccess","wrappedFailure","Mixin","mixInto","destClass","mixIntoObj","destObj","getOwnPropertyNames","mixOver","addToHash","_handlers","one","_oneHandlers","removeFromHash","triggerWith","hasHandlers","PositionCache","originEl","isHorizontal","isVertical","build","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","canScrollVertically","canScrollHorizontally","scroll","ScrollComponent","applyOverflow","clear","setHeight","lockOverflow","getScrollbarWidths","Theme","calendarOptions","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","guid","ComponentContext","dir","eventOrderSpecs","eventOrder","extend","Component","everRendered","addEqualityFuncs","newFuncs","equalityFuncs","receiveProps","receiveContext","recycleProps","anyChanges","comboProps","beforeUpdate","afterUpdate","oldContext","firstContext","oldProps","DateComponent","elWidth","elHeight","validRange","isPopover","isInPopover","segEl","bgSegSelector","uid$1","deps","reducers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","viewContainerModifiers","themeClasses","eventSourceDefs","namedTimeZonedImpl","defaultView","optionChangeHandlers","PluginSystem","addedHash","plugin","dep","combineHooks","hooks0","hooks1","eventSourceDef","ignoreRange","parseMeta","events","fetch","ArrayEventSourcePlugin","eventSourceDef$1","startStr","endStr","FuncEventSourcePlugin","requestJson","method","successCallback","failureCallback","injectQueryStringParams","encodeParams","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","eventSourceDef$2","extraParams","startParam","endParam","timeZoneParam","requestParams","buildRequestParams","errorMessage","message","JsonFeedEventSourcePlugin","customRequestParams","recurring","startRecur","endRecur","anyValid","clippedFramingRange","expandRanges","SimpleRecurrencePlugin","dowHash","dayMarker","instanceStarts","instanceStart","DefaultOptionChangeHandlers","deepEqual","handleEventSources","plugins","handlePlugins","inputs","unfoundSources","newInputs","inputs_1","inputFound","_raw","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","addEventSource","addPluginInputs","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","columnHeader","aspectRatio","header","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","locales","timeGridEventMinHeight","themeSystem","eventLimit","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","rtlDefaults","buttonIcons","prev","next","prevYear","nextYear","complexOptions","mergeOptions","optionObjs","INTERNAL_PLUGINS","refinePluginDefs","pluginInputs","pluginInputs_1","pluginInput","globalName","console","warn","RAW_EN_LOCALE","buttonText","today","list","eventLimitText","noEventsMessage","parseRawLocales","explicitRawLocales","defaultCode","globalArray","globalObject","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","queryLocale","parseLocale","codeArg","queryRawLocale","simpleId","merged","NumberFormat","OptionsManager","overrides","dynamicOverrides","compute","updates","isDynamic","overrideHash","removals_1","localeDefaults","dirDefaults","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","arrayToMarker","ISO_RE","DateEnv","isNamedTimeZone","namedTimeZoneImpl","weekDow","weekDoy","firstDay","weekNumberFunc","createNowMarker","timestampToMarker","getYear","addYears","addMonths","greatestWholeUnit","countDurationsBetween","startOf","startOfYear","startOfMonth","startOfWeek","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","timestampToArray","getTimezoneOffset","offsetForArray","SIMPLE_SOURCE_PROPS","uid$2","doesSourceNeedRange","sourceDefId","parseEventSource","parseEventSourceProps","isFetching","reduceEventSources","addSources","sources","removeSource","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","receiveResponse","uid$3","eventSourceHash","sources_1","sourceHash","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","calSuccessRes","sourceSuccessRes","calSuccess","error","callFailure","DateProfileGenerator","viewSpec","initHiddenDays","buildPrev","currentDateProfile","currentDate","prevDate","currentRangeUnit","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","isRangeAllDay","renderRange","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","getRangeOption","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","class","usesMinMaxTime","dateIncrementInput","dateIncrementDuration","alignment","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","customAlignment","runningCount","fallback","otherArgs","hiddenDays","isHiddenDayHash","inc","isExclusive","isDateProfilesEqual","p0","p1","viewType","reduceViewType","reduceDateProfile","nextState","reduceCurrentDate","reduceDateSelection","reduceSelectedEvent","reduceEventDrag","reduceEventResize","computeLoadingLevel","loadingLevel","reducerFunc","currentViewType","newDateProfile","dateProfileGenerators","dateMarker","generator","newDate","currentSelection","currentInstanceId","currentDrag","newDrag","currentResize","newResize","cnt","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","span0","span1","isSpanPropsEqual","dateStr","fabricateEventRange","compileViewDefs","defaultConfigs","overrideConfigs","ensureViewDef","viewDef","buildViewDef","defaultConfig","overrideConfig","queryProp","superType","findViewNameBySubclass","superDef","viewSubclass","configs","superProto","getPrototypeOf","parseViewConfigs","parseViewConfig","VIEW_DEF_PROPS","buildViewSpecs","defaultInputs","optionsManager","viewDefs","buildViewSpec","durationInput","singleUnit","singleUnitOverrides","denom","queryButtonText","buttonTextMap","buttonTextKey","buttonTextOverride","buttonTextDefault","Toolbar","extraClassName","_renderLayout","renderLayout","unrenderLayout","_updateTitle","updateTitle","_updateActiveButton","updateActiveButton","_updateToday","updateToday","_updatePrev","updatePrev","_updateNext","updateNext","layout","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","viewsWithButtons","renderSection","buttonStr","viewSpecs","sectionEl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","click","text","changeView","buttonGroupClassName","toggleButtonEnabled","titleEl","innerText","disabled","CalendarComponent","elClassNames","renderSkeleton","_renderSkeleton","_unrenderSkeleton","renderToolbars","_renderToolbars","_unrenderToolbars","buildComponentContext","buildViewPropTransformers","computeTitle","freezeHeight","renderView","updateSize","thawHeight","footer","updateElClassNames","contentEl","modifyViewContainer","savedScroll","queryScroll","removeElClassNames","headerLayout","footerLayout","dateProfileGenerator","todayInfo","prevInfo","nextInfo","toolbarProps","addScroll","viewProps","isResize","isHeightAuto","computeHeightVars","viewHeight","updateNowIndicator","popScroll","heightInput","contentHeightInput","queryToolbarsHeight","parentEl","viewOptions","titleFormat","computeTitleFormat","theClasses","parseInteractionSettings","EventClicking","handleSegClick","hasUrlContainer","defaultPrevented","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","publicEvName","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","buttonActive","popoverHeader","popoverContent","headerRow","dayRow","listView","close","Calendar","buildComponentContext$1","buildDateEnv","buildTheme","buildEventUiSingleBase","_buildEventUiSingleBase","buildSelectionConfig","_buildSelectionConfig","buildEventUiBySource","buildEventUiBases","interactionsStore","actionQueue","isReducing","needsRerender","isRendering","renderingPauseDepth","buildDelayedRerender","isViewUpdated","isDatesUpdated","isEventsUpdated","handleOptions","hydrate","calendarInteractionClass","pluginDefs","pluginDefs_1","pluginDef","requestRerender","renderableEventStore","bindHandlers","executeRender","unbindHandlers","removeNavLinkListener","anchorEl","customAction","zoomTo","windowResizeProxy","windowResize","buildInitialState","rawSources","singleRawSource","rawSources_1","rawSource","batchRendering","getInitialDate","oldState","shift","newState","delayedRerender","tryRerender","renderComponent","eventUiSingleBase","eventUiBySource","releaseAfterSizingTriggers","setOption","mutateOptions","getOption","viewOpts","changeHandlers","normalUpdates","specialUpdates","isTimeZoneDirty","isSizeDirty","anyDifficultOptions","name_3","pluginHooks","rerenderDelay","availableRawLocales","dateProfileGeneratorClass","getAvailableLocaleCodes","rawOpts","eventEditable","optHandler","name_4","isValidViewType","dateOrRange","spec","getUnitViewSpec","viewTypes","defaultDateInput","gotoDate","zonedDateInput","incrementDate","formatDate","isHandlingWindowResize","registerInteractiveComponent","settingsInput","DEFAULT_INTERACTIONS","interactionClasses","interactions","interactionClass","unregisterInteractiveComponent","listener","select","dateOrObj","endDate","selectionInput","triggerDateUnselect","sourceInput","sourceApi","getEventSourceById","getEventById","getEvents","eventApis","removeAllEvents","rerenderEvents","getEventSources","sourceApis","internalId","removeAllEventSources","refetchEvents","scrollToTime","timeInput","scrollToDuration","themeClass","View","renderDatesMem","renderDatesWrap","unrenderDatesWrap","renderBusinessHoursMem","renderBusinessHours","unrenderBusinessHours","renderDateSelectionMem","renderDateSelectionWrap","unrenderDateSelectionWrap","renderEventsMem","renderEvents","unrenderEvents","renderEventSelectionMem","renderEventSelectionWrap","unrenderEventSelectionWrap","renderEventDragMem","renderEventDragWrap","unrenderEventDragWrap","renderEventResizeMem","renderEventResizeWrap","unrenderEventResizeWrap","initialize","isAuto","updateBaseSize","renderDates","stopNowIndicator","unrenderDates","renderDateSelection","unrenderDateSelection","sliceEvents","renderEventSelection","unrenderEventSelection","renderEventDrag","unrenderEventDrag","renderEventResize","unrenderEventResize","startNowIndicator","update","nowIndicator","initialNowDate","getNowIndicatorUnit","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearInterval","isForced","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeDateScroll","applyDateScroll","FgEventRenderer","renderSegs","mirrorInfo","rangeUpdated","renderSegEls","attachSegs","_segs","detachSegs","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","renderSegHtml","getSegClasses","isDraggable","isResizable","isResizing","getTimeText","displayEnd","_getTimeText","getSkinCss","sortEventSegs","objs","buildSegCompareObj","_seg","computeSizes","force","computeSegSizes","assignSizes","assignSegSizes","hideByHash","showByHash","selectByInstanceId","unselectByInstanceId","FillRenderer","fillSegTag","dirtySizeFlags","containerElsByType","segsByType","getSegsByType","renderedSegs","containerEls","css","toLowerCase","NamedTimeZoneImpl","DRAG_META_PROPS","DRAG_META_DEFAULTS","computeFallbackHeaderFormat","datesRepDistinctDays","renderDateCell","colCnt","colHeadFormat","colspan","otherAttrs","isDateValid","columnHeaderHtml","columnHeaderText","DayHeader","dates","renderIntroHtml","columnHeaderFormat","dates_1","thead","DaySeries","indices","dayIndex","sliceRange","firstIndex","getDateDayIndex","lastIndex","clippedFirstIndex","clippedLastIndex","ceil","dayOffset","DayTable","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","index","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","sourceSeg","eventRanges","eventRanges_1","sliceEventRange","isComponentAllDay","zhHk","hr","ga","ur","esUs","tet","defaultToolbar","align","indent","background","oldApi","customModules","registerCustomModules","Quill","customModule","register","alias","_typeof","Symbol","iterator","_classCallCheck","Constructor","TypeError","_defineProperties","descriptor","writable","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_d","_e","_s","mergeDeep","isObject","targetValue","sourceValue","BlockEmbed","import","HorizontalRule","_BlockEmbed","blotName","MarkdownShortcuts","quill","ignoreTags","pattern","size","formatLine","deleteText","_text","_selection","lineStart","annotatedText","matchedText","startIndex","insertText","bold","italic","strike","getSelection","insertEmbed","USER","SILENT","setSelection","_pattern","search","hrefLink","hrefText","_oldContents","_source","ops","insert","onSpace","onEnter","_this$quill$getLine","getLine","_this$quill$getLine2","line","domNode","textContent","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","log","return","_this$quill$getLine3","_this$quill$getLine4","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","script","mixins","placeholder","editorToolbar","editorOptions","required","useCustomImageHandler","useMarkdownShortcuts","root","hasFocus","enable","registerPrototypes","initializeEditor","beforeDestroy","setupQuillEditor","checkForCustomImageHandler","handleInitialContent","registerEditorEventListeners","editorConfig","debug","modules","setModules","readOnly","prepareEditorConfig","$refs","quillContainer","toolbar","getHTML","getWordCount","handleTextChange","handleSelectionChange","listenForEditorEvent","_len","_key","oldRange","oldContents","editorContent","handleImageRemoved","_this2","currrentContents","getContents","deletedContents","operations","operation","image","setupCustomImageHandler","getModule","addHandler","customImageHandler","fileInput","emitImageInfo","resetUploader","uploader","getElementById","file","files","Editor","cursorLocation","normalizeComponent","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","existing","beforeCreate","HEAD","normalizeComponent_1","isOldIE","navigator","userAgent","addStyle","styles","group","media","ids","Set","has","btoa","unescape","element","head","getElementsByTagName","styleSheet","cssText","textNode","createTextNode","nodes","browser","__vue_script__","__vue_render__","_t","ref","__vue_staticRenderFns__","__vue_inject_styles__","inject","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","VueEditor","version","install","Vue","installed","VPlugin","GlobalVue","use","dv","weekEndings","hu","zhCn","te","sv","ugCn","msMy","eo","sd","relativeTimeWithMutation","specialMutationForYears","lastNumber","softMutation","mutationTable","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","br","weekdaysParse","mi","mk","last2Digits","nb","kk","arTn","it","itCh","enNz","monthsShortWithDots","monthsShortWithoutDots","fy","enIl","sw","sk","yo","sl","numbersPast","numbersFuture","verbalNumber","fi","arSa","my","gl","es","invalidDate","isFunction","toString","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsNominative","monthsSubjective","pl","fa","ar","bn","zhTw","read","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","pow","write","rt","LN2","installedModules","moduleId","getter","__esModule","object","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","find","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","ParchmentError","attributes","tags","types","BlotClass","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","names","TYPE","Definitions","Definition","keyName","tagNames","tag","equal","op","NULL_CHARACTER","fromCharCode","Delta","newOp","retain","lastOp","chop","pop","predicate","partition","passed","failed","initial","changeLength","elem","delete","iter","hasNext","nextOp","compose","other","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","otherOp","rest","strings","prep","diffResult","opLength","INSERT","DELETE","EQUAL","eachLine","newline","priority","transformPosition","nextType","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","src","copyIsArray","clone","deep","bubbleFormats","defineProperties","_get","receiver","desc","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text2","NEWLINE_LENGTH","_Parchment$Embed","formats","values","attribute","BLOCK_ATTRIBUTE","endsWith","block","insertAt","BLOCK_BLOT","_Parchment$Block","cache","descendants","leaf","lines","tail","child","statics","defaultChild","allowedChildren","overload","expandConfig","sliceIterator","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","__quill","addContainer","scrollingContainer","whitelist","editor","keyboard","addModule","clipboard","history","init","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","lastRange","modify","contents","convert","setContents","disable","limit","level","imports","path","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","enabled","focus","scrollIntoView","_this4","API","change","formatText","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getLength","_overload7","_overload8","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","embed","_this7","_this8","_overload11","_overload12","once","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","deleted","applied","applyDelta","_overload15","_overload16","Range","_this11","userConfig","DEFAULTS","themeConfig","moduleNames","moduleConfig","moduleClass","modifier","strict","oldDelta","shiftRange","_emitter","_emitter2","emit","_map","pos","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","wrap","moveChildren","selfIndex","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","listeners","_len2","_key2","_ref","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","levels","_console","namespace","ns","logger","newLevel","pSlice","objectKeys","isArguments","actual","expected","opts","objEquiv","isUndefinedOrNull","isBuffer","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","optimize","unwrap","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","suffix","cursorIndex","textBlot","oldValue","CONTENTS","oldText","newText","diffDelta","combined","bullet","_toConsumableArray","arr2","from","Selection","composing","mouseDown","cursor","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","side","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","indexes","_position","startContainer","endContainer","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","criteria","lengthLeft","detach","childBlot","refBlot","some","insertInto","memo","targetParent","inclusive","addedNodes","removedNodes","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Promise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","proto","reject","__isArray","__isRegExp","RegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","set","entryChild","getOwnPropertySymbols","symbols","symbol","allPropertyNames","propertyName","__objToStr","re","flags","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","platform","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","altKey","BACKSPACE","handleBackspace","handleDelete","handleDeleteRange","listen","evt","binding","normalize","which","keyCode","_quill$getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","empty","prevented","every","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","protocols","anchor","protocol","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","buildPicker","label","togglePicker","escape","option","tabIndex","hasAttribute","selectItem","buildItem","selected","buildLabel","buildOptions","selectedIndex","Event","dispatchEvent","createEvent","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","attr","ClassAttributor","camelize","part","StyleAttributor","themes","GUARD_TEXT","contentNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","stack","changeDelta","undoDelta","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","hide","pickers","picker","extendToolbar","buttons","icons","selects","fillSelect","handlers","formula","edit","reader","FileReader","readAsDataURL","video","_Tooltip","boundsContainer","save","cancel","mode","preview","linkRange","restoreFocus","extractVideoUrl","defaultValue","LinkedList","append","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","isEqual","obj2","prop","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","searchString","subjectString","isFinite","thisArg","execCommand","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","hm1","hm2","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","propertyIsEnumerable","Events","EE","fn","EventEmitter","_events","_eventsCount","eventNames","exists","ee","a2","a3","a4","a5","removeListener","removeAllListeners","addListener","setMaxListeners","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","matcher","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","pair","_pair","applyFormat","computeStyle","endText","childrenDelta","nextElementSibling","nodeHeight","parseFloat","fontStyle","fontWeight","textIndent","whiteSpace","replacer","collapse","Bold","addControls","_ret","controls","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","prompt","addButton","groups","control","addSelect","clean","link","ColorPicker","_Picker","colorLabel","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","timer","interval","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","ru","mn","ky","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ro","cy","fr","arDz","bm","gomDeva","weekdaysCaseReplace","nounCase","nominative","accusative","genitive","processHoursFunction","uk","lo","deAt","de","tzmLatn","jv","base64","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","alloc","encoding","checked","isEncoding","fromArrayLike","byteOffset","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","hi","dst","enSg","nn","relativeTimeWithSingular","relativeSeconds","lv","deCh","tzm","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","k","isUndefined","isNumber","isDate","createUTC","createLocalOrUTC","utc","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","to","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","ww","_relativeTime","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","setFullYear","createUTCDate","setUTCFullYear","dayOfYearFromWeeks","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","setUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","Duration","quarters","quarter","isoWeek","_milliseconds","_days","_data","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","utcOffset","offsetFromString","chunkOffset","chunk","cloneWithOffset","model","setTime","local","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","sod","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","keepOffset","datetime","zone","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","isValid$2","parsingFlags","invalidAt","creationData","localeEras","_eras","localeErasParse","eraName","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","he","sq","sr","tzl","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","tlh","bo","ptBr","fil","hyAm","frCa","nlBe","gu","enIe","km","et","enIn","si","pt","paIn","gd","nl","xPseudo","se"],"mappings":"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","file":"js/chunk-0af235cb.30340831.js","sourcesContent":["//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"Header\"}},[_c('div',{staticClass:\"headerContainer\"},[_c('i',{staticClass:\"fas fa-bars\",on:{\"click\":_vm.setShowMenu}}),_c('img',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"src\":require(\"../assets/images/logo2.svg\"),\"alt\":\"國立臺灣藝術大學LOGO\"},on:{\"click\":function($event){return _vm.goNTUA()}}}),_vm._m(0)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"headerContainer__link\"},[_c('a',{attrs:{\"href\":\"https://www.ntua.edu.tw/file/112行事曆.pdf\",\"target\":\"_blank\"}},[_vm._v(\"112行事曆\")]),_c('a',{attrs:{\"href\":\"https://www.ntua.edu.tw/file/113行事曆.pdf\",\"target\":\"_blank\"}},[_vm._v(\"113行事曆\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"s-canvas\"},[_c('canvas',{attrs:{\"id\":\"s-canvas\",\"width\":_vm.contentWidth,\"height\":_vm.contentHeight}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\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!./Identify.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!./Identify.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Identify.vue?vue&type=template&id=0ae568d1&scoped=true&\"\nimport script from \"./Identify.vue?vue&type=script&lang=js&\"\nexport * from \"./Identify.vue?vue&type=script&lang=js&\"\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 \"0ae568d1\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\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!./Header.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!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=d5d9bcae&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&lang=scss&scope=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 null,\n null\n \n)\n\nexport default component.exports","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&lang=scss&scope=true&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&lang=scss&scope=true&\"","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","/*!\nFullCalendar Interaction Plugin v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { config, elementClosest, EmitterMixin, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, preventSelection, preventContextMenu, allowSelection, allowContextMenu, ElementDragging, computeRect, getClippingParents, pointInsideRect, isDateSpansEqual, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, interactionSettingsToStore, Interaction, enableCursor, disableCursor, compareNumbers, getElSeg, getRelevantEvents, EventApi, createEmptyEventStore, applyMutationToEventStore, interactionSettingsStore, startOfDay, diffDates, createDuration, eventTupleToStore, isInteractionValid, parseDragMeta, elementMatches, parseEventDef, createEventInstance, globalDefaults, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nconfig.touchMouseIgnoreWait = 500;\nvar ignoreMouseDepth = 0;\nvar listenerCnt = 0;\nvar isWindowTouchMoveCancelled = false;\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nvar PointerDragging = /** @class */ (function () {\n function PointerDragging(containerEl) {\n var _this = this;\n this.subjectEl = null;\n this.downEl = null;\n // options that can be directly assigned by caller\n this.selector = ''; // will cause subjectEl in all emitted events to be this element\n this.handleSelector = '';\n this.shouldIgnoreMove = false;\n this.shouldWatchScroll = true; // for simulating pointermove on scroll\n // internal states\n this.isDragging = false;\n this.isTouchDragging = false;\n this.wasTouchScroll = false;\n // Mouse\n // ----------------------------------------------------------------------------------------------------\n this.handleMouseDown = function (ev) {\n if (!_this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n _this.tryStart(ev)) {\n var pev = _this.createEventFromMouse(ev, true);\n _this.emitter.trigger('pointerdown', pev);\n _this.initScrollWatch(pev);\n if (!_this.shouldIgnoreMove) {\n document.addEventListener('mousemove', _this.handleMouseMove);\n }\n document.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n this.handleMouseMove = function (ev) {\n var pev = _this.createEventFromMouse(ev);\n _this.recordCoords(pev);\n _this.emitter.trigger('pointermove', pev);\n };\n this.handleMouseUp = function (ev) {\n document.removeEventListener('mousemove', _this.handleMouseMove);\n document.removeEventListener('mouseup', _this.handleMouseUp);\n _this.emitter.trigger('pointerup', _this.createEventFromMouse(ev));\n _this.cleanup(); // call last so that pointerup has access to props\n };\n // Touch\n // ----------------------------------------------------------------------------------------------------\n this.handleTouchStart = function (ev) {\n if (_this.tryStart(ev)) {\n _this.isTouchDragging = true;\n var pev = _this.createEventFromTouch(ev, true);\n _this.emitter.trigger('pointerdown', pev);\n _this.initScrollWatch(pev);\n // unlike mouse, need to attach to target, not document\n // https://stackoverflow.com/a/45760014\n var target = ev.target;\n if (!_this.shouldIgnoreMove) {\n target.addEventListener('touchmove', _this.handleTouchMove);\n }\n target.addEventListener('touchend', _this.handleTouchEnd);\n target.addEventListener('touchcancel', _this.handleTouchEnd); // treat it as a touch end\n // attach a handler to get called when ANY scroll action happens on the page.\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n // http://stackoverflow.com/a/32954565/96342\n window.addEventListener('scroll', _this.handleTouchScroll, true // useCapture\n );\n }\n };\n this.handleTouchMove = function (ev) {\n var pev = _this.createEventFromTouch(ev);\n _this.recordCoords(pev);\n _this.emitter.trigger('pointermove', pev);\n };\n this.handleTouchEnd = function (ev) {\n if (_this.isDragging) { // done to guard against touchend followed by touchcancel\n var target = ev.target;\n target.removeEventListener('touchmove', _this.handleTouchMove);\n target.removeEventListener('touchend', _this.handleTouchEnd);\n target.removeEventListener('touchcancel', _this.handleTouchEnd);\n window.removeEventListener('scroll', _this.handleTouchScroll, true); // useCaptured=true\n _this.emitter.trigger('pointerup', _this.createEventFromTouch(ev));\n _this.cleanup(); // call last so that pointerup has access to props\n _this.isTouchDragging = false;\n startIgnoringMouse();\n }\n };\n this.handleTouchScroll = function () {\n _this.wasTouchScroll = true;\n };\n this.handleScroll = function (ev) {\n if (!_this.shouldIgnoreMove) {\n var pageX = (window.pageXOffset - _this.prevScrollX) + _this.prevPageX;\n var pageY = (window.pageYOffset - _this.prevScrollY) + _this.prevPageY;\n _this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: _this.isTouchDragging,\n subjectEl: _this.subjectEl,\n pageX: pageX,\n pageY: pageY,\n deltaX: pageX - _this.origPageX,\n deltaY: pageY - _this.origPageY\n });\n }\n };\n this.containerEl = containerEl;\n this.emitter = new EmitterMixin();\n containerEl.addEventListener('mousedown', this.handleMouseDown);\n containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerCreated();\n }\n PointerDragging.prototype.destroy = function () {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerDestroyed();\n };\n PointerDragging.prototype.tryStart = function (ev) {\n var subjectEl = this.querySubjectEl(ev);\n var downEl = ev.target;\n if (subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n this.subjectEl = subjectEl;\n this.downEl = downEl;\n this.isDragging = true; // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false;\n return true;\n }\n return false;\n };\n PointerDragging.prototype.cleanup = function () {\n isWindowTouchMoveCancelled = false;\n this.isDragging = false;\n this.subjectEl = null;\n this.downEl = null;\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch();\n };\n PointerDragging.prototype.querySubjectEl = function (ev) {\n if (this.selector) {\n return elementClosest(ev.target, this.selector);\n }\n else {\n return this.containerEl;\n }\n };\n PointerDragging.prototype.shouldIgnoreMouse = function () {\n return ignoreMouseDepth || this.isTouchDragging;\n };\n // can be called by user of this class, to cancel touch-based scrolling for the current drag\n PointerDragging.prototype.cancelTouchScroll = function () {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true;\n }\n };\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n PointerDragging.prototype.initScrollWatch = function (ev) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev);\n window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n }\n };\n PointerDragging.prototype.recordCoords = function (ev) {\n if (this.shouldWatchScroll) {\n this.prevPageX = ev.pageX;\n this.prevPageY = ev.pageY;\n this.prevScrollX = window.pageXOffset;\n this.prevScrollY = window.pageYOffset;\n }\n };\n PointerDragging.prototype.destroyScrollWatch = function () {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n }\n };\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n PointerDragging.prototype.createEventFromMouse = function (ev, isFirst) {\n var deltaX = 0;\n var deltaY = 0;\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = ev.pageX;\n this.origPageY = ev.pageY;\n }\n else {\n deltaX = ev.pageX - this.origPageX;\n deltaY = ev.pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: false,\n subjectEl: this.subjectEl,\n pageX: ev.pageX,\n pageY: ev.pageY,\n deltaX: deltaX,\n deltaY: deltaY\n };\n };\n PointerDragging.prototype.createEventFromTouch = function (ev, isFirst) {\n var touches = ev.touches;\n var pageX;\n var pageY;\n var deltaX = 0;\n var deltaY = 0;\n // if touch coords available, prefer,\n // because FF would give bad ev.pageX ev.pageY\n if (touches && touches.length) {\n pageX = touches[0].pageX;\n pageY = touches[0].pageY;\n }\n else {\n pageX = ev.pageX;\n pageY = ev.pageY;\n }\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = pageX;\n this.origPageY = pageY;\n }\n else {\n deltaX = pageX - this.origPageX;\n deltaY = pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: true,\n subjectEl: this.subjectEl,\n pageX: pageX,\n pageY: pageY,\n deltaX: deltaX,\n deltaY: deltaY\n };\n };\n return PointerDragging;\n}());\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev) {\n return ev.button === 0 && !ev.ctrlKey;\n}\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\nfunction startIgnoringMouse() {\n ignoreMouseDepth++;\n setTimeout(function () {\n ignoreMouseDepth--;\n }, config.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n if (!(listenerCnt++)) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction listenerDestroyed() {\n if (!(--listenerCnt)) {\n window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction onWindowTouchMove(ev) {\n if (isWindowTouchMoveCancelled) {\n ev.preventDefault();\n }\n}\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nvar ElementMirror = /** @class */ (function () {\n function ElementMirror() {\n this.isVisible = false; // must be explicitly enabled\n this.sourceEl = null;\n this.mirrorEl = null;\n this.sourceElRect = null; // screen coords relative to viewport\n // options that can be set directly by caller\n this.parentNode = document.body;\n this.zIndex = 9999;\n this.revertDuration = 0;\n }\n ElementMirror.prototype.start = function (sourceEl, pageX, pageY) {\n this.sourceEl = sourceEl;\n this.sourceElRect = this.sourceEl.getBoundingClientRect();\n this.origScreenX = pageX - window.pageXOffset;\n this.origScreenY = pageY - window.pageYOffset;\n this.deltaX = 0;\n this.deltaY = 0;\n this.updateElPosition();\n };\n ElementMirror.prototype.handleMove = function (pageX, pageY) {\n this.deltaX = (pageX - window.pageXOffset) - this.origScreenX;\n this.deltaY = (pageY - window.pageYOffset) - this.origScreenY;\n this.updateElPosition();\n };\n // can be called before start\n ElementMirror.prototype.setIsVisible = function (bool) {\n if (bool) {\n if (!this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = '';\n }\n this.isVisible = bool; // needs to happen before updateElPosition\n this.updateElPosition(); // because was not updating the position while invisible\n }\n }\n else {\n if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none';\n }\n this.isVisible = bool;\n }\n }\n };\n // always async\n ElementMirror.prototype.stop = function (needsRevertAnimation, callback) {\n var _this = this;\n var done = function () {\n _this.cleanup();\n callback();\n };\n if (needsRevertAnimation &&\n this.mirrorEl &&\n this.isVisible &&\n this.revertDuration && // if 0, transition won't work\n (this.deltaX || this.deltaY) // if same coords, transition won't work\n ) {\n this.doRevertAnimation(done, this.revertDuration);\n }\n else {\n setTimeout(done, 0);\n }\n };\n ElementMirror.prototype.doRevertAnimation = function (callback, revertDuration) {\n var mirrorEl = this.mirrorEl;\n var finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n mirrorEl.style.transition =\n 'top ' + revertDuration + 'ms,' +\n 'left ' + revertDuration + 'ms';\n applyStyle(mirrorEl, {\n left: finalSourceElRect.left,\n top: finalSourceElRect.top\n });\n whenTransitionDone(mirrorEl, function () {\n mirrorEl.style.transition = '';\n callback();\n });\n };\n ElementMirror.prototype.cleanup = function () {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl);\n this.mirrorEl = null;\n }\n this.sourceEl = null;\n };\n ElementMirror.prototype.updateElPosition = function () {\n if (this.sourceEl && this.isVisible) {\n applyStyle(this.getMirrorEl(), {\n left: this.sourceElRect.left + this.deltaX,\n top: this.sourceElRect.top + this.deltaY\n });\n }\n };\n ElementMirror.prototype.getMirrorEl = function () {\n var sourceElRect = this.sourceElRect;\n var mirrorEl = this.mirrorEl;\n if (!mirrorEl) {\n mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n // we don't want long taps or any mouse interaction causing selection/menus.\n // would use preventSelection(), but that prevents selectstart, causing problems.\n mirrorEl.classList.add('fc-unselectable');\n mirrorEl.classList.add('fc-dragging');\n applyStyle(mirrorEl, {\n position: 'fixed',\n zIndex: this.zIndex,\n visibility: '',\n boxSizing: 'border-box',\n width: sourceElRect.right - sourceElRect.left,\n height: sourceElRect.bottom - sourceElRect.top,\n right: 'auto',\n bottom: 'auto',\n margin: 0\n });\n this.parentNode.appendChild(mirrorEl);\n }\n return mirrorEl;\n };\n return ElementMirror;\n}());\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nvar ScrollGeomCache = /** @class */ (function (_super) {\n __extends(ScrollGeomCache, _super);\n function ScrollGeomCache(scrollController, doesListening) {\n var _this = _super.call(this) || this;\n _this.handleScroll = function () {\n _this.scrollTop = _this.scrollController.getScrollTop();\n _this.scrollLeft = _this.scrollController.getScrollLeft();\n _this.handleScrollChange();\n };\n _this.scrollController = scrollController;\n _this.doesListening = doesListening;\n _this.scrollTop = _this.origScrollTop = scrollController.getScrollTop();\n _this.scrollLeft = _this.origScrollLeft = scrollController.getScrollLeft();\n _this.scrollWidth = scrollController.getScrollWidth();\n _this.scrollHeight = scrollController.getScrollHeight();\n _this.clientWidth = scrollController.getClientWidth();\n _this.clientHeight = scrollController.getClientHeight();\n _this.clientRect = _this.computeClientRect(); // do last in case it needs cached values\n if (_this.doesListening) {\n _this.getEventTarget().addEventListener('scroll', _this.handleScroll);\n }\n return _this;\n }\n ScrollGeomCache.prototype.destroy = function () {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n }\n };\n ScrollGeomCache.prototype.getScrollTop = function () {\n return this.scrollTop;\n };\n ScrollGeomCache.prototype.getScrollLeft = function () {\n return this.scrollLeft;\n };\n ScrollGeomCache.prototype.setScrollTop = function (top) {\n this.scrollController.setScrollTop(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n this.handleScrollChange();\n }\n };\n ScrollGeomCache.prototype.setScrollLeft = function (top) {\n this.scrollController.setScrollLeft(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n this.handleScrollChange();\n }\n };\n ScrollGeomCache.prototype.getClientWidth = function () {\n return this.clientWidth;\n };\n ScrollGeomCache.prototype.getClientHeight = function () {\n return this.clientHeight;\n };\n ScrollGeomCache.prototype.getScrollWidth = function () {\n return this.scrollWidth;\n };\n ScrollGeomCache.prototype.getScrollHeight = function () {\n return this.scrollHeight;\n };\n ScrollGeomCache.prototype.handleScrollChange = function () {\n };\n return ScrollGeomCache;\n}(ScrollController));\nvar ElementScrollGeomCache = /** @class */ (function (_super) {\n __extends(ElementScrollGeomCache, _super);\n function ElementScrollGeomCache(el, doesListening) {\n return _super.call(this, new ElementScrollController(el), doesListening) || this;\n }\n ElementScrollGeomCache.prototype.getEventTarget = function () {\n return this.scrollController.el;\n };\n ElementScrollGeomCache.prototype.computeClientRect = function () {\n return computeInnerRect(this.scrollController.el);\n };\n return ElementScrollGeomCache;\n}(ScrollGeomCache));\nvar WindowScrollGeomCache = /** @class */ (function (_super) {\n __extends(WindowScrollGeomCache, _super);\n function WindowScrollGeomCache(doesListening) {\n return _super.call(this, new WindowScrollController(), doesListening) || this;\n }\n WindowScrollGeomCache.prototype.getEventTarget = function () {\n return window;\n };\n WindowScrollGeomCache.prototype.computeClientRect = function () {\n return {\n left: this.scrollLeft,\n right: this.scrollLeft + this.clientWidth,\n top: this.scrollTop,\n bottom: this.scrollTop + this.clientHeight\n };\n };\n // the window is the only scroll object that changes it's rectangle relative\n // to the document's topleft as it scrolls\n WindowScrollGeomCache.prototype.handleScrollChange = function () {\n this.clientRect = this.computeClientRect();\n };\n return WindowScrollGeomCache;\n}(ScrollGeomCache));\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nvar getTime = typeof performance === 'function' ? performance.now : Date.now;\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nvar AutoScroller = /** @class */ (function () {\n function AutoScroller() {\n var _this = this;\n // options that can be set by caller\n this.isEnabled = true;\n this.scrollQuery = [window, '.fc-scroller'];\n this.edgeThreshold = 50; // pixels\n this.maxVelocity = 300; // pixels per second\n // internal state\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.isAnimating = false;\n this.scrollCaches = null;\n // protect against the initial pointerdown being too close to an edge and starting the scroll\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.animate = function () {\n if (_this.isAnimating) { // wasn't cancelled between animation calls\n var edge = _this.computeBestEdge(_this.pointerScreenX + window.pageXOffset, _this.pointerScreenY + window.pageYOffset);\n if (edge) {\n var now = getTime();\n _this.handleSide(edge, (now - _this.msSinceRequest) / 1000);\n _this.requestAnimation(now);\n }\n else {\n _this.isAnimating = false; // will stop animation\n }\n }\n };\n }\n AutoScroller.prototype.start = function (pageX, pageY) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches();\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.handleMove(pageX, pageY);\n }\n };\n AutoScroller.prototype.handleMove = function (pageX, pageY) {\n if (this.isEnabled) {\n var pointerScreenX = pageX - window.pageXOffset;\n var pointerScreenY = pageY - window.pageYOffset;\n var yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n var xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n if (yDelta < 0) {\n this.everMovedUp = true;\n }\n else if (yDelta > 0) {\n this.everMovedDown = true;\n }\n if (xDelta < 0) {\n this.everMovedLeft = true;\n }\n else if (xDelta > 0) {\n this.everMovedRight = true;\n }\n this.pointerScreenX = pointerScreenX;\n this.pointerScreenY = pointerScreenY;\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.requestAnimation(getTime());\n }\n }\n };\n AutoScroller.prototype.stop = function () {\n if (this.isEnabled) {\n this.isAnimating = false; // will stop animation\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n scrollCache.destroy();\n }\n this.scrollCaches = null;\n }\n };\n AutoScroller.prototype.requestAnimation = function (now) {\n this.msSinceRequest = now;\n requestAnimationFrame(this.animate);\n };\n AutoScroller.prototype.handleSide = function (edge, seconds) {\n var scrollCache = edge.scrollCache;\n var edgeThreshold = this.edgeThreshold;\n var invDistance = edgeThreshold - edge.distance;\n var velocity = // the closer to the edge, the faster we scroll\n (invDistance * invDistance) / (edgeThreshold * edgeThreshold) * // quadratic\n this.maxVelocity * seconds;\n var sign = 1;\n switch (edge.name) {\n case 'left':\n sign = -1;\n // falls through\n case 'right':\n scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n break;\n case 'top':\n sign = -1;\n // falls through\n case 'bottom':\n scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n break;\n }\n };\n // left/top are relative to document topleft\n AutoScroller.prototype.computeBestEdge = function (left, top) {\n var edgeThreshold = this.edgeThreshold;\n var bestSide = null;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n var rect = scrollCache.clientRect;\n var leftDist = left - rect.left;\n var rightDist = rect.right - left;\n var topDist = top - rect.top;\n var bottomDist = rect.bottom - top;\n // completely within the rect?\n if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n (!bestSide || bestSide.distance > topDist)) {\n bestSide = { scrollCache: scrollCache, name: 'top', distance: topDist };\n }\n if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)) {\n bestSide = { scrollCache: scrollCache, name: 'bottom', distance: bottomDist };\n }\n if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)) {\n bestSide = { scrollCache: scrollCache, name: 'left', distance: leftDist };\n }\n if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)) {\n bestSide = { scrollCache: scrollCache, name: 'right', distance: rightDist };\n }\n }\n }\n return bestSide;\n };\n AutoScroller.prototype.buildCaches = function () {\n return this.queryScrollEls().map(function (el) {\n if (el === window) {\n return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n }\n else {\n return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n }\n });\n };\n AutoScroller.prototype.queryScrollEls = function () {\n var els = [];\n for (var _i = 0, _a = this.scrollQuery; _i < _a.length; _i++) {\n var query = _a[_i];\n if (typeof query === 'object') {\n els.push(query);\n }\n else {\n els.push.apply(els, Array.prototype.slice.call(document.querySelectorAll(query)));\n }\n }\n return els;\n };\n return AutoScroller;\n}());\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nvar FeaturefulElementDragging = /** @class */ (function (_super) {\n __extends(FeaturefulElementDragging, _super);\n function FeaturefulElementDragging(containerEl) {\n var _this = _super.call(this, containerEl) || this;\n // options that can be directly set by caller\n // the caller can also set the PointerDragging's options as well\n _this.delay = null;\n _this.minDistance = 0;\n _this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n _this.mirrorNeedsRevert = false;\n _this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n _this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n _this.isDelayEnded = false;\n _this.isDistanceSurpassed = false;\n _this.delayTimeoutId = null;\n _this.onPointerDown = function (ev) {\n if (!_this.isDragging) { // so new drag doesn't happen while revert animation is going\n _this.isInteracting = true;\n _this.isDelayEnded = false;\n _this.isDistanceSurpassed = false;\n preventSelection(document.body);\n preventContextMenu(document.body);\n // prevent links from being visited if there's an eventual drag.\n // also prevents selection in older browsers (maybe?).\n // not necessary for touch, besides, browser would complain about passiveness.\n if (!ev.isTouch) {\n ev.origEvent.preventDefault();\n }\n _this.emitter.trigger('pointerdown', ev);\n if (!_this.pointer.shouldIgnoreMove) {\n // actions related to initiating dragstart+dragmove+dragend...\n _this.mirror.setIsVisible(false); // reset. caller must set-visible\n _this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n _this.startDelay(ev);\n if (!_this.minDistance) {\n _this.handleDistanceSurpassed(ev);\n }\n }\n }\n };\n _this.onPointerMove = function (ev) {\n if (_this.isInteracting) { // if false, still waiting for previous drag's revert\n _this.emitter.trigger('pointermove', ev);\n if (!_this.isDistanceSurpassed) {\n var minDistance = _this.minDistance;\n var distanceSq = void 0; // current distance from the origin, squared\n var deltaX = ev.deltaX, deltaY = ev.deltaY;\n distanceSq = deltaX * deltaX + deltaY * deltaY;\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n _this.handleDistanceSurpassed(ev);\n }\n }\n if (_this.isDragging) {\n // a real pointer move? (not one simulated by scrolling)\n if (ev.origEvent.type !== 'scroll') {\n _this.mirror.handleMove(ev.pageX, ev.pageY);\n _this.autoScroller.handleMove(ev.pageX, ev.pageY);\n }\n _this.emitter.trigger('dragmove', ev);\n }\n }\n };\n _this.onPointerUp = function (ev) {\n if (_this.isInteracting) { // if false, still waiting for previous drag's revert\n _this.isInteracting = false;\n allowSelection(document.body);\n allowContextMenu(document.body);\n _this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n if (_this.isDragging) {\n _this.autoScroller.stop();\n _this.tryStopDrag(ev); // which will stop the mirror\n }\n if (_this.delayTimeoutId) {\n clearTimeout(_this.delayTimeoutId);\n _this.delayTimeoutId = null;\n }\n }\n };\n var pointer = _this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', _this.onPointerDown);\n pointer.emitter.on('pointermove', _this.onPointerMove);\n pointer.emitter.on('pointerup', _this.onPointerUp);\n _this.mirror = new ElementMirror();\n _this.autoScroller = new AutoScroller();\n return _this;\n }\n FeaturefulElementDragging.prototype.destroy = function () {\n this.pointer.destroy();\n };\n FeaturefulElementDragging.prototype.startDelay = function (ev) {\n var _this = this;\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(function () {\n _this.delayTimeoutId = null;\n _this.handleDelayEnd(ev);\n }, this.delay); // not assignable to number!\n }\n else {\n this.handleDelayEnd(ev);\n }\n };\n FeaturefulElementDragging.prototype.handleDelayEnd = function (ev) {\n this.isDelayEnded = true;\n this.tryStartDrag(ev);\n };\n FeaturefulElementDragging.prototype.handleDistanceSurpassed = function (ev) {\n this.isDistanceSurpassed = true;\n this.tryStartDrag(ev);\n };\n FeaturefulElementDragging.prototype.tryStartDrag = function (ev) {\n if (this.isDelayEnded && this.isDistanceSurpassed) {\n if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n this.isDragging = true;\n this.mirrorNeedsRevert = false;\n this.autoScroller.start(ev.pageX, ev.pageY);\n this.emitter.trigger('dragstart', ev);\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll();\n }\n }\n }\n };\n FeaturefulElementDragging.prototype.tryStopDrag = function (ev) {\n // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n // that come from the document to fire beforehand. much more convenient this way.\n this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev) // bound with args\n );\n };\n FeaturefulElementDragging.prototype.stopDrag = function (ev) {\n this.isDragging = false;\n this.emitter.trigger('dragend', ev);\n };\n // fill in the implementations...\n FeaturefulElementDragging.prototype.setIgnoreMove = function (bool) {\n this.pointer.shouldIgnoreMove = bool;\n };\n FeaturefulElementDragging.prototype.setMirrorIsVisible = function (bool) {\n this.mirror.setIsVisible(bool);\n };\n FeaturefulElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n this.mirrorNeedsRevert = bool;\n };\n FeaturefulElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n this.autoScroller.isEnabled = bool;\n };\n return FeaturefulElementDragging;\n}(ElementDragging));\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nvar OffsetTracker = /** @class */ (function () {\n function OffsetTracker(el) {\n this.origRect = computeRect(el);\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map(function (el) {\n return new ElementScrollGeomCache(el, true); // listen=true\n });\n }\n OffsetTracker.prototype.destroy = function () {\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n scrollCache.destroy();\n }\n };\n OffsetTracker.prototype.computeLeft = function () {\n var left = this.origRect.left;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n }\n return left;\n };\n OffsetTracker.prototype.computeTop = function () {\n var top = this.origRect.top;\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n }\n return top;\n };\n OffsetTracker.prototype.isWithinClipping = function (pageX, pageY) {\n var point = { left: pageX, top: pageY };\n for (var _i = 0, _a = this.scrollCaches; _i < _a.length; _i++) {\n var scrollCache = _a[_i];\n if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)) {\n return false;\n }\n }\n return true;\n };\n return OffsetTracker;\n}());\n// certain clipping containers should never constrain interactions, like and \n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n var tagName = node.tagName;\n return tagName === 'HTML' || tagName === 'BODY';\n}\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nvar HitDragging = /** @class */ (function () {\n function HitDragging(dragging, droppableStore) {\n var _this = this;\n // options that can be set by caller\n this.useSubjectCenter = false;\n this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\n _this.initialHit = null;\n _this.movingHit = null;\n _this.finalHit = null;\n _this.prepareHits();\n _this.processFirstCoord(ev);\n if (_this.initialHit || !_this.requireInitial) {\n dragging.setIgnoreMove(false);\n _this.emitter.trigger('pointerdown', ev); // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n }\n else {\n dragging.setIgnoreMove(true);\n }\n };\n this.handleDragStart = function (ev) {\n _this.emitter.trigger('dragstart', ev);\n _this.handleMove(ev, true); // force = fire even if initially null\n };\n this.handleDragMove = function (ev) {\n _this.emitter.trigger('dragmove', ev);\n _this.handleMove(ev);\n };\n this.handlePointerUp = function (ev) {\n _this.releaseHits();\n _this.emitter.trigger('pointerup', ev);\n };\n this.handleDragEnd = function (ev) {\n if (_this.movingHit) {\n _this.emitter.trigger('hitupdate', null, true, ev);\n }\n _this.finalHit = _this.movingHit;\n _this.movingHit = null;\n _this.emitter.trigger('dragend', ev);\n };\n this.droppableStore = droppableStore;\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n dragging.emitter.on('dragmove', this.handleDragMove);\n dragging.emitter.on('pointerup', this.handlePointerUp);\n dragging.emitter.on('dragend', this.handleDragEnd);\n this.dragging = dragging;\n this.emitter = new EmitterMixin();\n }\n // sets initialHit\n // sets coordAdjust\n HitDragging.prototype.processFirstCoord = function (ev) {\n var origPoint = { left: ev.pageX, top: ev.pageY };\n var adjustedPoint = origPoint;\n var subjectEl = ev.subjectEl;\n var subjectRect;\n if (subjectEl !== document) {\n subjectRect = computeRect(subjectEl);\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n }\n var initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n var slicedSubjectRect = intersectRects(subjectRect, initialHit.rect);\n if (slicedSubjectRect) {\n adjustedPoint = getRectCenter(slicedSubjectRect);\n }\n }\n this.coordAdjust = diffPoints(adjustedPoint, origPoint);\n }\n else {\n this.coordAdjust = { left: 0, top: 0 };\n }\n };\n HitDragging.prototype.handleMove = function (ev, forceHandle) {\n var hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n this.movingHit = hit;\n this.emitter.trigger('hitupdate', hit, false, ev);\n }\n };\n HitDragging.prototype.prepareHits = function () {\n this.offsetTrackers = mapHash(this.droppableStore, function (interactionSettings) {\n interactionSettings.component.buildPositionCaches();\n return new OffsetTracker(interactionSettings.el);\n });\n };\n HitDragging.prototype.releaseHits = function () {\n var offsetTrackers = this.offsetTrackers;\n for (var id in offsetTrackers) {\n offsetTrackers[id].destroy();\n }\n this.offsetTrackers = {};\n };\n HitDragging.prototype.queryHitForOffset = function (offsetLeft, offsetTop) {\n var _a = this, droppableStore = _a.droppableStore, offsetTrackers = _a.offsetTrackers;\n var bestHit = null;\n for (var id in droppableStore) {\n var component = droppableStore[id].component;\n var offsetTracker = offsetTrackers[id];\n if (offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n var originLeft = offsetTracker.computeLeft();\n var originTop = offsetTracker.computeTop();\n var positionLeft = offsetLeft - originLeft;\n var positionTop = offsetTop - originTop;\n var origRect = offsetTracker.origRect;\n var width = origRect.right - origRect.left;\n var height = origRect.bottom - origRect.top;\n if (\n // must be within the element's bounds\n positionLeft >= 0 && positionLeft < width &&\n positionTop >= 0 && positionTop < height) {\n var hit = component.queryHit(positionLeft, positionTop, width, height);\n if (hit &&\n (\n // make sure the hit is within activeRange, meaning it's not a deal cell\n !component.props.dateProfile || // hack for DayTile\n rangeContainsRange(component.props.dateProfile.activeRange, hit.dateSpan.range)) &&\n (!bestHit || hit.layer > bestHit.layer)) {\n // TODO: better way to re-orient rectangle\n hit.rect.left += originLeft;\n hit.rect.right += originLeft;\n hit.rect.top += originTop;\n hit.rect.bottom += originTop;\n bestHit = hit;\n }\n }\n }\n }\n return bestHit;\n };\n return HitDragging;\n}());\nfunction isHitsEqual(hit0, hit1) {\n if (!hit0 && !hit1) {\n return true;\n }\n if (Boolean(hit0) !== Boolean(hit1)) {\n return false;\n }\n return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan);\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nvar DateClicking = /** @class */ (function (_super) {\n __extends(DateClicking, _super);\n function DateClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(!_this.component.isValidDateDownEl(dragging.pointer.downEl));\n };\n // won't even fire if moving was ignored\n _this.handleDragEnd = function (ev) {\n var component = _this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var pointer = _this.dragging.pointer;\n if (!pointer.wasTouchScroll) {\n var _b = _this.hitDragging, initialHit = _b.initialHit, finalHit = _b.finalHit;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n calendar.triggerDateClick(initialHit.dateSpan, initialHit.dayEl, view, ev.origEvent);\n }\n }\n };\n var component = settings.component;\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n _this.dragging = new FeaturefulElementDragging(component.el);\n _this.dragging.autoScroller.isEnabled = false;\n var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n hitDragging.emitter.on('dragend', _this.handleDragEnd);\n return _this;\n }\n DateClicking.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return DateClicking;\n}(Interaction));\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nvar DateSelecting = /** @class */ (function (_super) {\n __extends(DateSelecting, _super);\n function DateSelecting(settings) {\n var _this = _super.call(this, settings) || this;\n _this.dragSelection = null;\n _this.handlePointerDown = function (ev) {\n var _a = _this, component = _a.component, dragging = _a.dragging;\n var options = component.context.options;\n var canSelect = options.selectable &&\n component.isValidDateDownEl(ev.origEvent.target);\n // don't bother to watch expensive moves if component won't do selection\n dragging.setIgnoreMove(!canSelect);\n // if touch, require user to hold down\n dragging.delay = ev.isTouch ? getComponentTouchDelay(component) : null;\n };\n _this.handleDragStart = function (ev) {\n _this.component.context.calendar.unselect(ev); // unselect previous selections\n };\n _this.handleHitUpdate = function (hit, isFinal) {\n var calendar = _this.component.context.calendar;\n var dragSelection = null;\n var isInvalid = false;\n if (hit) {\n dragSelection = joinHitsIntoSelection(_this.hitDragging.initialHit, hit, calendar.pluginSystem.hooks.dateSelectionTransformers);\n if (!dragSelection || !_this.component.isDateSelectionValid(dragSelection)) {\n isInvalid = true;\n dragSelection = null;\n }\n }\n if (dragSelection) {\n calendar.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n }\n else if (!isFinal) { // only unselect if moved away while dragging\n calendar.dispatch({ type: 'UNSELECT_DATES' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n _this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n }\n };\n _this.handlePointerUp = function (pev) {\n if (_this.dragSelection) {\n // selection is already rendered, so just need to report selection\n _this.component.context.calendar.triggerDateSelect(_this.dragSelection, pev);\n _this.dragSelection = null;\n }\n };\n var component = settings.component;\n var options = component.context.options;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = options.selectMinDistance || 0;\n dragging.autoScroller.isEnabled = options.dragScroll;\n var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n hitDragging.emitter.on('dragstart', _this.handleDragStart);\n hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', _this.handlePointerUp);\n return _this;\n }\n DateSelecting.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return DateSelecting;\n}(Interaction));\nfunction getComponentTouchDelay(component) {\n var options = component.context.options;\n var delay = options.selectLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n var dateSpan0 = hit0.dateSpan;\n var dateSpan1 = hit1.dateSpan;\n var ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end\n ];\n ms.sort(compareNumbers);\n var props = {};\n for (var _i = 0, dateSelectionTransformers_1 = dateSelectionTransformers; _i < dateSelectionTransformers_1.length; _i++) {\n var transformer = dateSelectionTransformers_1[_i];\n var res = transformer(hit0, hit1);\n if (res === false) {\n return null;\n }\n else if (res) {\n __assign(props, res);\n }\n }\n props.range = { start: ms[0], end: ms[3] };\n props.allDay = dateSpan0.allDay;\n return props;\n}\n\nvar EventDragging = /** @class */ (function (_super) {\n __extends(EventDragging, _super);\n function EventDragging(settings) {\n var _this = _super.call(this, settings) || this;\n // internal state\n _this.subjectSeg = null; // the seg being selected/dragged\n _this.isDragging = false;\n _this.eventRange = null;\n _this.relevantEvents = null; // the events being dragged\n _this.receivingCalendar = null;\n _this.validMutation = null;\n _this.mutatedRelevantEvents = null;\n _this.handlePointerDown = function (ev) {\n var origTarget = ev.origEvent.target;\n var _a = _this, component = _a.component, dragging = _a.dragging;\n var mirror = dragging.mirror;\n var options = component.context.options;\n var initialCalendar = component.context.calendar;\n var subjectSeg = _this.subjectSeg = getElSeg(ev.subjectEl);\n var eventRange = _this.eventRange = subjectSeg.eventRange;\n var eventInstanceId = eventRange.instance.instanceId;\n _this.relevantEvents = getRelevantEvents(initialCalendar.state.eventStore, eventInstanceId);\n dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n dragging.delay =\n // only do a touch delay if touch and this event hasn't been selected yet\n (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n getComponentTouchDelay$1(component) :\n null;\n mirror.parentNode = initialCalendar.el;\n mirror.revertDuration = options.dragRevertDuration;\n var isValid = component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-resizer'); // NOT on a resizer\n dragging.setIgnoreMove(!isValid);\n // disable dragging for elements that are resizable (ie, selectable)\n // but are not draggable\n _this.isDragging = isValid &&\n ev.subjectEl.classList.contains('fc-draggable');\n };\n _this.handleDragStart = function (ev) {\n var context = _this.component.context;\n var initialCalendar = context.calendar;\n var eventRange = _this.eventRange;\n var eventInstanceId = eventRange.instance.instanceId;\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== _this.component.props.eventSelection) {\n initialCalendar.dispatch({ type: 'SELECT_EVENT', eventInstanceId: eventInstanceId });\n }\n }\n else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialCalendar.dispatch({ type: 'UNSELECT_EVENT' });\n }\n if (_this.isDragging) {\n initialCalendar.unselect(ev); // unselect *date* selection\n initialCalendar.publiclyTrigger('eventDragStart', [\n {\n el: _this.subjectSeg.el,\n event: new EventApi(initialCalendar, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: context.view\n }\n ]);\n }\n };\n _this.handleHitUpdate = function (hit, isFinal) {\n if (!_this.isDragging) {\n return;\n }\n var relevantEvents = _this.relevantEvents;\n var initialHit = _this.hitDragging.initialHit;\n var initialCalendar = _this.component.context.calendar;\n // states based on new hit\n var receivingCalendar = null;\n var mutation = null;\n var mutatedRelevantEvents = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: _this.subjectSeg\n };\n if (hit) {\n var receivingComponent = hit.component;\n receivingCalendar = receivingComponent.context.calendar;\n var receivingOptions = receivingComponent.context.options;\n if (initialCalendar === receivingCalendar ||\n receivingOptions.editable && receivingOptions.droppable) {\n mutation = computeEventMutation(initialHit, hit, receivingCalendar.pluginSystem.hooks.eventDragMutationMassagers);\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingCalendar.eventUiBases, mutation, receivingCalendar);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!receivingComponent.isInteractionValid(interaction)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = createEmptyEventStore();\n }\n }\n }\n else {\n receivingCalendar = null;\n }\n }\n _this.displayDrag(receivingCalendar, interaction);\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (initialCalendar === receivingCalendar && // TODO: write test for this\n isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n _this.dragging.setMirrorNeedsRevert(!mutation);\n // render the mirror if no already-rendered mirror\n // TODO: wish we could somehow wait for dispatch to guarantee render\n _this.dragging.setMirrorIsVisible(!hit || !document.querySelector('.fc-mirror'));\n // assign states based on new hit\n _this.receivingCalendar = receivingCalendar;\n _this.validMutation = mutation;\n _this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n _this.handlePointerUp = function () {\n if (!_this.isDragging) {\n _this.cleanup(); // because handleDragEnd won't fire\n }\n };\n _this.handleDragEnd = function (ev) {\n if (_this.isDragging) {\n var context = _this.component.context;\n var initialCalendar_1 = context.calendar;\n var initialView = context.view;\n var _a = _this, receivingCalendar = _a.receivingCalendar, validMutation = _a.validMutation;\n var eventDef = _this.eventRange.def;\n var eventInstance = _this.eventRange.instance;\n var eventApi = new EventApi(initialCalendar_1, eventDef, eventInstance);\n var relevantEvents_1 = _this.relevantEvents;\n var mutatedRelevantEvents = _this.mutatedRelevantEvents;\n var finalHit = _this.hitDragging.finalHit;\n _this.clearDrag(); // must happen after revert animation\n initialCalendar_1.publiclyTrigger('eventDragStop', [\n {\n el: _this.subjectSeg.el,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: initialView\n }\n ]);\n if (validMutation) {\n // dropped within same calendar\n if (receivingCalendar === initialCalendar_1) {\n initialCalendar_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents\n });\n var transformed = {};\n for (var _i = 0, _b = initialCalendar_1.pluginSystem.hooks.eventDropTransformers; _i < _b.length; _i++) {\n var transformer = _b[_i];\n __assign(transformed, transformer(validMutation, initialCalendar_1));\n }\n var eventDropArg = __assign({}, transformed, { el: ev.subjectEl, delta: validMutation.datesDelta, oldEvent: eventApi, event: new EventApi(// the data AFTER the mutation\n initialCalendar_1, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null), revert: function () {\n initialCalendar_1.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents_1\n });\n }, jsEvent: ev.origEvent, view: initialView });\n initialCalendar_1.publiclyTrigger('eventDrop', [eventDropArg]);\n // dropped in different calendar\n }\n else if (receivingCalendar) {\n initialCalendar_1.publiclyTrigger('eventLeave', [\n {\n draggedEl: ev.subjectEl,\n event: eventApi,\n view: initialView\n }\n ]);\n initialCalendar_1.dispatch({\n type: 'REMOVE_EVENT_INSTANCES',\n instances: _this.mutatedRelevantEvents.instances\n });\n receivingCalendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: _this.mutatedRelevantEvents\n });\n if (ev.isTouch) {\n receivingCalendar.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId\n });\n }\n var dropArg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.component // should this be finalHit.component.view? See #4644\n });\n receivingCalendar.publiclyTrigger('drop', [dropArg]);\n receivingCalendar.publiclyTrigger('eventReceive', [\n {\n draggedEl: ev.subjectEl,\n event: new EventApi(// the data AFTER the mutation\n receivingCalendar, mutatedRelevantEvents.defs[eventDef.defId], mutatedRelevantEvents.instances[eventInstance.instanceId]),\n view: finalHit.component // should this be finalHit.component.view? See #4644\n }\n ]);\n }\n }\n else {\n initialCalendar_1.publiclyTrigger('_noEventDrop');\n }\n }\n _this.cleanup();\n };\n var component = _this.component;\n var options = component.context.options;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = options.dragScroll;\n var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsStore);\n hitDragging.useSubjectCenter = settings.useEventCenter;\n hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n hitDragging.emitter.on('dragstart', _this.handleDragStart);\n hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', _this.handlePointerUp);\n hitDragging.emitter.on('dragend', _this.handleDragEnd);\n return _this;\n }\n EventDragging.prototype.destroy = function () {\n this.dragging.destroy();\n };\n // render a drag state on the next receivingCalendar\n EventDragging.prototype.displayDrag = function (nextCalendar, state) {\n var initialCalendar = this.component.context.calendar;\n var prevCalendar = this.receivingCalendar;\n // does the previous calendar need to be cleared?\n if (prevCalendar && prevCalendar !== nextCalendar) {\n // does the initial calendar need to be cleared?\n // if so, don't clear all the way. we still need to to hide the affectedEvents\n if (prevCalendar === initialCalendar) {\n prevCalendar.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: state.origSeg\n }\n });\n // completely clear the old calendar if it wasn't the initial\n }\n else {\n prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n if (nextCalendar) {\n nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n }\n };\n EventDragging.prototype.clearDrag = function () {\n var initialCalendar = this.component.context.calendar;\n var receivingCalendar = this.receivingCalendar;\n if (receivingCalendar) {\n receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingCalendar) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n };\n EventDragging.prototype.cleanup = function () {\n this.subjectSeg = null;\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null;\n this.receivingCalendar = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n };\n EventDragging.SELECTOR = '.fc-draggable, .fc-resizable'; // TODO: test this in IE11\n return EventDragging;\n}(Interaction));\nfunction computeEventMutation(hit0, hit1, massagers) {\n var dateSpan0 = hit0.dateSpan;\n var dateSpan1 = hit1.dateSpan;\n var date0 = dateSpan0.range.start;\n var date1 = dateSpan1.range.start;\n var standardProps = {};\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay;\n standardProps.hasEnd = hit1.component.context.options.allDayMaintainDuration;\n if (dateSpan1.allDay) {\n // means date1 is already start-of-day,\n // but date0 needs to be converted\n date0 = startOfDay(date0);\n }\n }\n var delta = diffDates(date0, date1, hit0.component.context.dateEnv, hit0.component === hit1.component ?\n hit0.component.largeUnit :\n null);\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false;\n }\n var mutation = {\n datesDelta: delta,\n standardProps: standardProps\n };\n for (var _i = 0, massagers_1 = massagers; _i < massagers_1.length; _i++) {\n var massager = massagers_1[_i];\n massager(mutation, hit0, hit1);\n }\n return mutation;\n}\nfunction getComponentTouchDelay$1(component) {\n var options = component.context.options;\n var delay = options.eventLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\n\nvar EventDragging$1 = /** @class */ (function (_super) {\n __extends(EventDragging, _super);\n function EventDragging(settings) {\n var _this = _super.call(this, settings) || this;\n // internal state\n _this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n _this.eventRange = null;\n _this.relevantEvents = null;\n _this.validMutation = null;\n _this.mutatedRelevantEvents = null;\n _this.handlePointerDown = function (ev) {\n var component = _this.component;\n var seg = _this.querySeg(ev);\n var eventRange = _this.eventRange = seg.eventRange;\n _this.dragging.minDistance = component.context.options.eventDragMinDistance;\n // if touch, need to be working with a selected event\n _this.dragging.setIgnoreMove(!_this.component.isValidSegDownEl(ev.origEvent.target) ||\n (ev.isTouch && _this.component.props.eventSelection !== eventRange.instance.instanceId));\n };\n _this.handleDragStart = function (ev) {\n var _a = _this.component.context, calendar = _a.calendar, view = _a.view;\n var eventRange = _this.eventRange;\n _this.relevantEvents = getRelevantEvents(calendar.state.eventStore, _this.eventRange.instance.instanceId);\n _this.draggingSeg = _this.querySeg(ev);\n calendar.unselect();\n calendar.publiclyTrigger('eventResizeStart', [\n {\n el: _this.draggingSeg.el,\n event: new EventApi(calendar, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n };\n _this.handleHitUpdate = function (hit, isFinal, ev) {\n var calendar = _this.component.context.calendar;\n var relevantEvents = _this.relevantEvents;\n var initialHit = _this.hitDragging.initialHit;\n var eventInstance = _this.eventRange.instance;\n var mutation = null;\n var mutatedRelevantEvents = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n origSeg: _this.draggingSeg\n };\n if (hit) {\n mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-start-resizer'), eventInstance.range, calendar.pluginSystem.hooks.eventResizeJoinTransforms);\n }\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, calendar.eventUiBases, mutation, calendar);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!_this.component.isInteractionValid(interaction)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = null;\n }\n }\n if (mutatedRelevantEvents) {\n calendar.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction\n });\n }\n else {\n calendar.dispatch({ type: 'UNSET_EVENT_RESIZE' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (mutation && isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n _this.validMutation = mutation;\n _this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n _this.handleDragEnd = function (ev) {\n var _a = _this.component.context, calendar = _a.calendar, view = _a.view;\n var eventDef = _this.eventRange.def;\n var eventInstance = _this.eventRange.instance;\n var eventApi = new EventApi(calendar, eventDef, eventInstance);\n var relevantEvents = _this.relevantEvents;\n var mutatedRelevantEvents = _this.mutatedRelevantEvents;\n calendar.publiclyTrigger('eventResizeStop', [\n {\n el: _this.draggingSeg.el,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n if (_this.validMutation) {\n calendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents\n });\n calendar.publiclyTrigger('eventResize', [\n {\n el: _this.draggingSeg.el,\n startDelta: _this.validMutation.startDelta || createDuration(0),\n endDelta: _this.validMutation.endDelta || createDuration(0),\n prevEvent: eventApi,\n event: new EventApi(// the data AFTER the mutation\n calendar, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null),\n revert: function () {\n calendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents\n });\n },\n jsEvent: ev.origEvent,\n view: view\n }\n ]);\n }\n else {\n calendar.publiclyTrigger('_noEventResize');\n }\n // reset all internal state\n _this.draggingSeg = null;\n _this.relevantEvents = null;\n _this.validMutation = null;\n // okay to keep eventInstance around. useful to set it in handlePointerDown\n };\n var component = settings.component;\n var dragging = _this.dragging = new FeaturefulElementDragging(component.el);\n dragging.pointer.selector = '.fc-resizer';\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n var hitDragging = _this.hitDragging = new HitDragging(_this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', _this.handlePointerDown);\n hitDragging.emitter.on('dragstart', _this.handleDragStart);\n hitDragging.emitter.on('hitupdate', _this.handleHitUpdate);\n hitDragging.emitter.on('dragend', _this.handleDragEnd);\n return _this;\n }\n EventDragging.prototype.destroy = function () {\n this.dragging.destroy();\n };\n EventDragging.prototype.querySeg = function (ev) {\n return getElSeg(elementClosest(ev.subjectEl, this.component.fgSegSelector));\n };\n return EventDragging;\n}(Interaction));\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange, transforms) {\n var dateEnv = hit0.component.context.dateEnv;\n var date0 = hit0.dateSpan.range.start;\n var date1 = hit1.dateSpan.range.start;\n var delta = diffDates(date0, date1, dateEnv, hit0.component.largeUnit);\n var props = {};\n for (var _i = 0, transforms_1 = transforms; _i < transforms_1.length; _i++) {\n var transform = transforms_1[_i];\n var res = transform(hit0, hit1);\n if (res === false) {\n return null;\n }\n else if (res) {\n __assign(props, res);\n }\n }\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n props.startDelta = delta;\n return props;\n }\n }\n else {\n if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n props.endDelta = delta;\n return props;\n }\n }\n return null;\n}\n\nvar UnselectAuto = /** @class */ (function () {\n function UnselectAuto(calendar) {\n var _this = this;\n this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n this.onSelect = function (selectInfo) {\n if (selectInfo.jsEvent) {\n _this.isRecentPointerDateSelect = true;\n }\n };\n this.onDocumentPointerUp = function (pev) {\n var _a = _this, calendar = _a.calendar, documentPointer = _a.documentPointer;\n var state = calendar.state;\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (state.dateSelection && // an existing date selection?\n !_this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n var unselectAuto = calendar.viewOpt('unselectAuto');\n var unselectCancel = calendar.viewOpt('unselectCancel');\n if (unselectAuto && (!unselectAuto || !elementClosest(documentPointer.downEl, unselectCancel))) {\n calendar.unselect(pev);\n }\n }\n if (state.eventSelection && // an existing event selected?\n !elementClosest(documentPointer.downEl, EventDragging.SELECTOR) // interaction DIDN'T start on an event\n ) {\n calendar.dispatch({ type: 'UNSELECT_EVENT' });\n }\n }\n _this.isRecentPointerDateSelect = false;\n };\n this.calendar = calendar;\n var documentPointer = this.documentPointer = new PointerDragging(document);\n documentPointer.shouldIgnoreMove = true;\n documentPointer.shouldWatchScroll = false;\n documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n /*\n TODO: better way to know about whether there was a selection with the pointer\n */\n calendar.on('select', this.onSelect);\n }\n UnselectAuto.prototype.destroy = function () {\n this.calendar.off('select', this.onSelect);\n this.documentPointer.destroy();\n };\n return UnselectAuto;\n}());\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nvar ExternalElementDragging = /** @class */ (function () {\n function ExternalElementDragging(dragging, suppliedDragMeta) {\n var _this = this;\n this.receivingCalendar = null;\n this.droppableEvent = null; // will exist for all drags, even if create:false\n this.suppliedDragMeta = null;\n this.dragMeta = null;\n this.handleDragStart = function (ev) {\n _this.dragMeta = _this.buildDragMeta(ev.subjectEl);\n };\n this.handleHitUpdate = function (hit, isFinal, ev) {\n var dragging = _this.hitDragging.dragging;\n var receivingCalendar = null;\n var droppableEvent = null;\n var isInvalid = false;\n var interaction = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: _this.dragMeta.create,\n origSeg: null\n };\n if (hit) {\n receivingCalendar = hit.component.context.calendar;\n if (_this.canDropElOnCalendar(ev.subjectEl, receivingCalendar)) {\n droppableEvent = computeEventForDateSpan(hit.dateSpan, _this.dragMeta, receivingCalendar);\n interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n isInvalid = !isInteractionValid(interaction, receivingCalendar);\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore();\n droppableEvent = null;\n }\n }\n }\n _this.displayDrag(receivingCalendar, interaction);\n // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n // TODO: wish we could somehow wait for dispatch to guarantee render\n dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-mirror'));\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent);\n _this.receivingCalendar = receivingCalendar;\n _this.droppableEvent = droppableEvent;\n }\n };\n this.handleDragEnd = function (pev) {\n var _a = _this, receivingCalendar = _a.receivingCalendar, droppableEvent = _a.droppableEvent;\n _this.clearDrag();\n if (receivingCalendar && droppableEvent) {\n var finalHit = _this.hitDragging.finalHit;\n var finalView = finalHit.component.context.view;\n var dragMeta = _this.dragMeta;\n var arg = __assign({}, receivingCalendar.buildDatePointApi(finalHit.dateSpan), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView });\n receivingCalendar.publiclyTrigger('drop', [arg]);\n if (dragMeta.create) {\n receivingCalendar.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: eventTupleToStore(droppableEvent)\n });\n if (pev.isTouch) {\n receivingCalendar.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId\n });\n }\n // signal that an external event landed\n receivingCalendar.publiclyTrigger('eventReceive', [\n {\n draggedEl: pev.subjectEl,\n event: new EventApi(receivingCalendar, droppableEvent.def, droppableEvent.instance),\n view: finalView\n }\n ]);\n }\n }\n _this.receivingCalendar = null;\n _this.droppableEvent = null;\n };\n var hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore);\n hitDragging.requireInitial = false; // will start outside of a component\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n this.suppliedDragMeta = suppliedDragMeta;\n }\n ExternalElementDragging.prototype.buildDragMeta = function (subjectEl) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta);\n }\n else if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl));\n }\n else {\n return getDragMetaFromEl(subjectEl);\n }\n };\n ExternalElementDragging.prototype.displayDrag = function (nextCalendar, state) {\n var prevCalendar = this.receivingCalendar;\n if (prevCalendar && prevCalendar !== nextCalendar) {\n prevCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n if (nextCalendar) {\n nextCalendar.dispatch({ type: 'SET_EVENT_DRAG', state: state });\n }\n };\n ExternalElementDragging.prototype.clearDrag = function () {\n if (this.receivingCalendar) {\n this.receivingCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n };\n ExternalElementDragging.prototype.canDropElOnCalendar = function (el, receivingCalendar) {\n var dropAccept = receivingCalendar.opt('dropAccept');\n if (typeof dropAccept === 'function') {\n return dropAccept(el);\n }\n else if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept));\n }\n return true;\n };\n return ExternalElementDragging;\n}());\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, calendar) {\n var defProps = __assign({}, dragMeta.leftoverProps);\n for (var _i = 0, _a = calendar.pluginSystem.hooks.externalDefTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(defProps, transform(dateSpan, dragMeta));\n }\n var def = parseEventDef(defProps, dragMeta.sourceId, dateSpan.allDay, calendar.opt('forceEventDuration') || Boolean(dragMeta.duration), // hasEnd\n calendar);\n var start = dateSpan.range.start;\n // only rely on time info if drop zone is all-day,\n // otherwise, we already know the time\n if (dateSpan.allDay && dragMeta.startTime) {\n start = calendar.dateEnv.add(start, dragMeta.startTime);\n }\n var end = dragMeta.duration ?\n calendar.dateEnv.add(start, dragMeta.duration) :\n calendar.getDefaultEventEnd(dateSpan.allDay, start);\n var instance = createEventInstance(def.defId, { start: start, end: end });\n return { def: def, instance: instance };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n var str = getEmbeddedElData(el, 'event');\n var obj = str ?\n JSON.parse(str) :\n { create: false }; // if no embedded data, assume no event creation\n return parseDragMeta(obj);\n}\nconfig.dataAttrPrefix = '';\nfunction getEmbeddedElData(el, name) {\n var prefix = config.dataAttrPrefix;\n var prefixedName = (prefix ? prefix + '-' : '') + name;\n return el.getAttribute('data-' + prefixedName) || '';\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nvar ExternalDraggable = /** @class */ (function () {\n function ExternalDraggable(el, settings) {\n var _this = this;\n if (settings === void 0) { settings = {}; }\n this.handlePointerDown = function (ev) {\n var dragging = _this.dragging;\n var _a = _this.settings, minDistance = _a.minDistance, longPressDelay = _a.longPressDelay;\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : globalDefaults.eventDragMinDistance);\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : globalDefaults.longPressDelay) :\n 0;\n };\n this.handleDragStart = function (ev) {\n if (ev.isTouch &&\n _this.dragging.delay &&\n ev.subjectEl.classList.contains('fc-event')) {\n _this.dragging.mirror.getMirrorEl().classList.add('fc-selected');\n }\n };\n this.settings = settings;\n var dragging = this.dragging = new FeaturefulElementDragging(el);\n dragging.touchScrollAllowed = false;\n if (settings.itemSelector != null) {\n dragging.pointer.selector = settings.itemSelector;\n }\n if (settings.appendTo != null) {\n dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n }\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n new ExternalElementDragging(dragging, settings.eventData);\n }\n ExternalDraggable.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return ExternalDraggable;\n}());\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nvar InferredElementDragging = /** @class */ (function (_super) {\n __extends(InferredElementDragging, _super);\n function InferredElementDragging(containerEl) {\n var _this = _super.call(this, containerEl) || this;\n _this.shouldIgnoreMove = false;\n _this.mirrorSelector = '';\n _this.currentMirrorEl = null;\n _this.handlePointerDown = function (ev) {\n _this.emitter.trigger('pointerdown', ev);\n if (!_this.shouldIgnoreMove) {\n // fire dragstart right away. does not support delay or min-distance\n _this.emitter.trigger('dragstart', ev);\n }\n };\n _this.handlePointerMove = function (ev) {\n if (!_this.shouldIgnoreMove) {\n _this.emitter.trigger('dragmove', ev);\n }\n };\n _this.handlePointerUp = function (ev) {\n _this.emitter.trigger('pointerup', ev);\n if (!_this.shouldIgnoreMove) {\n // fire dragend right away. does not support a revert animation\n _this.emitter.trigger('dragend', ev);\n }\n };\n var pointer = _this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', _this.handlePointerDown);\n pointer.emitter.on('pointermove', _this.handlePointerMove);\n pointer.emitter.on('pointerup', _this.handlePointerUp);\n return _this;\n }\n InferredElementDragging.prototype.destroy = function () {\n this.pointer.destroy();\n };\n InferredElementDragging.prototype.setIgnoreMove = function (bool) {\n this.shouldIgnoreMove = bool;\n };\n InferredElementDragging.prototype.setMirrorIsVisible = function (bool) {\n if (bool) {\n // restore a previously hidden element.\n // use the reference in case the selector class has already been removed.\n if (this.currentMirrorEl) {\n this.currentMirrorEl.style.visibility = '';\n this.currentMirrorEl = null;\n }\n }\n else {\n var mirrorEl = this.mirrorSelector ?\n document.querySelector(this.mirrorSelector) :\n null;\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl;\n mirrorEl.style.visibility = 'hidden';\n }\n }\n };\n return InferredElementDragging;\n}(ElementDragging));\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nvar ThirdPartyDraggable = /** @class */ (function () {\n function ThirdPartyDraggable(containerOrSettings, settings) {\n var containerEl = document;\n if (\n // wish we could just test instanceof EventTarget, but doesn't work in IE11\n containerOrSettings === document ||\n containerOrSettings instanceof Element) {\n containerEl = containerOrSettings;\n settings = settings || {};\n }\n else {\n settings = (containerOrSettings || {});\n }\n var dragging = this.dragging = new InferredElementDragging(containerEl);\n if (typeof settings.itemSelector === 'string') {\n dragging.pointer.selector = settings.itemSelector;\n }\n else if (containerEl === document) {\n dragging.pointer.selector = '[data-event]';\n }\n if (typeof settings.mirrorSelector === 'string') {\n dragging.mirrorSelector = settings.mirrorSelector;\n }\n new ExternalElementDragging(dragging, settings.eventData);\n }\n ThirdPartyDraggable.prototype.destroy = function () {\n this.dragging.destroy();\n };\n return ThirdPartyDraggable;\n}());\n\nvar main = createPlugin({\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventDragging$1],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging\n});\n\nexport default main;\nexport { ExternalDraggable as Draggable, FeaturefulElementDragging, PointerDragging, ThirdPartyDraggable };\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Пагоҳ соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-us\": \"55c96\",\n\t\"./es-us.js\": \"55c96\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df48\",\n\t\"./fa.js\": \"8df48\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b46\",\n\t\"./gd.js\": \"f6b46\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'birneçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","/*!\nFullCalendar Core Package v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\n// Creating\n// ----------------------------------------------------------------------------------------------------------------\nvar elementPropHash = {\n className: true,\n colSpan: true,\n rowSpan: true\n};\nvar containerTagHash = {\n '= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n var res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom)\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top\n };\n}\n\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\nvar isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (isRtlScrollbarOnLeft === null) {\n isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n var outerEl = createElement('div', {\n style: {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl'\n }\n }, '
');\n document.body.appendChild(outerEl);\n var innerEl = outerEl.firstChild;\n var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n// The scrollbar width computations in computeEdges are sometimes flawed when it comes to\n// retina displays, rounding, and IE11. Massage them into a usable value.\nfunction sanitizeScrollbarWidth(width) {\n width = Math.max(0, width); // no negatives\n width = Math.round(width);\n return width;\n}\n\nfunction computeEdges(el, getPadding) {\n if (getPadding === void 0) { getPadding = false; }\n var computedStyle = window.getComputedStyle(el);\n var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n // must use offset(Width|Height) because compatible with client(Width|Height)\n var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight);\n var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom);\n var res = {\n borderLeft: borderLeft,\n borderRight: borderRight,\n borderTop: borderTop,\n borderBottom: borderBottom,\n scrollbarBottom: scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding) {\n if (goWithinPadding === void 0) { goWithinPadding = false; }\n var outerRect = computeRect(el);\n var edges = computeEdges(el, goWithinPadding);\n var res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset\n };\n}\nfunction computeViewportRect() {\n return {\n left: window.pageXOffset,\n right: window.pageXOffset + document.documentElement.clientWidth,\n top: window.pageYOffset,\n bottom: window.pageYOffset + document.documentElement.clientHeight\n };\n}\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) +\n parseInt(computed.marginBottom, 10);\n}\n// does not return window\nfunction getClippingParents(el) {\n var parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\nfunction computeClippingRect(el) {\n return getClippingParents(el)\n .map(function (el) {\n return computeInnerRect(el);\n })\n .concat(computeViewportRect())\n .reduce(function (rect0, rect1) {\n return intersectRects(rect0, rect1) || rect1; // should always intersect\n });\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction listenBySelector(container, eventType, selector, handler) {\n function realHandler(ev) {\n var matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n }\n container.addEventListener(eventType, realHandler);\n return function () {\n container.removeEventListener(eventType, realHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n var currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(ev, matchedChild);\n var realOnMouseLeave_1 = function (ev) {\n currentMatchedChild = null;\n onMouseLeave(ev, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nvar transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend'\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n var realCallback = function (ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n\nvar DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n var m0day = startOfDay(m0);\n var m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf())\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate()\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours()\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes()\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds()\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n var dayStart = startOfDay(marker);\n var days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n var fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC.apply(Date, a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n var _a;\n if (typeof input === 'string') {\n return parseString(input);\n }\n else if (typeof input === 'object' && input) { // non-null object\n return normalizeObject(input);\n }\n else if (typeof input === 'number') {\n return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n else {\n return null;\n }\n}\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n if (m) {\n var sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n )\n };\n }\n return null;\n}\nfunction normalizeObject(obj) {\n return {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: (obj.days || obj.day || 0) +\n getWeeksFromInput(obj) * 7,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms\n };\n}\nfunction getWeeksFromInput(obj) {\n return obj.weeks || obj.week || 0;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction isSingleDay(dur) {\n return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n for (var i = 0; i < INTERNAL_UNITS.length; i++) {\n var unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur, dontReturnWeeks) {\n var ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (!dontReturnWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\nfunction compensateScroll(rowEl, scrollbarWidths) {\n if (scrollbarWidths.left) {\n applyStyle(rowEl, {\n borderLeftWidth: 1,\n marginLeft: scrollbarWidths.left - 1\n });\n }\n if (scrollbarWidths.right) {\n applyStyle(rowEl, {\n borderRightWidth: 1,\n marginRight: scrollbarWidths.right - 1\n });\n }\n}\n// Undoes compensateScroll and restores all borders/margins\nfunction uncompensateScroll(rowEl) {\n applyStyle(rowEl, {\n marginLeft: '',\n marginRight: '',\n borderLeftWidth: '',\n borderRightWidth: ''\n });\n}\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\n// reduces the available height.\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\n var flexOffsets = []; // amount of vertical space it takes up\n var flexHeights = []; // actual css height\n var usedHeight = 0;\n undistributeHeight(els); // give all elements their natural height\n // find elements that are below the recommended height (expandable).\n // important to query for heights in a single first pass (to avoid reflow oscillation).\n els.forEach(function (el, i) {\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\n var naturalHeight = el.getBoundingClientRect().height;\n var naturalOffset = naturalHeight + computeVMargins(el);\n if (naturalOffset < minOffset) {\n flexEls.push(el);\n flexOffsets.push(naturalOffset);\n flexHeights.push(naturalHeight);\n }\n else {\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\n usedHeight += naturalOffset;\n }\n });\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\n if (shouldRedistribute) {\n availableHeight -= usedHeight;\n minOffset1 = Math.floor(availableHeight / flexEls.length);\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\n }\n // assign heights to all expandable elements\n flexEls.forEach(function (el, i) {\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\n var naturalOffset = flexOffsets[i];\n var naturalHeight = flexHeights[i];\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\n if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things\n el.style.height = newHeight + 'px';\n }\n });\n}\n// Undoes distrubuteHeight, restoring all els to their natural height\nfunction undistributeHeight(els) {\n els.forEach(function (el) {\n el.style.height = '';\n });\n}\n// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the\n// cells to be that width.\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\nfunction matchCellWidths(els) {\n var maxInnerWidth = 0;\n els.forEach(function (el) {\n var innerEl = el.firstChild; // hopefully an element\n if (innerEl instanceof HTMLElement) {\n var innerWidth_1 = innerEl.getBoundingClientRect().width;\n if (innerWidth_1 > maxInnerWidth) {\n maxInnerWidth = innerWidth_1;\n }\n }\n });\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\n els.forEach(function (el) {\n el.style.width = maxInnerWidth + 'px';\n });\n return maxInnerWidth;\n}\n// Given one element that resides inside another,\n// Subtracts the height of the inner element from the outer element.\nfunction subtractInnerElHeight(outerEl, innerEl) {\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\n var reflowStyleProps = {\n position: 'relative',\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\n };\n applyStyle(outerEl, reflowStyleProps);\n applyStyle(innerEl, reflowStyleProps);\n var diff = // grab the dimensions\n outerEl.getBoundingClientRect().height -\n innerEl.getBoundingClientRect().height;\n // undo hack\n var resetStyleProps = { position: '', left: '' };\n applyStyle(outerEl, resetStyleProps);\n applyStyle(innerEl, resetStyleProps);\n return diff;\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\n/* Object Ordering by Field\n----------------------------------------------------------------------------------------------------------------------*/\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n for (i = 0; i < fieldSpecs.length; i++) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction capitaliseFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* Weird Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction applyAll(functions, thisObj, args) {\n if (typeof functions === 'function') { // supplied a single function\n functions = [functions];\n }\n if (functions) {\n var i = void 0;\n var ret = void 0;\n for (i = 0; i < functions.length; i++) {\n ret = functions[i].apply(thisObj, args) || ret;\n }\n return ret;\n }\n}\nfunction firstDefined() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== undefined) {\n return args[i];\n }\n }\n}\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\nfunction debounce(func, wait) {\n var timeout;\n var args;\n var context;\n var timestamp;\n var result;\n var later = function () {\n var last = new Date().valueOf() - timestamp;\n if (last < wait) {\n timeout = setTimeout(later, wait - last);\n }\n else {\n timeout = null;\n result = func.apply(context, args);\n context = args = null;\n }\n };\n return function () {\n context = this;\n args = arguments;\n timestamp = new Date().valueOf();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n return result;\n };\n}\n// Number and Boolean are only types that defaults or not computed for\n// TODO: write more comments\nfunction refineProps(rawProps, processors, defaults, leftoverProps) {\n if (defaults === void 0) { defaults = {}; }\n var refined = {};\n for (var key in processors) {\n var processor = processors[key];\n if (rawProps[key] !== undefined) {\n // found\n if (processor === Function) {\n refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null;\n }\n else if (processor) { // a refining function?\n refined[key] = processor(rawProps[key]);\n }\n else {\n refined[key] = rawProps[key];\n }\n }\n else if (defaults[key] !== undefined) {\n // there's an explicit default\n refined[key] = defaults[key];\n }\n else {\n // must compute a default\n if (processor === String) {\n refined[key] = ''; // empty string is default for String\n }\n else if (!processor || processor === Number || processor === Boolean || processor === Function) {\n refined[key] = null; // assign null for other non-custom processor funcs\n }\n else {\n refined[key] = processor(null); // run the custom processor func\n }\n }\n }\n if (leftoverProps) {\n for (var key in rawProps) {\n if (processors[key] === undefined) {\n leftoverProps[key] = rawProps[key];\n }\n }\n }\n return refined;\n}\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n var start = startOfDay(timedRange.start);\n var end = addDays(start, dayCnt);\n return { start: start, end: end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); }\n var startDay = null;\n var endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n else if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n else {\n return diffDayAndTime(date0, date1); // returns a duration\n }\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) {\n for (var i = 0; i < recurringTypes.length; i++) {\n var localLeftovers = {};\n var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv);\n if (parsed) {\n var allDay = localLeftovers.allDay;\n delete localLeftovers.allDay; // remove from leftovers\n if (allDay == null) {\n allDay = allDayDefault;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n __assign(leftovers, localLeftovers);\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i\n };\n }\n }\n return null;\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexProps) {\n var dest = {};\n var i;\n var name;\n var complexObjs;\n var j;\n var val;\n var props;\n if (complexProps) {\n for (i = 0; i < complexProps.length; i++) {\n name = complexProps[i];\n complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (j = propObjs.length - 1; j >= 0; j--) {\n val = propObjs[j][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n // copy values into the destination, going from last to first\n for (i = propObjs.length - 1; i >= 0; i--) {\n props = propObjs[i];\n for (name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n var filtered = {};\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n var newHash = {};\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n var hash = {};\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var item = a_1[_i];\n hash[item] = true;\n }\n return hash;\n}\nfunction hashValuesToArray(obj) {\n var a = [];\n for (var key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction parseEvents(rawEvents, sourceId, calendar, allowOpenRange) {\n var eventStore = createEmptyEventStore();\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) { eventStore = createEmptyEventStore(); }\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\nfunction expandRecurring(eventStore, framingRange, calendar) {\n var dateEnv = calendar.dateEnv;\n var defs = eventStore.defs, instances = eventStore.instances;\n // remove existing recurring instances\n instances = filterHash(instances, function (instance) {\n return !defs[instance.defId].recurringDef;\n });\n for (var defId in defs) {\n var def = defs[defId];\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n if (!duration) {\n duration = def.allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration;\n }\n var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes);\n for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n var start = starts_1[_i];\n var instance = createEventInstance(defId, {\n start: start,\n end: dateEnv.add(start, duration)\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs: defs, instances: instances };\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n if (instance) {\n var def_1 = eventStore.defs[instance.defId];\n // get events/instances with same group\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) {\n return isEventDefsGrouped(def_1, lookDef);\n });\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction transformRawEvents(rawEvents, eventSource, calendar) {\n var calEachTransform = calendar.opt('eventDataTransform');\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) {\n var rawEvent = rawEvents_2[_i];\n var refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: __assign({}, store0.defs, store1.defs),\n instances: __assign({}, store0.instances, store1.instances)\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n var defs = filterHash(eventStore.defs, filterFunc);\n var instances = filterHash(eventStore.instances, function (instance) {\n return defs[instance.defId]; // still exists?\n });\n return { defs: defs, instances: instances };\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start: start, end: end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n var invertedRanges = [];\n var start = constraintRange.start; // the end of the previous range. the start of the new range\n var i;\n var dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i++) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n var start = range0.start;\n var end = range0.end;\n var newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start: start, end: end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt++;\n }\n else {\n i++;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1) {\n var len = a0.length;\n var i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i++) {\n if (a0[i] !== a1[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoize(workerFunc) {\n var args;\n var res;\n return function () {\n if (!args || !isArraysEqual(args, arguments)) {\n args = arguments;\n res = workerFunc.apply(this, arguments);\n }\n return res;\n };\n}\n/*\nalways executes the workerFunc, but if the result is equal to the previous result,\nreturn the previous result instead.\n*/\nfunction memoizeOutput(workerFunc, equalityFunc) {\n var cachedRes = null;\n return function () {\n var newRes = workerFunc.apply(this, arguments);\n if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) {\n cachedRes = newRes;\n }\n return cachedRes;\n };\n}\n\nvar EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0\n};\nvar STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1\n};\nvar MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nvar COMMA_RE = /,/g; // we need re for globalness\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\nvar UTC_RE = /UTC|GMT/;\nvar NativeFormatter = /** @class */ (function () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n for (var name_1 in formatSettings) {\n if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name_1] = formatSettings[name_1];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n }\n else {\n standardDateProps[name_1] = formatSettings[name_1];\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) {\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n NativeFormatter.prototype.formatRange = function (start, end, context) {\n var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings;\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n var biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n var partial0 = partialFormattingFunc(start);\n var partial1 = partialFormattingFunc(end);\n var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n var separator = extendedSettings.separator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n };\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n default:\n return 'day';\n }\n };\n return NativeFormatter;\n}());\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) {\n return formatTimeZoneOffset(date.timeZoneOffset);\n };\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) {\n return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week);\n };\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n extendedSettings = __assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return function (date) {\n var marker = date.marker;\n var format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase();\n });\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase() + 'm';\n });\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) {\n return m0.toLocaleLowerCase();\n });\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ' ' + tzoStr;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekLabel, locale, display) {\n var parts = [];\n if (display === 'narrow') {\n parts.push(weekLabel);\n }\n else if (display === 'short') {\n parts.push(weekLabel, ' ');\n }\n // otherwise, considered 'numeric'\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.isRtl) { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n for (var name_2 in options) {\n if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n partialOptions[name_2] = options[name_2];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0\n };\n }\n }\n }\n return null;\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nvar CmdFormatter = /** @class */ (function () {\n function CmdFormatter(cmdStr, separator) {\n this.cmdStr = cmdStr;\n this.separator = separator;\n }\n CmdFormatter.prototype.format = function (date, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator));\n };\n CmdFormatter.prototype.formatRange = function (start, end, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator));\n };\n return CmdFormatter;\n}());\n\nvar FuncFormatter = /** @class */ (function () {\n function FuncFormatter(func) {\n this.func = func;\n }\n FuncFormatter.prototype.format = function (date, context) {\n return this.func(createVerboseFormattingArg(date, null, context));\n };\n FuncFormatter.prototype.formatRange = function (start, end, context) {\n return this.func(createVerboseFormattingArg(start, end, context));\n };\n return FuncFormatter;\n}());\n\n// Formatter Object Creation\nfunction createFormatter(input, defaultSeparator) {\n if (typeof input === 'object' && input) { // non-null object\n if (typeof defaultSeparator === 'string') {\n input = __assign({ separator: defaultSeparator }, input);\n }\n return new NativeFormatter(input);\n }\n else if (typeof input === 'string') {\n return new CmdFormatter(input, defaultSeparator);\n }\n else if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n}\n// String Utils\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) { stripZeroTime = false; }\n var s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) { doIso = false; }\n var sign = minutes < 0 ? '-' : '+';\n var abs = Math.abs(minutes);\n var hours = Math.floor(abs / 60);\n var mins = Math.round(abs % 60);\n if (doIso) {\n return sign + padStart(hours, 2) + ':' + padStart(mins, 2);\n }\n else {\n return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : '');\n }\n}\n// Arg Utils\nfunction createVerboseFormattingArg(start, end, context, separator) {\n var startInfo = expandZonedMarker(start, context.calendarSystem);\n var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n separator: separator\n };\n}\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n var a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6]\n };\n}\n\nvar EventSourceApi = /** @class */ (function () {\n function EventSourceApi(calendar, internalEventSource) {\n this.calendar = calendar;\n this.internalEventSource = internalEventSource;\n }\n EventSourceApi.prototype.remove = function () {\n this.calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId\n });\n };\n EventSourceApi.prototype.refetch = function () {\n this.calendar.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId]\n });\n };\n Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function () {\n return this.internalEventSource.publicId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n // only relevant to json-feed event sources\n get: function () {\n return this.internalEventSource.meta.url;\n },\n enumerable: true,\n configurable: true\n });\n return EventSourceApi;\n}());\n\nvar EventApi = /** @class */ (function () {\n function EventApi(calendar, def, instance) {\n this._calendar = calendar;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\n if (name in DATE_PROPS) ;\n else if (name in NON_DATE_PROPS) {\n if (typeof NON_DATE_PROPS[name] === 'function') {\n val = NON_DATE_PROPS[name](val);\n }\n this.mutate({\n standardProps: (_a = {}, _a[name] = val, _a)\n });\n }\n else if (name in UNSCOPED_EVENT_UI_PROPS) {\n var ui = void 0;\n if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') {\n val = UNSCOPED_EVENT_UI_PROPS[name](val);\n }\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n this.mutate({\n standardProps: { ui: ui }\n });\n }\n };\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a)\n });\n };\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n var instanceRange = this._instance.range;\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta: startDelta });\n }\n }\n };\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta: endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n };\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var standardProps = { allDay: options.allDay };\n var start = dateEnv.createMarker(startInput);\n var end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n var instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n else {\n this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n }\n };\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n };\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n };\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n };\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) { options = {}; }\n var standardProps = { allDay: allDay };\n var maintainDuration = options.maintainDuration;\n if (maintainDuration == null) {\n maintainDuration = this._calendar.opt('allDayMaintainDuration');\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps: standardProps });\n };\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._calendar.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator'));\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo\n });\n }\n else {\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo\n });\n }\n };\n EventApi.prototype.mutate = function (mutation) {\n var def = this._def;\n var instance = this._instance;\n if (instance) {\n this._calendar.dispatch({\n type: 'MUTATE_EVENTS',\n instanceId: instance.instanceId,\n mutation: mutation,\n fromApi: true\n });\n var eventStore = this._calendar.state.eventStore;\n this._def = eventStore.defs[def.defId];\n this._instance = eventStore.instances[instance.instanceId];\n }\n };\n EventApi.prototype.remove = function () {\n this._calendar.dispatch({\n type: 'REMOVE_EVENT_DEF',\n defId: this._def.defId\n });\n };\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function () {\n var sourceId = this._def.sourceId;\n if (sourceId) {\n return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]);\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function () {\n return this._instance ?\n this._calendar.dateEnv.toDate(this._instance.range.start) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function () {\n return (this._instance && this._def.hasEnd) ?\n this._calendar.dateEnv.toDate(this._instance.range.end) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"id\", {\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get: function () { return this._def.publicId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function () { return this._def.groupId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function () { return this._def.allDay; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function () { return this._def.title; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function () { return this._def.url; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"rendering\", {\n get: function () { return this._def.rendering; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function () { return this._def.ui.startEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function () { return this._def.ui.durationEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function () { return this._def.ui.constraints[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function () { return this._def.ui.overlap; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function () { return this._def.ui.allows[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function () { return this._def.ui.backgroundColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function () { return this._def.ui.borderColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function () { return this._def.ui.textColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"classNames\", {\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get: function () { return this._def.ui.classNames; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function () { return this._def.extendedProps; },\n enumerable: true,\n configurable: true\n });\n return EventApi;\n}());\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n var inverseBgByGroupId = {};\n var inverseBgByDefId = {};\n var defByGroupId = {};\n var bgRanges = [];\n var fgRanges = [];\n var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = eventStore.defs[instance.defId];\n var ui = eventUis[def.defId];\n var origRange = instance.range;\n var normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else {\n (def.rendering === 'background' ? bgRanges : fgRanges).push({\n def: def,\n ui: ui,\n instance: instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf()\n });\n }\n }\n }\n for (var groupId in inverseBgByGroupId) { // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n var invertedRange = invertedRanges_1[_i];\n var def = defByGroupId[groupId];\n var ui = eventUis[def.defId];\n bgRanges.push({\n def: def,\n ui: ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n var invertedRange = invertedRanges_2[_a];\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.rendering === 'background' || def.rendering === 'inverse-background';\n}\nfunction filterSegsViaEls(context, segs, isMirror) {\n var calendar = context.calendar, view = context.view;\n if (calendar.hasPublicHandlers('eventRender')) {\n segs = segs.filter(function (seg) {\n var custom = calendar.publiclyTrigger('eventRender', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirror,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n // TODO: include seg.range once all components consistently generate it\n el: seg.el,\n view: view\n }\n ]);\n if (custom === false) { // means don't render at all\n return false;\n }\n else if (custom && custom !== true) {\n seg.el = custom;\n }\n return true;\n });\n }\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n setElSeg(seg.el, seg);\n }\n return segs;\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg || null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) {\n return compileEventUi(eventDef, eventUiBases);\n });\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\n// triggers\nfunction triggerRenderedSegs(context, segs, isMirrors) {\n var calendar = context.calendar, view = context.view;\n if (calendar.hasPublicHandlers('eventPositioned')) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n calendar.publiclyTriggerAfterSizing('eventPositioned', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n el: seg.el,\n view: view\n }\n ]);\n }\n }\n if (!calendar.state.eventSourceLoadingLevel) { // avoid initial empty state while pending\n calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once\n }\n}\nfunction triggerWillRemoveSegs(context, segs, isMirrors) {\n var calendar = context.calendar, view = context.view;\n for (var _i = 0, segs_3 = segs; _i < segs_3.length; _i++) {\n var seg = segs_3[_i];\n calendar.trigger('eventElRemove', seg.el);\n }\n if (calendar.hasPublicHandlers('eventDestroy')) {\n for (var _a = 0, segs_4 = segs; _a < segs_4.length; _a++) {\n var seg = segs_4[_a];\n calendar.publiclyTrigger('eventDestroy', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n el: seg.el,\n view: view\n }\n ]);\n }\n }\n}\n// is-interactable\nfunction computeEventDraggable(context, eventDef, eventUi) {\n var calendar = context.calendar, view = context.view;\n var transformers = calendar.pluginSystem.hooks.isDraggableTransformers;\n var val = eventUi.startEditable;\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n val = transformer(val, eventDef, eventUi, view);\n }\n return val;\n}\nfunction computeEventStartResizable(context, eventDef, eventUi) {\n return eventUi.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeEventEndResizable(context, eventDef, eventUi) {\n return eventUi.durationEditable;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar);\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) {\n var standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps);\n }\n for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) {\n var applier = appliers_1[_i];\n applier(copy, mutation, calendar);\n }\n if (!copy.hasEnd && calendar.opt('forceEventDuration')) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, calendar) {\n var dateEnv = calendar.dateEnv;\n var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n var copy = __assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta)\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta)\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start)\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end)\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start);\n }\n return copy;\n}\n\nfunction reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, calendar);\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, calendar);\n }\n else {\n return eventStore;\n }\n case 'CHANGE_TIMEZONE':\n return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv);\n case 'MUTATE_EVENTS':\n return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar);\n case 'REMOVE_EVENT_INSTANCES':\n return excludeInstances(eventStore, action.instances);\n case 'REMOVE_EVENT_DEF':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.defId !== action.defId;\n });\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return !eventDef.sourceId; // only keep events with no source id\n });\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n case 'RESET_EVENTS':\n return {\n defs: eventStore.defs,\n instances: eventStore.instances\n };\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, calendar);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction addEvent(eventStore, subset, expandRange, calendar) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, calendar);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneDates(eventStore, oldDateEnv, newDateEnv) {\n var defs = eventStore.defs;\n var instances = mapHash(eventStore.instances, function (instance) {\n var def = defs[instance.defId];\n if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n else {\n return __assign({}, instance, { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n }\n });\n return { defs: defs, instances: instances };\n}\nfunction applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) {\n var relevant = getRelevantEvents(eventStore, instanceId);\n var eventConfigBase = fromApi ?\n { '': {\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n } } :\n calendar.eventUiBases;\n relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar);\n return mergeEventStores(eventStore, relevant);\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.sourceId !== sourceId;\n });\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, function (instance) {\n return !removals[instance.instanceId];\n })\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, calendar) {\n return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, calendar) {\n return isNewPropsValid({ dateSelection: dateSelection }, calendar);\n}\nfunction isNewPropsValid(newProps, calendar) {\n var view = calendar.view;\n var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar);\n}\nfunction isPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) { dateSpanMeta = {}; }\n if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': calendar.selectionConfig } // if not a real event, validate as a selection\n );\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too?\n var otherDefs = otherEventStore.defs;\n var otherInstances = otherEventStore.instances;\n var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (var subjectInstanceId in subjectInstances) {\n var subjectInstance = subjectInstances[subjectInstanceId];\n var subjectRange = subjectInstance.range;\n var subjectConfig = subjectConfigs[subjectInstance.defId];\n var subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('eventOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(calendar, subjectDef, subjectInstance) // moving event\n )) {\n return false;\n }\n }\n }\n // allow (a function)\n var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay });\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n if (origDef) { // was previously in the calendar\n eventApi = new EventApi(calendar, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var relevantEventStore = state.eventStore;\n var relevantDefs = relevantEventStore.defs;\n var relevantInstances = relevantEventStore.instances;\n var selection = state.dateSelection;\n var selectionRange = selection.range;\n var selectionConfig = calendar.selectionConfig;\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('selectOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n var fullDateSpan = __assign({}, dateSpanMeta, selection);\n if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) {\n for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n var constraint = constraints_1[_i];\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncalendar // for expanding businesshours\n) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar));\n }\n else if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) {\n return eventDef.groupId === constraint;\n }));\n }\n else if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n// Parsing\n// ------------------------------------------------------------------------------------------------------------------------\nfunction normalizeConstraint(input, calendar) {\n if (Array.isArray(input)) {\n return parseEvents(input, '', calendar, true); // allowOpenRange=true\n }\n else if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], '', calendar, true); // allowOpenRange=true\n }\n else if (input != null) {\n return String(input);\n }\n else {\n return null;\n }\n}\n\nfunction htmlEscape(s) {\n return (s + '').replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/'/g, ''')\n .replace(/\"/g, '"')\n .replace(/\\n/g, '
');\n}\n// Given a hash of CSS properties, returns a string of CSS.\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\nfunction cssToStr(cssProps) {\n var statements = [];\n for (var name_1 in cssProps) {\n var val = cssProps[name_1];\n if (val != null && val !== '') {\n statements.push(name_1 + ':' + val);\n }\n }\n return statements.join(';');\n}\n// Given an object hash of HTML attribute names to values,\n// generates a string that can be injected between < > in HTML\nfunction attrsToStr(attrs) {\n var parts = [];\n for (var name_2 in attrs) {\n var val = attrs[name_2];\n if (val != null) {\n parts.push(name_2 + '=\"' + htmlEscape(val) + '\"');\n }\n }\n return parts.join(' ');\n}\nfunction parseClassName(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n else if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n else {\n return [];\n }\n}\n\nvar UNSCOPED_EVENT_UI_PROPS = {\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: null,\n overlap: null,\n allow: null,\n className: parseClassName,\n classNames: parseClassName,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String\n};\nfunction processUnscopedUiProps(rawProps, calendar, leftovers) {\n var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers);\n var constraint = normalizeConstraint(props.constraint, calendar);\n return {\n startEditable: props.startEditable != null ? props.startEditable : props.editable,\n durationEditable: props.durationEditable != null ? props.durationEditable : props.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: props.overlap,\n allows: props.allow != null ? [props.allow] : [],\n backgroundColor: props.backgroundColor || props.color,\n borderColor: props.borderColor || props.color,\n textColor: props.textColor,\n classNames: props.classNames.concat(props.className)\n };\n}\nfunction processScopedUiProps(prefix, rawScoped, calendar, leftovers) {\n var rawUnscoped = {};\n var wasFound = {};\n for (var key in UNSCOPED_EVENT_UI_PROPS) {\n var scopedKey = prefix + capitaliseFirstLetter(key);\n rawUnscoped[key] = rawScoped[scopedKey];\n wasFound[scopedKey] = true;\n }\n if (prefix === 'event') {\n rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable'\n }\n if (leftovers) {\n for (var key in rawScoped) {\n if (!wasFound[key]) {\n leftovers[key] = rawScoped[key];\n }\n }\n }\n return processUnscopedUiProps(rawUnscoped, calendar);\n}\nvar EMPTY_EVENT_UI = {\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n};\n// prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames)\n };\n}\n\nvar NON_DATE_PROPS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n rendering: String,\n extendedProps: null\n};\nvar DATE_PROPS = {\n start: null,\n date: null,\n end: null,\n allDay: null\n};\nvar uid = 0;\nfunction parseEvent(raw, sourceId, calendar, allowOpenRange) {\n var allDayDefault = computeIsAllDayDefault(sourceId, calendar);\n var leftovers0 = {};\n var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out\n allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props\n );\n if (recurringRes) {\n var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration\n };\n return { def: def, instance: null };\n }\n else {\n var leftovers1 = {};\n var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange);\n if (singleRes) {\n var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar);\n var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n return { def: def, instance: instance };\n }\n }\n return null;\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\nThe EventNonDateInput has been normalized (id => publicId, etc).\n*/\nfunction parseEventDef(raw, sourceId, allDay, hasEnd, calendar) {\n var leftovers = {};\n var def = pluckNonDateProps(raw, calendar, leftovers);\n def.defId = String(uid++);\n def.sourceId = sourceId;\n def.allDay = allDay;\n def.hasEnd = hasEnd;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) {\n var eventDefParser = _a[_i];\n var newLeftovers = {};\n eventDefParser(def, leftovers, newLeftovers);\n leftovers = newLeftovers;\n }\n def.extendedProps = __assign(leftovers, def.extendedProps || {});\n // help out EventApi from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: String(uid++),\n defId: defId,\n range: range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n };\n}\nfunction parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) {\n var props = pluckDateProps(raw, leftovers);\n var allDay = props.allDay;\n var startMeta;\n var startMarker = null;\n var hasEnd = false;\n var endMeta;\n var endMarker = null;\n startMeta = calendar.dateEnv.createMarkerMeta(props.start);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (props.end != null) {\n endMeta = calendar.dateEnv.createMarkerMeta(props.end);\n }\n if (allDay == null) {\n if (allDayDefault != null) {\n allDay = allDayDefault;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = calendar.opt('forceEventDuration') || false;\n endMarker = calendar.dateEnv.add(startMarker, allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration);\n }\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n };\n}\nfunction pluckDateProps(raw, leftovers) {\n var props = refineProps(raw, DATE_PROPS, {}, leftovers);\n props.start = (props.start !== null) ? props.start : props.date;\n delete props.date;\n return props;\n}\nfunction pluckNonDateProps(raw, calendar, leftovers) {\n var preLeftovers = {};\n var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers);\n var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers);\n props.publicId = props.id;\n delete props.id;\n props.ui = ui;\n return props;\n}\nfunction computeIsAllDayDefault(sourceId, calendar) {\n var res = null;\n if (sourceId) {\n var source = calendar.state.eventSources[sourceId];\n res = source.allDayDefault;\n }\n if (res == null) {\n res = calendar.opt('allDayDefault');\n }\n return res;\n}\n\nvar DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n rendering: 'inverse-background',\n classNames: 'fc-nonbusiness',\n groupId: '_businessHours' // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, calendar) {\n return parseEvents(refineInputs(input), '', calendar);\n}\nfunction refineInputs(input) {\n var rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter(function (rawDef) {\n return rawDef.daysOfWeek;\n });\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map(function (rawDef) {\n return __assign({}, DEF_DEFAULTS, rawDef);\n });\n return rawDefs;\n}\n\nfunction memoizeRendering(renderFunc, unrenderFunc, dependencies) {\n if (dependencies === void 0) { dependencies = []; }\n var dependents = [];\n var thisContext;\n var prevArgs;\n function unrender() {\n if (prevArgs) {\n for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) {\n var dependent = dependents_1[_i];\n dependent.unrender();\n }\n if (unrenderFunc) {\n unrenderFunc.apply(thisContext, prevArgs);\n }\n prevArgs = null;\n }\n }\n function res() {\n if (!prevArgs || !isArraysEqual(prevArgs, arguments)) {\n unrender();\n thisContext = this;\n prevArgs = arguments;\n renderFunc.apply(this, arguments);\n }\n }\n res.dependents = dependents;\n res.unrender = unrender;\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\n var dependency = dependencies_1[_i];\n dependency.dependents.push(res);\n }\n return res;\n}\n\nvar EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nvar Splitter = /** @class */ (function () {\n function Splitter() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n var keyInfos = this.getKeyInfo(props);\n var defKeys = this.getKeysForEventDefs(props.eventStore);\n var dateSelections = this.splitDateSelection(props.dateSelection);\n var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n var eventStores = this.splitEventStore(props.eventStore, defKeys);\n var eventDrags = this.splitEventDrag(props.eventDrag);\n var eventResizes = this.splitEventResize(props.eventResize);\n var splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, function (info, key) {\n return _this.eventUiBuilders[key] || memoize(buildEventUiForKey);\n });\n for (var key in keyInfos) {\n var keyInfo = keyInfos[key];\n var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n var buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore: eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null\n };\n }\n return splitProps;\n };\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n };\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n return mapHash(eventStore.defs, function (eventDef) {\n return _this.getKeysForEventDef(eventDef);\n });\n };\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs, instances = eventStore.instances;\n var splitStores = {};\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n };\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n for (var defId in eventUiBases) {\n if (defId) { // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n };\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar\n );\n // can't rely on defKeys because event data is mutated\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n var populate = function (key) {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n origSeg: interaction.origSeg\n };\n }\n };\n for (var key in affectedStores_1) {\n populate(key);\n }\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n return splitStates;\n };\n return Splitter;\n}());\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n var stuff = {\n '': combineEventUis(baseParts)\n };\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n return stuff;\n}\n\n// Generates HTML for an anchor to another view into the calendar.\n// Will either generate an tag or a non-clickable tag, depending on enabled settings.\n// `gotoOptions` can either be a DateMarker, or an object with the form:\n// { date, type, forceOff }\n// `type` is a view-type like \"day\" or \"week\". default value is \"day\".\n// `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\nfunction buildGotoAnchorHtml(allOptions, dateEnv, gotoOptions, attrs, innerHtml) {\n var date;\n var type;\n var forceOff;\n var finalOptions;\n if (gotoOptions instanceof Date) {\n date = gotoOptions; // a single date-like input\n }\n else {\n date = gotoOptions.date;\n type = gotoOptions.type;\n forceOff = gotoOptions.forceOff;\n }\n finalOptions = {\n date: dateEnv.formatIso(date, { omitTime: true }),\n type: type || 'day'\n };\n if (typeof attrs === 'string') {\n innerHtml = attrs;\n attrs = null;\n }\n attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space\n innerHtml = innerHtml || '';\n if (!forceOff && allOptions.navLinks) {\n return '' +\n innerHtml +\n '';\n }\n else {\n return '' +\n innerHtml +\n '';\n }\n}\nfunction getAllDayHtml(allOptions) {\n return allOptions.allDayHtml || htmlEscape(allOptions.allDayText);\n}\n// Computes HTML classNames for a single-day element\nfunction getDayClasses(date, dateProfile, context, noThemeHighlight) {\n var calendar = context.calendar, options = context.options, theme = context.theme, dateEnv = context.dateEnv;\n var classes = [];\n var todayStart;\n var todayEnd;\n if (!rangeContainsMarker(dateProfile.activeRange, date)) {\n classes.push('fc-disabled-day');\n }\n else {\n classes.push('fc-' + DAY_IDS[date.getUTCDay()]);\n if (options.monthMode &&\n dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) {\n classes.push('fc-other-month');\n }\n todayStart = startOfDay(calendar.getNow());\n todayEnd = addDays(todayStart, 1);\n if (date < todayStart) {\n classes.push('fc-past');\n }\n else if (date >= todayEnd) {\n classes.push('fc-future');\n }\n else {\n classes.push('fc-today');\n if (noThemeHighlight !== true) {\n classes.push(theme.getClass('today'));\n }\n }\n }\n return classes;\n}\n\n// given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\nfunction unpromisify(func, success, failure) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n var isResolved = false;\n var wrappedSuccess = function () {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments);\n }\n };\n var wrappedFailure = function () {\n if (!isResolved) {\n isResolved = true;\n if (failure) {\n failure.apply(this, arguments);\n }\n }\n };\n var res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Mixin = /** @class */ (function () {\n function Mixin() {\n }\n // mix into a CLASS\n Mixin.mixInto = function (destClass) {\n this.mixIntoObj(destClass.prototype);\n };\n // mix into ANY object\n Mixin.mixIntoObj = function (destObj) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n if (!destObj[name]) { // if destination doesn't already define it\n destObj[name] = _this.prototype[name];\n }\n });\n };\n /*\n will override existing methods\n TODO: remove! not used anymore\n */\n Mixin.mixOver = function (destClass) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n destClass.prototype[name] = _this.prototype[name];\n });\n };\n return Mixin;\n}());\n\n/*\nUSAGE:\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\nin class:\n on: EmitterInterface['on']\n one: EmitterInterface['one']\n off: EmitterInterface['off']\n trigger: EmitterInterface['trigger']\n triggerWith: EmitterInterface['triggerWith']\n hasHandlers: EmitterInterface['hasHandlers']\nafter class:\n EmitterMixin.mixInto(TheClass)\n*/\nvar EmitterMixin = /** @class */ (function (_super) {\n __extends(EmitterMixin, _super);\n function EmitterMixin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmitterMixin.prototype.on = function (type, handler) {\n addToHash(this._handlers || (this._handlers = {}), type, handler);\n return this; // for chaining\n };\n // todo: add comments\n EmitterMixin.prototype.one = function (type, handler) {\n addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler);\n return this; // for chaining\n };\n EmitterMixin.prototype.off = function (type, handler) {\n if (this._handlers) {\n removeFromHash(this._handlers, type, handler);\n }\n if (this._oneHandlers) {\n removeFromHash(this._oneHandlers, type, handler);\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.trigger = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n this.triggerWith(type, this, args);\n return this; // for chaining\n };\n EmitterMixin.prototype.triggerWith = function (type, context, args) {\n if (this._handlers) {\n applyAll(this._handlers[type], context, args);\n }\n if (this._oneHandlers) {\n applyAll(this._oneHandlers[type], context, args);\n delete this._oneHandlers[type]; // will never fire again\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.hasHandlers = function (type) {\n return (this._handlers && this._handlers[type] && this._handlers[type].length) ||\n (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length);\n };\n return EmitterMixin;\n}(Mixin));\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter(function (func) {\n return func !== handler;\n });\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nvar PositionCache = /** @class */ (function () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.originEl = originEl;\n this.els = els;\n this.isHorizontal = isHorizontal;\n this.isVertical = isVertical;\n }\n // Queries the els for coordinates and stores them.\n // Call this method before using and of the get* methods below.\n PositionCache.prototype.build = function () {\n var originEl = this.originEl;\n var originClientRect = this.originClientRect =\n originEl.getBoundingClientRect(); // relative to viewport top-left\n if (this.isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (this.isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n };\n // Populates the left/right internal coordinate arrays\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n };\n // Populates the top/bottom internal coordinate arrays\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n };\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var lefts = this.lefts;\n var rights = this.rights;\n var len = lefts.length;\n var i;\n for (i = 0; i < len; i++) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n };\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.topToIndex = function (topPosition) {\n var tops = this.tops;\n var bottoms = this.bottoms;\n var len = tops.length;\n var i;\n for (i = 0; i < len; i++) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n };\n // Gets the width of the element at the given index\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n };\n // Gets the height of the element at the given index\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n return PositionCache;\n}());\n\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nvar ScrollController = /** @class */ (function () {\n function ScrollController() {\n }\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n return ScrollController;\n}());\nvar ElementScrollController = /** @class */ (function (_super) {\n __extends(ElementScrollController, _super);\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n return ElementScrollController;\n}(ScrollController));\nvar WindowScrollController = /** @class */ (function (_super) {\n __extends(WindowScrollController, _super);\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n return WindowScrollController;\n}(ScrollController));\n\n/*\nEmbodies a div that has potential scrollbars\n*/\nvar ScrollComponent = /** @class */ (function (_super) {\n __extends(ScrollComponent, _super);\n function ScrollComponent(overflowX, overflowY) {\n var _this = _super.call(this, createElement('div', {\n className: 'fc-scroller'\n })) || this;\n _this.overflowX = overflowX;\n _this.overflowY = overflowY;\n _this.applyOverflow();\n return _this;\n }\n // sets to natural height, unlocks overflow\n ScrollComponent.prototype.clear = function () {\n this.setHeight('auto');\n this.applyOverflow();\n };\n ScrollComponent.prototype.destroy = function () {\n removeElement(this.el);\n };\n // Overflow\n // -----------------------------------------------------------------------------------------------------------------\n ScrollComponent.prototype.applyOverflow = function () {\n applyStyle(this.el, {\n overflowX: this.overflowX,\n overflowY: this.overflowY\n });\n };\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\n // Useful for preserving scrollbar widths regardless of future resizes.\n // Can pass in scrollbarWidths for optimization.\n ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) {\n var overflowX = this.overflowX;\n var overflowY = this.overflowY;\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\n if (overflowX === 'auto') {\n overflowX = (scrollbarWidths.bottom || // horizontal scrollbars?\n this.canScrollHorizontally() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n if (overflowY === 'auto') {\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars?\n this.canScrollVertically() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY });\n };\n ScrollComponent.prototype.setHeight = function (height) {\n applyStyleProp(this.el, 'height', height);\n };\n ScrollComponent.prototype.getScrollbarWidths = function () {\n var edges = computeEdges(this.el);\n return {\n left: edges.scrollbarLeft,\n right: edges.scrollbarRight,\n bottom: edges.scrollbarBottom\n };\n };\n return ScrollComponent;\n}(ElementScrollController));\n\nvar Theme = /** @class */ (function () {\n function Theme(calendarOptions) {\n this.calendarOptions = calendarOptions;\n this.processIconOverride();\n }\n Theme.prototype.processIconOverride = function () {\n if (this.iconOverrideOption) {\n this.setIconOverride(this.calendarOptions[this.iconOverrideOption]);\n }\n };\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n };\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n Theme.prototype.getIconClass = function (buttonName) {\n var className = this.iconClasses[buttonName];\n if (className) {\n return this.baseIconClass + ' ' + className;\n }\n return '';\n };\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\n }\n }\n return '';\n };\n return Theme;\n}());\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar guid = 0;\nvar ComponentContext = /** @class */ (function () {\n function ComponentContext(calendar, theme, dateEnv, options, view) {\n this.calendar = calendar;\n this.theme = theme;\n this.dateEnv = dateEnv;\n this.options = options;\n this.view = view;\n this.isRtl = options.dir === 'rtl';\n this.eventOrderSpecs = parseFieldSpecs(options.eventOrder);\n this.nextDayThreshold = createDuration(options.nextDayThreshold);\n }\n ComponentContext.prototype.extend = function (options, view) {\n return new ComponentContext(this.calendar, this.theme, this.dateEnv, options || this.options, view || this.view);\n };\n return ComponentContext;\n}());\nvar Component = /** @class */ (function () {\n function Component() {\n this.everRendered = false;\n this.uid = String(guid++);\n }\n Component.addEqualityFuncs = function (newFuncs) {\n this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);\n };\n Component.prototype.receiveProps = function (props, context) {\n this.receiveContext(context);\n var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;\n this.props = comboProps;\n if (anyChanges) {\n if (this.everRendered) {\n this.beforeUpdate();\n }\n this.render(comboProps, context);\n if (this.everRendered) {\n this.afterUpdate();\n }\n }\n this.everRendered = true;\n };\n Component.prototype.receiveContext = function (context) {\n var oldContext = this.context;\n this.context = context;\n if (!oldContext) {\n this.firstContext(context);\n }\n };\n Component.prototype.render = function (props, context) {\n };\n Component.prototype.firstContext = function (context) {\n };\n Component.prototype.beforeUpdate = function () {\n };\n Component.prototype.afterUpdate = function () {\n };\n // after destroy is called, this component won't ever be used again\n Component.prototype.destroy = function () {\n };\n return Component;\n}());\nComponent.prototype.equalityFuncs = {};\n/*\nReuses old values when equal. If anything is unequal, returns newProps as-is.\nGreat for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing.\n*/\nfunction recycleProps(oldProps, newProps, equalityFuncs) {\n var comboProps = {}; // some old, some new\n var anyChanges = false;\n for (var key in newProps) {\n if (key in oldProps && (oldProps[key] === newProps[key] ||\n (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) {\n // equal to old? use old prop\n comboProps[key] = oldProps[key];\n }\n else {\n comboProps[key] = newProps[key];\n anyChanges = true;\n }\n }\n for (var key in oldProps) {\n if (!(key in newProps)) {\n anyChanges = true;\n break;\n }\n }\n return { anyChanges: anyChanges, comboProps: comboProps };\n}\n\n/*\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nvar DateComponent = /** @class */ (function (_super) {\n __extends(DateComponent, _super);\n function DateComponent(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n DateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n removeElement(this.el);\n };\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.buildPositionCaches = function () {\n };\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n };\n // Validation\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isInteractionValid = function (interaction) {\n var calendar = this.context.calendar;\n var dateProfile = this.props.dateProfile; // HACK\n var instances = interaction.mutatedEvents.instances;\n if (dateProfile) { // HACK for DayTile\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n }\n return isInteractionValid(interaction, calendar);\n };\n DateComponent.prototype.isDateSelectionValid = function (selection) {\n var calendar = this.context.calendar;\n var dateProfile = this.props.dateProfile; // HACK\n if (dateProfile && // HACK for DayTile\n !rangeContainsRange(dateProfile.validRange, selection.range)) {\n return false;\n }\n return isDateSelectionValid(selection, calendar);\n };\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-mirror') &&\n (this.isPopover() || !this.isInPopover(el));\n // ^above line ensures we don't detect a seg interaction within a nested component.\n // it's a HACK because it only supports a popover as the nested component.\n };\n DateComponent.prototype.isValidDateDownEl = function (el) {\n var segEl = elementClosest(el, this.fgSegSelector);\n return (!segEl || segEl.classList.contains('fc-mirror')) &&\n !elementClosest(el, '.fc-more') && // a \"more..\" link\n !elementClosest(el, 'a[data-goto]') && // a clickable nav link\n !this.isInPopover(el);\n };\n DateComponent.prototype.isPopover = function () {\n return this.el.classList.contains('fc-popover');\n };\n DateComponent.prototype.isInPopover = function (el) {\n return Boolean(elementClosest(el, '.fc-popover'));\n };\n return DateComponent;\n}(Component));\nDateComponent.prototype.fgSegSelector = '.fc-event-container > *';\nDateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)';\n\nvar uid$1 = 0;\nfunction createPlugin(input) {\n return {\n id: String(uid$1++),\n deps: input.deps || [],\n reducers: input.reducers || [],\n eventDefParsers: input.eventDefParsers || [],\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],\n viewContainerModifiers: input.viewContainerModifiers || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n defaultView: input.defaultView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {}\n };\n}\nvar PluginSystem = /** @class */ (function () {\n function PluginSystem() {\n this.hooks = {\n reducers: [],\n eventDefParsers: [],\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n eventResizeJoinTransforms: [],\n viewContainerModifiers: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n defaultView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {}\n };\n this.addedHash = {};\n }\n PluginSystem.prototype.add = function (plugin) {\n if (!this.addedHash[plugin.id]) {\n this.addedHash[plugin.id] = true;\n for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) {\n var dep = _a[_i];\n this.add(dep);\n }\n this.hooks = combineHooks(this.hooks, plugin);\n }\n };\n return PluginSystem;\n}());\nfunction combineHooks(hooks0, hooks1) {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: __assign({}, hooks0.views, hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),\n viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n defaultView: hooks0.defaultView || hooks1.defaultView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers)\n };\n}\n\nvar eventSourceDef = {\n ignoreRange: true,\n parseMeta: function (raw) {\n if (Array.isArray(raw)) { // short form\n return raw;\n }\n else if (Array.isArray(raw.events)) {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success) {\n success({\n rawEvents: arg.eventSource.meta\n });\n }\n};\nvar ArrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef]\n});\n\nvar eventSourceDef$1 = {\n parseMeta: function (raw) {\n if (typeof raw === 'function') { // short form\n return raw;\n }\n else if (typeof raw.events === 'function') {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success, failure) {\n var dateEnv = arg.calendar.dateEnv;\n var func = arg.eventSource.meta;\n unpromisify(func.bind(null, {\n start: dateEnv.toDate(arg.range.start),\n end: dateEnv.toDate(arg.range.end),\n startStr: dateEnv.formatIso(arg.range.start),\n endStr: dateEnv.formatIso(arg.range.end),\n timeZone: dateEnv.timeZone\n }), function (rawEvents) {\n success({ rawEvents: rawEvents }); // needs an object response\n }, failure // send errorObj directly to failure callback\n );\n }\n};\nvar FuncEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$1]\n});\n\nfunction requestJson(method, url, params, successCallback, failureCallback) {\n method = method.toUpperCase();\n var body = null;\n if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n }\n else {\n body = encodeParams(params);\n }\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n try {\n var res = JSON.parse(xhr.responseText);\n successCallback(res, xhr);\n }\n catch (err) {\n failureCallback('Failure parsing JSON', xhr);\n }\n }\n else {\n failureCallback('Request failed', xhr);\n }\n };\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n xhr.send(body);\n}\nfunction injectQueryStringParams(url, params) {\n return url +\n (url.indexOf('?') === -1 ? '?' : '&') +\n encodeParams(params);\n}\nfunction encodeParams(params) {\n var parts = [];\n for (var key in params) {\n parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n }\n return parts.join('&');\n}\n\nvar eventSourceDef$2 = {\n parseMeta: function (raw) {\n if (typeof raw === 'string') { // short form\n raw = { url: raw };\n }\n else if (!raw || typeof raw !== 'object' || !raw.url) {\n return null;\n }\n return {\n url: raw.url,\n method: (raw.method || 'GET').toUpperCase(),\n extraParams: raw.extraParams,\n startParam: raw.startParam,\n endParam: raw.endParam,\n timeZoneParam: raw.timeZoneParam\n };\n },\n fetch: function (arg, success, failure) {\n var meta = arg.eventSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.calendar);\n requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n success({ rawEvents: rawEvents, xhr: xhr });\n }, function (errorMessage, xhr) {\n failure({ message: errorMessage, xhr: xhr });\n });\n }\n};\nvar JsonFeedEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2]\n});\nfunction buildRequestParams(meta, range, calendar) {\n var dateEnv = calendar.dateEnv;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = calendar.opt('startParam');\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = calendar.opt('endParam');\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = calendar.opt('timeZoneParam');\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n __assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nvar recurring = {\n parse: function (rawEvent, leftoverProps, dateEnv) {\n var createMarker = dateEnv.createMarker.bind(dateEnv);\n var processors = {\n daysOfWeek: null,\n startTime: createDuration,\n endTime: createDuration,\n startRecur: createMarker,\n endRecur: createMarker\n };\n var props = refineProps(rawEvent, processors, {}, leftoverProps);\n var anyValid = false;\n for (var propName in props) {\n if (props[propName] != null) {\n anyValid = true;\n break;\n }\n }\n if (anyValid) {\n var duration = null;\n if ('duration' in leftoverProps) {\n duration = createDuration(leftoverProps.duration);\n delete leftoverProps.duration;\n }\n if (!duration && props.startTime && props.endTime) {\n duration = subtractDurations(props.endTime, props.startTime);\n }\n return {\n allDayGuess: Boolean(!props.startTime && !props.endTime),\n duration: duration,\n typeData: props // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand: function (typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n else {\n return [];\n }\n }\n};\nvar SimpleRecurrencePlugin = createPlugin({\n recurringTypes: [recurring]\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n var dayMarker = startOfDay(framingRange.start);\n var endMarker = framingRange.end;\n var instanceStarts = [];\n while (dayMarker < endMarker) {\n var instanceStart \n // if everyday, or this particular day-of-week\n = void 0;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nvar DefaultOptionChangeHandlers = createPlugin({\n optionChangeHandlers: {\n events: function (events, calendar, deepEqual) {\n handleEventSources([events], calendar, deepEqual);\n },\n eventSources: handleEventSources,\n plugins: handlePlugins\n }\n});\nfunction handleEventSources(inputs, calendar, deepEqual) {\n var unfoundSources = hashValuesToArray(calendar.state.eventSources);\n var newInputs = [];\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n for (var i = 0; i < unfoundSources.length; i++) {\n if (deepEqual(unfoundSources[i]._raw, input)) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId\n });\n }\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n calendar.addEventSource(newInput);\n }\n}\n// shortcoming: won't remove plugins\nfunction handlePlugins(inputs, calendar) {\n calendar.addPluginInputs(inputs); // will gracefully handle duplicates\n}\n\nvar config = {}; // TODO: make these options\nvar globalDefaults = {\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n // display\n columnHeader: true,\n defaultView: '',\n aspectRatio: 1.35,\n header: {\n left: 'title',\n center: '',\n right: 'today prev,next'\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n // nowIndicator: false,\n scrollTime: '06:00:00',\n minTime: '00:00:00',\n maxTime: '24:00:00',\n showNonCurrentDates: true,\n // event ajax\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n // allDayDefault: undefined,\n // locale\n locales: [],\n locale: '',\n // dir: will get this from the default locale\n // buttonIcons: null,\n // allows setting a min-height to the event segment to prevent short events overlapping each other\n timeGridEventMinHeight: 0,\n themeSystem: 'standard',\n // eventResizableFromStart: false,\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n // selectable: false,\n unselectAuto: true,\n // selectMinDistance: 0,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n // ^ if start tie, longer events go before shorter. final tie-breaker is title text\n // rerenderDelay: null,\n eventLimit: false,\n eventLimitClick: 'popover',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5 // only applies to mouse\n};\nvar rtlDefaults = {\n header: {\n left: 'next,prev today',\n center: '',\n right: 'title'\n },\n buttonIcons: {\n // TODO: make RTL support the responibility of the theme\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left'\n }\n};\nvar complexOptions = [\n 'header',\n 'footer',\n 'buttonText',\n 'buttonIcons'\n];\n// Merges an array of option objects into a single object\nfunction mergeOptions(optionObjs) {\n return mergeProps(optionObjs, complexOptions);\n}\n// TODO: move this stuff to a \"plugin\"-related file...\nvar INTERNAL_PLUGINS = [\n ArrayEventSourcePlugin,\n FuncEventSourcePlugin,\n JsonFeedEventSourcePlugin,\n SimpleRecurrencePlugin,\n DefaultOptionChangeHandlers\n];\nfunction refinePluginDefs(pluginInputs) {\n var plugins = [];\n for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) {\n var pluginInput = pluginInputs_1[_i];\n if (typeof pluginInput === 'string') {\n var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput);\n if (!window[globalName]) {\n console.warn('Plugin file not loaded for ' + pluginInput);\n }\n else {\n plugins.push(window[globalName].default); // is an ES6 module\n }\n }\n else {\n plugins.push(pluginInput);\n }\n }\n return INTERNAL_PLUGINS.concat(plugins);\n}\n\nvar RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4 // 4 days need to be within the year to be considered the first week\n },\n dir: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list'\n },\n weekLabel: 'W',\n allDayText: 'all-day',\n eventLimitText: 'more',\n noEventsMessage: 'No events to display'\n};\nfunction parseRawLocales(explicitRawLocales) {\n var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js\n var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless\n var allRawLocales = globalArray.concat(// globalArray is low prio\n hashValuesToArray(globalObject), // medium prio\n explicitRawLocales // highest prio\n );\n var rawLocaleMap = {\n en: RAW_EN_LOCALE // necessary?\n };\n for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n var rawLocale = allRawLocales_1[_i];\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n else {\n return queryLocale(inputSingular, available);\n }\n}\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i++) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n for (var j = parts.length; j > 0; j--) {\n var simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n var week = merged.week;\n delete merged.week;\n return {\n codeArg: codeArg,\n codes: codes,\n week: week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged\n };\n}\n\nvar OptionsManager = /** @class */ (function () {\n function OptionsManager(overrides) {\n this.overrides = __assign({}, overrides); // make a copy\n this.dynamicOverrides = {};\n this.compute();\n }\n OptionsManager.prototype.mutate = function (updates, removals, isDynamic) {\n if (!Object.keys(updates).length && !removals.length) {\n return;\n }\n var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides;\n __assign(overrideHash, updates);\n for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) {\n var propName = removals_1[_i];\n delete overrideHash[propName];\n }\n this.compute();\n };\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\n OptionsManager.prototype.compute = function () {\n // TODO: not a very efficient system\n var locales = firstDefined(// explicit locale option given?\n this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales);\n var locale = firstDefined(// explicit locales option given?\n this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale);\n var available = parseRawLocales(locales);\n var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options;\n var dir = firstDefined(// based on options computed so far, is direction RTL?\n this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir);\n var dirDefaults = dir === 'rtl' ? rtlDefaults : {};\n this.dirDefaults = dirDefaults;\n this.localeDefaults = localeDefaults;\n this.computed = mergeOptions([\n globalDefaults,\n dirDefaults,\n localeDefaults,\n this.overrides,\n this.dynamicOverrides\n ]);\n };\n return OptionsManager;\n}());\n\nvar calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nvar GregorianCalendarSystem = /** @class */ (function () {\n function GregorianCalendarSystem() {\n }\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n return GregorianCalendarSystem;\n}());\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nvar ISO_RE = /^\\s*(\\d{4})(-(\\d{2})(-(\\d{2})([T ](\\d{2}):(\\d{2})(:(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n if (m) {\n var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0));\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset\n };\n }\n }\n return null;\n}\n\nvar DateEnv = /** @class */ (function () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel;\n this.cmdFormatter = settings.cmdFormatter;\n }\n // Creating / Parsing\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n };\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n else {\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n };\n DateEnv.prototype.createMarkerMeta = function (input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n var marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker: marker, isTimeUnspecified: false, forcedTzo: null };\n };\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n if (parts === null) {\n return null;\n }\n var marker = parts.marker;\n var forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo };\n };\n // Accessors\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n };\n // Adding / Subtracting\n DateEnv.prototype.add = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.subtract = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addYears = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addMonths = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n // Diffing Whole Units\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n };\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n };\n // Range / Duration\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n };\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n };\n // Start-Of\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n else if (unit === 'month') {\n return this.startOfMonth(m);\n }\n else if (unit === 'week') {\n return this.startOfWeek(m);\n }\n else if (unit === 'day') {\n return startOfDay(m);\n }\n else if (unit === 'hour') {\n return startOfHour(m);\n }\n else if (unit === 'minute') {\n return startOfMinute(m);\n }\n else if (unit === 'second') {\n return startOfSecond(m);\n }\n };\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m)\n ]);\n };\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m)\n ]);\n };\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7)\n ]);\n };\n // Week Number\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n else {\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n };\n // TODO: choke on timeZoneName: long\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker)\n }, this);\n };\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start)\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end)\n }, this);\n };\n DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) { extraOptions = {}; }\n var timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n };\n // TimeZone\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n else {\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n };\n DateEnv.prototype.offsetForMarker = function (m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n else if (this.timeZone === 'UTC') {\n return 0;\n }\n else if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n };\n // Conversion\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n else if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n else if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n else {\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms\n );\n }\n };\n return DateEnv;\n}());\n\nvar SIMPLE_SOURCE_PROPS = {\n id: String,\n allDayDefault: Boolean,\n eventDataTransform: Function,\n success: Function,\n failure: Function\n};\nvar uid$2 = 0;\nfunction doesSourceNeedRange(eventSource, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\nfunction parseEventSource(raw, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n if (meta) {\n var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar);\n res._raw = raw;\n return res;\n }\n }\n return null;\n}\nfunction parseEventSourceProps(raw, meta, sourceDefId, calendar) {\n var leftovers0 = {};\n var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0);\n var leftovers1 = {};\n var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1);\n props.isFetching = false;\n props.latestFetchId = '';\n props.fetchRange = null;\n props.publicId = String(raw.id || '');\n props.sourceId = String(uid$2++);\n props.sourceDefId = sourceDefId;\n props.meta = meta;\n props.ui = ui;\n props.extendedProps = leftovers1;\n return props;\n}\n\nfunction reduceEventSources (eventSources, action, dateProfile, calendar) {\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, dateProfile.activeRange, calendar);\n }\n else {\n return eventSources;\n }\n case 'FETCH_EVENT_SOURCES':\n case 'CHANGE_TIMEZONE':\n return fetchSourcesByIds(eventSources, action.sourceIds ?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nvar uid$3 = 0;\nfunction addSources(eventSourceHash, sources, fetchRange, calendar) {\n var hash = {};\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n var source = sources_1[_i];\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, calendar);\n }\n return __assign({}, eventSourceHash, hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) {\n return eventSource.sourceId !== sourceId;\n });\n}\nfunction fetchDirtySources(sourceHash, fetchRange, calendar) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) {\n return isSourceDirty(eventSource, fetchRange, calendar);\n }), fetchRange, calendar);\n}\nfunction isSourceDirty(eventSource, fetchRange, calendar) {\n if (!doesSourceNeedRange(eventSource, calendar)) {\n return !eventSource.latestFetchId;\n }\n else {\n return !calendar.opt('lazyFetching') ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n }\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) {\n var nextSources = {};\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, calendar);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, calendar) {\n var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId];\n var fetchId = String(uid$3++);\n sourceDef.fetch({\n eventSource: eventSource,\n calendar: calendar,\n range: fetchRange\n }, function (res) {\n var rawEvents = res.rawEvents;\n var calSuccess = calendar.opt('eventSourceSuccess');\n var calSuccessRes;\n var sourceSuccessRes;\n if (eventSource.success) {\n sourceSuccessRes = eventSource.success(rawEvents, res.xhr);\n }\n if (calSuccess) {\n calSuccessRes = calSuccess(rawEvents, res.xhr);\n }\n rawEvents = sourceSuccessRes || calSuccessRes || rawEvents;\n calendar.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawEvents: rawEvents\n });\n }, function (error) {\n var callFailure = calendar.opt('eventSourceFailure');\n console.warn(error.message, error);\n if (eventSource.failure) {\n eventSource.failure(error);\n }\n if (callFailure) {\n callFailure(error);\n }\n calendar.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n var eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange // also serves as a marker that at least one fetch has completed\n }), _a));\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, calendar) {\n return filterHash(eventSources, function (eventSource) {\n return doesSourceNeedRange(eventSource, calendar);\n });\n}\n\nvar DateProfileGenerator = /** @class */ (function () {\n function DateProfileGenerator(viewSpec, calendar) {\n this.viewSpec = viewSpec;\n this.options = viewSpec.options;\n this.dateEnv = calendar.dateEnv;\n this.calendar = calendar;\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1);\n };\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1);\n };\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) { forceToValid = false; }\n var validRange;\n var minTime = null;\n var maxTime = null;\n var currentInfo;\n var isRangeAllDay;\n var renderRange;\n var activeRange;\n var isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!this.options.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n minTime = createDuration(this.options.minTime);\n maxTime = createDuration(this.options.maxTime);\n activeRange = this.adjustActiveRange(activeRange, minTime, maxTime);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n return {\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange: validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay: isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange: activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange: renderRange,\n // Duration object that denotes the first visible time of any given day\n minTime: minTime,\n // Duration object that denotes the exclusive visible end time of any given day\n maxTime: maxTime,\n isValid: isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\n // pass a fallback (might be null) ^\n };\n };\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildValidRange = function () {\n return this.getRangeOption('validRange', this.calendar.getNow()) ||\n { start: null, end: null }; // completely open-ended\n };\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n if (viewSpec.duration) {\n duration = viewSpec.duration;\n unit = viewSpec.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.options.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration: duration, unit: unit, range: range };\n };\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({ day: 1 });\n };\n // Returns a new activeRange to have time values (un-ambiguate)\n // minTime or maxTime causes the range to expand.\n DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) {\n var dateEnv = this.dateEnv;\n var start = range.start;\n var end = range.end;\n if (this.viewSpec.class.prototype.usesMinMaxTime) {\n // expand active range if minTime is negative (why not when positive?)\n if (asRoughDays(minTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, minTime);\n }\n // expand active range if maxTime is beyond one day (why not when positive?)\n if (asRoughDays(maxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, maxTime);\n }\n }\n return { start: start, end: end };\n };\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var dateEnv = this.dateEnv;\n var alignment = this.options.dateAlignment;\n var dateIncrementInput;\n var dateIncrementDuration;\n var start;\n var end;\n var res;\n // compute what the alignment should be\n if (!alignment) {\n dateIncrementInput = this.options.dateIncrement;\n if (dateIncrementInput) {\n dateIncrementDuration = createDuration(dateIncrementInput);\n // use the smaller of the two units\n if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) {\n alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit;\n }\n else {\n alignment = unit;\n }\n }\n else {\n alignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, alignment);\n end = dateEnv.add(start, duration);\n res = { start: start, end: end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n };\n // Builds the \"current\" range when a dayCount is specified.\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var dateEnv = this.dateEnv;\n var customAlignment = this.options.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n if (customAlignment) {\n start = dateEnv.startOf(start, customAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount++;\n }\n } while (runningCount < dayCount);\n return { start: start, end: end };\n };\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var dateEnv = this.dateEnv;\n var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date));\n if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) {\n return null;\n }\n return visibleRange;\n };\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n };\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrementInput = this.options.dateIncrement;\n var customAlignment;\n if (dateIncrementInput) {\n return createDuration(dateIncrementInput);\n }\n else if ((customAlignment = this.options.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n else if (fallback) {\n return fallback;\n }\n else {\n return createDuration({ days: 1 });\n }\n };\n // Arguments after name will be forwarded to a hypothetical function value\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\n // Always clone your objects if you fear mutation.\n DateProfileGenerator.prototype.getRangeOption = function (name) {\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var val = this.options[name];\n if (typeof val === 'function') {\n val = val.apply(null, otherArgs);\n }\n if (val) {\n val = parseRange(val, this.dateEnv);\n }\n if (val) {\n val = computeVisibleDayRange(val);\n }\n return val;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n var dayCnt = 0;\n var i;\n if (this.options.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i++) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt++;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n };\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start;\n var end = range.end;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start: start, end: end };\n }\n return null;\n };\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n };\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) { inc = 1; }\n if (isExclusive === void 0) { isExclusive = false; }\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n };\n return DateProfileGenerator;\n}());\n// TODO: find a way to avoid comparing DateProfiles. it's tedious\nfunction isDateProfilesEqual(p0, p1) {\n return rangesEqual(p0.validRange, p1.validRange) &&\n rangesEqual(p0.activeRange, p1.activeRange) &&\n rangesEqual(p0.renderRange, p1.renderRange) &&\n durationsEqual(p0.minTime, p1.minTime) &&\n durationsEqual(p0.maxTime, p1.maxTime);\n /*\n TODO: compare more?\n currentRange: DateRange\n currentRangeUnit: string\n isRangeAllDay: boolean\n isValid: boolean\n dateIncrement: Duration\n */\n}\n\nfunction reduce (state, action, calendar) {\n var viewType = reduceViewType(state.viewType, action);\n var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar);\n var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar);\n var nextState = __assign({}, state, { viewType: viewType,\n dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) });\n for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) {\n var reducerFunc = _a[_i];\n nextState = reducerFunc(nextState, action, calendar);\n }\n // console.log(action.type, nextState)\n return nextState;\n}\nfunction reduceViewType(currentViewType, action) {\n switch (action.type) {\n case 'SET_VIEW_TYPE':\n return action.viewType;\n default:\n return currentViewType;\n }\n}\nfunction reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) {\n var newDateProfile;\n switch (action.type) {\n case 'PREV':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate);\n break;\n case 'NEXT':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate);\n break;\n case 'SET_DATE':\n if (!currentDateProfile.activeRange ||\n !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) {\n newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid\n );\n }\n break;\n case 'SET_VIEW_TYPE':\n var generator = calendar.dateProfileGenerators[viewType];\n if (!generator) {\n throw new Error(viewType ?\n 'The FullCalendar view \"' + viewType + '\" does not exist. Make sure your plugins are loaded correctly.' :\n 'No available FullCalendar view plugins.');\n }\n newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid\n );\n break;\n }\n if (newDateProfile &&\n newDateProfile.isValid &&\n !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) {\n return newDateProfile;\n }\n else {\n return currentDateProfile;\n }\n}\nfunction reduceCurrentDate(currentDate, action, dateProfile) {\n switch (action.type) {\n case 'PREV':\n case 'NEXT':\n if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return currentDate;\n }\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n var newDate = action.dateMarker || currentDate;\n if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return newDate;\n }\n default:\n return currentDate;\n }\n}\nfunction reduceDateSelection(currentSelection, action, calendar) {\n switch (action.type) {\n case 'SELECT_DATES':\n return action.selection;\n case 'UNSELECT_DATES':\n return null;\n default:\n return currentSelection;\n }\n}\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n case 'UNSELECT_EVENT':\n return '';\n default:\n return currentInstanceId;\n }\n}\nfunction reduceEventDrag(currentDrag, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n var newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n origSeg: newDrag.origSeg\n };\n case 'UNSET_EVENT_DRAG':\n return null;\n default:\n return currentDrag;\n }\n}\nfunction reduceEventResize(currentResize, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_RESIZE':\n var newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n origSeg: newResize.origSeg\n };\n case 'UNSET_EVENT_RESIZE':\n return null;\n default:\n return currentResize;\n }\n}\nfunction computeLoadingLevel(eventSources) {\n var cnt = 0;\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n cnt++;\n }\n }\n return cnt;\n}\n\nvar STANDARD_PROPS = {\n start: null,\n end: null,\n allDay: Boolean\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n else {\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n var leftovers = {};\n var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers);\n var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n var allDay = standardProps.allDay;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n // use this leftover object as the selection object\n leftovers.range = {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null\n };\n leftovers.allDay = allDay;\n return leftovers;\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (var propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return {\n start: dateEnv.toDate(span.range.start),\n end: dateEnv.toDate(span.range.end),\n startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, calendar) {\n var def = parseEventDef({ editable: false }, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n calendar);\n return {\n def: def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true\n };\n}\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n var queryProp = function (name) {\n return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null);\n };\n var theClass = queryProp('class');\n var superType = queryProp('superType');\n if (!superType && theClass) {\n superType =\n findViewNameBySubclass(theClass, overrideConfigs) ||\n findViewNameBySubclass(theClass, defaultConfigs);\n }\n var superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theClass && superDef) {\n theClass = superDef.class;\n }\n if (!theClass) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n class: theClass,\n defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})),\n overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {}))\n };\n}\nfunction findViewNameBySubclass(viewSubclass, configs) {\n var superProto = Object.getPrototypeOf(viewSubclass.prototype);\n for (var viewType in configs) {\n var parsed = configs[viewType];\n // need DIRECT subclass, so instanceof won't do it\n if (parsed.class && parsed.class.prototype === superProto) {\n return viewType;\n }\n }\n return '';\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nvar VIEW_DEF_PROPS = {\n type: String,\n class: null\n};\nfunction parseViewConfig(input) {\n if (typeof input === 'function') {\n input = { class: input };\n }\n var options = {};\n var props = refineProps(input, VIEW_DEF_PROPS, {}, options);\n return {\n superType: props.type,\n class: props.class,\n options: options\n };\n}\n\nfunction buildViewSpecs(defaultInputs, optionsManager) {\n var defaultConfigs = parseViewConfigs(defaultInputs);\n var overrideConfigs = parseViewConfigs(optionsManager.overrides.views);\n var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, function (viewDef) {\n return buildViewSpec(viewDef, overrideConfigs, optionsManager);\n });\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionsManager) {\n var durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n optionsManager.dynamicOverrides.duration ||\n optionsManager.overrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n if (durationInput) {\n duration = createDuration(durationInput);\n if (duration) { // valid?\n var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput));\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {};\n }\n }\n }\n var queryButtonText = function (options) {\n var buttonTextMap = options.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n };\n return {\n type: viewDef.type,\n class: viewDef.class,\n duration: duration,\n durationUnit: durationUnit,\n singleUnit: singleUnit,\n options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides),\n buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) ||\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(optionsManager.localeDefaults) ||\n queryButtonText(optionsManager.dirDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(globalDefaults) ||\n viewDef.type // fall back to given view name\n };\n}\n\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar(extraClassName) {\n var _this = _super.call(this) || this;\n _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout);\n _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]);\n _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]);\n _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]);\n _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]);\n _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]);\n _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName });\n return _this;\n }\n Toolbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._renderLayout.unrender(); // should unrender everything else\n removeElement(this.el);\n };\n Toolbar.prototype.render = function (props) {\n this._renderLayout(props.layout);\n this._updateTitle(props.title);\n this._updateActiveButton(props.activeButton);\n this._updateToday(props.isTodayEnabled);\n this._updatePrev(props.isPrevEnabled);\n this._updateNext(props.isNextEnabled);\n };\n Toolbar.prototype.renderLayout = function (layout) {\n var el = this.el;\n this.viewsWithButtons = [];\n appendToElement(el, this.renderSection('left', layout.left));\n appendToElement(el, this.renderSection('center', layout.center));\n appendToElement(el, this.renderSection('right', layout.right));\n };\n Toolbar.prototype.unrenderLayout = function () {\n this.el.innerHTML = '';\n };\n Toolbar.prototype.renderSection = function (position, buttonStr) {\n var _this = this;\n var _a = this.context, theme = _a.theme, calendar = _a.calendar;\n var optionsManager = calendar.optionsManager;\n var viewSpecs = calendar.viewSpecs;\n var sectionEl = createElement('div', { className: 'fc-' + position });\n var calendarCustomButtons = optionsManager.computed.customButtons || {};\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\n var calendarButtonText = optionsManager.computed.buttonText || {};\n if (buttonStr) {\n buttonStr.split(' ').forEach(function (buttonGroupStr, i) {\n var groupChildren = [];\n var isOnlyButtons = true;\n var groupEl;\n buttonGroupStr.split(',').forEach(function (buttonName, j) {\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n var buttonText; // \"\n var buttonInnerHtml;\n var buttonClasses;\n var buttonEl;\n var buttonAriaAttr;\n if (buttonName === 'title') {\n groupChildren.push(htmlToElement('

 

')); // we always want it to take up height\n isOnlyButtons = false;\n }\n else {\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = function (ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(buttonEl, ev);\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = customButtonProps.text);\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n _this.viewsWithButtons.push(buttonName);\n buttonClick = function () {\n calendar.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = viewSpec.buttonTextDefault);\n }\n else if (calendar[buttonName]) { // a calendar method\n buttonClick = function () {\n calendar[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = calendarButtonText[buttonName]);\n // ^ everything else is considered default\n }\n if (buttonClick) {\n buttonClasses = [\n 'fc-' + buttonName + '-button',\n theme.getClass('button')\n ];\n if (buttonText) {\n buttonInnerHtml = htmlEscape(buttonText);\n buttonAriaAttr = '';\n }\n else if (buttonIcon) {\n buttonInnerHtml = \"\";\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\n }\n buttonEl = htmlToElement(// type=\"button\" so that it doesn't submit a form\n '');\n buttonEl.addEventListener('click', buttonClick);\n groupChildren.push(buttonEl);\n }\n }\n });\n if (groupChildren.length > 1) {\n groupEl = document.createElement('div');\n var buttonGroupClassName = theme.getClass('buttonGroup');\n if (isOnlyButtons && buttonGroupClassName) {\n groupEl.classList.add(buttonGroupClassName);\n }\n appendToElement(groupEl, groupChildren);\n sectionEl.appendChild(groupEl);\n }\n else {\n appendToElement(sectionEl, groupChildren); // 1 or 0 children\n }\n });\n }\n return sectionEl;\n };\n Toolbar.prototype.updateToday = function (isTodayEnabled) {\n this.toggleButtonEnabled('today', isTodayEnabled);\n };\n Toolbar.prototype.updatePrev = function (isPrevEnabled) {\n this.toggleButtonEnabled('prev', isPrevEnabled);\n };\n Toolbar.prototype.updateNext = function (isNextEnabled) {\n this.toggleButtonEnabled('next', isNextEnabled);\n };\n Toolbar.prototype.updateTitle = function (text) {\n findElements(this.el, 'h2').forEach(function (titleEl) {\n titleEl.innerText = text;\n });\n };\n Toolbar.prototype.updateActiveButton = function (buttonName) {\n var theme = this.context.theme;\n var className = theme.getClass('buttonActive');\n findElements(this.el, 'button').forEach(function (buttonEl) {\n if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) {\n buttonEl.classList.add(className);\n }\n else {\n buttonEl.classList.remove(className);\n }\n });\n };\n Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) {\n findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) {\n buttonEl.disabled = !bool;\n });\n };\n return Toolbar;\n}(Component));\n\nvar CalendarComponent = /** @class */ (function (_super) {\n __extends(CalendarComponent, _super);\n function CalendarComponent(el) {\n var _this = _super.call(this) || this;\n _this.elClassNames = [];\n _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n _this.renderToolbars = memoizeRendering(_this._renderToolbars, _this._unrenderToolbars, [_this.renderSkeleton]);\n _this.buildComponentContext = memoize(buildComponentContext);\n _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n _this.el = el;\n _this.computeTitle = memoize(computeTitle);\n _this.parseBusinessHours = memoize(function (input) {\n return parseBusinessHours(input, _this.context.calendar);\n });\n return _this;\n }\n CalendarComponent.prototype.render = function (props, context) {\n this.freezeHeight();\n var title = this.computeTitle(props.dateProfile, props.viewSpec.options);\n this.renderSkeleton(context);\n this.renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, title);\n this.renderView(props, title);\n this.updateSize();\n this.thawHeight();\n };\n CalendarComponent.prototype.destroy = function () {\n if (this.header) {\n this.header.destroy();\n }\n if (this.footer) {\n this.footer.destroy();\n }\n this.renderSkeleton.unrender(); // will call destroyView\n _super.prototype.destroy.call(this);\n };\n CalendarComponent.prototype._renderSkeleton = function (context) {\n this.updateElClassNames(context);\n prependToElement(this.el, this.contentEl = createElement('div', { className: 'fc-view-container' }));\n var calendar = context.calendar;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) {\n var modifyViewContainer = _a[_i];\n modifyViewContainer(this.contentEl, calendar);\n }\n };\n CalendarComponent.prototype._unrenderSkeleton = function () {\n // weird to have this here\n if (this.view) {\n this.savedScroll = this.view.queryScroll();\n this.view.destroy();\n this.view = null;\n }\n removeElement(this.contentEl);\n this.removeElClassNames();\n };\n CalendarComponent.prototype.removeElClassNames = function () {\n var classList = this.el.classList;\n for (var _i = 0, _a = this.elClassNames; _i < _a.length; _i++) {\n var className = _a[_i];\n classList.remove(className);\n }\n this.elClassNames = [];\n };\n CalendarComponent.prototype.updateElClassNames = function (context) {\n this.removeElClassNames();\n var theme = context.theme, options = context.options;\n this.elClassNames = [\n 'fc',\n 'fc-' + options.dir,\n theme.getClass('widget')\n ];\n var classList = this.el.classList;\n for (var _i = 0, _a = this.elClassNames; _i < _a.length; _i++) {\n var className = _a[_i];\n classList.add(className);\n }\n };\n CalendarComponent.prototype._renderToolbars = function (viewSpec, dateProfile, currentDate, title) {\n var _a = this, context = _a.context, header = _a.header, footer = _a.footer;\n var options = context.options, calendar = context.calendar;\n var headerLayout = options.header;\n var footerLayout = options.footer;\n var dateProfileGenerator = this.props.dateProfileGenerator;\n var now = calendar.getNow();\n var todayInfo = dateProfileGenerator.build(now);\n var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate);\n var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate);\n var toolbarProps = {\n title: title,\n activeButton: viewSpec.type,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid\n };\n if (headerLayout) {\n if (!header) {\n header = this.header = new Toolbar('fc-header-toolbar');\n prependToElement(this.el, header.el);\n }\n header.receiveProps(__assign({ layout: headerLayout }, toolbarProps), context);\n }\n else if (header) {\n header.destroy();\n header = this.header = null;\n }\n if (footerLayout) {\n if (!footer) {\n footer = this.footer = new Toolbar('fc-footer-toolbar');\n appendToElement(this.el, footer.el);\n }\n footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps), context);\n }\n else if (footer) {\n footer.destroy();\n footer = this.footer = null;\n }\n };\n CalendarComponent.prototype._unrenderToolbars = function () {\n if (this.header) {\n this.header.destroy();\n this.header = null;\n }\n if (this.footer) {\n this.footer.destroy();\n this.footer = null;\n }\n };\n CalendarComponent.prototype.renderView = function (props, title) {\n var view = this.view;\n var _a = this.context, calendar = _a.calendar, options = _a.options;\n var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator;\n if (!view || view.viewSpec !== viewSpec) {\n if (view) {\n view.destroy();\n }\n view = this.view = new viewSpec['class'](viewSpec, this.contentEl);\n if (this.savedScroll) {\n view.addScroll(this.savedScroll, true);\n this.savedScroll = null;\n }\n }\n view.title = title; // for the API\n var viewProps = {\n dateProfileGenerator: dateProfileGenerator,\n dateProfile: props.dateProfile,\n businessHours: this.parseBusinessHours(viewSpec.options.businessHours),\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize\n };\n var transformers = this.buildViewPropTransformers(calendar.pluginSystem.hooks.viewPropsTransformers);\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n __assign(viewProps, transformer.transform(viewProps, viewSpec, props, options));\n }\n view.receiveProps(viewProps, this.buildComponentContext(this.context, viewSpec, view));\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.updateSize = function (isResize) {\n if (isResize === void 0) { isResize = false; }\n var view = this.view;\n if (!view) {\n return; // why?\n }\n if (isResize || this.isHeightAuto == null) {\n this.computeHeightVars();\n }\n view.updateSize(isResize, this.viewHeight, this.isHeightAuto);\n view.updateNowIndicator(); // we need to guarantee this will run after updateSize\n view.popScroll(isResize);\n };\n CalendarComponent.prototype.computeHeightVars = function () {\n var calendar = this.context.calendar; // yuck. need to handle dynamic options\n var heightInput = calendar.opt('height');\n var contentHeightInput = calendar.opt('contentHeight');\n this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto';\n if (typeof contentHeightInput === 'number') { // exists and not 'auto'\n this.viewHeight = contentHeightInput;\n }\n else if (typeof contentHeightInput === 'function') { // exists and is a function\n this.viewHeight = contentHeightInput();\n }\n else if (typeof heightInput === 'number') { // exists and not 'auto'\n this.viewHeight = heightInput - this.queryToolbarsHeight();\n }\n else if (typeof heightInput === 'function') { // exists and is a function\n this.viewHeight = heightInput() - this.queryToolbarsHeight();\n }\n else if (heightInput === 'parent') { // set to height of parent element\n var parentEl = this.el.parentNode;\n this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight();\n }\n else {\n this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width /\n Math.max(calendar.opt('aspectRatio'), .5));\n }\n };\n CalendarComponent.prototype.queryToolbarsHeight = function () {\n var height = 0;\n if (this.header) {\n height += computeHeightAndMargins(this.header.el);\n }\n if (this.footer) {\n height += computeHeightAndMargins(this.footer.el);\n }\n return height;\n };\n // Height \"Freezing\"\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.freezeHeight = function () {\n applyStyle(this.el, {\n height: this.el.getBoundingClientRect().height,\n overflow: 'hidden'\n });\n };\n CalendarComponent.prototype.thawHeight = function () {\n applyStyle(this.el, {\n height: '',\n overflow: ''\n });\n };\n return CalendarComponent;\n}(Component));\n// Title and Date Formatting\n// -----------------------------------------------------------------------------------------------------------------\n// Computes what the title at the top of the calendar should be for this view\nfunction computeTitle(dateProfile, viewOptions) {\n var range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return this.context.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction computeTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n else if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n else {\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n else {\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n }\n }\n}\n// build a context scoped to the view\nfunction buildComponentContext(context, viewSpec, view) {\n return context.extend(viewSpec.options, view);\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (theClass) {\n return new theClass();\n });\n}\n\nvar Interaction = /** @class */ (function () {\n function Interaction(settings) {\n this.component = settings.component;\n }\n Interaction.prototype.destroy = function () {\n };\n return Interaction;\n}());\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true\n };\n}\nfunction interactionSettingsToStore(settings) {\n var _a;\n return _a = {},\n _a[settings.component.uid] = settings,\n _a;\n}\n// global state\nvar interactionSettingsStore = {};\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nvar EventClicking = /** @class */ (function (_super) {\n __extends(EventClicking, _super);\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var seg = getElSeg(segEl);\n if (seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n var hasUrlContainer = elementClosest(ev.target, '.fc-has-url');\n var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n calendar.publiclyTrigger('eventClick', [\n {\n el: segEl,\n event: new EventApi(component.context.calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: view\n }\n ]);\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n var component = settings.component;\n _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick);\n return _this;\n }\n return EventClicking;\n}(Interaction));\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nvar EventHovering = /** @class */ (function (_super) {\n __extends(EventHovering, _super);\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this;\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n segEl.classList.add('fc-allow-mouse-resize');\n _this.currentSegEl = segEl;\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n segEl.classList.remove('fc-allow-mouse-resize');\n _this.currentSegEl = null;\n _this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n var component = settings.component;\n _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave);\n // how to make sure component already has context?\n component.context.calendar.on('eventElRemove', _this.handleEventElRemove);\n return _this;\n }\n EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\n this.component.context.calendar.off('eventElRemove', this.handleEventElRemove);\n };\n EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n var component = this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n calendar.publiclyTrigger(publicEvName, [\n {\n el: segEl,\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: view\n }\n ]);\n }\n };\n return EventHovering;\n}(Interaction));\n\nvar StandardTheme = /** @class */ (function (_super) {\n __extends(StandardTheme, _super);\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return StandardTheme;\n}(Theme));\nStandardTheme.prototype.classes = {\n widget: 'fc-unthemed',\n widgetHeader: 'fc-widget-header',\n widgetContent: 'fc-widget-content',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n popoverHeader: 'fc-widget-header',\n popoverContent: 'fc-widget-content',\n // day grid\n headerRow: 'fc-widget-header',\n dayRow: 'fc-widget-content',\n // list view\n listView: 'fc-widget-content'\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right'\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nvar Calendar = /** @class */ (function () {\n function Calendar(el, overrides) {\n var _this = this;\n this.buildComponentContext = memoize(buildComponentContext$1);\n this.parseRawLocales = memoize(parseRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildDateEnv = memoize(buildDateEnv);\n this.buildTheme = memoize(buildTheme);\n this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase);\n this.buildSelectionConfig = memoize(this._buildSelectionConfig);\n this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.interactionsStore = {};\n this.actionQueue = [];\n this.isReducing = false;\n // isDisplaying: boolean = false // installed in DOM? accepting renders?\n this.needsRerender = false; // needs a render?\n this.isRendering = false; // currently in the executeRender function?\n this.renderingPauseDepth = 0;\n this.buildDelayedRerender = memoize(buildDelayedRerender);\n this.afterSizingTriggers = {};\n this.isViewUpdated = false;\n this.isDatesUpdated = false;\n this.isEventsUpdated = false;\n this.el = el;\n this.optionsManager = new OptionsManager(overrides || {});\n this.pluginSystem = new PluginSystem();\n // only do once. don't do in handleOptions. because can't remove plugins\n this.addPluginInputs(this.optionsManager.computed.plugins || []);\n this.handleOptions(this.optionsManager.computed);\n this.publiclyTrigger('_init'); // for tests\n this.hydrate();\n this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions\n .map(function (calendarInteractionClass) {\n return new calendarInteractionClass(_this);\n });\n }\n Calendar.prototype.addPluginInputs = function (pluginInputs) {\n var pluginDefs = refinePluginDefs(pluginInputs);\n for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) {\n var pluginDef = pluginDefs_1[_i];\n this.pluginSystem.add(pluginDef);\n }\n };\n Object.defineProperty(Calendar.prototype, \"view\", {\n // public API\n get: function () {\n return this.component ? this.component.view : null;\n },\n enumerable: true,\n configurable: true\n });\n // Public API for rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.render = function () {\n if (!this.component) {\n this.component = new CalendarComponent(this.el);\n this.renderableEventStore = createEmptyEventStore();\n this.bindHandlers();\n this.executeRender();\n }\n else {\n this.requestRerender();\n }\n };\n Calendar.prototype.destroy = function () {\n if (this.component) {\n this.unbindHandlers();\n this.component.destroy(); // don't null-out. in case API needs access\n this.component = null; // umm ???\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n this.publiclyTrigger('_destroyed');\n }\n };\n // Handlers\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.bindHandlers = function () {\n var _this = this;\n // event delegation for nav links\n this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) {\n var gotoOptions = anchorEl.getAttribute('data-goto');\n gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {};\n var dateEnv = _this.dateEnv;\n var dateMarker = dateEnv.createMarker(gotoOptions.date);\n var viewType = gotoOptions.type;\n // property like \"navLinkDayClick\". might be a string or a function\n var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click');\n if (typeof customAction === 'function') {\n customAction(dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n _this.zoomTo(dateMarker, viewType);\n }\n });\n if (this.opt('handleWindowResize')) {\n window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\n }\n };\n Calendar.prototype.unbindHandlers = function () {\n this.removeNavLinkListener();\n if (this.windowResizeProxy) {\n window.removeEventListener('resize', this.windowResizeProxy);\n this.windowResizeProxy = null;\n }\n };\n // Dispatcher\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hydrate = function () {\n var _this = this;\n this.state = this.buildInitialState();\n var rawSources = this.opt('eventSources') || [];\n var singleRawSource = this.opt('events');\n var sources = []; // parsed\n if (singleRawSource) {\n rawSources.unshift(singleRawSource);\n }\n for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {\n var rawSource = rawSources_1[_i];\n var source = parseEventSource(rawSource, this);\n if (source) {\n sources.push(source);\n }\n }\n this.batchRendering(function () {\n _this.dispatch({ type: 'INIT' }); // pass in sources here?\n _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources });\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView\n });\n });\n };\n Calendar.prototype.buildInitialState = function () {\n return {\n viewType: null,\n loadingLevel: 0,\n eventSourceLoadingLevel: 0,\n currentDate: this.getInitialDate(),\n dateProfile: null,\n eventSources: {},\n eventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null\n };\n };\n Calendar.prototype.dispatch = function (action) {\n this.actionQueue.push(action);\n if (!this.isReducing) {\n this.isReducing = true;\n var oldState = this.state;\n while (this.actionQueue.length) {\n this.state = this.reduce(this.state, this.actionQueue.shift(), this);\n }\n var newState = this.state;\n this.isReducing = false;\n if (!oldState.loadingLevel && newState.loadingLevel) {\n this.publiclyTrigger('loading', [true]);\n }\n else if (oldState.loadingLevel && !newState.loadingLevel) {\n this.publiclyTrigger('loading', [false]);\n }\n var view = this.component && this.component.view;\n if (oldState.eventStore !== newState.eventStore) {\n if (oldState.eventStore) {\n this.isEventsUpdated = true;\n }\n }\n if (oldState.dateProfile !== newState.dateProfile) {\n if (oldState.dateProfile && view) { // why would view be null!?\n this.publiclyTrigger('datesDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isDatesUpdated = true;\n }\n if (oldState.viewType !== newState.viewType) {\n if (oldState.viewType && view) { // why would view be null!?\n this.publiclyTrigger('viewSkeletonDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isViewUpdated = true;\n }\n this.requestRerender();\n }\n };\n Calendar.prototype.reduce = function (state, action, calendar) {\n return reduce(state, action, calendar);\n };\n // Render Queue\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.requestRerender = function () {\n this.needsRerender = true;\n this.delayedRerender(); // will call a debounced-version of tryRerender\n };\n Calendar.prototype.tryRerender = function () {\n if (this.component && // must be accepting renders\n this.needsRerender && // indicates that a rerender was requested\n !this.renderingPauseDepth && // not paused\n !this.isRendering // not currently in the render loop\n ) {\n this.executeRender();\n }\n };\n Calendar.prototype.batchRendering = function (func) {\n this.renderingPauseDepth++;\n func();\n this.renderingPauseDepth--;\n if (this.needsRerender) {\n this.requestRerender();\n }\n };\n // Rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.executeRender = function () {\n // clear these BEFORE the render so that new values will accumulate during render\n this.needsRerender = false;\n this.isRendering = true;\n this.renderComponent();\n this.isRendering = false;\n // received a rerender request while rendering\n if (this.needsRerender) {\n this.delayedRerender();\n }\n };\n /*\n don't call this directly. use executeRender instead\n */\n Calendar.prototype.renderComponent = function () {\n var _a = this, state = _a.state, component = _a.component;\n var viewType = state.viewType;\n var viewSpec = this.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\n }\n // if event sources are still loading and progressive rendering hasn't been enabled,\n // keep rendering the last fully loaded set of events\n var renderableEventStore = this.renderableEventStore =\n (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ?\n this.renderableEventStore :\n state.eventStore;\n var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options);\n var eventUiBySource = this.buildEventUiBySource(state.eventSources);\n var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfileGenerator: this.dateProfileGenerators[viewType], dateProfile: state.dateProfile, eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize }), this.buildComponentContext(this.theme, this.dateEnv, this.optionsManager.computed));\n if (this.isViewUpdated) {\n this.isViewUpdated = false;\n this.publiclyTrigger('viewSkeletonRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isDatesUpdated) {\n this.isDatesUpdated = false;\n this.publiclyTrigger('datesRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isEventsUpdated) {\n this.isEventsUpdated = false;\n }\n this.releaseAfterSizingTriggers();\n };\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.setOption = function (name, val) {\n var _a;\n this.mutateOptions((_a = {}, _a[name] = val, _a), [], true);\n };\n Calendar.prototype.getOption = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.opt = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.viewOpt = function (name) {\n return this.viewOpts()[name];\n };\n Calendar.prototype.viewOpts = function () {\n return this.viewSpecs[this.state.viewType].options;\n };\n /*\n handles option changes (like a diff)\n */\n Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) {\n var _this = this;\n var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers;\n var normalUpdates = {};\n var specialUpdates = {};\n var oldDateEnv = this.dateEnv; // do this before handleOptions\n var isTimeZoneDirty = false;\n var isSizeDirty = false;\n var anyDifficultOptions = Boolean(removals.length);\n for (var name_1 in updates) {\n if (changeHandlers[name_1]) {\n specialUpdates[name_1] = updates[name_1];\n }\n else {\n normalUpdates[name_1] = updates[name_1];\n }\n }\n for (var name_2 in normalUpdates) {\n if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) {\n isSizeDirty = true;\n }\n else if (/^(defaultDate|defaultView)$/.test(name_2)) ;\n else {\n anyDifficultOptions = true;\n if (name_2 === 'timeZone') {\n isTimeZoneDirty = true;\n }\n }\n }\n this.optionsManager.mutate(normalUpdates, removals, isDynamic);\n if (anyDifficultOptions) {\n this.handleOptions(this.optionsManager.computed);\n }\n this.batchRendering(function () {\n if (anyDifficultOptions) {\n if (isTimeZoneDirty) {\n _this.dispatch({\n type: 'CHANGE_TIMEZONE',\n oldDateEnv: oldDateEnv\n });\n }\n /* HACK\n has the same effect as calling this.requestRerender()\n but recomputes the state's dateProfile\n */\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.state.viewType\n });\n }\n else if (isSizeDirty) {\n _this.updateSize();\n }\n // special updates\n if (deepEqual) {\n for (var name_3 in specialUpdates) {\n changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual);\n }\n }\n });\n };\n /*\n rebuilds things based off of a complete set of refined options\n */\n Calendar.prototype.handleOptions = function (options) {\n var _this = this;\n var pluginHooks = this.pluginSystem.hooks;\n this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration);\n this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration);\n this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay);\n this.theme = this.buildTheme(options);\n var available = this.parseRawLocales(options.locales);\n this.availableRawLocales = available.map;\n var locale = this.buildLocale(options.locale || available.defaultCode, available.map);\n this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter);\n this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :(\n // ineffecient to do every time?\n this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager);\n // ineffecient to do every time?\n this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) {\n return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this);\n });\n };\n Calendar.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.availableRawLocales);\n };\n Calendar.prototype._buildSelectionConfig = function (rawOpts) {\n return processScopedUiProps('select', rawOpts, this);\n };\n Calendar.prototype._buildEventUiSingleBase = function (rawOpts) {\n if (rawOpts.editable) { // so 'editable' affected events\n rawOpts = __assign({}, rawOpts, { eventEditable: true });\n }\n return processScopedUiProps('event', rawOpts, this);\n };\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hasPublicHandlers = function (name) {\n return this.hasHandlers(name) ||\n this.opt(name); // handler specified in options\n };\n Calendar.prototype.publiclyTrigger = function (name, args) {\n var optHandler = this.opt(name);\n this.triggerWith(name, this, args);\n if (optHandler) {\n return optHandler.apply(this, args);\n }\n };\n Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) {\n var afterSizingTriggers = this.afterSizingTriggers;\n (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args);\n };\n Calendar.prototype.releaseAfterSizingTriggers = function () {\n var afterSizingTriggers = this.afterSizingTriggers;\n for (var name_4 in afterSizingTriggers) {\n for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) {\n var args = _a[_i];\n this.publiclyTrigger(name_4, args);\n }\n }\n this.afterSizingTriggers = {};\n };\n // View\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a boolean about whether the view is okay to instantiate at some point\n Calendar.prototype.isValidViewType = function (viewType) {\n return Boolean(this.viewSpecs[viewType]);\n };\n Calendar.prototype.changeView = function (viewType, dateOrRange) {\n var dateMarker = null;\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender\n this.handleOptions(this.optionsManager.computed); // ...but yuck\n }\n else { // a date\n dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate\n }\n }\n this.unselect();\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateMarker\n });\n };\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n Calendar.prototype.zoomTo = function (dateMarker, viewType) {\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = this.viewSpecs[viewType] ||\n this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker\n });\n }\n else {\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: dateMarker\n });\n }\n };\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n Calendar.prototype.getUnitViewSpec = function (unit) {\n var component = this.component;\n var viewTypes = [];\n var i;\n var spec;\n // put views that have buttons first. there will be duplicates, but oh\n if (component.header) {\n viewTypes.push.apply(viewTypes, component.header.viewsWithButtons);\n }\n if (component.footer) {\n viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons);\n }\n for (var viewType in this.viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i++) {\n spec = this.viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n };\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getInitialDate = function () {\n var defaultDateInput = this.opt('defaultDate');\n // compute the initial ambig-timezone date\n if (defaultDateInput != null) {\n return this.dateEnv.createMarker(defaultDateInput);\n }\n else {\n return this.getNow(); // getNow already returns unzoned\n }\n };\n Calendar.prototype.prev = function () {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n };\n Calendar.prototype.next = function () {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n };\n Calendar.prototype.prevYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, -1)\n });\n };\n Calendar.prototype.nextYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, 1)\n });\n };\n Calendar.prototype.today = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.getNow()\n });\n };\n Calendar.prototype.gotoDate = function (zonedDateInput) {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.createMarker(zonedDateInput)\n });\n };\n Calendar.prototype.incrementDate = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.add(this.state.currentDate, delta)\n });\n }\n };\n // for external API\n Calendar.prototype.getDate = function () {\n return this.dateEnv.toDate(this.state.currentDate);\n };\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n };\n // `settings` is for formatter AND isEndExclusive\n Calendar.prototype.formatRange = function (d0, d1, settings) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings);\n };\n Calendar.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime });\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.windowResize = function (ev) {\n if (!this.isHandlingWindowResize &&\n this.component && // why?\n ev.target === window // not a jqui resize event\n ) {\n this.isHandlingWindowResize = true;\n this.updateSize();\n this.publiclyTrigger('windowResize', [this.view]);\n this.isHandlingWindowResize = false;\n }\n };\n Calendar.prototype.updateSize = function () {\n if (this.component) { // when?\n this.component.updateSize(true);\n }\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering\n ];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions);\n var interactions = interactionClasses.map(function (interactionClass) {\n return new interactionClass(settings);\n });\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n Calendar.prototype.unregisterInteractiveComponent = function (component) {\n for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n delete interactionSettingsStore[component.uid];\n };\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n // this public method receives start/end dates in any format, with any timezone\n // NOTE: args were changed from v3\n Calendar.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate\n };\n }\n var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this?\n );\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection: selection });\n this.triggerDateSelect(selection);\n }\n };\n // public method\n Calendar.prototype.unselect = function (pev) {\n if (this.state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n this.triggerDateUnselect(pev);\n }\n };\n Calendar.prototype.triggerDateSelect = function (selection, pev) {\n var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view });\n this.publiclyTrigger('select', [arg]);\n };\n Calendar.prototype.triggerDateUnselect = function (pev) {\n this.publiclyTrigger('unselect', [\n {\n jsEvent: pev ? pev.origEvent : null,\n view: this.view\n }\n ]);\n };\n // TODO: receive pev?\n Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) {\n var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655\n view: view });\n this.publiclyTrigger('dateClick', [arg]);\n };\n Calendar.prototype.buildDatePointApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDatePointApi(dateSpan, this.dateEnv));\n return props;\n };\n Calendar.prototype.buildDateSpanApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDateSpanApi(dateSpan, this.dateEnv));\n return props;\n };\n // Date Utils\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option\n Calendar.prototype.getNow = function () {\n var now = this.opt('now');\n if (typeof now === 'function') {\n now = now();\n }\n if (now == null) {\n return this.dateEnv.createNowMarker();\n }\n return this.dateEnv.createMarker(now);\n };\n // Event-Date Utilities\n // -----------------------------------------------------------------------------------------------------------------\n // Given an event's allDay status and start date, return what its fallback end date should be.\n // TODO: rename to computeDefaultEventEnd\n Calendar.prototype.getDefaultEventEnd = function (allDay, marker) {\n var end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = this.dateEnv.add(end, this.defaultAllDayEventDuration);\n }\n else {\n end = this.dateEnv.add(end, this.defaultTimedEventDuration);\n }\n return end;\n };\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.addEvent = function (eventInput, sourceInput) {\n if (eventInput instanceof EventApi) {\n var def = eventInput._def;\n var instance = eventInput._instance;\n // not already present? don't want to add an old snapshot\n if (!this.state.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args?\n });\n }\n return eventInput;\n }\n var sourceId;\n if (sourceInput instanceof EventSourceApi) {\n sourceId = sourceInput.internalEventSource.sourceId;\n }\n else if (sourceInput != null) {\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn('Could not find an event source with ID \"' + sourceInput + '\"'); // TODO: test\n return null;\n }\n else {\n sourceId = sourceApi.internalEventSource.sourceId;\n }\n }\n var tuple = parseEvent(eventInput, sourceId, this);\n if (tuple) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple)\n });\n return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n }\n return null;\n };\n // TODO: optimize\n Calendar.prototype.getEventById = function (id) {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n id = String(id);\n for (var defId in defs) {\n var def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(this, def, null);\n }\n else {\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventApi(this, def, instance);\n }\n }\n }\n }\n }\n return null;\n };\n Calendar.prototype.getEvents = function () {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n var eventApis = [];\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n eventApis.push(new EventApi(this, def, instance));\n }\n return eventApis;\n };\n Calendar.prototype.removeAllEvents = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n };\n Calendar.prototype.rerenderEvents = function () {\n this.dispatch({ type: 'RESET_EVENTS' });\n };\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getEventSources = function () {\n var sourceHash = this.state.eventSources;\n var sourceApis = [];\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(this, sourceHash[internalId]));\n }\n return sourceApis;\n };\n Calendar.prototype.getEventSourceById = function (id) {\n var sourceHash = this.state.eventSources;\n id = String(id);\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(this, sourceHash[sourceId]);\n }\n }\n return null;\n };\n Calendar.prototype.addEventSource = function (sourceInput) {\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource]\n });\n }\n return sourceInput;\n }\n var eventSource = parseEventSource(sourceInput, this);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceApi(this, eventSource);\n }\n return null;\n };\n Calendar.prototype.removeAllEventSources = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n };\n Calendar.prototype.refetchEvents = function () {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES' });\n };\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.scrollToTime = function (timeInput) {\n var duration = createDuration(timeInput);\n if (duration) {\n this.component.view.scrollToDuration(duration);\n }\n };\n return Calendar;\n}());\nEmitterMixin.mixInto(Calendar);\n// for memoizers\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildComponentContext$1(theme, dateEnv, options) {\n return new ComponentContext(this, theme, dateEnv, options, null);\n}\nfunction buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) {\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone: timeZone,\n namedTimeZoneImpl: namedTimeZoneImpl,\n locale: locale,\n weekNumberCalculation: weekNumberCalculation,\n firstDay: firstDay,\n weekLabel: weekLabel,\n cmdFormatter: cmdFormatter\n });\n}\nfunction buildTheme(calendarOptions) {\n var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme;\n return new themeClass(calendarOptions);\n}\nfunction buildDelayedRerender(wait) {\n var func = this.tryRerender.bind(this);\n if (wait != null) {\n func = debounce(func, wait);\n }\n return func;\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) {\n return eventSource.ui;\n });\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = { '': eventUiSingleBase };\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\n\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View(viewSpec, parentEl) {\n var _this = _super.call(this, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' })) || this;\n _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap);\n _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]);\n _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]);\n _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]);\n _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]);\n _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]);\n _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]);\n _this.viewSpec = viewSpec;\n _this.type = viewSpec.type;\n parentEl.appendChild(_this.el);\n _this.initialize();\n return _this;\n }\n View.prototype.initialize = function () {\n };\n Object.defineProperty(View.prototype, \"activeStart\", {\n // Date Setting/Unsetting\n // -----------------------------------------------------------------------------------------------------------------\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.activeRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"activeEnd\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.activeRange.end);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentStart\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.currentRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentEnd\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.currentRange.end);\n },\n enumerable: true,\n configurable: true\n });\n // General Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.render = function (props, context) {\n this.renderDatesMem(props.dateProfile);\n this.renderBusinessHoursMem(props.businessHours);\n this.renderDateSelectionMem(props.dateSelection);\n this.renderEventsMem(props.eventStore);\n this.renderEventSelectionMem(props.eventSelection);\n this.renderEventDragMem(props.eventDrag);\n this.renderEventResizeMem(props.eventResize);\n };\n View.prototype.beforeUpdate = function () {\n this.addScroll(this.queryScroll());\n };\n View.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderDatesMem.unrender(); // should unrender everything else\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n var calendar = this.context.calendar;\n if (isResize) {\n this.addScroll(this.queryScroll()); // NOTE: same code as in beforeUpdate\n }\n if (isResize || // HACKS...\n calendar.isViewUpdated ||\n calendar.isDatesUpdated ||\n calendar.isEventsUpdated) {\n // sort of the catch-all sizing\n // anything that might cause dimension changes\n this.updateBaseSize(isResize, viewHeight, isAuto);\n }\n // NOTE: popScroll is called by CalendarComponent\n };\n View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n };\n // Date Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDatesWrap = function (dateProfile) {\n this.renderDates(dateProfile);\n this.addScroll({\n duration: createDuration(this.context.options.scrollTime)\n });\n };\n View.prototype.unrenderDatesWrap = function () {\n this.stopNowIndicator();\n this.unrenderDates();\n };\n View.prototype.renderDates = function (dateProfile) { };\n View.prototype.unrenderDates = function () { };\n // Business Hours\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderBusinessHours = function (businessHours) { };\n View.prototype.unrenderBusinessHours = function () { };\n // Date Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDateSelectionWrap = function (selection) {\n if (selection) {\n this.renderDateSelection(selection);\n }\n };\n View.prototype.unrenderDateSelectionWrap = function (selection) {\n if (selection) {\n this.unrenderDateSelection(selection);\n }\n };\n View.prototype.renderDateSelection = function (selection) { };\n View.prototype.unrenderDateSelection = function (selection) { };\n // Event Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEvents = function (eventStore) { };\n View.prototype.unrenderEvents = function () { };\n // util for subclasses\n View.prototype.sliceEvents = function (eventStore, allDay) {\n var props = this.props;\n return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.context.nextDayThreshold : null).fg;\n };\n // Event Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.renderEventSelection(instanceId);\n }\n };\n View.prototype.unrenderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.unrenderEventSelection(instanceId);\n }\n };\n View.prototype.renderEventSelection = function (instanceId) { };\n View.prototype.unrenderEventSelection = function (instanceId) { };\n // Event Drag\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventDragWrap = function (state) {\n if (state) {\n this.renderEventDrag(state);\n }\n };\n View.prototype.unrenderEventDragWrap = function (state) {\n if (state) {\n this.unrenderEventDrag(state);\n }\n };\n View.prototype.renderEventDrag = function (state) { };\n View.prototype.unrenderEventDrag = function (state) { };\n // Event Resize\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventResizeWrap = function (state) {\n if (state) {\n this.renderEventResize(state);\n }\n };\n View.prototype.unrenderEventResizeWrap = function (state) {\n if (state) {\n this.unrenderEventResize(state);\n }\n };\n View.prototype.renderEventResize = function (state) { };\n View.prototype.unrenderEventResize = function (state) { };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n // Immediately render the current time indicator and begins re-rendering it at an interval,\n // which is defined by this.getNowIndicatorUnit().\n // TODO: somehow do this for the current whole day's background too\n // USAGE: must be called manually from subclasses' render methods! don't need to call stopNowIndicator tho\n View.prototype.startNowIndicator = function (dateProfile, dateProfileGenerator) {\n var _this = this;\n var _a = this.context, calendar = _a.calendar, dateEnv = _a.dateEnv, options = _a.options;\n var unit;\n var update;\n var delay; // ms wait value\n if (options.nowIndicator && !this.initialNowDate) {\n unit = this.getNowIndicatorUnit(dateProfile, dateProfileGenerator);\n if (unit) {\n update = this.updateNowIndicator.bind(this);\n this.initialNowDate = calendar.getNow();\n this.initialNowQueriedMs = new Date().valueOf();\n // wait until the beginning of the next interval\n delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf();\n // TODO: maybe always use setTimeout, waiting until start of next unit\n this.nowIndicatorTimeoutID = setTimeout(function () {\n _this.nowIndicatorTimeoutID = null;\n update();\n if (unit === 'second') {\n delay = 1000; // every second\n }\n else {\n delay = 1000 * 60; // otherwise, every minute\n }\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\n }, delay);\n }\n // rendering will be initiated in updateSize\n }\n };\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\n // since the initial getNow call.\n View.prototype.updateNowIndicator = function () {\n if (this.props.dateProfile && // a way to determine if dates were rendered yet\n this.initialNowDate // activated before?\n ) {\n this.unrenderNowIndicator(); // won't unrender if unnecessary\n this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs));\n this.isNowIndicatorRendered = true;\n }\n };\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\n // Won't cause side effects if indicator isn't rendered.\n View.prototype.stopNowIndicator = function () {\n if (this.nowIndicatorTimeoutID) {\n clearTimeout(this.nowIndicatorTimeoutID);\n this.nowIndicatorTimeoutID = null;\n }\n if (this.nowIndicatorIntervalID) {\n clearInterval(this.nowIndicatorIntervalID);\n this.nowIndicatorIntervalID = null;\n }\n if (this.isNowIndicatorRendered) {\n this.unrenderNowIndicator();\n this.isNowIndicatorRendered = false;\n }\n };\n View.prototype.getNowIndicatorUnit = function (dateProfile, dateProfileGenerator) {\n // subclasses should implement\n };\n // Renders a current time indicator at the given datetime\n View.prototype.renderNowIndicator = function (date) {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n // Undoes the rendering actions from renderNowIndicator\n View.prototype.unrenderNowIndicator = function () {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n /* Scroller\n ------------------------------------------------------------------------------------------------------------------*/\n View.prototype.addScroll = function (scroll, isForced) {\n if (isForced) {\n scroll.isForced = isForced;\n }\n __assign(this.queuedScroll || (this.queuedScroll = {}), scroll);\n };\n View.prototype.popScroll = function (isResize) {\n this.applyQueuedScroll(isResize);\n this.queuedScroll = null;\n };\n View.prototype.applyQueuedScroll = function (isResize) {\n if (this.queuedScroll) {\n this.applyScroll(this.queuedScroll, isResize);\n }\n };\n View.prototype.queryScroll = function () {\n var scroll = {};\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.queryDateScroll());\n }\n return scroll;\n };\n View.prototype.applyScroll = function (scroll, isResize) {\n var duration = scroll.duration, isForced = scroll.isForced;\n if (duration != null && !isForced) {\n delete scroll.duration;\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.computeDateScroll(duration));\n }\n }\n if (this.props.dateProfile) { // dates rendered yet?\n this.applyDateScroll(scroll);\n }\n };\n View.prototype.computeDateScroll = function (duration) {\n return {}; // subclasses must implement\n };\n View.prototype.queryDateScroll = function () {\n return {}; // subclasses must implement\n };\n View.prototype.applyDateScroll = function (scroll) {\n // subclasses must implement\n };\n // for API\n View.prototype.scrollToDuration = function (duration) {\n this.applyScroll({ duration: duration }, false);\n };\n return View;\n}(DateComponent));\nEmitterMixin.mixInto(View);\nView.prototype.usesMinMaxTime = false;\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator;\n\nvar FgEventRenderer = /** @class */ (function () {\n function FgEventRenderer() {\n this.segs = [];\n this.isSizeDirty = false;\n }\n FgEventRenderer.prototype.renderSegs = function (context, segs, mirrorInfo) {\n this.context = context;\n this.rangeUpdated(); // called too frequently :(\n // render an `.el` on each seg\n // returns a subset of the segs. segs that were actually rendered\n segs = this.renderSegEls(segs, mirrorInfo);\n this.segs = segs;\n this.attachSegs(segs, mirrorInfo);\n this.isSizeDirty = true;\n triggerRenderedSegs(this.context, this.segs, Boolean(mirrorInfo));\n };\n FgEventRenderer.prototype.unrender = function (context, _segs, mirrorInfo) {\n triggerWillRemoveSegs(this.context, this.segs, Boolean(mirrorInfo));\n this.detachSegs(this.segs);\n this.segs = [];\n };\n // Updates values that rely on options and also relate to range\n FgEventRenderer.prototype.rangeUpdated = function () {\n var options = this.context.options;\n var displayEventTime;\n var displayEventEnd;\n this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator);\n displayEventTime = options.displayEventTime;\n if (displayEventTime == null) {\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\n }\n displayEventEnd = options.displayEventEnd;\n if (displayEventEnd == null) {\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\n }\n this.displayEventTime = displayEventTime;\n this.displayEventEnd = displayEventEnd;\n };\n // Renders and assigns an `el` property for each foreground event segment.\n // Only returns segments that successfully rendered.\n FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) {\n var html = '';\n var i;\n if (segs.length) { // don't build an empty html string\n // build a large concatenation of event segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(segs[i], mirrorInfo);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n segs = filterSegsViaEls(this.context, segs, Boolean(mirrorInfo));\n }\n return segs;\n };\n // Generic utility for generating the HTML classNames for an event segment's element\n FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) {\n var classes = [\n 'fc-event',\n seg.isStart ? 'fc-start' : 'fc-not-start',\n seg.isEnd ? 'fc-end' : 'fc-not-end'\n ].concat(seg.eventRange.ui.classNames);\n if (isDraggable) {\n classes.push('fc-draggable');\n }\n if (isResizable) {\n classes.push('fc-resizable');\n }\n if (mirrorInfo) {\n classes.push('fc-mirror');\n if (mirrorInfo.isDragging) {\n classes.push('fc-dragging');\n }\n if (mirrorInfo.isResizing) {\n classes.push('fc-resizing');\n }\n }\n return classes;\n };\n // Compute the text that should be displayed on an event's element.\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\n // If event times are disabled, or the event has no time, will return a blank string.\n // If not specified, formatter will default to the eventTimeFormat setting,\n // and displayEnd will default to the displayEventEnd setting.\n FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) {\n var def = eventRange.def, instance = eventRange.instance;\n return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo);\n };\n FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) {\n var dateEnv = this.context.dateEnv;\n if (formatter == null) {\n formatter = this.eventTimeFormat;\n }\n if (displayEnd == null) {\n displayEnd = this.displayEventEnd;\n }\n if (this.displayEventTime && !allDay) {\n if (displayEnd && end) {\n return dateEnv.formatRange(start, end, formatter, {\n forcedStartTzo: forcedStartTzo,\n forcedEndTzo: forcedEndTzo\n });\n }\n else {\n return dateEnv.format(start, formatter, {\n forcedTzo: forcedStartTzo\n });\n }\n }\n return '';\n };\n FgEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true\n };\n };\n FgEventRenderer.prototype.computeDisplayEventTime = function () {\n return true;\n };\n FgEventRenderer.prototype.computeDisplayEventEnd = function () {\n return true;\n };\n // Utility for generating event skin-related CSS properties\n FgEventRenderer.prototype.getSkinCss = function (ui) {\n return {\n 'background-color': ui.backgroundColor,\n 'border-color': ui.borderColor,\n color: ui.textColor\n };\n };\n FgEventRenderer.prototype.sortEventSegs = function (segs) {\n var specs = this.context.eventOrderSpecs;\n var objs = segs.map(buildSegCompareObj);\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 FgEventRenderer.prototype.computeSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.computeSegSizes(this.segs);\n }\n };\n FgEventRenderer.prototype.assignSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.assignSegSizes(this.segs);\n this.isSizeDirty = false;\n }\n };\n FgEventRenderer.prototype.computeSegSizes = function (segs) {\n };\n FgEventRenderer.prototype.assignSegSizes = function (segs) {\n };\n // Manipulation on rendered segs\n FgEventRenderer.prototype.hideByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = 'hidden';\n }\n }\n }\n };\n FgEventRenderer.prototype.showByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = '';\n }\n }\n }\n };\n FgEventRenderer.prototype.selectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n var eventInstance = seg.eventRange.instance;\n if (eventInstance && eventInstance.instanceId === instanceId &&\n seg.el // necessary?\n ) {\n seg.el.classList.add('fc-selected');\n }\n }\n }\n };\n FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (seg.el) { // necessary?\n seg.el.classList.remove('fc-selected');\n }\n }\n }\n };\n return FgEventRenderer;\n}());\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n var eventDef = seg.eventRange.def;\n var range = seg.eventRange.instance.range;\n var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n var end = range.end ? range.end.valueOf() : 0; // \"\n return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start,\n end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval\n });\n}\n\n/*\nTODO: when refactoring this class, make a new FillRenderer instance for each `type`\n*/\nvar FillRenderer = /** @class */ (function () {\n function FillRenderer() {\n this.fillSegTag = 'div';\n this.dirtySizeFlags = {};\n this.containerElsByType = {};\n this.segsByType = {};\n }\n FillRenderer.prototype.getSegsByType = function (type) {\n return this.segsByType[type] || [];\n };\n FillRenderer.prototype.renderSegs = function (type, context, segs) {\n var _a;\n this.context = context;\n var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs\n var containerEls = this.attachSegs(type, renderedSegs);\n if (containerEls) {\n (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls);\n }\n this.segsByType[type] = renderedSegs;\n if (type === 'bgEvent') {\n triggerRenderedSegs(context, renderedSegs, false); // isMirror=false\n }\n this.dirtySizeFlags[type] = true;\n };\n // Unrenders a specific type of fill that is currently rendered on the grid\n FillRenderer.prototype.unrender = function (type, context) {\n var segs = this.segsByType[type];\n if (segs) {\n if (type === 'bgEvent') {\n triggerWillRemoveSegs(context, segs, false); // isMirror=false\n }\n this.detachSegs(type, segs);\n }\n };\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\n // Only returns segments that successfully rendered.\n FillRenderer.prototype.renderSegEls = function (type, segs) {\n var _this = this;\n var html = '';\n var i;\n if (segs.length) {\n // build a large concatenation of segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(type, segs[i]);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n if (type === 'bgEvent') {\n segs = filterSegsViaEls(this.context, segs, false // isMirror. background events can never be mirror elements\n );\n }\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\n segs = segs.filter(function (seg) {\n return elementMatches(seg.el, _this.fillSegTag);\n });\n }\n return segs;\n };\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\n FillRenderer.prototype.renderSegHtml = function (type, seg) {\n var css = null;\n var classNames = [];\n if (type !== 'highlight' && type !== 'businessHours') {\n css = {\n 'background-color': seg.eventRange.ui.backgroundColor\n };\n }\n if (type !== 'highlight') {\n classNames = classNames.concat(seg.eventRange.ui.classNames);\n }\n if (type === 'businessHours') {\n classNames.push('fc-bgevent');\n }\n else {\n classNames.push('fc-' + type.toLowerCase());\n }\n return '<' + this.fillSegTag +\n (classNames.length ? ' class=\"' + classNames.join(' ') + '\"' : '') +\n (css ? ' style=\"' + cssToStr(css) + '\"' : '') +\n '>';\n };\n FillRenderer.prototype.detachSegs = function (type, segs) {\n var containerEls = this.containerElsByType[type];\n if (containerEls) {\n containerEls.forEach(removeElement);\n delete this.containerElsByType[type];\n }\n };\n FillRenderer.prototype.computeSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.computeSegSizes(this.segsByType[type]);\n }\n }\n };\n FillRenderer.prototype.assignSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.assignSegSizes(this.segsByType[type]);\n }\n }\n this.dirtySizeFlags = {};\n };\n FillRenderer.prototype.computeSegSizes = function (segs) {\n };\n FillRenderer.prototype.assignSegSizes = function (segs) {\n };\n return FillRenderer;\n}());\n\nvar NamedTimeZoneImpl = /** @class */ (function () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n return NamedTimeZoneImpl;\n}());\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nvar ElementDragging = /** @class */ (function () {\n function ElementDragging(el) {\n this.emitter = new EmitterMixin();\n }\n ElementDragging.prototype.destroy = function () {\n };\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n // optional\n };\n return ElementDragging;\n}());\n\nfunction formatDate(dateInput, settings) {\n if (settings === void 0) { settings = {}; }\n var dateEnv = buildDateEnv$1(settings);\n var formatter = createFormatter(settings);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo\n });\n}\nfunction formatRange(startInput, endInput, settings // mixture of env and formatter settings\n) {\n var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object\n var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: settings.isEndExclusive\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n // ensure required settings\n settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale });\n return new DateEnv(settings);\n}\n\nvar DRAG_META_PROPS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String\n};\nvar DRAG_META_DEFAULTS = {\n create: true\n};\nfunction parseDragMeta(raw) {\n var leftoverProps = {};\n var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps);\n refined.leftoverProps = leftoverProps;\n return refined;\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return { weekday: 'short' }; // \"Sat\"\n }\n else if (dayCnt > 1) {\n return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // \"Sat 11/12\"\n }\n else {\n return { weekday: 'long' }; // \"Saturday\"\n }\n}\nfunction renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) {\n var dateEnv = context.dateEnv, theme = context.theme, options = context.options;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow.\n var classNames = [\n 'fc-day-header',\n theme.getClass('widgetHeader')\n ];\n var innerHtml;\n if (typeof options.columnHeaderHtml === 'function') {\n innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker));\n }\n else if (typeof options.columnHeaderText === 'function') {\n innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker)));\n }\n else {\n innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat));\n }\n // if only one row of days, the classNames on the header can represent the specific days beneath\n if (datesRepDistinctDays) {\n classNames = classNames.concat(\n // includes the day-of-week class\n // noThemeHighlight=true (don't highlight the header)\n getDayClasses(dateMarker, dateProfile, context, true));\n }\n else {\n classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class\n }\n return '' +\n ' 1 ?\n ' colspan=\"' + colspan + '\"' :\n '') +\n (otherAttrs ?\n ' ' + otherAttrs :\n '') +\n '>' +\n (isDateValid ?\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\n buildGotoAnchorHtml(options, dateEnv, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) :\n // if not valid, display text, but no link\n innerHtml) +\n '';\n}\n\nvar DayHeader = /** @class */ (function (_super) {\n __extends(DayHeader, _super);\n function DayHeader(parentEl) {\n var _this = _super.call(this) || this;\n _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n _this.parentEl = parentEl;\n return _this;\n }\n DayHeader.prototype.render = function (props, context) {\n var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays;\n var parts = [];\n this.renderSkeleton(context);\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n var colHeadFormat = createFormatter(context.options.columnHeaderFormat ||\n computeFallbackHeaderFormat(datesRepDistinctDays, dates.length));\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, context));\n }\n if (context.isRtl) {\n parts.reverse();\n }\n this.thead.innerHTML = '' + parts.join('') + '';\n };\n DayHeader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderSkeleton.unrender();\n };\n DayHeader.prototype._renderSkeleton = function (context) {\n var theme = context.theme;\n var parentEl = this.parentEl;\n parentEl.innerHTML = ''; // because might be nbsp\n parentEl.appendChild(this.el = htmlToElement('
' +\n '' +\n '' +\n '
' +\n '
'));\n this.thead = this.el.querySelector('thead');\n };\n DayHeader.prototype._unrenderSkeleton = function () {\n removeElement(this.el);\n };\n return DayHeader;\n}(Component));\n\nvar DaySeries = /** @class */ (function () {\n function DaySeries(range, dateProfileGenerator) {\n var date = range.start;\n var end = range.end;\n var indices = [];\n var dates = [];\n var dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex++;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n DaySeries.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex\n };\n }\n else {\n return null;\n }\n };\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n DaySeries.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n else if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n else {\n return indices[dayOffset];\n }\n };\n return DaySeries;\n}());\n\nvar DayTable = /** @class */ (function () {\n function DayTable(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n DayTable.prototype.buildCells = function () {\n var rows = [];\n for (var row = 0; row < this.rowCnt; row++) {\n var cells = [];\n for (var col = 0; col < this.colCnt; col++) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n };\n DayTable.prototype.buildCell = function (row, col) {\n return {\n date: this.daySeries.dates[row * this.colCnt + col]\n };\n };\n DayTable.prototype.buildHeaderDates = function () {\n var dates = [];\n for (var col = 0; col < this.colCnt; col++) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n };\n DayTable.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n while (index <= lastIndex) {\n var row = Math.floor(index / colCnt);\n var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row: row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex\n });\n index = nextIndex;\n }\n }\n return segs;\n };\n return DayTable;\n}());\n\nvar Slicer = /** @class */ (function () {\n function Slicer() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n }\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, calendar, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs));\n return {\n dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)),\n businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, calendar, component].concat(extraArgs)),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventSelection: props.eventSelection\n }; // TODO: give interactionSegs?\n };\n Slicer.prototype.sliceNowDate = function (// does not memoize\n date, component) {\n var extraArgs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false },\n {},\n component].concat(extraArgs));\n };\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, calendar, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), calendar),\n {},\n dateProfile,\n nextDayThreshold,\n component].concat(extraArgs)).bg;\n };\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs)\n };\n }\n else {\n return { bg: [], fg: [] };\n }\n };\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (!interaction) {\n return null;\n }\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n sourceSeg: interaction.origSeg\n };\n };\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) {\n var extraArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n if (!dateSpan) {\n return [];\n }\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.context.calendar);\n var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs));\n for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n var seg = segs_1[_a];\n seg.component = component;\n seg.eventRange = eventRange;\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill\n extraArgs) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs));\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill\n extraArgs) {\n var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs));\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n seg.component = component;\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n };\n return Slicer;\n}());\n/*\nfor incorporating minTime/maxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.minTime.milliseconds),\n end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day\n };\n}\n\n// exports\n// --------------------------------------------------------------------------------------------------\nvar version = '4.4.2';\n\nexport { Calendar, Component, ComponentContext, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeEventDraggable, computeEventEndResizable, computeEventStartResizable, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations };\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","module.exports = __webpack_public_path__ + \"img/logo2.abda8b97.svg\";","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","/*!\n * vue2-editor v2.10.2 \n * (c) 2019 David Royer\n * Released under the MIT License.\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\n\nvar defaultToolbar = [[{\n header: [false, 1, 2, 3, 4, 5, 6]\n}], [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\n[{\n align: \"\"\n}, {\n align: \"center\"\n}, {\n align: \"right\"\n}, {\n align: \"justify\"\n}], [\"blockquote\", \"code-block\"], [{\n list: \"ordered\"\n}, {\n list: \"bullet\"\n}, {\n list: \"check\"\n}], [{\n indent: \"-1\"\n}, {\n indent: \"+1\"\n}], // outdent/indent\n[{\n color: []\n}, {\n background: []\n}], // dropdown with defaults from theme\n[\"link\", \"image\", \"video\"], [\"clean\"] // remove formatting button\n];\n\nvar oldApi = {\n props: {\n customModules: Array\n },\n methods: {\n registerCustomModules: function registerCustomModules(Quill) {\n if (this.customModules !== undefined) {\n this.customModules.forEach(function (customModule) {\n Quill.register(\"modules/\" + customModule.alias, customModule.module);\n });\n }\n }\n }\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\n/**\n * Performs a deep merge of `source` into `target`.\n * Mutates `target` only but not its objects and arrays.\n *\n */\nfunction mergeDeep(target, source) {\n var isObject = function isObject(obj) {\n return obj && _typeof(obj) === \"object\";\n };\n\n if (!isObject(target) || !isObject(source)) {\n return source;\n }\n\n Object.keys(source).forEach(function (key) {\n var targetValue = target[key];\n var sourceValue = source[key];\n\n if (Array.isArray(targetValue) && Array.isArray(sourceValue)) {\n target[key] = targetValue.concat(sourceValue);\n } else if (isObject(targetValue) && isObject(sourceValue)) {\n target[key] = mergeDeep(Object.assign({}, targetValue), sourceValue);\n } else {\n target[key] = sourceValue;\n }\n });\n return target;\n}\n\nvar BlockEmbed = Quill.import(\"blots/block/embed\");\n\nvar HorizontalRule =\n/*#__PURE__*/\nfunction (_BlockEmbed) {\n _inherits(HorizontalRule, _BlockEmbed);\n\n function HorizontalRule() {\n _classCallCheck(this, HorizontalRule);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalRule).apply(this, arguments));\n }\n\n return HorizontalRule;\n}(BlockEmbed);\n\nHorizontalRule.blotName = \"hr\";\nHorizontalRule.tagName = \"hr\";\nQuill.register(\"formats/horizontal\", HorizontalRule);\n\nvar MarkdownShortcuts =\n/*#__PURE__*/\nfunction () {\n function MarkdownShortcuts(quill, options) {\n var _this = this;\n\n _classCallCheck(this, MarkdownShortcuts);\n\n this.quill = quill;\n this.options = options;\n this.ignoreTags = [\"PRE\"];\n this.matches = [{\n name: \"header\",\n pattern: /^(#){1,6}\\s/g,\n action: function action(text, selection, pattern) {\n var match = pattern.exec(text);\n if (!match) return;\n var size = match[0].length; // Need to defer this action https://github.com/quilljs/quill/issues/1134\n\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 0, \"header\", size - 1);\n\n _this.quill.deleteText(selection.index - size, size);\n }, 0);\n }\n }, {\n name: \"blockquote\",\n pattern: /^(>)\\s/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"blockquote\", true);\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"code-block\",\n pattern: /^`{3}(?:\\s|\\n)/g,\n action: function action(_text, selection) {\n // Need to defer this action https://github.com/quilljs/quill/issues/1134\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"code-block\", true);\n\n _this.quill.deleteText(selection.index - 4, 4);\n }, 0);\n }\n }, {\n name: \"bolditalic\",\n pattern: /(?:\\*|_){3}(.+?)(?:\\*|_){3}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true,\n italic: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"bold\",\n pattern: /(?:\\*|_){2}(.+?)(?:\\*|_){2}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n bold: true\n });\n\n _this.quill.format(\"bold\", false);\n }, 0);\n }\n }, {\n name: \"italic\",\n pattern: /(?:\\*|_){1}(.+?)(?:\\*|_){1}/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n italic: true\n });\n\n _this.quill.format(\"italic\", false);\n }, 0);\n }\n }, {\n name: \"strikethrough\",\n pattern: /(?:~~)(.+?)(?:~~)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n strike: true\n });\n\n _this.quill.format(\"strike\", false);\n }, 0);\n }\n }, {\n name: \"code\",\n pattern: /(?:`)(.+?)(?:`)/g,\n action: function action(text, _selection, pattern, lineStart) {\n var match = pattern.exec(text);\n var annotatedText = match[0];\n var matchedText = match[1];\n var startIndex = lineStart + match.index;\n if (text.match(/^([*_ \\n]+)$/g)) return;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, annotatedText.length);\n\n _this.quill.insertText(startIndex, matchedText, {\n code: true\n });\n\n _this.quill.format(\"code\", false);\n\n _this.quill.insertText(_this.quill.getSelection(), \" \");\n }, 0);\n }\n }, {\n name: \"hr\",\n pattern: /^([-*]\\s?){3}/g,\n action: function action(text, selection) {\n var startIndex = selection.index - text.length;\n setTimeout(function () {\n _this.quill.deleteText(startIndex, text.length);\n\n _this.quill.insertEmbed(startIndex + 1, \"hr\", true, Quill.sources.USER);\n\n _this.quill.insertText(startIndex + 2, \"\\n\", Quill.sources.SILENT);\n\n _this.quill.setSelection(startIndex + 2, Quill.sources.SILENT);\n }, 0);\n }\n }, {\n name: \"asterisk-ul\",\n pattern: /^(\\*|\\+)\\s$/g,\n action: function action(_text, selection, _pattern) {\n setTimeout(function () {\n _this.quill.formatLine(selection.index, 1, \"list\", \"unordered\");\n\n _this.quill.deleteText(selection.index - 2, 2);\n }, 0);\n }\n }, {\n name: \"image\",\n pattern: /(?:!\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0]; // const hrefText = text.match(/(?:!\\[(.*?)\\])/g)[0]\n\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertEmbed(start, \"image\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }, {\n name: \"link\",\n pattern: /(?:\\[(.+?)\\])(?:\\((.+?)\\))/g,\n action: function action(text, selection, pattern) {\n var startIndex = text.search(pattern);\n var matchedText = text.match(pattern)[0];\n var hrefText = text.match(/(?:\\[(.*?)\\])/g)[0];\n var hrefLink = text.match(/(?:\\((.*?)\\))/g)[0];\n var start = selection.index - matchedText.length - 1;\n\n if (startIndex !== -1) {\n setTimeout(function () {\n _this.quill.deleteText(start, matchedText.length);\n\n _this.quill.insertText(start, hrefText.slice(1, hrefText.length - 1), \"link\", hrefLink.slice(1, hrefLink.length - 1));\n }, 0);\n }\n }\n }]; // Handler that looks for insert deltas that match specific characters\n\n this.quill.on(\"text-change\", function (delta, _oldContents, _source) {\n for (var i = 0; i < delta.ops.length; i++) {\n if (delta.ops[i].hasOwnProperty(\"insert\")) {\n if (delta.ops[i].insert === \" \") {\n _this.onSpace();\n } else if (delta.ops[i].insert === \"\\n\") {\n _this.onEnter();\n }\n }\n }\n });\n }\n\n _createClass(MarkdownShortcuts, [{\n key: \"isValid\",\n value: function isValid(text, tagName) {\n return typeof text !== \"undefined\" && text && this.ignoreTags.indexOf(tagName) === -1;\n }\n }, {\n key: \"onSpace\",\n value: function onSpace() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine = this.quill.getLine(selection.index),\n _this$quill$getLine2 = _slicedToArray(_this$quill$getLine, 2),\n line = _this$quill$getLine2[0],\n offset = _this$quill$getLine2[1];\n\n var text = line.domNode.textContent;\n var lineStart = selection.index - offset;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.matches[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var match = _step.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n // We need to replace only matched text not the whole line\n console.log(\"matched:\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }, {\n key: \"onEnter\",\n value: function onEnter() {\n var selection = this.quill.getSelection();\n if (!selection) return;\n\n var _this$quill$getLine3 = this.quill.getLine(selection.index),\n _this$quill$getLine4 = _slicedToArray(_this$quill$getLine3, 2),\n line = _this$quill$getLine4[0],\n offset = _this$quill$getLine4[1];\n\n var text = line.domNode.textContent + \" \";\n var lineStart = selection.index - offset;\n selection.length = selection.index++;\n\n if (this.isValid(text, line.domNode.tagName)) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.matches[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var match = _step2.value;\n var matchedText = text.match(match.pattern);\n\n if (matchedText) {\n console.log(\"matched\", match.name, text);\n match.action(text, selection, match.pattern, lineStart);\n return;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n }]);\n\n return MarkdownShortcuts;\n}(); // module.exports = MarkdownShortcuts;\n\n//\nvar script = {\n name: \"VueEditor\",\n mixins: [oldApi],\n props: {\n id: {\n type: String,\n default: \"quill-container\"\n },\n placeholder: {\n type: String,\n default: \"\"\n },\n value: {\n type: String,\n default: \"\"\n },\n disabled: {\n type: Boolean\n },\n editorToolbar: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n editorOptions: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n useCustomImageHandler: {\n type: Boolean,\n default: false\n },\n useMarkdownShortcuts: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n quill: null\n };\n },\n watch: {\n value: function value(val) {\n if (val != this.quill.root.innerHTML && !this.quill.hasFocus()) {\n this.quill.root.innerHTML = val;\n }\n },\n disabled: function disabled(status) {\n this.quill.enable(!status);\n }\n },\n mounted: function mounted() {\n this.registerCustomModules(Quill);\n this.registerPrototypes();\n this.initializeEditor();\n },\n beforeDestroy: function beforeDestroy() {\n this.quill = null;\n delete this.quill;\n },\n methods: {\n initializeEditor: function initializeEditor() {\n this.setupQuillEditor();\n this.checkForCustomImageHandler();\n this.handleInitialContent();\n this.registerEditorEventListeners();\n this.$emit(\"ready\", this.quill);\n },\n setupQuillEditor: function setupQuillEditor() {\n var editorConfig = {\n debug: false,\n modules: this.setModules(),\n theme: \"snow\",\n placeholder: this.placeholder ? this.placeholder : \"\",\n readOnly: this.disabled ? this.disabled : false\n };\n this.prepareEditorConfig(editorConfig);\n this.quill = new Quill(this.$refs.quillContainer, editorConfig);\n },\n setModules: function setModules() {\n var modules = {\n toolbar: this.editorToolbar.length ? this.editorToolbar : defaultToolbar\n };\n\n if (this.useMarkdownShortcuts) {\n Quill.register(\"modules/markdownShortcuts\", MarkdownShortcuts, true);\n modules[\"markdownShortcuts\"] = {};\n }\n\n return modules;\n },\n prepareEditorConfig: function prepareEditorConfig(editorConfig) {\n if (Object.keys(this.editorOptions).length > 0 && this.editorOptions.constructor === Object) {\n if (this.editorOptions.modules && typeof this.editorOptions.modules.toolbar !== \"undefined\") {\n // We don't want to merge default toolbar with provided toolbar.\n delete editorConfig.modules.toolbar;\n }\n\n mergeDeep(editorConfig, this.editorOptions);\n }\n },\n registerPrototypes: function registerPrototypes() {\n Quill.prototype.getHTML = function () {\n return this.container.querySelector(\".ql-editor\").innerHTML;\n };\n\n Quill.prototype.getWordCount = function () {\n return this.container.querySelector(\".ql-editor\").innerText.length;\n };\n },\n registerEditorEventListeners: function registerEditorEventListeners() {\n this.quill.on(\"text-change\", this.handleTextChange);\n this.quill.on(\"selection-change\", this.handleSelectionChange);\n this.listenForEditorEvent(\"text-change\");\n this.listenForEditorEvent(\"selection-change\");\n this.listenForEditorEvent(\"editor-change\");\n },\n listenForEditorEvent: function listenForEditorEvent(type) {\n var _this = this;\n\n this.quill.on(type, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this.$emit.apply(_this, [type].concat(args));\n });\n },\n handleInitialContent: function handleInitialContent() {\n if (this.value) this.quill.root.innerHTML = this.value; // Set initial editor content\n },\n handleSelectionChange: function handleSelectionChange(range, oldRange) {\n if (!range && oldRange) this.$emit(\"blur\", this.quill);else if (range && !oldRange) this.$emit(\"focus\", this.quill);\n },\n handleTextChange: function handleTextChange(delta, oldContents) {\n var editorContent = this.quill.getHTML() === \"


\" ? \"\" : this.quill.getHTML();\n this.$emit(\"input\", editorContent);\n if (this.useCustomImageHandler) this.handleImageRemoved(delta, oldContents);\n },\n handleImageRemoved: function handleImageRemoved(delta, oldContents) {\n var _this2 = this;\n\n var currrentContents = this.quill.getContents();\n var deletedContents = currrentContents.diff(oldContents);\n var operations = deletedContents.ops;\n operations.map(function (operation) {\n if (operation.insert && operation.insert.hasOwnProperty(\"image\")) {\n var image = operation.insert.image;\n\n _this2.$emit(\"image-removed\", image);\n }\n });\n },\n checkForCustomImageHandler: function checkForCustomImageHandler() {\n this.useCustomImageHandler === true ? this.setupCustomImageHandler() : \"\";\n },\n setupCustomImageHandler: function setupCustomImageHandler() {\n var toolbar = this.quill.getModule(\"toolbar\");\n toolbar.addHandler(\"image\", this.customImageHandler);\n },\n customImageHandler: function customImageHandler(image, callback) {\n this.$refs.fileInput.click();\n },\n emitImageInfo: function emitImageInfo($event) {\n var resetUploader = function resetUploader() {\n var uploader = document.getElementById(\"file-upload\");\n uploader.value = \"\";\n };\n\n var file = $event.target.files[0];\n var Editor = this.quill;\n var range = Editor.getSelection();\n var cursorLocation = range.index;\n this.$emit(\"image-added\", file, Editor, cursorLocation, resetUploader);\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function () {\n style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\nvar normalizeComponent_1 = normalizeComponent;\n\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\n\nfunction createInjector(context) {\n return function (id, style) {\n return addStyle(id, style);\n };\n}\n\nvar HEAD;\nvar styles = {};\n\nfunction addStyle(id, css) {\n var group = isOldIE ? css.media || 'default' : id;\n var style = styles[group] || (styles[group] = {\n ids: new Set(),\n styles: []\n });\n\n if (!style.ids.has(id)) {\n style.ids.add(id);\n var code = css.source;\n\n if (css.map) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875\n\n code += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';\n }\n\n if (!style.element) {\n style.element = document.createElement('style');\n style.element.type = 'text/css';\n if (css.media) style.element.setAttribute('media', css.media);\n\n if (HEAD === undefined) {\n HEAD = document.head || document.getElementsByTagName('head')[0];\n }\n\n HEAD.appendChild(style.element);\n }\n\n if ('styleSheet' in style.element) {\n style.styles.push(code);\n style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\\n');\n } else {\n var index = style.ids.size - 1;\n var textNode = document.createTextNode(code);\n var nodes = style.element.childNodes;\n if (nodes[index]) style.element.removeChild(nodes[index]);\n if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);\n }\n }\n}\n\nvar browser = createInjector;\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"quillWrapper\"},[_vm._t(\"toolbar\"),_vm._v(\" \"),_c('div',{ref:\"quillContainer\",attrs:{\"id\":_vm.id}}),_vm._v(\" \"),(_vm.useCustomImageHandler)?_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"id\":\"file-upload\",\"type\":\"file\",\"accept\":\"image/*\"},on:{\"change\":function($event){return _vm.emitImageInfo($event)}}}):_vm._e()],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = function (inject) {\n if (!inject) return\n inject(\"data-v-59392418_0\", { source: \"/*!\\n * Quill Editor v1.3.6\\n * https://quilljs.com/\\n * Copyright (c) 2014, Jason Chen\\n * Copyright (c) 2013, salesforce.com\\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li::before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:0;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li::before{content:'\\\\2022'}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li::before,.ql-editor ul[data-checked=true]>li::before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li::before{content:'\\\\2611'}.ql-editor ul[data-checked=false]>li::before{content:'\\\\2610'}.ql-editor li::before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl)::before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl::before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) '. '}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) '. '}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) '. '}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) '. '}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) '. '}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) '. '}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) '. '}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) '. '}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) '. '}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) '. '}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank::before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:'';display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:0 0;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:0}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow{box-sizing:border-box}.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:'';display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label::before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item::before,.ql-snow .ql-picker.ql-header .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"1\\\"]::before{content:'Heading 1'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"2\\\"]::before{content:'Heading 2'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"3\\\"]::before{content:'Heading 3'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"4\\\"]::before{content:'Heading 4'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"5\\\"]::before{content:'Heading 5'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\\\"6\\\"]::before{content:'Heading 6'}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"1\\\"]::before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"2\\\"]::before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"3\\\"]::before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"4\\\"]::before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"5\\\"]::before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\\\"6\\\"]::before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item::before,.ql-snow .ql-picker.ql-font .ql-picker-label::before{content:'Sans Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before{content:'Serif'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before{content:'Monospace'}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item::before,.ql-snow .ql-picker.ql-size .ql-picker-label::before{content:'Normal'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before{content:'Small'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before{content:'Large'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before{content:'Huge'}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:rgba(0,0,0,.2) 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:#ccc}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip::before{content:\\\"Visit URL:\\\";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action::after{border-right:1px solid #ccc;content:'Edit';margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove::before{content:'Remove';margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action::after{border-right:0;content:'Save';padding-right:0}.ql-snow .ql-tooltip[data-mode=link]::before{content:\\\"Enter link:\\\"}.ql-snow .ql-tooltip[data-mode=formula]::before{content:\\\"Enter formula:\\\"}.ql-snow .ql-tooltip[data-mode=video]::before{content:\\\"Enter video:\\\"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}\", map: undefined, media: undefined })\n,inject(\"data-v-59392418_1\", { source: \".ql-editor{min-height:200px;font-size:16px}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1px!important}.quillWrapper .ql-snow.ql-toolbar{padding-top:8px;padding-bottom:4px}.quillWrapper .ql-snow.ql-toolbar .ql-formats{margin-bottom:10px}.ql-snow .ql-toolbar button svg,.quillWrapper .ql-snow.ql-toolbar button svg{width:22px;height:22px}.quillWrapper .ql-editor ul[data-checked=false]>li::before,.quillWrapper .ql-editor ul[data-checked=true]>li::before{font-size:1.35em;vertical-align:baseline;bottom:-.065em;font-weight:900;color:#222}.quillWrapper .ql-snow .ql-stroke{stroke:rgba(63,63,63,.95);stroke-linecap:square;stroke-linejoin:initial;stroke-width:1.7px}.quillWrapper .ql-picker-label{font-size:15px}.quillWrapper .ql-snow .ql-active .ql-stroke{stroke-width:2.25px}.quillWrapper .ql-toolbar.ql-snow .ql-formats{vertical-align:top}.ql-picker:not(.ql-background){position:relative;top:2px}.ql-picker.ql-color-picker svg{width:22px!important;height:22px!important}.quillWrapper .imageResizeActive img{display:block;cursor:pointer}.quillWrapper .imageResizeActive~div svg{cursor:pointer}\", map: undefined, media: undefined });\n\n };\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n\n \n var VueEditor = normalizeComponent_1(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n browser,\n undefined\n );\n\nvar version = \"2.10.2\"; // Declare install function executed by Vue.use()\n\nfunction install(Vue) {\n if (install.installed) return;\n install.installed = true;\n Vue.component(\"VueEditor\", VueEditor);\n}\nvar VPlugin = {\n install: install,\n version: version,\n Quill: Quill,\n VueEditor: VueEditor\n}; // Auto-install when vue is found (eg. in browser via